Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 769464

Summary: media-libs/libcanberra-0.30-r5 drop optional gtk2 support
Product: Gentoo Linux Reporter: charles17
Component: Current packagesAssignee: Gentoo Linux Gnome Desktop Team <gnome>
Status: UNCONFIRMED ---    
Severity: normal CC: asturm, ionen, mattst88, sound
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on: 774918    
Bug Blocks: 768993    

Description charles17 2021-02-08 09:08:06 UTC
emerge -pvc x11-libs/gtk+:2

Calculating dependencies... done!
  x11-libs/gtk+-2.24.32-r1 pulled in by:
    media-libs/libcanberra-0.30-r5 requires >=x11-libs/gtk+-2.20.0:2[abi_x86_64(-)]
Comment 1 Andreas Sturmlechner gentoo-dev 2021-03-08 22:40:52 UTC
Seems like there is only this single blocker.
Comment 2 Larry the Git Cow gentoo-dev 2022-04-12 03:15:52 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=045488f09d792adcd03ddb91e391c94ae2c6d225

commit 045488f09d792adcd03ddb91e391c94ae2c6d225
Author:     Matt Turner <mattst88@gentoo.org>
AuthorDate: 2022-04-12 03:10:52 +0000
Commit:     Matt Turner <mattst88@gentoo.org>
CommitDate: 2022-04-12 03:15:44 +0000

    media-libs/libcanberra: Change IUSE=+gtk to IUSE=gtk2
    
    Bug: https://bugs.gentoo.org/769464
    Bug: https://bugs.gentoo.org/834685
    Closes: https://bugs.gentoo.org/811531
    Signed-off-by: Matt Turner <mattst88@gentoo.org>

 .../{libcanberra-0.30-r5.ebuild => libcanberra-0.30-r6.ebuild}    | 8 ++++----
 media-libs/libcanberra/metadata.xml                               | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)
Comment 3 Andreas Sturmlechner gentoo-dev 2022-04-12 08:14:45 UTC
So, does that mean GNOME proj changed its USE flag policy?

https://wiki.gentoo.org/wiki/Project:GNOME/Gnome_Team_Ebuild_Policies#GTK.2B_USE-flag_and_slots_usage
Comment 4 Matt Turner gentoo-dev 2022-04-13 00:37:22 UTC
(In reply to Andreas Sturmlechner from comment #3)
> So, does that mean GNOME proj changed its USE flag policy?
> 
> https://wiki.gentoo.org/wiki/Project:GNOME/Gnome_Team_Ebuild_Policies#GTK.
> 2B_USE-flag_and_slots_usage

I don't know specifically, but I asked leio before I made this change:

<mattst88> libcanberra has IUSE="+gtk +gtk3". many reverse dependencies of libcanberra[gtk3], but only claws-mail is a revdep of libcanberra[gtk]
<mattst88> I think we should probably change IUSE=+gtk to IUSE=gtk2 -- seems okay?
<    leio> probably
<mattst88> thanks, will do that then
Comment 5 Mart Raudsepp gentoo-dev 2022-12-01 17:05:56 UTC
(In reply to Andreas Sturmlechner from comment #3)
> So, does that mean GNOME proj changed its USE flag policy?
> 
> https://wiki.gentoo.org/wiki/Project:GNOME/Gnome_Team_Ebuild_Policies#GTK.
> 2B_USE-flag_and_slots_usage

There's not really a policy change there, other than that documentation not having been revised since gtk3 was very new for the small case where it was about a library providing optional gtk2, gtk3 (or not gtk4) support. Back then we had been living with just gtk2 for a long time and then gtk3 appeared. Instead of going back and changing all USE=gtk to USE=gtk2 in library cases, we just kept it used for gtk2 then. But as some of these (like libcanberra, or avahi and such in the past) had to keep its gtk2 support around for a long time, it naturally got moved over to USE=gtk2 as people were starting to be able to have a legacy-free without gtk2 system otherwise with just USE=gtk. And then gtk4 happened too.

So the spirit of that policy is really the same - if the library gtk support can be a separate package with reasonable maintenance cost, it should be separate. If not, then only for cases of optional library support or gtk modules shipping for a specific gtk version it has been OK as a workaround for the too high maintenance cost. In all other cases it's USE=gtk in general, no matter the version, but this is for cases where it doesn't matter - not cases where you could have both support built at once (shipping differently API versioned libraries) and then other packages also depend on one of them.

I expect we'll need USE=gtk4 for a few things in the future, but a bunch of this kind of specific packages just don't have gtk4 support yet or are pretty dead things like libcanberra here. One example that comes to mind is evolution-data-server, but for now we just hard require both gtk versions there.