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.