CruftRemoval

Ubuntu Open Week - Cruft Removal 101 Workshop - Michael Casadevall - Thu, Nov 6th, 2008

(04:09:20 PM) NCommander: well
(04:09:30 PM) NCommander: The people demand it
(04:09:33 PM) jcastro: heh
(04:09:34 PM) NCommander: Thus I shall talk
(04:09:39 PM) fabrice_sp: I wiould be interested, but if I am the only one :-/
(04:09:43 PM) ***NCommander clears throat
(04:09:48 PM) fabrice_sp: really :-)
(04:09:58 PM) NCommander: Lets take a look at the oldlibs cruft sections of both Debian and Ubuntu
(04:10:01 PM) charlie-tca: I'll forward the questions if you want
(04:10:20 PM) NCommander: charlie-tca, yes, please
(04:10:29 PM) NCommander: http://packages.ubuntu.com/jaunty/oldlibs/ - Ubuntu's oldlibs
(04:10:51 PM) NCommander: and packages.debian.org seems to be down :-/
(04:10:53 PM) NCommander: (or lagging
(04:11:22 PM) NCommander: http://packages.debian.org/unstable/oldlibs/
(04:11:24 PM) NCommander: and there we go
(04:11:27 PM) fabrice_sp: question: how is this list populated? Automatically?
(04:11:40 PM) NCommander: fabrice_sp, its when the section in the control file is set to oldlibs
(04:11:53 PM) NCommander: Usually the Debian QA team will set it, and then that change trickles down to Ubuntu
(04:12:17 PM) andre___ is now known as andre__
(04:12:33 PM) NCommander: oldlibs is sorta the long term storage of cruft
(04:12:42 PM) NCommander: Its things we want to toss but can't get rid of due to rdepends
(04:13:30 PM) NCommander: There is actually a good example of cruft here, liblzo1
(04:13:54 PM) NCommander: http://packages.ubuntu.com/jaunty/oldlibs/liblzo1
(04:14:10 PM) NCommander: http://packages.debian.org/unstable/oldlibs/liblzo1
(04:14:39 PM) NCommander: The changelog the best reason to see why a library has ended up here
(04:15:06 PM) NCommander: CHecking the rdepends on liblzo1, on jaunty, we get:
(04:15:07 PM) NCommander: Reverse Depends:
(04:15:07 PM) NCommander:   transcode
(04:15:07 PM) NCommander:   liblzo-dev
(04:15:07 PM) NCommander:   liblzo-dev
(04:15:07 PM) NCommander:   dact
(04:15:19 PM) NCommander: we can safely ignore liblzo-dev since its part of the packaging itself
(04:15:27 PM) NCommander: Which leaves dact, and transcode as the two real rdepends
(04:16:12 PM) charlie-tca: <canta> why is cruft a problem?
(04:16:43 PM) NCommander: canta, another good question. Cruft is a problem because it increases the size of the archive, the amount of maintaince required to maintain it, and the work the security team needs to do to keep things going
(04:17:39 PM) NCommander: I'm currently working on migrating the dact package
(04:17:41 PM) persia: Also, there's usually bugs fixed in newer libraries and still extant in the older libraries, but perhaps hard to fix, if say, the fix required an API change.
(04:18:21 PM) charlie-tca: <gscholz> QUESTION: Sorry I missed the last session. How did you get the backward dependencies for liblzo?
(04:19:09 PM) NCommander: gscholz, apt-cache rdepends liblzo1
(04:19:41 PM) NCommander: canta, why don't you ask your question here
(04:19:48 PM) ***NCommander thinks its saner if we base this all in a single change
(04:19:52 PM) fabrice_sp: question: how do you know what is the new version? From packages.ubuntu.com?
(04:20:16 PM) NCommander: fabrice_sp, yeah, I searched for liblzo, then found it
(04:20:27 PM) NCommander: Its usually pretty obvious what the new package is once you see it
(04:21:15 PM) NCommander: now dact is actually a great example
(04:21:43 PM) NCommander: I recommend anyone who actually wants to experience doing a transition now grab the source package (please note, I'm doing this on intrepid/jaunty. If your using hardy, your millage may vary :-))
(04:23:06 PM) NCommander: You'll also want the devscripts, and build-essential packages (and apt-get build-dep dact && apt-get install liblzo2-dev)
(04:24:30 PM) NCommander: Once you grab the source package, and its build-deps, I recommend creating a new changelog entry with dch -i
(04:24:51 PM) NCommander: For my changelog, I used this:   * Changed rdepend liblzo -> liblzo2 to remove dependency on oldlibs
(04:26:18 PM) NCommander: then open debian/control, find the liblzo-dev dependency, and change it to liblzo2-dev
(04:26:24 PM) NCommander: Save, and build
(04:27:17 PM) NCommander: If done correctly, you should have a dact_0.8.41-4ubuntu1 package
(04:28:09 PM) canta: and how does it help if i do something alike with such packages? i cant put them into the ubuntu-archive
(04:28:19 PM) NCommander: canta, huh?
(04:28:29 PM) NCommander: I don't understand
(04:28:59 PM) NCommander: If you referring to getting the package into the Ubuntu archive itself, there is a process known as sponsoring to do extactly that
(04:29:43 PM) canta: So i can easily "pay" the community back if i would do transitions?
(04:30:31 PM) NCommander: canta, its a good way to get involved, As we're very close to archive open, we don't have any ones going on, but usually a large transition or two happens from time to time where people need to others to test packages, and help build them
(04:31:08 PM) fabrice_sp: Shouldn't we also update the Maintainer field and the Standard-version one? Or send the debdiff to Debian?
(04:31:58 PM) NCommander: fabrice_sp, normally for no-code changes transitions, its a bug on the BTS, to make the change. Generally speaking, you don't post a debdiff to the BTS unless your doing a non-maintainer upload in debian
(04:32:35 PM) NCommander: fabrice_sp, and yes, you would do all the normal work you do when you normally create a patch
(04:32:43 PM) fabrice_sp: ok
(04:33:28 PM) gscholz: QUESTION: So this was quite easy, but only because the library API did not change from liblzo1 to liblzo2?
(04:33:48 PM) NCommander: gscholz, the changelog of liblzo says the API did change, but dact doesn't use any changed APIs
(04:33:51 PM) NCommander: (aka, a recompile will fix it)
(04:34:00 PM) gscholz: OK
(04:34:15 PM) NCommander: while we've been talking, I actually been testing dact against a bunch of files and checking to see if it works right
(04:34:18 PM) NCommander: (it does :-))
(04:34:25 PM) NCommander: SO this change will land in jaunty hopefully relatively soon
(04:35:25 PM) NCommander: Now, assuming transcode doesn't need any magic to get going against liblzo2, the next step would be to file a removal request
(04:35:49 PM) NCommander: Now as we can't actually zap a package from the archive, I'll simply find an old request to show you the elements of a request
(04:36:21 PM) NCommander: if LP will work today
(04:36:40 PM) ***NCommander grumbles
(04:38:01 PM) NCommander: https://bugs.edge.launchpad.net/ubuntu/+source/ncurses4.2/+bug/269722
(04:38:03 PM) ubot5`: Launchpad bug 269722 in ncurses4.2 "Request for Removal: unneeded oldlibs" [Undecided,Fix released]
(04:38:44 PM) NCommander: That's what a removal request by a non-MOTU looks like (as I was at the time)
(04:40:36 PM) fabrice_sp: (Motu since 5 hours! Congrats :-) )
(04:41:16 PM) NCommander: Thats transitions in a nutshell
(04:41:33 PM) gscholz: QUESTION: We had the same topic yesterday. When you work on Ubuntu like this, how does the result go back to debian (which is "package-upstream")?
(04:43:12 PM) NCommander: ah
(04:43:17 PM) NCommander: ANother good question
(04:43:38 PM) NCommander: Usually with oldlibs transitions, its file a bug and a patch (if needed) and leave it as so
(04:43:50 PM) NCommander: SOmetimes Debian will match us on a transition ... and sometimes they won't
(04:45:24 PM) gscholz: QUESTION: I guess Debian should not spend the same afford? So you will make a patch and send it to Debian?
(04:46:33 PM) gscholz: QUESTION: I am not quite clear about, how communication works here.
(04:47:09 PM) NCommander: gscholz, Debian uses BTS (Bug Tracking System) to handle bugs
(04:47:27 PM) NCommander: You can use the 'reportbug --BTS=debian' command to file bugs on their tracker
(04:47:41 PM) gscholz: OK
(04:48:59 PM) fabrice_sp: Question: I was trying to the same for transcode, but the resulting package FTBFS, so in this case, it's patching time? Or I should report upstream?
(04:49:12 PM) fabrice_sp: s/to/to do/
(04:49:40 PM) NCommander: fabrice_sp, patching time :-)
(04:49:46 PM) fabrice_sp: :-)
(04:51:45 PM) fabrice_sp: Another question: How do we know if someone is already working on trying to remove oldlibs? Looking for bugs in launchpad?
(04:52:30 PM) persia: Just as a side note, if you patch code to migrate to a new version of a library, upstream is usually glad to receive the patch, and will probably include it in the next release.
(04:53:34 PM) NCommander: fabrice_sp, LP bugs is the offical mechanism to know who's doing what
(04:53:46 PM) NCommander: fabrice_sp, just check the package, and see if there is a bug about removal or something similar
(04:54:19 PM) jcastro: (5 minute warning)
(04:54:55 PM) NCommander: jcastro, we're done
(04:55:02 PM) jcastro: \o/
(04:55:07 PM) jcastro: thanks NCommander!
(04:55:14 PM) jcastro: and congratulations on becoming a MOTU!
(04:55:26 PM) fabrice_sp: Thanks NCommander!
(04:55:31 PM) charlie-tca: good job, NCommander

MeetingLogs/openweekintrepid/CruftRemoval (last edited 2008-11-06 21:57:08 by pool-70-16-60-167)