Dnia 2015-08-03, o godz. 00:34:51
Ben de Groot <yng...@gentoo.org> napisał(a):

> Recently some team members of the Qt project have adopted these ebuild
> policies: https://wiki.gentoo.org/wiki/Project:Qt/Policies
> 
> I have an issue with the policy adopted under "Requires one of two Qt
> versions". In my opinion, in the case where a package offers a choice
> between qt4 or qt5, we should express this in explicit useflags and a
> REQUIRED_USE="^^ ( qt4 qt5 )". This offers the user the clearest choice.
> 
> Other developers state that users are not interested in such implementation
> details, or that forced choice through REQUIRED_USE is too much of a
> hassle. This results in current ebuilds such as quassel to not make it
> clear that qt4 is an option.
> 
> This goes against the principle of least surprise, as well as against QA
> recommendations. I would like to hear specifically from QA about how we
> should proceed, but comments from the wider developer community are also
> welcome.

Long story short, this is USE=gtk once again. GNOME team had a
policy that handled the case cleanly and QA outvoted it in favor of
Qt-like policy. Then Qt team figured out their policy was unfriendly,
and 'fixed' it with this ugly hack...

As I see it, this is a major failure of using toolkit-version oriented
flags rather than feature-oriented flags. Possibilities compared:

USE='qt4 qt5' without ^^ is easy to set since it is free of REQUIRED_USE
issues. However, it's ugly: USE='qt4 qt5' may now mean either both
toolkits or one of them. In the latter case, we have two flag
combinations (= two different binary packages) that mean the same.
Additionally, USE='-qt4 -qt5' may mean both none of them or one of
them. If the latter, yet another case of redundant binary package.

USE='qt4 qt5' with ^^/?? is cleaner from user perspective and better
for binary packages. However, it may mean that user will have to
randomly adjust flags per-package. Which may end up sucking even more
with new Qt versions being introduced and package.use being full of
random '-qt4' and stuff.

What would be really clean is USE='qt qt5' (or 'qt qt4'), alike GNOME
team policy. USE=qt would mean 'any version of Qt, if optional', and
qt4/qt5 would be used to switch between Qt4/Qt5. If Qt would be
obligatory, no USE=qt would apply. If only one Qt version would be
supported, no USE=qt4/qt5 would apply. Clean, sane and limited
package.use cruft.

However, as you can see QA has previously outvoted the clean policy for
USE=gtk. I don't see why it would decide otherwise for USE=qt*.

--
Best regards,
Michał Górny

Attachment: pgpCv2HAvQuOi.pgp
Description: OpenPGP digital signature

Reply via email to