Skip to contentSkip to conversation

package/pipewire-media-session: new package

PATCH In review James Hilliard 2 participants 2 messages Nov 10, 2021 Arm/Amlogic Meson SoC support

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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 uption in pipewire-media-session, however at the moment alsa is an unconditional dependency so we need to always enable it and select alsa-lib.

---
 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                 | 51 +++++++++++++++++++
 package/pipewire/Config.in                    |  6 ---
 package/pipewire/pipewire.mk                  |  9 +---
 7 files changed, 103 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
package/Config.in +1 -0
index e355ab1987..cb94e30be3 100644
@@ -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"
package/pipewire-media-session/0001-meson-remove-session-managers-option-check.patch new file +36 -0
new file mode 100644
index 0000000000..fc1d25edb3
@@ -0,0 +1,36 @@
+From 1923c97fbd0b3d8cacdb72386886f860c818bccf Mon Sep 17 00:00:00 2001
+From: James Hilliard <[email protected]>
+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 <[email protected]>
+[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
+
package/pipewire-media-session/Config.in new file +9 -0
new file mode 100644
index 0000000000..d025cd4d75
@@ -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
package/pipewire-media-session/pipewire-media-session.hash new file +4 -0
new file mode 100644
index 0000000000..e335fd8913
@@ -0,0 +1,4 @@
+# Locally calculated
+sha256  ebdf9f8e389896fdc4b58da5f909afce18441b4b53d5b4f2104dd53586ea8681  media-session-0.4.1.tar.bz2
+sha256  8909c319a7e27dbb33a15b9035f89ab3b7b2f6a12f8bcddc755206a8db1ada44  COPYING
+sha256  77b9c867237ef919e33c0fdbcf22ab84b1cf24a63f9431ec68759026b658c994  LICENSE
package/pipewire-media-session/pipewire-media-session.mk new file +51 -0

51 lines not on this page · raw message

package/pipewire/Config.in +0 -6
index 1f48a4b50f..dd13f31a73 100644
@@ -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
package/pipewire/pipewire.mk +2 -7
index f376f3c276..97a6b77510 100644
@@ -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
Signature · 6 lines
2.25.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#1 lore raw

James, All,

On 2021-11-10 09:44 -0700, James Hilliard spake thusly:

Quoted 6 lines

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.

Quoted 8 lines

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 uption in pipewire-media-session, however at the moment alsa is an unconditional dependency so we need to always enable it and select alsa-lib.

So, this is a new package, but adding it fixes a regression due to the recent bump of pipewire, where the previous media-session option has been spun off to a separate package, *and* the recent change that prevents meson from downloading subprojects.

As such, and as a special exception, I have applied this to master, after doing a few tweaks:

- extend commit log with legacy handling
- first unconditional CONF_OPTS uses =, not +=; fits on one line
- slight reorder in variables assignments

Thanks! :-)

Regards,
Yann E. MORIN.

Quoted 201 lines
---
 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                 | 51 +++++++++++++++++++
 package/pipewire/Config.in                    |  6 ---
 package/pipewire/pipewire.mk                  |  9 +---
 7 files changed, 103 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
package/Config.in +1 -0
index e355ab1987..cb94e30be3 100644
@@ -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"
package/pipewire-media-session/0001-meson-remove-session-managers-option-check.patch new file +36 -0
new file mode 100644
index 0000000000..fc1d25edb3
@@ -0,0 +1,36 @@
+From 1923c97fbd0b3d8cacdb72386886f860c818bccf Mon Sep 17 00:00:00 2001
+From: James Hilliard <[email protected]>
+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 <[email protected]>
+[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
+
package/pipewire-media-session/Config.in new file +9 -0
new file mode 100644
index 0000000000..d025cd4d75
@@ -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
package/pipewire-media-session/pipewire-media-session.hash new file +4 -0
new file mode 100644
index 0000000000..e335fd8913
@@ -0,0 +1,4 @@
+# Locally calculated
+sha256  ebdf9f8e389896fdc4b58da5f909afce18441b4b53d5b4f2104dd53586ea8681  media-session-0.4.1.tar.bz2
+sha256  8909c319a7e27dbb33a15b9035f89ab3b7b2f6a12f8bcddc755206a8db1ada44  COPYING
+sha256  77b9c867237ef919e33c0fdbcf22ab84b1cf24a63f9431ec68759026b658c994  LICENSE
package/pipewire-media-session/pipewire-media-session.mk new file +51 -0
new file mode 100644
index 0000000000..b5401a04bd
@@ -0,0 +1,51 @@
+################################################################################
+#
+# 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_CONF_OPTS += \
+	-Dsystemd=enabled \
+	-Dsystemd-system-service=enabled \
+	-Dsystemd-user-service=enabled
+PIPEWIRE_MEDIA_SESSION_DEPENDENCIES += systemd
+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_MODULE_SETS_LIST += jack
+PIPEWIRE_MEDIA_SESSION_DEPENDENCIES += jack2
+endif
+
+ifeq ($(BR2_PACKAGE_PULSEAUDIO),y)
+PIPEWIRE_MEDIA_SESSION_MODULE_SETS_LIST += pulseaudio
+PIPEWIRE_MEDIA_SESSION_DEPENDENCIES += pulseaudio
+endif
+
+PIPEWIRE_MEDIA_SESSION_CONF_OPTS += -Dwith-module-sets='$(subst $(space),$(comma),$(PIPEWIRE_MEDIA_SESSION_MODULE_SETS_LIST))'
+
+$(eval $(meson-package))
package/pipewire/Config.in +0 -6
index 1f48a4b50f..dd13f31a73 100644
@@ -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
package/pipewire/pipewire.mk +2 -7
index f376f3c276..97a6b77510 100644
@@ -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
Signature · 6 lines
2.25.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
Signature · 10 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot