Skip to content

Installing Owtone Server from Github in Solus OS 4.3

LordMyschkin edited this page Apr 15, 2023 · 4 revisions

Just in case anyone else tries to install owntone-server in a fresh Solus OS installation, I wrote the steps here; I tried various ways to set up an owntone server on a macbooc air from 2010. I want it to be able to connect to a Bluetooth speaker, pausing playback when closing the lid and restarting when reopening it. I did not achieve this by antix and various ubuntu flavours; suprisingly, Solus does the trick with very minor flaws. I hope I can reduce mileage for anyone who tries a similar project;

First install required dependecies:

cd /home/USER/
mkdir src
cd src
eopkg install -c  system.devel
eopkg install gperf gettext-devel libunistring-devel mxml-devel libevent-devel avahi-devel  alsa-lib-devel ffmpeg-devel libplist-devel 
libsodium-devel json-c-devel  sqlite3-devel pulseaudio-32bit-devel libconfuse-devel curl-devel protobuf-c-devel git`

than, clone from github and install antlr35

git clone https://github.com/owntone/owntone-server.git
cd owntone-server/
#now lets install antlr
scripts/antlr35_install.sh

install websockets from source since there seems to be no libwebsockets-devel in Solus

cd ..
git clone https://libwebsockets.org/repo/libwebsockets
cd libwebsockets/
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr .
make install

install java and link it to bin to make it executable

eopkg install openjdk-11
ln -s /usr/lib/openjdk-11/bin/java /usr/bin/java

now lets start the compile; I do not use spotify, so i disabled it

cd ../owntone-server
autoreconf -i
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-pulseaudio --without-spotify
make
make install

solus has an unusual location for systemd service files

 cp owntone.service /etc/systemd/system

enable the service, but do not start it yet

 systemctl enable owntone.service

handle user rights

 useradd owntone -d /var/cache/owntone -g audio
 chown -R owntone /var/cache/owntone

than set up pulseaudio

usermod  -aG pulse,pulse-access,audio owntone
mkdir /etc/pulse
cp /usr/share/pulseaudio/default.pa /etc/pulse/default.pa

now we change config for pulseaudio - i am not able to do it completely by sed, so it has to be done manually. in the file /setc/owntone.conf activate pulseaudio _change "type" = "alsa"" by type = "pulseaudio" and _"server" = "localhost", but the latter, I do not know how to do it in sed.

 sed -i "/type =/s/alsa/pulseaudio/g" /etc/owntone.conf 
 sed -i "/type =/s/#//g" /etc/owntone.conf 

# I just do not know how to escape in sed # sed -i "/server =/s/[""]/["localhost"]/g" /etc/owntone.conf

 sed -i "/server =/s/#//g" /etc/owntone.conf 

now start the pluma editor and edit owntone.conf (music directory and "server"="localhost" in audio)

 pluma /etc/owntone.conf &

insert local server allowance into pulseaudio config load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 in the file /etc/pulse/default.pa

 echo "load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1" >> /etc/pulse/default.pa 

now restart pulseaudio - BUT NOT AS ROOT

 su USER pulseaudio -k

you should have a working owntone service by now; only problem is I have to start owntone after pulseaudio user has logged in