Ubuntu Open Week - Packaging 101 - Session 2 - Daniel Holbach - Tue, Oct 23, 2007
see also Wednesday session.
16:00 -!- popey changed the topic of #ubuntu-classroom to: Ubuntu Open Week info: Information and Logs: https://wiki.ubuntu.com/UbuntuOpenWeek | Ubuntu classroom transcripts: https://wiki.ubuntu.com/ClassroomTranscripts | Please ask questions in #ubuntu-classroom-chat not here | Current Session: Packaging 101 - Session 2 - Daniel Holbach 16:05 <+dholbach> ok, welcome back to Session 2 16:06 <+dholbach> sorry about the problem again, I found the solution in the meantime ;-) 16:06 <+dholbach> somebody said in #ubuntu-classroom-chat "this was a good example" earlier 16:06 <+dholbach> and I think it really was: because it shows that MOTU work is sometimes detective work too :) 16:06 -!- mode/#ubuntu-classroom [+o LjL] by ChanServ 16:07 <+dholbach> as I said before: the new upstream version fixes it, so let's get the newest source and try again 16:07 <+dholbach> wget http://ftp.gnome.org/pub/gnome/sources/brasero/0.6/brasero-0.6.1.tar.gz 16:07 <+dholbach> rootvzla QUESTION: ¿As I am able comensar to work with the pbuilder and since where comienso since splits of it guides of pbuilder comienso to read? 16:07 <+dholbach> rootvzla: I don't speak spanish, but yeah, you can use pbuilder for this too, it's explained at http://wiki.ubuntu.com/PbuilderHowto how to use it 16:08 <+dholbach> once you've set it up, you just run sudo pbuilder build file.dsc 16:08 < unnamedXD> comenzar = begin 16:08 <+dholbach> and it will do the rest for you 16:08 <+dholbach> but won't deal with this in this session 16:08 <+dholbach> once you've got the tarball, run 16:09 <+dholbach> mv brasero-0.6.1.tar.gz brasero_0.6.1.orig.tar.gz 16:09 <+dholbach> cp -r brasero-0.5.90/debian brasero-0.6.1 16:09 <+dholbach> cd brasero-0.6.1 16:09 <+dholbach> dch -i 16:09 <+dholbach> and add a new changelog entry 16:09 <+dholbach> Make sure the version number is 0.6.1-0ubuntu1 this time 16:10 <+dholbach> and add something like 'New upstream release' as a changelog entry 16:10 <+dholbach> some maintainers like to list interesting things that have happened upstream, the NEWS file is usually a good source of information for that 16:11 <+dholbach> save the file and run debuild -S -sa again 16:11 <+dholbach> now, let's see if we get it building now :-) 16:11 <+dholbach> debuild -us -uc 16:12 <+dholbach> <matthe1> QUESTION: matthew@matthew:~/brasero-0.6.1$ dch -i 16:12 <+dholbach> dch: fatal error at line 391: 16:12 <+dholbach> Cannot find debian/changelog anywhere! 16:12 <+dholbach> matthe1: you haven't copied over the debian/ directory from our previous build 16:12 <+dholbach> cp -r brasero-0.5.90/debian brasero-0.6.1 16:13 <+dholbach> success/failure reports from anybody? :-) 16:13 < hydrogen> succes! 16:13 <+dholbach> ROCK ON 16:13 <+dholbach> we've build our first package :) 16:13 <+dholbach> what might be interesting is to look and see what changed in the meantime in the packages 16:13 <+dholbach> cd ..; wget http://people.ubuntu.com/~dholbach/motu/brasero_0.5.2-0ubuntu1_i386.deb 16:14 <+dholbach> we'll download the old binary package and compare the two 16:14 <+dholbach> debdiff brasero_0.5.2-0ubuntu1_i386.deb brasero_0.6.1-0ubuntu1_i386.deb (if you're using i386) 16:15 <+dholbach> will show which files changed, which dependencies changed etc 16:15 <+dholbach> it's important for the maintainer to check that, to see if files have gone missing, etc 16:16 <+dholbach> that was the first thing I wanted to show you: updating a package can be quite easy and is a good step to get involved 16:16 <+dholbach> seb128 and lool are always looking for new contributors in the desktop team and they're preparing a lot of GNOME updates 16:17 <+dholbach> #ubuntu-desktop and http://wiki.ubuntu.com/DesktopTeam/TODO might get you started in that team :) 16:17 <+dholbach> also there are a lot of bugs tagged as 'upgrade', the link is on http://wiki.ubuntu.com/MOTU/Bugs 16:18 <+dholbach> ok, let's move on to the second example I have in mind, if there are no more questions about this one 16:18 <@LjL> <afranke> QUESTION: isn't it up to the package maintainer to update packages? 16:18 <+dholbach> thanks LjL 16:18 <+dholbach> afranke: excellent question 16:18 <+dholbach> in Ubuntu we maintain all the packages in teams 16:19 <+dholbach> so for all GNOME related packages, you want to talk to the desktop team 16:19 <+dholbach> for telepathy related packages to the telepathy team and so on 16:19 <+dholbach> http://wiki.ubuntu.com/Teams contains links to all of them 16:19 <@LjL> <evarlast> QUESTION: the first item at DesktopTeam/TODO says "needs UVFe". What is UVFe? and where can we find information about accronyms which may be common to packagers? 16:19 < tuxmaniac> dholbach, you forgot bluetooth :-) 16:19 <+dholbach> tuxmaniac: exactly :) 16:20 <+dholbach> evarlast: that's a relict of the last release cycle 16:20 <+dholbach> UVFe means Upstream Version Freeze exception 16:20 <+dholbach> http://wiki.ubuntu.com/GutsyReleaseSchedule shows the schedule for the gutsy release 16:20 <+dholbach> Upstream Version Freeze means: no new upstream versions without approval 16:21 <+dholbach> everything related to freeze exceptions is explained at http://wiki.ubuntu.com/FreezeExceptionProcess 16:21 <+dholbach> <rootvzla> QUESTION: ¿With the pbuilder can work itself in any flavor of ubuntu can be feisty fawn, gutsy gibbon in other flavors or can work itself ajuro in a single flavor is a question tecnica simple? 16:21 <+dholbach> rootvzla: pbuilder-dist of the ubuntu-dev-tools package might help with that 16:21 <+dholbach> ok, moving on 16:21 <+dholbach> Let's suppose we had received a bug report about the package description of xicc 16:22 <+dholbach> saying that 'colour' should be 'color' instead 16:22 <+dholbach> it's ridiculous and would probably be rejected in reality, but just for the sake of the excercise, let's do it 16:23 <+dholbach> first we check if that's actually true and run 16:23 <+dholbach> apt-cache show xicc 16:23 <+dholbach> among other things we get this: 16:23 <+dholbach> This utility lets you set an ICC colour profile for an X display, so that 16:23 <+dholbach> applications can use it to display colour calibrated images. Applications have 16:23 <+dholbach> to specifically look for this atom but several applications such as Gimp and 16:23 <+dholbach> Eye Of Gnome already do. 16:23 <+dholbach> seems we have work to do :-) 16:23 <+dholbach> let's get the source code for it: 16:23 <+dholbach> dget -x http://people.ubuntu.com/~dholbach/motu/xicc_0.2-2.dsc 16:24 <+dholbach> things like the package description are found in debian/control too 16:24 <+dholbach> so: 16:24 <+dholbach> cd xicc-0.2 16:24 <+dholbach> sed -i 's/colour/color/g' debian/control 16:24 < kongo> is the session over ? 16:24 <@LjL> kongo: no. sssh 16:24 <+dholbach> (or open debian/control in your favourite editor and change it by hand) 16:25 <+dholbach> now we'll add a debian changelog entry again 16:25 <+dholbach> dch -i 16:25 <+dholbach> make sure we upload to 'hardy' 16:25 <+dholbach> and also make sure we explicitily state what we did 16:26 <+dholbach> so something like * debian/control: change all occurences of 'colour' to 'color' might be a good idea 16:26 <+dholbach> 0.2-2ubuntu1 as a version number is fine 16:27 <+dholbach> '0.2' is the upstream version, '-2' the debian revision and 'ubuntu1' our change with regard to that 16:27 <+dholbach> save the file and run debuild -S to build the source package 16:28 <+dholbach> success/failure? 16:28 < tuxmaniac> :) 16:28 <+dholbach> I get the following: 16:28 <+dholbach> dpkg-source: error: Version number suggests Ubuntu changes, but Maintainer: does not have Ubuntu address 16:28 <+dholbach> debuild: fatal error at line 1247: 16:28 <+dholbach> dpkg-source -b xicc-0.2 failed 16:28 <+dholbach> everybody has that? 16:29 <+dholbach> that's due to http://wiki.ubuntu.com/DebianMaintainerField 16:29 * hydrogen didn't get that.. 16:29 -!- mode/#ubuntu-classroom [-o popey] by popey 16:29 <+dholbach> our friends in the Debian team asked us to change the maintainer field in packages, when we touch them 16:30 < giftnudel> (there's a warning for me only) 16:30 <+dholbach> that's why we need to do the following: 16:30 <+dholbach> edit debian/control and 16:30 <+dholbach> replace Maintainer: Ross Burton <email@example.com> 16:30 <+dholbach> with 16:30 <+dholbach> XSBC-Original-Maintainer: Ross Burton <firstname.lastname@example.org> 16:30 <+dholbach> Maintainer: Ubuntu MOTU Developers <email@example.com> 16:30 <@LjL> tuxmaniac isn't getting the error message, either 16:30 <+dholbach> we still preserve the original Maintainer, but as a general maintainer for a universe package, we set the MOTU team 16:31 < hydrogen> its a warning here rather than an error 16:31 <+dholbach> that's really weird, that some of you don't get the error 16:31 <+dholbach> maybe we can investigate later 16:31 <+dholbach> still http://wiki.ubuntu.com/DebianMaintainerField is a policy decision we need to adhere to 16:31 <+dholbach> (the update-maintainer tool in the ubuntu-dev-tools package does it automatically) 16:32 <+dholbach> now we'll build the source package again 16:32 <+dholbach> debuild -S 16:32 <+dholbach> if you now run 16:32 <+dholbach> cd ..; debdiff xicc_0.2-2.dsc xicc_0.2-2ubuntu1.dsc 16:33 <+dholbach> it will show you a debdiff 16:33 <+dholbach> (note that we used the tool in the other session already, but there we ran it on .deb packages) 16:33 <+dholbach> this time we want to see source changes 16:34 <+dholbach> can you paste your debdiff to http://pastebin.ubuntu.com/ to see if we're all on the same page? 16:34 <@LjL> <savvas> QUESTION: where are debtags saved (the tags for each deb package)? 16:34 < chdorb> hello 16:34 <+dholbach> LjL: to be honest with you, I've never used debtags much 16:35 <+dholbach> I'll get an answer 16:35 <+dholbach> any successful debdiffs on pastebin.ubuntu.com? 16:35 <@LjL> <giftnudel> http://pastebin.ubuntu.com/1243/ 16:35 <+dholbach> giftnudel: excellent work 16:35 <+dholbach> that's exactly what it should look like 16:36 <+dholbach> now if you run debdiff xicc_0.2-2.dsc xicc_0.2-2ubuntu1.dsc > xicc_0.2.2ubuntu1.debdiff 16:36 <+dholbach> the debdiff will be written to a file 16:36 <+dholbach> and is ready to get reviewed using http://wiki.ubuntu.com/SponsorshipProcess 16:37 <+dholbach> so if you come across a bug you want to fix, you'd attach that debdiff file to it 16:37 < giftnudel> (except for my e-mailadress) 16:37 <+dholbach> and subscribe ubuntu-universe-sponsors (for packages that live in universe and multiverse) 16:37 <+dholbach> and subscribe ubuntu-main-sponsors (for packages that live in main and restricted) 16:37 <+dholbach> that's it 16:37 <+dholbach> and that's your path to becoming a MOTU :) 16:38 <+dholbach> after a few successful reviews, learning and encouragement of the team, you can ask to get added to the motu team 16:38 <+dholbach> <isagani> http://pastebin.ubuntu.com/1245/ 16:38 <+dholbach> good work isagani 16:38 <@LjL> <tuxmaniac> is this debdiff ok http://pastebin.ubuntu.com/1246/ 16:39 <+dholbach> tuxmaniac: could it be you swapped the .dsc files in the debdiff call? 16:39 < tuxmaniac> dholbach, yes :-) 16:39 < tuxmaniac> sorry 16:39 <+dholbach> tuxmaniac: and you added two changelog entries 16:40 <+dholbach> <kongo> QUESTION: For a given software, is it a good idea to have separate debian and ubuntu Maintainer ? 16:40 <+dholbach> kongo: they are different people who maintain the package and work on it 16:40 < slytherin> <afranke> QUESTION: for a packages that doesn't live neither in universe nor main, who do you subscribe? 16:40 <+dholbach> kongo: collaboration between the debian and the ubuntu maintainer (and others, including the upstream authors) is really important 16:41 < kongo> kongo, could be different could be same 16:41 <+dholbach> kongo: you generally set your name in the maintainer field if you say: 16:41 <+dholbach> * I care for this package 16:41 <+dholbach> * I make sure its bugs get fixed 16:41 <+dholbach> so it's really a strong commitment to have your name in there 16:41 < slytherin> afranke: for packages in main/restricted ubuntu-main-sponsors. For packages in universe/multiverse ubuntu-universe-sponsors 16:41 -!- mode/#ubuntu-classroom [-o LjL] by LjL 16:41 <+dholbach> afranke: do you have examples in mind? 16:41 <+dholbach> (that are not in main/restricted/universe/multiverse) 16:41 < afranke> slytherin: my question was in fact about new packages that are not yet in repositories 16:42 < afranke> a "needs-packaging" package 16:42 < kongo> dholbach, what i am thinking is to have ubuntu package exclusive of debian package. Imean ubuntu package is not derived from debian 16:42 <+dholbach> afranke: they all start in universe 16:42 <+dholbach> kongo: if you decide to not merge with the debian packaging that's a valid choice, but might be duplication of efforts 16:42 < afranke> dholbach: thanks 16:43 <+dholbach> kongo: it's good to be in touch with others who have an interest in the package too and coordinatge together 16:43 <+dholbach> any more questions? 16:43 <+dholbach> I was just told that debtags information resides in /var/lib/debtags - does that help? 16:43 < kongo> dholbach, thanks, 16:44 <+dholbach> savvas: I'll try to summon mvo, who knows more about it :) 16:45 < mvo> savvas: debtags are currently downloaded to /var/lib/debtags 16:45 < mvo> savvas: in debian it goes into the Packages file, but currently not in ubuntu 16:45 <+dholbach> savvas: does that help? 16:45 <+dholbach> thanks a lot mvo 16:45 * dholbach hugs mvo 16:46 <+dholbach> let's have some applause for Michael 'rockstar' Vogt, the apt hero (among other things) 16:46 < LjL> <evarlast> QUESTION: is it the same process if updating an ubuntu package? for example gutsy shipped with pkgx-1.2.3, but I want to submit pkgx-1.3.4. Do I send the debdiff the same way? 16:46 * mvo blushes 16:46 * mvo hugs dholb 16:46 * mvo hugs dholbach 16:46 <+dholbach> evarlast: yes, it should be roughly what we did in round one of our session 16:47 <+dholbach> evarlast: to get it reviewed, you might want to use PPA (http://help.launchpad.net/PPAQuickStart) or REVU (http://wiki.ubuntu.com/REVU) and link that in the sponsoring bug 16:47 * giftnudel applauds 16:48 <+dholbach> there are quite a few different review processes in different teams, but subscribing the sponsoring team to bugs is the most generic and general one 16:48 <+dholbach> any more questions? about what we did in the sessions? about becoming a MOTU? about Ubuntu Development? 16:48 < LjL> <evarlast> QUESTION: will there every be any automatic update detection in PPA? PPA could be smart enough to see when someone has uploaded an update to something in Universe and automatically associate it with a bug, or create a new bug for the package. 16:49 <+dholbach> evarlast: I wrote ppaput for that (in the ubuntu-dev-tools package) 16:49 <+dholbach> evarlast: just check it's manpage to see how it works 16:49 < LjL> <evarlast> QUESTION: so use ppaput instead of dput? 16:50 <+dholbach> evarlast: yes, it has a slightly different syntax, but essentially yes 16:50 <+dholbach> it will build a source package, file a bug, and upload to PPA 16:50 <+dholbach> evarlast: ppaput still has some caveats, but we'll iron them out 16:50 <+dholbach> any more questions? about what we did in the sessions? about becoming a MOTU? about Ubuntu Development? :-) 16:51 <+dholbach> did you have any problems during the session (apart from 0.5.90 not building)? found something irksome? 16:51 <+dholbach> <amarillion> QUESTION: I've tried packaging software written in java, but pbuilder won't let me use sun-java5-bin as a dependency. What is there to be done about that? 16:51 <+dholbach> amarillion: did you add multiverse to the pbuilder sources? 16:52 <+dholbach> amarillion: it should be explained how to do that in http://wiki.ubuntu.com/PbuilderHowto 16:52 <+dholbach> <slytherin> QUESTION: Following the question raised by evarlast please provide explaination about UVFE and SRU 16:52 < Hobbsee> dholbach: pbuilder will die, as sun-java5-bin requires a licence agreement, doesnt it? 16:52 < amarillion> the problem is that sun-java5-bin can't be installed automatically because it asks for confirmation of the java license 16:52 <+dholbach> Hobbsee: good point 16:52 <+dholbach> amarillion: maybe ask doko about that or ask how to workaround that on firstname.lastname@example.org 16:53 <+dholbach> slytherin: I explained UVFe before, it stands for upstream version freeze exception 16:53 < Riddell> amarillion: use icedtea 16:53 < amarillion> Riddell, I've tried but that crashes :( 16:53 <+dholbach> slytherin: SRU means Stable Release Update and it requires to follow the process on http://wiki.ubuntu.com/StableReleaseUpdates 16:53 <+dholbach> this process is necessary to get more testing for uploads that are intended to go to gutsy-updates for example 16:54 <+dholbach> which go out to stable systems 16:54 <+dholbach> <hydrogen> QUESTION: wheres the free ice cream? 16:54 < slytherin> dholbach: I know a bit about it. I thought evarlast was interested in filing bugs for new upstream version of a package for stable release. That is why I brought up this. 16:54 < Riddell> amarillion: right. the sysadmins are aware of the sun-java issue, so we can just hope it gets fixed soon (for your own pbuilder though, you can pre-seed debconf) 16:54 <+dholbach> hydrogen: good question - if you find out: let me know :) 16:54 < LjL> <afranke> QUESTION: what should I do if I want to package two versions of a package and want both to be included in universe (for instance for compatibility reasons) 16:54 <+dholbach> afranke: you will need to rename the source packages and binary packages 16:55 <+dholbach> afranke: for example pingus and pingus-snapshot (if you want to package an upstream snapshot) 16:55 <+dholbach> any more questions? 16:55 <+dholbach> who of you ponders becoming a MOTU now? :-) 16:55 <+dholbach> who of you is interested in joining the crew? :) 16:56 * slytherin Is interested. 16:56 * afranke will need a bit of practice :) 16:56 < hydrogen> oh, i mastered the universe a long time ago 16:56 < LjL> <savvas> QUESTION: I may have missed it, but where is the new 'fixed' package supposed to be uploaded/sent? 16:56 < hydrogen> I've moved on to bigger and better things 16:56 < hydrogen> such as trying to get free desert 16:56 <+dholbach> slytherin, afranke, hydrogen: way to go! :-) 16:56 <+dholbach> savvas: the example we did? 16:56 * tuxmaniac wil lbecome a MOTU for sure 16:56 < tuxmaniac> work hard tuxmaniac work hard! 16:57 * dholbach hugs tuxmaniac 16:57 < nrpil> â 16:57 < nrpil> ââ ââ [o] jaosorg â â 16:57 < amarillion> I'm interested in becoming MOTU too 16:57 <+dholbach> that's the spirit 16:57 -!- mode/#ubuntu-classroom [+o LjL] by ChanServ 16:57 < kart_> tuxmaniac, best luck! 16:57 -!- mode/#ubuntu-classroom [+b %nrpil!*@*] by LjL 16:57 < savvas> dholbach: does it matter? if it's minor/major change in the package it matters where it will be sent/uploaded? 16:57 <+dholbach> savvas: all uploads you intend to get sponsored follow http://wiki.ubuntu.com/SponsorshipProcess 16:58 <@LjL> <amarillion> QUESTION: is the size of the orig.tar.gz limiting? I've seen a large number of dependant libraries being included (again for a java package) which is unecessary on a linux system. 16:58 <+dholbach> you'll make the debdiff available or link to the source package (.diff.gz .orig.tar.gz .dsc) 16:58 < savvas> ok ty :) 16:58 <+dholbach> amarillion: no it's not, openoffice for example has a source that's several hundred megabytes big :) 16:59 <+dholbach> amarillion: we try to re-use components which are already packaged 16:59 <@LjL> <scorpioxy> QUESTION: What can i do if fixing a bug in one package requires an update of another dependant package, do i package both as separate ones? 16:59 <+dholbach> amarillion: in some cases that's unfortunately not possible and upstream authors should be talked to 16:59 < amarillion> In this case, I've got a package that is 60Mb, of which contains a large number of jar files 17:00 <+dholbach> scorpioxy: yes and you mention that both review bugs are dependant on each other 17:00 <+dholbach> amarillion: we prefer things that build from source 17:00 <+dholbach> amarillion: so you'd try to package them separately all building form source 17:00 <@LjL> <slytherin> QUESTION: For the java issue, can we use --save-after-login option and manually install java package inside chroot? 17:00 <+dholbach> amarillion: I know that's not easy sometimes in the case of java :-/ 17:00 < slytherin> amarillion: Check if those jar files are available in Ubuntu and manage build dependencies accordingly. 17:00 < livingdaylight> hELLO 17:01 < amarillion> yeah, after trying this a few times I've got the feeling that java is f-ed up with regards to packaging 17:01 < hydrogen> your capslock button must have the exclamation point to the left of it! 17:01 < livingdaylight> i wanted to know how i can add Nautilus to my panel? 17:01 <+dholbach> amarillion: you might want to talk to doko and people on the ubuntu-java mailing list 17:01 < amarillion> Will do, thanks 17:01 < slytherin> livingdaylight: This is not a support channel. Please join #ubuntu 17:01 <+dholbach> slytherin: what is your save-after-login question about? 17:02 < slytherin> dholbach: As in, sudo pbuilder login --save-after-login and then install sun-java. 17:02 <+dholbach> ahhh ok, that might work - I never actually tried it 17:02 <+dholbach> ok, let's close the session 17:02 <+dholbach> thanks all for coming 17:02 <+dholbach> thanks for your enthusiasm and your questions 17:03 <+dholbach> and I hope to all see you on the motu mailing lists and #ubuntu-motu, becoming MOTUs soon 17:03 <+dholbach> check out: http://wiki.ubuntu.com/MOTU to get involved 17:03 <+dholbach> thanks 17:03 * Hobbsee warns *anyone* about to join ubuntu-universe-sponsors to read the entire description, before attempting to join. 17:03 * afranke hugs the rocking dholbach for his session 17:03 * dholbach hugs afranke back - thanks :-) 17:03 -!- LjL changed the topic of #ubuntu-classroom to: Ubuntu Open Week info: Information and Logs: https://wiki.ubuntu.com/UbuntuOpenWeek | Ubuntu classroom transcripts: https://wiki.ubuntu.com/ClassroomTranscripts | Please ask questions in #ubuntu-classroom-chat not here | Next session: Automated testing - Lars Wirzenius & Henrik Omma 17:03 * savvas claps :) 17:04 <@LjL> thank you dholbach 17:04 < kongo> thanks dholbach 17:04 <+dholbach> thanks LjL and popey - you guys ROCK 17:04 < hydrogen> aww 17:04 * dholbach hugs y'all 17:04 < scorpioxy> thanks dholbach 17:04 <+dholbach> :-) 17:04 < Riddell> slytherin: yes it'll work, but it'll still get stuck in the ubuntu build servers so best to use icedtea if you can 17:04 < amarillion> thanks dholbach 17:04 < hydrogen> I didn't get to ask my inflamatory question! 17:04 -!- mode/#ubuntu-classroom [+o PriceChild] by ChanServ 17:04 < hydrogen> (why not k3b, its obviously much better) 17:04 < kongo> when is the next session ? testing one 17:04 -!- mode/#ubuntu-classroom [-o LjL] by LjL 17:04 <+dholbach> hydrogen: first ice cream, then inflamatory questions? :) 17:04 < slytherin> Riddell: Ok. Thanks. 17:04 * dholbach hugs hydrogen 17:04 < hydrogen> :) 17:04 <+dholbach> see you guys around! 17:04 <+dholbach> bye