1 |
On Fri, 2012-07-20 at 18:09 +0100, Ciaran McCreesh wrote: |
2 |
> On Fri, 20 Jul 2012 12:39:21 -0400 |
3 |
> Mike Gilbert <floppym@g.o> wrote: |
4 |
> > On Fri, Jul 20, 2012 at 2:54 AM, Ciaran McCreesh |
5 |
> > <ciaran.mccreesh@××××××××××.com> wrote: |
6 |
> > > On Thu, 19 Jul 2012 18:34:41 -0400 |
7 |
> > > Mike Gilbert <floppym@g.o> wrote: |
8 |
> > >> On Thu, Jul 19, 2012 at 5:13 PM, Zac Medico <zmedico@g.o> |
9 |
> > >> wrote: |
10 |
> > >> > On 07/19/2012 06:14 AM, Ralph Sennhauser wrote: |
11 |
> > >> >> Could be that Portage re-exports a sanitized |
12 |
> > >> >> LINGUAS tough, but I doubt it. |
13 |
> > >> > |
14 |
> > >> > Portage does sanitize it if there are any linguas_* flags in |
15 |
> > >> > IUSE, otherwise it lets the variable pass through without |
16 |
> > >> > sanitizing it. |
17 |
> > >> |
18 |
> > >> That's good; we definitely don't want to "sanitize" it if there |
19 |
> > >> are no linuguas_* flags in IUSE. This would break LINUGUAS support |
20 |
> > >> for many autotools/gettext based packages, where the autotools |
21 |
> > >> code parses LINGUAS directly and the ebuild does nothing with it. |
22 |
> > > |
23 |
> > > If there aren't any linguas_* flags in IUSE, LINGUAS should be |
24 |
> > > empty, and will be in future EAPIs. Without that, USE dependencies |
25 |
> > > on USE_EXPAND variables don't work. |
26 |
> > |
27 |
> > How do you figure that? |
28 |
> |
29 |
> If you dep upon foo[linguas_en(+)] and linguas_en isn't in IUSE, what |
30 |
> happens? |
31 |
|
32 |
Fatal error. If a package installs its translations implicitly via |
33 |
gettext's rules depending on the value of LINGUAS at configure time, |
34 |
then obviously other packages must rely on that package having installed |
35 |
any particular translation. |
36 |
|
37 |
> > The current portage behavior works well enough; if linugas_* is in |
38 |
> > IUSE, LINGUAS is treated as a USE_EXPAND, and use-deps should work |
39 |
> > fine. |
40 |
> > |
41 |
> > Otherwise, it is treated just like a normal environment variable, and |
42 |
> > portage doesn't touch it. |
43 |
> |
44 |
> It's not a normal environment variable, and it never has been. |
45 |
|
46 |
LINGUAS has been an environment variable with a special meaning for |
47 |
gettext-based build systems, which are rather popular in the free |
48 |
software world, since, oh, at least the year 2002 or so, when |
49 |
gettext-0.11 was released. Maybe even earlier. |
50 |
|
51 |
> > For most gettext packages, there is absolutely no reason that the |
52 |
> > ebuild maintainer should have to keep track of every translation |
53 |
> > available in a given package across version bumps. If you change this |
54 |
> > behavior in a future EAPI, you will break this. |
55 |
> |
56 |
> Don't use a USE_EXPAND variable if you don't want USE_EXPAND behaviour. |
57 |
|
58 |
Thousands of packages rely on a particular interpretation of LINGUAS |
59 |
that has been standard across all distros for a decade. If that behavior |
60 |
changed in EAPI5, then EAPI5 is not suitable for adoption in Gentoo. |
61 |
|
62 |
-Alexandre. |