11.08.2015 17:56, Ian Stakenvicius пишет:
> On 11/08/15 08:58 AM, 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
> 
>>>>
>>>> 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.
> 
> 
> Why do you need this?
> 
> #1, if you really want RDEPEND to only include the deps the package
> will actually use, then you do this:
> 
> old:
> 
> qt5? ( list of qt5 atoms )
> qt4? ( list of qt4 atoms )
> 
> ..to new:
> 
> qt5? ( list of qt5 atoms )
> !qt5? (
>   qt4? ( list of qt4 atoms )
> )
> 
> 
> BUT I would advise against this.  If a user has specified both qt4 and
> qt5 in USE, then I see no problem with the VDB having both qt4 and qt5
> atoms listed as dependencies.  End-users that want a clean VDB can
> just make sure they only enable one flag, but end-users that don't
> care will have packages that just work.
> 

great, in that case emerge --depclean becomes completely useless,
because of unneeded vdb deps. Those DEPENDs that i have provided was at
least consistent in terms of dependencies(that does not mean that they
are not ugly, though)

>> Leaving constructing of dependencies to developers in all cases
>> will cause only pain in your solution.
> 
> It really wont, see above.  At minimum, it's barely any more work than
> it is with a REQUIRED_USE based solution.
> 

I repeat that i said earlier: if this voodoo magic will be hidden in
some eclass - it is fine. If developers will be forced to add this
depstring over and over again - it will be PITA.

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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to