Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
9d2d616
commit 6afec6a
Showing
13 changed files
with
184 additions
and
162 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,120 +1,125 @@ | ||
FROM linuxserver/baseimage | ||
MAINTAINER sparklyballs <sparklyballs@linuxserver.io> | ||
|
||
ENV APTLIST="avahi-daemon libavahi-client3 libav-tools libantlr3c-3.2-0 \ | ||
libconfuse0 libgcrypt20 libgnutls28 libjson0 libmp3lame0 libprotobuf-c0 \ | ||
libmxml1 libplist1 libunistring0" | ||
|
||
ENV BUILD_APTLIST="antlr3 autoconf autotools-dev automake build-essential cmake gawk gettext git-core gperf \ | ||
libasound2-dev libantlr3c-dev libavahi-client-dev libavcodec-dev libavfilter-dev libavformat-dev \ | ||
libavutil-dev libconfuse-dev libgcrypt11-dev libgnutls28-dev libjson0-dev libplist-dev libprotobuf-c0-dev \ | ||
libreadline-dev libtool libunistring-dev libswscale-dev libmxml-dev zlib1g-dev" | ||
|
||
# set source versions | ||
ENV CURL_VER="7.47.1" LIBEVENT_VER="2.1.5-beta" TAGLIB_VER="1.9.1" SQLITE_VER="autoconf-3110000" | ||
|
||
# add excludes file | ||
ADD defaults/excludes /etc/dpkg/dpkg.cfg.d/excludes | ||
|
||
# install build dependencies | ||
RUN apt-get update && \ | ||
apt-get install $APTLIST \ | ||
$BUILD_APTLIST -qy && \ | ||
|
||
# fetch source code | ||
mkdir -p /tmp/curl /tmp/taglib /tmp/libevent /tmp/sqlite /tmp/spotify && \ | ||
curl -o /tmp/curl.tar.gz -L http://curl.haxx.se/download/curl-$CURL_VER.tar.gz && \ | ||
curl -o /tmp/taglib.tar.gz -L http://taglib.github.io/releases/taglib-$TAGLIB_VER.tar.gz && \ | ||
curl -o /tmp/libevent.tar.gz -L https://qa.debian.org/watch/sf.php/levent/libevent-$LIBEVENT_VER.tar.gz && \ | ||
curl -o /tmp/sqlite.tar.gz -L https://www.sqlite.org/2016/sqlite-$SQLITE_VER.tar.gz && \ | ||
curl -o /tmp/spotify_tar.gz -L https://developer.spotify.com/download/libspotify/libspotify-12.1.51-Linux-x86_64-release.tar.gz && \ | ||
tar xvf /tmp/curl.tar.gz -C /tmp/curl --strip-components=1 && \ | ||
tar xvf /tmp/taglib.tar.gz -C /tmp/taglib --strip-components=1 && \ | ||
tar xvf /tmp/libevent.tar.gz -C /tmp/libevent --strip-components=1 && \ | ||
tar xvf /tmp/sqlite.tar.gz -C /tmp/sqlite --strip-components=1 && \ | ||
tar xvf /tmp/spotify_tar.gz -C /tmp/spotify --strip-components=1 && \ | ||
git clone https://github.com/ejurgensen/forked-daapd.git /tmp/forked-daapd && \ | ||
|
||
# build curl package | ||
cd /tmp/curl && \ | ||
./configure \ | ||
--prefix=/usr \ | ||
--with-ssl \ | ||
--with-zlib && \ | ||
make && \ | ||
make install && \ | ||
|
||
# build taglib package | ||
cd /tmp/taglib && \ | ||
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_RELEASE_TYPE=Release . && \ | ||
make && \ | ||
make install && \ | ||
ldconfig && \ | ||
|
||
# build libevent package | ||
cd /tmp/libevent && \ | ||
./configure && \ | ||
make && \ | ||
make install && \ | ||
|
||
# build sqlite package | ||
cd /tmp/sqlite && \ | ||
sed -i '/^AM_CFLAGS =/ s/$/ -DSQLITE_ENABLE_UNLOCK_NOTIFY/' /tmp/sqlite/Makefile.in && \ | ||
sed -i '/^AM_CFLAGS =/ s/$/ -DSQLITE_ENABLE_UNLOCK_NOTIFY/' /tmp/sqlite/Makefile.am && \ | ||
./configure && \ | ||
make && \ | ||
make install && \ | ||
|
||
# build spotify | ||
cd /tmp/spotify && \ | ||
make install prefix=/usr && \ | ||
|
||
# configure and build forked-daapd | ||
cd /tmp/forked-daapd && \ | ||
autoreconf -i && \ | ||
./configure \ | ||
--enable-itunes \ | ||
--enable-mpd \ | ||
--enable-lastfm \ | ||
--enable-spotify \ | ||
--enable-chromecast \ | ||
--prefix=/app \ | ||
--sysconfdir=/etc \ | ||
--localstatedir=/var && \ | ||
make && \ | ||
make install && \ | ||
cd / && \ | ||
|
||
# clean build dependencies | ||
apt-get purge --remove \ | ||
$BUILD_APTLIST -y && \ | ||
apt-get -y autoremove && \ | ||
|
||
# install runtime dependencies | ||
apt-get update -q && \ | ||
apt-get install \ | ||
$APTLIST -qy && \ | ||
FROM lsiobase/alpine | ||
MAINTAINER sparklyballs | ||
|
||
# package version | ||
ARG FORKED_DAAPD_NAME="forked-daapd" | ||
ARG FORKED_DAAPD_VER="24.1" | ||
|
||
# environment settings | ||
ARG ALL_SRC="/tmp/source" | ||
ARG ANTLR_WWW="http://www.antlr3.org/download/antlr-3.4-complete.jar" | ||
ARG FORKED_DAAPD_SRC="${ALL_SRC}/${FORKED_DAAPD_NAME}-${FORKED_DAAPD_VER}" | ||
ARG FORKED_DAAPD_WWW="https://github.com/ejurgensen/forked-daapd/archive/${FORKED_DAAPD_VER}.tar.gz" | ||
|
||
# install build packages | ||
RUN \ | ||
apk add --no-cache --virtual=build-dependencies \ | ||
alsa-lib-dev \ | ||
autoconf \ | ||
automake \ | ||
avahi-dev \ | ||
bash \ | ||
bsd-compat-headers \ | ||
confuse-dev \ | ||
curl \ | ||
curl-dev \ | ||
ffmpeg-dev \ | ||
file \ | ||
flac-dev \ | ||
g++ \ | ||
gcc \ | ||
gettext-dev \ | ||
gnutls-dev \ | ||
gperf \ | ||
json-c-dev \ | ||
libcurl \ | ||
libevent-dev \ | ||
libgcrypt-dev \ | ||
libogg-dev \ | ||
libplist-dev \ | ||
libtool \ | ||
libunistring-dev \ | ||
make \ | ||
openjdk8-jre-base \ | ||
protobuf-c-dev \ | ||
sqlite-dev \ | ||
taglib-dev \ | ||
tar && \ | ||
apk add --no-cache --virtual=build-dependencies2 \ | ||
--repository http://nl.alpinelinux.org/alpine/edge/testing \ | ||
libantlr3c-dev \ | ||
libavl-dev \ | ||
mxml-dev && \ | ||
|
||
# make folders and antlr wrapper | ||
mkdir -p \ | ||
"${FORKED_DAAPD_SRC}" && \ | ||
echo \ | ||
"#!/bin/bash" > "${ALL_SRC}/antlr3" && \ | ||
echo \ | ||
"exec java -cp $ALL_SRC/antlr-3.4-complete.jar org.antlr.Tool \"\$@\"" >> "${ALL_SRC}/antlr3" && \ | ||
chmod a+x "${ALL_SRC}/antlr3" && \ | ||
|
||
# fetch source | ||
curl -o \ | ||
"${ALL_SRC}/antlr-3.4-complete.jar" -L \ | ||
"${ANTLR_WWW}" && \ | ||
curl -o \ | ||
"${ALL_SRC}/${FORKED_DAAPD_NAME}-${FORKED_DAAPD_VER}.tar.gz" -L \ | ||
"${FORKED_DAAPD_WWW}" && \ | ||
tar xf "${ALL_SRC}/${FORKED_DAAPD_NAME}-${FORKED_DAAPD_VER}.tar.gz" -C \ | ||
"${FORKED_DAAPD_SRC}" --strip-components=1 && \ | ||
|
||
# configure and compile source | ||
export PATH="$ALL_SRC:$PATH" && \ | ||
cd "${FORKED_DAAPD_SRC}" && \ | ||
autoreconf -i -v && \ | ||
./configure \ | ||
--build=$CBUILD \ | ||
--enable-chromecast \ | ||
--enable-itunes \ | ||
--enable-lastfm \ | ||
--enable-mpd \ | ||
--host=$CHOST \ | ||
--infodir=/usr/share/info \ | ||
--localstatedir=/var \ | ||
--mandir=/usr/share/man \ | ||
--prefix=/app \ | ||
--sysconfdir=/etc && \ | ||
make && \ | ||
make install && \ | ||
cp /etc/forked-daapd.conf /etc/forked-daapd.conf.orig && \ | ||
|
||
# cleanup | ||
apt-get clean && rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/* | ||
|
||
# Adding Custom files | ||
ADD init/ /etc/my_init.d/ | ||
ADD services/ /etc/service/ | ||
RUN chmod -v +x /etc/service/*/run /etc/my_init.d/*.sh && \ | ||
|
||
# tweak config for forked-daapd | ||
mv /etc/forked-daapd.conf /defaults/forked-daapd.conf && \ | ||
sed -i -e 's/\(uid.*=\).*/\1 \"abc\"/g' /defaults/forked-daapd.conf && \ | ||
sed -i s#"My Music on %h"#"LS.IO Music"#g /defaults/forked-daapd.conf && \ | ||
sed -i s#"ipv6 = yes"#"ipv6 = no"#g /defaults/forked-daapd.conf && \ | ||
sed -i s#/srv/music#/music#g /defaults/forked-daapd.conf && \ | ||
sed -i s#/var/cache/forked-daapd/songs3.db#/config/dbase_and_logs/songs3.db#g /defaults/forked-daapd.conf && \ | ||
sed -i s#/var/cache/forked-daapd/cache.db#/config/dbase_and_logs/cache.db#g /defaults/forked-daapd.conf && \ | ||
sed -i s#/var/log/forked-daapd.log#/config/dbase_and_logs/forked-daapd.log#g /defaults/forked-daapd.conf && \ | ||
sed -i "/db_path\ =/ s/# *//" /defaults/forked-daapd.conf && \ | ||
sed -i "/cache_path\ =/ s/# *//" /defaults/forked-daapd.conf | ||
|
||
# set volumes | ||
apk del --purge \ | ||
build-dependencies \ | ||
build-dependencies2 && \ | ||
rm -rf \ | ||
/tmp/* | ||
|
||
# install runtime packages | ||
RUN \ | ||
apk add --no-cache \ | ||
avahi \ | ||
confuse \ | ||
dbus \ | ||
ffmpeg \ | ||
json-c \ | ||
libcurl \ | ||
libevent \ | ||
libgcrypt \ | ||
libplist \ | ||
libunistring \ | ||
protobuf-c \ | ||
sqlite \ | ||
sqlite-libs && \ | ||
apk add --no-cache \ | ||
--repository http://nl.alpinelinux.org/alpine/edge/testing \ | ||
libantlr3c \ | ||
mxml | ||
|
||
# copy local files | ||
COPY root/ / | ||
|
||
# ports and volumes | ||
VOLUME /config /music | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#!/usr/bin/with-contenv bash | ||
|
||
[[ -e /var/run/dbus.pid ]] && rm -f /var/run/dbus.pid | ||
|
||
dbus-uuidgen --ensure | ||
sleep 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
#!/usr/bin/with-contenv bash | ||
|
||
# configure defaults copy of conf | ||
if [ ! -e "/defaults/forked-daapd.conf" ]; then | ||
cp /etc/forked-daapd.conf.orig /defaults/forked-daapd.conf | ||
sed -i -e 's/\(uid.*=\).*/\1 \"abc\"/g' /defaults/forked-daapd.conf | ||
sed -i s#"My Music on %h"#"LS.IO Music"#g /defaults/forked-daapd.conf | ||
sed -i s#"ipv6 = yes"#"ipv6 = no"#g /defaults/forked-daapd.conf | ||
sed -i s#/srv/music#/music#g /defaults/forked-daapd.conf | ||
sed -i s#/var/cache/forked-daapd/songs3.db#/config/dbase_and_logs/songs3.db#g /defaults/forked-daapd.conf | ||
sed -i s#/var/cache/forked-daapd/cache.db#/config/dbase_and_logs/cache.db#g /defaults/forked-daapd.conf | ||
sed -i s#/var/log/forked-daapd.log#/config/dbase_and_logs/forked-daapd.log#g /defaults/forked-daapd.conf | ||
sed -i "/db_path\ =/ s/# *//" /defaults/forked-daapd.conf | ||
sed -i "/cache_path\ =/ s/# *//" /defaults/forked-daapd.conf | ||
fi | ||
|
||
# symlink conf to /conf | ||
[[ ! -f /config/forked-daapd.conf ]] && cp /defaults/forked-daapd.conf /config/forked-daapd.conf | ||
[[ ! -L /etc/forked-daapd.conf && -f /etc/forked-daapd.conf ]] && rm /etc/forked-daapd.conf | ||
[[ ! -L /etc/forked-daapd.conf ]] && ln -s /config/forked-daapd.conf /etc/forked-daapd.conf | ||
|
||
# make folders and set permissions | ||
mkdir -p /config/dbase_and_logs /daapd-pidfolder | ||
chown -R abc:abc /config /daapd-pidfolder /app | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/usr/bin/with-contenv bash | ||
|
||
until [[ -e /var/run/dbus/system_bus_socket ]]; do | ||
sleep 1s | ||
done | ||
|
||
echo "Starting Avahi daemon" | ||
exec avahi-daemon --no-chroot |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#!/usr/bin/with-contenv bash | ||
|
||
echo "Starting dbus-daemon" | ||
exec dbus-daemon --system --nofork | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
#!/usr/bin/with-contenv bash | ||
|
||
exec s6-setuidgid abc /app/sbin/forked-daapd -f -P /daapd-pidfolder/forked-daapd.pid | ||
|
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.