Hi, Here is what I get at the end of the compilation when I try to emerge latest rhythmbox: gcc -march=i686 -pipe -o rhythmbox main.o rb-shell.o rb-shell-player.o rb-source-header.o rb-statusbar.o rb-shell-preferences.o rb-shell-clipboard.o rb-playlist-manager.o rb-remote.o rb-tray-icon.o -Wl,--export-dynamic -pthread -Wl,--export-dynamic ../lib/.libs/librb.a -L/usr/lib ../sources/.libs/libsources.a ../sources/.libs/libsourcesimpl.a ../library/.libs/librblibrary.a ../iradio/.libs/librbiradio.a ../corba/.libs/librbcorba.a ../monkey-media/.libs/libmonkey-media.a /usr/lib/libid3tag.so -L/usr/X11R6/lib /usr/lib/libgnomeui-2.so /usr/lib/libjpeg.so /usr/lib/libbonoboui-2.so -lSM -lICE -lX11 /usr/lib/libgnomecanvas-2.so /usr/lib/libgnome-2.so /usr/lib/libesd.so /usr/lib/libasound.so /usr/lib/libaudiofile.so /usr/lib/libart_lgpl_2.so /usr/lib/libpangoft2-1.0.so /usr/lib/libglade-2.0.so /usr/lib/libgtk-x11-2.0.so /usr/lib/libgdk-x11-2.0.so /usr/lib/libatk-1.0.so /usr/lib/libgdk_pixbuf-2.0.so /usr/lib/libpangoxft-1.0.so /usr/lib/libpangox-1.0.so /usr/lib/libpango-1.0.so /usr/lib/libgnomevfs-2.so /usr/lib/libgconf-2.so /usr/lib/libxml2.so -lssl -lcrypto -lrt /usr/lib/libbonobo-2.so /usr/lib/libbonobo-activation.so /usr/lib/libORBitCosNaming-2.so /usr/lib/libORBit-2.so /usr/lib/libpopt.so /usr/lib/libgobject-2.0.so /usr/lib/libgthread-2.0.so /usr/lib/libgmodule-2.0.so /usr/lib/libglib-2.0.so /usr/lib/libxine.so -ldl /usr/lib/libfreetype.so -lpthread -lXv -lXext /usr/lib/libmusicbrainz.so /usr/lib/libexpat.so -lstdc++ -lz /usr/lib/libFLAC.so /usr/lib/libvorbis.so /usr/lib/libvorbisfile.so -lm /usr/lib/libogg.so ../corba/.libs/librbcorba.a(Rhythmbox-stubs.o)(.text+0x2f): In function `GNOME_Rhythmbox_addToLibrary': : undefined reference to `ORBIT_STUB_GetServant' ../corba/.libs/librbcorba.a(Rhythmbox-stubs.o)(.text+0xab): In function `GNOME_Rhythmbox_handleFile': : undefined reference to `ORBIT_STUB_GetServant' ../corba/.libs/librbcorba.a(Rhythmbox-stubs.o)(.text+0x123): In function `GNOME_Rhythmbox_grabFocus': : undefined reference to `ORBIT_STUB_GetServant' ../corba/.libs/librbcorba.a(Rhythmbox-stubs.o)(.text+0x193): In function `GNOME_Rhythmbox_getPlayingTitle': : undefined reference to `ORBIT_STUB_GetServant' ../corba/.libs/librbcorba.a(Rhythmbox-stubs.o)(.text+0x217): In function `GNOME_Rhythmbox_getPlayingPath': : undefined reference to `ORBIT_STUB_GetServant' ../corba/.libs/librbcorba.a(Rhythmbox-stubs.o)(.text+0x297): more undefined references to `ORBIT_STUB_GetServant' follow collect2: ld returned 1 exit status make[3]: *** [rhythmbox] Error 1 make[3]: Leaving directory `/var/tmp/portage/rhythmbox-0.5.3/work/rhythmbox-0.5.3/shell' make[2]: *** [all] Error 2 make[2]: Leaving directory `/var/tmp/portage/rhythmbox-0.5.3/work/rhythmbox-0.5.3/shell' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/rhythmbox-0.5.3/work/rhythmbox-0.5.3' make: *** [all] Error 2 I'm using a default-1.0 profile (gcc-2.95.3), and my whole system is updated with ~x86, including gnome-2.4 (libbonobo-2.4.0, ORBit2-2.8.1, etc.). Neither gnome bugzilla nor google helped so far...
Ok, I've found the fix: corba files (.c and .h) that are in the archive have probably been generated with an incompatible version of orbit-idl, or something like that. A simple "rm corba/*.c corba/*.h" forced them to be regenerated.
*** Bug 28820 has been marked as a duplicate of this bug. ***
i dont have gcc 2.95 so i'm not entirely sure, unless the corba stuff was generated with gcc 3 compatible, because i can't reproduce with gcc-3.2.3.
I don't really know the "why it is broken", but anyway, forcing the corba code regeneration fix it when it is broken, and should be safe when it is not.
i think TGL's fix is correct because I just did a little test to check the stubs generated by orbit-idl-2.8 compared with the one included in rhythmbox and they don't have any reference to ORBIT_STUB_GetServant. mcvaio rhythmbox-0.5.3 # fgrep -r ORBIT_STUB_GetServant corba-orig corba-orig/Rhythmbox-stubs.c: _ORBIT_epv->addToLibrary(ORBIT_STUB_GetServa nt(_obj), uri, ev); corba-orig/Rhythmbox-stubs.c: _ORBIT_epv->handleFile(ORBIT_STUB_GetServant (_obj), uri, ev); corba-orig/Rhythmbox-stubs.c: _ORBIT_epv->grabFocus(ORBIT_STUB_GetServant( _obj), ev); corba-orig/Rhythmbox-stubs.c: _ORBIT_epv->getPlayingTitle(ORBIT_STUB_GetServ ant(_obj), ev); corba-orig/Rhythmbox-stubs.c: _ORBIT_epv->getPlayingPath(ORBIT_STUB_GetServa nt(_obj), ev); corba-orig/Rhythmbox-stubs.c: _ORBIT_epv->quit(ORBIT_STUB_GetServant(_obj) , ev); mcvaio rhythmbox-0.5.3 # fgrep -r ORBIT_STUB_GetServant corba-2.8 mcvaio rhythmbox-0.5.3 # this needs to be forwarded upstream to tell them not to include the stubs/skels in their tarball to ensure compatibility with different ORBit versions.
I've reported it upstream: http://bugzilla.gnome.org/show_bug.cgi?id=122598
ok 0.5.3 now removes orbit stuff by default, forcing regeneration. thanks for the help