summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2023-06-15 03:28:16 +0000
committerJan Beich <jbeich@FreeBSD.org>2023-06-15 22:12:24 +0000
commit3bfa97870dbb2b3af241bb59aae978c6af7826b5 (patch)
tree03f0ff6ee128cd1eca084c6282417ca7b3f46ad0
parentdevel/ruby-build: Update to 20230615 (diff)
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)
-rw-r--r--multimedia/pipewire/Makefile12
-rw-r--r--multimedia/pipewire/files/10-alsa-default.conf.in23
-rw-r--r--multimedia/pipewire/pkg-plist1
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