Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 398553 - php-ext-source-r2.eclass: missing DEPEND on dev-lang/php
Summary: php-ext-source-r2.eclass: missing DEPEND on dev-lang/php
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Eclasses (show other bugs)
Hardware: All Linux
: Normal trivial (vote)
Assignee: PHP Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-11 16:45 UTC by Michael Palimaka (kensington)
Modified: 2012-01-26 09:08 UTC (History)
2 users (show)

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


Attachments
build log (build.log,2.38 KB, patch)
2012-01-11 16:45 UTC, Michael Palimaka (kensington)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Palimaka (kensington) gentoo-dev 2012-01-11 16:45:19 UTC
Created attachment 298657 [details, diff]
build log

In php-ext-source-r2.eclass, dev-lang/php is listed as an RDEPEND only.
This should (also?) be a DEPEND, as php-config & phpize are called during the build.


Portage 2.1.10.41 (hardened/linux/amd64, gcc-4.5.3-asneeded, glibc-2.13-r4, 3.1.5-hardened-libre x86_64)
=================================================================
System uname: Linux-3.1.5-hardened-libre-x86_64-06-17-with-gentoo-2.0.3
Timestamp of tree: Wed, 11 Jan 2012 07:45:01 +0000
app-shells/bash:          4.1_p9
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.2-r3, 3.1.4-r3
dev-util/cmake:           2.8.6-r4
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.0.3
sys-apps/openrc:          0.9.4
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.9.6-r3, 1.11.1
sys-devel/binutils:       2.21.1-r1
sys-devel/gcc:            4.5.3-r1
sys-devel/gcc-config:     1.4.1-r1
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 2.6.39 (virtual/os-headers)
sys-libs/glibc:           2.13-r4
Repositories: gentoo sunrise kensington x-portage
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA AdobeFlash-10.1"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe -ggdb"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/qmail/alias /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=native -O2 -pipe -ggdb"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs collision-protect distlocks ebuild-locks fixlafiles multilib-strict news parallel-fetch protect-owned sandbox sfperms split-elog split-log splitdebug strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS=""
GENTOO_MIRRORS="ftp://mirror.internode.on.net/pub/gentoo/"
LANG="en_AU.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
LINGUAS="en"
MAKEOPTS="-j5"
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="/var/lib/layman/sunrise /var/lib/layman/kensington /usr/local/portage"
SYNC="rsync://rsync.au.gentoo.org/gentoo-portage"
USE="aac acl acpi alsa amd64 apache2 apng asf background bash-completion bazaar berkdb bzip2 cleartype cli consolekit corefonts cracklib crashreporter crypt cups cxx dbus deblob dri dvd ebook exceptions fam ffmpeg flac fontconfig gdbm git glib gmp gpm handbook hardened iconv ipv6 ithreads jit jpeg justify kde kontact lastfm less libnotify mmx mng modules mp3 mp4 mpeg mta mudflap multilib ncurses networkmanager nls nptl nptlonly ogg opengl openmp optimized-qmake pam pax_kernel pcap pcre phonon player png policykit pppd private-headers qt3support qt4 readline rss samba semantic-desktop session sftp sha512 smbclient spell sse sse2 ssl ssse3 startup-notification suhosin svg symlink sysfs tcpd theora threads threadsafe tiff truetype udev unicode upnp uuid vhosts vorbis webm xft xorg xscreensaver xvfb zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="*" APACHE2_MODULES="dav alias auth_basic authn_default auth_digest authn_file authz_host authz_user autoindex cgi deflate dir filter headers include info log_config mime mime_magic negotiation proxy proxy_http rewrite speling status vhost_alias" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Ole Markus With (RETIRED) gentoo-dev 2012-01-11 18:31:17 UTC
Thanks for reporting!

Committed a change that should take care of this.

Cheers,
Ole Markus
Comment 2 Doug Warner 2012-01-13 03:23:11 UTC
We just stumbled into some fallout of this.

It appears that php 5.2 is hard masked now:

# grep php.5.2 /usr/portage/profiles/package.mask
# Masking php:5.2. No longer maintained by upstream
=dev-lang/php-5.2.17

Because of this and the new DEPEND flag we can't emerge packages that have USE_PHP="php5-2" in them because the dependencies have php_targets_php5-2 set.

See for example:
-----------------------------------------------------------------------------
# emerge -avd pecl-memcached
myaction None
myopts {'--ask': True, '--debug': True, '--verbose': True}


myparams {'recurse': True, 'binpkg_respect_use': 'auto'}


These are the packages that would be merged, in order:

Calculating dependencies  

      Arg: pecl-memcached
     Atom: dev-php/pecl-memcached
   ebuild: dev-php/pecl-memcached-1.0.2-r1::gentoo

Child:         (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge) USE="(multilib) session" PHP_TARGETS="php5-3 -php5-2"
Parent Dep:    pecl-memcached

Parent:    (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)
Depstring: >=dev-libs/libmemcached-0.38 sys-libs/zlib dev-lang/php[session?] || ( =sys-devel/automake-1.11* ) >=sys-devel/autoconf-2.61 sys-devel/libtool >=s
8 || ( =dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-2] =dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-3] ) php_targets_php5-2? ( dev-lang/php:5.2 ) p
Priority:  buildtime

Parent:    (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)
Depstring: >=dev-libs/libmemcached-0.38 sys-libs/zlib dev-lang/php[session?] =sys-devel/automake-1.11* >=sys-devel/autoconf-2.61 sys-devel/libtool >=sys-deve
ang/php:5.3
Priority:  buildtime
Candidates: ['>=sys-devel/autoconf-2.61', 'sys-libs/zlib', '>=sys-devel/m4-1.4.3', '=sys-devel/automake-1.11*', 'dev-lang/php[session]', '>=dev-libs/libmemca
sys-devel/libtool', 'dev-lang/php:5.3']
   ebuild: sys-devel/autoconf-2.68::gentoo
installed: sys-devel/autoconf-2.65-r1::gentoo
   ebuild: sys-libs/zlib-1.2.5-r2::gentoo
installed: sys-libs/zlib-1.2.5-r2::gentoo
   ebuild: sys-devel/m4-1.4.15::gentoo
installed: sys-devel/m4-1.4.15::gentoo
   ebuild: sys-devel/automake-1.11.1::gentoo
installed: sys-devel/automake-1.11.1::gentoo
   ebuild: dev-lang/php-5.3.8::gentoo
installed: dev-lang/php-5.3.8::gentoo
   ebuild: dev-libs/libmemcached-0.44::BBS
installed: dev-libs/libmemcached-0.44::BBS
   ebuild: sys-devel/libtool-2.4-r1::gentoo
installed: sys-devel/libtool-2.2.10::gentoo
   ebuild: sys-devel/libtool-2.4-r1::gentoo
installed: sys-devel/libtool-2.2.10::gentoo
   ebuild: dev-lang/php-5.3.8::gentoo
installed: dev-lang/php-5.3.8::gentoo

Child:         (sys-devel/automake-1.11.1::gentoo, installed) USE="(multilib)"
Parent Dep:    =sys-devel/automake-1.11* required by (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Child:         (sys-libs/zlib-1.2.5-r2::gentoo, installed) USE="(multilib)"
Parent Dep:    sys-libs/zlib required by (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Child:         (dev-libs/libmemcached-0.44::BBS, installed) USE="(multilib) -debug -hsieh"
Parent Dep:    >=dev-libs/libmemcached-0.38 required by (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Child:         (dev-lang/php-5.3.8::gentoo, installed) USE="bzip2 cli crypt ctype curl fileinfo filter ftp gmp hash iconv imap ipv6 json (multilib) mysql nls
l soap sockets ssl tokenizer unicode xml zlib (-adabas) -apache2 -bcmath -berkdb (-birdstep) -calendar -cdb -cgi -cjk -curlwrappers -db2 (-dbmaker) -debug -d
t (-esoob) -exif -firebird -flatfile -fpm (-frontbase) -gd -gd-external -gdbm -inifile -interbase -intl -iodbc -kerberos -kolab -ldap -ldap-sasl -libedit -mh
tant-client -odbc -pdo -pic -postgres -qdbm -recode -sapdb -sharedext -sharedmem -snmp (-solid) -spell -sqlite -sqlite3 -suhosin (-sybase-ct) -sysvipc -threa
 -xmlwriter -xpm -xsl -zip"
Parent Dep:    dev-lang/php:5.3 required by (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Child:         (dev-lang/php-5.3.8::gentoo, installed) USE="bzip2 cli crypt ctype curl fileinfo filter ftp gmp hash iconv imap ipv6 json (multilib) mysql nls
l soap sockets ssl tokenizer unicode xml zlib (-adabas) -apache2 -bcmath -berkdb (-birdstep) -calendar -cdb -cgi -cjk -curlwrappers -db2 (-dbmaker) -debug -d
t (-esoob) -exif -firebird -flatfile -fpm (-frontbase) -gd -gd-external -gdbm -inifile -interbase -intl -iodbc -kerberos -kolab -ldap -ldap-sasl -libedit -mh
tant-client -odbc -pdo -pic -postgres -qdbm -recode -sapdb -sharedext -sharedmem -snmp (-solid) -spell -sqlite -sqlite3 -suhosin (-sybase-ct) -sysvipc -threa
 -xmlwriter -xpm -xsl -zip"
Parent Dep:    dev-lang/php[session] required by (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Child:         (sys-devel/libtool-2.2.10::gentoo, installed) USE="(multilib) -vanilla"
Parent Dep:    sys-devel/libtool required by (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Child:         (sys-devel/libtool-2.2.10::gentoo, installed) USE="(multilib) -vanilla"
Parent Dep:    >=sys-devel/libtool-1.5.18 required by (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Child:         (sys-devel/autoconf-2.65-r1::gentoo, installed) USE="(multilib) -emacs"
Parent Dep:    >=sys-devel/autoconf-2.61 required by (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Child:         (sys-devel/m4-1.4.15::gentoo, installed) USE="(multilib) -examples"
Parent Dep:    >=sys-devel/m4-1.4.3 required by (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Exiting... (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Parent:    (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)
Depstring: >=dev-libs/libmemcached-0.38 sys-libs/zlib dev-lang/php[session?] || ( =dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-2] =dev-php/pecl-memcache
s_php5-2? ( dev-lang/php:5.2 ) php_targets_php5-3? ( dev-lang/php:5.3 )
Priority:  runtime

Parent:    (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)
Depstring: >=dev-libs/libmemcached-0.38 sys-libs/zlib dev-lang/php[session?] dev-lang/php:5.3
Priority:  runtime
Candidates: ['sys-libs/zlib', 'dev-lang/php[session]', 'dev-lang/php:5.3', '>=dev-libs/libmemcached-0.38']
installed: sys-libs/zlib-1.2.5-r2::gentoo
installed: dev-lang/php-5.3.8::gentoo
installed: dev-lang/php-5.3.8::gentoo
installed: dev-libs/libmemcached-0.44::BBS

Child:         (sys-libs/zlib-1.2.5-r2::gentoo, installed) USE="(multilib)"
Parent Dep:    sys-libs/zlib required by (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Child:         (dev-lang/php-5.3.8::gentoo, installed) USE="bzip2 cli crypt ctype curl fileinfo filter ftp gmp hash iconv imap ipv6 json (multilib) mysql nls
l soap sockets ssl tokenizer unicode xml zlib (-adabas) -apache2 -bcmath -berkdb (-birdstep) -calendar -cdb -cgi -cjk -curlwrappers -db2 (-dbmaker) -debug -d
t (-esoob) -exif -firebird -flatfile -fpm (-frontbase) -gd -gd-external -gdbm -inifile -interbase -intl -iodbc -kerberos -kolab -ldap -ldap-sasl -libedit -mh
tant-client -odbc -pdo -pic -postgres -qdbm -recode -sapdb -sharedext -sharedmem -snmp (-solid) -spell -sqlite -sqlite3 -suhosin (-sybase-ct) -sysvipc -threa
 -xmlwriter -xpm -xsl -zip"
Parent Dep:    dev-lang/php:5.3 required by (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Child:         (dev-lang/php-5.3.8::gentoo, installed) USE="bzip2 cli crypt ctype curl fileinfo filter ftp gmp hash iconv imap ipv6 json (multilib) mysql nls
l soap sockets ssl tokenizer unicode xml zlib (-adabas) -apache2 -bcmath -berkdb (-birdstep) -calendar -cdb -cgi -cjk -curlwrappers -db2 (-dbmaker) -debug -d
t (-esoob) -exif -firebird -flatfile -fpm (-frontbase) -gd -gd-external -gdbm -inifile -interbase -intl -iodbc -kerberos -kolab -ldap -ldap-sasl -libedit -mh
tant-client -odbc -pdo -pic -postgres -qdbm -recode -sapdb -sharedext -sharedmem -snmp (-solid) -spell -sqlite -sqlite3 -suhosin (-sybase-ct) -sysvipc -threa
 -xmlwriter -xpm -xsl -zip"
Parent Dep:    dev-lang/php[session] required by (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Child:         (dev-libs/libmemcached-0.44::BBS, installed) USE="(multilib) -debug -hsieh"
Parent Dep:    >=dev-libs/libmemcached-0.38 required by (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Exiting... (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Parent:    (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)
Depstring: || ( =dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-2] =dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-3] )
Priority:  runtime
   ebuild: dev-php/pecl-memcached-1.0.2-r1::gentoo
   ebuild: dev-php/pecl-memcached-1.0.2-r1::gentoo
Candidates: ['=dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-3]']

Child:         (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge) USE="(multilib) session" PHP_TARGETS="php5-3 -php5-2"
Parent Dep:    =dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-3] required by (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Exiting... (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)

Parent:    (dev-php/pecl-memcached-1.0.2-r1::gentoo, ebuild scheduled for merge)
Depstring: || ( =dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-2] =dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-3] )
Priority:  buildtime
Candidates: ['=dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-2]']
   ebuild: dev-php/pecl-memcached-1.0.2-r1::gentoo

emerge: there are no ebuilds to satisfy "=dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-2]".
(dependency required by "dev-php/pecl-memcached-1.0.2-r1" [ebuild])
(dependency required by "pecl-memcached" [argument])
-----------------------------------------------------------------------------


I'm not sure if we should be checking PHP_TARGETS in /etc/make.conf for a valid setting, or only checking the current installed php slots; but this definitely breaks installing packages (the default USE_PHP="php5-2 php5-3", so I don't think anything would be installable right now).
Comment 3 Ole Markus With (RETIRED) gentoo-dev 2012-01-13 05:38:05 UTC
What PHP_TARGETS is set to shouldn't really matter. 

And the depstring contains this: || ( =dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-2]
=dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-3] )

So why should it block on this =dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-2]?

Anyways, I removed DEPEND for now so people can actually install stuff.
Comment 4 Doug Warner 2012-01-13 15:19:39 UTC
Well, like I said; with that dependency on the php_targets_php5-2 and no PHP 5.2 packages available to fulfill that we get the dependency error.

My suggestion about only adding dependencies for PHP_TARGETS just came from the fact that I don't see what it's currently used for (I can't find the eclasses that reference it) and it seems like it'd be a good fix to combine what ebuilds can export w/ USE_PHP and what the user would like to build against.

Some more examples:
$ emerge -avqp =dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-3]
[ebuild   R   ] dev-php/pecl-memcached-1.0.2-r1  USE="session" PHP_TARGETS="php5-3 (-php5-2)" 

$ emerge -avqp =dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-2]
emerge: there are no ebuilds to satisfy "=dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-2]".
Comment 5 Doug Warner 2012-01-13 15:36:12 UTC
(In reply to comment #3)
> What PHP_TARGETS is set to shouldn't really matter. 
> 
> And the depstring contains this: || (
> =dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-2]
> =dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-3] )
> 
> So why should it block on this
> =dev-php/pecl-memcached-1.0.2-r1[php_targets_php5-2]?
> 

Sorry; rereading your comment I agree that there is something strange going on here when portage is evaulating the dependencies.

We noticed that reinstalls seem to be fine w/ the DEPEND in there while first-time installs of packages seems to fail.
Comment 6 Arfrever Frehtes Taifersar Arahesis 2012-01-13 16:44:18 UTC
You can unmask php_targets_php5-2 USE flag using:
echo -php_targets_php5-2 >> /etc/portage/profile/use.mask

I suggest to restore DEPEND from revision 1.20 without the following line:
	|| ( ${SELFDEPEND} )
Comment 7 Matti Bickel (RETIRED) gentoo-dev 2012-01-13 23:27:05 UTC
Thanks, that suggestion worked just fine. Applied to CVS, please test.
Comment 8 Ole Markus With (RETIRED) gentoo-dev 2012-01-26 09:08:22 UTC
No complaints, so I assume this works well now.