diff mbox series

[bug#54379,1/3] gnu: linux: update PipeWire

Message ID 20220401204441.8244-2-kevinboulain@gmail.com
State New
Headers show
Series gnu: linux: update PipeWire & WirePlumber | expand

Commit Message

Kevin Boulain April 1, 2022, 8:44 p.m. UTC
* gnu/packages/linux.scm (pipewire): Use the official repository URL
instead of a mirror. Also remove sdl2 from the inputs as it's only used
in tests (and is very sparsely used with PipeWire 0.3).
* gnu/packages/linux.scm (pipewire-0.3): Update to 0.3.49 and use the
official repository URL instead of a mirror. Also add a few more inputs
to enable a few options:
 - libfdk to support the AAC Bluetooth codec
 - libsndfile to build pw-cat
 - libusb for Bluetooth quirks
 - lilv for LV2 plugins
 - openssl for raop-sink
 - readline to build pw-cli
 - webrtc-audio-processing for echo cancellation
And python-docutils to the native inputs to generate man pages.
X11 and libcanberra could be included for the X11 bell (no idea how
useful that is).
libcamera doesn't build with the current gstreamer version (g_memdup
is deprecated).
ROC doesn't appear to be in the packages yet so I'm skipping it.
Finally, set the sysconfigdir to /etc to allow configuring PipeWire
system-wide.

---

PipeWire also supports the aptX Bluetooth codec but the situation
appears to be very muddy: some distributions like Debian, Gentoo or
Arch package libfreeaptx (a fork of libopenaptx to work around licensing
issues) but others like Fedora or OpenSUSE refuse to do it so it's not
included for now (see https://issues.guix.gnu.org/54379).
---
 gnu/packages/linux.scm | 29 ++++++++++++++++++++---------
 1 file changed, 20 insertions(+), 9 deletions(-)
diff mbox series

Patch

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 7aafcb636c..40166ad36e 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -8281,7 +8281,7 @@  (define-public pipewire
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/PipeWire/pipewire")
+                    (url "https://gitlab.freedesktop.org/pipewire/pipewire.git")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
@@ -8301,8 +8301,7 @@  (define-public pipewire
            gstreamer
            gst-plugins-base
            libva
-           sbc
-           sdl2))
+           sbc))
     (home-page "https://pipewire.org/")
     (synopsis "Server and user space API to deal with multimedia pipelines")
     (description
@@ -8320,34 +8319,46 @@  (define-public pipewire-0.3
   (package
     (inherit pipewire)
     (name "pipewire")
-    (version "0.3.43")
+    (version "0.3.49")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/PipeWire/pipewire")
+                    (url "https://gitlab.freedesktop.org/pipewire/pipewire.git")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0gp2h0sidapcqmnifl0iipdmbzb18bdh8zdi7pfywr9gsksh0cxy"))))
+                "1nm5in95318gw18prq4jfx5qrpkn22hvmkii7f40ngkcs3zrf5zj"))))
     (arguments
      '(#:configure-flags
        (list (string-append "-Dudevrulesdir=" (assoc-ref %outputs "out")
                             "/lib/udev/rules.d")
              "-Dsystemd=disabled"
-             "-Dsession-managers=[]")
+             "-Dsession-managers=[]"
+             "-Dsysconfdir=/etc") ; System-wide configuration in /etc/pipewire.
        #:phases
        (modify-phases %standard-phases
          ;; Skip shrink-runpath, otherwise validate-runpath fails.
          (delete 'shrink-runpath))))
+    (native-inputs (modify-inputs (package-native-inputs pipewire)
+                     (prepend python-docutils))) ; For manpages.
     (inputs (modify-inputs (package-inputs pipewire)
+              ;; The libcamera plugin doesn't build with the current GStreamer
+              ;; version (g_memdup has to be replaced with g_memdup2 first).
               (prepend avahi
                        bluez
                        jack-2
                        ldacbt
-                       pulseaudio
+                       libfdk ; AAC Bluetooth codecs.
+                       libsndfile ; To build pw-cat.
+                       libusb ; Bluetooth quirks.
+                       lilv ; LV2 plugins.
+                       openssl ; For RAOP (AirPlay).
+                       pulseaudio ; PulseAudio integration.
+                       readline ; To buid pw-cli.
                        vulkan-loader
-                       vulkan-headers)))))
+                       vulkan-headers
+                       webrtc-audio-processing))))) ; For echo cancellation.
 
 (define-public wireplumber
   (package