/srv/irclogs.ubuntu.com/2008/03/25/#ubuntu-classroom.txt

=== anthony is now known as tonyyarusso
=== tonyyarusso is now known as anthony
=== neversfelde_ is now known as neversfelde
james_wHi all, there's a MOTU School session scheduled for here in 20 minutes, that doesn't clash with anythin does it?19:41
james_wI realise this is a bit late to be checking19:41
pleia2nope, it's fine19:42
james_wthanks pleia219:45
geserHi james_w19:51
james_whi geser19:51
james_wthanks for helping out19:52
james_wI might say some stupid things, so please feel free to correct me if I do.19:52
james_wHi, all, it's 20:00, time to get started?20:00
james_wWho's here for the MOTU School session?20:00
* sebner is20:00
* RainCT is around to see what's going on :)20:01
sebneraloha RainCT btw :)20:01
* Iulian too20:01
* highvoltage is here ready for duty20:01
* ssweeny three20:01
* geser is here to help out where needed20:01
james_whi all, good to see you all.20:01
james_wfeel free to ask any questions as we go, or to just point out where I'm being silly.20:02
james_wFirst off, who can tell me what FTBFS stands for?20:02
sebnerFails to Build from Source20:02
highvoltagefailed to build from source!20:02
james_wI neglected to put that in the announcement email, which I saw confused at least one person.20:02
highvoltage(without the exclamation mark)20:02
james_wcool, that's a good start.20:02
james_whas anyone worked with them before20:03
james_w?20:03
* geser has :)20:03
* sebner also20:03
sebneraloha DktrKranz :) :) :)20:03
highvoltagehad to fix them before, but not for ubuntu/debian packages really.20:03
DktrKranzhi sebner20:03
james_wright, so I think a quick overview is all that is called for then.20:03
james_wFTBFS means that a source package was uploaded, but it couldn't be built on the buildd.20:04
james_wThis means that the binary packages are not available in the archive, so users are not able to get the bug fixes or the juicy new features that are available.20:04
james_wso, it's obviously important to keep on top of the failures, so that the packages make it out to the users20:05
james_walso they are pretty annoying if you are trying to do a transition, as if the packages don't build it's more work to complete the transition20:05
james_wso, where do we find out what packages FTBFS?20:05
james_wwe start off by going to the ubuntuwire QA page:20:06
james_whttp://qa.ubuntuwire.com/20:06
james_wthere's two pages there we can look at, the first link:20:06
james_whttp://builder.ubuntuwire.com:9998/dist/hardy/arch/i38620:06
james_wis just a record of a lot of rebuilds, a bit lower down is the one we are going to look at:20:06
james_whttp://people.ubuntuwire.com/~geser/build_status/20:06
james_wif you open that you can see that it lists all the source packages that failed to build on at least on architecture.20:07
=== neversfelde_ is now known as neversfelde
sebnergeser: a lot of work for you :P20:07
james_wyou can see that there are a lot of failures on some architectures, such as hppa.20:07
james_wand fewer for the more common architectures, such as i38620:08
james_wsometimes you can see a horizontal row of red, which means that the package failed on all architectures,20:08
james_wthis will often mean that the package is really bad, or there is some silly mistake in the rules file or similar,20:09
geserjust for comparison http://people.ubuntuwire.com/~geser/build_status-gutsy/ where there wasn't much effort to fix FTBFS20:09
james_wthese ones are usually either really easy, or really hard.20:09
james_wso, there are three main colours in use.20:10
james_wThe first is green, which means that the package is currently building, we can ignore these until they fail.20:10
james_wThe second is amber, which means that the package is in the dep-wait state.20:10
james_wThis means for instance that the package has a versioned build-dependency that cannot be satisfied currently.20:11
gesergreen is failed to upload, which means the package build successfully but soyuz failed to upload the debs to the archive for some reason20:11
sebnergeser: what reason could that be?20:11
james_wah, my apologies, it links to the log with BUILDING, I should have read the key.20:12
james_wyou can find the key to the colours at the top of the page.20:12
gesersebner: e.g. LP tried to build packages again which weren't touched since breezy (the version is still the same) and the archive didn't accept the "second" upload20:13
james_wgeser: am I right in saying that packages in the dep-wait state usually take care of themselves?20:14
sebnergeser: k :)20:14
slangasekmost of them do20:14
geserjames_w: yes, if the waited build-dependency is available they will build automatically20:14
james_wthanks20:15
geserbut it can't hurt to look why they are in dep-wait20:15
gesere.g. the build-dependency failed to build20:15
geseror a main package build-depending on something from universe20:15
slangasekbut some of them won't, because the build-dependency will never become available for the arch - wrong build-depend on the architecture, package not appropriate for the arch and should be moved to P-a-s, or some buildd admin goofed when setting a manual dep-wait20:15
james_wso, that leaves packages in the red as the third main group, these are the ones where the build failed for some reason, and always require manual intervention.20:16
rockstar_geser, in the case of a main package depending on something from universe, how do you proceed?20:16
james_wsometimes that intervention is as simple as trying again.20:16
james_wrockstar_: if the dependency is for some optional functionality that can be abandoned then the build-depends can be dropped.20:16
james_wif it's a required dependency then a Main inclusion request should be filed for the package in universe so that the main package can depend on it.20:17
james_wanother choice would be to split the package in main if possible to move the part that depends on the universe package to universe. This may be appropriate for plugins packages and the like.20:18
james_wso, how do we deal with a package in the failed state?20:19
james_wfirstly you can see what the status of the package is in Debian, as a lot of the failures will occur there as well.20:19
james_wif you look in the rightmost column of the table you will see pairs of links,20:20
james_w"PTS" and "BTS"20:20
james_wthe second is the bug tracking system for the Debian package.20:20
james_wclick on that and you will be taken to the bug page.20:20
james_wFailures to build are often reported very quickly to the Debian BTS, as there are a few people that regurlarly rebuild the entire archive, and so pick up on these problems quickly.20:21
james_wthere are also bugs filed if an upload fails to build.20:21
james_wso, if you click on the BTS link for acl2 you will see an example20:22
james_whttp://bugs.debian.org/cgi-bin/pkgreport.cgi?src=acl220:22
james_wthe string FTBFS will usually be in the summary of bug reports, so you can quickly search for that, in this case you will see20:23
james_whttp://bugs.debian.org/cgi-bin/pkgreport.cgi?src=acl220:23
james_wsorry,20:23
james_whttp://bugs.debian.org/cgi-bin/bugreport.cgi?bug=45906020:23
james_wthis could well be the problem with the package in Ubuntu as well.20:24
slangasek(also, FTBFS bugs in Debian /should/ be filed as severity important or serious)20:24
james_wyes, so they will usually be right at the top of the page.20:24
james_wthe other alternative is that the problem has already been fixed in Debian, in which case the bug20:24
james_wwill be closed, and show up further down.20:24
james_wThe PTS link can also help here, as it points to the various uploads of the package and other things, so you can work out what happened to the package.20:25
highvoltagewould an FTBFS bug in universe also be marked as serious or important, or just for main?20:25
james_whighvoltage: this is for Debian, which doesn't have that distinction.20:25
highvoltageok20:25
slangasekright, the distinction in Debian is regression -> serious, needs porting -> important20:26
james_whowever, if a bug was filed in launchpad for a FTBFS then I assume that it would be given a Critical or High severity.20:26
geserit's also good to compare the build logs to see if it's the same FTBFS error20:26
slangasekbut it's simplest to just look at both groups if you're looking in the Debian BTS20:26
james_wbut as geser says you can't just assume that it is the same problem, so let's look at the build log to see how we work out what went wrong.20:26
james_wIn Debian the bug will either contain the last part of the build log, or the full thing will be attached (or both)20:27
sebnerjames_w: SHELL = /usr/bin/bash in debian/rules ?20:28
james_win Ubuntu you can go back to the status page and click on the failed entry in the arch you are interested in, so let's look at the one for acl220:28
james_wsebner: it may be, as it is reported to be a bash problem, but that's not the preferred solution really.20:28
sebnerjames_w: k :)20:28
james_wso the acl2 log for i386 is at20:28
james_whttp://launchpadlibrarian.net/7731665/buildlog_ubuntu-gutsy-i386.acl2_3.2-1_FAILEDTOBUILD.txt.gz20:28
james_wif we open it and scroll to near the end you will see what the problem was in Ubuntu20:29
james_wand in this case you will see that it appears to be the same error message, and so it appears to be the same problem.20:29
james_wfor those that don't know about this issue I will say a few words on it.20:30
james_wThere are a whole bunch of shells available. The default on Ubuntu (and Debian) for when you log in as your user is /bin/bash20:30
james_whowever Ubuntu took the decision to switch /bin/sh to point to /bin/dash instead of /bin/bash, which it has historically done in Debian, and older releases of Ubuntu20:31
geserone note: acl2 FTBFS only on i386 (and succeed on the others). The FTBFS list shows only the i386 entry. arch:all packages have also only one entry as the package is only build on the i386 buildd. So lines with i386 only may also be equal important as lines full red.20:31
james_wdash, as the name suggests, is faster than bash20:32
geserjames_w: are you looking at the correct log? the last version of acl2 is 3.3-1ubuntu1: http://launchpadlibrarian.net/12247407/buildlog_ubuntu-hardy-i386.acl2_3.3-1ubuntu1_FAILEDTOBUILD.txt.gz20:33
james_wand as /bin/sh is what system scripts get as their interpreter this makes things run quicker, including the boot process20:33
slangasek(hmm, I wonder what it suggested back when it was just called "ash" ;)20:33
sebnerjames_w: when we log in as user it's /bin/bash. why not /bin/dash ?20:33
RainCTsebner: bash has more features :)20:34
james_wgeser: dammit, I switched to the gutsy page to have a look, thanks for pointing that out.20:34
sebnerRainCT: but dash is faster?20:34
james_wsebner: because /bin/bash is in /etc/passwd for your user20:34
sebnerThey should merge ^^20:34
slangasekdash is not a very good interactive shell20:34
gesersebner: because /etc/passwd has /bin/bash as shell for you20:34
slangaseke.g., it doesn't have readline support20:34
sebnerk20:35
RainCTsebner: dash is faster, but bash is more convenient for interactive usage20:35
james_wok, so I'll drop the bash/dash discussion as it's not relevant here20:35
james_wexcept to say that this was the cause of a lot of problems for Ubuntu, and so a lot was fixed. However, Debian also aims to allow this change to be made, and so they care now about the fixes20:36
james_wso if you fix something in a package to do with bash/dash, make sure to forward the fix to Debian, as it is a release goal for lenny.20:36
james_wok, so we'll instead look at the package that I picked out for this, can you all open20:37
james_whttp://launchpadlibrarian.net/12605855/buildlog_ubuntu-hardy-i386.dag2html_1.01-2build1_FAILEDTOBUILD.txt.gz20:37
james_wand scroll to the bottom?20:37
james_wyou will see that this package fails to build with an error20:37
james_w(I picked an easy one on purpose)20:37
james_wmake[1]: camlp4r: Command not found20:38
james_wmake[1]: *** [dag2html.cmo] Error 12720:38
james_wso, the build uses a command that isn't available.20:38
james_wThis is another common source of problems.20:38
sebnermissing build-dep?20:38
james_wIf the build uses a command then the package should Build-Depend on the package that provides the command.20:39
james_wsebner: exactly20:39
james_wso, let's fix this one shall we.20:39
james_wFirst, you should install "apt-file" if you haven't already.20:39
james_w"sudo aptitude install apt-file && sudo apt-file update"20:39
james_wnow, you will be able to query apt-file to find which package contains the command20:39
james_wapt-file search camlp4r20:40
geseror packages.ubuntu.com for the lazy ones :)20:40
james_wwhich tell me (amongst other things)20:40
james_wcamlp4: /usr/bin/camlp4r20:40
james_wso, we can grab the source of the package in question (dag2html)20:41
james_wapt-get source dag2html20:41
james_wand check its debian/control file for the Build-Depends line20:41
james_wBuild-Depends: debhelper (>= 4.0.0), ocaml-native-compilers20:42
james_wso, it doesn't list the package we found, but first we should make sure that it is supposed to, what's this "ocaml-native-compilers" package?20:42
james_wapt-cache show ocaml-native-compilers20:42
james_wthat contains:20:43
james_wThis package contains the native code version of the compilers and lexer20:43
james_w (ocamlc.opt, ocamllex.opt, ocamlopt.opt, camlp4o.opt and camlp4r.opt).20:43
james_whmm, it says "camlp4r.opt", and we want camlp4r, maybe that's the problem.20:43
Flare183looks like it20:44
james_wso, what do we think the solution is?20:44
geserit looks like camlp4r moved from ocaml-nox (gutsy) into it's own package camlp4r in hardy20:45
sebnergeser: camlp420:45
sebnerhttp://packages.ubuntu.com/hardy/camlp420:45
Flare183looks like something in the rules file20:46
sebnerd.p on camlp420:46
gesersebner: yes, I typed the package name from head20:46
sebnerk20:46
james_wso, in the build log I can see "dh_clean: Compatibility levels before 4 are deprecated."20:46
james_wso it's possible that this is an old package that has not been keeping up with transitions20:47
geser[2004-09-15] Accepted 1.01-2 in unstable (low) (Cyril Bouthors)20:47
geserthe last upload to Debian20:48
james_wthanks geser20:48
geserthat info is from the PTS entry for that package20:49
james_wok, so thanks to geser we know that ocaml-nox used to contain the file20:50
james_wocaml-native-compilers is in the Build-Dependencies, and that depends on ocaml-nox20:50
james_wso that would have made the commands available before the transition20:51
james_wso, we need to add camlp4 to Build-Depends to bring the commands back I think20:51
geserthat would be my guess too20:52
james_wthat is why when you create a package you should ensure that anything it uses, either when building, or when running, is provided *directly* by the Build-Depends.20:52
james_wif you rely on an indirect dependency then this may happen eventually, which creates more work.20:52
james_wso, I'll create a patch for this package, so that we can remove one more package from the list.20:53
james_whowever, it's important to still test the patched package, as a build log will only show you the first failure, it's possible the package will fail with a different error once this is corrected.20:54
james_whas anyone got any questions?20:54
james_whttp://bugs.debian.org/cgi-bin/bugreport.cgi?bug=443029 is the Debian bug report, so I will send any patch their as well.20:54
sebnerjames_w: we don't need any versioning here right?20:55
slangasek(how many licks does it take to get to the center of a tootsie roll FTBFS?)20:55
james_wsebner: I don't think so no.20:55
james_wslangasek: tootsie roll?20:56
slangasekjames_w: nevermind, I'm just making oblique cultural references to US TV commercials... :)20:57
gesersebner: a versioned build-dependency is only needed when an old package won't be sufficient20:57
sebnergeser: k20:57
james_wok, so if there's no more questions we'll wrap this up and I'll get on with the patch.20:58
gesersebner: the most common case: debhelper >= 5 if one uses compat level 5 (debhelper 4 doesn't support obviously level 5)20:58
james_wthanks to geser and slangasek for correcting me, and to everyone else for coming.20:58
rockstar_Thanks for taking the reins james_w20:59
sebnergeser: k20:59
james_wI don't know what the session will be next month, so if you have any ideas or suggestions please vote on the wiki.20:59
james_wthough given the date perhaps "how to have a rocking release party" would be a good session.20:59
slangasek:-)21:00
slangasekstep 1) fix the FTBFS bugs before release21:00
james_wor perhaps doing it after release would make more sense, in which case it would be "how to hug slangasek"21:00
slangasekheh21:00
gesersome note to the depwait on the ftbfs list: as the list gets generated once daily some dep-waits may be gone when one looks as the list, e.g. clutter-cairo right now, so it's good idea to double-check the build-status on LP21:00
sebnerjames_w: ehm. just test builded. now I have a different error. it still FTBFS21:06
james_wsebner: damn21:06
james_wsebner: shall we take this to -motu?21:07
sebnerjames_w: well. it's a FTBFS session ^^21:09
sebnerjames_w: http://pastebin.com/m4e44a0e821:09
sebnerBut I'm wondering why nobody except me test-builded it21:10
james_wsebner: in the session?21:11
sebnerjames_w: Well I'm the only one complaining21:11
james_wsebner: I think everyone else was treating it as a theoretical thing21:13
sebnerIt seems that I have further experience ^^21:13
sebnerjames_w: already found the mistake?21:23
james_wsebner: still installing the build dependencies21:24
sebnerah ^^21:24
sebnerjames_w: I suppose you have the same error?21:32
Laneysebner: I see it too21:36
james_wsebner: yep.21:38
geserpa_ru.cmo was part of ocaml-nox in gutsy but vanished in hardy21:41
james_wyep21:43
james_wI think we should just kill the package.21:43
sebnerjames_w: that's another way to kill FTBFS bugs ^^21:43
mok0I was afraid it was coming to this...21:44
james_wmok0: are you a fan of the package21:44
mok0no21:45
mok0Just waiting to see the bug resolved in the tutorial :-)21:45
sebnerhrhr21:45
LaneyAt least 59 people have it installed, according to popcon ;)21:45
james_wmok0: :-)21:45
mok0so this is a bug in camlp4 that was discovered here...21:47
james_wwhy?21:47
mok0because a file that used to be present in ocaml and was not moved to camlp421:48
james_wperhaps, I don't know enough about it to say whether that is a bug21:50
mok0... a consequence, at least21:50
Laneyhttp://caml.inria.fr/pub/docs/manual-camlp4/manual002.html talks about pa_ru.cmo21:51
james_wI'm going to email a bunch of people about this package21:52
james_wnamely the maintainer, the pkg-ocaml team, and debian-qa.21:52
geserjames_w: you should've picked up an easier case for the session :)21:56
james_wI thought it was easy :-)21:56
james_wthey never are...21:56
james_wactually, I had a better one, but someone uploaded a fixed version at the weekend.21:56
geserjames_w: you should've picked ocaml-alsa21:57
geserit was an easy one (and 6 other ocaml-* packages with the same error)21:57
james_wit will be useful though if we get to kick a bad package from the archive.22:00
sebnerwell no one knows. everybody left ^^22:00
geserjames_w: good you didn't pick scala as an example (the build log is huge)22:01
geser383M 2008-02-27 08:06 buildlog_ubuntu-hardy-i386.scala_2.5.0-1_FAILEDTOBUILD.txt22:03
sebnergeser: what's scala?22:04
gesera package with a FTBFS22:04
geserI don't know more22:04
sebnerxD22:04
geseronly that the build log killed my old box (1 GB RAM, no swap)22:05
geserI tried to open that build log in firefox22:05
DareDevilHello I have a problem with ubuntu can you help me please??22:05
sebnerDareDevil: #ubuntu22:05

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!