Gentoo Archives: gentoo-user

From: Dale <rdalek1967@×××××.com>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] PHP 7.4 and dev-php/pecl-apcu-5.1.18
Date: Sun, 19 Apr 2020 01:42:20
Message-Id: 718ff642-9d17-08de-886b-c5e8b03cbede@gmail.com
In Reply to: [gentoo-user] PHP 7.4 and dev-php/pecl-apcu-5.1.18 by Steve Freeman
1 Steve Freeman wrote:
2 > I am trying to eliminate PHP 7.3 from my system.  But I am having
3 > trouble building dev-php/pecl-apcu-5.1.18 with support for PHP 7.4.
4 >
5 > I am getting confusing output regarding whether pecl-apcu can be built
6 > with PHP 7.4 support.  It is working just fine with PHP 7.3 (until I
7 > changed eselect php to 7.4, which broke things as I expected).
8 >
9 > Currently installed are:
10 > # equery l php pecl-apcu
11 >  * Searching for php ...
12 > [IP-] [  ] dev-lang/php-7.3.17:7.3
13 > [IP-] [  ] dev-lang/php-7.4.5:7.4
14 >
15 >  * Searching for pecl-apcu ...
16 > [IP-] [  ] dev-php/pecl-apcu-5.1.18:7
17 >
18 >
19 > # grep PHP_TARGETS /etc/portage/make.conf
20 > PHP_TARGETS="php7-4"
21 >
22 > # eselect php list cli
23 >   [1]   php7.3
24 >   [2]   php7.4 *
25 > # eselect php list apache2
26 >   [1]   php7.3
27 >   [2]   php7.4 *
28 > The other eselect PHP modules are not set.
29 >
30 >
31 > When I try to re-emerge pecl-apcu, I get output which confuses me:
32 > # emerge -pv pecl-apcu
33 >
34 > These are the packages that would be merged, in order:
35 >
36 > Calculating dependencies /
37 >
38 > !!! Problem resolving dependencies for dev-php/pecl-apcu
39 > ... done!
40 >
41 > !!! The ebuild selected to satisfy "pecl-apcu" has unmet requirements.
42 > - dev-php/pecl-apcu-5.1.18::gentoo USE="lock-pthreadrw mmap
43 > -lock-pthreadmutex -lock-semaphore -lock-spinlock"
44 > PHP_TARGETS="(-php7-1) -php7-2 -php7-3 (-php7-4)"
45 >
46 >   The following REQUIRED_USE flag constraints are unsatisfied:
47 >     any-of ( php_targets_php7-1 php_targets_php7-2 php_targets_php7-3
48 > php_targets_php7-4 )
49 >
50 >   The above constraints are a subset of the following complete
51 > expression:
52 >     exactly-one-of ( lock-pthreadmutex lock-pthreadrw lock-spinlock
53 > lock-semaphore ) any-of ( php_targets_php7-1 php_targets_php7-2
54 > php_targets_php7-3 php_targets_php7-4 )
55 >
56 >
57 > If I understand correctly, PHP_TARGETS="(-php7-1) -php7-2 -php7-3
58 > (-php7-4)" above means that I cannot use 7.1 nor 7.4 (correct me if
59 > I'm wrong).  But I do not understand why, since all four versions of
60 > PHP are listed in the REQUIRED_USE line underneath.
61 >
62 >
63 > Another thing that confuses me is that PHP 7.4 isn't even listed in
64 > the output below (neither enabled nor disabled, but missing entirely):
65 > # equery u pecl-apcu
66 > [ Legend : U - final flag setting for installation]
67 > [        : I - package is installed with flag     ]
68 > [ Colors : set, unset                             ]
69 >  * Found these USE flags for dev-php/pecl-apcu-5.1.18:
70 >  U I
71 >  - - lock-pthreadmutex  : Enable pthread mutex locking
72 >  + + lock-pthreadrw     : Enable pthread read/write locking
73 >  - - lock-semaphore     : Enable semaphore locks instead of fcntl
74 >  - - lock-spinlock      : Enable spin locks (EXPERIMENTAL)
75 >  + + mmap               : Add mmap (memory map) support
76 >  - - php_targets_php7-2 : Build against PHP 7.2
77 >  - + php_targets_php7-3 : Build against PHP 7.3
78 >
79 >
80 > However, all four PHP versions seem to be supported by the ebuild,
81 > dev-php/pecl-apcu-5.1.18.ebuild:
82 > USE_PHP="php7-1 php7-2 php7-3 php7-4"
83 >
84 > Can anyone explain why php7-4 is either disallowed or missing, when
85 > the ebuild seems to allow it?
86 >
87 > Thanks.
88 >
89 >
90
91
92 First, my emerge output decoder ring isn't that great.  There are a few
93 on this list that can decode it pretty well, I'm not one of them but I
94 try.  ;-)
95
96 This is the interesting bit to me. 
97
98
99 !!! The ebuild selected to satisfy "pecl-apcu" has unmet requirements.
100 - dev-php/pecl-apcu-5.1.18::gentoo USE="lock-pthreadrw mmap
101 -lock-pthreadmutex -lock-semaphore -lock-spinlock"
102 PHP_TARGETS="(-php7-1) -php7-2 -php7-3 (-php7-4)"
103
104   The following REQUIRED_USE flag constraints are unsatisfied:
105     any-of ( php_targets_php7-1 php_targets_php7-2 php_targets_php7-3
106 php_targets_php7-4 )
107
108   The above constraints are a subset of the following complete expression:
109     exactly-one-of ( lock-pthreadmutex lock-pthreadrw lock-spinlock
110 lock-semaphore ) any-of ( php_targets_php7-1 php_targets_php7-2
111 php_targets_php7-3 php_targets_php7-4 )
112
113
114 Note in the first part it has PHPTARGETS= and that php7-4 is shown as
115 disabled.  Why is that?  Is it disabled in package.use or do you have to
116 manually enable it in package.use?  Since the others are also disabled,
117 is that setting correct somehow??  The way it shows it, all PHP is
118 disabled which doesn't make sense to me. 
119
120 I'd do a grep -r php /etc/portage/ and see if it shows some old entry
121 that needs to be changed or even removed, or possibly one added.  One
122 thing I've done and seen other post about, double entries.  You add a
123 entry at the top of a file and there is a older entry further down. 
124 Whichever emerge reads last is the one it uses.  It tends to ignore the
125 previous entry.  If you forget the old one is there, it makes your brain
126 go wonky.  It doesn't help emerge either. 
127
128 Also, equery list -p may prove helpful if this reply or someone with a
129 better decoder ring doesn't come up with a hint. 
130
131 Hope that helps, given my decoder ring is not great.  lol
132
133 Dale
134
135 :-)  :-) 

Replies

Subject Author
Re: [gentoo-user] PHP 7.4 and dev-php/pecl-apcu-5.1.18 Steve Freeman <trekie@×××××××.net>