On Fri, Jan 19, 2024 at 01:08:37AM +0000, Klemens Nanni wrote: > Config may contain passwords, but is world-readable. > I'd say /etc/ files are usually root-owned as well: > > -rw-r--r-- 1 _shairport _shairport 23340 Jan 19 01:24 > /etc/shairport-sync.conf > > Fix it in PLIST; daemon user's home ownership/permissions stay the same: > > -rw-r----- 1 root _shairport 23340 Jan 19 01:53 > /etc/shairport-sync.conf > drwxr-xr-x 3 _shairport _shairport 512 Jan 19 01:56 > /var/spool/shairport-sync/ > > > Paul mentioned shairpoint-sync's instructions as reply to spotifyd, > where I went with less repitition and more precise instructions. > > I suggest syncing with that so copy/paste after install just works. > Playback on amd64 from an iPhone works for me without further config. > > (Pausing on the remote device crashes the daemon, but that's not news > and we're due updating our port, anyways.) > > Feedback? OK?
Rebased after the pause crash fix went in. Index: Makefile =================================================================== RCS file: /cvs/ports/audio/shairport-sync/Makefile,v diff -u -p -r1.4 Makefile --- Makefile 22 Jan 2024 01:40:28 -0000 1.4 +++ Makefile 22 Jan 2024 01:41:44 -0000 @@ -3,7 +3,7 @@ COMMENT = AirPlay audio player GH_ACCOUNT = mikebrady GH_PROJECT = shairport-sync GH_TAGNAME = 3.3.9 -REVISION = 2 +REVISION = 3 SITES.fix = https://github.com/mikebrady/shairport-sync/commit/ # "avoid recursive mutex acquisition in sndio backend" to fix crash on pause @@ -35,6 +35,9 @@ CONFIGURE_ARGS += --with-ssl=openssl \ --with-sndio \ --with-os=openbsd FAKE_FLAGS = sysconfdir=${PREFIX}/share/examples/shairport-sync + +HOME_DIR = ${LOCALSTATEDIR}/spool/${PKGSTEM} +SUBST_VARS = HOME_DIR post-install: mv ${PREFIX}/man/man7/shairport-sync.7 \ Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/audio/shairport-sync/pkg/PLIST,v diff -u -p -r1.2 PLIST --- pkg/PLIST 1 May 2022 14:00:13 -0000 1.2 +++ pkg/PLIST 22 Jan 2024 01:41:44 -0000 @@ -1,12 +1,17 @@ @newgroup _shairport:876 -@newuser _shairport:876:876::Shairport-sync Account:/var/spool/shairport-sync:/sbin/nologin +@newuser _shairport:876:876::Shairport-sync Account:${HOME_DIR}:/sbin/nologin @rcscript ${RCDIR}/shairport_sync +@owner _shairport +@group _shairport +@sample ${HOME_DIR}/ +@extraunexec rm -rf ${HOME_DIR} +@owner +@group @bin bin/shairport-sync @man man/man1/shairport-sync.1 share/doc/pkg-readmes/${PKGSTEM} share/examples/shairport-sync/ share/examples/shairport-sync/shairport-sync.conf -@owner _shairport +@mode 0640 @group _shairport @sample ${SYSCONFDIR}/shairport-sync.conf -@sample /var/spool/shairport-sync/ Index: pkg/README =================================================================== RCS file: /cvs/ports/audio/shairport-sync/pkg/README,v diff -u -p -r1.2 README --- pkg/README 1 May 2022 14:00:13 -0000 1.2 +++ pkg/README 22 Jan 2024 01:41:44 -0000 @@ -8,16 +8,7 @@ boot time, the rc.conf.local(8) pkg_scri rcctl enable messagebus avahi_daemon shairport_sync rcctl order messagebus avahi_daemon shairport_sync -sndiod(8) concurrent access by shairport-sync(1) and other users -================================================================ +Follow sndio(7) Authentication if both dedicated and your own user shall be +able to play audio at the same time, e.g. on a desktop system: -sndiod(8) normally only allows access to audio by a single system user -at a time. This is done by generating a random authentication token and -storing it in $HOME/.sndio/cookie when a user first accesses audio, -providing a limited capability to share with other users by copying -the token to their home directory. See AUTHENTICATION in sndio(7) for -more details. - -If you want to share sndiod(8) access with shairport-sync(1) running as -the default _shairport user, you may copy .sndio/cookie from your user's -home directory to /var/spool/shairport/.sndio/cookie. + install -D -p -o _shairport -m 0600 ~/.sndio/cookie ${HOME_DIR}/.sndio/cookie Index: pkg/shairport_sync.rc =================================================================== RCS file: /cvs/ports/audio/shairport-sync/pkg/shairport_sync.rc,v diff -u -p -r1.1.1.1 shairport_sync.rc --- pkg/shairport_sync.rc 27 Apr 2022 02:19:25 -0000 1.1.1.1 +++ pkg/shairport_sync.rc 22 Jan 2024 01:41:44 -0000 @@ -6,4 +6,5 @@ daemon_user="_shairport" . /etc/rc.d/rc.subr rc_bg=YES + rc_cmd $1