diff --git a/.github/workflows/check_ap2_systemd_basic.yml b/.github/workflows/check_ap2_systemd_basic.yml new file mode 100644 index 00000000..f8919861 --- /dev/null +++ b/.github/workflows/check_ap2_systemd_basic.yml @@ -0,0 +1,36 @@ +name: Basic AP2 on systemd in build folder + +on: + push: + branches: [ "danger" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Install Dependencies + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev uuid-dev xxd + - name: Configure + run: | + mkdir build + cd build + autoreconf -i .. + ../configure --sysconfdir=/etc --with-alsa --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-airplay-2 + - name: Make + run: | + cd build + make -j + - name: Install + run: | + cd build + sudo make install + - name: Invoke + run: | + sudo systemctl start shairport-sync + - name: Terminate + run: | + sudo systemctl stop shairport-sync + diff --git a/.github/workflows/check_ap2_systemd_full.yml b/.github/workflows/check_ap2_systemd_full.yml new file mode 100644 index 00000000..c7e2bb83 --- /dev/null +++ b/.github/workflows/check_ap2_systemd_full.yml @@ -0,0 +1,32 @@ +name: Full AP2 on systemd build in place + +on: + push: + branches: [ "danger" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Install Dependencies + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libpulse-dev libsoundio-dev libsndio-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev uuid-dev xxd + - name: Configure + run: | + autoreconf -i + ./configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-jack --with-pa --with-pipe --with-sndio --with-soundio --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-dbus-interface --with-mpris-interface --with-mqtt-client --with-airplay-2 + - name: Make + run: | + make -j + - name: Install + run: | + sudo make install + - name: Invoke + run: | + sudo systemctl start shairport-sync + - name: Terminate + run: | + sudo systemctl stop shairport-sync + diff --git a/.github/workflows/check_ap2_systemd_full_build_folder.yml b/.github/workflows/check_ap2_systemd_full_build_folder.yml new file mode 100644 index 00000000..065ada59 --- /dev/null +++ b/.github/workflows/check_ap2_systemd_full_build_folder.yml @@ -0,0 +1,36 @@ +name: Full AP2 on systemd in build folder + +on: + push: + branches: [ "danger" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Install Dependencies + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libpulse-dev libsoundio-dev libsndio-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev uuid-dev xxd + - name: Configure + run: | + mkdir build + cd build + autoreconf -i .. + ../configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-jack --with-pa --with-pipe --with-sndio --with-soundio --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-dbus-interface --with-mpris-interface --with-mqtt-client --with-airplay-2 + - name: Make + run: | + cd build + make -j + - name: Install + run: | + cd build + sudo make install + - name: Invoke + run: | + sudo systemctl start shairport-sync + - name: Terminate + run: | + sudo systemctl stop shairport-sync + diff --git a/.github/workflows/check_ap2_systemv_full.yml b/.github/workflows/check_ap2_systemv_full.yml new file mode 100644 index 00000000..eee1b468 --- /dev/null +++ b/.github/workflows/check_ap2_systemv_full.yml @@ -0,0 +1,33 @@ +name: AP2 on System V in place + +on: + push: + branches: [ "danger" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Install Dependencies + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libdaemon-dev libconfig-dev libasound2-dev libao-dev libjack-dev libpulse-dev libsoundio-dev libsndio-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev uuid-dev xxd + - name: Configure + run: | + autoreconf -i + ./configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-libdaemon --with-jack --with-pa --with-pipe --with-sndio --with-soundio --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemv --with-dbus-interface --with-mpris-interface --with-mqtt-client --with-airplay-2 + - name: Make + run: | + make -j + - name: Install + run: | + sudo make install + - name: Invoke + run: | + sudo /etc/init.d/shairport-sync start + sleep 2 + - name: Terminate + run: | + sudo /etc/init.d/shairport-sync stop + diff --git a/.github/workflows/check_classic_mac_basic.yml b/.github/workflows/check_classic_mac_basic.yml new file mode 100644 index 00000000..9489f3fb --- /dev/null +++ b/.github/workflows/check_classic_mac_basic.yml @@ -0,0 +1,34 @@ +name: Classic on macOS with brew + +on: + push: + branches: [ "danger" ] + +jobs: + build: + + runs-on: macos-latest + + steps: + - uses: actions/checkout@v3 + - name: Install Dependencies + run: | + brew update + brew install automake + brew install openssl + brew install popt + brew install libconfig + brew install libao + + - name: Configure + run: | + export CPPFLAGS="-I/usr/local/opt/openssl@3/include" + export LDFLAGS="-L/usr/local/opt/openssl@3/lib" + export PATH="/usr/local/opt/openssl/bin:${PATH}" + export PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig" + autoreconf -fi + ./configure --with-os=darwin --with-ao --with-stdout --with-dns_sd --with-ssl=openssl + + - name: Make + run: | + make diff --git a/.github/workflows/check_classic_systemd_basic.yml b/.github/workflows/check_classic_systemd_basic.yml new file mode 100644 index 00000000..952c2daa --- /dev/null +++ b/.github/workflows/check_classic_systemd_basic.yml @@ -0,0 +1,36 @@ +name: Basic Classic on systemd + +on: + push: + branches: [ "danger" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Install Dependencies + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev + - name: Configure + run: | + mkdir build + cd build + autoreconf -i .. + ../configure --sysconfdir=/etc --with-alsa --with-soxr --with-avahi --with-ssl=openssl --with-systemd + - name: Make + run: | + cd build + make -j + - name: Install + run: | + cd build + sudo make install + - name: Invoke + run: | + sudo systemctl start shairport-sync + - name: Terminate + run: | + sudo systemctl stop shairport-sync + diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml new file mode 100644 index 00000000..c648aa76 --- /dev/null +++ b/.github/workflows/check_classic_systemd_full.yml @@ -0,0 +1,36 @@ +name: Classic on systemd in build folder + +on: + push: + branches: [ "danger" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Install Dependencies + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libpulse-dev libsoundio-dev libsndio-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev + - name: Configure + run: | + mkdir build + cd build + autoreconf -i .. + ../configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-jack --with-pa --with-pipe --with-sndio --with-soundio --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-dbus-interface --with-mpris-interface --with-mqtt-client + - name: Make + run: | + cd build + make -j + - name: Install + run: | + cd build + sudo make install + - name: Invoke + run: | + sudo systemctl start shairport-sync + - name: Terminate + run: | + sudo systemctl stop shairport-sync + diff --git a/Makefile.am b/Makefile.am index b681ed3e..1dc654cc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -267,9 +267,13 @@ if INSTALL_SYSTEMV INSTALL_SYSTEMV_TARGET = install-systemv-local +# watch out -- shairport-sync is created during the ./configure step and +# will be stored in a scripts folder in the _build_ folder +# which will be the source folder if you're not using a separate build folder + $(INSTALL_SYSTEMV_TARGET): scripts/shairport-sync $(INSTALL_USER_TARGET) install -d $(DESTDIR)$(sysconfdir)/init.d - [ -e $(DESTDIR)$(sysconfdir)/init.d/shairport-sync ] || install -m 0644 $(top_srcdir)/scripts/shairport-sync $(DESTDIR)$(sysconfdir)/init.d + [ -e $(DESTDIR)$(sysconfdir)/init.d/shairport-sync ] || install -m 0755 scripts/shairport-sync $(DESTDIR)$(sysconfdir)/init.d endif # INSTALL_SYSTEMV @@ -283,9 +287,13 @@ endif # USE_AVAHI INSTALL_SYSTEMD_TARGET = install-systemd-local +# watch out -- shairport-sync.service is created during the ./configure step and +# will be stored in a scripts folder in the _build_ folder +# which will be the source folder if you're not using a separate build folder + $(INSTALL_SYSTEMD_TARGET): scripts/$(SYSTEMD_SERVICE) $(INSTALL_USER_TARGET) install -d $(DESTDIR)$(systemdsystemunitdir) - [ -e $(DESTDIR)$(systemdsystemunitdir)/shairport-sync.service ] || install -m 0644 $(top_srcdir)/scripts/$(SYSTEMD_SERVICE) $(DESTDIR)$(systemdsystemunitdir)/shairport-sync.service + [ -e $(DESTDIR)$(systemdsystemunitdir)/shairport-sync.service ] || install -m 0644 scripts/$(SYSTEMD_SERVICE) $(DESTDIR)$(systemdsystemunitdir)/shairport-sync.service endif # INSTALL_SYSTEMD