Although dev-lang/php emerges fine, Portage does not recognize the "-concurrentmodphp" USE flag when it is inserted in either /etc/portage/package.use or /etc/make.conf. However, it recognizes the flag if I try USE="-concurrentmodphp" emerge dev-lang/php This is rather annoying because every time I do emerge -vuND world portage wants to re-emerge php with the "concurrentmodphp" USE flag enabled, and I don't want it to. For now, I have to emerge php manually as shown above after updating world. Am I doing something wrong? Is this a known issue? I am sorry if this has been solved elsewhere, but I could not find any references to this problem. Any suggestions are much appreciated, Reproducible: Always Steps to Reproduce: 1. Place "dev-lang/php -concurrentmodphp" in /etc/portage/package.use or USE="-concurrentmodphp" in /etc/make.conf 2. Try to emerge dev-lang/php: the "-concurrentmodphp" USE flag is not recognized 3. Emerging php as USE="-concurrentmodphp" emerge dev-lang/php works fine. Actual Results: dev-lang/php emerges with the concurrentmodphp USE flag enabled Expected Results: dev-lang/php should emerge without the concurrentmodphp USE flag root@host emerge --info Portage 2.1.6.13 (default/linux/x86/10.0, gcc-4.3.4, glibc-2.9_p20081201-r2, 2.6.30-gentoo-r6 i686) ================================================================= System uname: Linux-2.6.30-gentoo-r6-i686-Genuine_Intel-R-_CPU_T2300_@_1.66GHz-with-gentoo-1.12.13 Timestamp of tree: Mon, 11 Jan 2010 23:45:03 +0000 ccache version 2.4 [enabled] app-shells/bash: 4.0_p35 dev-java/java-config: 1.3.7-r1, 2.1.9-r2 dev-lang/python: 2.4.6, 2.5.4-r3, 2.6.4 dev-python/pycrypto: 2.1.0_beta1 dev-util/ccache: 2.4-r7 dev-util/cmake: 2.6.4-r3 sys-apps/baselayout: 1.12.13 sys-apps/sandbox: 1.6-r2 sys-devel/autoconf: 2.13, 2.63-r1 sys-devel/automake: 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6b virtual/os-headers: 2.6.27-r2 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config /var/bind /var/spool/torque" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="ccache collision-protect distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://gentoo.gg3.net/" LANG="en_US.utf8" LDFLAGS="-Wl,-O1" LINGUAS="en_GB" MAKEOPTS="-j7" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.au.gentoo.org/gentoo-portage" USE="X acl alsa apache2 bash-completion berkdb bzip2 cdr cjk cli cracklib crypt cups cxx dbus dri dvd dvdr dvdread fortran gdbm gpm gtk gtk2 hal iconv imap ipv6 jpeg libwww maildir mmx modules mudflap ncurses nls nptl nptlonly nvidia opengl openmp pam pcre perl pppd python qt3support readline reflection sasl session spl sse sse2 ssl sysfs tcpd threads tiff truetype type1 unicode usb userlocales vda vhosts wxwindows x86 xcomposite xinerama xorg zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse wacom synaptics vmmouse virtualbox" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_GB" RUBY_TARGETS="ruby18" SANE_BACKENDS="genesys" USERLAND="GNU" VIDEO_CARDS="nvidia" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Don't get me wrong, but this sounds like user error. Can you attach the output of emerge -pv php with USE="-concurrentmodphp" in /etc/make.conf, and the output of USE="-concurrentmodphp" emerge -pv php ?
Hello, Patrick, I thought it might be my fault, I even went through "-concurrentmodphp" letter by letter to make sure it was spelled right...Anyway, here are the two outputs (note that php is currently emerged without "concurrentmodphp"): 1. In /etc/make.conf: USE="-concurrentmodphp apache2 -avahi -gnome -arts -kde aqua alsa bash-completion cdr cjk dbus dvd dvdr dvdread gtk gtk2 hal \ imap jpeg libwww -mbox mmx maildir nvidia opengl qt3support sse sse2 ssl sasl threads truetype tiff unicode usb userlocales vda vhosts \ wxwindows xcomposite xinerama X type1" root@host emerge -pv dev-lang/php These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] dev-lang/php-5.2.12 USE="apache2 berkdb bzip2 cjk cli concurrentmodphp* crypt ctype exif ftp gd gdbm iconv imap ipv6 kerberos ldap ldap-sasl mhash mysql ncurses nls pcre posix readline reflection session spl ssl threads truetype unicode xml xmlreader xmlrpc xmlwriter zip zlib -adabas -bcmath -birdstep -calendar -cdb -cgi -curl -curlwrappers -db2 -dbase -dbmaker -debug -discard-path -doc -empress -empress-bcs -esoob -fastbuild -fdftk -filter -firebird -flatfile -force-cgi-redirect -frontbase -gd-external -gmp -hash -inifile -interbase -iodbc (-java-external) -json -kolab -libedit -mcve -msql -mssql -mysqli -oci8 -oci8-instant-client -odbc -pcntl -pdo -pic -postgres -qdbm -recode -sapdb -sharedext -sharedmem -simplexml -snmp -soap -sockets -solid -spell -sqlite -suhosin -sybase -sybase-ct -sysvipc -tidy -tokenizer -wddx -xpm -xsl -yaz" 0 kB 2. root@host USE="-concurrentmodphp" emerge -pv dev-lang/php These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] dev-lang/php-5.2.12 USE="apache2 berkdb bzip2 cjk cli crypt ctype exif ftp gd gdbm iconv imap ipv6 kerberos ldap ldap-sasl mhash mysql ncurses nls pcre posix readline reflection session spl ssl threads truetype unicode xml xmlreader xmlrpc xmlwriter zip zlib -adabas -bcmath -birdstep -calendar -cdb -cgi -concurrentmodphp -curl -curlwrappers -db2 -dbase -dbmaker -debug -discard-path -doc -empress -empress-bcs -esoob -fastbuild -fdftk -filter -firebird -flatfile -force-cgi-redirect -frontbase -gd-external -gmp -hash -inifile -interbase -iodbc (-java-external) -json -kolab -libedit -mcve -msql -mssql -mysqli -oci8 -oci8-instant-client -odbc -pcntl -pdo -pic -postgres -qdbm -recode -sapdb -sharedext -sharedmem -simplexml -snmp -soap -sockets -solid -spell -sqlite -suhosin -sybase -sybase-ct -sysvipc -tidy -tokenizer -wddx -xpm -xsl -yaz" 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB Go figure. The first output above is the same regardless of whether "-concurrentmodphp" is in /etc/make.conf, in /etc/portage/package.use, or both. It's not so much of a real problem than it is just incredibly frustrating. Sorry if I'm wasting your time, but please let me know if I am overlooking something. Thanks in advance for any feedback, Alexander
Even stranger, it looks like concurrentmodphp is OFF in all the default profiles, so something is explicitly turning it on... What do you get from 'euse -i concurrentmodphp' ? On my system, that flag normally shows up as disabled (as you would expect, since I didn't explicitly turn it on) [- ] concurrentmodphp (dev-lang/php)
Hmmm, intriguing. I ran 'euse -i concurrentmodphp' and got the following: root@host# euse -i concurrentmodphp global use flags (searching: concurrentmodphp) ************************************************************ no matching entries found local use flags (searching: concurrentmodphp) ************************************************************ [- c ] concurrentmodphp (dev-lang/php): Make it possible to load both mod_php4 and mod_php5 into the same Apache2 instance (experimental) The obvious difference is the "c" in the square brackets, but I have no idea what it means... Thanks for digging into this problem!
man euse: "C if the flag is enabled in make.conf, c if it is disabled in make.conf, nothing if it's not affected by make.conf" So basically 'euse' agrees with you that the flag is off, and in particular it is disabled in make.conf. I'm at a loss to explain why emerge thinks you have that flag turned on, so let's ask the portage team to look into this.
grep -r concurrentmodphp /etc/portage /usr/portage/profiles
Well, there you go. As embarrassing as it is, I didn't even think about that - I had two entries for php in the /etc/portage/package.use: root@host# grep -r concurrentmodphp /etc/portage /usr/portage/profiles /etc/portage/package.use:dev-lang/php -concurrentmodphp threads gd ctype exif ftp pcre session unicode zip /etc/portage/package.use:dev-lang/php concurrentmodphp bash java-external kerberos ldap ldap-sasl mhash mysql posix xml xmlreader xmlrpc xmlwriter And the second one was switching the flag on. When I was searching for dev-lang/php in /etc/portage/package.use, I always worked with the first match... Sorry for wasting everybody's time, it's working as expected now. However, I usually echo my custom flags into the file and I don't always check whether the entry already exist, so I am just wondering if there is a way to make portage tell you that there are identicals entries in the /etc/portage/package.use file with contradicting USE flags. Cheers, Alexander
(In reply to comment #7) > entry already exist, so I am just wondering if there is a way to make portage > tell you that there are identicals entries in the /etc/portage/package.use file > with contradicting USE flags. No, there's currently no way to make it warn about that. It's possible to have intentionally contradicting settings, especially for slotted packages.
I see. Does portage obey the USE flags of the entry which is furthest down in the list? It must, because the offending entry was listed way after the one I was working with. In any case, a warning option might be a useful feature to have for people who want to use it. Maybe just a switch like "emerge -w " for "warn" or something... Anyway, thank you for the assistance - closing the "bug" now...
(In reply to comment #9) > Does portage obey the USE flags of the entry which is furthest down in > the list? It stacks together the flags for duplicate atoms. If different atoms match the same package, flags from the more specific atoms are higher priority in the stack.