new file mode 100644
@@ -0,0 +1,136 @@
+From 817c0f81a1e67b27cdea6010860b6638a6acdd08 Mon Sep 17 00:00:00 2001
+From: Formbi <formbi@protonmail.com>
+Date: Mon, 15 Aug 2022 01:44:41 +0200
+Subject: [PATCH] add pipewire.scm and easyeffects
+
+---
+ gnu/packages/pipewire.scm | 117 ++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 117 insertions(+)
+ create mode 100644 gnu/packages/pipewire.scm
+
+diff --git a/gnu/packages/pipewire.scm b/gnu/packages/pipewire.scm
+new file mode 100644
+index 0000000000..2b923e0d05
+--- /dev/null
++++ b/gnu/packages/pipewire.scm
+@@ -0,0 +1,117 @@
++;;; Copyright © 2022 Marcel Kupiec <formbi@protonmail.com>
++;;;
++;;; This file is part of GNU Guix.
++;;;
++;;; GNU Guix is free software; you can redistribute it and/or modify it
++;;; under the terms of the GNU General Public License as published by
++;;; the Free Software Foundation; either version 3 of the License, or (at
++;;; your option) any later version.
++;;;
++;;; GNU Guix is distributed in the hope that it will be useful, but
++;;; WITHOUT ANY WARRANTY; without even the implied warranty of
++;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++;;; GNU General Public License for more details.
++;;;
++;;; You should have received a copy of the GNU General Public License
++;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
++
++
++(define-module (gnu packages pipewire)
++ #:use-module ((guix licenses)
++ #:prefix license:)
++ #:use-module (guix build-system cmake)
++ #:use-module (guix build-system meson)
++ #:use-module (guix download)
++ #:use-module (guix gexp)
++ #:use-module (guix git-download)
++ #:use-module (guix packages)
++ #:use-module (gnu packages)
++ #:use-module (gnu packages algebra)
++ #:use-module (gnu packages audio)
++ #:use-module (gnu packages cmake)
++ #:use-module (gnu packages cpp)
++ #:use-module (gnu packages freedesktop)
++ #:use-module (gnu packages gettext)
++ #:use-module (gnu packages glib)
++ #:use-module (gnu packages gnome)
++ #:use-module (gnu packages gtk)
++ #:use-module (gnu packages linux)
++ #:use-module (gnu packages lua)
++ #:use-module (gnu packages music)
++ #:use-module (gnu packages pkg-config)
++ #:use-module (gnu packages pretty-print)
++ #:use-module (gnu packages pulseaudio)
++ #:use-module (gnu packages qt)
++ #:use-module (gnu packages tbb)
++ #:use-module (gnu packages xdisorg)
++ #:use-module (gnu packages xiph))
++
++(define-public easyeffects
++ (let ((toolchain (specification->package "gcc-toolchain@11")))
++ ;; for std::source_location
++ (package-with-c-toolchain
++ (package
++ (name "easyeffects")
++ (version "6.2.8")
++ (source (origin
++ (method git-fetch)
++ (uri (git-reference
++ (url "https://github.com/wwmm/easyeffects")
++ (commit (string-append "v" version))))
++ (file-name (git-file-name name version))
++ (sha256
++ (base32
++ "0ahwgcvw7krbylhk00cacikzlaical344i3jkcmq5vr6vl5c8048"))))
++ (build-system meson-build-system)
++ (arguments
++ (list #:glib-or-gtk? #t
++ #:phases #~(modify-phases %standard-phases
++ (add-after 'unpack 'skip-gtk-update-icon-cache
++ (lambda _
++ (substitute* "meson_post_install.py"
++ (("gtk4-update-icon-cache")
++ (which "true"))))))))
++ (inputs (list gnome-autoar
++ calf
++ fftwf
++ fmt
++ gtk
++ libadwaita
++ libbs2b
++ libebur128
++ libsamplerate
++ libsigc++
++ libsndfile
++ lilv
++ lsp-plugins
++ lv2
++ mda-lv2
++ pipewire-0.3
++ rubberband
++ speexdsp
++ tbb
++ xiph-rnnoise
++ zam-plugins
++ zita-convolver))
++ (native-inputs (list desktop-file-utils ;for update-desktop-database
++ `(,glib "bin")
++ appstream-glib
++ cmake
++ gettext-minimal
++ itstool
++ json-modern-cxx
++ pkg-config))
++ (home-page
++ "https://github.com/wwmm/easyeffects")
++ (synopsis
++ "Audio effects for PipeWire applications")
++ (description
++ "EasyEffects is an advanced audio manipulation tool.
++It includes an equalizer, limiter, compressor and a reverberation tool, just to
++mention a few. To complement this there is also a built in spectrum analyzer.
++
++Besides manipulating sound output, EasyEffects is able to apply effects to an
++input device, such as a microphone. This is, for example, useful in audio
++recording, but it also works well during voice conversations.")
++ (license license:gpl3+))
++ `(("toolchain" ,toolchain)))))
+--
+2.37.0
+
@@ -5834,32 +5834,3 @@ (define-public odio-sacd
and DSD streams.")
(home-page "https://tari.in/www/software/odio-sacd/")
(license license:gpl3+)))
-
-(define-public qpwgraph
- (package
- (name "qpwgraph")
- (version "0.3.4")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.freedesktop.org/rncbc/qpwgraph")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1xqmlbqj6ny4cpclzr8xyy6d6i392h9f1vmlbasp6xfy5b0yya94"))))
- (build-system cmake-build-system)
- (arguments (list #:tests? #f)) ;; no tests
- (inputs (list alsa-lib
- libxkbcommon
- pipewire-0.3
- qtbase
- qtsvg))
- (native-inputs (list pkg-config))
- (synopsis "PipeWire graph manager")
- (description
- "qpwgraph is a graph manager dedicated to PipeWire, using the Qt C++
-framework. It provides a visual interface to audio and video connections
-managed by PipeWire.")
- (home-page "https://gitlab.freedesktop.org/rncbc/qpwgraph")
- (license license:gpl2)))
@@ -8788,36 +8788,6 @@ (define-public pipewire-0.3
vulkan-loader
vulkan-headers)))))
-(define-public wireplumber
- (package
- (name "wireplumber")
- (version "0.4.6")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url
- "https://gitlab.freedesktop.org/pipewire/wireplumber.git")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0g7xkgkjlxrhs49hqkwrjk2hb478gq55wwydafvvbsv78vsa7qfb"))))
- (build-system meson-build-system)
- (arguments
- `(#:configure-flags '("-Dsystemd=disabled"
- "-Dsystem-lua=true")))
- (native-inputs
- (list `(,glib "bin")
- pkg-config))
- (inputs (list dbus elogind glib lua pipewire-0.3))
- (home-page "https://gitlab.freedesktop.org/pipewire/wireplumber")
- (synopsis "Session / policy manager implementation for PipeWire")
- (description "WirePlumber is a modular session / policy manager for
-PipeWire and a GObject-based high-level library that wraps PipeWire's API,
-providing convenience for writing the daemon's modules as well as external
-tools for managing PipeWire.")
- (license license:expat)))
-
(define-public ell
(package
(name "ell")
@@ -1,4 +1,10 @@
+;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
+;;; Copyright © 2022 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Juliana Sims <jtsims@protonmail.com>
;;; Copyright © 2022 Marcel Kupiec <formbi@protonmail.com>
+;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -46,6 +52,65 @@ (define-module (gnu packages pipewire)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xiph))
+(define-public wireplumber
+ (package
+ (name "wireplumber")
+ (version "0.4.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url
+ "https://gitlab.freedesktop.org/pipewire/wireplumber.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0g7xkgkjlxrhs49hqkwrjk2hb478gq55wwydafvvbsv78vsa7qfb"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:configure-flags '("-Dsystemd=disabled"
+ "-Dsystem-lua=true")))
+ (native-inputs
+ (list `(,glib "bin")
+ pkg-config))
+ (inputs (list dbus elogind glib lua pipewire-0.3))
+ (home-page "https://gitlab.freedesktop.org/pipewire/wireplumber")
+ (synopsis "Session / policy manager implementation for PipeWire")
+ (description "WirePlumber is a modular session / policy manager for
+PipeWire and a GObject-based high-level library that wraps PipeWire's API,
+providing convenience for writing the daemon's modules as well as external
+tools for managing PipeWire.")
+ (license license:expat)))
+
+(define-public qpwgraph
+ (package
+ (name "qpwgraph")
+ (version "0.3.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.freedesktop.org/rncbc/qpwgraph")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1xqmlbqj6ny4cpclzr8xyy6d6i392h9f1vmlbasp6xfy5b0yya94"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #f)) ;; no tests
+ (inputs (list alsa-lib
+ libxkbcommon
+ pipewire-0.3
+ qtbase
+ qtsvg))
+ (native-inputs (list pkg-config))
+ (synopsis "PipeWire graph manager")
+ (description
+ "qpwgraph is a graph manager dedicated to PipeWire, using the Qt C++
+framework. It provides a visual interface to audio and video connections
+managed by PipeWire.")
+ (home-page "https://gitlab.freedesktop.org/rncbc/qpwgraph")
+ (license license:gpl2)))
+
(define-public easyeffects
(let ((toolchain (specification->package "gcc-toolchain@11")))
;; for std::source_location
This patch moves wireplumber and qpwgraph to the pipewire.scm file. From 22fcfec0b82e3a1054a9a0d8a8ba8671287d866c Mon Sep 17 00:00:00 2001 From: Formbi <formbi@protonmail.com> Date: Mon, 15 Aug 2022 01:57:08 +0200 Subject: [PATCH 2/2] gnu: move wireplumber and qpwgraph --- 0001-add-pipewire.scm-and-easyeffects.patch | 136 ++++++++++++++++++++ gnu/packages/audio.scm | 29 ----- gnu/packages/linux.scm | 30 ----- gnu/packages/pipewire.scm | 65 ++++++++++ 4 files changed, 201 insertions(+), 59 deletions(-) create mode 100644 0001-add-pipewire.scm-and-easyeffects.patch -- 2.37.0