On Wed, Feb 12, 2014 at 2:46 PM, Chris Reffett <creff...@gentoo.org> wrote:
> On 2/12/2014 3:09 AM, Michał Górny wrote:
>> Dnia 2014-02-11, o godz. 19:33:06 Chris Reffett
>> <creff...@gentoo.org> napisał(a):
>>
>>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
>>>
>>> On 02/11/2014 06:13 PM, Gilles Dartiguelongue wrote:
>>>>> Unfortunately, the concurrent nature of gtk2/gtk3 has
>>>>> resulted in packages that may support either or both the
>>>>> toolkits. To handle this, a few developers have introduced
>>>>> the "gtk3" useflag, that prefers gtk3 over gtk2 when both
>>>>> toolkit versions are supported. At this point, the Gnome
>>>>> team highly recommends prefering gtk3 if possible, skipping
>>>>> the useflag altogether. [1]
>>>>
>>>> Wrong, as is written in policy whether to prefer gtk2 or 3 is
>>>> up to the maintainer of the package. We point people to the
>>>> fact that upstream says gtk2 is a dead end and support will
>>>> stop (if not in fact already stopped) in the near future.
>>>>
>>>> We also recommend to have maintainers support slots for their
>>>> libs where possible considering man-power and to only choose
>>>> one toolkit for applications considering where upstream
>>>> development is going and maturity of the port, and again, this
>>>> is up to package maintainers.
>>> This doesn't make sense to me at all. I can't see why slotted
>>> libraries can't just use USE flags to specify what toolkit
>>> they're built against, just like any other package in the tree
>>> (so, for example, a package that needs webkit-gtk built against
>>> gtk3 would depend on webkit-gtk[gtk3] instead of webkit-gtk:3).
>>> I'm well aware that there could be limitations I'm unaware of
>>> (maybe the package only can build one at a time?), but this is
>>> how it looks to me. By switching to versioned gtk flags, this
>>> kills two birds with one stone: it makes it obvious to the end
>>> user which version they're trying to build their package
>>> against, and it gets rid of the need for (ab)using revision
>>> numbers to implement slots like that.
>>
>> Except when you end up rebuilding the huge thing twice. Or trying
>> to live with binpackages -- the thing that most Gentoo developers
>> don't care about at all. They just love their precious USE flags
>> so much they'd shove them everywhere for the sake of it.
>>
>
> You'll have to build it twice anyway, this just splits it into two
> separate packages, and I suspect that the times where you will have to
> rebuild are when a package needs webkit-gtk to support another toolkit
> (which should happen only once), and when you upgrade (in which case
> you would be updating them separately anyway).

After talking to Chris on IRC, I think we've made progress.

I claim that there's a fundamental distinction between USE flags
controlling how the binaries are built and controlling *which*
binaries are built.

I think that the use of SLOTs here is perfectly reasonable, since
webkit-gtk installs different libraries (not just the same library
with different build options) in the two slots.

There's apparently some disdain for using the -r200/-r300 versioning
to control the slots, but I think if we want to clean that up we
should look at modifying PMS to allow something cleaner.

Reply via email to