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

Making "auto decruft" easier for us and the release team



Hi!

I think that the decrufting of our archive is done rather suboptimal for both of us, the ftp-team as well as the release-team. I'm not yet sure, how things can be done easier, so I guess the best thing to start discussing it, is describing how things are don currently.


So, what is this decrufting thing? From our point of view, it's keeping the archive clean. Let's image a source package foo 1.0-1 builds a binary package libfoo1-dev and libfoo1. The binary packages then get renamed to libfoo2-dev and libfoo2. When the new package 2.0-1 is uploaded to unstable, the ftp-team get's a mail, telling us, something similar to the following:


==============
* source package foo version 2.0-1 no longer builds
  binary package(s): libfoo1, libfoo1-dev
  on <list of architectures>
  - suggested command:
dak rm -m "[auto-cruft] NBS (no longer built by foo)" -s unstable -a <architectures> -p -R -b libfoo1 libfoo1-dev
==============

When some ftp member reads that mail (and has time and dinstall isn't running), he can try that command. Sometimes the dependency checks don't find any packages (build-)depending on the gone packages, they get removed and everyone is happy.


The problems arise, when there are still some packages (build-)depending on the binary packages to be removed. I guess the correct thing for broken build-depends is to fill RC bugs against the affected packages, as they are (defacto) FTBFS.

The broken depends however are a bit trickier (and now the release team get's involved).

Currently, I
a) request binnmus for the packages, if I think that the problem will be solved by that. So far the release team (Hi Adam!) acted quite quick on them, the dependencies where gone, and a couple of dinstalls later, I could remove the obsolete binary packages. The cruft is gone, everyone is happy. b) Ignore the decruft requests, when I already know that the release team is aware of the transition (e.g. libao2). As I do that by memory, I might be wrong about that. c) Ignore the decruft request, if it's to complicate to understand the problem (and the solution) within a short time frame, and try to hope that it is gone, after the next dinstall run. (I do that, when I do some ftp work to fill the time till the next meeting ;)

I confess that "solutions" b) and c) are suboptimal, as they leave cruft in the archive and preventing packages from migrating to testing. See today's irc log from #debian-release for example: libimobiledevice droped libimobiledevice0, some packages depend in it. I requested some binnmus to solve that, but forgot one package in my binnmus bug report. And as I remembered, that I did request binnmus for that problem, I ignored the decruft request and neither did asked for the correct binmu, nor did the removal of the obsolete package.


So, how to we get things done easier? I think we need some easier way to tell the release team, what decruft stuff is currently pending due to some broken packages, so that they can request the correct binnmus (or ignore them, to avoid getting ongoing transitions tangled together), or even tell us to ignore them, as it only affects unrelated architectures.



For reference, currently the pending auto-cruft removals are:

* source package clalsadrv version 2.0.0-2 no longer builds
  binary package(s): libclalsadrv1
on alpha,amd64,armel,hppa,hurd-i386,i386,ia64,kfreebsd-amd64,kfreebsd-i386,mips,mipsel,powerpc,s390,sparc
  - suggested command:
dak rm -m "[auto-cruft] NBS (no longer built by clalsadrv)" -s unstable -a alpha,amd64,armel,hppa,hurd-i386,i386,ia64,kfreebsd-amd64,kfreebsd-i386,mips,mipsel,powerpc,s390,sparc -p -R -b libclalsadrv1

# Broken Depends:
aeolus: aeolus [mipsel]
ams: ams [alpha]
jaaa: jaaa [amd64 mipsel]
japa: japa [amd64 mipsel]


* source package gcc-4.1 version 4.1.2-29 no longer builds
binary package(s): g++-4.1 libmudflap0-dev libstdc++6-4.1-dbg libstdc++6-4.1-dev libstdc++6-4.1-pic on alpha,amd64,armel,hppa,hurd-i386,i386,ia64,kfreebsd-amd64,kfreebsd-i386,mips,powerpc,s390,sparc
  - suggested command:
dak rm -m "[auto-cruft] NBS (no longer built by gcc-4.1)" -s unstable -a alpha,amd64,armel,hppa,hurd-i386,i386,ia64,kfreebsd-amd64,kfreebsd-i386,mips,powerpc,s390,sparc -p -R -b g++-4.1 libmudflap0-dev libstdc++6-4.1-dbg libstdc++6-4.1-dev libstdc++6-4.1-pic

# Broken Depends:
libgenome: libgenome-1.3-0-dev
pinball: pinball-dev

# Broken Build-Depends:
omniorb4: g++-4.1


* source package gjs version 0.6-1 no longer builds
  binary package(s): libgjs0
on alpha,amd64,armel,hppa,hurd-i386,i386,ia64,kfreebsd-amd64,kfreebsd-i386,mips,powerpc,s390,sparc
  - suggested command:
dak rm -m "[auto-cruft] NBS (no longer built by gjs)" -s unstable -a alpha,amd64,armel,hppa,hurd-i386,i386,ia64,kfreebsd-amd64,kfreebsd-i386,mips,powerpc,s390,sparc -p -R -b libgjs0

# Broken Depends:
gnome-shell: gnome-shell


* source package kfreebsd-7 version 7.3-1 no longer builds
  binary package(s): kfreebsd-headers-7.2-1
  on kfreebsd-amd64,kfreebsd-i386
  - suggested command:
dak rm -m "[auto-cruft] NBS (no longer built by kfreebsd-7)" -s unstable -a kfreebsd-amd64,kfreebsd-i386 -p -R -b kfreebsd-headers-7.2-1

# Broken Depends:
kfreebsd-7: kfreebsd-headers-7.2-1-486 [kfreebsd-i386]
            kfreebsd-headers-7.2-1-686 [kfreebsd-i386]
            kfreebsd-headers-7.2-1-686-smp [kfreebsd-i386]
            kfreebsd-headers-7.2-1-amd64 [kfreebsd-amd64]


* source package kfreebsd-7 version 7.3-1 no longer builds
binary package(s): kfreebsd-headers-7.2-1-amd64 kfreebsd-image-7.2-1-amd64
  on kfreebsd-amd64
  - suggested command:
dak rm -m "[auto-cruft] NBS (no longer built by kfreebsd-7)" -s unstable -a kfreebsd-amd64 -p -R -b kfreebsd-headers-7.2-1-amd64 kfreebsd-image-7.2-1-amd64

# Broken Build-Depends:
kfreebsd-kernel-di-amd64: kfreebsd-image-7.2-1-amd64


*  source package kfreebsd-7 version 7.3-1 no longer builds
binary package(s): kfreebsd-headers-7.2-1-486 kfreebsd-headers-7.2-1-686 kfreebsd-headers-7.2-1-686-smp kfreebsd-image-7.2-1-486 kfreebsd-image-7.2-1-686 kfreebsd-image-7.2-1-686-smp
  on kfreebsd-i386
  - suggested command:
dak rm -m "[auto-cruft] NBS (no longer built by kfreebsd-7)" -s unstable -a kfreebsd-i386 -p -R -b kfreebsd-headers-7.2-1-486 kfreebsd-headers-7.2-1-686 kfreebsd-headers-7.2-1-686-smp kfreebsd-image-7.2-1-486 kfreebsd-image-7.2-1-686 kfreebsd-image-7.2-1-686-smp

# Broken Build-Depends:
kfreebsd-kernel-di-i386: kfreebsd-image-7.2-1-486


* source package libao version 1.0.0-4 no longer builds
  binary package(s): libao2
on alpha,amd64,armel,hppa,hurd-i386,i386,ia64,kfreebsd-amd64,kfreebsd-i386,mips,mipsel,powerpc,s390,sparc
  - suggested command:
dak rm -m "[auto-cruft] NBS (no longer built by libao)" -s unstable -a alpha,amd64,armel,hppa,hurd-i386,i386,ia64,kfreebsd-amd64,kfreebsd-i386,mips,mipsel,powerpc,s390,sparc -p -R -b libao2

# Broken Depends:
aldo: aldo
cdrdao: cdrdao [alpha amd64 armel hppa i386 ia64 mips mipsel powerpc s390 sparc] gcdmaster [alpha amd64 armel hppa i386 ia64 mips mipsel powerpc s390 sparc]
cmus: cmus
gnomoradio: gnomoradio
            libroboradio0c2
kadu: kadu [alpha amd64 armel hppa i386 ia64 mips mipsel powerpc s390 sparc]
liquidsoap: liquidsoap [ia64]
mpc123: mpc123
mpd: mpd [mipsel]
mpg321: mpg321
nateon: nateon
ocaml-ao: libao-ocaml [alpha amd64 armel hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc]
potamus: potamus
pyao: python-pyao
pytone: pytone
somaplayer: libsds0 [alpha amd64 armel hppa i386 ia64 mips mipsel powerpc s390 sparc] libsomaplayer0 [alpha amd64 armel hppa i386 ia64 mips mipsel powerpc s390 sparc] somaplayer [alpha amd64 armel hppa i386 ia64 mips mipsel powerpc s390 sparc]
sox: libsox-fmt-ao
upse: upse123
xmms2: xmms2-plugin-ao [mipsel s390]
yatm: yatm
ydpdict/contrib: ydpdict
zsnes: zsnes [i386]


* source package libimobiledevice version 1.0.0-1 no longer builds
  binary package(s): libimobiledevice0
on alpha,amd64,armel,hppa,i386,ia64,kfreebsd-amd64,kfreebsd-i386,mips,mipsel,powerpc,s390,sparc
  - suggested command:
dak rm -m "[auto-cruft] NBS (no longer built by libimobiledevice)" -s unstable -a alpha,amd64,armel,hppa,i386,ia64,kfreebsd-amd64,kfreebsd-i386,mips,mipsel,powerpc,s390,sparc -p -R -b libimobiledevice0

# Broken Depends:
ipheth: ipheth-utils [alpha amd64 hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 powerpc s390 sparc]


* source package player version 3.0.1+dfsg-1 no longer builds
binary package(s): liblodo0 liblodo0-dev libplayerc++2 libplayerc++2-dev libplayerc2 libplayerc2-dev libplayercore2 libplayercore2-dev libplayerdrivers2 libplayerdrivers2-dev libplayererror2 libplayererror2-dev libplayerjpeg2 libplayerjpeg2-dev libplayertcp2 libplayertcp2-dev libplayerxdr2 libplayerxdr2-dev libpmap0 libpmap0-dev
  on amd64
  - suggested command:
dak rm -m "[auto-cruft] NBS (no longer built by player)" -s unstable -a amd64 -p -R -b liblodo0 liblodo0-dev libplayerc++2 libplayerc++2-dev libplayerc2 libplayerc2-dev libplayercore2 libplayercore2-dev libplayerdrivers2 libplayerdrivers2-dev libplayererror2 libplayererror2-dev libplayerjpeg2 libplayerjpeg2-dev libplayertcp2 libplayertcp2-dev libplayerxdr2 libplayerxdr2-dev libpmap0 libpmap0-dev

# Broken Depends:
stage: libstageplugin1
       stage

# Broken Build-Depends:
stage: libplayerc2-dev
       libplayerc2-dev (>= 2.1.0)
       libplayercore2-dev
       libplayercore2-dev (>= 2.1.0)


* source package ruby1.9.1 version 1.9.1.378-2 no longer builds
binary package(s): libdbm-ruby1.9.1 libgdbm-ruby1.9.1 libopenssl-ruby1.9.1 libreadline-ruby1.9.1
  on mipsel
  - suggested command:
dak rm -m "[auto-cruft] NBS (no longer built by ruby1.9.1)" -s unstable -a mipsel -p -R -b libdbm-ruby1.9.1 libgdbm-ruby1.9.1 libopenssl-ruby1.9.1 libreadline-ruby1.9.1

# Broken Depends:
imaprowl: imaprowl
libhttp-access2-ruby: libhttpclient-ruby1.9.1
libtwitter-ruby: libtwitter-ruby1.9.1
libuuidtools-ruby: libuuidtools-ruby1.9.1
libwww-mechanize-ruby: libwww-mechanize-ruby1.9.1
ruby1.9.1: irb1.9.1


* source package unixodbc version 2.2.14p2-1 no longer builds
  binary package(s): odbcinst1debian1
on alpha,amd64,armel,hppa,hurd-i386,i386,ia64,kfreebsd-amd64,kfreebsd-i386,mips,mipsel,powerpc,s390,sparc
  - suggested command:
dak rm -m "[auto-cruft] NBS (no longer built by unixodbc)" -s unstable -a alpha,amd64,armel,hppa,hurd-i386,i386,ia64,kfreebsd-amd64,kfreebsd-i386,mips,mipsel,powerpc,s390,sparc -p -R -b odbcinst1debian1

# Broken Depends:
freetds: tdsodbc [hurd-i386 kfreebsd-amd64 kfreebsd-i386]
gdal: libgdal-perl [kfreebsd-amd64 kfreebsd-i386 mipsel]
      libgdal-ruby1.8 [kfreebsd-amd64 kfreebsd-i386 mipsel]
      libgdal1-1.6.0 [kfreebsd-amd64 kfreebsd-i386 mipsel]
mapserver: cgi-mapserver [alpha amd64 hppa i386 kfreebsd-amd64 kfreebsd-i386 mipsel s390 sparc] libmapscript-ruby1.8 [alpha amd64 hppa i386 kfreebsd-amd64 kfreebsd-i386 mipsel s390 sparc] libmapscript-ruby1.9.1 [alpha amd64 hppa i386 kfreebsd-amd64 kfreebsd-i386 mipsel s390 sparc] mapserver-bin [alpha amd64 hppa i386 kfreebsd-amd64 kfreebsd-i386 mipsel s390 sparc] perl-mapscript [alpha amd64 hppa i386 kfreebsd-amd64 kfreebsd-i386 mipsel s390 sparc] php5-mapscript [alpha amd64 hppa i386 kfreebsd-amd64 kfreebsd-i386 mipsel s390 sparc] python-mapscript [alpha amd64 hppa i386 kfreebsd-amd64 kfreebsd-i386 mipsel s390 sparc]
myodbc: libmyodbc [alpha amd64 hurd-i386 ia64 kfreebsd-amd64 kfreebsd-i386]
psqlodbc: odbc-postgresql


* source package xmms2 version 0.7DrNo-5 no longer builds
  binary package(s): libxmmsclient++3 libxmmsclient5
  on armel
  - suggested command:
dak rm -m "[auto-cruft] NBS (no longer built by xmms2)" -s unstable -a armel -p -R -b libxmmsclient++3 libxmmsclient5

# Broken Depends:
lxmusic: lxmusic

* source package yaz version 4.0.3-1 no longer builds
  binary package(s): libyaz3 libyaz3-dev
on alpha,amd64,armel,hppa,hurd-i386,i386,ia64,kfreebsd-amd64,kfreebsd-i386,mips,powerpc,s390,sparc
  - suggested command:
dak rm -m "[auto-cruft] NBS (no longer built by yaz)" -s unstable -a alpha,amd64,armel,hppa,hurd-i386,i386,ia64,kfreebsd-amd64,kfreebsd-i386,mips,powerpc,s390,sparc -p -R -b libyaz3 libyaz3-dev
# Broken Depends:
idzebra: idzebra-2.0-utils
         libidzebra-2.0-0
         libidzebra-2.0-mod-alvis
         libidzebra-2.0-mod-dom
         libidzebra-2.0-mod-grs-marc
         libidzebra-2.0-mod-grs-regx
         libidzebra-2.0-mod-grs-xml
         libidzebra-2.0-mod-text
libnet-z3950-zoom-perl: libnet-z3950-zoom-perl
libzoom-ruby: libzoom-ruby1.8

# Broken Build-Depends:
idzebra: libyaz3-dev (>= 3.0.17)
libnet-z3950-zoom-perl: libyaz3-dev (>= 2.1.50)
libzoom-ruby: libyaz3-dev
tellico: libyaz3-dev


... and quite some linux kernel packages for which I'm to lazy to copy and paste the exact output.


So, I'm open for ideas how to improve the "workflow" and making it easier for the release team and us (especially for me ;)


Best regards,
  Alexander


Reply to: