Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: Ben de Groot <yngwin@g.o>
Cc: gentoo-dev <gentoo-dev@l.g.o>, qa@g.o
Subject: Re: [gentoo-dev] useflag policies
Date: Sun, 02 Aug 2015 17:27:32
Message-Id: 20150802192702.4d34b007@pomiocik
In Reply to: [gentoo-dev] useflag policies by Ben de Groot
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

Replies

Subject Author
Re: [gentoo-dev] useflag policies "Paweł Hajdan
Re: [gentoo-dev] useflag policies Andrew Savchenko <bircoph@g.o>
Re: [gentoo-dev] useflag policies Davide Pesavento <pesa@g.o>