Rhythmbox is maintained primarily in the Arch revision control system, specifically the tla implementation.

Archive Name

Archive Location

Main development branch


Stable branch


IMPORTANT: These instructions require tla 1.1 or better.

First, if you have never registered the Rhythmbox archive, you should do that now:

$ tla register-archive

After doing that (which you only have to do once), you can get a copy of the tree like so:

$ tla get

Updating the tree

To update the source tree, just do:

$ tla update

Known Rhythmbox development archives

On the IRC channel and in Bugzilla, you will occasionally see references to developers' branches of Rhythmbox. One example is: . It can be hard to find what the part refers to, so we've provided this handy table of known archives. Here's how you might register an archive:

$ tla register-archive

tla will then add that archive to your list of registered archives.

Archive Name Archive Location GPG key Comments (keyring) Central archive 6A765865 Maintainer's archive song display, misc bugfixes C828E736 misc bugfixes 04F49795 Shuffle and random play orders 7BB80427 GtkFileChooser fixes, statusbar 39734ACE iPod integration 39734ACE Various experiments CE1A0CDC misc bugfixes 2FE51A2E drag & drop, misc bugfixes 136B762D automatic rating work album covers 04880A44 bugfixes 128287E8 Welsh translation DD0ABE82 Xine fixes, iradio work, and more

One hint: after registering a new archive, you may want to run

$ tla abrowse

This will show you in a nice format what all is in the archive.


However, not all the developers use Arch right now, so the arch tree is regularly synchronized (about once a day) with the GNOME CVS , in the rhythmbox module. See this message for more information about how things work.

Creating your own Rhythmbox branch

So you'd like to start contributing to Rhythmbox? Arch makes it incredibly easy. You don't need any kind of write access to the GNOME CVS or the main Rhythmbox arch tree to start working. You can create your own local branch of the tree, and start hacking on it.

If you've never used tla before...

The very first thing you need to do is tell tla what your identity is. Do this, if you've never done it before:

$ tla my-id 'Jane Doe <>'

Creating your archive

First, if you haven't already, you need to create your own Arch "archive". This is your local repository; it can contain many multiple branches of various software.

$ tla make-archive ~/code/archive

If you have at least tla 1.2pre0 and a gpg key, you may want to sign your archive. To do so, use the following command instead.

$ tla make-archive --signed ~/code/archive

Then create the file ~/.arch-params/signing/=default containing the line

gpg --clearsign

Creating a branch

Next, you want to create a branch. At this point, if you didn't register the archives above, you should do that now. You will then make this branch refer back to the main Rhythmbox arch repository:

$ tla archive-setup
$ tla tag

Congratulations, you've created your own branch! Next, let's get a copy of the tree, where we can do work:

$ tla get rhythmbox

Updating your branch

Development on your branch is now entirely independent of development on the main Rhythmbox tree. However, it's likely that you will want to merge in changes made on the main Rhythmbox tree. When you want to do that, just do:

$ tla star-merge 

Committing changes

That's it! Now, cd into rhythmbox and hack away. When you're ready to commit, do this:

$ tla commit -s 'fix crash on invalid mp3s'

Publishing your archive

That's the basic work cycle. Now, finally you need to publish your changes somewhere. You do this by creating a mirror of your local repository, on a public web site or FTP site, where others can read your changes. You will need write access for yourself to the repository; I personally talk to over SFTP, but there are other transports available.

$ tla make-archive --listing --mirror s

If you have signed your main archive, in order to preserve your signatures, the above command should be

$ tla make-archive --signed --listing --mirror s

And you should create the file ~/.arch-params/signing/ containing the line

In the above command, the directory archive must not already exist. Now, you want to push the changes in your local repository to the mirror:

$ tla archive-mirror

Finally, to publish your changes, you need to tell people how to access your public mirror, by giving them the archive name ( ) and the location (say ).

A bit more advanced: tracking upstream branch changes

Periodically, a new branch of Rhythmbox will be created for new major versions. If you have your own branch of an older version, you will likely also want your own branch of the newer version as well. This message describes how to handle that.

A discussion of Arch and Rhythmbox

You may find this IRC discussion to be a good introduction to Arch from a newbie perspective.