2011-03-07

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 !

2010-11-03

Hello Planet GNOME !

I'm happy and honored to be included on Planet GNOME, in such great company !

For those who are interested in my previous posts, a quick recap (read it with your best Jack Bauer voice) :

Previously on this blog
Enough with the old stuff, let's show some progress here ! I found some music to go along with the video I made for the Banshee 1.8, and I finally went multimedia.


Of course, you have all recognized "Forgotten Heroes", a song from "Nightmares By Design" by Severed Fifth.

If want to be a Banshee hero, join us, and you will not be forgotten !

2010-10-05

Banshee 1.8.0, a few highlights

Last week we released Banshee version 1.8.0. A lot of new features and enhancements were added since the 1.6 release six months ago. So I'm not going to list them all, I'll just point out some of my favorites.

Amazon MP3 store

Browse, search, preview, purchase, and download music without leaving your media player. I can now enjoy music I never had a chance to get my hands on before !

Detailed screencast by Aaron

The part I like the most about it is that it uses the Amazon affiliate program, and all the money goes to the GNOME Foundation. Since this was put in place in August, every month brings a new record in revenue !

OpenVP visualizations

With every major Banshee release also comes a new version of the Banshee Community Extensions.
I'm really happy that it now includes the new OpenVP extension by Chris Howie. OpenVP is a platform for developing music visualizations, and the extension adds various music visualizations in the "Now Playing" source. You can now be mesmerized by your Banshee !

OSX is back

We haven't provided updated OSX packages for quite a while, so Tarmo Milva, an Apple-fanatic and a friend, could not stand this anymore. Or maybe he just got frustrated and tired of me rambling on about the awesomeness of Banshee...
Using the bockbuild build system (created by, you guessed it, Mr. Aaron Bockover), and with a bit of patience, he managed to build Banshee on his Mac, and created a shiny bundle for easy installation. He was kind enough to share it, so you can get it from our download page, and send your thanks this way.
This is still a beta-quality preview, several features are missing and it's not as stable as our Linux releases. Any OSX-related help is welcome, especially since Tarmo is often busy running marathons...

And more !

OK, I lied, I'm going to list more new stuff anyway :
  • Major update of the hardware integration, and improved Apple device support
  • Miro podcast directory
  • Topic-based user help
  • Metadata  fix-up extension
  • MPRIS v2 support
  • ...

Pretty moving pictures

Like I did a while back to celebrate the previous major release, I made another video using the excellent version control visualization tool called Gource. This one shows the activity between 1.6.0 and 1.8.0. You will notice it starts before the release of 1.6.0 with low activity, that's the stuff that was happening on separate feature branches and that got merged in later on.


If you want to be a part of the next movie, it's easy : translate, write documentation, write code !

2010-07-10

Going to GUADEC - My answers to the 5 questions

Who are you and what do you do ?

I'm Bertrand Lorentz, a French guy exiled in Luxembourg. I'm working as a project manager at the Court of Justice of the EU, and I'm hacking on the great Banshee media player during my free time.

How did you get into GNOME ?

My first GNOME-related contribution was an alarm-clock extension for Banshee, back in 2006. In 2008 I got gradually more involved in Banshee itself : triaging bugs, writing small patches, managing and reviewing patches, etc. I'm now proud to be a member of the GNOME foundation.

Why are you coming to GUADEC ?

I'm going to GUADEC for the same reasons I went to GCDS last year : meet nice people, see interesting talks, and have an all-around good time.
I'm particularly looking forward to meeting Gabriel for the first time after all those online interactions, and also Alex Launi, our Google Summer of Code student.

In 1 sentence, describe what your most favorite recent GNOME project has been.

In the past months, I've been really happy to see the way the F-Spot project is going : an articulated vision, lots of positive energy and enthusiasm.
Of course, the fact that Ruben has started picking up some of my commits to Banshee and applying them  to F-Spot might have something to do with this positive opinion. Doing the work once and getting the credit twice ? Count me in !

Will this be your first time visiting the Netherlands ?

Yes, although it's not that far from where I live, I never had the opportunity to visit the Netherlands. So that will be one item off my list of "EU countries I've never been to"

So, I'm attending GUADEC and I hope I'll see you there !

2010-04-02

Celebrating Banshee 1.6

As you probably know, we released Banshee 1.6 a few days ago. You can read all about it in the release notes, and in Gabriel's blog.

After a long development cycle that culminated in this major release, you naturally take some time to look back and reflect on how things are going. Gabriel already did that and has some beautiful evidence to show.

In this spirit, and to celebrate all the contributions we received during this cycle, here's a short video, made using the Gource visualization tool. Look at all these people adding features, fixing bugs, translating, etc.



Banshee git history from Bertrand Lorentz on Vimeo.

It shows the source code repository activity since it was switched to git in April 2009, which corresponds to somewhere between the 1.4.3 and the 1.5.0 releases. Using the history before that time would be much less interesting, as it would show the committers, and not the real authors of the contribution.
Also, the files only appear as they are modified, so don't be fooled : the Banshee source tree wasn't that small in April 2009 !

As I left out the textual information, for maximum eye-candy-ness, you can play a little game to test your Banshee knowledge : Are you able to identify parts of the directory structure (spotting po/ should be easy) ? Can you recognize people just by their contribution pattern ?

If you enjoyed this video, I really recommend you install and run Gource in interactive mode : just go into your Banshee git checkout and run "gource". You can see all the information, skip to a specific date, zoom in, track an author, etc.

If you want to join the fun and be in the next video, it's easy : http://banshee-project.org/contribute/