1 |
On Sun, Oct 2, 2016 at 4:58 PM, Kent Fredric <kentnl@g.o> wrote: |
2 |
> On Sun, 2 Oct 2016 16:03:11 +0800 |
3 |
> konsolebox <konsolebox@×××××.com> wrote: |
4 |
> |
5 |
>> I actually don't like the idea of enabling or disabling |
6 |
>> "installed-readline" based on the `${PV} != *_rc*` condition. If a |
7 |
>> user would want to explicitly enable "installed-readline" globally, |
8 |
>> how would he make sure that it only affects the release version of |
9 |
>> bash? I suggest that we just don't entertain the flag (and not make |
10 |
>> it available) if the ebuild is not targetting a release version, and |
11 |
>> not use the readline installed by the system by default. No one would |
12 |
>> need a non-release version of bash compiled against a system readline |
13 |
>> anyway. |
14 |
> |
15 |
> That's not what that does. It doesn't enable or disable the mechanic, |
16 |
> the code I offered only changes the default for _rc. |
17 |
> |
18 |
> That is, on _rc the default is "use bundled readline implementation", |
19 |
> and on non_rc, the default is "use pre-existing readline |
20 |
> implementation". |
21 |
> |
22 |
> if the user specifies an explicit |
23 |
> |
24 |
> USE="system-readline" |
25 |
> |
26 |
> in make.conf or /etc/portage/package.use, then this "default" gets |
27 |
> overridden and the system readline implementation is always used. |
28 |
> |
29 |
> if the user speciifies an explicit |
30 |
> |
31 |
> USE="-system-readline" |
32 |
> |
33 |
> in make.conf or /etc/portage/package.use, then this "default" gets |
34 |
> overriden and the inbuilt readline is awlays used. |
35 |
> |
36 |
> Explicitly defined configuration always trumps IUSE. The "+" prefix in |
37 |
> IUSE only specifies that the USE flag defaults to on, as opposed to |
38 |
> defaulting off. |
39 |
|
40 |
I understand those elementary stuff, but my point was about whether we |
41 |
should allow the user to configure 'system-readline' on a non-release |
42 |
version of bash (i.e. make the flag available for them to configure). |
43 |
Your point is that instead of statically deciding whether we shouldn't |
44 |
use `--with-installed-readline` through `${PV} != *_rc*`, we instead |
45 |
base it on the flag, which means we allow the users to change the |
46 |
behavior of -non-release- versions of bash, which is, compiling |
47 |
against the bundled readline, to compiling against the system readline |
48 |
instead. |
49 |
|
50 |
How would a user be able to apply a distinguishing global |
51 |
configuration which would apply differently when the installing bash |
52 |
version is a release version, and when it's not? You might say that |
53 |
`system-readline` is enabled by default in a release version anyway, |
54 |
so specifying `system-readline` explicitly is meaningless and should |
55 |
only be done if you want to change the behavior of non-release |
56 |
versions of bash. But that's not the point. It's about the |
57 |
consistency. When we specify use flags in /etc/portage/make.conf, it |
58 |
shouldn't depend on the current default "enability" of a package's use |
59 |
flag. |
60 |
|
61 |
Also, do you think there could be a helpful case that one would |
62 |
install a non-release version of bash that compiles against the system |
63 |
readline? Perhaps if you're also brave enough to install an |
64 |
pre-release version of readline to the system, there is. |
65 |
|
66 |
Again, I say that it's better that the 'installed-readline' flag or |
67 |
'system-readline' flag is only made available in the release versions |
68 |
of bash. And we also don't want to make it a dummy where it is just |
69 |
ignored and not excluded. |
70 |
|
71 |
>> I also thought using 'system-' prefix is confusing. Does that mean |
72 |
>> the system of the machine, or the system of the application? In |
73 |
>> firefox, I once thought that system-* means packages bundled within |
74 |
>> it. Perhaps I misread, or perhaps it was changed. At that time, |
75 |
>> descriptions of use flags were not widely provided yet so I could only |
76 |
>> guess it based on how I built the packages. |
77 |
> |
78 |
> The system of the machine. As in, "Operating System". Always. |
79 |
> "system-foo" usually means "foo is bundled, and toggling this flag |
80 |
> toggles between using the bundled foo, or the system foo. |
81 |
|
82 |
Yes, but I'm not talking about how it is now. But nevermind. |
83 |
|
84 |
>> But I don't really mind which one is used. I also just thought |
85 |
>> 'installed-readline' is better since it configures |
86 |
>> `--with-installed-readline`, so one can simply have `$(use_enable |
87 |
>> installed-readline)` if applicable. |
88 |
> |
89 |
> 'use_enable' takes a USE flag and a configure token anyway. |
90 |
> |
91 |
> So: |
92 |
> |
93 |
> $(use_enable system-readline installed-readline) |
94 |
> |
95 |
> is equivalent to: |
96 |
> |
97 |
> use system-readline && myconf+=" --enable-installed-readline" |
98 |
|
99 |
I know, but like I said, "simply". `installed-readline` is just more |
100 |
relative. But I don't really care whatever gets used. |
101 |
|
102 |
-- |
103 |
konsolebox |