On Sun, Jul 17, 2005 at 06:54:42PM -0700, Steve Langasek wrote: > Below is a list of libraries which appear to be blocking other > packages that need to go through the C++ transition[1] and which are > themselves ready to go through the ABI transition.
After some fiddling with AptPkg, my first cut at generating a list of packages ready to be transitioned is attached. THIS LIST MIGHT BE WRONG. The attached program is what I've used to generate the list. What it does is that is generates the list of packages that depend themselves on libstdc++5 (this alone is wrong!) and then iterates on the list of packages looking for packages that depend on these. Once it doesn't find anymore packges it prints the list of packages that whose only dependency (on the graph) is libstdc++5. By removing libstdc++5 from the graph the list of vertices that don't have decendants is the list of packages ready to be transitioned. What I didn't figure out is how to get libapt-pkg to read _only_ what I tell it to instead of the status data of the host where it is running (probably very easy, I didn't really look hard). Note that this list has been generated on my machine which hasn't been upgraded to the most recent packages in sid yet, so some of the info is likely outdated. Do note that this list includes _everything_, not just libraries. The package names are source package names followed by binary package names. The list is way too long, IMO. The longer this transition takes the harder it gets to get out of this swamp. (And yes, that package of mine on this list is already sitting on some upload queue) Cheers, Marcelo P.S.: you need libapt-pkg-perl and libgraph-perl. A Mennucc1 <[EMAIL PROTECTED]> snmpkit libsnmpkit2c102 A Mennucc1 <[EMAIL PROTECTED]> waili libwaili Adam Majer <[EMAIL PROTECTED]> libhoard libhoard Al Stone <[EMAIL PROTECTED]> libcoyotl libcoyotl2 Al Stone <[EMAIL PROTECTED]> libevocosm libevocosm0 Alberto Gonzalez Iniesta <[EMAIL PROTECTED]> netkit-telnet telnet Alex Romosan <[EMAIL PROTECTED]> vat vat Anand Kumria <[EMAIL PROTECTED]> cmt cmt Andreas Rottmann <[EMAIL PROTECTED]> libmusicbrainz-2.0 libmusicbrainz2 Andreas Rottmann <[EMAIL PROTECTED]> libmusicbrainz-2.1 libmusicbrainz4 Andreas Rottmann <[EMAIL PROTECTED]> libsigcx libsigcx-0.6-2 Andreas Tille <[EMAIL PROTECTED]> wordnet wordnet Andrew Lau <[EMAIL PROTECTED]> openexr libopenexr2 Andrew Suffield <[EMAIL PROTECTED]> cdrdao cdrdao Anibal Monsalve Salazar <[EMAIL PROTECTED]> socketapi socketapi1 Barak A. Pearlmutter <[EMAIL PROTECTED]> djvulibre libdjvulibre1 Bartosz Fenski <[EMAIL PROTECTED]> moagg moagg Bastian Blank <[EMAIL PROTECTED]> omniorb4 libomnithread3 Berin Lautenbach <[EMAIL PROTECTED]> xalan libxalan18 Bradley Bell <[EMAIL PROTECTED]> gtkmm libgtkmm1.2-0 Bradley Bell <[EMAIL PROTECTED]> gtkmm2.0 libgtkmm2.0-1c102 Bradley Bell <[EMAIL PROTECTED]> orbit2cpp liborbit2cpp9 Branden Robinson <[EMAIL PROTECTED]> xfree86 xlibmesa3-glu Cai Qian <[EMAIL PROTECTED]> sdcv libsdcv3 Camm Maguire <[EMAIL PROTECTED]> lam lam4 Changwoo Ryu <[EMAIL PROTECTED]> poppler libpoppler0 Chris Anderson <[EMAIL PROTECTED]> unrar-nonfree unrar Chris Leishman <[EMAIL PROTECTED]> libxml++ libxml++1.0 Christian Bayle <[EMAIL PROTECTED]> libibtk libibtk0 Christopher L Cheney <[EMAIL PROTECTED]> taglib libtag1 Chuan-kai Lin <[EMAIL PROTECTED]> fam libfam0c102 Daniel Burrows <[EMAIL PROTECTED]> aptitude aptitude Daniel Burrows <[EMAIL PROTECTED]> libsigc++-2.0 libsigc++-2.0-0 Daniel Glassey <[EMAIL PROTECTED]> sword libsword4 David MartÃnez Moreno <[EMAIL PROTECTED]> glcpu statd Debian ACE+TAO maintainers <[EMAIL PROTECTED]> ace libace5.4 Debian Berkeley DB Maintainers <[EMAIL PROTECTED]> db4.2 libdb4.2++ Debian Firebird Group <[EMAIL PROTECTED]> firebird2 firebird2-server-common Debian Firebird Group <[EMAIL PROTECTED]> firebird2 libfirebird2-classic Debian Firebird Group <[EMAIL PROTECTED]> firebird2 libfirebird2-super Debian GCC maintainers <debian-gcc@lists.debian.org> gcc-3.3 libstdc++5-3.3-dev Debian OpenOffice Team <debian-openoffice@lists.debian.org> myspell libmyspell3 Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org> kdepim libmimelib1a Debian VDR Team <[EMAIL PROTECTED]> vdr vdr Debian VoIP Team <[EMAIL PROTECTED]> yate yate Dirk Eddelbuettel <[EMAIL PROTECTED]> quantlib libquantlib-0.3.9 Enrico Zini <[EMAIL PROTECTED]> libtagcoll libtagcoll0 Filip Van Raemdonck <[EMAIL PROTECTED]> clanlib libclanlib2 Filip Van Raemdonck <[EMAIL PROTECTED]> ooqstart ooqstart-gnome Giuseppe Sacco <[EMAIL PROTECTED]> hylafax hylafax-client Goedson Teixeira Paixao <[EMAIL PROTECTED]> jabberoo libjabberoo0 Goedson Teixeira Paixao <[EMAIL PROTECTED]> libinti1.0 libinti1.0-1.2 Gopal Narayanan <[EMAIL PROTECTED]> xplanet xplanet Guenter Geiger <[EMAIL PROTECTED]> ivtools ivtools-interviews Guillem Jover <[EMAIL PROTECTED]> bochs bximage Hamish Moffatt <[EMAIL PROTECTED]> tqsllib tqsllib1 Hans Fugal <[EMAIL PROTECTED]> csound csound Henning Glawe <[EMAIL PROTECTED]> libgwenhywfar libgwenhywfar17 J.H.M. Dassen (Ray) <[EMAIL PROTECTED]> pstoedit libpstoedit0 Jean-Michel Kelbert <[EMAIL PROTECTED]> wfnetobjs libwfnetobjs0 Jeremy T. Bouse <[EMAIL PROTECTED]> libfwbuilder libfwbuilder6 Joe Drew <[EMAIL PROTECTED]> smpeg libsmpeg0 Josip Rodin <[EMAIL PROTECTED]> gman gman Josip Rodin <[EMAIL PROTECTED]> maildrop maildrop Josselin Mouette <[EMAIL PROTECTED]> hdf5 libhdf5-serial-1.6.4-0 Juan Esteban Monsalve Tobon <[EMAIL PROTECTED]> libranlip libranlip1 Juergen Salk <[EMAIL PROTECTED]> dcmtk dcmtk Junichi Uekawa <[EMAIL PROTECTED]> ladspa-sdk ladspa-sdk Keita Maehara <[EMAIL PROTECTED]> dvd+rw-tools dvd+rw-tools Klaus Reimer <[EMAIL PROTECTED]> strutilsxx libstrutilsxx0.7c102 Laszlo Boszormenyi (GCS) <[EMAIL PROTECTED]> sidplay-libs libsidplay2-1c102 Loic Dachary (OuoU) <[EMAIL PROTECTED]> openalpp-cvs libopenalpp-cvs Loic Dachary (OuoU) <[EMAIL PROTECTED]> openscenegraph libopenthreads Loic Dachary (OuoU) <[EMAIL PROTECTED]> osgal-cvs libosgal-cvs Maintainers of GStreamer packages <[EMAIL PROTECTED]> gst-plugins0.8 gstreamer0.8-misc Marcelo E. Magallon <[EMAIL PROTECTED]> mesa libglu1-mesa Margarita Manterola <[EMAIL PROTECTED]> uisp uisp Mark Purcell <[EMAIL PROTECTED]> libccaudio libccaudio1-1.1-0 Martin Kittel <[EMAIL PROTECTED]> maxdb-7.5.00 libsqlod7.5.00 Martin Kittel <[EMAIL PROTECTED]> maxdb-7.5.00 maxdb-dbanalyzer Martin Kittel <[EMAIL PROTECTED]> maxdb-7.5.00 maxdb-loadercli Martin Wuertele <[EMAIL PROTECTED]> ibam ibam Masayuki Hatta (mhatta) <[EMAIL PROTECTED]> gs-esp gs-esp Masayuki Hatta (mhatta) <[EMAIL PROTECTED]> libwpd libwpd8 Masayuki Hatta (mhatta) <[EMAIL PROTECTED]> zipios++ libzipios++0c102 Matt Flax <[EMAIL PROTECTED]> libgig libgig Matt Sullivan <[EMAIL PROTECTED]> aspseek aspseek-libmysqldb Matt Zimmerman <[EMAIL PROTECTED]> flac libflac++4 Matthias Klose <[EMAIL PROTECTED]> librudiments0 librudiments0c102 Matthias Klose <[EMAIL PROTECTED]> rapidsvn libsvncpp0 Matthias Klose <[EMAIL PROTECTED]> sffview sffview Matthias Urlichs <[EMAIL PROTECTED]> festival festival Michael Banck <[EMAIL PROTECTED]> mpqc libsc6 Michael Banck <[EMAIL PROTECTED]> openbabel libopenbabel0 Michael Koch <[EMAIL PROTECTED]> atlas-cpp libatlas-cpp-0.5 Michael Koch <[EMAIL PROTECTED]> cal3d libcal3d10 Michael Koch <[EMAIL PROTECTED]> sigcperl libsigcperl1 Michael Koch <[EMAIL PROTECTED]> skstream libskstream-0.3 Michael Koch <[EMAIL PROTECTED]> varconf libvarconf-1.0 Michael Koch <[EMAIL PROTECTED]> wfmath libwfmath-0.3 Michael Vogt <[EMAIL PROTECTED]> libxbase libxbase2.0-0c102 Michael Vogt <[EMAIL PROTECTED]> vdk2 libvdk2-2 Michael Vogt <[EMAIL PROTECTED]> xdb libxdb1c102 Mike Schacht <[EMAIL PROTECTED]> hk-classes libhk-classes7 Miriam Ruiz <[EMAIL PROTECTED]> avida avida-base NOKUBI Takatsugu <[EMAIL PROTECTED]> chasen libchasen0 Neil Roeth <[EMAIL PROTECTED]> openjade libostyle1 Ola Lundqvist <[EMAIL PROTECTED]> vnc vncserver Ola Lundqvist <[EMAIL PROTECTED]> xclass libxclass0 Pasi Savilaakso <[EMAIL PROTECTED]> libdc0 libdc0 Peter Karlsson <[EMAIL PROTECTED]> turqstat turqstat Philipp Frauenfelder <[EMAIL PROTECTED]> gbib gbib Ricardo Javier Cardenes Medina <[EMAIL PROTECTED]> sip-qt3 sip Robert Jordens <[EMAIL PROTECTED]> ardour libpbd0 Robert Ribnitz <[EMAIL PROTECTED]> htdig htdig Robert Woodcock <[EMAIL PROTECTED]> id3lib3.8.3 libid3-3.8.3 Roger So <[EMAIL PROTECTED]> guikachu guikachu2rcp Roger So <[EMAIL PROTECTED]> im-sdk iiimf-htt-server Roland Stigge <[EMAIL PROTECTED]> gps rgpsp Roy Hiu-yeung Chan <[EMAIL PROTECTED]> stardict stardict Ryan Murray <[EMAIL PROTECTED]> libgc libgc1 Sam Hocevar (Debian packages) <[EMAIL PROTECTED]> libsdl-sge libsdl-sge Sam Hocevar (Debian packages) <[EMAIL PROTECTED]> sabre xsabre Sebastien Bacher <[EMAIL PROTECTED]> verbiste libverbiste0 Stefano Zacchiroli <[EMAIL PROTECTED]> editex libeditex0 Stephen Zander <[EMAIL PROTECTED]> libcrypto++ libcrypto++5.2 Steve Halasz <[EMAIL PROTECTED]> geos libgeos2 Steve M. Robbins <[EMAIL PROTECTED]> boost libboost-date-time1.32.0 Steve M. Robbins <[EMAIL PROTECTED]> boost libboost-filesystem1.32.0 Steve M. Robbins <[EMAIL PROTECTED]> boost libboost-python1.32.0 Steve M. Robbins <[EMAIL PROTECTED]> boost libboost-regex1.32.0 Steve M. Robbins <[EMAIL PROTECTED]> boost libboost-test1.32.0 Steve M. Robbins <[EMAIL PROTECTED]> coin2 libcoin40 Steve M. Robbins <[EMAIL PROTECTED]> cppunit libcppunit-1.10-2 Steve M. Robbins <[EMAIL PROTECTED]> gmp libgmp3 TSUCHIYA Masatoshi <[EMAIL PROTECTED]> mecab libmecab0 Thomas Bushnell, BSG <[EMAIL PROTECTED]> libofx libofx1 Thomas Scheffczyk <[EMAIL PROTECTED]> annoyance-filter annoyance-filter Thomas Viehmann <[EMAIL PROTECTED]> libktoblzcheck libktoblzcheck1 Tilman Koschnick <[EMAIL PROTECTED]> gpsd gpsd Tim Johann <[EMAIL PROTECTED]> pwlib libpt-1.5.2 Tim Riker <[EMAIL PROTECTED]> bzflag bzflag-server Torsten Werner <[EMAIL PROTECTED]> stlport4.6 libstlport4.6 Will Newton <[EMAIL PROTECTED]> aqsis aqsis-libs Yann Dirson <[EMAIL PROTECTED]> tulip libtulip-2.0 martin f. krafft <[EMAIL PROTECTED]> fbpager fbpager teTeX maintainers <debian-tetex-maint@lists.debian.org> tetex-bin tetex-bin
#!/usr/bin/perl use AptPkg::Cache; use Graph::Directed; use strict; use warnings; my $c = AptPkg::Cache->new; sub src_name { my $pkg = shift; return $c->packages->lookup($pkg)->{SourcePkg} || $pkg; } my $targetlib = 'libstdc++5'; my @l = @{$c->{$targetlib}->{RevDependsList}}; my $g = Graph::Directed->new; $g->add_vertex($targetlib); while (@l) { my %n; foreach my $pkg (@l) { my $name = $pkg->{ParentPkg}->{Name}; my $target = $pkg->{TargetPkg}->{Name}; unless ($g->has_edge($name, $target)) { $n{$name} ||= 1; $g->add_edge($name, $target); } } @l=(); foreach my $pkg (keys %n) { foreach my $ver (@{$c->{$pkg}->{VersionList}}) { foreach my $dep (@{$ver->{DependsList}}) { next unless $dep->{ParentPkg}->{Name} eq $pkg; my $target = $dep->{TargetPkg}->{Name}; push @l, $dep if $g->has_edge($target, $targetlib); } } } } $g->delete_vertex($targetlib); my $pkgs = $c->packages; foreach my $pkg ($g->sink_vertices) { print $pkgs->lookup($pkg)->{Maintainer}, "\t", src_name($pkg), "\t", $pkg, "\n"; }