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"
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.