summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Zabel <p.zabel@pengutronix.de>2021-11-26 16:49:34 +0100
committerMichael Olbrich <m.olbrich@pengutronix.de>2021-11-27 12:02:21 +0100
commit90cb7745825c21908f3bacd99f4deafbaefd0940 (patch)
tree31dca96a12f537642239d2b010e41e30f05d62cb
parentdf4236226aefd21ee90ea9331d0af0a988775ba4 (diff)
downloadptxdist-90cb7745825c21908f3bacd99f4deafbaefd0940.tar.gz
ptxdist-90cb7745825c21908f3bacd99f4deafbaefd0940.tar.xz
media-session: new package
Starting from PipeWire 0.3.39, pipewire-media-session was split out into its own standalone package. Include a backported patch to fix build with systemd system service enabled. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Message-Id: <20211126154934.2091313-2-p.zabel@pengutronix.de> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--patches/media-session-0.4.1/0001-meson-remove-session-managers-option-check.patch32
-rw-r--r--patches/media-session-0.4.1/series1
-rw-r--r--rules/media-session.in32
-rw-r--r--rules/media-session.make94
4 files changed, 159 insertions, 0 deletions
diff --git a/patches/media-session-0.4.1/0001-meson-remove-session-managers-option-check.patch b/patches/media-session-0.4.1/0001-meson-remove-session-managers-option-check.patch
new file mode 100644
index 000000000..7def21649
--- /dev/null
+++ b/patches/media-session-0.4.1/0001-meson-remove-session-managers-option-check.patch
@@ -0,0 +1,32 @@
+From dfa740175c83e1cd0d815ad423f90872de566437 Mon Sep 17 00:00:00 2001
+From: James Hilliard <james.hilliard1@gmail.com>
+Date: Wed, 10 Nov 2021 08:54:06 -0700
+Subject: [PATCH] meson: remove session-managers option check.
+
+This option no longer exists and causes a build failure if building
+with the systemd system service enabled.
+---
+ systemd/system/meson.build | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/systemd/system/meson.build b/systemd/system/meson.build
+index ab0d49064986..0e9885b0f39f 100644
+--- a/systemd/system/meson.build
++++ b/systemd/system/meson.build
+@@ -4,9 +4,7 @@ systemd_system_services_dir = systemd.get_variable(pkgconfig: 'systemdsystemunit
+ systemd_config = configuration_data()
+ systemd_config.set('PW_MEDIA_SESSION_BINARY', media_session_bindir / 'pipewire-media-session')
+
+-if get_option('session-managers').contains('media-session')
+- configure_file(input : 'pipewire-media-session.service.in',
+- output : 'pipewire-media-session.service',
+- configuration : systemd_config,
+- install_dir : systemd_system_services_dir)
+-endif
++configure_file(input : 'pipewire-media-session.service.in',
++ output : 'pipewire-media-session.service',
++ configuration : systemd_config,
++ install_dir : systemd_system_services_dir)
+--
+2.30.2
+
diff --git a/patches/media-session-0.4.1/series b/patches/media-session-0.4.1/series
new file mode 100644
index 000000000..fef1ad945
--- /dev/null
+++ b/patches/media-session-0.4.1/series
@@ -0,0 +1 @@
+0001-meson-remove-session-managers-option-check.patch
diff --git a/rules/media-session.in b/rules/media-session.in
new file mode 100644
index 000000000..73fe521cc
--- /dev/null
+++ b/rules/media-session.in
@@ -0,0 +1,32 @@
+## SECTION=multimedia_libs
+
+menuconfig MEDIA_SESSION
+ tristate
+ select HOST_MESON
+ select DBUS
+ select ALSA_LIB
+ select ALSA_LIB_PCM
+ select ALSA_LIB_UCM
+ select ALSA_LIB_SEQ
+ select PIPEWIRE
+ select SYSTEMD if MEDIA_SESSION_SYSTEMD
+ prompt "media-session "
+ help
+ Example session manager for PipeWire
+
+if MEDIA_SESSION
+
+config MEDIA_SESSION_SYSTEMD
+ bool
+
+config MEDIA_SESSION_SYSTEMD_UNIT
+ bool
+ default PIPEWIRE_SYSTEMD_UNIT
+ select MEDIA_SESSION_SYSTEMD
+
+config MEDIA_SESSION_SYSTEMD_UNIT_USER
+ bool
+ default PIPEWIRE_SYSTEMD_UNIT_USER
+ select MEDIA_SESSION_SYSTEMD
+
+endif
diff --git a/rules/media-session.make b/rules/media-session.make
new file mode 100644
index 000000000..4013e2101
--- /dev/null
+++ b/rules/media-session.make
@@ -0,0 +1,94 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Philipp Zabel <p.zabel@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_MEDIA_SESSION) += media-session
+
+#
+# Paths and names
+#
+MEDIA_SESSION_VERSION := 0.4.1
+MEDIA_SESSION_MD5 := 5f6d9e82330c8102f97b099f5269286f
+MEDIA_SESSION := media-session-$(MEDIA_SESSION_VERSION)
+MEDIA_SESSION_SUFFIX := tar.bz2
+MEDIA_SESSION_URL := \
+ https://gitlab.freedesktop.org/pipewire/media-session/-/archive/$(MEDIA_SESSION_VERSION)/$(MEDIA_SESSION).$(MEDIA_SESSION_SUFFIX)
+MEDIA_SESSION_SOURCE := $(SRCDIR)/$(MEDIA_SESSION).$(MEDIA_SESSION_SUFFIX)
+MEDIA_SESSION_DIR := $(BUILDDIR)/$(MEDIA_SESSION)
+MEDIA_SESSION_LICENSE := MIT AND LGPL-2.1-or-later AND GPL-2.0-only
+MEDIA_SESSION_LICENSE_FILES := \
+ file://LICENSE;md5=647cfa0f759d97b208bfb5c1eb912071 \
+ file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+MEDIA_SESSION_CONF_ENV := \
+ PTXDIST_PKG_CONFIG_VAR_NO_SYSROOT=systemdsystemunitdir
+
+#
+# meson
+#
+MEDIA_SESSION_CONF_TOOL := meson
+MEDIA_SESSION_CONF_OPT := \
+ $(CROSS_MESON_USR) \
+ -Ddocdir= \
+ -Ddocs=disabled \
+ -Dinstalled_tests=disabled \
+ -Dsystemd-system-service=$(call ptx/endis,PTXCONF_MEDIA_SESSION_SYSTEMD_UNIT)d \
+ -Dsystemd-user-service=$(call ptx/endis,PTXCONF_MEDIA_SESSION_SYSTEMD_UNIT_USER)d \
+ -Dsystemd-user-unit-dir= \
+ -Dsystemd=$(call ptx/endis,PTXCONF_MEDIA_SESSION_SYSTEMD)d \
+ -Dtests=disabled \
+ -Dwith-module-sets=
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/media-session.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, media-session)
+ @$(call install_fixup, media-session,PRIORITY,optional)
+ @$(call install_fixup, media-session,SECTION,base)
+ @$(call install_fixup, media-session,AUTHOR,"Philipp Zabel <p.zabel@pengutronix.de>")
+ @$(call install_fixup, media-session,DESCRIPTION,missing)
+
+ @$(call install_copy, media-session, 0, 0, 755, -, /usr/bin/pipewire-media-session)
+
+ifdef PTXCONF_MEDIA_SESSION_SYSTEMD_UNIT
+ @$(call install_alternative, media-session, 0, 0, 0644, \
+ /usr/lib/systemd/system/pipewire-media-session.service)
+ @$(call install_link, media-session, ../pipewire-media-session.service, \
+ /usr/lib/systemd/system/pipewire.service.wants/pipewire-media-session.service)
+endif
+ifdef PTXCONF_MEDIA_SESSION_SYSTEMD_UNIT_USER
+ @$(call install_alternative, media-session, 0, 0, 0644, \
+ /usr/lib/systemd/user/pipewire-media-session.service)
+ @$(call install_link, media-session, ../pipewire-media-session.service, \
+ /usr/lib/systemd/user/pipewire.service.wants/pipewire-media-session.service)
+endif
+
+ @$(call install_copy, media-session, 0, 0, 644, -, \
+ /usr/share/pipewire/media-session.d/alsa-monitor.conf)
+ @$(call install_copy, media-session, 0, 0, 644, -, \
+ /usr/share/pipewire/media-session.d/bluez-monitor.conf)
+ @$(call install_copy, media-session, 0, 0, 644, -, \
+ /usr/share/pipewire/media-session.d/media-session.conf)
+ @$(call install_copy, media-session, 0, 0, 644, -, \
+ /usr/share/pipewire/media-session.d/v4l2-monitor.conf)
+
+ @$(call install_finish, media-session)
+
+ @$(call touch)
+
+# vim: syntax=make