Steve Freeman wrote:
> On 2020-04-18 20:42, Dale wrote:
>> Steve Freeman wrote:
>>> 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.
>>>
>>>
>>
>>
>> First, my emerge output decoder ring isn't that great.  There are a few
>> on this list that can decode it pretty well, I'm not one of them but I
>> try.  ;-)
>>
>> This is the interesting bit to me. 
>>
>>
>> !!! 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 )
>>
>>
>> Note in the first part it has PHPTARGETS= and that php7-4 is shown as
>> disabled.  Why is that?  Is it disabled in package.use or do you have to
>> manually enable it in package.use?  Since the others are also disabled,
>> is that setting correct somehow??  The way it shows it, all PHP is
>> disabled which doesn't make sense to me. 
>>
>> I'd do a grep -r php /etc/portage/ and see if it shows some old entry
>> that needs to be changed or even removed, or possibly one added.  One
>> thing I've done and seen other post about, double entries.  You add a
>> entry at the top of a file and there is a older entry further down. 
>> Whichever emerge reads last is the one it uses.  It tends to ignore the
>> previous entry.  If you forget the old one is there, it makes your brain
>> go wonky.  It doesn't help emerge either. 
>>
>> Also, equery list -p may prove helpful if this reply or someone with a
>> better decoder ring doesn't come up with a hint. 
>>
>> Hope that helps, given my decoder ring is not great.  lol
>>
>> Dale
>>
>> :-)  :-) 
>
> Good suggestion.  I didn't have anything like that.  Over the years,
> I've developed the habit of keeping entries in alphabetical order and
> never allowing anything to automatically add to the file.  Thanks for
> the help.
>
>

Since I use a graphical editor, I use the find function to make sure the
entry I'm adding is the only one there.  Your way also works to since
you would see it when adding it.  Like you, I do my entries manually and
never allow emerge to add them for me.  It really turns into a disaster
if emerge does it. 

I seem to have been on the right track but couldn't figure out where to
go with the next step.  At times, I just have to ask for help.  The
output of emerge is cryptic for sure.  Of course, I know nothing about
PHP since I don't use it here. 

Glad you got it working.  That's what matters anyway. 

Dale

:-)  :-) 

Reply via email to