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 |
:-) :-) |