Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Jun 2023 22:14:41 GMT
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-branches@FreeBSD.org
Subject:   git: 3bfa97870dbb - 2023Q2 - multimedia/pipewire: unbreak audio with default config
Message-ID:  <202306152214.35FMEf5U044425@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch 2023Q2 has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3bfa97870dbb2b3af241bb59aae978c6af7826b5

commit 3bfa97870dbb2b3af241bb59aae978c6af7826b5
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2023-06-15 03:28:16 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2023-06-15 22:12:24 +0000

    multimedia/pipewire: unbreak audio with default config
    
    $ pw-play foo.wav
    stream node 35 error: no node available
    remote error: id=2 seq:5 res:-2 (No such file or directory): no node available
    
    PR:             272004
    Approved by:    arrowd (maintainer)
    
    (cherry picked from commit a7aaffb08b1688f28121d1f12e8012fd40bf75e7)
---
 multimedia/pipewire/Makefile                      | 12 ++++++++++--
 multimedia/pipewire/files/10-alsa-default.conf.in | 23 +++++++++++++++++++++++
 multimedia/pipewire/pkg-plist                     |  1 +
 3 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/multimedia/pipewire/Makefile b/multimedia/pipewire/Makefile
index b0c05606bd4a..e50538617332 100644
--- a/multimedia/pipewire/Makefile
+++ b/multimedia/pipewire/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	pipewire
 DISTVERSION=	0.3.62
+PORTREVISION=	1
 CATEGORIES=	multimedia
 MASTER_SITES=	https://gitlab.freedesktop.org/pipewire/media-session/-/archive/${MEDIA_SESSION_VERSION}/:media_session
 DISTFILES=	media-session-${MEDIA_SESSION_VERSION}${EXTRACT_SUFX}:media_session
@@ -12,8 +13,7 @@ LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BUILD_DEPENDS=	v4l_compat>0:multimedia/v4l_compat
-LIB_DEPENDS=	libasound.so:audio/alsa-lib \
-		libdbus-1.so:devel/dbus \
+LIB_DEPENDS=	libdbus-1.so:devel/dbus \
 		libinotify.so:devel/libinotify \
 		libepoll-shim.so:devel/libepoll-shim \
 		libsndfile.so:audio/libsndfile \
@@ -42,9 +42,12 @@ MANPAGES_BUILD_DEPENDS=	rst2man:textproc/py-docutils
 MANPAGES_MESON_ENABLED=	man
 
 MEDIASESSION_DESC=		Session manager support
+MEDIASESSION_LIB_DEPENDS=	libasound.so:audio/alsa-lib
+MEDIASESSION_RUN_DEPENDS=	alsa-plugins>0:audio/alsa-plugins
 MEDIASESSION_MESON_ENABLED=	alsa pipewire-alsa
 MEDIASESSION_MESON_ON=		-Dsession-managers=media-session
 MEDIASESSION_MESON_OFF=		-Dsession-managers=''
+MEDIASESSION_SUB_FILES=		10-alsa-default.conf
 
 PULSEAUDIO_MESON_ENABLED=	avahi libpulse
 PULSEAUDIO_LIB_DEPENDS=		libpulse.so:audio/pulseaudio \
@@ -96,4 +99,9 @@ post-patch-MEDIASESSION-on:
 	@${REINPLACE_CMD} '/manager_args/ s/@sm_comment@//g' \
 		${WRKSRC}/src/daemon/pipewire.conf.in
 
+post-install-MEDIASESSION-on:
+	@${MKDIR} ${STAGEDIR}${ETCDIR}/${PORTNAME}.conf.d
+	${INSTALL_DATA} ${WRKDIR}/10-alsa-default.conf \
+		${STAGEDIR}${ETCDIR}/${PORTNAME}.conf.d
+
 .include <bsd.port.mk>
diff --git a/multimedia/pipewire/files/10-alsa-default.conf.in b/multimedia/pipewire/files/10-alsa-default.conf.in
new file mode 100644
index 000000000000..5a3878ff3cf8
--- /dev/null
+++ b/multimedia/pipewire/files/10-alsa-default.conf.in
@@ -0,0 +1,23 @@
+# Create sink and source for the default device
+# See also %%LOCALBASE%%/etc/asound.conf
+
+context.objects = [
+    { factory = adapter
+       args = {
+           factory.name           = api.alsa.pcm.sink
+           node.name              = "alsa-sink"
+           node.description       = "PCM Sink"
+           media.class            = "Audio/Sink"
+           api.alsa.path          = "pcm.default"
+       }
+    }
+    { factory = adapter
+       args = {
+           factory.name           = api.alsa.pcm.source
+           node.name              = "alsa-source"
+           node.description       = "PCM Source"
+           media.class            = "Audio/Source"
+           api.alsa.path          = "pcm.default"
+       }
+    }
+]
diff --git a/multimedia/pipewire/pkg-plist b/multimedia/pipewire/pkg-plist
index 9be512014740..58a537a2afa1 100644
--- a/multimedia/pipewire/pkg-plist
+++ b/multimedia/pipewire/pkg-plist
@@ -25,6 +25,7 @@ bin/spa-inspect
 bin/spa-json-dump
 bin/spa-monitor
 bin/spa-resample
+%%MEDIASESSION%%%%ETCDIR%%/pipewire.conf.d/10-alsa-default.conf
 include/pipewire-0.3/pipewire/array.h
 include/pipewire-0.3/pipewire/buffers.h
 include/pipewire-0.3/pipewire/client.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202306152214.35FMEf5U044425>