Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| Installation instructions for forked-daapd | |
| ------------------------------------------ | |
| There are two ways to install forked-daapd: from a tarball or from the git | |
| tree. The tarball contains a working build system and pre-generated ANTLR3 | |
| parsers; the git tree doesn't and requires more tools to generate the build | |
| system and the ANTLR3 parsers. | |
| In both cases the installation procedure is the traditional ./configure; | |
| make; make install. Please read this file carefully before proceeding. | |
| System-specific requirements: | |
| - Linux: | |
| + glibc 2.13+ (bugfix: process-wide setgroups(), glibc BZ#10563) | |
| + libasound (ALSA sound support - or you can use OSS4) | |
| - FreeBSD: | |
| + OSS4 sound support | |
| + libiconv | |
| Tools: | |
| - The clang C compiler from the LLVM project. forked-daapd uses Blocks, | |
| an extension to the C language that is not supported by gcc. Along with | |
| clang, you'll also need the Blocks runtime, libblocksruntime. | |
| - pkg-config | |
| - gperf 3.x | |
| from <http://www.gnu.org/software/gperf/> | |
| Libraries: | |
| - libantlr3c (ANTLR3 C runtime, version 3.2 for tarball builds) | |
| from <http://www.antlr.org/download/C> | |
| - Avahi client libraries (avahi-client), 0.6.24 minimum | |
| from <http://avahi.org/> | |
| - sqlite3 3.5.0+ with unlock notify API enabled (read below) | |
| from <http://sqlite.org/download.html> | |
| - libav 0.6+/0.7+ (or ffmpeg 0.5.1+) | |
| from <http://libav.org/releases/> | |
| - libconfuse | |
| from <http://www.nongnu.org/confuse/> | |
| - libdispatch | |
| /!\ Read below | |
| - libtre | |
| from <http://laurikari.net/tre/download/> | |
| - libavl | |
| /!\ Read below | |
| - MiniXML (aka mxml or libmxml) | |
| from <http://minixml.org/software.php> | |
| - gcrypt 1.2.0+ | |
| from <http://gnupg.org/download/index.en.html#libgcrypt> | |
| - zlib | |
| from <http://zlib.net/> | |
| - libunistring 0.9.3+ | |
| from <http://www.gnu.org/software/libunistring/#downloading> | |
| - libflac (optional - FLAC support) | |
| from <http://flac.sourceforge.net/download.html> | |
| - taglib (optional - Musepack support) | |
| from <http://developer.kde.org/~wheeler/taglib.html> | |
| - libplist 0.16+ (optional - iTunes XML support) | |
| from <http://github.com/JonathanBeck/libplist/downloads> | |
| If using binary packages, remember that you need the development packages to | |
| build forked-daapd (usually named -dev or -devel). | |
| libdispatch for Linux and its dependencies can be found in the Debian archive; | |
| you need at least libdispatch from SVN rev 197 + Debian patches (Linux support), | |
| libkqueue 0.9.2 and libpthread_workqueue 0.7. At this time, it's probably | |
| easiest to use whatever versions happen to be in Debian unstable. | |
| libavl is not the GNU libavl. There doesn't seem to be an upstream website | |
| anymore, but you'll find the source tarball alongside the forked-daapd | |
| release tarballs (see below for the URL). Alternatively, you can fetch it from | |
| any Debian mirror, too (it'll be in /debian/pool/main/liba/libavl). | |
| sqlite3 needs to be built with support for the unlock notify API; this isn't | |
| always the case in binary packages, so you may need to rebuild sqlite3 to | |
| enable the unlock notify API (you can check for the presence of the | |
| sqlite3_unlock_notify symbol in the sqlite3 library). Refer to the sqlite3 | |
| documentation, look for SQLITE_ENABLE_UNLOCK_NOTIFY. | |
| Note about libav (ffmpeg) | |
| ------------------------- | |
| libav (ffmpeg) is a central piece of forked-daapd and most other FLOSS | |
| multimedia applications. The version of libav you use will potentially have a | |
| great influence on your experience with forked-daapd. | |
| The following versions of libav (ffmpeg) are supported and known to work: | |
| - ffmpeg 0.5.x: has issues with metadata (tags) extraction, notably with | |
| MP3 files and ID3 tags in general; | |
| - libav 0.6.x: known to work better with regard to metadata extraction; | |
| - libav 0.7.x: better yet | |
| Note that forked-daapd uses libav since the ffmpeg/libav fork during the | |
| 0.6.x series. | |
| Building from the git tree | |
| -------------------------- | |
| Gitweb: <http://git.debian.org/?p=users/jblache/forked-daapd.git> | |
| Git tree: <git://git.debian.org/users/jblache/forked-daapd.git> | |
| Required tools: | |
| - ANTLR v3 is required to build forked-daapd, along with its C runtime | |
| (libantlr3c). Use at least version 3.1.3 of ANTLR v3 and the matching | |
| C runtime version. | |
| - Java runtime: ANTLR is written in Java and as such a JRE is required to | |
| run the tool. The JRE is enough, you don't need a full JDK. | |
| - autotools: autoconf 2.63+, automake 1.10+, libtool 2.2. Run autoreconf -i | |
| at the top of the source tree to generate the build system. | |
| - gettext: libunistring requires iconv and gettext provides the autotools | |
| macro definitions for iconv. | |
| Start by generating the build system by running autoreconf -i. This will | |
| generate the configure script and Makefile.in. | |
| The configure script will look for a wrapper called antlr3 in the PATH to | |
| invoke ANTLR3. If your installation of ANTLR3 does not come with such a | |
| wrapper, create one as follows: | |
| #!/bin/sh | |
| CLASSPATH=... | |
| exec /path/to/java -cp $CLASSPATH org.antlr.Tool "@" | |
| Adjust the CLASSPATH as needed so that Java will find all the jars needed | |
| by ANTLR3. | |
| The parsers will be generated during the build, no manual intervention is | |
| needed. | |
| Building from the tarball | |
| ------------------------- | |
| Download URL: <http://alioth.debian.org/~jblache/forked-daapd/> | |
| When building forked-daapd from a release tarball, the usual ./configure; | |
| make; make install procedure applies. | |
| FLAC and Musepack support are optional. If not enabled, metadata extraction | |
| will fail on these files. | |
| Support for iTunes Music Library XML format is optional. Use --enable-itunes | |
| to enable this feature. | |
| Recommended build settings: | |
| ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-flac --enable-musepack | |
| After installation, edit the configuration file, /etc/forked-daapd.conf and | |
| adjust the values at your convenience. | |
| forked-daapd will drop privileges to any user you'll specify in the | |
| configuration file if it's started as root. It's recommended to create a | |
| dedicated user without login privileges. | |
| This user must have read permission on your library (you can create a group for | |
| this and make the user a member of the group, for instance) and read/write | |
| permissions on the database location ($localstatedir/cache/forked-daapd by | |
| default). | |
| You'll need an init script if you want to start forked-daapd at boot. A simple | |
| init script will do, forked-daapd daemonizes all by itself and creates a | |
| pidfile under /var/run. Different distributions have different standards for | |
| init scripts and some do not use init scripts anymore; check the documentation | |
| for your distribution. | |
| For dependency-based boot systems, here are the forked-daapd dependencies: | |
| - local filesystems | |
| - network filesystems, if needed in your setup (library on NFS, ...) | |
| - networking | |
| - NTP | |
| - Avahi daemon | |
| The LSB header below sums it up: | |
| ### BEGIN INIT INFO | |
| # Provides: forked-daapd | |
| # Required-Start: $local_fs $remote_fs $network $time avahi | |
| # Required-Stop: $local_fs $remote_fs $network $time | |
| # Default-Start: 2 3 4 5 | |
| # Default-Stop: 0 1 6 | |
| # Short-Description: media server with support for RSP, DAAP, DACP and AirTunes | |
| # Description: forked-daapd is an iTunes-compatible media server for | |
| # sharing your music library over the local network with RSP | |
| # clients like the SoundBridge from Roku and DAAP clients like | |
| # iTunes. It can also stream music to AirTunes devices. | |
| ### END INIT INFO |