mirror of
https://github.com/owntone/owntone-server.git
synced 2025-11-07 04:42:58 -05:00
Remove FreeBSD/OSS4 hacks and add FreeBSD 10.1 install and startup helper scripts (issue #94)
This commit is contained in:
143
scripts/freebsd_install_10.1.sh
Executable file
143
scripts/freebsd_install_10.1.sh
Executable file
@@ -0,0 +1,143 @@
|
||||
#!/bin/sh
|
||||
# Credit thorsteneckel who made the how-to that is the basis for this
|
||||
# script, see https://gist.github.com/thorsteneckel/c0610fb415c8d0486bce
|
||||
|
||||
echo "This script will install forked-daapd in FreeBSD 10.1. The script is not"
|
||||
echo "very polished, so you might want to look through it before running it."
|
||||
read -p "Continue? [y/N] " yn
|
||||
if [ "$yn" != "y" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
DEPS="gmake autoconf automake libtool gettext gperf glib pkgconf wget git \
|
||||
ffmpeg libconfuse libevent2 mxml libgcrypt libunistring libiconv \
|
||||
libplist avahi sqlite3"
|
||||
echo "The script can install the following dependency packages for you:"
|
||||
echo $DEPS
|
||||
read -p "Should the script install these packages? [y/N] " yn
|
||||
if [ "$yn" == "y" ]; then
|
||||
sudo pkg install $DEPS;
|
||||
fi
|
||||
|
||||
JRE="openjdk8-jre"
|
||||
read -p "Should the script install $JRE for you? [y/N] " yn
|
||||
if [ "$yn" == "y" ]; then
|
||||
sudo pkg install $JRE;
|
||||
read -p "Should the script add the mount points to /etc/fstab that $JRE requests? [y/N] " yn
|
||||
if [ "$yn" == "y" ]; then
|
||||
sudo sh -c 'echo "fdesc /dev/fd fdescfs rw 0 0" >> /etc/fstab'
|
||||
sudo sh -c 'echo "proc /proc procfs rw 0 0" >> /etc/fstab'
|
||||
sudo mount /dev/fd
|
||||
sudo mount /proc
|
||||
fi
|
||||
fi
|
||||
|
||||
WORKDIR=~/forked-daapd_build
|
||||
CONFIG=/usr/local/etc/forked-daapd.conf
|
||||
read -p "Should the script create $WORKDIR and use it for building? [Y/n] " yn
|
||||
if [ "$yn" == "n" ]; then
|
||||
exit
|
||||
fi
|
||||
mkdir -p $WORKDIR
|
||||
if [ ! -d $WORKDIR ]; then
|
||||
echo "Error creating $WORKDIR"
|
||||
exit
|
||||
fi
|
||||
cd $WORKDIR
|
||||
|
||||
read -p "Should the script install libavl, antlr and libantlr3c? [y/N] " yn
|
||||
if [ "$yn" == "y" ]; then
|
||||
wget http://ftp.debian.org/debian/pool/main/liba/libavl/libavl_0.3.5.orig.tar.gz
|
||||
wget --no-check-certificate https://github.com/antlr/website-antlr3/raw/gh-pages/download/antlr-3.4-complete.jar
|
||||
wget --no-check-certificate https://github.com/antlr/website-antlr3/raw/gh-pages/download/C/libantlr3c-3.4.tar.gz
|
||||
|
||||
sudo mv antlr-3.4-complete.jar /usr/local/share/java
|
||||
printf "#!/bin/sh
|
||||
export CLASSPATH
|
||||
CLASSPATH=$CLASSPATH:/usr/local/share/java/antlr-3.4-complete.jar:/usr/share/java
|
||||
/usr/local/openjdk8-jre/bin/java org.antlr.Tool \$*
|
||||
" > antlr3
|
||||
chmod a+x antlr3
|
||||
sudo mv antlr3 /usr/local/bin
|
||||
|
||||
tar xzf libantlr3c-3.4.tar.gz
|
||||
cd libantlr3c-3.4
|
||||
./configure && gmake && sudo gmake install
|
||||
cd $WORKDIR
|
||||
|
||||
tar xzf libavl_0.3.5.orig.tar.gz
|
||||
cd avl-0.3.5
|
||||
sed -i -- 's/LIBRARIES/LIBRARY/g' GNUmakefile
|
||||
gmake && sudo gmake install
|
||||
cd $WORKDIR
|
||||
fi
|
||||
|
||||
read -p "Should the script build forked-daapd? [y/N] " yn
|
||||
if [ "$yn" == "y" ]; then
|
||||
git clone https://github.com/ejurgensen/forked-daapd.git
|
||||
cd forked-daapd
|
||||
|
||||
#Cleanup in case this is a re-run
|
||||
gmake clean
|
||||
git clean -f
|
||||
autoreconf -vi
|
||||
|
||||
#These should no longer be required, but if you run into trouble you can try enabling them
|
||||
#export CC=cc
|
||||
#export LIBUNISTRING_CFLAGS=-I/usr/include
|
||||
#export LIBUNISTRING_LIBS=-L/usr/lib
|
||||
#export ZLIB_CFLAGS=-I/usr/include
|
||||
#export ZLIB_LIBS=-L/usr/lib
|
||||
|
||||
export CFLAGS="-march=native -g -Ofast -pipe -I/usr/local/include -I/usr/include"
|
||||
export LDFLAGS="-L/usr/local/lib -L/usr/lib"
|
||||
./configure --build=i386-portbld-freebsd10.1 && gmake
|
||||
|
||||
read -p "Should the script install forked-daapd and add service startup scripts? [y/N] " yn
|
||||
if [ "$yn" == "y" ]; then
|
||||
if [ -f $CONFIG ]; then
|
||||
echo "Backing up old config file to $CONFIG.bak"
|
||||
sudo cp "$CONFIG" "$CONFIG.bak"
|
||||
fi
|
||||
sudo gmake install
|
||||
|
||||
sudo sed -i -- 's/\/var\/cache/\/usr\/local\/var\/cache/g' $CONFIG
|
||||
# Setup user and startup scripts
|
||||
echo "daapd::::::forked-daapd:/nonexistent:/usr/sbin/nologin:" | sudo adduser -w no -D -f -
|
||||
sudo chown -R daapd:daapd /usr/local/var/cache/forked-daapd
|
||||
if [ ! -f scripts/freebsd_start_10.1.sh ]; then
|
||||
echo "Could not find FreeBSD startup script"
|
||||
exit
|
||||
fi
|
||||
sudo cp scripts/freebsd_start_10.1.sh /usr/local/etc/rc.d/forked-daapd
|
||||
sudo chmod a+x /usr/local/etc/rc.d/forked-daapd
|
||||
|
||||
service forked-daapd enabled
|
||||
if [ $? -ne 0 ]; then
|
||||
sudo sh -c 'echo "forked_daapd_enable=\"YES\"" >> /etc/rc.conf'
|
||||
fi
|
||||
fi
|
||||
|
||||
cd $WORKDIR
|
||||
fi
|
||||
|
||||
read -p "Should the script enable and start dbus and avahi-daemon? [y/N] " yn
|
||||
if [ "$yn" == "y" ]; then
|
||||
service dbus enabled
|
||||
if [ $? -ne 0 ]; then
|
||||
sudo sh -c 'echo "dbus_enable=\"YES\"" >> /etc/rc.conf'
|
||||
fi
|
||||
sudo service dbus start
|
||||
|
||||
service avahi-daemon enabled
|
||||
if [ $? -ne 0 ]; then
|
||||
sudo sh -c 'echo "avahi_daemon_enable=\"YES\"" >> /etc/rc.conf'
|
||||
fi
|
||||
sudo service avahi-daemon start
|
||||
fi
|
||||
|
||||
read -p "Should the script (re)start forked-daapd and display the log output? [y/N] " yn
|
||||
if [ "$yn" == "y" ]; then
|
||||
sudo service forked-daapd restart
|
||||
tail -f /var/log/forked-daapd.log
|
||||
fi
|
||||
25
scripts/freebsd_start_10.1.sh
Normal file
25
scripts/freebsd_start_10.1.sh
Normal file
@@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
|
||||
# PROVIDE: forked-daapd
|
||||
# REQUIRE: avahi_daemon dbus
|
||||
|
||||
# Add the following lines to /etc/rc.conf to enable `forked-daapd':
|
||||
#
|
||||
# forked_daapd_enable="YES"
|
||||
# forked_daapd_flags="<set as needed>"
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name="forked_daapd"
|
||||
rcvar=`set_rcvar`
|
||||
|
||||
command="/usr/local/sbin/forked-daapd"
|
||||
command_args="-P /var/run/forked-daapd.pid"
|
||||
pidfile="/var/run/forked-daapd.pid"
|
||||
required_files="/usr/local/etc/forked-daapd.conf"
|
||||
|
||||
# read configuration and set defaults
|
||||
load_rc_config "$name"
|
||||
: ${forked_daapd_enable="NO"}
|
||||
|
||||
run_rc_command "$1"
|
||||
Reference in New Issue
Block a user