Julien Blache: 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.