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:  |  Ubuntu classroom transcripts: | 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
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 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
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 might get you started in that team :)
16:17 <+dholbach> also there are a lot of bugs tagged as 'upgrade', the link is on
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> 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> 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
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
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
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 <>
16:30 <+dholbach> with
16:30 <+dholbach> XSBC-Original-Maintainer: Ross Burton <>
16:30 <+dholbach> Maintainer: Ubuntu MOTU Developers <>
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 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 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
16:35 <@LjL> <giftnudel>
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
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>
16:38 <+dholbach> good work isagani
16:38 <@LjL> <tuxmaniac> is this debdiff ok
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 ( or 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
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
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
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
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: 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: | Ubuntu classroom transcripts: | 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

MeetingLogs/openweekgutsy/Package101b1 (last edited 2008-08-06 17:01:00 by localhost)