Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Cc: qa@g.o
Subject: [gentoo-dev] [RFC] Masterplan for solving LINGUAS problems
Date: Tue, 31 May 2016 12:49:45
Message-Id: 20160531144926.4937d77a.mgorny@gentoo.org
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/>

Replies