Banshee 2.2, something for everyone

Yesterday we released Banshee 2.2. It's the result of six months of hard work by 35 developers, 38 translators and countless bug reporters, tester, packagers, and just nice people.

Of course it comes with new features and enhancements :
  • eMusic store
  • support for the Nook
  • ability to preload default radio stations
  • several new Android device supported
  • a new "Smiley Face Curve" default equalizer
  • Lots more ! And bug fixes !
Check out the release notes for more details.

I'm particularly happy about the ability to preload default radio stations. In the 0.x series, Banshee used to ship with a set of default radio stations, but those were a pain to maintain, so that was dropped during the refactoring that lead to 1.0. This was of course not ideal either, so a bug about that was lingering for quite some time.

Then Martin Pitt came up with an idea, along with a patch : when Banshee first starts, just read any XSPF files from DATADIR/stations/ (usually /usr/share/banshee/stations) and import their content as radio stations.

As Martin mentions, this allows distros or admins to provide the default stations they want just by installing one or more files, and those stations can be locale or region specific. I think this is a nice solution, but maybe it's just because we don't have to do anything... ;)

This release is available in lots of shapes and sizes, all accessible through our download page :
This release also marks the first anniversary of our most beloved feature, the Amazon store integration. During that year, over $9000 USD have been contributed directly to the GNOME Foundation. And we have learned that apparently most people don't buy music in August.

With a new Banshee release comes a new version of our Community Extensions. It brings two new extensions (AlbumArtWriter and DuplicateSongDetector), along with several enhancements and bugfixes to existing extensions (more details here). The project on gitorious now brings together 23 extensions, and 28 people are listed as committers.

In fact, this extension business is working so well that there are people who are (kind of) extending extensions : we now have new visualizations for the OpenVP visualizer, combining existing visualizations

The new "Spectrum Rain" visualization

Before you ask, although it looks different than what you might be used to, this is really Banshee. Just go to "Now Playing" and click "Simplify".

I'd like to thank everybody who made all of this possible, and who make Banshee such a fun project to be involved with. If you want to join us, to help out or to get some help, just head over to our website.


Ich bin ein Desktop Summit Berliner

Right after I finished my studies, I had the opportunity to live in Berlin for 16 months. I worked in the French embassy, as part of my civil national service, and I really enjoyed my time there.

That was more than 10 years ago, and I never had the chance to go back to this wonderful city. That's why I'm particularly happy with the location for the Desktop Summit this year. After all this time, I'm really looking forward to re-discovering the city, and getting the answers for the following questions :
  • Are parts of the Berlin Wall's death trip still visible, or have they all been conquered now by new buildings ?
  • Can you still see bullet impacts on the building of the Museum Island ?
  • Do people still make barbecues in the Tiergarten, right in front of Schloss Bellevue, the official residence of the President of Germany ?
  • Can you still find bars that are only open one day a week, located in a cave and only accessible through a building site ?
I should land in Berlin on the 4th August, and I'm staying until the 14th, so that should give me enough time for those inquiries and more. Of course, I'm also looking forward to the conference itself, and I'll be happy to see everyone there.

If I'm not too lazy, I'll set up an ad-hoc BoF about Banshee and our porting effort to GTK+ 3. Watch this space for updates !

Let's finish with a little bit of trivia : Kennedy said his famous "Ich bin ein Berliner" in a speech in front of the Rathaus Schöneberg, which was the temporary city hall of West Berlin, because the "proper" city hall was on the other side of the Wall.

See you there !


A new Banshee bundle of joy

The release of Banshee 2.0 is already a few weeks behind us, so after a non-negligible delay I'm happy to announce the availability of the Banshee 2.0 bundle for Linux :
Download the file corresponding to your system, uncompress it and run it !
Those files are now compressed with bzip2, so use "tar xjf ..." if you're the command-line type.
You might notice that the files are now hosted on ftp.gnome.org, making this thing look much more serious (and DropBox doesn't seem to be popular these days...).

But that's not the only thing that changed, I've improved several aspects of the bundle :
  • GStreamer integration
    We now use the system-installed GStreamer plugins, from the usual locations (/usr/lib/gstreamer-0.10 and /usr/local/lib/gstreamer-0.10). That's why there is now a 64 bit version of the bundle : a 32 bit bundle would run fine on a 64 bit system, but won't be able to load the 64 bit plugin binaries. This means that you should now be able to listen all your music, as long as the proper codecs are available on your system.
  • Theming
    We also try to use the current GTK theme, if there's one available. If there isn't, we use the theme included in the bundle. You can tell the bundle to ignore the current theme by passing the --use-bundled-theme parameter when starting the bundle. We currently only support themes that use the Murrine or Clearlooks engines. If your favorite theme requires another engine, just drop me a line and I'll try to add it.
  • Font handling should be better, as the default configuration files for fontconfig are now included.
  • Navigating to the HTTPS pages on the Amazon store should work, thanks to having the right gio module in the bundle.
  • Various packages have been updated to their latest stable versions, including taglib-sharp, sqlite and libsoup.
  • And of course there's all the goodness that is Banshee 2.0 !
A small gotcha to keep in mind : if you have ever run a previous version of the bundle on your 64 bit system, you'll have to delete the following file : ~/.config-glick/banshee-1/gstreamer-registry.bin
All the changes for the bockbuild build/bundling system are available on my GitHub branch, and maybe soon on the main repository, and you can read more about the way the bundle is built in my previous post.

So go ahead, try it ! You won't break your system !
But if it doesn't work, please file bugs in Bugzilla. Just make sure to mention you're using the Linux bundle, indicate which distro you're using and include any log output.

Update : Modified last paragraph to direct bug reports to Bugzilla.


Banshee Bundle on Linux : One file to run on them all

As you might know, Banshee is available for Mac OS X, as a single file, which is a self-contained bundle of the Banshee binaries, along with all the dependencies. You just have to download it somewhere on your system, and run it.
Back in late 2009, when working on the tools to create this OS X bundle, Aaron already had the idea to create a similar thing for Linux, calling it "an interesting hack".
I'm happy to report that it was indeed an interesting hack, and you can enjoy the result by clicking on this link : banshee-1.9.4.run.tgz (49 MB)
Download the file, uncompress it with your favorite tool and you'll get a banshee-1.9.4.run executable. Just run it !

What do I get in that big file ?

The bundle contains almost everything you need to run Banshee, except maybe an operating system : GLib 2.28.1, GTK+ 2.24.1, SQLite 3.7.5, WebKit 1.2.5, GStreamer 0.10.32, Mono 2.10.1, GTK# 2.12, etc. What is missing though are MP3 codecs, but you should be able to play ogg file and other formats.
So you should be able to run that file on pretty much any Linux system, provided it has an X server and supports fuse (more on that later).

How does it work ?

This bundle is built using two great tools :
  • Bockbuild by Aaron, which is a light-weight build/packaging/bundling system for OS X, Linux, and Windows and is used to produce the Banshee OS X bundle.
  • Glick by Alexander Larsson, which is set of tools to easily create application bundles, using a nice trick with /proc/self and file descriptors.
So that big file is just a regular 32-bit i386 ELF executable, with a small bootstrap code and an ext2 filesystem image in one of its data section. When you launch that executable, the bootstrap code will mount the filesystem image in a temporary directory and do it's trick so that /proc/self/fd/1023 point to the root of that filesystem. It will then run the "start" script that sets up a nice environement and launches Banshee from that filesystem.

I've tried to do everything so that there's no interference with any thing on the system, in particular with an existing Banshee installation : configuration files are stored under $HOME/.config-glick/ and Banshee uses its XML configuration backend instead of the usual GConf. But of course standard disclaimers apply !

I had to modify and slightly extend both Bockbuild and Glick, so you will find my changes in the following branches on GitHub :
That last branch also contains a README.linux-bundle file with what I hope are clear instructions on how to create a bundle with these tools.

Why ?

The idea here is not to replace the packages you get through your Linux distribution (we love our packagers !), but to cover the use cases that aren't covered yet :
  • Allow users to quickly and easily try out a new version of Banshee, without having to wait for the packages to be available for their distro.
  • Provide an easy to test experimental features, instead of asking people to compile from a git branch.
  • Run Banshee with the latest versions of its dependencies, without any risk of compromising system stability.
  • Provide a custom UI theme (aka skin), using GTK theming.
  • [Insert your idea here]

What's next ?

There are a few things missing and some things that could probably be improved :
  • The bundle doesn't contain any hardware backends, so you won't be able to see your media player in Banshee. It should be possible to make that work by adding the missing build dependency, and let everything work its magic at runtime.
  • Although the bundle contains Mono 2.10.1, the new SGen garbage collector is not enabled yet. I just wanted to play it extra-safe for now.
  • I've seen some weirdness with fonts on some systems, maybe we could just add a nice font in the bundle.
It would be really great if somebody with artistic talent could come up with a nice and elegant UI theme for Banshee. Right now the bundle contains the Shiki-Brave GTK theme, but I'd be happy to add others to the mix !
I'm also looking forward to hear about your experiences running Banshee from this bundle, good or bad. Bonus points for running on the craziest Linux systems out there !