]>
Commit | Line | Data |
---|---|---|
2e2d4261 | 1 | Shairport Sync on OpenBSD [AirPlay 2 Not Supported] |
a6d0f647 | 2 | ---- |
d66189ed | 3 | This is a note about installing Shairport Sync on OpenBSD. Shairport Sync compiles and runs natively on OpenBSD using the `sndio` back end. For general information on `sndio` please follow [this link](http://www.sndio.org). |
a6d0f647 | 4 | |
308ed719 | 5 | Unlike FreeBSD, it seems that OpenBSD does not use the directory `/usr/local/etc` as a system configuration directory ("`sysconfdir`") but follows the same practice as Linux in using `/etc` as the default `sysconfdir`. |
5e70a221 | 6 | |
a6d0f647 MB |
7 | General |
8 | ---- | |
f33a4e03 | 9 | This build was done on a default build of `OpenBSD 6.6 GENERIC.MP#5 amd64`. Following [this guide](https://www.openbsd.org/faq/faq15.html), `/etc/installurl` was created with the to refer to the standard repository: |
b77f9288 MB |
10 | ``` |
11 | https://ftp.openbsd.org/pub/OpenBSD | |
a6d0f647 | 12 | ``` |
2a14b922 | 13 | You might have a [closer or faster](https://www.openbsd.org/ftp.html) repository to use instead. |
9edf20d2 MB |
14 | |
15 | Next, although it may not always be necessary, apply any outstanding system updates and [update the packages](https://unix.stackexchange.com/questions/23579/how-to-apply-updates-on-openbsd-netbsd-and-freebsd). | |
16 | ||
17 | First, update the system: | |
18 | ``` | |
2a14b922 | 19 | # syspatch |
9edf20d2 MB |
20 | ``` |
21 | Now update the packages: | |
a6d0f647 | 22 | ``` |
b77f9288 | 23 | # pkg_add -Uu |
a6d0f647 | 24 | ``` |
b77f9288 | 25 | Install the Avahi subsystem ([search](https://www.openbsd.org/faq/faq15.html) using, for example, `# pkg_info -Q avahi`). |
a6d0f647 | 26 | ``` |
308ed719 | 27 | # pkg_add avahi |
a6d0f647 | 28 | ``` |
b77f9288 MB |
29 | A number of libraries will be installed to support Avahi, including the D-Bus system. |
30 | Enable the D-Bus and Avahi subsystems to [start automatically](http://openbsd-archive.7691.n7.nabble.com/starting-avahi-the-proper-way-td311612.html): | |
31 | ``` | |
32 | # rcctl enable messagebus avahi_daemon | |
33 | # rcctl start messagebus avahi_daemon | |
a6d0f647 MB |
34 | ``` |
35 | Building | |
36 | ---- | |
37 | ||
7ab8cd83 | 38 | Install the following packages (e.g. using `pkg_add` in superuser mode) needed to download and build Shairport Sync: |
b77f9288 | 39 | ``` |
9590d798 | 40 | # pkg_add autoconf automake popt libconfig git |
a6d0f647 | 41 | ``` |
f33a4e03 | 42 | Note the versions of `autoconf` and `automake` you choose (`2.69` and `1.16` at the time of writing) and add them as shell variable definitions for -- they could be placed in the user's `.profile` file to be automatically executed at login: |
b77f9288 MB |
43 | ``` |
44 | export AUTOCONF_VERSION=2.69 | |
f33a4e03 | 45 | export AUTOMAKE_VERSION=1.16 |
a6d0f647 MB |
46 | ``` |
47 | Now, download Shairport Sync from GitHub: | |
48 | ``` | |
49 | $ git clone https://github.com/mikebrady/shairport-sync.git | |
50 | $ cd shairport-sync | |
51 | ``` | |
9590d798 | 52 | Next, configure and compile shairport-sync: |
a6d0f647 | 53 | ``` |
9590d798 | 54 | $ autoreconf -fi |
3d89c688 MB |
55 | $ ./configure --sysconfdir=/etc --with-avahi --with-ssl=openssl --with-libdaemon \ |
56 | --with-sndio --with-os=openbsd | |
a6d0f647 MB |
57 | $ make |
58 | ``` | |
5e70a221 MB |
59 | The application is called `shairport-sync`. Check that it's running correctly by executing the following command: |
60 | ``` | |
9b2bd25c | 61 | $ ./shairport-sync -V |
5e70a221 MB |
62 | ``` |
63 | This will execute the application and it will return its version information and terminate, for example: | |
64 | ``` | |
f33a4e03 | 65 | 3.3.6-libdaemon-OpenSSL-Avahi-sndio-sysconfdir:/etc |
5e70a221 | 66 | ``` |
a6d0f647 MB |
67 | There is no make install yet -- you're on your own. |
68 | ||
69 | Using the `sndio` backend | |
70 | ---- | |
9edf20d2 | 71 | The `sndio` back end does not yet have a hardware volume control facility. |
a6d0f647 | 72 | You should set the volume to maximum before use, using, for example, the `mixerctl` command. |