From e843dbb5c02ffb739c1c222a737e7b7dbbed24b5 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Tue, 14 Jul 2020 19:06:41 -0400 Subject: [PATCH 57/62] gnu: pipewire: Update package definition. * gnu/packages/linux.scm (pipewire) [version]: Update to 0.3.6. [source][uri]: Modify url. [sha256]: Modify base32. [outputs]: New output "doc". [arguments]<#:glib-or-gtk?>: New argument. <#:configure-flags>[-Ddocs]: New flag. [-Daudiotestsrc]: New flag. [-Dffmpeg]: New flag. [-Dtest]: New flag. [-Dlibcamera]: New flag. [-Dvideotestsrc]: New flag. [-Dvolume]: New flag. [-Dc_link_args]: New flag. <#:phases>['move-doc]: New phase. [native-inputs]: Add graphviz, doxygen and xmltoman. [inputs]: Add bluez, libcamera, glib, jack-2, pulseaudio, libsndfile, vulkan-headers and vulkan-loader. [synopsis]: Modify. [description]: Modify. --- gnu/packages/linux.scm | 91 ++++++++++++++++++++++++++++++------------ 1 file changed, 66 insertions(+), 25 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 21d0e552ab..4357ed8f87 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -90,6 +90,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages golang) #:use-module (gnu packages gperf) + #:use-module (gnu packages graphviz) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages haskell-apps) @@ -130,6 +131,7 @@ #:use-module (gnu packages rsync) #:use-module (gnu packages selinux) #:use-module (gnu packages swig) + #:use-module (gnu packages vulkan) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system go) @@ -6982,42 +6984,81 @@ types and interfaces and translates so that the X server can use them.") (define-public pipewire (package (name "pipewire") - (version "0.2.7") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/PipeWire/pipewire") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1q5wrqnhhs6r49p8yvkw1pl0cnsd4rndxy4h5lvdydwgf1civcwc")))) + (version "0.3.6") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://gitlab.freedesktop.org/pipewire/pipewire.git") + (commit version))) + (file-name + (git-file-name name version)) + (sha256 + (base32 "0g149vyaigf4gzm764fcgxxci9niw19z0af9afs4diwq5xzr1qd3")))) (build-system meson-build-system) + (outputs '("out" "doc")) (arguments - '(#:configure-flags '("-Dsystemd=false"))) + `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + #:configure-flags + (list + "-Ddocs=true" + "-Dsystemd=false" + "-Daudiotestsrc=true" + "-Dffmpeg=true" + ;; XXX: EVL not available. + ;; https://evlproject.org/ + ;; "-Devl=true" + "-Dtest=true" + "-Dlibcamera=true" + "-Dvideotestsrc=true" + "-Dvolume=true" + ;; Required for RUNPATH validation. + (string-append "-Dc_link_args=-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib" + ":" + (assoc-ref %outputs "out") "/lib/pipewire-0.3")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'move-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (mkdir-p (string-append doc "/share")) + (rename-file + (string-append out "/share/doc") + (string-append doc "/share/doc")) + #t)))))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("dot" ,graphviz) + ("doxygen" ,doxygen) + ("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config) + ("xmltoman" ,xmltoman))) (inputs - `(("alsa-lib" ,alsa-lib) + `(("alsa" ,alsa-lib) + ("bluez" ,bluez) + ("camera" ,libcamera) ("dbus" ,dbus) - ("eudev" ,eudev) ("ffmpeg" ,ffmpeg) + ("glib" ,glib) ("gstreamer" ,gstreamer) ("gst-plugins-base" ,gst-plugins-base) + ("jack" ,jack-2) ("libva" ,libva) + ("pulseaudio" ,pulseaudio) ("sbc" ,sbc) - ("sdl2" ,sdl2))) + ("sdl2" ,sdl2) + ("sndfile" ,libsndfile) + ("udev" ,eudev) + ("vulkan-headers" ,vulkan-headers) + ("vulkan-loader" ,vulkan-loader))) + (synopsis "Multimedia processing graphs") + (description "PipeWire is a server and user space API to deal with +multimedia pipelines. It provides a low-latency, graph based processing engine +on top of audio and video devices that can be used to support the use cases +currently handled by both pulseaudio and JACK.") (home-page "https://pipewire.org/") - (synopsis "Server and user space API to deal with multimedia pipelines") - (description - "PipeWire is a project that aims to greatly improve handling of audio and -video under Linux. It aims to support the usecases currently handled by both -PulseAudio and Jack and at the same time provide same level of powerful handling -of Video input and output. It also introduces a security model that makes -interacting with audio and video devices from containerized applications easy, -with supporting Flatpak applications being the primary goal. Alongside Wayland -and Flatpak we expect PipeWire to provide a core building block for the future -of Linux application development.") (license license:lgpl2.0+))) (define-public ell -- 2.27.0