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: