1 |
Hello, |
2 |
|
3 |
|
4 |
Those of you who read my blog post on LINGUAS [1] may already know |
5 |
what's going on. For those who didn't, short summary: |
6 |
|
7 |
In EAPI 5 and newer, all variables listed in USE_EXPAND are supposed to |
8 |
be unconditionally exported with their values reduced to enabled USE |
9 |
flags listed in IUSE. In particular, this means that if ebuild does not |
10 |
list any linguas_* flags in IUSE, PM exports *empty* LINGUAS (i.e. |
11 |
disables all localizations with the implicit gettext behavior). |
12 |
|
13 |
Portage had so far some ugly hack-logic that tried to keep LINGUAS |
14 |
working somehow in place. However, the patches to enable PMS-compliant |
15 |
behavior are on their way, so it's about time to decide what to do |
16 |
about LINGUAS. |
17 |
|
18 |
|
19 |
I see the following possibilities: |
20 |
|
21 |
1. We start explicitly listing linguas_* in all ebuilds, no matter how |
22 |
tiny they are. Maintainers are required to keep IUSE up-to-date |
23 |
and users are forced to rebuild a lot. This is also a QA violation |
24 |
in terms of invalid use of USE flags. |
25 |
|
26 |
2. We hack-unset LINGUAS in ebuilds. This is a lot of effort, easy to |
27 |
miss and probably would need to repeated for every single phase anyway |
28 |
due to how global variables are handled in PMS. Additionally, it may |
29 |
break at some point since those variables are likely expected to be |
30 |
read-only anyway. |
31 |
|
32 |
3. We remove LINGUAS from USE_EXPAND and stop using it. If ebuilds have |
33 |
a good reason to use flags for localization, we introduce a new, |
34 |
non-colliding USE_EXPAND for that. We also ask users to replace LINGUAS |
35 |
with the new flag in their make.conf files. LINGUAS gets the original |
36 |
upstream behavior back, and we eventually discourage it in favor of new |
37 |
INSTALL_MASK features (WiP) [2]. |
38 |
|
39 |
4. We fix build systems not to do magic depending on whether LINGUAS |
40 |
is unset or set-to-empty. Instead, we could some special special value |
41 |
like '-' to signify not installing localizations at all. But that's |
42 |
upstream thing to do, and breaks backwards compatibility with existing |
43 |
systems disabling localizations. |
44 |
|
45 |
|
46 |
Your thoughts? |
47 |
|
48 |
|
49 |
[1]:https://blogs.gentoo.org/mgorny/2016/05/16/how-linguas-are-thrice-wrong/ |
50 |
[2]:https://wiki.gentoo.org/wiki/User:MGorny/GLEP:INSTALL_MASK |
51 |
|
52 |
-- |
53 |
Best regards, |
54 |
Michał Górny |
55 |
<http://dev.gentoo.org/~mgorny/> |