When I try to update world, portage crashes with a traceback indicating something with app-docs/php-docs-200403. It does not happen when I just use 'emerge -pu world': $ emerge -pu --deep world These are the packages that I would merge, in order: Calculating world dependencies /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 3302, in dep_check mysplit2=dep_wordreduce(mysplit2,mydbapi,mode,use_cache=use_cache) File "/usr/lib/portage/pym/portage.py", line 3323, in dep_wordreduce deplist[mypos]=dep_wordreduce(deplist[mypos],mydbapi,mode,use_cache=use_cache) File "/usr/lib/portage/pym/portage.py", line 3330, in dep_wordreduce mydep=mydbapi.match(deplist[mypos],use_cache=use_cache) File "/usr/lib/portage/pym/portage.py", line 3795, in match return match_from_list(mydep,self.cp_list(mykey,use_cache=use_cache)) File "/usr/lib/portage/pym/portage.py", line 3539, in match_from_list raise KeyError, "Specific key requires an operator (%s) (try adding an '=')" % (mydep) KeyError: "Specific key requires an operator (app-doc/php-docs-200403) (try adding an '=')" My emerge info output is: $ emerge info Portage 2.0.50-r1 (default-x86-1.4, gcc-3.3.3, glibc-2.3.2-r9, 2.4.22-gentoo-r7) ================================================================= System uname: 2.4.22-gentoo-r7 i686 Intel(R) Pentium(R) III CPU family 1400MHz Gentoo Base System version 1.4.3.13 distcc 2.12.1 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.58-r1 Automake: sys-devel/automake-1.7.7 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=pentium3 -mcpu=pentium3 -fomit-frame-pointer -mfpmath=sse -msse -mmmx -funroll-loops -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -march=pentium3 -mcpu=pentium3 -fomit-frame-pointer -mfpmath=sse -msse -mmmx -funroll-loops -pipe" DISTDIR="/share/portage/distfiles" FEATURES="autoaddcvs ccache sandbox userpriv usersandbox" GENTOO_MIRRORS="ftp://ftp.easynet.nl/mirror/gentoo/ ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j16" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/usr/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/share/portage/portage/lilith" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="acl apache2 berkdb crypt cscope curl doc emacs emacs-w3 ethereal fastcgi flash foomaticdb gd gdbm gif gpm guile imap ipv6 java jpeg lcms leim libwww lids maildir mbox mcal mmx mule mysql ncurses nls offensive pam pdflib perl plotutils png postgres ppds python readline ruby slang sse ssl tcpd tiff truetype wmf x86 xml xml2 zlib"
Same thing happens on another machine, here's the emerge info output for that machine: meta:~# emerge info Portage 2.0.50-r2 (default-x86-1.4, gcc-3.3.3, glibc-2.3.3_pre20040207-r0, 2.6.1-gentoo-r1) ================================================================= System uname: 2.6.1-gentoo-r1 i686 Intel(R) Pentium(R) III CPU family 1400MHz Gentoo Base System version 1.4.3.13p1 distcc 2.13 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=pentium3 -mcpu=pentium3 -fomit-frame-pointer -mfpmath=sse -msse -mmmx -funroll-loops -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/init.d /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -march=pentium3 -mcpu=pentium3 -fomit-frame-pointer -mfpmath=sse -msse -mmmx -funroll-loops -pipe" DISTDIR="/share/portage/distfiles" FEATURES="autoaddcvs ccache sandbox userpriv usersandbox" GENTOO_MIRRORS="ftp://ftp.easynet.nl/mirror/gentoo/ ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j28" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/usr/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/share/portage/portage/meta" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="x86 acl apache2 berkdb crypt cscope curl doc emacs emacs-w3 ethereal fastcgi flash foomaticdb gd gdbm gif gpm guile imap innodb ipv6 java jpeg lcms leim libwww lids maildir mbox mcal mmx mule mysql ncurses nls nptl offensive pam pdflib perl plotutils png ppds python readline slang sse ssl tcpd threads tiff truetype wmf xml xml2 zlib"
>KeyError: "Specific key requires an operator (app-doc/php-docs-200403) (try adding an '=')" You have app-doc/php-docs entry somewhere in /etc/portage/package* or in /var/cache/edb/world. adding an '=' will solve it.
I have no directory called /etc/portage and there is no 'app-doc/php-docs' entry in the /var/cache/edb/world file: $ grep "php" /var/cache/edb/world dev-php/mod_php dev-db/phpmyadmin dev-php/php dev-db/phppgadmin I have never installed the package (or knew about its existence, for that matter). If you need more information, I'll be happy to provide it.
I'm facing more or less the same problem, since last syncing. Doing emerge regen results in Traceback (most recent call last): File "/usr/bin/emerge", line 2267, in ? mymatches=portage.portdb.xmatch("match-all",x) File "/usr/lib/portage/pym/portage.py", line 4705, in xmatch myval=match_from_list(mydep,self.cp_list(mykey)) File "/usr/lib/portage/pym/portage.py", line 3539, in match_from_list raise KeyError, "Specific key requires an operator (%s) (try adding an '=')" % (mydep) KeyError: "Specific key requires an operator (app-doc/ebook-gtk-2.0) (try adding an '=')" My /etc/portage/package.* files are fine and free from any app-doc/ebook-* stuff as my whole system is.
Created attachment 28303 [details] emerge sync output
see if this link help. http://forums.gentoo.org/viewtopic.php?t=153582&highlight=specific+key+requires
Indeed. Interesting that a wrong placed directory hits portage that hard. Thanks for the link.
I've tried removing the /usr/portage/app-doc/php-docs directory, that did not help. I've been looking for the problem and have traced it down to the php-sapi.eclass, which has a dependency on php-docs-200403 which is not formulated correctly: $ grep -rn "php-docs" /usr/portage/eclass/php* /usr/portage/eclass/php-sapi.eclass:96: doc? ( app-doc/php-docs-200403 )" I've checked it by adding the '=' (=app-doc/php-docs-200403, instead of app-doc/php-docs-200403), this fixed the issue.
when was the last time you sync? Here my output $ grep -rn "php-doc" /usr/portage/eclass/php* /usr/portage/eclass/php-sapi.eclass:96: doc? ( app-doc/php-docs )
The eclass looks fine here too, closing.