Reply to comment

More Songbird RPMs... and some ranting

Tagged:

The last couple of weeks have seen some interesting bugs creep up in the Songbird 1.1.1 release. First we had the annoying gconf popup with bug 15432, and then everyone quickly noticed that songs would hang after a plays, which was noted in bug 15401. Well I'm happy to say that these bugs have now been squashed and you can go back to happily listening to your ridiculously huge library of mp3s... except that's only half true, and so begins my rant...

As we soon found out, the bugs actually were never present in Songbird. They are, in fact, a bi-product of the package (rpm) building. I collaborated with a few different package builders from Gentoo and SUSE when we quickly realized that the bugs weren't in official Songbird builds, but were in every Linux package build.

What's the problem you say? Sadly, it's the way Songbird is developed. You see, unlike many other open source project in the Linux world, Songbird is built much like a Windows app. Now, that could be because it started out as a Windows app to begin with, or just because that's the particular model that the developers choose to go with, but the fundamental issue is that Songbird acts as it's own universe instead of fitting into the various popular Linux models out there. Much like Windows apps, it is all inclusive and provides everything it needs.

So what the hell do I mean by that? In simple terms, Songbird mandates that all source code and dependencies come from the developers if we want a stable Songbird build. This means that they can apply patches wherever they see fit and make changes at any time to any code base Songbird needs. Good for them, bad for us. You see, Songbird has a huge laundry list of open source dependencies in order to build and run properly. Instead of conforming to those dependencies and working with them, Songbird devs patch and modify the the source of the deps as they see fit and then release their product. This means that in order to build a stable Songbird on your own or include Songbird in any of the major Linux distros out there, you need to get all 100+ MB of dependency source code from them and somehow fit it all sanely together, all the while hoping it even runs.

Why is this bad? This method also allows them to at any time say that any bugs or problems are the fault of the user if they didn't use the supplied dependency source. It also allows them to break standards and accepted policies in the major Linux distro communities. You see, all the packages Songbird needs to build and run in a distro such as Fedora already exist in Fedora! The problem is that they don't have all the third party patches Songbird devs have applied. There is no need to add tons of source when it is already present with industry standards, yet we are forced to because of custom patching. Of course, the Songbird devs attempt to upstream most of their patches, but in many cases, as we've recently found out, the patches haven't even been released yet, causing any builds of Songbird other than the official one to be missing critical code.

Most recently, this hit us with gstreamer. We eventually found out that bug 15401 was a result of not building against and having gstreamer 0.10.22 on your system. Not a big deal, but as it turns out, it is! Fedora 10, for example, is currently the most stable release of Fedora, a widely used and popular Linux distro. As it stands, Fedora 10 does not have support for gstreamer 0.10.22, only 0.10.21. This makes building and packaging Songbird 1.1.1 under Fedora 10 impossible without the bug. Until 0.10.22 is backported (if ever), Fedora 10 cannot officially run Songbird stably. This goes for SUSE as well.

It's all just very frustrating. Songbird devs are very good at constantly updating and releasing new versions, but in most cases in doing so they make distro adoption next to impossible. Each release must be carefully checked and verified as valid.

The purpose of this rant isn't to knock the devs on the job they're doing, on the contrary, I think Songbird and the devs have done an outstanding job. I've received much help from them many times. However, it would be nice to see more cooperation with the Linux distro communities, and less focus on their binary blob product. I currently find myself bashing my head against the wall every time they release a new version and I have to try black magic to get a stable Fedora build. Constantly referring to your own home built binaries as proof that there are no issues is not the way to go and doesn't speak much for your product. Songbird needs to fit in with the rest of the existing open source community and needs to be stable with community builds, not just a huge tarball of spooky developer supplied code.

Soon there will come a time when Songbird is officially accepted into major distros and there are official packages, but until then frustrations are going to come out with each release. Check out Toni, the SUSE maintainer's rant over here. I'm not as frustrated as that, bit I can definitely sympathize.

For now, the Fedora release are moving along. Fedora 10 is going to be some work for you, but at least Fedora 11 is ready to go.

As always you can get the rpm's plus some disclaimers over at the Songbird Contributed Builds page.

Also, as I've said before, if you want up to the minute updates you should follow the Fedora Songbird thread over here.

Good luck!

Reply

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters (without spaces) shown in the image.