Monthly Archive for June, 2011

forked-daapd: v0.17, libav 0.7, GCD codebase

forked-daapd v0.17 is out; the main purpose of this release is to add support for libav 0.7. There are also a few bugfixes that made it into this release, but nothing earth-shattering.

One More Thing…

You’ll notice an extra tarball and tag in this release, both marked 0.17gcd. With this release, the GCD (Grand Central Dispatch / libdispatch) codebase is making its debut.

libdispatch replaces libevent and allows for greater concurrency inside forked-daapd. This makes forked-daapd snappier, which shows when using Remote or a SoundBridge. The filescanner also benefits from this; it now scans several directories concurrently, reducing the time needed for a rescan by making better use of the machine resources.

Thanks to Mark Heily’s efforts on libdispatch/libkqueue/libpthread_workqueue over the past year, we now have a Linux version of libdispatch that works well enough to support forked-daapd.

This codebase will become the primary codebase for forked-daapd once the database performance issue will be fixed. After this point, the current libevent 1.4 codebase will be legacy and won’t see any further development (we’ll discuss bugfixes in due time).

This new codebase comes with new requirements:

  • the Clang compiler from the LLVM project is required, due to the use of the C Blocks extension that isn’t supported by GCC;
  • libdispatch, of course, is required;
  • libtre is a new dependency for concurrent regexps;
  • glibc 2.13+ is required, or any glibc version containing a fix for glibc BZ#10563.

libdispatch and its dependencies are available in Debian unstable; it’s best and easier to use whatever is in unstable, instead of mixing and matching the libdispatch/libkqueue/libpthread_workqueue versions until they all work together.

Due to platform support in Clang, the GCD codebase can only be built for and will only run on i386 and amd64, as far as Linux is concerned. Other architectures will have to wait until support for them is added to Clang. FreeBSD is untested and will probably require some modifications to work; recent enough versions of FreeBSD have a native pthread_workqueue implementation and do not need libpthread_workqueue.

Packages are available in experimental for Debian users; they’ll end up in unstable in a few weeks, before the libevent2 migration happens there.

Tarballs available at http://alioth.debian.org/~jblache/forked-daapd/ ; GPG signatures made with my Debian key F5D65169.

pommed v1.39: Linux 2.6.39 maintenance release

I’ve just released pommed v1.39 ; this is a maintenance release for Linux 2.6.39, following the renaming of the mbp_backlight driver to apple_backlight.