owntone-server/INSTALL

177 lines
6.5 KiB
Plaintext
Raw Normal View History

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
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
+ libiconv
2010-01-10 05:27:19 -05:00
2013-12-21 12:24:48 -05:00
Tools required:
- autotools-dev
- autoconf
- libtool
- gettext
- gawk
- gperf
2010-09-04 07:22:00 -04:00
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>
2011-06-02 15:57:29 -04:00
- libav 0.6+/0.7+ (or ffmpeg 0.5.1+)
from <http://libav.org/releases/>
- libconfuse
from <http://www.nongnu.org/confuse/>
2013-12-21 12:24:48 -05:00
- libevent 1.4 (** NOT libevent 2 **)
from <http://www.monkey.org/~provos/libevent/>
2009-06-12 06:15:52 -04:00
- 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>
2010-05-04 06:03:58 -04:00
- zlib
from <http://zlib.net/>
2010-08-29 09:58:22 -04:00
- 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).
2009-06-12 06:15:52 -04:00
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).
2009-06-12 06:15:52 -04:00
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.
2010-09-04 07:22:00 -04:00
Note about libav (ffmpeg)
-------------------------
2010-09-06 12:44:43 -04:00
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.
2010-09-06 12:44:43 -04:00
2013-12-21 12:24:48 -05:00
forked-daapd supports older versions of libav and ffmpeg, but for libav 0.8.x
is known to be working. If you use a new version of libav or ffmpeg you may
encounter issues with MP3 files with embedded artwork, as forked-daapd may
classify them as video files.
2010-09-06 12:44:43 -04:00
2010-09-04 07:22:00 -04:00
Building from the git tree
--------------------------
2013-12-21 12:24:48 -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>
<http://alioth.debian.org/~jblache/forked-daapd/>
2010-09-04 07:22:00 -04:00
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.
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.
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
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
# Short-Description: media server with support for RSP, DAAP, DACP and AirTunes
# 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
# like iTunes. It can also stream music to AirTunes devices,
# and it can be controlled by Apple Remote (and compatibles).
2010-09-04 07:22:00 -04:00
### END INIT INFO