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

Bug 348644

Summary: gnome-base/libgnome: esd USE flag is moot with --as-needed
Product: Gentoo Linux Reporter: Diego Elio Pettenò (RETIRED) <flameeyes>
Component: New packagesAssignee: Gentoo Linux Gnome Desktop Team <gnome>
Status: RESOLVED FIXED    
Severity: normal CC: games
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on: 352260    
Bug Blocks: 348605    

Description Diego Elio Pettenò (RETIRED) gentoo-dev 2010-12-13 20:36:04 UTC
libgnome continues to link to libesound and libaudiofile for ABI
compatibility; use --disable-esd to remove this dependency.
(#603198, #603349)

Too bad that with --as-needed this (correctly) gets dropped; the "ABI compatibility" is rather compatibility for broken software that doesn't follow the "link what you use" rule (see http://blog.flameeyes.eu/2010/05/18/depend-on-what-you-use for more details on why I think this was a bad idea to begin with).

I suggest dropping esd from libgnome altogether, and inspect the reverse-dependencies list to see which ones need to be fixed or dropped altogether.

I have some not-so-nice words about upstream deciding "not to break ABI" when they are breaking software logic entirely, but let's ignore that for now.
Comment 1 Diego Elio Pettenò (RETIRED) gentoo-dev 2010-12-13 20:40:47 UTC
Oh and let's not forget that it's quite likely that _anything_ using the old esd-related API will break since it always returns -1, and I'm pretty sure quite a lot of the software using those API are not checking the return values.
Comment 2 Pacho Ramos gentoo-dev 2011-01-20 16:39:21 UTC
Do the rest of gnome team agree with revbumping libgnome without esd support? Or should as-needed be filtered when building with esd USE flag?
Comment 3 Gilles Dartiguelongue (RETIRED) gentoo-dev 2011-01-20 16:43:47 UTC
there is no need to bump, we first need to make sure packages using this flag are notified so they can remove the dependency, then we can package.use.mask the flag or drop the USE flag in place.
Comment 4 Pacho Ramos gentoo-dev 2011-01-20 18:16:34 UTC
These are the ebuilds depending on it:

$ grep -r gnome-base/libgnome */*/*.ebuild|grep esd
app-text/stardict/stardict-3.0.1-r1.ebuild:	if (use gnome && use pronounce && ! built_with_use gnome-base/libgnome esd); then
app-text/stardict/stardict-3.0.1-r1.ebuild:		ewarn 'gnome-base/libgnome was built with USE="esd".'
app-text/stardict/stardict-3.0.1-r2.ebuild:		pronounce? ( >=gnome-base/libgnome-2.2.0[esd] )
app-text/stardict/stardict-3.0.1-r3.ebuild:		pronounce? ( >=gnome-base/libgnome-2.2.0[esd] )
games-arcade/monster-masher/monster-masher-1.8.1.ebuild:	gnome-base/libgnome[esd]"
games-puzzle/gtetrinet/gtetrinet-0.7.11.ebuild:	>=gnome-base/libgnome-2[esd]

stardict looks to not depend on libgnome esd support in other distributions... but I don't know about gtetrinet and monster-masher :-/
Comment 5 Gilles Dartiguelongue (RETIRED) gentoo-dev 2011-02-23 21:25:15 UTC
Use masked and masked packages using it.
Comment 6 Samuli Suominen (RETIRED) gentoo-dev 2012-03-18 09:27:44 UTC
For the record, the affected version of stardict was punted from tree and I've cleaned up profiles related to it, so only this entry remains:

base/package.use.mask:

# Gilles Dartiguelongue <eva@gentoo.org> (23 Feb 2011)
# libgnome[esd] ABI broken, bug #348644
>=gnome-base/libgnome-2.32 esd