Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 300652 - emerge dev-lang/php does not recognize "-concurrentmodphp" from /etc/portage/package.use and /etc/make.conf
Summary: emerge dev-lang/php does not recognize "-concurrentmodphp" from /etc/portage/...
Status: VERIFIED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: x86 Linux
: High minor (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-01-12 02:19 UTC by Alexander Hadjiivanov
Modified: 2010-01-30 13:58 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Hadjiivanov 2010-01-12 02:19:49 UTC
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
Comment 1 Patrick Lauer gentoo-dev 2010-01-12 10:01:53 UTC
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 ?
Comment 2 Alexander Hadjiivanov 2010-01-12 12:44:06 UTC
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
Comment 3 Wormo (RETIRED) gentoo-dev 2010-01-29 07:33:23 UTC
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)
Comment 4 Alexander Hadjiivanov 2010-01-29 08:52:15 UTC
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!
Comment 5 Wormo (RETIRED) gentoo-dev 2010-01-29 21:43:15 UTC
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.
Comment 6 Zac Medico gentoo-dev 2010-01-29 22:23:57 UTC
grep -r concurrentmodphp /etc/portage /usr/portage/profiles
Comment 7 Alexander Hadjiivanov 2010-01-29 23:26:42 UTC
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
Comment 8 Zac Medico gentoo-dev 2010-01-30 09:13:06 UTC
(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.
Comment 9 Alexander Hadjiivanov 2010-01-30 13:20:14 UTC
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...
Comment 10 Zac Medico gentoo-dev 2010-01-30 13:58:29 UTC
(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.