0 Installing on MacOS (14.7)
LordMyschkin edited this page 2024-09-10 23:29:14 +02:00

This is a Torso - I did NOT succeed to install owntone to MacOS Sonoma, but this may be due to my rather large library. So if you have more than about 25.000 files in your library, maybe settle with MacOS Music or mpd.

Most of the steps can be read out of the workflow file in ./github/workflows/macOS.yaml here are the steps:

  • install prerequisites:
        brew install gperf bison flex
        sudo ln -s "$(brew --prefix)/opt/bison/bin/bison" /usr/local/bin/bison
        sudo ln -s "$(brew --prefix)/opt/flex/bin/flex" /usr/local/bin/flex
  • install and make libnotify-kqueue:
        git clone https://github.com/libinotify-kqueue/libinotify-kqueue
        cd libinotify-kqueue
        autoreconf -fvi
        ./configure
        make
        sudo make install
        cd ..
  • Install other dependencies:
        brew install libunistring confuse libplist libwebsockets libevent libgcrypt json-c protobuf-c libsodium gnutls pulseaudio openssl ffmpeg sqlite
  • Configure (a nonprivileged setup):
        export CFLAGS="-I$(brew --prefix)/include -I$(brew --prefix sqlite)/include"
        export LDFLAGS="-L$(brew --prefix)/lib -L$(brew --prefix sqlite)/lib"
        autoreconf -fi
        ./configure --prefix=$HOME/owntone_data/usr --sysconfdir=$HOME/owntone_data/etc --localstatedir=$HOME/owntone_data/var --enable-chromecast --with-pulseaudio
  • Make and Install Here, I had some problems - make did not find m4, automatic install did not work. Only method to get it to work was to install xcode command line tools after downloading it "by hand" (so NOT autmatically) from https://developer.apple.com/download/all/
make
make install
  • Prepare config for test run
        mkdir -p $HOME/owntone_data/media
        sed -i '' 's/uid = "owntone"/uid = ${USER}/g' $HOME/owntone_data/etc/owntone.conf
        sed -i '' 's/loglevel = log/loglevel = debug/g' $HOME/owntone_data/etc/owntone.conf
        sed -i '' 's/directories = { "\/srv\/music" }/directories = { "${HOME}\/owntone_data\/media" }/g' $HOME/owntone_data/etc/owntone.conf
  • Test run
        $HOME/owntone_data/usr/sbin/owntone -f -t