Today I wanted to update to latest rhythmbox. Unfortunately it’s not (yet) available for Fedora 16. Yet it’s available for next to come F17 so I rebuilt it:

1. download src rpm

 $ yumdownloader --releasever=17 --enablerepo=updates-testing \
   --source rhythmbox

2. install required dependencies

 # yum install libpeas-devel libgudev1-devel gobject-introspection-devel \
   pygobject3-devel libgpod-devel GConf2-devel brasero-devel \
   gstreamer-plugins-base-devel totem-pl-parser-devel avahi-glib-devel \
   libmusicbrainz3-devel dbus-devel dbus-glib-devel libnotify-devel \
   gstreamer-devel gnome-doc-utils libsoup-devel lirc-devel libmtp-devel \
   libdmapsharing-devel webkitgtk3-devel gstreamer-python-devel \
   libgnome-keyring-devel json-glib-devel libSM-devel perl-XML-Parser \
   intltool gnome-common clutter-gtk-devel clutter-gst-devel libmx-devel \
   grilo-devel libtdb-devel

3. install src rpm

 $ rpm -ivh rhythmbox-2.96-1.fc17.src.rpm

4. build rpm

 $ rpmbuild -bb rpmbuild/SPECS/rhythmbox.spec

5. install (just built) rpm

 # rpm -Uvh /home/jeo/rpmbuild/RPMS/x86_64/rhythmbox-2.96-1.fc16.x86_64.rpm

6. cleanup dependencies

 # yum remove Conf2-devel avahi-glib-devel brasero-devel \
   clutter-gst-devel clutter-gtk-devel dbus-devel dbus-glib-devel \
   gnome-common gnome-doc-utils gobject-introspection-devel grilo-devel  \
   gstreamer-devel gstreamer-plugins-base-devel gstreamer-python-devel \
   intltool json-glib-devel libSM-devel libdmapsharing-devel \
   libgnome-keyring-devel libgpod-devel libgudev1-devel libmtp-devel \
   libmusicbrainz3-devel libmx-devel libnotify-devel libpeas-devel \
   libsoup-devel libtdb-devel lirc-devel perl-XML-Parser pygobject3-devel \
   totem-pl-parser-devel webkitgtk3-devel ORBit2-devel avahi-devel \
   boost-regex cairo-gobject-devel check check-devel clutter-devel \
   cogl-devel ctags docbook-style-dsssl docbook-style-xsl docbook-utils \
   gettext-common-devel gettext-devel gmime-devel gnutls-c++ gnutls-devel \
   gtk-doc gtk3-devel indent libICE-devel libIDL-devel libarchive-devel \
   libdiscid-devel libffi-devel libgcrypt-devel libgpg-error-devel \
   libimobiledevice-devel libplist-devel libquvi-devel libtasn1-devel \
   libudev-devel libusb1-devel libusb1-devel-doc libxml2-devel neon-devel \
   openjade p11-kit-devel perl-SGMLSpm pycairo-devel pygobject2-codegen \
   pygobject2-devel pygobject2-doc pygtk2-codegen pygtk2-devel pygtk2-doc \
   source-highlight usbmuxd-devel

You’re done!