In /etc/portage/make.conf I have PHP_TARGETS="php5-6 php7-1" (since /usr/portage/profiles/base/make.defaults still uses php7-0). I discovered the problem when emerging drupal, but I was able to reproduce it with a much simpler (custom) ebuild - excerpt: ---- RDEPEND=" dev-lang/php[gd] dev-php/pecl-uploadprogress " REQUIRED_USE="|| ( mysql postgres sqlite )" ---- dev-lang/php-5.6 (which is pulled in because of PHP_TARGETS) is missing both "gd" and "mysql" USE flags when emerging. dev-lang/php-7.1 has the expected USE flags. The work-around is of course easy - to add the suggested USE changes to /etc/portage/package.use for both PHP targets (or all). Reproducible: Always
The drupal ebuild does not look at the php-ext-pecl-r3 eclass nor does it consider PHP_TARGETS. Because of this, we cannot fix the eclass. In addition, the php-ext-pecl-r3 eclass has no mechanism to include USE flags directly into the deps. Bug 586446 has ideas but none have yet to be implemented. We cannot just look at RDEPEND or REQUIRED_USE for sure.
Thx for responding so quickly. I don't object to the CANTFIX, but - taking the drupal ebuild as an example - is there an easy/nice/proper way to fix/work-around the problem using the current version of the php-ext-pecl-r3 eclass?
(In reply to Hans F. Nordhaug from comment #2) > Thx for responding so quickly. > > I don't object to the CANTFIX, but - taking the drupal ebuild as an example > - is there an easy/nice/proper way to fix/work-around the problem using the > current version of the php-ext-pecl-r3 eclass? Unfortunately, no. php-ext-pecl-r3 is designed to build C code (specifically from PHP's pecl repository) into a PHP module, not to generate dependencies on PHP script code. There is no other current eclass that does either. An ebuild would have to spell out each implementation by hand with a USE requirement.