Songbird: How To Make Great Software Unpopular

As part of my ongoing quest for working media players, I’ve more than once tried Songbird. But it never wanted to work in Linux, always crashing before it even fired up the GUI with errors like this:

(songbird-bin:17595): libgnomevfs-WARNING **: Cannot load module `/usr/lib/gnome-vfs-2.0/modules/' (/usr/lib/gnome-vfs-2.0/modules/ cannot open shared object file: No such file or directory)
././songbird-bin: symbol lookup error: /usr/lib/python2.5/site-packages/gst-0.10/gst/ undefined symbol: gst_xml_get_type
Could not initialize GStreamer: Error re-scanning registry , child terminated by signal

Googling reveals dozens of threads about this among Debian, Ubuntu, Fedora… well, ALL Linux users. Some people reported success removing bits of GStreamer from their systems, but that didn’t work for me.

I noticed that the Linux binary distribution of Songbird contains a lib/ directory, which has, among other things, full copies of many GStreamer libraries, libvorbis, libFLAC, libogg, libtheoradec/enc, and more. On a lark, I ran rm lib/libgst*. And that fixed Songbird.

Now, that gets me to the point of why Songbird isn’t popular on Linux, a fact which appears to mystify the Songbird developers from the posts I’ve read.

And the reason is: Songbird doesn’t work on Linux out of the box. More to the point, Songbird tries to distribute itself on Linux as if the user is running on Windows.

You do not install a local gstreamer with each app on Linux; you use the system’s. You don’t try to use a local copy of everything; you use the systems. Even songbird plugins package their own .so of files I already have installed system-wide. The Linux shared library system can handle it, I promise.

And even worse, the fact that they are trying to use local copies of things instead of system ones are making it very difficult for distributions to package up Songbird. Distributions — the ones that care about quality, anyhow — want to do things The Right Way, which means only one copy of GStreamer on the system. Songbird doesn’t want to get along well with this. None of Debian, Ubuntu, or Fedora have Songbird packages in their repositories, though third-party packages of greatly varying quality exist for each. Read their respective bug tracking systems and you’ll see that it has to do with Songbird wanting local versions of system-wide libraries.

So, Songbird folks: If you want to make a cross-platform app, please stop treating Linux as if its library system is as broken as Windows. It wasn’t until you got here.

Aside from that, it looks like the best music player I’ve tried yet, despite its sluggish interface.

Update: The original version of this article incorrectly stated that Songbird was a Mozilla project.

9 thoughts on “Songbird: How To Make Great Software Unpopular

  1. Tim says:


  2. Hub says:

    Songbird isn’t a Mozilla product. It is just using XULRunner as a platform.

    1. John Goerzen says:

      Thanks; I’ve corrected the article.

  3. Rayne says:

    Songbird was the first thing I installed on this Ubuntu Hardy Machine, it’s worked out of the box since the very beginning. I’ve never heard of any of the problems you mention.

  4. Karthik says:

    I am very surprised by this. songbird was one player that worked out of box any linux box I tried.
    >I noticed that the Linux binary distribution of Songbird >contains a lib/ directory, which has, among other things, full >copies of many GStreamer libraries, libvorbis, libFLAC, >libogg, libtheoradec/enc, and more

    Not everyone works in an office that has an admin who will install gstreamer/anycodec. In my university most of them have no admin/sudo rights.

    1. Jon says:

      @Karthik: in those situations you install the library dependencies locally yourself.

  5. sime says:

    Just today I searched for “debian songbird” hoping I would see some chatter on a Debian list of package wranglers trying to tame the bird.

    I would sleep better if it was sitting in unstable for a couple of months like Miro did, though it hasn’t even made it that far.

    I hope your post starts the necessary chatter.

  6. RonIn says:

    Thanks so much… removing the libs worked to get up and running SB in debian squeeze, I totally agree with this post… so beutiful and so ugly and buggy…

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.