Summary: | emerge: InvalidDependString: USE flag 'birdstep' is not in IUSE (REQUIRED_USE contains flag not in IUSE) | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Paweł Hajdan, Jr. (RETIRED) <phajdan.jr> |
Component: | Core - Dependencies | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | php-bugs |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 395831 | ||
Attachments: |
package.rdeps
emerge.debug.bz2 |
Description
Paweł Hajdan, Jr. (RETIRED)
2011-12-16 21:36:00 UTC
Created attachment 296083 [details]
emerge.debug.bz2
When I add USE=kde (full --debug output attached):
Child: (dev-lang/php-5.3.8::gentoo, ebuild scheduled for merge) USE="berkdb bzip2 cli crypt ctype exif fileinfo filter gdbm hash iconv imap json nls phar posix readline session simplexml snmp spell sqlite ssl test threads tokenizer truetype unicode xml xmlrpc zlib -adabas -apache2 -bcmath -birdstep -calendar -cdb -cgi -cjk -curl -curlwrappers -db2 -dbmaker -debug -doc -embed -empress -empress-bcs -enchant -esoob -firebird -flatfile -fpm -frontbase -ftp -gd -gd-external -gmp -inifile -interbase -intl -iodbc -ipv6 -kerberos -kolab -ldap -ldap-sasl -libedit -mhash -mssql -mysql -mysqli -mysqlnd -oci8 -oci8-instant-client -odbc -pcntl -pdo -pic -postgres -qdbm -recode -sapdb -sharedext -sharedmem -soap -sockets -solid -sqlite3 -suhosin -sybase-ct -sysvipc -tidy -wddx -xmlreader -xmlwriter -xpm -xsl -zip"
Parent Dep: dev-lang/php[session,unicode,imap,xmlrpc] required by (www-apps/postfixadmin-2.3.2::gentoo, ebuild scheduled for merge)
... done!
Traceback (most recent call last):
File "/usr/bin/emerge", line 43, in <module>
retval = emerge_main()
File "/usr/lib/portage/pym/_emerge/main.py", line 1906, in emerge_main
myopts, myaction, myfiles, spinner)
File "/usr/lib/portage/pym/_emerge/actions.py", line 299, in action_build
mydepgraph.display_problems()
File "/usr/lib/portage/pym/_emerge/depgraph.py", line 6049, in display_problems
self._show_unsatisfied_dep(*pargs, **kwargs)
File "/usr/lib/portage/pym/_emerge/depgraph.py", line 2954, in _show_unsatisfied_dep
if check_required_use(required_use, old_use, pkg.iuse.is_valid_flag) and \
File "/usr/lib/portage/pym/portage/dep/__init__.py", line 2219, in check_required_use
if is_active(op[:-1]):
File "/usr/lib/portage/pym/portage/dep/__init__.py", line 2167, in is_active
raise InvalidDependString(msg, errors=(e,))
InvalidDependString: USE flag 'birdstep' is not in IUSE
This seems a bit php-related (see comment above), so CC-ing php-bugs. By the way, this works fine: # USE="gd" emerge -1av php These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild NS ] dev-db/sqlite-2.8.16-r5 [3.7.7.1] USE="nls -doc -tcl" 0 kB [ebuild N ] dev-libs/oniguruma-5.9.2 0 kB [ebuild N ] dev-libs/libmcrypt-2.5.8-r2 0 kB [ebuild N ] app-admin/eselect-php-0.6.2 0 kB [ebuild N ] media-libs/t1lib-5.1.2 USE="X -doc -static-libs" 0 kB [ebuild N ] dev-perl/perl-tk-804.29.0 0 kB [ebuild N ] net-analyzer/net-snmp-5.4.2.1-r4 USE="X bzip2 perl python ssl tcpd zlib -diskio -doc -elf -extensible -ipv6 -lm_sensors -mfd-rewrites -minimal -rpm (-selinux) -sendmail -smux" 0 kB [ebuild N ] app-text/aspell-0.60.6.1 USE="nls" LINGUAS="-af -be -bg -br -ca -cs -cy -da -de -el -en -eo -es -et -fi -fo -fr -ga -gl -he -hr -is -it -la -lt -nl -no -pl -pt -pt_BR -ro -ru -sk -sl -sr -sv -uk -vi" 0 kB [ebuild N ] app-dicts/aspell-en-6.0.0 0 kB [ebuild N ] dev-lang/php-5.3.8 USE="berkdb bzip2 cli crypt ctype exif fileinfo filter gd gdbm hash iconv json nls phar posix readline session simplexml snmp spell sqlite ssl threads tokenizer truetype unicode xml zlib -adabas -apache2 -bcmath -birdstep -calendar -cdb -cgi -cjk -curl -curlwrappers -db2 -dbmaker -debug -doc -embed -empress -empress-bcs -enchant -esoob -firebird -flatfile -fpm -frontbase -ftp -gd-external -gmp -imap -inifile -interbase -intl -iodbc -ipv6 -kerberos -kolab -ldap -ldap-sasl -libedit -mhash -mssql -mysql -mysqli -mysqlnd -oci8 -oci8-instant-client -odbc -pcntl -pdo -pic -postgres -qdbm -recode -sapdb -sharedext -sharedmem -soap -sockets -solid -sqlite3 -suhosin -sybase-ct -sysvipc -tidy -wddx -xmlreader -xmlrpc -xmlwriter -xpm -xsl -zip" 0 kB Total: 10 packages (9 new, 1 in new slot), Size of downloads: 0 kB Would you like to merge these packages? [Yes/No] Here's a better (smaller) repro: # emerge -1av --debug postfixadmin myaction None myopts {'--ask': True, '--oneshot': True, '--debug': True, '--verbose': True} myparams {'recurse': True} These are the packages that would be merged, in order: Calculating dependencies Arg: postfixadmin Atom: www-apps/postfixadmin ebuild: www-apps/postfixadmin-2.3.2::gentoo Child: (www-apps/postfixadmin-2.3.2::gentoo, ebuild scheduled for merge) USE="test vacation -mysql -postgres -vhosts -xmlrpc" Parent Dep: postfixadmin Parent: (www-apps/postfixadmin-2.3.2::gentoo, ebuild scheduled for merge) Depstring: vacation? ( dev-perl/DBI virtual/perl-MIME-Base64 dev-perl/MIME-EncWords dev-perl/Email-Valid dev-perl/Mail-Sender dev-perl/log-dispatch dev-perl/Log-Log4perl dev-perl/MIME-Charset mysql? ( dev-perl/DBD-mysql ) postgres? ( dev-perl/DBD-Pg ) ) xmlrpc? ( dev-php/ZendFramework[-minimal] ) dev-lang/php[session,unicode,imap,postgres?,xmlrpc?] || ( virtual/httpd-cgi virtual/httpd-fastcgi ) virtual/httpd-php >=app-admin/webapp-config-1.50.15 Priority: buildtime Parent: (www-apps/postfixadmin-2.3.2::gentoo, ebuild scheduled for merge) Depstring: dev-perl/DBI dev-perl/MIME-EncWords dev-perl/Email-Valid dev-perl/Mail-Sender dev-perl/log-dispatch dev-perl/Log-Log4perl dev-perl/MIME-Charset dev-lang/php[session,unicode,imap,postgres?,xmlrpc?] >=app-admin/webapp-config-1.50.15 Priority: buildtime Candidates: ['dev-perl/Email-Valid', 'dev-perl/MIME-EncWords', 'dev-lang/php[session,unicode,imap]', 'dev-perl/MIME-Charset', 'dev-perl/Log-Log4perl', '>=app-admin/webapp-config-1.50.15', 'dev-perl/log-dispatch', 'dev-perl/DBI', 'dev-perl/Mail-Sender'] ebuild: dev-perl/Email-Valid-0.184::gentoo ebuild: dev-perl/MIME-EncWords-1.012::gentoo ebuild: dev-lang/php-5.3.8::gentoo ebuild: dev-perl/MIME-Charset-1.008::gentoo ebuild: dev-perl/Log-Log4perl-1.28::gentoo ebuild: app-admin/webapp-config-1.50.16-r1::gentoo ebuild: dev-perl/log-dispatch-2.22::gentoo ebuild: dev-perl/DBI-1.615::gentoo ebuild: dev-perl/Mail-Sender-0.8.13::gentoo Child: (dev-perl/MIME-Charset-1.008::gentoo, ebuild scheduled for merge) USE="test" Parent Dep: dev-perl/MIME-Charset required by (www-apps/postfixadmin-2.3.2::gentoo, ebuild scheduled for merge) Child: (dev-perl/Email-Valid-0.184::gentoo, ebuild scheduled for merge) USE="test" Parent Dep: dev-perl/Email-Valid required by (www-apps/postfixadmin-2.3.2::gentoo, ebuild scheduled for merge) Child: (dev-perl/log-dispatch-2.22::gentoo, ebuild scheduled for merge) USE="test" Parent Dep: dev-perl/log-dispatch required by (www-apps/postfixadmin-2.3.2::gentoo, ebuild scheduled for merge) Child: (dev-perl/Mail-Sender-0.8.13::gentoo, ebuild scheduled for merge) USE="test" Parent Dep: dev-perl/Mail-Sender required by (www-apps/postfixadmin-2.3.2::gentoo, ebuild scheduled for merge) Child: (dev-lang/php-5.3.8::gentoo, ebuild scheduled for merge) USE="berkdb bzip2 cli crypt ctype exif fileinfo filter gdbm hash iconv imap json nls phar posix readline session simplexml snmp spell sqlite ssl test threads tokenizer truetype unicode xml zlib -adabas -apache2 -bcmath -birdstep -calendar -cdb -cgi -cjk -curl -curlwrappers -db2 -dbmaker -debug -doc -embed -empress -empress-bcs -enchant -esoob -firebird -flatfile -fpm -frontbase -ftp -gd -gd-external -gmp -inifile -interbase -intl -iodbc -ipv6 -kerberos -kolab -ldap -ldap-sasl -libedit -mhash -mssql -mysql -mysqli -mysqlnd -oci8 -oci8-instant-client -odbc -pcntl -pdo -pic -postgres -qdbm -recode -sapdb -sharedext -sharedmem -soap -sockets -solid -sqlite3 -suhosin -sybase-ct -sysvipc -tidy -wddx -xmlreader -xmlrpc -xmlwriter -xpm -xsl -zip" Parent Dep: dev-lang/php[session,unicode,imap] required by (www-apps/postfixadmin-2.3.2::gentoo, ebuild scheduled for merge) Traceback (most recent call last): File "/usr/bin/emerge", line 43, in <module> retval = emerge_main() File "/usr/lib/portage/pym/_emerge/main.py", line 1906, in emerge_main myopts, myaction, myfiles, spinner) File "/usr/lib/portage/pym/_emerge/actions.py", line 299, in action_build mydepgraph.display_problems() File "/usr/lib/portage/pym/_emerge/depgraph.py", line 6049, in display_problems self._show_unsatisfied_dep(*pargs, **kwargs) File "/usr/lib/portage/pym/_emerge/depgraph.py", line 2954, in _show_unsatisfied_dep if check_required_use(required_use, old_use, pkg.iuse.is_valid_flag) and \ File "/usr/lib/portage/pym/portage/dep/__init__.py", line 2219, in check_required_use if is_active(op[:-1]): File "/usr/lib/portage/pym/portage/dep/__init__.py", line 2167, in is_active raise InvalidDependString(msg, errors=(e,)) InvalidDependString: USE flag 'birdstep' is not in IUSE (In reply to comment #4) > Child: (dev-lang/php-5.3.8::gentoo, ebuild scheduled for merge) > USE="berkdb bzip2 cli crypt ctype exif fileinfo filter gdbm hash iconv imap > json nls phar posix readline session simplexml snmp spell sqlite ssl test > threads tokenizer truetype unicode xml zlib -adabas -apache2 -bcmath -birdstep [snip] > InvalidDependString: USE flag 'birdstep' is not in IUSE The error is puzzling, given that the debug output shows -birdstep in USE (implying that birdstep is in IUSE). (In reply to comment #5) > The error is puzzling, given that the debug output shows -birdstep in USE > (implying that birdstep is in IUSE). Given that I'm extremely puzzled by this at the moment, you might want to see if you can reproduce this with portage-2.1.10.41, since I don't have any better ideas. I am not sure if it helps, but I removed birdstep for php-5.3.9_rc3, which is in ~arch. I see that 5.3.8 is what is mentioned in this bug, but it is a bit of a weird coincidence that this bug is reported on the day I committed that ebuild. (In reply to comment #7) > I am not sure if it helps, but I removed birdstep for php-5.3.9_rc3, which is > in ~arch. I see that 5.3.8 is what is mentioned in this bug, but it is a bit of > a weird coincidence that this bug is reported on the day I committed that > ebuild. That's interesting. The debug output doesn't show any mention of php-5.3.9_rc3 though, so it doesn't seem like they can be related. (In reply to comment #8) > That's interesting. The debug output doesn't show any mention of php-5.3.9_rc3 > though, so it doesn't seem like they can be related. display_problems appears in the stacktrace. My theory is that emerge was going to suggest me something (like unmasking php-5.3.9_rc3) and then got confused that some version of php have birdstep USE flag and some don't. However, even if I use --autounmask=n, the problem persists. When I removed >php-5.3.8 from my /usr/portage tree, the problem disappeared. I think that means php-5.3.9_rc3 indeed has something in common with this bug. (In reply to comment #9) > display_problems appears in the stacktrace. My theory is that emerge was going > to suggest me something (like unmasking php-5.3.9_rc3) and then got confused > that some version of php have birdstep USE flag and some don't. However, even > if I use --autounmask=n, the problem persists. > > When I removed >php-5.3.8 from my /usr/portage tree, the problem disappeared. I > think that means php-5.3.9_rc3 indeed has something in common with this bug. It turns out that php-5.3.9_rc3 had birdstep in REQUIRED_USE, which was invalid since it wasn't in IUSE. We need to fix emerge to skip packages with invalid metadata like this, so that it doesn't trigger an exception later inside the depgraph's _show_unsatisfied_dep method, where it examines all matching versions of the package (even masked ones). I've fixed the ebuild in CVS: Index: php-5.3.9_rc3.ebuild =================================================================== RCS file: /var/cvsroot/gentoo-x86/dev-lang/php/php-5.3.9_rc3.ebuild,v retrieving revision 1.1 diff -u -b -B -r1.1 php-5.3.9_rc3.ebuild --- php-5.3.9_rc3.ebuild 16 Dec 2011 09:02:43 -0000 1.1 +++ php-5.3.9_rc3.ebuild 17 Dec 2011 19:05:22 -0000 @@ -118,7 +118,6 @@ adabas? ( >=dev-db/unixODBC-1.8.13 ) apache2? ( www-servers/apache[threads=] ) berkdb? ( =sys-libs/db-4* ) - birdstep? ( >=dev-db/unixODBC-1.8.13 ) bzip2? ( app-arch/bzip2 ) cdb? ( || ( dev-db/cdb dev-db/tinycdb ) ) cjk? ( !gd? ( @@ -212,7 +211,6 @@ xmlreader? ( xml ) xsl? ( xml ) ldap-sasl? ( ldap ) - birdstep? ( odbc ) kolab? ( imap ) mhash? ( hash ) phar? ( hash ) Ah, I apologize for that. I guess the same goes for empress, db2 and other USE flags referenced in REQUIRED_USE, but not in IUSE. I removed those as well. I guess repoman also should catch things like that. (In reply to comment #12) > Ah, I apologize for that. > > I guess the same goes for empress, db2 and other USE flags referenced in > REQUIRED_USE, but not in IUSE. I removed those as well. > > I guess repoman also should catch things like that. That should already be caught by repoman. When I ran repoman for dev-lang/php, it produced the following error: REQUIRED_USE.syntax 1 dev-lang/php/php-5.3.9_rc3.ebuild REQUIRED_USE: USE flag 'birdstep' is not in IUSE So, I'm not sure why it didn't stop you from committing. The log shows that you committed with portage-2.2.0_alpha71: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-lang/php/php-5.3.9_rc3.ebuild?view=log That should have support for the REQUIRED_USE.syntax check, which was added a long time ago: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=561b4dabdc289cf6561b384e50d1138d5f30dd52 Now I've committed a fix for emerge in git, to avoid the traceback that led to this bug report: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=36a6673199602796bf1626a4bd4110b99e590e5c This is fixed in 2.1.10.42 and 2.2.0_alpha82. |