From 51f30f47cd04efe494c8da37077bea860d3fbe14 Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Wed, 10 Nov 2021 09:44:28 -0700 Subject: [PATCH] package/pipewire-media-session: new package The pipewire-media-session has been moved into a separate package which pipewire attempts to download via meson wraps if session-managers are enabled, since we don't support meson wraps we need to disable session-managers in the pipewire package and create a new pipewire-media-session package. We also need to add a patch removing an invalid session-managers option check from pipewire-media-session. There is an alsa with-module-sets option in pipewire-media-session, however at the moment alsa is an unconditional dependency so we need to always enable it and select alsa-lib. Note: it was previously an option of the pipewire package, named media-session, so the symbol was BR2_PACKAGE_PIPEWIRE_MEDIA_SESSION. Now it is a package name pipewire-media-session, so the symbol is still BR2_PACKAGE_PIPEWIRE_MEDIA_SESSION. So there is no legacy entry needed, and users previously using that option will now get the package. Sneaky. Signed-off-by: James Hilliard [yann.morin.1998@free.fr: - extend commit log with legacy handling - first unconditional CONF_OPTS uses =, not +=; fits on one line - slight reorder in variables assignments ] Signed-off-by: Yann E. MORIN --- package/Config.in | 1 + ...remove-session-managers-option-check.patch | 36 ++++++++++++++ package/pipewire-media-session/Config.in | 9 ++++ .../pipewire-media-session.hash | 4 ++ .../pipewire-media-session.mk | 49 +++++++++++++++++++ package/pipewire/Config.in | 6 --- package/pipewire/pipewire.mk | 9 +--- 7 files changed, 101 insertions(+), 13 deletions(-) create mode 100644 package/pipewire-media-session/0001-meson-remove-session-managers-option-check.patch create mode 100644 package/pipewire-media-session/Config.in create mode 100644 package/pipewire-media-session/pipewire-media-session.hash create mode 100644 package/pipewire-media-session/pipewire-media-session.mk diff --git a/package/Config.in b/package/Config.in index e355ab1987..cb94e30be3 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1539,6 +1539,7 @@ menu "Graphics" source "package/pango/Config.in" source "package/pangomm/Config.in" source "package/pipewire/Config.in" + source "package/pipewire-media-session/Config.in" source "package/pixman/Config.in" source "package/poppler/Config.in" source "package/powervr/Config.in" diff --git a/package/pipewire-media-session/0001-meson-remove-session-managers-option-check.patch b/package/pipewire-media-session/0001-meson-remove-session-managers-option-check.patch new file mode 100644 index 0000000000..fc1d25edb3 --- /dev/null +++ b/package/pipewire-media-session/0001-meson-remove-session-managers-option-check.patch @@ -0,0 +1,36 @@ +From 1923c97fbd0b3d8cacdb72386886f860c818bccf Mon Sep 17 00:00:00 2001 +From: James Hilliard +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. + +Signed-off-by: James Hilliard +[Upstream status: +https://gitlab.freedesktop.org/pipewire/media-session/-/merge_requests/24] +--- + 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 ab0d49064..0e9885b0f 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.25.1 + diff --git a/package/pipewire-media-session/Config.in b/package/pipewire-media-session/Config.in new file mode 100644 index 0000000000..d025cd4d75 --- /dev/null +++ b/package/pipewire-media-session/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_PIPEWIRE_MEDIA_SESSION + bool "pipewire media-session" + depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib, dbus + depends on BR2_USE_MMU # dbus + depends on BR2_PACKAGE_PIPEWIRE + select BR2_PACKAGE_ALSA_LIB + select BR2_PACKAGE_DBUS + help + Build pipewire media-session support diff --git a/package/pipewire-media-session/pipewire-media-session.hash b/package/pipewire-media-session/pipewire-media-session.hash new file mode 100644 index 0000000000..e335fd8913 --- /dev/null +++ b/package/pipewire-media-session/pipewire-media-session.hash @@ -0,0 +1,4 @@ +# Locally calculated +sha256 ebdf9f8e389896fdc4b58da5f909afce18441b4b53d5b4f2104dd53586ea8681 media-session-0.4.1.tar.bz2 +sha256 8909c319a7e27dbb33a15b9035f89ab3b7b2f6a12f8bcddc755206a8db1ada44 COPYING +sha256 77b9c867237ef919e33c0fdbcf22ab84b1cf24a63f9431ec68759026b658c994 LICENSE diff --git a/package/pipewire-media-session/pipewire-media-session.mk b/package/pipewire-media-session/pipewire-media-session.mk new file mode 100644 index 0000000000..d349fd7454 --- /dev/null +++ b/package/pipewire-media-session/pipewire-media-session.mk @@ -0,0 +1,49 @@ +################################################################################ +# +# pipewire-media-session +# +################################################################################ + +PIPEWIRE_MEDIA_SESSION_VERSION = 0.4.1 +PIPEWIRE_MEDIA_SESSION_SOURCE = media-session-$(PIPEWIRE_MEDIA_SESSION_VERSION).tar.bz2 +PIPEWIRE_MEDIA_SESSION_SITE = https://gitlab.freedesktop.org/pipewire/media-session/-/archive/$(PIPEWIRE_MEDIA_SESSION_VERSION) +PIPEWIRE_MEDIA_SESSION_LICENSE = MIT +PIPEWIRE_MEDIA_SESSION_LICENSE_FILES = COPYING LICENSE +PIPEWIRE_MEDIA_SESSION_INSTALL_STAGING = YES +PIPEWIRE_MEDIA_SESSION_DEPENDENCIES = \ + host-pkgconf \ + alsa-lib \ + dbus \ + pipewire \ + $(TARGET_NLS_DEPENDENCIES) + +PIPEWIRE_MEDIA_SESSION_CONF_OPTS = -Ddocs=disabled -Dtests=disabled + +PIPEWIRE_MEDIA_SESSION_MODULE_SETS_LIST = alsa + +ifeq ($(BR2_PACKAGE_SYSTEMD),y) +PIPEWIRE_MEDIA_SESSION_DEPENDENCIES += systemd +PIPEWIRE_MEDIA_SESSION_CONF_OPTS += \ + -Dsystemd=enabled \ + -Dsystemd-system-service=enabled \ + -Dsystemd-user-service=enabled +else +PIPEWIRE_MEDIA_SESSION_CONF_OPTS += \ + -Dsystemd=disabled \ + -Dsystemd-system-service=disabled \ + -Dsystemd-user-service=disabled +endif + +ifeq ($(BR2_PACKAGE_JACK2),y) +PIPEWIRE_MEDIA_SESSION_DEPENDENCIES += jack2 +PIPEWIRE_MEDIA_SESSION_MODULE_SETS_LIST += jack +endif + +ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) +PIPEWIRE_MEDIA_SESSION_DEPENDENCIES += pulseaudio +PIPEWIRE_MEDIA_SESSION_MODULE_SETS_LIST += pulseaudio +endif + +PIPEWIRE_MEDIA_SESSION_CONF_OPTS += -Dwith-module-sets='$(subst $(space),$(comma),$(PIPEWIRE_MEDIA_SESSION_MODULE_SETS_LIST))' + +$(eval $(meson-package)) diff --git a/package/pipewire/Config.in b/package/pipewire/Config.in index 1f48a4b50f..dd13f31a73 100644 --- a/package/pipewire/Config.in +++ b/package/pipewire/Config.in @@ -18,12 +18,6 @@ config BR2_PACKAGE_PIPEWIRE_EXAMPLES help Build pipewire examples -config BR2_PACKAGE_PIPEWIRE_MEDIA_SESSION - bool "pipewire media-session" - depends on BR2_PACKAGE_PIPEWIRE_EXAMPLES - help - Build pipewire media-session support - config BR2_PACKAGE_PIPEWIRE_GSTREAMER bool "pipewire gstreamer plugins" depends on BR2_USE_WCHAR # libglib2 diff --git a/package/pipewire/pipewire.mk b/package/pipewire/pipewire.mk index f376f3c276..97a6b77510 100644 --- a/package/pipewire/pipewire.mk +++ b/package/pipewire/pipewire.mk @@ -26,7 +26,8 @@ PIPEWIRE_CONF_OPTS += \ -Dtest=disabled \ -Dvideoconvert=enabled \ -Dvideotestsrc=enabled \ - -Dvolume=enabled + -Dvolume=enabled \ + -Dsession-managers=[] ifeq ($(BR2_PACKAGE_DBUS),y) PIPEWIRE_CONF_OPTS += -Ddbus=enabled @@ -171,12 +172,6 @@ else PIPEWIRE_CONF_OPTS += -Decho-cancel-webrtc=disabled endif -ifeq ($(BR2_PACKAGE_PIPEWIRE_MEDIA_SESSION),y) -PIPEWIRE_SESSION_MANAGERS_LIST = media-session -endif - -PIPEWIRE_CONF_OPTS += -Dsession-managers='$(subst $(space),$(comma),$(PIPEWIRE_SESSION_MANAGERS_LIST))' - define PIPEWIRE_USERS pipewire -1 pipewire -1 * - - audio,video PipeWire System Daemon endef