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

Bug 109367

Summary: plz make rhythmbox respect -esd use flag
Product: Gentoo Linux Reporter: Anatoly Verkhovsky <anverx>
Component: New packagesAssignee: Gentoo Linux Gnome Desktop Team <gnome>
Status: RESOLVED INVALID    
Severity: normal CC: sound
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Anatoly Verkhovsky 2005-10-15 07:31:58 UTC
My system was running with -esd flag for as long as i can remember (likely from
the start).  But at one point i found out that it's not only installed but is
hogging the audio device. so i did "emerge -C esound".  Now rhythmbox doesn't
build, see below.
Shouldn't the configure know that there is no libesd ? Anyways, i think
rhythmbox should compile without esd supoport.

Reproducible: Always
Steps to Reproduce:
1.add -esd to USE flags (probably doesn't matter)
2.emerge -C esound
3.emerge rhythmbox

Actual Results:  

/bin/sh ../libtool --mode=link gcc -Wno-error -march=athlon-xp -O3 -pipe
-fomit-frame-pointer -ffast-math -mfpmath=sse     -o test-corba  test-corba.o
librbcorba.la -Wl,--export-dynamic -pthread -lgnomeui-2 -lSM -lICE -lbonoboui-2
-lgnomecanvas-2 -lgnome-2 -lpopt -lart_lgpl_2 -lpangoft2-1.0 -lglade-2.0
-lgtk-x11-2.0 -lxml2 -lpthread -lz -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0
-lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgconf-2 -lgnomevfs-2
-lbonobo-2 -lbonobo-activation -lORBit-2 -lm -lgmodule-2.0 -ldl -lgthread-2.0
-lglib-2.0   -Wl,--export-dynamic -pthread -lgstcontrol-0.8 -lgstgconf-0.8
-lgstreamer-0.8 -lgconf-2 -lgobject-2.0 -lxml2 -lpthread -lz -lORBit-2 -lm
-lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0    
libtool: link: cannot find the library `/usr/lib/libesd.la'
make[3]: *** [test-corba] Error 1
make[3]: Leaving directory
`/var/tmp/portage/rhythmbox-0.8.8-r1/work/rhythmbox-0.8.8/corba'
make[2]: *** [all] Error 2
make[2]: Leaving directory
`/var/tmp/portage/rhythmbox-0.8.8-r1/work/rhythmbox-0.8.8/corba'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/var/tmp/portage/rhythmbox-0.8.8-r1/work/rhythmbox-0.8.8'
make: *** [all] Error 2

Expected Results:  
compile without esd supoport
Comment 1 Carsten Lohrke (RETIRED) gentoo-dev 2005-10-15 10:44:02 UTC
looks more like a missing dependency
Comment 2 Daniel Gryniewicz (RETIRED) gentoo-dev 2005-10-15 14:38:34 UTC
rhythmbox does not explicitly depend on esd, nor pull it in.  There's nothing an
esd flag could do.  In fact, that link line doesn't even include any reference
to esd.  Best guess is that you need to rebuild libgnome with the -esd flag, and
then try rebuilding rhythmbox again.
Comment 3 Anatoly Verkhovsky 2005-10-16 00:52:25 UTC
(In reply to comment #2)
> rhythmbox does not explicitly depend on esd, nor pull it in.  There's nothing an
> esd flag could do.  In fact, that link line doesn't even include any reference
> to esd.  Best guess is that you need to rebuild libgnome with the -esd flag, and
> then try rebuilding rhythmbox again.

Curious,

 emerge -pv libgnome

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild   R   ] gnome-base/libgnome-2.10.1-r1  -debug -doc -esd -static 0 kB

apparently libgnome is already compiled without esd.  I checked all libs that
rhythmbox is linked against, non of these libs are linked against libesd.  So
rhythmbox must somehow pull libesd in explicitly...

 ldd /usr/bin/rhythmbox
        linux-gate.so.1 =>  (0xffffe000)
        libasound.so.2 => /usr/lib/libasound.so.2 (0xb7ed4000)
        libgnomeui-2.so.0 => /usr/lib/libgnomeui-2.so.0 (0xb7e42000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb7e1f000)
        libbonoboui-2.so.0 => /usr/lib/libbonoboui-2.so.0 (0xb7dbb000)
        libSM.so.6 => /usr/lib/libSM.so.6 (0xb7db2000)
        libICE.so.6 => /usr/lib/libICE.so.6 (0xb7d9b000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xb7cc8000)
        libgnomecanvas-2.so.0 => /usr/lib/libgnomecanvas-2.so.0 (0xb7c9c000)
        libgnome-2.so.0 => /usr/lib/libgnome-2.so.0 (0xb7c88000)
        libesd.so.0 => not found
        libaudiofile.so.0 => /usr/lib/libaudiofile.so.0 (0xb7c5e000)
        libart_lgpl_2.so.2 => /usr/lib/libart_lgpl_2.so.2 (0xb7c43000)
        libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb7c1a000)
        libglade-2.0.so.0 => /usr/lib/libglade-2.0.so.0 (0xb7c02000)
        libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb791e000)
        libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb789c000)
        libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb7883000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb786d000)
        libpangoxft-1.0.so.0 => /usr/lib/libpangoxft-1.0.so.0 (0xb7866000)
        libpangox-1.0.so.0 => /usr/lib/libpangox-1.0.so.0 (0xb785a000)
        libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb781e000)
        libgnomevfs-2.so.0 => /usr/lib/libgnomevfs-2.so.0 (0xb77b7000)
        libssl.so.0.9.7 => /usr/lib/libssl.so.0.9.7 (0xb7785000)
        libcrypto.so.0.9.7 => /usr/lib/libcrypto.so.0.9.7 (0xb7683000)
        librt.so.1 => /lib/librt.so.1 (0xb766f000)
        libbonobo-2.so.0 => /usr/lib/libbonobo-2.so.0 (0xb7613000)
        libbonobo-activation.so.4 => /usr/lib/libbonobo-activation.so.4 (0xb75fe000)
        libORBitCosNaming-2.so.0 => /usr/lib/libORBitCosNaming-2.so.0 (0xb75f9000)
        libgstcontrol-0.8.so.1 => /usr/lib/libgstcontrol-0.8.so.1 (0xb75ee000)
        libgstgconf-0.8.so.0 => /usr/lib/libgstgconf-0.8.so.0 (0xb75eb000)
        libgstreamer-0.8.so.1 => /usr/lib/libgstreamer-0.8.so.1 (0xb74cc000)
        libgconf-2.so.4 => /usr/lib/libgconf-2.so.4 (0xb7497000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7315000)
        libz.so.1 => /lib/libz.so.1 (0xb7304000)
        libORBit-2.so.0 => /usr/lib/libORBit-2.so.0 (0xb72ad000)
        libpopt.so.0 => /usr/lib/libpopt.so.0 (0xb72a5000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7270000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb726a000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7217000)
        libm.so.6 => /lib/libm.so.6 (0xb71f4000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb71f0000)
        libdl.so.2 => /lib/libdl.so.2 (0xb71ec000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7162000)
        libc.so.6 => /lib/libc.so.6 (0xb704e000)
        libgnome-keyring.so.0 => /usr/lib/libgnome-keyring.so.0 (0xb7041000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7015000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb6f9e000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb6f99000)
        libXi.so.6 => /usr/lib/libXi.so.6 (0xb6f91000)
        libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb6f8e000)
        libXft.so.2 => /usr/lib/libXft.so.2 (0xb6f7a000)
        libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb6f75000)
        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb6f6b000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6f62000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0xb6f52000)
        libresolv.so.2 => /lib/libresolv.so.2 (0xb6f40000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fd4000)
        libexpat.so.0 => /usr/lib/libexpat.so.0 (0xb6f17000)
Comment 4 Daniel Gryniewicz (RETIRED) gentoo-dev 2005-10-16 08:03:19 UTC
I looked through the source package, and it doesn't pull in esd at all. As far
as the source is concerned, you cannot disable esd, because it's not enabled. I
can't determine what pulls it in here, because I *do* have libesd, so all sorts
of random things have it pulled in.

Could you try revdep-rebuild?
Comment 5 Daniel Gryniewicz (RETIRED) gentoo-dev 2005-10-16 08:17:11 UTC
So, I did a grep on my system, and tons of libs have pulled in esd.  Try this:

find /  -name "*.la" -exec grep -l esd {} \;

That should give you a pretty good idea of what's pulled in a dep on libesd. 
You can then re-emerge those without it.  Note that revdep-rebuild does similar
things, so it might have fixed your problem already.
Comment 6 Anatoly Verkhovsky 2005-10-16 14:40:59 UTC
(In reply to comment #4)
> I looked through the source package, and it doesn't pull in esd at all. As far
> as the source is concerned, you cannot disable esd, because it's not enabled. I
> can't determine what pulls it in here, because I *do* have libesd, so all sorts
> of random things have it pulled in.
> 
> Could you try revdep-rebuild?

I did:  revdep-rebuild --soname libesd.so.0 -p

[big list of binaries and libraries]

All prepared. Starting rebuild...
emerge --oneshot --nodeps -p =app-admin/gnome-system-tools-1.2.0-r1
=app-editors/gedit-2.10.3-r1 =app-office/gnucash-1.8.9 =app-text/ggv-2.8.5
=dev-cpp/gnomemm-1.2.3-r1 =dev-perl/gtk-perl-0.7008-r11
=gnome-base/bonobo-1.0.22 =gnome-base/control-center-1.4.0.5-r1
=gnome-base/control-center-2.10.2 =gnome-base/gdm-2.8.0.3
=gnome-base/gnome-desktop-2.10.2 =gnome-base/gnome-libs-1.4.2
=gnome-base/gnome-panel-1.4.2-r2 =gnome-base/gnome-panel-2.10.2
=gnome-base/gnome-print-0.37 =gnome-base/gnome-session-2.10.0-r3
=gnome-base/libbonoboui-2.10.0 =gnome-base/libglade-0.17-r6
=gnome-base/libgnomeui-2.10.1 =gnome-base/nautilus-2.10.1-r1
=gnome-extra/evolution-data-server-1.2.3 =gnome-extra/gcalctool-5.5.42-r1
=gnome-extra/gconf-editor-2.10.0 =gnome-extra/gnome-games-2.10.1
=gnome-extra/gnome-media-2.10.2 =gnome-extra/gtkhtml-1.1.10
=gnome-extra/nautilus-cd-burner-2.10.2 =gnome-extra/yelp-2.10.0
=media-gfx/gthumb-2.2.1 =media-gfx/scigraphica-0.8.0-r2
=media-libs/gdk-pixbuf-0.22.0 =media-libs/libao-0.8.5
=media-sound/alsaplayer-0.99.75-r1 =media-sound/grip-3.2.0
=media-sound/madplay-0.14.2b-r2 =media-sound/rhythmbox-0.8.8-r1
=media-sound/timidity++-2.12.0-r3 =media-video/gsubedit-0.4_pre1
=media-video/totem-1.0.4 =net-analyzer/gnome-netstatus-2.10.0-r1
=net-im/gnomemeeting-1.00 =net-misc/vino-2.10.0 =x11-plugins/gkrellm-gnome-0.1
=x11-terms/gnome-terminal-2.10.0 =x11-terms/multi-gnome-terminal-1.6.2

It stoped there because some of the packages are out of date.  Right know i
don't have the time to rebuild them.  Maybe some time tommorow.
Can you spot a package that maybe causing the problems with rhythmbox?

PS.  While we are at it, maybe we can (somehow) find the package that pulls esd
in against explicit -esd flag?
Comment 7 Daniel Gryniewicz (RETIRED) gentoo-dev 2005-10-16 15:51:20 UTC
There are several packages (nautilus and gnome-session come to mind) that have
unconditional deps on esd, so you cannot have a gnome install without it.  If I
get time, I'll look into making the dep conditional, but only if upstream is
interested in taking the patches.  I have not found any packages that have the
esd use flag and still pull in esd when it's turned off.
Comment 8 Anatoly Verkhovsky 2005-10-21 02:53:24 UTC
(In reply to comment #7)
> There are several packages (nautilus and gnome-session come to mind) that have
> unconditional deps on esd, so you cannot have a gnome install without it.  If I
> get time, I'll look into making the dep conditional, but only if upstream is
> interested in taking the patches.  I have not found any packages that have the
> esd use flag and still pull in esd when it's turned off.

So, i take it, if i want gnome i must intall esound back, even if it is not
used.  Or actually i'll have to find out what launches it, and configure it not
to do so.

If you could make esd a conditional depend on these packages it would be nice.
Comment 9 Joe McCann (RETIRED) gentoo-dev 2006-02-08 22:11:38 UTC
Closing as the initial bug isn't really a bug and a request to remove the esd dep from other packages go beyond the scope of this bug(and is really more of an upstream feature request)