useflag policies

classic Classic list List threaded Threaded
135 messages Options
1234567
Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Sergey Popov
<qa team lead hat>

In short - apropriate REQUIRED_USE with setting recommended
USE-flag(e.g. USE="+qt4 qt5" or USE="qt4 +qt5")

</qa team lead hat>

That's most painless decision for both developers and users. Developers
do not need to maintain ugly dependencies like

DEPEND="qt4 ? (
qt5 ( dev-qt/qtcore:5 )
!qt5 ( dev-qt/qtcore:4 )
)
...
"
and other mess.

</qa team lead hat>

Users will have default behaviour for empty make.conf. If they adjust
they make.conf to globally include/exclude some Qt-related USEs - they
are already moving from default and that's why - they can add apropriate
options to package.use


02.08.2015 19:34, Ben de Groot пишет:

> 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.
>
> --
> Cheers,
>
> Ben | yngwin
> Gentoo developer
>

--
Best regards, Sergey Popov
Gentoo developer
Gentoo Desktop-effects project lead
Gentoo Quality Assurance project lead
Gentoo Proxy maintainers project lead


signature.asc (484 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Alexandre Rostovtsev-2
On Sun, 2015-08-09 at 22:38 +0300, Sergey Popov wrote:
> <qa team lead hat>
>
> In short - apropriate REQUIRED_USE with setting recommended
> USE-flag(e.g. USE="+qt4 qt5" or USE="qt4 +qt5")
>
> </qa team lead hat>

If a package has optional guis, why should users of the default profile get any
gui enabled by default? The default profile usually means "headless server". It
means users who specifically don't need gtk, don't need qt4, don't need qt5,
don't need X.

So please don't + desktop-oriented USE flags in an ebuild's IUSE by default
unless the whole ebuild is intended mainly for desktop users.

> Users will have default behaviour for empty make.conf. If they adjust
> they make.conf to globally include/exclude some Qt-related USEs - they
> are already moving from default and that's why - they can add apropriate
> options to package.use

There is more than one "default" from which to move away. Different profiles
globally enable different flags. Desktop, gnome, and kde profiles already enable
qt4 globally. Plasma already enables qt4 and qt5 globally. And the desktop
profile will probably end up enabling qt4 and qt5 at some point.

signature.asc (970 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Davide Pesavento-2
In reply to this post by Sergey Popov
On Sun, Aug 9, 2015 at 12:38 PM, Sergey Popov <[hidden email]> wrote:

> <qa team lead hat>
>
> In short - apropriate REQUIRED_USE with setting recommended
> USE-flag(e.g. USE="+qt4 qt5" or USE="qt4 +qt5")
>
> </qa team lead hat>
>
> That's most painless decision for both developers and users. Developers
> do not need to maintain ugly dependencies like
>
> DEPEND="qt4 ? (
> qt5 ( dev-qt/qtcore:5 )
> !qt5 ( dev-qt/qtcore:4 )
> )
> ...
> "
> and other mess.
>
> </qa team lead hat>
>
> Users will have default behaviour for empty make.conf. If they adjust
> they make.conf to globally include/exclude some Qt-related USEs - they
> are already moving from default and that's why - they can add apropriate
> options to package.use
>

Sergey,

It seems you completely ignored the discussion that took place in this
thread (and I also think you misunderstood the scenario judging from
the example you gave). Therefore I'm sorry but I will ignore your
opinion as QA team lead.

Thanks,
Davide

Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Ulrich Mueller-2
In reply to this post by Sergey Popov
>>>>> On Sun, 09 Aug 2015, Sergey Popov wrote:

> <qa team lead hat>
> In short - apropriate REQUIRED_USE with setting recommended
> USE-flag(e.g. USE="+qt4 qt5" or USE="qt4 +qt5")

> </qa team lead hat>

> That's most painless decision for both developers and users. Developers
> do not need to maintain ugly dependencies like

> DEPEND="qt4 ? (
> qt5 ( dev-qt/qtcore:5 )
> !qt5 ( dev-qt/qtcore:4 )
> )
> ...
> "
> and other mess.

> </qa team lead hat>

I disagree with this. Really, REQUIRED_USE should be used sparingly,
and IMHO the above is not a legitimate usage case for it.

Ulrich

attachment0 (501 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Alexander Berntsen-2
In reply to this post by Sergey Popov
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On 09/08/15 21:38, Sergey Popov wrote:
> <qa team lead hat>
>
> In short - apropriate REQUIRED_USE with setting recommended
> USE-flag(e.g. USE="+qt4 qt5" or USE="qt4 +qt5")
>
> </qa team lead hat>
Strong -1.
- --
Alexander
[hidden email]
https://secure.plaimi.net/~alexander
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCgAGBQJVyFJ0AAoJENQqWdRUGk8BdYkP/3ZNmUAawdlBnX7Bjlc8io0c
AGVTFCFX8tjbu4nnx1jZe9ZXB3SEBfHs8rb8/I/9h6BmDUi9jU2ca7E9Iw27/IDg
qxd7xy+iGY00IjLgtWooI06ELJRv7KHxAAOb9UOpJuRZvxW4a1MaUgE2lddy+c9r
7wNJaHjgdkm9qJOejaf/kWiYpwOM6HYWZlV9Mq7EV3Jzn1K9u8gRJDB9Rf0uIwoe
Tt/bD1wbQvMKzgDXdxh8zlNaI6F2v+xUFF8UJqjtEptjVHN/BFGTL8Rxbdm39eIk
PqiyfMQsjGSk6OLJe60dD5nnRHxwVz+r97O9Kwag7bGdaTeRB9/8zITHHe5GgvbW
v3ibxSfS1/2rOmynMJmj1/tFeFyulDcAhajUdB6dpX/Pv2wyUN8SluezrT0VIb1G
IGMkzRAzqwYAbdhe/y6YcO6lFtKDcET4NpuLo6cHhDzYmkcHWjcROHOOghtpLL9w
TvYwyQmCA4BN9y/NBw6Sw80TeumRKGr0Uh1SyvNwb/JaMRWEvR0NdfljOtPk4cjS
mf55dWs85wrZTSvqpNS1riAI+UIXeB5A/Rwb4F/mvvV4B0tabnoPMxyNGqk7ZP+n
AC4pCMoI29saUedBjl+Em8iG1dYL2KCAUE4ItONl74AchzQBToN1zcpHegEBGKjt
cCJj84GIjFWf3BVm63xa
=MKyo
-----END PGP SIGNATURE-----

Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Sergey Popov
In reply to this post by Alexandre Rostovtsev-2
What's not clear with 'apropriate' word in my sentence?

Let me clarify - if package depend either on Qt4 or Qt5 and CAN not be
built with Qt at all - force this behaviour with REQUIRED_USE.

I think that it was obvious that i have meant exactly this case, cause
other cases are unreasonable here.

09.08.2015 23:07, Alexandre Rostovtsev пишет:

> On Sun, 2015-08-09 at 22:38 +0300, Sergey Popov wrote:
>> <qa team lead hat>
>>
>> In short - apropriate REQUIRED_USE with setting recommended
>> USE-flag(e.g. USE="+qt4 qt5" or USE="qt4 +qt5")
>>
>> </qa team lead hat>
>
> If a package has optional guis, why should users of the default profile get any
> gui enabled by default? The default profile usually means "headless server". It
> means users who specifically don't need gtk, don't need qt4, don't need qt5,
> don't need X.
>
> So please don't + desktop-oriented USE flags in an ebuild's IUSE by default
> unless the whole ebuild is intended mainly for desktop users.
>
>> Users will have default behaviour for empty make.conf. If they adjust
>> they make.conf to globally include/exclude some Qt-related USEs - they
>> are already moving from default and that's why - they can add apropriate
>> options to package.use
>
> There is more than one "default" from which to move away. Different profiles
> globally enable different flags. Desktop, gnome, and kde profiles already enable
> qt4 globally. Plasma already enables qt4 and qt5 globally. And the desktop
> profile will probably end up enabling qt4 and qt5 at some point.
>

--
Best regards, Sergey Popov
Gentoo developer
Gentoo Desktop Effects project lead
Gentoo Quality Assurance project lead
Gentoo Proxy maintainers project lead


signature.asc (484 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Sergey Popov
In reply to this post by Davide Pesavento-2
Err, i have read the whole thread and still does not get a point, why i
am wrong.

It's old battle like we have beforce with "gtk" meaning "any versions of
GTK flag". This behaviour should be killed with fire.

Let's me reiterate some of the cases:

1. Package can be build without Qt GUI at all, but either Qt4 or Qt5 can
be chosen, but not both.

Fix this with REQUIRED_USE, do not enable any of Qt flags by default

2. Package can not be build without Qt GUI - either Qt4 or Qt5 is
required, but not both

Same thing here, different REQUIRED_USE operator. But - enable one of
the flags by default to ease life of users.

3. Package can be build with Qt4 or Qt5 or both AT THE SAME TIME(if such
package even exists?)

Do not use REQUIRED_USE here, not needed.

Now, please tell me, where am i wrong?

09.08.2015 23:08, Davide Pesavento пишет:

> On Sun, Aug 9, 2015 at 12:38 PM, Sergey Popov <[hidden email]> wrote:
>> <qa team lead hat>
>>
>> In short - apropriate REQUIRED_USE with setting recommended
>> USE-flag(e.g. USE="+qt4 qt5" or USE="qt4 +qt5")
>>
>> </qa team lead hat>
>>
>> That's most painless decision for both developers and users. Developers
>> do not need to maintain ugly dependencies like
>>
>> DEPEND="qt4 ? (
>> qt5 ( dev-qt/qtcore:5 )
>> !qt5 ( dev-qt/qtcore:4 )
>> )
>> ...
>> "
>> and other mess.
>>
>> </qa team lead hat>
>>
>> Users will have default behaviour for empty make.conf. If they adjust
>> they make.conf to globally include/exclude some Qt-related USEs - they
>> are already moving from default and that's why - they can add apropriate
>> options to package.use
>>
>
> Sergey,
>
> It seems you completely ignored the discussion that took place in this
> thread (and I also think you misunderstood the scenario judging from
> the example you gave). Therefore I'm sorry but I will ignore your
> opinion as QA team lead.
>
> Thanks,
> Davide
>
--
Best regards, Sergey Popov
Gentoo developer
Gentoo Desktop Effects project lead
Gentoo Quality Assurance project lead
Gentoo Proxy maintainers project lead


signature.asc (484 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Sergey Popov
In reply to this post by Ulrich Mueller-2
09.08.2015 23:28, Ulrich Mueller пишет:
> I disagree with this. Really, REQUIRED_USE should be used sparingly,
> and IMHO the above is not a legitimate usage case for it.

So, you prefer to make ugly mess of deps here like i posted before or
introduce some really unneded USE-flag like 'gui', 'qt', etc. to make
users even more confused?

Really, look at man-db ebuild. Especially on berkdb and gdbm USE flags.
And dependency string like this:

!berkdb? ( !gdbm? ( sys-libs/gdbm ) )

One sentence: "WHAT THE HELL?"

Imagine that it would be dozen of flags. Is it fun to mess with deps
like this for you?

--
Best regards, Sergey Popov
Gentoo developer
Gentoo Desktop Effects project lead
Gentoo Quality Assurance project lead
Gentoo Proxy maintainers project lead


signature.asc (484 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Georg Rudoy
In reply to this post by Sergey Popov
2015-08-11 11:10 GMT+01:00 Sergey Popov <[hidden email]>:
3. Package can be build with Qt4 or Qt5 or both AT THE SAME TIME(if such
package even exists?)

Take app-text/poppler as an "officially supported" example.

Take x11-libs/qwt as an example of a library that gets a patched library name to avoid collisions (at least, last time I looked into it).

I would argue this is a very desirably property for libraries in general. I even keep my own small overlay with Qt5-enabled versions of libraries like qxmpp, qtermwidget or liblastfm.
 
Do not use REQUIRED_USE here, not needed.

You missed the fourth option: the package can not be built without Qt GUI, but it supports building with either Qt version at the same time.

--
  Georg Rudoy
Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Sergey Popov
11.08.2015 13:18, Georg Rudoy пишет:
>
> You missed the fourth option: the package can not be built without Qt
> GUI, but it supports building with either Qt version at the same time.
>

Not a problem.

REQUIRED_USE="|| ( qt4 qt5 )"

At least one of flags should be enabled, but both can be enabled too(if
i understand your example correctly)

--
Best regards, Sergey Popov
Gentoo developer
Gentoo Desktop Effects project lead
Gentoo Quality Assurance project lead
Gentoo Proxy maintainers project lead


signature.asc (484 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Sergey Popov
In reply to this post by Ben de Groot-2
I'd suggest to make a QA team meeting to override this policies with
more correct and rationale.

Qt team members are greatly appreciated on this meeting. Even more, i
think that we should not take any decision on this without at least Qt
team lead(or half of Qt team devs)

So, let's arrange some time and talk about this, cause it is really
confusing. Qt team point is understandable, but it's still wrong. Let's
make some consensus here.

02.08.2015 19:34, Ben de Groot пишет:

> 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.
>
> --
> Cheers,
>
> Ben | yngwin
> Gentoo developer
>

--
Best regards, Sergey Popov
Gentoo developer
Gentoo Desktop Effects project lead
Gentoo Quality Assurance project lead
Gentoo Proxy maintainers project lead


signature.asc (484 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Michael Palimaka
In reply to this post by Sergey Popov
On 11/08/15 20:10, Sergey Popov wrote:
> Err, i have read the whole thread and still does not get a point, why i
> am wrong.

You clearly have not. The reasoning behind Qt team's policy is described
on the page and has been reiterated on this list. You are undermining
what little confidence there is in the QA team by making decisions with
no consultation about problems you do not understand.

> It's old battle like we have beforce with "gtk" meaning "any versions of
> GTK flag". This behaviour should be killed with fire.
>
> Let's me reiterate some of the cases:
>
> 1. Package can be build without Qt GUI at all, but either Qt4 or Qt5 can
> be chosen, but not both.
>
> Fix this with REQUIRED_USE, do not enable any of Qt flags by default

Problem: this requires manual intervention if the user has both qt4 and
qt5 USE flags enabled.

>
> 2. Package can not be build without Qt GUI - either Qt4 or Qt5 is
> required, but not both
>
> Same thing here, different REQUIRED_USE operator. But - enable one of
> the flags by default to ease life of users.

Problem: this requires manual intervention if the user has both qt4 and
qt5 USE flags enabled.

>
> 3. Package can be build with Qt4 or Qt5 or both AT THE SAME TIME(if such
> package even exists?)
>
> Do not use REQUIRED_USE here, not needed.
>
> Now, please tell me, where am i wrong?
>

The problem is manual intervention is required if the user has both qt4
and qt5 USE flags enabled - and this is a common configuration. It is
not acceptable to make a user manually add numerous package.use entries
when all they want to do is install KDE.

I agree Qt's policy is not a perfect solution, but in the absence of
some feature allowing a preference to be set when there is a conflict
it's the best we've got.


Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Michael Palimaka
In reply to this post by Sergey Popov
On 11/08/15 20:17, Sergey Popov wrote:

> 09.08.2015 23:28, Ulrich Mueller пишет:
>> I disagree with this. Really, REQUIRED_USE should be used sparingly,
>> and IMHO the above is not a legitimate usage case for it.
>
> So, you prefer to make ugly mess of deps here like i posted before or
> introduce some really unneded USE-flag like 'gui', 'qt', etc. to make
> users even more confused?
>
> Really, look at man-db ebuild. Especially on berkdb and gdbm USE flags.
> And dependency string like this:
>
> !berkdb? ( !gdbm? ( sys-libs/gdbm ) )
>
> One sentence: "WHAT THE HELL?"
>
> Imagine that it would be dozen of flags. Is it fun to mess with deps
> like this for you?

Shall we ban this too?

ffmpeg? (
        libav? ( media-video/libav:= )
        !libav? ( media-video/ffmpeg:0= )
)




Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Sergey Popov
In reply to this post by Michael Palimaka
11.08.2015 15:30, Michael Palimaka пишет:

> On 11/08/15 20:10, Sergey Popov wrote:
>> Err, i have read the whole thread and still does not get a point, why i
>> am wrong.
>
> You clearly have not. The reasoning behind Qt team's policy is described
> on the page and has been reiterated on this list. You are undermining
> what little confidence there is in the QA team by making decisions with
> no consultation about problems you do not understand.
>
>> It's old battle like we have beforce with "gtk" meaning "any versions of
>> GTK flag". This behaviour should be killed with fire.
>>
>> Let's me reiterate some of the cases:
>>
>> 1. Package can be build without Qt GUI at all, but either Qt4 or Qt5 can
>> be chosen, but not both.
>>
>> Fix this with REQUIRED_USE, do not enable any of Qt flags by default
>
> Problem: this requires manual intervention if the user has both qt4 and
> qt5 USE flags enabled.
>
User choice of using USE flags is NOT a problem

>>
>> 2. Package can not be build without Qt GUI - either Qt4 or Qt5 is
>> required, but not both
>>
>> Same thing here, different REQUIRED_USE operator. But - enable one of
>> the flags by default to ease life of users.
>
> Problem: this requires manual intervention if the user has both qt4 and
> qt5 USE flags enabled.

Same here

>>
>> 3. Package can be build with Qt4 or Qt5 or both AT THE SAME TIME(if such
>> package even exists?)
>>
>> Do not use REQUIRED_USE here, not needed.
>>
>> Now, please tell me, where am i wrong?
>>
>
> The problem is manual intervention is required if the user has both qt4
> and qt5 USE flags enabled - and this is a common configuration. It is
> not acceptable to make a user manually add numerous package.use entries
> when all they want to do is install KDE.
And here

> I agree Qt's policy is not a perfect solution, but in the absence of
> some feature allowing a preference to be set when there is a conflict
> it's the best we've got.
>

If you want to go this way, then please provide helper functions in
eclasses to set dependencies properly for all common use cases. That
will ease life both of developers and users.

Leaving constructing of dependencies to developers in all cases will
cause only pain in your solution.

Look at the example with berkdb/gdbm, that i have posted recently.

If both of flags are not set - we stick to default.
Should this be set in EVERY ebuild explicitly?

Maybe provide some sugar like $(qt_use_default qtgui 5), where
qt_use_default is the name of function, qtgui is the package and 5 is
the slot for default choice, where either BOTH of flags(qt4, qt5) are
enabled or disabled

--
Best regards, Sergey Popov
Gentoo developer
Gentoo Desktop Effects project lead
Gentoo Quality Assurance project lead
Gentoo Proxy maintainers project lead


signature.asc (484 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Sergey Popov
In reply to this post by Michael Palimaka
11.08.2015 15:32, Michael Palimaka пишет:

> On 11/08/15 20:17, Sergey Popov wrote:
>> 09.08.2015 23:28, Ulrich Mueller пишет:
>>> I disagree with this. Really, REQUIRED_USE should be used sparingly,
>>> and IMHO the above is not a legitimate usage case for it.
>>
>> So, you prefer to make ugly mess of deps here like i posted before or
>> introduce some really unneded USE-flag like 'gui', 'qt', etc. to make
>> users even more confused?
>>
>> Really, look at man-db ebuild. Especially on berkdb and gdbm USE flags.
>> And dependency string like this:
>>
>> !berkdb? ( !gdbm? ( sys-libs/gdbm ) )
>>
>> One sentence: "WHAT THE HELL?"
>>
>> Imagine that it would be dozen of flags. Is it fun to mess with deps
>> like this for you?
>
> Shall we ban this too?
>
> ffmpeg? (
>         libav? ( media-video/libav:= )
>         !libav? ( media-video/ffmpeg:0= )
> )
>
>
>
>
No, because ffmpeg here is a feature AND name of concrete realization.
Not ideal case as i would said, but it is acceptable.

You want to migrate to such decision? Like:

qt? (
        qt5? ( dev-lang/qtcore:5 )
        !qt5? ( dev-lang/qtcore:4 )
)

Fine by me, if you would ask.

As i said one message earlier: Something like $(qt_use_default qtgui 5)

which will generate something like this:

qt4? (
        qt5? ( dev-lang/qtcore:5 )
        !qt5? ( dev-lang/qtcore:4 )
)
!qt5? ( !qt4? ( dev-lang/qtcore:5 ) )

would help too.

If you are doing complicated things(and please, do not tell me that
provided dependency string is simple and understandable by every
developer in just a second without wanting to "improve" or "simplify"
it) - do it through eclass. And provide nice API.

Thanks for listening and sorry if i was too harsh

--
Best regards, Sergey Popov
Gentoo developer
Gentoo Desktop Effects project lead
Gentoo Quality Assurance project lead
Gentoo Proxy maintainers project lead


signature.asc (484 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Sergey Popov
11.08.2015 16:04, Sergey Popov пишет:

> 11.08.2015 15:32, Michael Palimaka пишет:
>> On 11/08/15 20:17, Sergey Popov wrote:
>>> 09.08.2015 23:28, Ulrich Mueller пишет:
>>>> I disagree with this. Really, REQUIRED_USE should be used sparingly,
>>>> and IMHO the above is not a legitimate usage case for it.
>>>
>>> So, you prefer to make ugly mess of deps here like i posted before or
>>> introduce some really unneded USE-flag like 'gui', 'qt', etc. to make
>>> users even more confused?
>>>
>>> Really, look at man-db ebuild. Especially on berkdb and gdbm USE flags.
>>> And dependency string like this:
>>>
>>> !berkdb? ( !gdbm? ( sys-libs/gdbm ) )
>>>
>>> One sentence: "WHAT THE HELL?"
>>>
>>> Imagine that it would be dozen of flags. Is it fun to mess with deps
>>> like this for you?
>>
>> Shall we ban this too?
>>
>> ffmpeg? (
>>         libav? ( media-video/libav:= )
>>         !libav? ( media-video/ffmpeg:0= )
>> )
>>
>>
>>
>>
>
> No, because ffmpeg here is a feature AND name of concrete realization.
> Not ideal case as i would said, but it is acceptable.
>
> You want to migrate to such decision? Like:
>
> qt? (
> qt5? ( dev-lang/qtcore:5 )
> !qt5? ( dev-lang/qtcore:4 )
> )
>
> Fine by me, if you would ask.
>
> As i said one message earlier: Something like $(qt_use_default qtgui 5)
>
> which will generate something like this:
>
> qt4? (
> qt5? ( dev-lang/qtcore:5 )
> !qt5? ( dev-lang/qtcore:4 )
> )
> !qt5? ( !qt4? ( dev-lang/qtcore:5 ) )
>
> would help too.
>
> If you are doing complicated things(and please, do not tell me that
> provided dependency string is simple and understandable by every
> developer in just a second without wanting to "improve" or "simplify"
> it) - do it through eclass. And provide nice API.
>
> Thanks for listening and sorry if i was too harsh
>
Oops, sorry dev-qt/qtgui inside the brackets, of course.

--
Best regards, Sergey Popov
Gentoo developer
Gentoo Desktop Effects project lead
Gentoo Quality Assurance project lead
Gentoo Proxy maintainers project lead


signature.asc (484 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

James Le Cuirot
In reply to this post by Sergey Popov
On Tue, 11 Aug 2015 15:58:49 +0300
Sergey Popov <[hidden email]> wrote:

> If both of flags are not set - we stick to default.
> Should this be set in EVERY ebuild explicitly?
>
> Maybe provide some sugar like $(qt_use_default qtgui 5), where
> qt_use_default is the name of function, qtgui is the package and 5 is
> the slot for default choice, where either BOTH of flags(qt4, qt5) are
> enabled or disabled

That sounds a little bit like what I suggested earlier.

https://archives.gentoo.org/gentoo-dev/message/884257a2d924a51851d629b1dc9b30df

--
James Le Cuirot (chewi)
Gentoo Linux Developer

Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Alexandre Rostovtsev-2
In reply to this post by Sergey Popov
On Tue, 2015-08-11 at 16:04 +0300, Sergey Popov wrote:
> You want to migrate to such decision? Like:
>
> qt? (
> > qt5? ( dev-lang/qtcore:5 )
> > !qt5? ( dev-lang/qtcore:4 )
> )
>
> Fine by me, if you would ask.

That flag should be called "gui". Not "qt".

This would be the real solution to gnome team's gtk/gtk2/gtk3 flag
problem and to qt team's flag problem too.

signature.asc (970 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Sergey Popov
In reply to this post by James Le Cuirot
11.08.2015 16:11, James Le Cuirot пишет:

> On Tue, 11 Aug 2015 15:58:49 +0300
> Sergey Popov <[hidden email]> wrote:
>
>> If both of flags are not set - we stick to default.
>> Should this be set in EVERY ebuild explicitly?
>>
>> Maybe provide some sugar like $(qt_use_default qtgui 5), where
>> qt_use_default is the name of function, qtgui is the package and 5 is
>> the slot for default choice, where either BOTH of flags(qt4, qt5) are
>> enabled or disabled
>
> That sounds a little bit like what I suggested earlier.
>
> https://archives.gentoo.org/gentoo-dev/message/884257a2d924a51851d629b1dc9b30df
>
But without introducing brand new useless USE flag. Which makes huge
difference to me :-)

--
Best regards, Sergey Popov
Gentoo developer
Gentoo Desktop Effects project lead
Gentoo Quality Assurance project lead
Gentoo Proxy maintainers project lead


signature.asc (484 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: useflag policies

Michael Palimaka
In reply to this post by Sergey Popov
On 11/08/15 22:58, Sergey Popov wrote:

> 11.08.2015 15:30, Michael Palimaka пишет:
>> On 11/08/15 20:10, Sergey Popov wrote:
>>> Err, i have read the whole thread and still does not get a point, why i
>>> am wrong.
>>
>> You clearly have not. The reasoning behind Qt team's policy is described
>> on the page and has been reiterated on this list. You are undermining
>> what little confidence there is in the QA team by making decisions with
>> no consultation about problems you do not understand.
>>
>>> It's old battle like we have beforce with "gtk" meaning "any versions of
>>> GTK flag". This behaviour should be killed with fire.
>>>
>>> Let's me reiterate some of the cases:
>>>
>>> 1. Package can be build without Qt GUI at all, but either Qt4 or Qt5 can
>>> be chosen, but not both.
>>>
>>> Fix this with REQUIRED_USE, do not enable any of Qt flags by default
>>
>> Problem: this requires manual intervention if the user has both qt4 and
>> qt5 USE flags enabled.
>>
>
> User choice of using USE flags is NOT a problem

I invite you to reproduce the problem yourself then make the judgement.
Using REQUIRED_USE like this makes the affected packages unusable.

>>>
>>> 2. Package can not be build without Qt GUI - either Qt4 or Qt5 is
>>> required, but not both
>>>
>>> Same thing here, different REQUIRED_USE operator. But - enable one of
>>> the flags by default to ease life of users.
>>
>> Problem: this requires manual intervention if the user has both qt4 and
>> qt5 USE flags enabled.
>
> Same here
>
>>>
>>> 3. Package can be build with Qt4 or Qt5 or both AT THE SAME TIME(if such
>>> package even exists?)
>>>
>>> Do not use REQUIRED_USE here, not needed.
>>>
>>> Now, please tell me, where am i wrong?
>>>
>>
>> The problem is manual intervention is required if the user has both qt4
>> and qt5 USE flags enabled - and this is a common configuration. It is
>> not acceptable to make a user manually add numerous package.use entries
>> when all they want to do is install KDE.
>
> And here
>
>> I agree Qt's policy is not a perfect solution, but in the absence of
>> some feature allowing a preference to be set when there is a conflict
>> it's the best we've got.
>>
>
> If you want to go this way, then please provide helper functions in
> eclasses to set dependencies properly for all common use cases. That
> will ease life both of developers and users.
>
> Leaving constructing of dependencies to developers in all cases will
> cause only pain in your solution.
>
> Look at the example with berkdb/gdbm, that i have posted recently.
>
> If both of flags are not set - we stick to default.
> Should this be set in EVERY ebuild explicitly?
>
> Maybe provide some sugar like $(qt_use_default qtgui 5), where
> qt_use_default is the name of function, qtgui is the package and 5 is
> the slot for default choice, where either BOTH of flags(qt4, qt5) are
> enabled or disabled

How does this solve the REQUIRED_USE problem? Or is your only objection
is that resulting dependency string is "too hard"?

Don't forget that as a project with no special authority, Qt's policy
remains a suggestion for the vast majority of maintainers. If someone
wishes to provide support for only one Qt version or abuse their users
with REQUIRED_USE they are still free to do so.


1234567