Ubuntu One on Gentoo

And now for something completely different ! (ie not banshee related)

For years now, I've been running Gentoo Linux on my desktop machine, and I'm mostly happy with it. Earlier this year, I had the opportunity to get my hands on a cheap used laptop : an Apple iBook G4. First thing I did with it was a clean install of Ubuntu.

Since then, I've been looking for a way to easily synchronize files between my desktop and laptop. Obvious alternatives like Dropbox wouldn't work, because they don't provide PowerPC binaries for Linux.

So when Ubuntu One came out, it seemed like a perfect fit. I just had to get it running on Gentoo !

This being all about sharing, I also wrote some ebuilds, so that others might also enjoy it.

Installation instructions

My ebuilds are grouped in an overlay, which translated from Gentoo-speak to Ubuntu-speak would be something like a PPA.

First you have to install the layman tool, to help manage your overlays :
  emerge layman

Then you can add my overlay :
  layman -f --overlays http://gitorious.org/gentoo-ubuntu-one/gentoo-ubuntu-one/blobs/raw/master/gentoo-ubuntu-one.xml --add gentoo-ubuntu-one

This will also fetch the content of the overlay. If you want to update the overlay later, just run "layman -s gentoo-ubuntu-one".

You then have to edit your /etc/make.conf, so that this new overlay can be found. Just add this line at the bottom :
  source /usr/local/portage/layman/make.conf

What's left now is just to actually install the Ubuntu One client :
  emerge ubuntuone-client

This should install all necessary dependencies. You probably have to restart nautilus for the Ubuntu One integration to be visible.

To start it, just go to Applications > Internet and click "Ubuntu One". This will open a page in you web browser, where you'll have to sign in and add your computer to your Ubuntu One account.

Caveat emptor

  • The packages for Evolution contacts synchronization are not included, because I don't need that feature and it looks like it the dependencies could be tricky.
  • The Ubuntu One applet has a tendency to take 100% of my CPU. After killing it, synchronization still works. Further investigation is needed on that front.
  • These are my first serious attempt at writing ebuilds, so they might be broken in various ways. I'd be happy to hear about your experience anyway !


Bustling Banshee Bunch - Web Edition

Incurable Introduction

A long time ago, I was keeping track of patches that were submitted for Banshee through bugzilla and needed some attention. Once or twice per month, I then sent a list of those patches to the banshee mailing list. Those posts were called "Pending Patches Periodical" or PPP. For example, you can have a look at the first issue in the archives.
I thought I'd try to revive this, but in a new format, leveraging this new-fangled "web-log" technology thingy. I'm also going for an expanded scope, hence the new name, but keeping with the ridiculous alliteration-based theme.
I'd be happy to hear what you think about all of this !

Anyone who wants to help by testing and providing feedback is welcome to do so !
Be careful, this is for those who are not afraid of building Banshee from source and understand the risks associated with running bleeding-edge software.

Bouncy Branches

The branches listed here are available in the official git repository. They are in development, but are considered ready for some wider testing. Feedback is welcome on the associated bug or through a new bug in bugzilla.
  • gapless : no unwanted silence between tracks, thanks to the GStreamer playbin2 element (bug 440952)
  • grid : new layout for the ListView, displaying the covert art for albums, see the screenshot
  • watcher : automatically import new files and update your library (bug 385965)

Fancy Figures

Pending Patches

Bug 576666 - YouTube Extension
Really nice feature, patch looks good. (by Kevin Duffus)

Bug 487203 - DAAP password authentication problems when accessing a DAAP server
Only use default codes for password protected servers. Already some positive feedback. (by FĂ©lix Velasco)

Bug 520516 - Cover/Album art filenames not robust, fail for non-ASCII, parenthesis, etc
A first rough patch, some work left : simplification of file naming, migration of existing files and clean-up. (by me)

Bug 602589 - Unable to build on openSUSE 11.0
A partial patch that should fix the build on openSUSE 11.1, someone needs to confirm this. (by me)

Bug 428849 - clickable Album and Artist next to play controls
Has already seen a lot of iterations and improvements, would be nice if somebody could check that it still applies and works with the latest git master. (by Sandy Armstrong)

Endless Epilogue

There are of course a lot of other patches that could be mentioned, so you're welcome to point those out, using our usual communication channels (mailing-list or IRC).


Fireworks of code

Everybody knows that a picture is worth a thousand words. I guess a similar statement is also true : a video is worth a thousand numbers.

So I played around with code_swarm and generated a nice video :

Banshee code swarm from Bertrand Lorentz on Vimeo.

Click on the link above to see the video in its original size on Vimeo.

If someone knows some freely available music that would make a good soundtrack for that video, please point me to it. I'd be happy to try to make a music video !

I think that's enough messing around with source code history. I should go back to actually producing some code...


Who writes Banshee

I'm quite often seeing things like "Banshee is a Novell project" or "Novell announced a new Banshee release" in articles mentioning this great media player. From where I stand, those statements always felt a bit wrong.

So I played a bit with gitdm, the tool that is used to produce the stats for those "Who writes Linux" reports.
I'm only looking at the number of changesets, because the changed lines numbers are skewed by translation commits, especially if you look at a short period of time. Don't get me wrong, I love our translators, but I wanted to concentrate on the code contributions.

Full history
If you look at the whole history, starting at the first commit in June 2005 of what was called Sonance at the time, the amount of work put in by our two co-maintainers is quite visible.

4880 changesets from 159 developers

Developers with the most changesets
Aaron Bockover
Gabriel Burt
Bertrand Lorentz
Scott Peterson
Alexander Kojevnikov

Top changeset contributors by employer

By the way, some contributors other than Aaron and Gabriel happen to be employed by Novell, but I'm quite sure that Banshee is NOT part of their job description and that they're contributing during their free time. They are nevertheless counted under "Novell".

From 1.4.2 to 1.5.1
If you look at what happened on the master branch from the 1.4.2 release in January 2009 up to the latest 1.5.1 release, things are quite different.

639 changesets from 73 developers

Developers with the most changesets
Gabriel Burt
Bertrand Lorentz
Alexander Kojevnikov
Aaron Bockover
John Millikin

Top changeset contributors by employer

From 1.5.0 to 1.5.1
Concentrating on an even more recent period, between the 1.5.0 and 1.5.1 releases, the trend continues.

253 changesets from 54 developers

Developers with the most changesets
Alexander Kojevnikov
Gabriel Burt
Bertrand Lorentz
Aaron Bockover
Jack Deslippe

Top changeset contributors by employer

This is also quite visible in the announcement for 1.5.1 : most of the heavy lifting for two major features (shuffle modes and Auto-DJ) was done by Alexander.

So my point is : Banshee is a GNOME project, driven by a great community and lead by two loving (and loved) maintainers. Come join us !

Update : Several smart folks have pointed out that before the migration to git in April 2009, the changesets are credited to the committer, and not to the actual author of the code. So be careful, those figures are statistics, so they're certainly lying in some way.