QA

Dev Week -- MOTU Q&A Session -- Daniel Holbach -- Fri, Feb 22

(01:03:32 PM) dholbach: Bring it On!
(01:03:57 PM) dholbach: next up is the MOTU Q&A Session
(01:04:19 PM) dholbach: it's a session we have each Friday, usually at 13:00 UTC in #ubuntu-classroom
(01:04:35 PM) dholbach: so if you have any questions, any problem you want a few people to look at, there's an hour dedicated just for that
(01:05:01 PM) dholbach: of course there's always #ubuntu-motu and the mailing lists, but it's usually a smaller audience and a nice get-together :)
(01:05:09 PM) secretlondo: :)
(01:05:18 PM) LucidFox: How do I make one specific dependency ignored by dh_shlibdeps?
(01:05:24 PM) dholbach: we usually start with introduction so we know who's new and who just joined the contributors world
(01:05:59 PM) ***dholbach is Daniel Holbach, MOTU for quite a while and hopes you all enjoyed UDW as much as I did
(01:06:03 PM) dholbach: who else is here?
(01:06:06 PM) secretlondo: me
(01:06:25 PM) dholbach: just secretlondo and LucidFox? :)
(01:06:26 PM) ***AstralJava is
(01:06:27 PM) phoenix24: me!
(01:06:27 PM) recon: and me.
(01:06:36 PM) ***warp10 is Andrea Colangelo MOTU contributor who would like to see a Developer Week... well... every week! *grin*
(01:06:37 PM) barcc: +1
(01:06:40 PM) polopolo: me
(01:06:45 PM) jpatrick: dholbach: hi :)
(01:06:45 PM) pranith: +1
(01:06:51 PM) akshay: I am Akshay Dua and this is my first time in a ubuntu chat room. I am currently working through the packaging guide.
(01:07:00 PM) secretlondo: I'm Caroline Ford, I'm a bug traiger who is involved in tuxpaint upstream. I intend to learn packaging and become a MOTU (eventually)
(01:07:01 PM) akshay: oh, and hi everyone
(01:07:05 PM) ***recon is the n00b trying to find something to package. And failing.
(01:07:18 PM) dholbach: BRING IT ON! That's the spirit and what I'd like to hear! :-)
(01:07:19 PM) ***LucidFox is Matvey Kozhev, a recently approved MOTU and beginning Debian contributor
(01:07:19 PM) ***Iulian is Iulian Udrea and would like to join the MOTU world
(01:07:29 PM) dholbach: perfect :)
(01:07:32 PM) ***polopolo already asked a question btw
(01:07:33 PM) db-keen: Daniel Brumbaugh Keeney is the slow builder of a great Ruby Debian packaging machine called Tanzanite
(01:07:53 PM) dholbach: ok... we have a few questions in the queue already
(01:08:03 PM) grazieno: me
(01:08:05 PM) dholbach: <LucidFox> How do I make one specific dependency ignored by dh_shlibdeps?
(01:08:24 PM) dholbach: LucidFox: can you explain to those who just came here what dh_shlibdeps is for... in a nutshell
(01:08:55 PM) cprov-out left the room.
(01:09:16 PM) LucidFox: dh_shlibdeps is a script for debian/rules that automatically fills dependencies for a package based on shared libraries its binaries link with
(01:09:29 PM) recon: that sounds useful.
(01:09:44 PM) dholbach: it's the best thing since sliced bread :)
(01:10:20 PM) dholbach: so if you add   ${shlibs:Depends}  as a variable to the Depends: line of your package in debian/control in the end it will have all the library dependencies automagically filled in
(01:10:58 PM) dholbach: LucidFox: I just heard of cases where that was necessary 2 or 3 times - the only solution I seem to remember right now is messing with debian/substvars
(01:11:02 PM) recon: dholbach: well, if you wanted to ignore a dependency, couldn't you just edit it out of the control file?
(01:11:11 PM) dholbach: LucidFox: I think one package was ffmpeg or some media library
(01:11:33 PM) dholbach: LucidFox: and the other one libgoffice (because it built a -gtk and a -gnome variant) or something
(01:11:41 PM) ***eddyMul is Eddy Mulyono, packaged a bunch of stuff for Gentoo, and now looking at helping out Ubuntu
(01:11:43 PM) james_w: "dh_shlibdeps -- -xpackage-name" is worth a try
(01:12:05 PM) dholbach: recon: no, because you have just ${shlibs:Depends} there which gets all the library depends automatically filled in
(01:12:09 PM) james_w: <-- James Westby, MOTU hopeful
(01:12:09 PM) LucidFox: recon> No, the dependencies are generated during build and inserted into the deb's control file, and debian/control is untouched
(01:12:18 PM) recon: oh.
(01:12:23 PM) secretlondo: I can see a situation if you are backporting something - eg dapper doesn't have SDL_pango, and programX can be compiled without it
(01:12:35 PM) dholbach: LucidFox: better to try what james_w said first :)
(01:12:53 PM) dholbach: <polopolo> QUESTION: what ask the ubuntu team of its MOTU? or: what do you first to know before you are motu?
(01:13:00 PM) james_w: secretlondo: in that case you would normally edit the "Build-Depends" to remove the package so that it wasn't linked with.
(01:13:03 PM) LucidFox: secretlondo> in this case, it's usually sufficient to remove the -dev package from debian-control, in some cases also pass a --disable-X argument to configure
(01:13:21 PM) ***RainCT is Siegfried Gevatter, MOTU since some weeks and hoping to become a DD someday
(01:13:49 PM) secretlondo: ok thanks
(01:14:04 PM) ***jpatrick is Jonathan Davies, MOTU (~2 years) and Debian contributor
(01:14:14 PM) dholbach: polopolo: I answered that question on http://wiki.ubuntu.com/MOTU/FAQ - it seems to be a regular question coming up "Do I need to know a lot of programming languages to become a MOTU?"
(01:14:18 PM) dholbach: let me quote from the wiki page
(01:14:24 PM) dholbach: Much more important than having a lot of progamming experience is
(01:14:24 PM) dholbach:  * being a good team player
(01:14:24 PM) dholbach:  * learning by reading documentation, trying things out and not being afraid to ask questions
(01:14:24 PM) dholbach:  * being highly motivated
(01:14:24 PM) dholbach:  * having a knack for trying to make things work
(01:14:25 PM) dholbach:  * having some detective skills
(01:14:45 PM) dholbach: polopolo: I know it's kind of hand-wavy but I hope it helps to answer your question
(01:14:51 PM) james_w:  * like being hugged by dholbach
(01:15:00 PM) ***dholbach hugs james_w :-)
(01:15:01 PM) dholbach: <akshay> QUESTION: I am confused about the differences between the use of the underscore and the hyphen while packaging. Why are they needed? Which one to use when?(<package>-<version> vs <package>_<version>)
(01:15:01 PM) akshay: hehe
(01:15:28 PM) polopolo: dholbach: yes, you have, thank you
(01:15:36 PM) dholbach: akshay: use the hyphen in the version number in debian/changelog and the underscore when you name the files
(01:15:59 PM) akshay: great, thanks!
(01:16:03 PM) dholbach: so it's        gedit_2.23.4.orig.tar.gz    and   gedit_2.23.4-0ubuntu.diff.gz
(01:16:13 PM) dholbach: but it's 2.23.4-0ubuntu1 in the debian/changelog
(01:16:17 PM) dholbach: ok great
(01:16:25 PM) dholbach: <recon> QUESTION: Why would you need a seperate chroot to make packages, ala pbuilder, as opposed to the rest of your system?
(01:16:47 PM) dholbach: recon: pbuilder is useful because it helps you to pinpoint which build-depends you need exactly
(01:17:16 PM) recon: dholbach: ...should'a thought of that one.
(01:17:20 PM) dholbach: recon: I usually tend to have lots and lots of libraries installed on my regular machine, but that's not what happens on the build daemon: the buildd takes a minimal chroot, then adds only the Build-Depends
(01:17:31 PM) RainCT: recon: and you don't need to install all build dependencies on your machine
(01:17:34 PM) dholbach: also it's a "clean system"
(01:17:41 PM) dholbach: right, good point RainCT
(01:17:51 PM) dholbach: <db-keen> QUESTION: .desktop files belong in different places depending on kde3/kde4/gnome. How is this usually handled in a debian package?
(01:18:15 PM) james_w: recon: it also allows you to build for a release that you are not running, e.g. to backport to dapper.
(01:19:45 PM) dholbach: db-keen: they are just installed into one place
(01:20:12 PM) dholbach: as I understand it gnome-panel (for example) understands where to look them up
(01:20:27 PM) dholbach: please correct me if I'm wrong - I never dived into this
(01:20:34 PM) RainCT: Until now I installed everything in /usr/share/applications/
(01:21:04 PM) dholbach: RainCT: that's where I install .desktop files to too
(01:21:12 PM) RainCT: there is some directory for KDE but I'm not sure how this works.. perhaps jpatrick or someone other can elaborate on this
(01:22:06 PM) dholbach: what I've experienced is that menu entries for KDE files pop up in my menu even if I use GNOME, so if KDE3/4 uses a different directory, they still are shown :)
(01:22:19 PM) dholbach: <secretlondo> QUESTION: (sorry if this is the wrong session). What is a "native package" - I've read that the underscore vs hyphen thing is connected to "native packages"
(01:22:30 PM) RainCT: and then .desktop files can also be used for stuff other than the menu, placing the file in some special directory, but I don't know neither how this works...
(01:22:36 PM) dholbach: secretlondo: that's a good question - it gets asked a lot :)
(01:23:39 PM) dholbach: secretlondo: a non-native package is the "usual" case where you take an upstream tarball directly from their website, rename it to        <software>_<upstreamversion>.orig.tar.gz
(01:23:50 PM) dholbach: then extract it, add the debian/ubuntu packaging, then build the source package
(01:24:06 PM) dholbach: and get a <software>_<upstreamversion>-<ubunturevision>.diff.gz
(01:24:16 PM) dholbach: so it's a clear separation between 'upstream code' and 'distro code'
(01:24:28 PM) ***secretlondo nods
(01:24:32 PM) akshay: now i understand more...thanks for the question secretlondo
(01:24:33 PM) dholbach: in the case of a native package, it's all just one .tar.gz
(01:24:52 PM) dholbach: so for example ubuntu-artwork which has no released upstream tarball
(01:25:03 PM) dholbach: it's    ubuntu-artwork_45.tar.gz
(01:25:06 PM) dholbach: no .diff.gz
(01:25:10 PM) dholbach: no "ubuntu revision" number
(01:25:39 PM) dholbach: <akshay> QUESTION: Where can I find the current distro revision? (e.g. <package>-2.23.4-0ubuntu1)
(01:25:56 PM) dholbach: akshay: can you try to rephrase your question? I'm not sure I understand
(01:26:14 PM) dholbach: <RainCT> akshay: what version number a package has in hardy, you mean?
(01:26:14 PM) dholbach: <akshay> RainCT: precisely
(01:26:24 PM) RainCT: akshay: you can find the version number checking on http://packages.ubuntu.com/<package name>
(01:26:36 PM) dholbach: if you run hardy, you can just run;    apt-cache showsrc <package>
(01:26:58 PM) dholbach: if you don't run hardy yet, you can either check out RainCT's page or http://launchpad.net/ubuntu/+source/<package>
(01:27:02 PM) geser: or use the rmadison tool from devscripts
(01:27:15 PM) RainCT: or if you have a hardy entry in /etc/apt/sources.list (a deb-src is enough, which you should have to be able to use "apt-get source") then you also see it with apt-cache
(01:27:34 PM) dholbach: what I really like is          aptitude changelog <source package>
(01:27:35 PM) RainCT: apt-cache show package | grep Version       will give you both, the version in Gutsy and the version in Hardy in that case
(01:27:58 PM) akshay: understood. Thanks.
(01:28:47 PM) dholbach: any more questions? any problems you ran into? things that are not quite clear from other sessions? things you've always wondered? like what james_w's favourite kind of music is?
(01:29:02 PM) james_w: :)
(01:29:06 PM) dholbach: <polopolo> QUESTION: When I upload a package to REVU, but it's not possible to add it to hardy, should it be added to the next version or should I try it again when the time's comes again?
(01:29:22 PM) dholbach: polopolo: always upload 'to the current development release'
(01:29:38 PM) dholbach: it should be quick enough to update to 'intrepid' once it's open :)
(01:30:00 PM) polopolo: dholbach: ok I understood
(01:30:06 PM) dholbach: excellent
(01:30:13 PM) dholbach: <akshay> QUESTION: What is the "XSBC" in  XSBC-Original-Maintainer?
(01:30:19 PM) dholbach: akshay: that's something I wondered myself
(01:30:27 PM) akshay: haha
(01:30:37 PM) dholbach: and I think somebody asked it before, somebody else answered and I forgot it again
(01:30:38 PM) dholbach: sorry
(01:30:52 PM) RainCT: X: User defined (not defined in the debian policy), SBC = the field should be visible in the Source, in the Binary and in the Changes file
(01:30:55 PM) RainCT: iirc
(01:31:07 PM) akshay: dholbach:np I know what goes in the field so its ok
(01:31:07 PM) norsetto: X just mean is an extra-flag user defined
(01:31:18 PM) norsetto: SBC are for source, binary and control respectively
(01:31:35 PM) dholbach: akshay: there you go - it's always good to ask :)
(01:31:37 PM) norsetto: means the field will be added to those packages
(01:31:48 PM) akshay: thanks guys
(01:31:50 PM) RainCT: norsetto: what do you mean with 'control'?
(01:32:08 PM) norsetto: ops, changes :-)
(01:32:33 PM) RainCT: cool, I didn't say it wrong :)
(01:32:34 PM) polopolo: dholbach: well, if there are no questions, I wanna know why you are a part of MOTU? whatÅ› the history in it?
(01:32:46 PM) dholbach: polopolo: nice question :)
(01:33:10 PM) dholbach: back when I joined the MOTU team, I really should have spent the time on my thesis instead
(01:33:51 PM) dholbach: but I had to update a library to a newer version and I had done it in a personal repository (PPA did not exist back then), so mvo (and others) encouraged me to do it right
(01:33:59 PM) dholbach: and join the team
(01:34:20 PM) dholbach: the processes were all very different but what I liked so much about working in the Ubuntu team was the pioneer atmosphere
(01:34:28 PM) akshay: dholbach: I am doing my PhD too, do you advice against joining the MOTU now :)
(01:34:41 PM) rZr: may i ask a question ?
(01:34:46 PM) dholbach: there's always something to do, always something to take care of, new teams to found, people to plan new things with etc
(01:34:58 PM) rZr: about yestaday package xnetcardconfig ?
(01:34:58 PM) dholbach: akshay: not at all - I finished my thesis on time :-)
(01:35:03 PM) dholbach: rZr: fire away
(01:35:07 PM) akshay: great, then I have nothing to worry about
(01:35:08 PM) rZr: I submited the debdiff
(01:35:29 PM) ***dholbach hugs akshay
(01:35:37 PM) rZr: and removed the original maintainer from debian/control
(01:35:41 PM) akshay: i feel loved
(01:35:43 PM) dholbach: rZr: I replied on the bug
(01:35:51 PM) rZr: since the package never entered debian
(01:36:08 PM) dholbach: rZr: we usually don't do that unless we really intend to maintain the package
(01:36:14 PM) akshay: got to go, this was a lot of fun. Will be back next week. bye
(01:36:27 PM) rZr: so i dont see why we should keep a reference to debian
(01:36:39 PM) dholbach: bye akshay
(01:36:45 PM) james_w: akshay: this session is normally earlier in the day, so don't get caught out.
(01:36:48 PM) rZr: dholbach: I plan to "adopt" this one and pushing into debian then
(01:36:54 PM) RainCT: bye akshay
(01:36:59 PM) dholbach: rZr: in this case the upstream author is listed as the maintainer
(01:37:17 PM) dholbach: rZr: you probably should get in touch with him before changing the maintainer field
(01:37:24 PM) rZr: ok will do then
(01:37:26 PM) dholbach: rZr: I was just surprised you changed it
(01:37:29 PM) dholbach: ok great
(01:37:38 PM) dholbach: <RainCT> QUESTION: Is the priority= field in debian/changelog used for anything in Ubuntu?
(01:37:50 PM) dholbach: RainCT: that's a good question for Kamion :)
(01:38:03 PM) dholbach: the only use of it I know is that dpkg will complain if you tell it to remove an essential package
(01:38:04 PM) LucidFox: RainCT> I assume you meant urgency?
(01:38:10 PM) RainCT: ups, yes
(01:38:10 PM) akshay left the room.
(01:38:13 PM) LucidFox: I've been wondering it as well
(01:38:21 PM) dholbach: oh, you mean urgency?
(01:38:26 PM) dholbach: urgency is not used at all
(01:38:26 PM) RainCT: yes
(01:38:36 PM) dholbach: it's pointless to change it
(01:39:04 PM) LucidFox: while we're at it, what is priority in debian/control used for? Is there any difference between optional and extra for Ubuntu?
(01:39:23 PM) RainCT: (19:38:16) dholbach: the only use of it I know is that dpkg will complain if you tell it to remove an essential package
(01:39:27 PM) RainCT: :P
(01:39:40 PM) dholbach: LucidFox: I think that synaptic (and other package managers if they support it) will display it in different categories
(01:39:41 PM) rZr: dholbach: I feared that XSBC-Original-Maintainer field is tracked and generate unwanted trafic to debian ..
(01:39:54 PM) dholbach: it has its relevance in the policy, but that's all I know
(01:39:55 PM) james_w: essential is not actually part of the priority.
(01:40:07 PM) rZr: dholbach: since no process ever started regarding debian  and this package
(01:40:19 PM) rZr: no RFS or ITP
(01:40:28 PM) LucidFox: rZr> If a package is actively maintained in Debian, Ubuntu generally commits itself to small, nonintrusive changes, and tries to push everything not Ubuntu-specific back to Debian
(01:40:32 PM) dholbach: rZr: no, it doesn't, we still set it for NEW packages (that never were in Debian)
(01:40:47 PM) LucidFox: hence the need for XSBC-Original-Maintainer being the Debian maintainer
(01:41:08 PM) dholbach: all current questions answered?
(01:41:17 PM) rZr: LucidFox: the package i am talking about is a custom built out of debian
(01:41:20 PM) RainCT: james_w: argh I'm stupid today :P
(01:41:25 PM) secretlondo: no - there are more in -chat
(01:41:37 PM) LucidFox: Ooh, Japanese.
(01:41:48 PM) dholbach: <secretlondo> QUESTION: Is there an easy way of reusing PPA work. I'm planning on using my PPA to experiment with packaging
(01:42:00 PM) dholbach: secretlondo: can you explain what you mean by 'reusing'?
(01:42:21 PM) rZr: dholbach: I'll update the debdiff, contact the author and merge it to debian then
(01:42:28 PM) dholbach: rZr: great, thanks
(01:43:12 PM) james_w: <secretlondo> as in getting the same package in, say, intrepid
(01:43:17 PM) secretlondo: getting it into, say, intrepid. In the last session celso said something about making a connection between PPAs and REVU
(01:43:25 PM) rZr: dholbach: debian would never accepted a such package as it was anyway ;)
(01:43:52 PM) rZr: secretlondo: that's would be nice indeed
(01:44:11 PM) rZr: secretlondo: an a branch manager then ..
(01:44:37 PM) dholbach: secretlondo: not right now unfortunately - REVU has features that PPA does not have (diff between uploaded versions, etc), that's why we currently stick with REVU for NEW packages
(01:45:07 PM) dholbach: it's unfortunate and yet another site to register for, but that's all I can say right now
(01:45:18 PM) RainCT: dholbach: eh.. there's no signup :)
(01:45:32 PM) secretlondo: ok
(01:45:33 PM) dholbach: right, you have to join the team and ask for the keyring to be synced
(01:45:53 PM) dholbach: <db-keen> QUESTION: well then ignoring .desktops, how should a Debian package handle files that may or may not be installed based on some system aspect?
(01:46:12 PM) dholbach: db-keen: can you explain a usecase?
(01:47:23 PM) db-keen: Sometimes a program might use a configuration system like GConf if it is available, but can easily work without it, just won't persist settings between sessions
(01:47:48 PM) dholbach: packages usually install files in one place, if they might be needed in another place you can use symlinks for that
(01:48:06 PM) dholbach: if it's files that probably are not needed at all, you could stick them in a separate package that is only recommended or something
(01:49:03 PM) db-keen: I just wouldn't be sure where to put a gconf schema without gconf installed
(01:49:05 PM) RainCT: db-keen: add gconf to recommends or suggests dependending on how necessary it is (recommends are usualy installed automatically, suggests not)
(01:49:39 PM) dholbach: db-keen: just install the gconf schema, it's just a few kb extra, if it's not needed and it's ok to not be used, it will live in /usr/share/gconf/schemas
(01:50:01 PM) dholbach: <polopolo> QUESTION: If I wanna upload a package to ubuntu/debian, is it needed to call the devolper of the upstream package first? or not? and if yes, what if I cannot find the upstream devolper?
(01:50:29 PM) dholbach: polopolo: if you upload a NEW package, you act as its maintainer - that's a role of responsibility
(01:50:46 PM) dholbach: polopolo: because you liaise between the upstream developers, the package's users, other developer and so on
(01:50:59 PM) dholbach: you're one of the important bonds that make open source happen and that ubuntu is built upon
(01:51:10 PM) dholbach: so yeah: it's great if you let upstream know and have a good relationship with them
(01:51:28 PM) dholbach: it's also one of the things that make work in the open source landscape and particularly in Ubuntu so exciting
(01:51:35 PM) dholbach: you're in touch with a lot of people
(01:51:43 PM) dholbach: and if you fix things, you make a lot of people very happy :-)
(01:51:55 PM) polopolo: dholbach: ok, I undersrand it ,well, there are no question, can I ask a personal question?
(01:52:05 PM) dholbach: polopolo: go for it
(01:52:43 PM) polopolo: dholbach: why do you use linux and now windows? howlong do you use linux? howlong do you use ubuntu? and why ubuntu and not mandriva pclox opensuse etc?
(01:53:09 PM) dholbach: I guess you mean "not windows", right? :)
(01:53:18 PM) norsetto: not what?
(01:53:23 PM) dholbach: hehe
(01:53:24 PM) polopolo: yes, not windows sorry
(01:53:45 PM) dholbach: I just use windows for my taxes stuff, there's just no work-able program for that in the Linux world (if somebody knows something that works for German taxes, please let me know)
(01:54:18 PM) secretlondo: there is something as we had a sync request for it as it was on the 2007 version
(01:54:20 PM) dholbach: I've used Linux for 8 or 9 years now and I was always excited by the people and what they make happen
(01:54:29 PM) ***secretlondo remembers the bug ;)
(01:54:32 PM) snewland: polopolo: many of us probably have input on that question
(01:54:50 PM) dholbach: I find it so much more usable and it's great fun to be part of the huge community
(01:55:20 PM) dholbach: I used Debian before I used Ubuntu, all the people who invited me to join the community then finally made it
(01:55:35 PM) dholbach: everybody was friendly (and forgiving when I messed things up)
(01:55:53 PM) dholbach: especially seb128, he was really patient with me, when I did not understand shlibdeps in the first place :)
(01:56:08 PM) db-keen: I'm still unsure of how I should be doing this: If gconf isn't installed, should I still be putting files in that directory?
(01:56:19 PM) dholbach: db-keen: yeah
(01:56:32 PM) ***seb128 hugs dholbach
(01:56:38 PM) ***dholbach hugs seb128 back
(01:56:52 PM) dholbach: it's great to work with seb128 :-)
(01:56:55 PM) dholbach: do we have any other questions?
(01:57:15 PM) ***polopolo gonna ask to dholbach: gonna include this personal talk also on the ubuntu wiki or not?
(01:57:28 PM) dholbach: polopolo: sure :)
(01:57:48 PM) dholbach: OK everybody, if that's it, let me give you a few final pointers:
(01:58:06 PM) dholbach: http://wiki.ubuntu.com/MOTU/GettingStarted <- bookmark it and go from there :)
(01:58:21 PM) dholbach: next MOTU Q&A Session every Friday 13:00 UTC
(01:58:37 PM) dholbach: there's also always #ubuntu-motu and ubuntu-motu@lists.ubuntu.com
(01:58:51 PM) dholbach: thanks everybody for this great session - you ROCK
(01:58:56 PM) AstralJava: Got distracted for a bit, but thanks Daniel again for your time! :)
(01:59:08 PM) ***polopolo wanna thank dholbach for this session
(01:59:09 PM) pranith: dholbach, thank you
(01:59:11 PM) secretlondo: thank YOU!
(01:59:28 PM) emgent: heya people
(01:59:31 PM) Iulian: Thanks dholbach!

MeetingLogs/devweek0802/QA (last edited 2008-08-06 16:35:32 by localhost)