This is a simple guide for building and installing new Rhythmbox straight
from upstream using existing debian templates for RB.
Use at your own risk.
Initial setup
- It's suggested to build this using chrooted build system like pbuilder or sbuild. If you do, you don't need to install any other dependencies than devscripts package.
- Alternatively you can use debfoster. Run run it once and answer 'yes' (or no if you know what you're doing) asked questions. This way you set *default* state for installed packages and can easily uninstall all RB build dependencies after building. You can later "reset" debfoster using -n parameter after the whole buildprocess is complete and installed dependencies have been removed.
Configuring build environment
- Install required packages for building
Code:
sudo aptitude install build-essential cdbs devscripts dh-make fakeroot
- Setup your local environment
Code:
mkdir -p ~/packages/rhythmbox
cd ~/packages/rhythmbox
Getting the sources
- We'll use debian's package as base package for the source. Add new source
reposirtory on /etc/apt/sources.list
Code:
deb-src http://ftp.uk.debian.org/debian unstable main contrib non-free
Note!
- Fetch RB's source from debian repository. Don't use sudo while getting the source package!
Before doing this, make sure you're at the rhythmbox directory you created earlier.
Code:
sudo apt-get update && apt-get source rhythmbox
cd rhythmbox-0.9.5
Preparing the new package
- You must edit debian/control and debian/control.in files and replace libgnome-media-dev with gnome-media on Build-Depends: section,
Debian on Ubuntu seem to have difference regarding to package naming.
- Insert new changelog entry
- Insert your own comments about new version
Code:
rhythmbox (0.9.5-1ubuntu1) dapper; urgency=low
* debian/control,
debian/control.in:
- Changed libgnome-media-dev to gnome-media
-- Firstname Lastname <yourname@mail.com> Tue, 20 Jun 2006 22:11:35 +0300
Save file after modifying it (contents will actually be written on debian/changelog)
- If you want to enable experimental ipod writing support, add this to debian/rules
Code:
DEB_CONFIGURE_EXTRA_FLAGS += --enable-ipod-writing
Installing required build dependencies
- Run dpkg-checkbuilddeps and install all listed packages. Those are needed for building this package. For RB 0.9.5 build dependencies are
Code:
sudo aptitude install libgnome2-dev libgtk2.0-dev libgnomeui-dev libgnomevfs2-dev docbook-xsl docbook-utils gnome-pkg-tools libxt-dev libdbus-glib-1-dev libnautilus-burn-dev libhal-dev libtotem-plparser-dev liblircclient-dev libsoup2.2-dev libavahi-client-dev libmusicbrainz4-dev libavahi-glib-dev libtool libgpod-dev libnotify-dev libglade2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev zlib1g-dev libx11-dev libglib2.0-dev gtk-doc-tools libsexy-dev python-gtk2-dev python-dev
Building the package
- Build rhythmbox packages
Code:
dpkg-buildpackage -rfakeroot -us -uc
- Install new rhythbox
Code:
sudo dpkg -i ../rhythmbox_0.9.5-0ubuntu1_i386.deb
Removing the build dependencies
- If you installed debfoster as suggested in the beginning, you can now clear
all build dependencies by running debfoster again and answering p (as purge) for
all questions regarding to applications and libraries installed on build process.
- Remove/comment debian source repository from/etc/apt/sources.list
[edit]
I changed howto to use debian experimental repository instead, because
changelog contained some important build rules. There's also instructions
to apply launchpad integration pacthes if anyone wants to use the feature.
[edit 2]
- Added suggestion to build using pbuilder
- Changed to use debian unstable repository
- Removed confusing steps about applying launchpad integration patches
Bookmarks