Hi! After installing fuse 0.6.1.1, emerge -uD world doesn't work anymore. emerge -uD system works, as well as emerge -u world. Here is the relevant part of the output of emerge -udD world: Parent: ebuild / app-emulation/fuse-0.6.1.1 merge Depstring: dev-lang/perl xml2? ( dev-libs/libxml2 ) png? ( media-libs/libpng ) zlib? ( sys-libs/zlib ) >=app-emulation/libspectrum-0.1.0 || ( X? ( virtual/x11 gtk? ( gtk2? ( =x11-libs/gtk+-2* ) !gtk2? ( =x11-libs/gtk+-1* ) ) ) sdl? ( media-libs/libsdl ) svga? ( media-libs/svgalib ) fbcon? ( ) virtual/x11 ) gnome? ( =dev-libs/glib-1* ) libdsk? ( app-emulation/libdsk app-emulation/lib765 ) dev-lang/perl xml2? ( dev-libs/libxml2 ) png? ( media-libs/libpng ) zlib? ( sys-libs/zlib ) >=app-emulation/libspectrum-0.1.0 || ( X? ( virtual/x11 gtk? ( gtk2? ( =x11-libs/gtk+-2* ) !gtk2? ( =x11-libs/gtk+-1* ) ) ) sdl? ( media-libs/libsdl ) svga? ( media-libs/svgalib ) fbcon? ( ) virtual/x11 ) gnome? ( =dev-libs/glib-1* ) libdsk? ( app-emulation/libdsk app-emulation/lib765 ) Traceback (most recent call last): File "/usr/bin/emerge", line 2517, in ? if not mydepgraph.xcreate(myaction): File "/usr/bin/emerge", line 1135, in xcreate if not self.create(myk): File "/usr/bin/emerge", line 825, in create if not self.select_dep("/",mydep["/"],myparent=mp,myuse=myuse): File "/usr/bin/emerge", line 936, in select_dep mycheck=portage.dep_check(depstring,self.mydbapi[myroot],self.pkgsettings,myuse=myuse) File "/usr/lib/portage/pym/portage.py", line 3309, in dep_check mylist=flatten(dep_listcleanup(dep_zapdeps(mysplit,mysplit2))) File "/usr/lib/portage/pym/portage.py", line 3052, in dep_zapdeps myresult=dep_zapdeps(unreduced[x],reduced[x]) File "/usr/lib/portage/pym/portage.py", line 3019, in dep_zapdeps if not mydbapi.match(y): File "/usr/lib/portage/pym/portage.py", line 4138, in match mydep=dep_expand(origdep,self,use_cache=use_cache) File "/usr/lib/portage/pym/portage.py", line 3255, in dep_expand elif mydep[:1] in "=<>~!": TypeError: 'in <string>' requires string as left operand Reproducible: Always Steps to Reproduce: 1. emerge fuse 2. emerge -uD world Actual Results: root@laptop html # emerge info Portage 2.0.50-r1 (default-x86-1.4, gcc-3.3.2, glibc-2.3.2-r9, 2.4.25_pre7-gss-r2) ================================================================= System uname: 2.4.25_pre7-gss-r2 i686 Intel(R) Pentium(R) M processor 1500MHz Gentoo Base System version 1.4.3.13 Autoconf: sys-devel/autoconf-2.58-r1 Automake: sys-devel/automake-1.7.7 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=pentium4 -funroll-loops -fprefetch-loop-arrays -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -march=pentium4 -funroll-loops -fprefetch-loop-arrays -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X apm arts avi berkdb cdr crypt cups encode esd foomaticdb gdbm gif gnome gphoto2 gpm gtk gtk2 imlib java jpeg kde libg++ libwww mad mikmod motif mpeg ncurses nls oggvorbis opengl oss pam pdflib perl png python qt quicktime readline sdl slang spell ssl svga tcltk tcpd truetype x86 xml2 xmms xv zlib"
Looks like a portage bug to me.
I have worked around what looks to me to be a portage dep issue. Stelian, wait 30 minutes and remerge fuse to get a working system again. The versions of the ebuild with the fixed code (so you can verify that you have the version of the ebuild that I believe works) are: fuse-0.6.1.1.ebuild: 1.10 fuse-0.6.2.1.ebuild: 1.3
Portage crew: Here's what I tracked down. I was easily able to reproduce the traceback that Stlian reported by merging the previous versions of the ebuilds. portage-2.0.50-r1 doesn't seem to deal correctly with nested usevar checking inside the || () construct. The way I worked around it was by moving the one nested atom inside the || () bit to the outside and wrapping the || () part in a !use? () block. That's probably unclear, but if you look at the previous versions of the fuse ebuilds hopefully you can see what I did. In addition to this, while I was trying to figure out what was going on, seemant observed that the || () construct didn't seem to be functioning properly with portage-2.0.50-r2. It appeared to always be getting the final dep in the list, the default atom no matter what his use flags were set to. Reverting to -r1 solved that issue. I didn't think to have him try -r210 but please look at the previous version of the ebuild and make sure that the next version of portage works correctly with the convoluted, yet, I belive, correct syntax - or, please point out what the syntax should be. Thanks.
*** This bug has been marked as a duplicate of 41869 *** *** This bug has been marked as a duplicate of 41869 ***
That'll teach me to search bugzilla first. ;-)`