1 |
Hello, everyone. |
2 |
|
3 |
Since the previous thread doesn't seem to have brought any good |
4 |
solution to the problem other than stopping to (ab)use LINGUAS |
5 |
as USE_EXPAND, I would like to start a RFC on a draft solution that |
6 |
I'd like afterwards to propose to the Council. |
7 |
|
8 |
|
9 |
Rationale |
10 |
--------- |
11 |
|
12 |
The direct reason for this is that LINGUAS is treated as non-standard |
13 |
special variable by multiple build systems. This includes the following |
14 |
problems: |
15 |
|
16 |
1. no localizations are installed if it is set to an empty value (which |
17 |
happens in EAPI 5 when the ebuild does not use the flags), |
18 |
|
19 |
2. there were historical cases where order of LINGUAS mattered. |
20 |
|
21 |
Those problems can't be reasonably solved within the scope of |
22 |
USE_EXPAND. Furthermore, the use of flags to control localizations is |
23 |
causing the following problems: |
24 |
|
25 |
a. maintaining correct flag list is a serious maintenance burden, |
26 |
especially that differences in build systems make it hard to figure out |
27 |
the 'most correct' set automatically, |
28 |
|
29 |
b. missing flags result in localizations being silently dropped, with |
30 |
no clear way (i.e. for QA check) to detect that, |
31 |
|
32 |
c. large number of additional USE flags make it pretty much impossible |
33 |
to limit localizations this way when using binary packages. |
34 |
|
35 |
|
36 |
The plan |
37 |
-------- |
38 |
|
39 |
1. Get approval on INSTALL_MASK GLEP [1] and finish implementing it |
40 |
in Portage. |
41 |
|
42 |
2. Introduce a new USE_EXPAND that can be used to control localizations |
43 |
whenever this is really required (dependencies, large files, etc.). |
44 |
Let's use L10N as a draft name for it. |
45 |
|
46 |
3. Fix all packages using LINGUAS as USE_EXPAND, either by converting |
47 |
to L10N or by removing the needless flags. |
48 |
|
49 |
4. Remove LINGUAS from USE_EXPAND, therefore removing the special EAPI |
50 |
rules from the variable. |
51 |
|
52 |
5. Release a news item explaining the users the change, |
53 |
and the necessary action. Request changing LINGUAS to L10N |
54 |
in make.conf, and make LINGUAS considered an 'advanced variable' for |
55 |
implicit localization control (i.e. passed through to build systems). |
56 |
Recommend clean INSTALL_MASK solution instead. |
57 |
|
58 |
The example 'new' make.conf would probably look like: |
59 |
|
60 |
# controlling e.g. langpacks |
61 |
L10N="en_US pl" |
62 |
# stripping unneeded files |
63 |
INSTALL_MASK="@linguas -@linguas_pl" |
64 |
|
65 |
|
66 |
Your thoughts? |
67 |
|
68 |
|
69 |
[1]:https://wiki.gentoo.org/wiki/User:MGorny/GLEP:INSTALL_MASK |
70 |
|
71 |
-- |
72 |
Best regards, |
73 |
Michał Górny |
74 |
<http://dev.gentoo.org/~mgorny/> |