I am trying to eliminate PHP 7.3 from my system. But I am having trouble building dev-php/pecl-apcu-5.1.18 with support for PHP 7.4.

I am getting confusing output regarding whether pecl-apcu can be built with PHP 7.4 support. It is working just fine with PHP 7.3 (until I changed eselect php to 7.4, which broke things as I expected).

Currently installed are:
# equery l php pecl-apcu
 * Searching for php ...
[IP-] [  ] dev-lang/php-7.3.17:7.3
[IP-] [  ] dev-lang/php-7.4.5:7.4

 * Searching for pecl-apcu ...
[IP-] [  ] dev-php/pecl-apcu-5.1.18:7


# grep PHP_TARGETS /etc/portage/make.conf
PHP_TARGETS="php7-4"

# eselect php list cli
  [1]   php7.3
  [2]   php7.4 *
# eselect php list apache2
  [1]   php7.3
  [2]   php7.4 *
The other eselect PHP modules are not set.


When I try to re-emerge pecl-apcu, I get output which confuses me:
# emerge -pv pecl-apcu

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

Calculating dependencies /

!!! Problem resolving dependencies for dev-php/pecl-apcu
... done!

!!! The ebuild selected to satisfy "pecl-apcu" has unmet requirements.
- dev-php/pecl-apcu-5.1.18::gentoo USE="lock-pthreadrw mmap -lock-pthreadmutex -lock-semaphore -lock-spinlock" PHP_TARGETS="(-php7-1) -php7-2 -php7-3 (-php7-4)"

  The following REQUIRED_USE flag constraints are unsatisfied:
any-of ( php_targets_php7-1 php_targets_php7-2 php_targets_php7-3 php_targets_php7-4 )

The above constraints are a subset of the following complete expression: exactly-one-of ( lock-pthreadmutex lock-pthreadrw lock-spinlock lock-semaphore ) any-of ( php_targets_php7-1 php_targets_php7-2 php_targets_php7-3 php_targets_php7-4 )


If I understand correctly, PHP_TARGETS="(-php7-1) -php7-2 -php7-3 (-php7-4)" above means that I cannot use 7.1 nor 7.4 (correct me if I'm wrong). But I do not understand why, since all four versions of PHP are listed in the REQUIRED_USE line underneath.


Another thing that confuses me is that PHP 7.4 isn't even listed in the output below (neither enabled nor disabled, but missing entirely):
# equery u pecl-apcu
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for dev-php/pecl-apcu-5.1.18:
 U I
 - - lock-pthreadmutex  : Enable pthread mutex locking
 + + lock-pthreadrw     : Enable pthread read/write locking
 - - lock-semaphore     : Enable semaphore locks instead of fcntl
 - - lock-spinlock      : Enable spin locks (EXPERIMENTAL)
 + + mmap               : Add mmap (memory map) support
 - - php_targets_php7-2 : Build against PHP 7.2
 - + php_targets_php7-3 : Build against PHP 7.3


However, all four PHP versions seem to be supported by the ebuild, dev-php/pecl-apcu-5.1.18.ebuild:
USE_PHP="php7-1 php7-2 php7-3 php7-4"

Can anyone explain why php7-4 is either disallowed or missing, when the ebuild seems to allow it?

Thanks.

Reply via email to