When I try to emerge a large number of binary packages emerge choaks on getting dependecies for one of the packages. I did some debugging and found the problem. In portage.py around line 2344 there is: if myusevar in myuse: enabled=1 else: enabled=0 In the case with binary package myuse comes from somewhere else and it is not an array so python throws an error. I'll attach a patch that fixes this but I am not sure if it is the _right_ way to fix it as I am not a python person. Reproducible: Always Steps to Reproduce: 1. setup a system that uses a lot of binary packages 2. emerge -eK world Actual Results: emerge crashed Expected Results: not crashed sbeck@sbeck sbeck $ emerge info Portage 2.0.49-r6 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1, 2.4.20-gentoo-r2) ================================================================= System uname: 2.4.20-gentoo-r2 i686 AMD Athlon(tm) XP 1800+ distcc 2.0.1 i686-pc-linux-gnu (protocol 1) (default port 3632) [enabled] ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp -O3 -mmmx -msse -m3dnow -mfpmath=sse -pipe -fomit-frame-pointer -fforce-addr -funroll-loops -frerun-loop-opt" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /var/qmail/control /usr/share/config /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-O2 -mcpu=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="sandbox autoaddcvs ccache distcc" GENTOO_MIRRORS="ftp://ftp.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j8" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://backup/gentoo-portage" USE="x86 avi crypt cups encode foomaticdb gif jpeg libg++ mad mikmod mpeg ncurses pdflib png quicktime spell truetype xml2 xmms xv zlib gtkhtml gdbm berkdb readline svga guile X sdl gpm tcpd pam libwww ssl python esd imlib oggvorbis opengl cdr apache2 mmx 3dnow sse alsa dvd dga -oss -apm -arts gnome -gnome2 -gtk2 gtk java -kde -motif mozilla moznomail moznoirc mysql -nls nocardbus perl pic -qt samba -slang tcltk tiff"
Created attachment 18629 [details, diff] fixes binary package deps checking for me..
This patch does not fix things. It only fixes them for certain situations, for some reason sometimes what I do a split on is a string and sometimges it is a list. I'll try to track it down further.
ok, tracked it down I think. In portage.py there is a function: def get_use(self,pkgname): mysplit=string.split(pkgname,"/") if self.isremote(pkgname): return string.split(self.remotepkgs[mysplit[1]+".tbz2"]["USE"][:]) tbz2=xpak.tbz2(self.getname(pkgname)) return tbz2.getfile("USE") getfile returns a string. So only in that case does it fail. Changing it to: return tbz2.getfile("USE").split() seems to fix it in all situations.
This is out stable already.