After updating to Portage 2.0.48-r5, emerge -p depclean fails with a Python backtrace: # emerge -p depclean *** WARNING *** : DEPCLEAN CAN SERIOUSLY IMPAIR YOUR SYSTEM. USE CAUTION. *** WARNING *** : (Cancel: CONTROL-C) -- ALWAYS VERIFY ALL PACKAGES IN THE *** WARNING *** : CANDIDATE LIST FOR SANITY BEFORE ALLOWING DEPCLEAN TO *** WARNING *** : UNMERGE ANY PACKAGES. *** WARNING *** : *** WARNING *** : USE FLAGS MAY HAVE AN EXTREME EFFECT ON THE OUTPUT. *** WARNING *** : SOME LIBRARIES MAY BE USED BY PACKAGES BUT ARE NOT *** WARNING *** : CONSIDERED TO BE A DEPEND DUE TO USE FLAG SETTINGS. *** WARNING *** : *** WARNING *** : Packages in the list that are desired may be added *** WARNING *** : directly to the world file to cause them to be ignored *** WARNING *** : by declean and maintained in the future. BREAKAGES DUE *** WARNING *** : TO UNMERGING AN IN-USE LIBRARIES MAY BE REPAIRED BY *** WARNING *** : MERGING *** THE PACKAGE THAT COMPLAINS *** ABOUT THE *** WARNING *** : MISSING LIBRARY. Calculating depclean dependencies ... done! Traceback (most recent call last): File "/usr/bin/emerge", line 1840, in ? catpack=myparts[0]+"/"+myparts[1] TypeError: unsubscriptable object Reproducible: Always Steps to Reproduce: 1. emerge -u portage 2. Fix make.conf 3. emerge -p depclean Actual Results: I received the Python error. Expected Results: emerge should have printed a list of packages to remove. Portage 2.0.48-r5 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1) ================================================================= System uname: 2.4.21 i686 AMD Athlon(tm) XP 2000+ GENTOO_MIRRORS="ftp://ftp.ussg.iu.edu/pub/linux/gentoo ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo rsync://gentoo.seren.com/gentoo http://gentoo.oregonstate.edu" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="" USE="oss apm crypt foomaticdb kde libg++ libwww mad mikmod nls quicktime spell xmms zlib gdbm berkdb slang svga java guile sdl gpm tcpd pam esd qt motif mozilla x86 3dnow mmx aalib cdr cups fbcon maildir ncurses pda readline ssl perl python postgresql xml xml2 X xv gtk gtkhtml gnome -arts truetype gif imlib jpeg pdflib png tiff avi dvd encode mpeg opengl oggvorbis" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-mcpu=athlon-xp -O2 -fomit-frame-pointer" CXXFLAGS="-mcpu=athlon-xp -O2 -fomit-frame-pointer" ACCEPT_KEYWORDS="x86" MAKEOPTS="-j1" AUTOCLEAN="yes" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" FEATURES="sandbox ccache
I've generated some debug output: === Begin /usr/bin/emerge snippet (around line 1840) === reallist=[] for x in alldeps: print `x`+'\n' print `string.split(x)[2]`+'\n' myparts=portage.catpkgsplit(string.split(x)[2]) print `myparts`+"\n" catpack=myparts[0]+"/"+myparts[1] if catpack not in reallist: reallist.append(catpack) === End /usr/bin/emerge snippet === === Begin screenshot === root@cube:~# emerge -vp depclean [...] Calculating depclean dependencies ... done! [...] 'ebuild / dev-python/egenix-mx-base-2.0.4 merge' 'dev-python/egenix-mx-base-2.0.4' ['dev-python', 'egenix-mx-base', '2.0.4', 'r0'] 'ebuild / net-www/w3m-0.4.1-r2 merge' 'net-www/w3m-0.4.1-r2' ['net-www', 'w3m', '0.4.1', 'r2'] 'blocks / app-emulation/winex-cvs sys-libs/glibc-2.3.2-r1' 'app-emulation/winex-cvs' None Traceback (most recent call last): File "/usr/bin/emerge", line 1843, in ? catpack=myparts[0]+"/"+myparts[1] TypeError: unsubscriptable object === End screenshot === So it seems like portage.catpkgsplit cannot handle blocking packages. BTW: What exactly does this output mean? === Begin screenshot === root@cube:~# emerge -Dpu world [ebuild N ] sys-devel/gnuconfig-20030708 [blocks B ] app-emulation/winex-cvs (from pkg sys-libs/glibc-2.3.2-r1) [...] === End screenshot === Does it mean that sys-libs/glibc blocks winex-cvs or rather the other way round?
Almost forgot that: Portage 2.0.48-r5 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1) ================================================================= System uname: 2.4.21-cube-2 i686 AMD Athlon(tm) processor GENTOO_MIRRORS="ftp://ftp.easynet.nl/mirror/gentoo/ http://gentoo.inode.at/ ftp://gentoo.inode.at/source/" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/vice/etc /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/config" CONFIG_PROTECT_MASK="/etc/afs/modload /etc/make.globals /etc/afs/C /etc/afs/afsws /etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="/usr/local/portage" USE="x86 foomaticdb libg++ mad gtkhtml gdbm berkdb libwww gtk cdr -3dfx 3dnow -aalib acl afs -alsa apm -arts avi -bonobo crypt -cups dga -directfb doc -dvd encode -esd -evo -fbcon -ggi gif -gnome -gnome-libs -gphoto2 -gpm guile hbci -icc -icc-pgo imap imlib ipv6 -java jpeg kde kerberos lcms ldap -matrox maildir mbox mikmod mmx monitor -motif mozilla mpeg -mule mysql nas ncurses nls -odbc oggvorbis opengl oss pam -pcmcia -pda pdflib -perl png -pnp postgres python qt qtmt quicktime readline -ruby samba sasl sdl slang -slp -snmp socks5 spell ssl -static -svga -tcltk -tcpd tetex tiff truetype -voodoo3 X xml xml2 -xmms xv -zeo zlib" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-march=athlon-tbird -O3 -pipe" CXXFLAGS="-O2 -mcpu=i686 -pipe" ACCEPT_KEYWORDS="x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://hybrid.sascha.silbe.org/gentoo-portage" FEATURES="sandbox ccache"
second that. I get the same "unsubscriptable" error with emerge -p depclean. --debug does not seem to provide any clues on the problem (although I only looked at it briefly: its a lot of output!) email me (or just reply to this) to let me know how I can help to resolve this.
Created attachment 14893 [details, diff] patch against portage-2.0.49_pre13 This patch fixes the crash, don't know if it is the right way to do it but results are identical to 48-r1 (means depclean is still broken in general).
Seems to be fixed in 49_pre14.
Seems to work now (using Portage 2.0.49-r3 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1, 2.4.21-cube-2)).
closing as fixed