1 |
Dnia 2015-08-03, o godz. 00:34:51 |
2 |
Ben de Groot <yngwin@g.o> napisał(a): |
3 |
|
4 |
> Recently some team members of the Qt project have adopted these ebuild |
5 |
> policies: https://wiki.gentoo.org/wiki/Project:Qt/Policies |
6 |
> |
7 |
> I have an issue with the policy adopted under "Requires one of two Qt |
8 |
> versions". In my opinion, in the case where a package offers a choice |
9 |
> between qt4 or qt5, we should express this in explicit useflags and a |
10 |
> REQUIRED_USE="^^ ( qt4 qt5 )". This offers the user the clearest choice. |
11 |
> |
12 |
> Other developers state that users are not interested in such implementation |
13 |
> details, or that forced choice through REQUIRED_USE is too much of a |
14 |
> hassle. This results in current ebuilds such as quassel to not make it |
15 |
> clear that qt4 is an option. |
16 |
> |
17 |
> This goes against the principle of least surprise, as well as against QA |
18 |
> recommendations. I would like to hear specifically from QA about how we |
19 |
> should proceed, but comments from the wider developer community are also |
20 |
> welcome. |
21 |
|
22 |
Long story short, this is USE=gtk once again. GNOME team had a |
23 |
policy that handled the case cleanly and QA outvoted it in favor of |
24 |
Qt-like policy. Then Qt team figured out their policy was unfriendly, |
25 |
and 'fixed' it with this ugly hack... |
26 |
|
27 |
As I see it, this is a major failure of using toolkit-version oriented |
28 |
flags rather than feature-oriented flags. Possibilities compared: |
29 |
|
30 |
USE='qt4 qt5' without ^^ is easy to set since it is free of REQUIRED_USE |
31 |
issues. However, it's ugly: USE='qt4 qt5' may now mean either both |
32 |
toolkits or one of them. In the latter case, we have two flag |
33 |
combinations (= two different binary packages) that mean the same. |
34 |
Additionally, USE='-qt4 -qt5' may mean both none of them or one of |
35 |
them. If the latter, yet another case of redundant binary package. |
36 |
|
37 |
USE='qt4 qt5' with ^^/?? is cleaner from user perspective and better |
38 |
for binary packages. However, it may mean that user will have to |
39 |
randomly adjust flags per-package. Which may end up sucking even more |
40 |
with new Qt versions being introduced and package.use being full of |
41 |
random '-qt4' and stuff. |
42 |
|
43 |
What would be really clean is USE='qt qt5' (or 'qt qt4'), alike GNOME |
44 |
team policy. USE=qt would mean 'any version of Qt, if optional', and |
45 |
qt4/qt5 would be used to switch between Qt4/Qt5. If Qt would be |
46 |
obligatory, no USE=qt would apply. If only one Qt version would be |
47 |
supported, no USE=qt4/qt5 would apply. Clean, sane and limited |
48 |
package.use cruft. |
49 |
|
50 |
However, as you can see QA has previously outvoted the clean policy for |
51 |
USE=gtk. I don't see why it would decide otherwise for USE=qt*. |
52 |
|
53 |
-- |
54 |
Best regards, |
55 |
Michał Górny |