[Rhythmbox-devel] rhythmbox compile and install experience
- From: Guy Stalnaker <jstalnak wisc edu>
- To: rhythmbox-devel gnome org
- Cc: John Russell <drjimmy42 yahoo com>
- Subject: [Rhythmbox-devel] rhythmbox compile and install experience
- Date: Mon, 22 Mar 2004 13:37:48 -0600
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]