1 |
On Wed, 1 Jun 2016 16:27:16 +0000 (UTC) |
2 |
Martin Vaeth <martin@×××××.de> wrote: |
3 |
|
4 |
> Michał Górny <mgorny@g.o> wrote: |
5 |
> >> |
6 |
> >>Therefore, I suggest to put this line in l10n.eclass |
7 |
> >>(perhaps with a mechanism to avoid it for some exceptional packages |
8 |
> >>which have to treat LINGUAS differently.) |
9 |
> >>This way, none of these ebuilds inheriting l10n needs to be patched. |
10 |
> > |
11 |
> > This eclass should be killed with fire as ugly nonsense that |
12 |
> > makes some packages useless for binary packages. |
13 |
> |
14 |
> Exactly the opposite is the case: |
15 |
> Letting a variabe like LINGUAS "hiddden from the package manager" |
16 |
> decide about the actual content of the package makes any handling |
17 |
> of binary packages broken. |
18 |
> The introduction of linguas_* (and of the l10n eclass to make this |
19 |
> handable for the ebuild writer) was finally fixing this long-broken |
20 |
> behaviour of ebuilds. |
21 |
> You now want to revert this fix and return to the earlier broken |
22 |
> state without any need. |
23 |
|
24 |
Do you have any numbers on how many ebuilds were exactly being fixed? |
25 |
And how many were broken in the process because someone failed to |
26 |
update linguas_*? How do you feel about the lot of Chromium users who |
27 |
spent a few hours rebuilding it to discover that they did only for |
28 |
a linguas_* flag change they didn't even care for? |
29 |
|
30 |
We're seriously talking about broken fix to a non-existent problem that |
31 |
actually introduces real problems (and the incidental locale removal |
32 |
is the least of those problems). |
33 |
|
34 |
> If the only reason for the "need" is a badly |
35 |
> formulated/thought-through EAPI=5/6 specification to clean |
36 |
> LINGUAS for packages not having it in its IUSE, then please |
37 |
> fix this specification or make at least an exception for LINGUAS, |
38 |
> but don't break the working solution. |
39 |
|
40 |
How are you going to fix it? What should land in LINGUAS then? How |
41 |
would you determine the correct value? How would you apply package.use |
42 |
with flags that don't exist? |
43 |
|
44 |
> > As for LINGUAS, it should be left as a toy for advanced users |
45 |
> |
46 |
> Selecting the languages which a package supports is an option |
47 |
> only for advanced users? You must be kidding! |
48 |
|
49 |
No, implicitly stripping installed files via insecure mechanism that |
50 |
is outside of package manager control is. |
51 |
|
52 |
> > and not presented as a recommended solution. |
53 |
> |
54 |
> The "recommended solution" is to rely on a hack which removs |
55 |
> files behind the back of upstreams installation program (which |
56 |
> likely installs other random language data in random files for |
57 |
> various languages)? |
58 |
> You are kidding again! |
59 |
|
60 |
Yes, we know that all binary distributions were based on hacks for |
61 |
years. Only Gentoo did it right by enabling quirks that incidentally |
62 |
caused files not to be installed without knowing which files were |
63 |
actually omitted. Except when they didn't. Or maybe they did. |
64 |
|
65 |
> >>1) In contrast to packages with L10N, the user cannot see with |
66 |
> >>tools like eix for which linguas a certain package is installed. |
67 |
> >>In fact, the user would have to analyze the compressed environment |
68 |
> >>file find this out (this is also very package manager specific): |
69 |
> > |
70 |
> > What's the use of this? |
71 |
> |
72 |
> That the package manager (and the user) is well aware of the |
73 |
> options actually used to compile/install the package. Not hiding |
74 |
> the user-selected configuration behind the package manager and |
75 |
> the user in some random variable. |
76 |
|
77 |
It's as random as LINGUAS. Your point? |
78 |
|
79 |
> > Most of the packages don't have the flags anyway. |
80 |
> |
81 |
> Then fix the package not handling LINGUAS in a sane way yet. |
82 |
|
83 |
I'm not sure if you are aware of it but most of us is not getting paid |
84 |
for working on Gentoo. So thank you, I'd rather not get another huge |
85 |
amount of work for minor benefit of a few vocal users who can't stand |
86 |
not having every single possible useless choice pretty printed on top of |
87 |
every single package. |
88 |
|
89 |
So how about you do it? I'm going to complain if you get around 80% of |
90 |
ebuild fixed for this, and guarantee that the flags will always be |
91 |
up-to-date. |
92 |
|
93 |
> > For those who have, you can't trust them being up-to-date. |
94 |
> |
95 |
> That's a non-argument. No ebuild you can trust being |
96 |
> up-to-date as well as all ebuilds. |
97 |
|
98 |
Of course. Your arguments are important arguments, mine are |
99 |
non-arguments. When people don't get needed locales installed, it's |
100 |
a non-problem. When they get extra files on their precious hard drives, |
101 |
it's a huge issue. |
102 |
|
103 |
> > As for installed package, all files are listed in vdb |
104 |
> > (including those masked), so you can easily figure out the |
105 |
> > differences. |
106 |
> |
107 |
> So to find out whether a binary package is valid for the |
108 |
> current configuration (i.e. the current LINGUAS), the package |
109 |
> manager or user "just" has to recompile it and compare |
110 |
> the files and checksums. Great! |
111 |
> And because this reinstallation-solution is possible, it |
112 |
> is ok to rely on a hack instead of a solution visible to |
113 |
> the package manager and user. |
114 |
|
115 |
I don't even understand what you're trying to imply. |
116 |
|
117 |
*Every* binary package is valid because it doesn't have anything |
118 |
stripped. It's stripped while the package is installed. That's how |
119 |
INSTALL_MASK works. |
120 |
|
121 |
And as I already pointed out, it *is* visible to the package manager |
122 |
because it records it. It's real data. There. In the files. Seriously. |
123 |
|
124 |
> >>2) Even worse for binary packages. |
125 |
> > |
126 |
> > Wrong. All localizations are included in the binary package, |
127 |
> |
128 |
> but not in the metadata. |
129 |
|
130 |
Your point? |
131 |
|
132 |
> > Of course, as long as maintainer doesn't start playing with LINGUAS. |
133 |
> |
134 |
> That's the point: As long as all systems and all packages have |
135 |
> the same LINGUAS settings. Which is not the case for many |
136 |
> users having various systems. E.g. for a laptop, it is very |
137 |
> natural to have different LINGUAS than for a desktop, even |
138 |
> if you likely compile for the laptop on the desktop. |
139 |
|
140 |
That's why you are not supposed to use it. Simple enough. Then you have |
141 |
reusable binary packages that can get fitted to the target system using |
142 |
INSTALL_MASK. |
143 |
|
144 |
> >>3) The package manager cannot see after a change of LINGUAS, |
145 |
> >>which packages need a recompilaten. |
146 |
> > |
147 |
> > Wrong, as already explained above. |
148 |
> |
149 |
> So? How can you see it? By checking hackishly the existence |
150 |
> of random files in */po/* while e.g. the actual effect of |
151 |
> LINGUAS is in some error message provided by the package |
152 |
> in god-knows-what manner? |
153 |
> |
154 |
> *If* you want to keep only LINGUAS and not introduce L10N, |
155 |
> *then* at least you should make LINGUAS a metadata variable |
156 |
> to be stored in /var/db so that the user and package manager |
157 |
> can easily access it. |
158 |
|
159 |
Why are you making some random assumptions that I'm going to do exactly |
160 |
the opposite of what I've proposed? |
161 |
|
162 |
If LINGUAS is marked as advanced variable you're not supposed to use, |
163 |
I don't care about its side effects. I care about L10N and files |
164 |
stripped via INSTALL_MASKs. If you use LINGUAS, you're on your own. |
165 |
|
166 |
-- |
167 |
Best regards, |
168 |
Michał Górny |
169 |
<http://dev.gentoo.org/~mgorny/> |