[Rhythmbox-devel] rhythmbox compile and install experience



All,

FYI on my experiences trying to install rhythmbox on a RedHat 9 standard 
distribution.  If this helps anyone else, then good.  I apologize for 
the long post, but hopefully folks with find it useful.

 From the rhythmbox home page, I understood this:

<quote>
It is free software, designed to work well under the GNOME Desktop, and 
based on the powerful GStreamer media framework, or the Xine framework.
</quote>

... to mean that rhythmbox works under GNOME and that it can use either 
the GStreamer media framework -or- the Xine framework.  Thus there is an 
assumption in this quote that when installed either gstreamer or xine 
are sufficient to make rhythmbox work.  This is false.

Looking at the requirements, I decided to go with Xine.  So, I got the 
RedHat 9 xine rpms and installed them thus:

[nak@dhcppc1 installers]$ apt-cache search xine
...
xine-lib - Core library for the xine video player.
xine - A free multimedia player.
xine-skins - A collection of skins for the Xine video player.

I got the 0.6.8 version using an rpm found on 
http://yarrow.freshrpms.net/rpm.html?id=886

Note that this rpm of version 0.6.8 makes no mention of either gstreamer 
or xine.

[nak@dhcppc1 installers]$ apt-cache search rhythmbox
rhythmbox - Music Management Application

The rpm installs successfully, yet I get the following error attempting 
to use rhythmbox:

[nak@dhcppc1 installers]$ INFO (13213: 0) Initializing GStreamer Core 
Library version 0.6.3
INFO (13213: 0) CPU features: (00000000) MMX SSE
INFO (13213: 0) registry: loaded global_registry in 0.220444 seconds
           (/var/cache/gstreamer-0.6/registry.xml)
rhythmbox: relocation error: rhythmbox: undefined symbol: 
ORBit_skel_class_register

[2]+  Exit 127                rhythmbox

I'm not sure what the ORBit_skel_class_register refers to.  I checked, 
and the following was installed in my RedHat9 distribution:

[nak@dhcppc1 installers]$ apt-cache search ORBit
ORBit - A high-performance CORBA Object Request Broker.
ORBit-devel - Development libraries, header files and utilities for ORBit.
ORBit2 - A high-performance CORBA Object Request Broker.
ORBit2-devel - Development libraries, header files and utilities for ORBit.

So, I turned to compiling the latest version which, to be honest, was 
the one I wanted, as it is the first with iPod capability. 
Unfortunately, there were a HOST of problems with that approach. 
Running ./configure resulted in this error:

checking for pkg-config... /usr/bin/pkg-config
checking for                   gtk+-2.0 >= 2.2.2        libgnomeui-2.0 
                                 libglade-2.0 
       gnome-vfs-2.0       gnome-vfs-module-2.0 
    libbonobo-2.0                    bonobo-activation-2.0... Package 
gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found

configure: error: Library requirements (                  gtk+-2.0 >= 
2.2.2                               libgnomeui-2.0          libglade-2.0 
                                    gnome-vfs-2.0 
          gnome-vfs-module-2.0         libbonobo-2.0 
bonobo-activation-2.0) not met; consider adjusting the PKG_CONFIG_PATH 
environment variable if your libraries are in a nonstandard prefix so 
pkg-config can find them.

I attempted to find and install a version of gtk+-2x, and found only one 
rpm for it.  An install attempt yielded three screens full of dependency 
errors relating to installed components.  Yikes.  I emailed this list 
and a member graciously gave me some advice, which gave me some 
directions to persue.

I have a standard RedHat 9 install.  As such, none of the devel files
for the various components a compile of rhythmbox needs are installed. 
I installed all of them yet continued to get errors.  NOTE: herein is 
the first big error.  The error msg generated by the ./configure script 
says: "gtk+-2.0 >= 2.2.2."  There is a difference between gtk+ and gtk2. 
  I kept looking for gtk+-2.0 and NOT gtk2-2.2.2 based on the error msg. 
  That was a wild goose chase.  It's not gtk+ that needs to be >=2.2.2, 
it's gtk2.  I wasted many hours searching and trying to install gtk+-2.0 
(the three pages of dependencies mentioned just above are about that). 
My correspondant and I both missed that the version of gtk2 is what 
needed to be upgraded because what was installed was 2.2.1-4 and not 
 >=2.2.2.  To fix that I went hunting and found newer versions of 
gtk2-2.4 at

ftp://ftp.software.umn.edu/pub/linux/fedora/core/1/i386/os/Fedora/RPMS/

NOTE: there are no rpm updates for gtk2-2.2.2 available for RH9 and I've 
used packages from the Fedora project.  Not a good thing, but it's the 
only solution available if I want rhythmbox.

Downloading and installing all of the relevant apps, libs, and devel 
files finally got me past the first configure error.

Only to encounter yet another!  The rhythembox site does not indicate
that 0.7.1 requires gstreamer0.8!  Neither RedHat9 nor RedHat
Fedora come with gstreamer0.8.  Thus, RedHat users can not compile and 
install rhythmbox using their standard installs.

So, off to find and compile gstreamer0.8.  Found the source at 
gstreamer's web site and attempted the compile. Without succes. 
Apparently "make install" doesn't put the right files in 
/usr/lib/pkgconfig where the rhythmbox ./configure script looks for 
dependency checks.  I've no way of fixing that.  The compile of 
gstreamer works, and the "make install" works, and the test of gstreamer 
works.  It's the configure for rhythmbox that still fails with:

<rhythmbox ./configure output>
checking for            gstreamer-0.8 >= 0.7.6 gstreamer-libs-0.8 >= 0.7.6
                 gstreamer-control-0.8 >= 0.7.6 gstreamer-gconf-0.8 >=
0.7.6... Package gstreamer-libs-0.8 was not found in the pkg-config
search path.
Perhaps you should add the directory containing `gstreamer-libs-0.8.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gstreamer-libs-0.8' found
configure: WARNING: Couldn't find GStreamer 0.8, trying 0.7
checking for                    gstreamer-0.7 >= 0.7.4
gstreamer-libs-0.7 >= 0.7.4
                         gstreamer-control-0.7 >= 0.7.4
gstreamer-gconf-0.7 >= 0.7.4... Package gstreamer-0.7 was not found in
the pkg-config search path.
Perhaps you should add the directory containing `gstreamer-0.7.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gstreamer-0.7' found
configure: error: GStreamer not found, or older than version 0.7.4
</rhythmbox ./configure output>

I found some .pc files in the gstreamer0.8 install location and copied
them to /usr/lib/pkgconfig:

[nak@dhcppc1 rhythmbox-0.7.1]$ ls /usr/lib/pkgconfig/
alsaplayer.pc             gstreamer-control-0.8.pc  libpanelapplet-2.0.pc
atk.pc                    gstreamer-control.pc      libpng10.pc
audiofile.pc              gstreamer.pc              libpng12.pc
bonobo-activation-2.0.pc  gthread-2.0.pc            librsvg-1.0.pc
esound.pc                 gthread.pc                libuser.pc
fontconfig.pc             gtk+-2.0.pc               libxml-2.0.pc
gconf-2.0.pc              gtk-engines-2.pc          libxml.pc
gdk-2.0.pc                gtk+.pc                   libxslt.pc
gdk.pc                    gtk-thinice-engine-2.pc   linc.pc
gdk-pixbuf-2.0.pc         gtk+-x11-2.0.pc           openssl.pc
gdk-pixbuf-xlib-2.0.pc    libart-2.0.pc             ORBit-2.0.pc
gdk-x11-2.0.pc            libbonobo-2.0.pc          ORBit-CosNaming-2.0.pc
glib-2.0.pc               libbonoboui-2.0.pc        ORBit-idl-2.0.pc
glib.pc                   libefs.pc                 ORBit.pc
gmodule-2.0.pc            libglade-2.0.pc           pangoft2.pc
gmodule.pc                libgnome-2.0.pc           pango.pc
gnome-mime-data-2.0.pc    libgnomecanvas-2.0.pc     pangoxft.pc
gnome-python-2.0.pc       libgnomeui-2.0.pc         pangox.pc
gnome-vfs-2.0.pc          libIDL-2.0.pc             pygtk-2.0.pc
gnome-vfs-module-2.0.pc   libIDL.pc                 rhythmbox.pc
gobject-2.0.pc            libmetacity-private.pc    xcursor.pc
gstreamer-0.8.pc          libnautilus.pc            xft.pc
</ls output>

But these are not the gstreamer.pc files that rhythembox is looking for. 
  Thus, using the gstreamer version source from gstreamer's web site, 
one cannot compile and install gstreamer0.8 and then compile rhythmbox 
successfully.  That is also not good.

I went to gstreamer's home site where they have rpms for RedHat Fedora 
for gstreamer0.8.  After 29 rpm packages installed, rhythmbox's 
configure script has successfully completed.  Installing gstreamer0.8 
using the Fedora packages successfully placed the requisite files in the 
pkg-config directory and, finally, rhythmbox0.71 compiled.  And it runs, 
too :-)

As you can see, this was quite the project.

1. I attempted to install the rhythmbox rpm found on freshrpms.  I also 
installrf all of the relevant dependency packages, which may not be 
installed by default. The only way I knew which to install was by 
attempting to install the rhythmbox rpm, which did the dependency checking.

2. I did manage to get the dependencies installed and the rhythmbox 
package installed, but running the app failed.  A query to the list, 
while producing a response, did not address that particular issue.

3. I tried to compile rhythmbox0.7.1, without success because first, 
gtk2>=2.2.2 was not installed.  The problem with the configure script's 
reporting gtk+-2.0 leading on a long and ultimately unsuccessful side 
track is mention above.

4. Once the correct version of gtk2 was installed, ./configure reported 
the issue with gstreamer0.8.  An successful compile of gstreamer0.8 
using source from gstreamer's web site was insufficient to get rhythmbox 
installed due to the pkg-config errors.  I was able to download Fedore 
packaged rpms from the gstreamer web site.  Only then did rhythmbox 
successfully compile without error.

Comments on the experience.

I don't know why the problem with the compile of gstreamer0.8 happened, 
but I can't imagine that rhythmbox0.8 developers experience any behavior 
other than what I experienced if they compiled gstreamer0.8 themselves 
(which they must do if they're not using an rpm-capable distribution), 
nor do I think that they expect that all rhythmbox compilers are using 
Fedora and thus would have used gstreamer's provided Fedora rpms.  Not 
sure what to do about this.  Happily I use RH9 and thus could 
contemplate using the Fedora rpms, which finally did allow me to compile 
and use rhythmbox.  In fact, as an RH9 user I had to use quite a few 
Fedora rpms (all of the gtk2 and gstreamer rpms, plus all of the 
dependency rpms for them, **over 50 in all**).

An interesting note--at no time did I encounter any reference to xine 
during the rhythmbox install or compile.  There is no mention of xine in 
the rhythmbox0.7.1 README or INSTALL files.  There was no check of xine 
in the .configure script nor any reporting about it.

Attempting to compile a program without having a document that describes 
**precisely** what dependencies must be met is an exercise in 
frustration and anger.  I think had I not been absorbed with the NCAA 
Basketball tourny, I would have been greatly annoyed at the lack of 
information in this respect.  In all, it took over 12 hours (which 
includes the downloading of over 100 rpm packages trying to accommodate 
the various dependency and development requirements, which took not a 
little bit of time). I've spoken to some of the assumptions made above. 
  I'm not a developer.  I've done pascal, c, and visualbasic prgramming, 
but I'm no professional programmer.  However, that prior experience gave 
me just enough knowledge to work through the problems I encountered.

This was NOT easy.  It was ultimately successful I think only because of 
my diligence.

Guy

-- 

Guy Stalnaker
I2@DOIT
1210 West Dayton Street
Room 3209 CSS
Madison WI 53719-1220
jstalnak@wisc.edu
wk. 608.263.8035
cell 608.235.4718
fax 608.265.6681





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]