Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: Martin Vaeth <martin@×××××.de>
Cc: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: [RFC] Masterplan for solving LINGUAS problems
Date: Wed, 01 Jun 2016 17:06:37
Message-Id: 20160601190619.685d700f.mgorny@gentoo.org
In Reply to: [gentoo-dev] Re: [RFC] Masterplan for solving LINGUAS problems by Martin Vaeth
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/>

Replies

Subject Author
[gentoo-dev] Re: [RFC] Masterplan for solving LINGUAS problems Martin Vaeth <martin@×××××.de>