2009-06-12 06:15:52 -04:00
|
|
|
Installation instructions for forked-daapd
|
|
|
|
------------------------------------------
|
|
|
|
|
2013-12-21 12:24:48 -05:00
|
|
|
This document contains instructions for installing forked-daapd from the git
|
|
|
|
tree.
|
2009-06-12 06:15:52 -04:00
|
|
|
|
2014-02-03 17:03:43 -05:00
|
|
|
The source for this version of forked-daapd can be found here:
|
|
|
|
|
|
|
|
<https://github.com/ejurgensen/forked-daapd.git>
|
|
|
|
|
|
|
|
The original (now unmaintained) source can be found here:
|
|
|
|
|
|
|
|
<http://git.debian.org/?p=users/jblache/forked-daapd.git>
|
|
|
|
|
|
|
|
|
|
|
|
Quick version for Debian users
|
|
|
|
------------------------------
|
|
|
|
|
|
|
|
If you are the lucky kind, this should get you all the required tools and
|
|
|
|
libraries:
|
|
|
|
|
|
|
|
sudo apt-get install \
|
|
|
|
build-essential git autotools-dev autoconf libtool gettext gawk gperf \
|
|
|
|
antlr3 libantlr3c-dev libconfuse-dev libunistring-dev libsqlite3-dev \
|
|
|
|
libavcodec-dev libavformat-dev libswscale-dev libavutil-dev libasound2-dev \
|
|
|
|
libmxml-dev libgcrypt11-dev libavahi-client-dev libavl-dev libevent1-dev \
|
|
|
|
libflac-dev
|
|
|
|
|
|
|
|
Then run the following:
|
|
|
|
|
|
|
|
git clone https://github.com/ejurgensen/forked-daapd.git
|
|
|
|
cd forked-daapd
|
|
|
|
autoreconf -i
|
|
|
|
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-flac
|
|
|
|
make
|
|
|
|
sudo make install
|
|
|
|
|
|
|
|
Finally, read the bit in the bottom of this document about init scripts, read
|
|
|
|
the README, edit the configuration file and restart the server.
|
|
|
|
|
|
|
|
|
|
|
|
Long version - requirements
|
|
|
|
---------------------------
|
|
|
|
|
2010-04-04 08:35:29 -04:00
|
|
|
System-specific requirements:
|
2010-01-10 05:27:19 -05:00
|
|
|
- Linux:
|
|
|
|
+ glibc 2.9+ (for signalfd)
|
2010-04-04 08:35:29 -04:00
|
|
|
+ libasound (ALSA sound support - or you can use OSS4)
|
|
|
|
- FreeBSD:
|
|
|
|
+ OSS4 sound support
|
2010-06-21 11:50:09 -04:00
|
|
|
+ libiconv
|
2010-01-10 05:27:19 -05:00
|
|
|
|
2014-02-03 17:03:43 -05:00
|
|
|
|
|
|
|
Required tools:
|
|
|
|
- ANTLR v3 is required to build forked-daapd, along with its C runtime
|
|
|
|
(libantlr3c). Use a version between 3.1.3 and 3.4 of ANTLR v3 and the
|
|
|
|
matching C runtime version. Get it from <http://www.antlr3.org/>
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
|
2013-12-21 12:24:48 -05:00
|
|
|
- gperf
|
2014-02-03 17:03:43 -05:00
|
|
|
|
2010-09-04 07:22:00 -04:00
|
|
|
|
|
|
|
Libraries:
|
2014-02-03 17:03:43 -05:00
|
|
|
- libantlr3c (ANTLR3 C runtime, use the same version as antlr3)
|
|
|
|
from <https://github.com/antlr/website-antlr3/tree/gh-pages/download/C>
|
2010-09-06 13:26:47 -04:00
|
|
|
- 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>
|
2013-12-30 18:01:00 -05:00
|
|
|
- libav 0.6.x - 0.8.x (or ffmpeg 0.5.x - 0.10.x)
|
2011-06-02 15:07:53 -04:00
|
|
|
from <http://libav.org/releases/>
|
2010-09-06 13:26:47 -04:00
|
|
|
- libconfuse
|
|
|
|
from <http://www.nongnu.org/confuse/>
|
2013-12-21 12:24:48 -05:00
|
|
|
- libevent 1.4 (** NOT libevent 2 **)
|
2010-09-06 13:26:47 -04:00
|
|
|
from <http://www.monkey.org/~provos/libevent/>
|
2014-02-03 17:03:43 -05:00
|
|
|
- libavl 0.3.5
|
|
|
|
from <http://ftp.debian.org/debian/pool/main/liba/libavl>
|
2010-09-06 13:26:47 -04:00
|
|
|
- MiniXML (aka mxml or libmxml)
|
|
|
|
from <http://minixml.org/software.php>
|
2010-02-05 12:38:39 -05:00
|
|
|
- gcrypt 1.2.0+
|
2010-09-06 13:26:47 -04:00
|
|
|
from <http://gnupg.org/download/index.en.html#libgcrypt>
|
2010-05-04 06:03:58 -04:00
|
|
|
- zlib
|
2010-09-06 13:26:47 -04:00
|
|
|
from <http://zlib.net/>
|
2010-08-29 09:58:22 -04:00
|
|
|
- libunistring 0.9.3+
|
2010-09-06 13:26:47 -04:00
|
|
|
from <http://www.gnu.org/software/libunistring/#downloading>
|
2009-12-13 03:55:19 -05:00
|
|
|
- libflac (optional - FLAC support)
|
2010-09-06 13:26:47 -04:00
|
|
|
from <http://flac.sourceforge.net/download.html>
|
2009-12-13 03:55:19 -05:00
|
|
|
- taglib (optional - Musepack support)
|
2010-09-06 13:26:47 -04:00
|
|
|
from <http://developer.kde.org/~wheeler/taglib.html>
|
2009-12-13 03:54:04 -05:00
|
|
|
- libplist 0.16+ (optional - iTunes XML support)
|
2010-09-06 13:26:47 -04:00
|
|
|
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).
|
2009-06-12 06:15:52 -04:00
|
|
|
|
|
|
|
libavl is not the GNU libavl. There doesn't seem to be an upstream website
|
2014-02-03 17:03:43 -05:00
|
|
|
anymore, but you can fetch it from any Debian mirror.
|
2009-06-12 06:15:52 -04:00
|
|
|
|
2010-09-06 12:51:19 -04:00
|
|
|
sqlite3 needs to be built with support for the unlock notify API; this isn't
|
2010-09-06 12:54:26 -04:00
|
|
|
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.
|
2010-04-30 13:20:28 -04:00
|
|
|
|
2013-12-30 18:01:00 -05:00
|
|
|
libav (or ffmpeg) is a central piece of forked-daapd and most other FLOSS
|
2011-06-02 15:07:53 -04:00
|
|
|
multimedia applications. The version of libav you use will potentially have a
|
|
|
|
great influence on your experience with forked-daapd.
|
2010-09-06 12:44:43 -04:00
|
|
|
|
2013-12-30 18:01:00 -05:00
|
|
|
forked-daapd is known to be working with libav 0.8.x, but it also supports older
|
2014-01-09 16:58:58 -05:00
|
|
|
versions of libav and ffmpeg.
|
|
|
|
|
|
|
|
Embedded artwork is only supported if your version of forked-daapd is built
|
|
|
|
with libav 9+ or ffmpeg 0.11+.
|
2010-09-06 12:44:43 -04:00
|
|
|
|
|
|
|
|
2014-02-03 17:03:43 -05:00
|
|
|
Long version - building and installing
|
|
|
|
--------------------------------------
|
2010-09-04 07:22:00 -04:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2013-12-21 12:24:48 -05:00
|
|
|
To display the configure options run ./configure --help
|
2010-09-04 07:22:00 -04:00
|
|
|
|
2009-06-12 06:15:52 -04:00
|
|
|
FLAC and Musepack support are optional. If not enabled, metadata extraction
|
|
|
|
will fail on these files.
|
|
|
|
|
2009-11-28 05:01:22 -05:00
|
|
|
Support for iTunes Music Library XML format is optional. Use --enable-itunes
|
|
|
|
to enable this feature.
|
|
|
|
|
2009-06-12 06:15:52 -04:00
|
|
|
Recommended build settings:
|
2013-12-21 12:24:48 -05:00
|
|
|
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-flac
|
|
|
|
|
|
|
|
After configure run the usual make, and if that went well, sudo make install
|
2009-06-12 06:15:52 -04:00
|
|
|
|
2014-02-03 17:03:43 -05:00
|
|
|
|
|
|
|
Long version - after installation
|
|
|
|
---------------------------------
|
|
|
|
|
2009-06-12 06:15:52 -04:00
|
|
|
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
|
2013-12-21 12:24:48 -05:00
|
|
|
configuration file if it's started as root.
|
2010-09-04 07:22:00 -04:00
|
|
|
|
|
|
|
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).
|
2009-06-12 06:15:52 -04:00
|
|
|
|
|
|
|
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
|
2010-09-04 07:22:00 -04:00
|
|
|
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
|
2013-12-21 12:24:48 -05:00
|
|
|
# Required-Start: $local_fs $remote_fs $network $time
|
2010-09-04 07:22:00 -04:00
|
|
|
# Required-Stop: $local_fs $remote_fs $network $time
|
2013-12-21 12:24:48 -05:00
|
|
|
# Should-Start: avahi
|
2010-09-04 07:22:00 -04:00
|
|
|
# Default-Start: 2 3 4 5
|
|
|
|
# Default-Stop: 0 1 6
|
2014-02-07 16:10:40 -05:00
|
|
|
# Short-Description: media server with support for RSP, DAAP, DACP and AirPlay
|
2010-09-04 07:22:00 -04:00
|
|
|
# Description: forked-daapd is an iTunes-compatible media server for
|
2013-12-21 12:24:48 -05:00
|
|
|
# sharing your media library over the local network with RSP
|
|
|
|
# clients like the SoundBridge from Roku and DAAP clients
|
2014-02-07 16:10:40 -05:00
|
|
|
# like iTunes. It can also stream music to AirPlay devices,
|
2013-12-21 12:24:48 -05:00
|
|
|
# and it can be controlled by Apple Remote (and compatibles).
|
2010-09-04 07:22:00 -04:00
|
|
|
### END INIT INFO
|