[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Assignments III (2003/04/18)



Tradiddlydum.

Given the exciting currency of inter-dependency problems at the moment
(with perl/postgresql/python, ocaml, and libvorbis getting discussed),
this week's addition to the tasks will include one of those each (in most
cases it's a package that's trying to be removed from testing).

Some background is probably required for you to grok this
properly. Basically the way britney, the testing scripts, works is a
brute force analysis of which packages can be added to testing without
either being broken themselves or breaking other packages. Depends,
Pre-Depend and Conflicts are taken into account; Recommends, Suggests
and Build-Depends/Conflicts are not. As a full brute force analysis
would be exponential work (there are over 1000 valid candidates at the
moment, giving 2**1000 possible combinations), we use what's called a
greedy algorithm -- we take one, try it, and if it works, we accept it
immediately even if that means two other packages somewhere else won't
go in later.

But since we're doing things one at a time, that means that if you
have two packages, A and B which have versioned dependencies on each
other, neither will go in. For example, perl 5.8 modules will not
work with perl 5.6, and perl 5.6 modules won't work with perl 5.8; so
updating perl alone will break libterm-readline-gnu-perl; but updating
libterm-readline-gnu-perl will also leave libterm-readline-gnu-perl
broken.

There are three possible ways of dealing with this. One is to specifically
say "try perl; then try all the other packages in the usual greedy
manner, and see if you can get back into a state that's no worth than
the current.  If you can - great, use it. If not, forget it, we'll
try again later". That's what's called "hinting" at a package, and is
expressed with a line like:

    run.do_all(0,["ocaml"])

at the appropriate place in update_out.py. Another way, which is
only possible once we get the number of valid candidates back down
to something reasonable, is to just automatically try "hinting" every
valid candidate, and seeing if any work. This is already implemented,
but takes more than a day to run and usually OOMs if there's many more
than 100 valid candidates; 1000 is right out of the question. It'll kick
in automatically when we get the number of valid candidates to a low
enough level. The third possibility, which isn't implemented but should
be possible, is to do some automatic analysis of the "Depends: foo bar"
hints already listed in update_excuses, to work out which packages are
good candidates for hinting, and to automatically do some of those.

A good way to find packages that're worth looking into is something like:

    grep '<li>Depends:' update_excuses.html  | sed 's,</a>,,;s/.*>//' | 
	sort | uniq -c | sort -n | less

which at the moment ends with:

    108 qt-x11-free
    110 gconf2
    138 python2.2
    170 perl
    222 gtk+2.0
    606 gcc-3.3

indicating the top few packages that are holding other things back. We'll
use gtk+2.0 as a case study. It's excuse says:

     * gtk+2.0 (2.0.6-3 to 2.2.1-4)   
          + Maintainer: Akira TAGOH
          + 20 days old (needed 10 days)
          + out of date on alpha: gtk2.0-examples, libgtk2.0-0,
            libgtk2.0-0png3, libgtk2.0-common, libgtk2.0-dbg,
            libgtk2.0-dev (from 2.2.1-2)
          + out of date on arm: gtk2.0-examples, libgtk2.0-0,
            libgtk2.0-0png3, libgtk2.0-common, libgtk2.0-dbg,
            libgtk2.0-dev (from 2.2.1-2)
          + Not considered

On alpha, it hasn't been tried at all. Looking at the wanna-build info, via
http://buildd.debian.org/ -> statistics -> ALL: alpha; we see:

    libs/gtk+2.0_2.2.1-4: Dep-Wait by rmurray-lully [optional:out-of-date]
      Dependencies: xlibs-pic (>= 4.2.1-6)
      Previous state was Building until 2003 Mar 04 18:21:42

that is, there's no point trying this package until xlibs-pic 4.2.1-6
or later is available on alpha. That's part of xfree86, and its build
log has been failing from a segfault in gzip, Bug#184057, now fixed,
and because flex changed. It's being held back because of that, because
of an RC bug about the same issue, and because of dependencies on gcc-3.3
packages.  A fix to the flex issue seems unlikely, so we'll instead try
forcing it into testing, and getting it autobuilt there with the older
flex and older gzip. Moving xfree86 to testing has further problems,
since there's still some packages that depend on xlib6g, which has been
removed between xfree86 4.2.1-3 and 4.2.1-6. Amongst other things, this
breaks libforms0.88 and libforms0.89 which are only in testing because
other things depend on them without having been updated, so they need
to be fixed up too. LyX is one such package, but updating it brings in
the Qt/Postgresql/KDE/Perl/Python mess, so it's going to get temporarily
dropped from testing, unfortunately.

gtk+2.0 is also out of date on arm, because its build-dependencies failed
to install correctly on the autobuilder:

   Re-checking for JadeTeX memory dumps ...
   ERROR: JadeTeX memory dump (jadetex.fmt) cannot be found
   ERROR: PDFJadeTeX memory dump (pdfjadetex.fmt) cannot be found
   ERROR: JadeTeX/PDFJadeTeX memory dump not found
   This package could not be installed.

This is Bug#183285 on jadetex, which hasn't seen much activity for a
while now, and is marked as normal, now upgraded to grave.

Obviously this can get horrendously complicated: there are lots of
ways problems can arise, dependencies can get tangled amongst many many
packages, and resolving the problems can require jumping from supplying
patches, ripping out packages, tweaking buildds, hacking on the toolchain,
and all sorts of things.

Basically, you need to work out what's breaking; why it's breaking;
and what can be done about it. If it's breaking in unstable, make sure
there're bugs filed, and see about fixing them. If it's breaking in
testing, see why the other packages aren't getting updated, and work
out what can be done about that.

So, there endeth the lecture. Homework is:

Neil Schemenauer

	 56472 followup: patch was accepted, but we've now got build
	       issues. So the saga gets continued in #188923.
 	 80888 followup: work out what to do about this package
 	143852 followup: a patch needs to be written

	142091/um-pppd followup: NMU needed? mark as MIA/orphaned? 
 	182265/kaffe/ttthreeparser followup: NMU needed? mark as MIA/orphaned?
	188343/amp followup: sparc/powerpc binaries need updating or dropping

 	148726 [       ] libsasl-gssapi-heimdal dependency problems
 	151753 [       ] korganizer: Rebuild with libpisock5
	188923 [       ] ...(hppa/unstable): FTBFS: non-PIC in shared lib
	153007 [       ] tripwire: should be in non-US/non-free

	sced, xslideshow, devel-protocols
	-alsa-driver-0.5

Colin Watson

	146103 followup: any progress on 186299? any progress re: workaround?
	188400/qcam followup: NMU? mark as MIA/orphaned?
	188403/ipautofw followup: did the patch work?

	149460 [       ] perhaps race condition when bringing multiple tap ...
	153457 [ +     ] inetutils: policy violation section 13.3
	154155 [       ] lib-saxon-java: package well behind current stable ...
	154727 [       ] libdb-ruby: Version conflict between db2 and db3.
	155130 [       ] wvdial: pppd does not use provided password
	155158 [       ] fp-units-gfx: Package dependecies list must be ...

	mrouted, jpeg2ps, rumbagui
	-alsa-lib-0.5
 
Steve Langasek
	187905/hamfax followup: NMU? mark as MIA/orphaned?
	124290/lodju followup: anything happening?
	188120/astrolog followup: remove/update ia64/ppc/sparc bins?

	144841 [       ] doesn't build on arm
	155374 [P      ] Where are Installation Manual and Release Notes
	155472 [       ] icqv7-t_0.3.0pre2-3(hppa/unstable): FTBFS: non-PIC ...
	156057 [       ] timidity-patches: copyright file does not state ...
	156165 [       ] nscache: refuses to start

	xmms-goom, bulkmail, ucbmpeg
	-busybox-source-0.60.0

Federico Di Gregorio
	123306 followup: NMU/remove? mark as MIA/orphaned?
	143985 followup: NMU? mark as MIA/orphaned?

	 56713 [       ] dip: No cleanup after exit, duplicate route and ...
	127604 [ +     ] segfaults while building on alpha or ia64
	156415 [ +     ] installation breaks on devfs
	156750 [       ] vdkbuilder_1.2.5-10(hppa/unstable): FTBFS: bad ...
	
	icomlib, xbs, xsnow
	-cervisia

James A Morrison
	 46709 followup: why is GNU Mach 2.0 still unpackaged/unreleased?
	151071 followup: NMU needed?
	151551 followup: get someone to test the patch
	trn, font3d, xgobi followup: do any missing bins need to be removed?

	143825 [P      ] xutils: why is rstart.real a conffile?
	156600 [       ] FTBFS: hurd should build-depend on autoconf2.13
	156835 [       ] xfree86-tinyx_4.1.0-1(hppa/unstable): FTBFS: imake errors?
	157158 [       ] FTBFS: Build failure of detect on i386
	157394 [       ] pingus crashes when loading the first level

	ldmud, xzx, giflib
	yiff

Joey Hess
	157913 [       ] FTBFS: conflicting declarations
	158327 [       ] FTBFS: Build failure of tfm-arphic on i386
	159165 [    R  ] does not play anything
	159494 [P      ] current libwww-search-perl version unusable
	159548 [       ] FTBFS: Build failure of hugs98 on i386
	
	savant, snes9x, scm
	-clanlib0

Don't be afraid to recommend removing things from testing or unstable;
but do make sure that there's either no drawbacks ("doesn't work anyway /
isn't be maintained") or that the drawbacks are clearly trivial compared
to the win (in which case, please list what they are).

If you run out of things to do, please feel free to take the initiative in
doing more stuff.

Cheers,
aj

-- 
Anthony Towns <aj@humbug.org.au> <http://azure.humbug.org.au/~aj/>
I don't speak for anyone save myself. GPG signed mail preferred.

  ``Dear Anthony Towns: [...] Congratulations -- 
        you are now certified as a Red Hat Certified Engineer!''

Attachment: pgp0dhZUXFOdE.pgp
Description: PGP signature


Reply to: