1 |
On Sun, 2 Oct 2016 16:03:11 +0800 |
2 |
konsolebox <konsolebox@×××××.com> wrote: |
3 |
|
4 |
> I actually don't like the idea of enabling or disabling |
5 |
> "installed-readline" based on the `${PV} != *_rc*` condition. If a |
6 |
> user would want to explicitly enable "installed-readline" globally, |
7 |
> how would he make sure that it only affects the release version of |
8 |
> bash? I suggest that we just don't entertain the flag (and not make |
9 |
> it available) if the ebuild is not targetting a release version, and |
10 |
> not use the readline installed by the system by default. No one would |
11 |
> need a non-release version of bash compiled against a system readline |
12 |
> anyway. |
13 |
|
14 |
That's not what that does. It doesn't enable or disable the mechanic, |
15 |
the code I offered only changes the default for _rc. |
16 |
|
17 |
That is, on _rc the default is "use bundled readline implementation", |
18 |
and on non_rc, the default is "use pre-existing readline |
19 |
implementation". |
20 |
|
21 |
if the user specifies an explicit |
22 |
|
23 |
USE="system-readline" |
24 |
|
25 |
in make.conf or /etc/portage/package.use, then this "default" gets |
26 |
overridden and the system readline implementation is always used. |
27 |
|
28 |
if the user speciifies an explicit |
29 |
|
30 |
USE="-system-readline" |
31 |
|
32 |
in make.conf or /etc/portage/package.use, then this "default" gets |
33 |
overriden and the inbuilt readline is awlays used. |
34 |
|
35 |
Explicitly defined configuration always trumps IUSE. The "+" prefix in |
36 |
IUSE only specifies that the USE flag defaults to on, as opposed to |
37 |
defaulting off. |
38 |
|
39 |
> |
40 |
> I also thought using 'system-' prefix is confusing. Does that mean |
41 |
> the system of the machine, or the system of the application? In |
42 |
> firefox, I once thought that system-* means packages bundled within |
43 |
> it. Perhaps I misread, or perhaps it was changed. At that time, |
44 |
> descriptions of use flags were not widely provided yet so I could only |
45 |
> guess it based on how I built the packages. |
46 |
|
47 |
The system of the machine. As in, "Operating System". Always. |
48 |
"system-foo" usually means "foo is bundled, and toggling this flag |
49 |
toggles between using the bundled foo, or the system foo. |
50 |
|
51 |
> |
52 |
> But I don't really mind which one is used. I also just thought |
53 |
> 'installed-readline' is better since it configures |
54 |
> `--with-installed-readline`, so one can simply have `$(use_enable |
55 |
> installed-readline)` if applicable. |
56 |
|
57 |
'use_enable' takes a USE flag and a configure token anyway. |
58 |
|
59 |
So: |
60 |
|
61 |
$(use_enable system-readline installed-readline) |
62 |
|
63 |
is equivalent to: |
64 |
|
65 |
use system-readline && myconf+=" --enable-installed-readline" |
66 |
|
67 |
But you probably wanted "use_with" ( man 5 ebuild ) |
68 |
|
69 |
$(use_with system-readline installed-readline) |
70 |
|
71 |
Which is instead equivalent to |
72 |
|
73 |
use system-readline && myconf+=" --with-installed-readline" |