Github messages for voidlinux
 help / color / mirror / Atom feed
From: CameronNemo <CameronNemo@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] [RFC] pipewire: split p-m-s into separate package, do not autostart session manager by default
Date: Fri, 13 Jan 2023 08:41:30 +0100	[thread overview]
Message-ID: <20230113074130.3txV3A4Z9prMk7C9n2ATbjraoueSsr9WGpqfRKkRJxw@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-38521@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 2093 bytes --]

There is an updated pull request by CameronNemo against master on the void-packages repository

https://github.com/CameronNemo/void-packages pipewire-session
https://github.com/void-linux/void-packages/pull/38521

[RFC] pipewire: split p-m-s into separate package, do not autostart session manager by default
This proposes major changes to the handling of PipeWire session managers.

The PipeWire developers recommend the use of WirePlumber, but this is inconvenient with the current pipewire package.
In this PR I aim to improve the UX of void pipewire users by:

* splitting pipewire-media-session into a standalone package
* adding conflicts between pipewire-media-session and wireplumber

**The most immediate implication is that Void users who are using the default configuration (pipewire-media-session) and upgrade to this new pipewire version without further intervention will have their setups broken.** There will be no session manager broken and pipewire will not function correctly. A news post will likely be needed to ensure that users are well informed of how to proceed.

<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/38521.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pipewire-session-38521.patch --]
[-- Type: text/x-diff, Size: 10089 bytes --]

From ba3cf8bd445a1df59d067c5483f5794650d1d0d5 Mon Sep 17 00:00:00 2001
From: Cameron Nemo <cnemo@tutanota.com>
Date: Sun, 7 Aug 2022 12:26:05 -0700
Subject: [PATCH 1/3] pipewire: update to 0.3.64

Split pipewire-media-session.
Wireplumber should be used by most users instead.
pipewire-media-session will be re-added as a standalone package.
---
 .../patches/autostart-media-session.patch     | 17 -------------
 srcpkgs/pipewire/template                     | 24 +++++--------------
 2 files changed, 6 insertions(+), 35 deletions(-)
 delete mode 100644 srcpkgs/pipewire/patches/autostart-media-session.patch

diff --git a/srcpkgs/pipewire/patches/autostart-media-session.patch b/srcpkgs/pipewire/patches/autostart-media-session.patch
deleted file mode 100644
index c5753a3719c2..000000000000
--- a/srcpkgs/pipewire/patches/autostart-media-session.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream's config does not autostart pipewire-media-session anymore, which
-is an essential component. It's not easy to start it externally in a script
-since it needs the pipewire socket up, and Void doesn't have a mechanism to
-ensure it (systemd socket activation).
-diff --git a/src/daemon/pipewire.conf.in.orig b/src/daemon/pipewire.conf.in
-index 95632c2..ab0b097 100644
---- a/src/daemon/pipewire.conf.in.orig
-+++ b/src/daemon/pipewire.conf.in
-@@ -236,7 +236,7 @@
-     # but it is better to start it as a systemd service.
-     # Run the session manager with -h for options.
-     #
--    @sm_comment@{ path = "@session_manager_path@" args = "@session_manager_args@" }
-+    { path = "@session_manager_path@" args = "@session_manager_args@" }
-     #
-     # You can optionally start the pulseaudio-server here as well
-     # but it is better to start it as a systemd service.
diff --git a/srcpkgs/pipewire/template b/srcpkgs/pipewire/template
index 5aa0d03d04b2..2a29ec7e3b1d 100644
--- a/srcpkgs/pipewire/template
+++ b/srcpkgs/pipewire/template
@@ -1,10 +1,7 @@
 # Template file for 'pipewire'
 pkgname=pipewire
-version=0.3.63
+version=0.3.64
 revision=1
-_pms_version=0.4.1
-create_wrksrc=yes
-build_wrksrc="${pkgname}-${version}"
 build_style=meson
 configure_args="
  --auto-features=enabled
@@ -16,9 +13,8 @@ configure_args="
  -Dsystemd=disabled
  -Dudevrulesdir=/usr/lib/udev/rules.d
  -Dvulkan=enabled
- -Dmedia-session:systemd=disabled
  -Dbluez5-codec-lc3plus=disabled
- -Dsession-managers=media-session
+ -Dsession-managers=[]
 "
 hostmakedepends="doxygen graphviz pkg-config python3-docutils gettext"
 makedepends="$(vopt_if sdl2 SDL2-devel) gst-plugins-base1-devel jack-devel
@@ -35,13 +31,10 @@ maintainer="Stefano Ragni <stefano.ragni@outlook.com>"
 license="MIT"
 homepage="https://pipewire.org/"
 changelog="https://gitlab.freedesktop.org/pipewire/pipewire/-/raw/master/NEWS"
-distfiles="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${version}/pipewire-${version}.tar.gz
- https://gitlab.freedesktop.org/pipewire/media-session/-/archive/${_pms_version}/media-session-${_pms_version}.tar.gz"
-checksum="1c10cc15ae8889ff0ff1653c088561ba6d46e3b1e5d4e5aacc9b01e6c1bb64b1
- 119c9216070b54018217552c7924f9888da270c3c4647c5e2b85ffa6b1574975"
+distfiles="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${version}/pipewire-${version}.tar.gz"
+checksum=a1ab25d4ff85aefa3da3452cb41e972487b1a2da613ccd207a5d312e5c241d7c
 make_dirs="/var/lib/pipewire 0755 _pipewire _pipewire"
 system_accounts="_pipewire"
-patch_args="-Np1 --directory=${build_wrksrc}"
 
 build_options="sdl2"
 
@@ -58,18 +51,13 @@ else
 	configure_args+=" -Dbluez5-codec-ldac=disabled"
 fi
 
-post_extract() {
-	mv media-session-${_pms_version} ${build_wrksrc}/subprojects/media-session
-}
-
 post_install() {
 	vlicense LICENSE
 	vdoc "${FILESDIR}/README.voidlinux"
 	vsv pipewire
 	vsv pipewire-pulse
-	vmkdir usr/share/applications
-	cp "${FILESDIR}/pipewire.desktop" ${DESTDIR}/usr/share/applications/pipewire.desktop
-	cp "${FILESDIR}/pipewire-pulse.desktop" ${DESTDIR}/usr/share/applications/pipewire-pulse.desktop
+	vinstall "${FILESDIR}/pipewire.desktop" 644 usr/share/applications
+	vinstall "${FILESDIR}/pipewire-pulse.desktop" 644 usr/share/applications
 }
 
 libpipewire_package() {

From b10df856861e69f16bba21ea6f9aca29b0c60b56 Mon Sep 17 00:00:00 2001
From: Cameron Nemo <cam@nohom.org>
Date: Fri, 9 Dec 2022 21:24:37 -0800
Subject: [PATCH 2/3] New package: pipewire-media-session-0.4.1

---
 .../files/pipewire-media-session.desktop      |  8 ++++
 .../patches/deprecated.patch                  | 45 +++++++++++++++++++
 srcpkgs/pipewire-media-session/template       | 29 ++++++++++++
 3 files changed, 82 insertions(+)
 create mode 100644 srcpkgs/pipewire-media-session/files/pipewire-media-session.desktop
 create mode 100644 srcpkgs/pipewire-media-session/patches/deprecated.patch
 create mode 100644 srcpkgs/pipewire-media-session/template

diff --git a/srcpkgs/pipewire-media-session/files/pipewire-media-session.desktop b/srcpkgs/pipewire-media-session/files/pipewire-media-session.desktop
new file mode 100644
index 000000000000..f420d8ee3db1
--- /dev/null
+++ b/srcpkgs/pipewire-media-session/files/pipewire-media-session.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=PipeWire Media Session
+Comment=Start the example PipeWire Media Session
+Icon=pipewire
+Exec=pipewire-media-session
+Terminal=false
+Type=Application
+NoDisplay=true
diff --git a/srcpkgs/pipewire-media-session/patches/deprecated.patch b/srcpkgs/pipewire-media-session/patches/deprecated.patch
new file mode 100644
index 000000000000..61b83b0d56d3
--- /dev/null
+++ b/srcpkgs/pipewire-media-session/patches/deprecated.patch
@@ -0,0 +1,45 @@
+commit d9d1fffa224d222a4adee088dd94055c9c6a6cec
+Author: Wim Taymans <wtaymans@redhat.com>
+Date:   Tue Jan 10 21:34:15 2023 +0100
+
+    enable deprecated properties
+
+diff --git a/src/policy-ep.c b/src/policy-ep.c
+index 01e442b5e..2a4f9bfc1 100644
+--- a/src/policy-ep.c
++++ b/src/policy-ep.c
+@@ -28,6 +28,8 @@
+ #include <math.h>
+ #include <time.h>
+ 
++#define PW_ENABLE_DEPRECATED
++
+ #include "config.h"
+ 
+ #include <spa/node/node.h>
+diff --git a/src/policy-node.c b/src/policy-node.c
+index eeb74a15c..25002e8dc 100644
+--- a/src/policy-node.c
++++ b/src/policy-node.c
+@@ -28,6 +28,8 @@
+ #include <math.h>
+ #include <time.h>
+ 
++#define PW_ENABLE_DEPRECATED
++
+ #include "config.h"
+ 
+ #include <spa/node/node.h>
+diff --git a/src/stream-endpoint.c b/src/stream-endpoint.c
+index 7d480aa6d..c60d06ee9 100644
+--- a/src/stream-endpoint.c
++++ b/src/stream-endpoint.c
+@@ -28,6 +28,8 @@
+ #include <math.h>
+ #include <time.h>
+ 
++#define PW_ENABLE_DEPRECATED
++
+ #include "config.h"
+ 
+ #include <spa/node/node.h>
diff --git a/srcpkgs/pipewire-media-session/template b/srcpkgs/pipewire-media-session/template
new file mode 100644
index 000000000000..150b40dea6e9
--- /dev/null
+++ b/srcpkgs/pipewire-media-session/template
@@ -0,0 +1,29 @@
+# Template file for 'pipewire-media-session'
+pkgname=pipewire-media-session
+version=0.4.1
+revision=1
+build_style=meson
+configure_args="
+ --auto-features=enabled
+ -Db_ndebug=false
+ -Ddocs=enabled
+ -Dsystemd=disabled
+"
+hostmakedepends="doxygen pkg-config gettext"
+makedepends="dbus-devel pipewire-devel alsa-lib-devel jack-devel
+ pulseaudio-devel"
+depends="pipewire>=0.3.61_2"
+checkdepends="pipewire"
+short_desc="Example session manager for PipeWire"
+maintainer="Stefano Ragni <stefano.ragni@outlook.com>"
+license="MIT"
+homepage="https://pipewire.org/"
+changelog="https://gitlab.freedesktop.org/pipewire/media-session/-/raw/master/NEWS"
+distfiles="https://gitlab.freedesktop.org/pipewire/media-session/-/archive/${version}/media-session-${version}.tar.gz"
+checksum="119c9216070b54018217552c7924f9888da270c3c4647c5e2b85ffa6b1574975"
+conflicts="wireplumber"
+
+post_install() {
+	vlicense LICENSE
+	vinstall "${FILESDIR}/pipewire-media-session.desktop" 644 usr/share/applications
+}

From 7e5d0fdaf88277a2ed6f12795aabcb9dc4cc5caa Mon Sep 17 00:00:00 2001
From: Cameron Nemo <cam@nohom.org>
Date: Fri, 9 Dec 2022 21:38:10 -0800
Subject: [PATCH 3/3] wireplumber: depend pipewire, conflict p-m-s

Add a dependency on pipewire
Add a conflict with pipewire-media-session
Add a Desktop Application file
---
 srcpkgs/wireplumber/files/wireplumber.desktop | 8 ++++++++
 srcpkgs/wireplumber/template                  | 5 ++++-
 2 files changed, 12 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/wireplumber/files/wireplumber.desktop

diff --git a/srcpkgs/wireplumber/files/wireplumber.desktop b/srcpkgs/wireplumber/files/wireplumber.desktop
new file mode 100644
index 000000000000..38a3b2101844
--- /dev/null
+++ b/srcpkgs/wireplumber/files/wireplumber.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=WirePlumber
+Comment=Start WirePlumber
+Icon=pipewire
+Exec=wireplumber
+Terminal=false
+Type=Application
+NoDisplay=true
diff --git a/srcpkgs/wireplumber/template b/srcpkgs/wireplumber/template
index 7f901a6ab2a0..45ceda33da0f 100644
--- a/srcpkgs/wireplumber/template
+++ b/srcpkgs/wireplumber/template
@@ -1,12 +1,13 @@
 # Template file for 'wireplumber'
 pkgname=wireplumber
 version=0.4.13
-revision=1
+revision=2
 build_style=meson
 build_helper=gir
 configure_args="-Dintrospection=enabled -Dsystem-lua=true"
 hostmakedepends="pkg-config glib-devel python3-lxml doxygen gettext"
 makedepends="libglib-devel pipewire-devel lua54-devel"
+depends="pipewire"
 checkdepends="pipewire dbus"
 short_desc="Session and policy manager implementation for PipeWire"
 maintainer="Érico Nogueira <ericonr@disroot.org>"
@@ -15,10 +16,12 @@ homepage="https://pipewire.pages.freedesktop.org/wireplumber"
 changelog="https://gitlab.freedesktop.org/pipewire/wireplumber/-/raw/master/NEWS.rst"
 distfiles="https://gitlab.freedesktop.org/pipewire/wireplumber/-/archive/$version/wireplumber-$version.tar.gz"
 checksum=2c3cd85a743249d418a64b137adaea475e9d36a3bb31e4230da83458c4d99e48
+conflicts="pipewire-media-session"
 
 post_install() {
 	vlicense LICENSE
 	vsv wireplumber
+	vinstall "${FILESDIR}/wireplumber.desktop" 644 usr/share/applications
 }
 
 wireplumber-devel_package() {

  parent reply	other threads:[~2023-01-13  7:41 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-07 19:28 [PR PATCH] pipewire: use a conffile to autostart p-m-s CameronNemo
2022-08-17 19:20 ` [PR PATCH] [Updated] " CameronNemo
2022-08-20 22:22 ` pipewire: use a drop-in " paper42
2022-08-21  6:03 ` CameronNemo
2022-08-21  6:06 ` CameronNemo
2022-08-21  6:07 ` CameronNemo
2022-09-05 18:57 ` [PR PATCH] [Updated] " CameronNemo
2022-09-08  3:06 ` pipewire: update to 0.3.57, " ericonr
2022-09-08  5:28 ` CameronNemo
2022-09-08  5:30 ` CameronNemo
2022-09-20 12:21 ` CameronNemo
2022-09-20 12:29 ` Duncaen
2022-09-20 18:20 ` CameronNemo
2022-09-20 18:24 ` Duncaen
2022-09-20 18:30 ` Duncaen
2022-09-20 18:32 ` Duncaen
2022-09-20 18:35 ` Duncaen
2022-09-20 18:53 ` CameronNemo
2022-09-20 21:24 ` CameronNemo
2022-12-09 22:40 ` leahneukirchen
2022-12-09 22:53 ` JamiKettunen
2022-12-09 22:54 ` JamiKettunen
2022-12-09 23:04 ` JamiKettunen
2022-12-10  3:25 ` CameronNemo
2022-12-10  6:58 ` [PR PATCH] [Updated] " CameronNemo
2022-12-10  7:10 ` [PR PATCH] [Updated] [RFC] pipewire: split p-m-s into separate package, do not autostart session manager by default CameronNemo
2022-12-10  7:16 ` CameronNemo
2023-01-13  7:06 ` [PR PATCH] [Updated] " CameronNemo
2023-01-13  7:41 ` CameronNemo [this message]
2023-01-13  8:33 ` CameronNemo
2023-01-22 23:39 ` motorto
2023-01-23  3:58 ` oreo639
2023-01-23  4:05 ` oreo639
2023-01-23  4:15 ` oreo639
2023-01-23  4:19 ` oreo639
2023-01-23  4:20 ` oreo639
2023-01-23  4:21 ` oreo639
2023-01-23  4:24 ` oreo639
2023-01-23  4:31 ` oreo639
2023-01-23  4:34 ` oreo639
2023-01-23  4:36 ` oreo639
2023-01-23  4:39 ` oreo639
2023-01-23  5:42 ` oreo639
2023-01-23  6:08 ` oreo639
2023-01-23  6:09 ` oreo639
2023-01-23  6:42 ` oreo639
2023-01-23  6:45 ` oreo639
2023-01-23  6:45 ` oreo639
2023-01-23  6:46 ` oreo639
2023-01-23  6:47 ` oreo639
2023-01-23  6:48 ` oreo639
2023-01-23  7:22 ` oreo639
2023-01-23  8:02 ` oreo639
2023-01-23  8:02 ` oreo639
2023-01-23  8:02 ` oreo639
2023-01-23  8:03 ` oreo639
2023-01-23  8:04 ` oreo639
2023-01-23  8:05 ` oreo639
2023-01-23  8:05 ` oreo639
2023-01-23  8:05 ` oreo639
2023-01-23  8:05 ` oreo639
2023-01-23  8:08 ` oreo639
2023-01-23  8:09 ` oreo639
2023-01-23  9:10 ` oreo639
2023-01-23 22:30 ` CameronNemo
2023-01-23 22:30 ` CameronNemo
2023-01-25 14:53 ` ahesford
2023-01-25 15:40 ` CameronNemo
2023-01-25 15:52 ` ahesford
2023-01-25 15:54 ` ahesford
2023-01-25 15:54 ` CameronNemo
2023-01-25 15:54 ` [PR PATCH] [Closed]: " CameronNemo
2023-01-25 16:31 ` ahesford
2023-01-28 11:42 ` oreo639

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230113074130.3txV3A4Z9prMk7C9n2ATbjraoueSsr9WGpqfRKkRJxw@z \
    --to=cameronnemo@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).