[PATCH] gnu: Add pipewire.scm and easyeffects

  • Done
  • quality assurance status badge
Details
4 participants
  • Formbi
  • Tobias Geerinckx-Rice
  • Mathieu Othacehe
  • Steve George
Owner
unassigned
Submitted by
Formbi
Severity
normal
F
F
Formbi wrote on 15 Aug 2022 01:55
(name . Formbi via Guix-patches)(address . guix-patches@gnu.org)
J26d4EPbwGnOKBERu3Q1U3V9_LvXffNls3G0lMe5rDi5-D9Zy1y01xdvdMkwVaSh3YWu9Rt-JUq_8SaqmDmL_SddZ9BlP16SRNqeM2gF8o8=@protonmail.com
This patch adds the pipewire.scm file (as was suggested on IRC) and the easyeffects package inside it.

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

Toggle diff (123 lines)
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
M
M
Mathieu Othacehe wrote on 15 Aug 2022 10:37
(name . Formbi)(address . formbi@protonmail.com)(address . 57218@debbugs.gnu.org)
87pmh1gawh.fsf@gnu.org
Hey,

Toggle quote (5 lines)
> Subject: [PATCH] add pipewire.scm and easyeffects
>
> ---
> gnu/packages/pipewire.scm | 117 ++++++++++++++++++++++++++++++++++++++

You need to write a proper commit message. Something like:

Toggle snippet (6 lines)
gnu: easyeffects: New variable.

* gnu/packages/pipewire.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.

You also need to add the new file to gnu/local.mk so that it can be
compiled between other things.

Could you please send a v2?

Thanks,

Mathieu
F
F
Formbi wrote on 15 Aug 2022 13:25
(name . Mathieu Othacehe)(address . othacehe@gnu.org)(address . 57218@debbugs.gnu.org)
ZndYIWY0x1qLz7Qd0aTrTQtrhSESE5fY5Wsyz-IsJ7h9yyI1Z9u7FCNkTHmMpW_OOoGZFXOJA3go21UlvRfHxO2VXYECZER_hdfcPXRxxLo=@protonmail.com
Hi,

Would this be okay? (sorry, I clicked the wrong reply button)

From 6a29b31090feeb9d219143634d117ec13f20c127 Mon Sep 17 00:00:00 2001
From: Formbi <formbi@protonmail.com>
Date: Mon, 15 Aug 2022 13:20:28 +0200
Subject: [PATCH] gnu: easyeffects: New variable.

* gnu/packages/pipewire.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
gnu/local.mk | 1 +
gnu/packages/pipewire.scm | 117 ++++++++++++++++++++++++++++++++++++++
2 files changed, 118 insertions(+)
create mode 100644 gnu/packages/pipewire.scm

Toggle diff (135 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 2d32d85d47..03f2eed526 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -480,6 +480,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/php.scm \
%D%/packages/piet.scm \
%D%/packages/pikchr.scm \
+ %D%/packages/pipewire.scm \
%D%/packages/pkg-config.scm \
%D%/packages/plan9.scm \
%D%/packages/plotutils.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
M
M
Mathieu Othacehe wrote on 17 Aug 2022 14:48
(name . Formbi)(address . formbi@protonmail.com)(address . 57218@debbugs.gnu.org)
87a683vxww.fsf_-_@gnu.org
Hello,

Thanks for the v2, a few more remarks below.

Toggle quote (4 lines)
> + (let ((toolchain (specification->package "gcc-toolchain@11")))
> + ;; for std::source_location
> + (package-with-c-toolchain

Is it normal that "guix build easyeffects" doesn't seem to locate the
package? A consequence of package-with-c-toolchain?

Toggle quote (7 lines)
> + #: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"))))))))

You need to wrap it to stay under the 78 columns limit.

Toggle quote (2 lines)
> + xiph-rnnoise

This variable is undefined.

The indentation also seem off:

Toggle snippet (18 lines)
/home/mathieu/guix/gnu/packages/pipewire.scm:55:0: easyeffects@6.2.8: tabulation on line 55, column 0
/home/mathieu/guix/gnu/packages/pipewire.scm:56:0: easyeffects@6.2.8: tabulation on line 56, column 0
/home/mathieu/guix/gnu/packages/pipewire.scm:57:0: easyeffects@6.2.8: tabulation on line 57, column 0
/home/mathieu/guix/gnu/packages/pipewire.scm:58:0: easyeffects@6.2.8: tabulation on line 58, column 0
/home/mathieu/guix/gnu/packages/pipewire.scm:66:0: easyeffects@6.2.8: tabulation on line 66, column 0
/home/mathieu/guix/gnu/packages/pipewire.scm:67:0: easyeffects@6.2.8: tabulation on line 67, column 0
/home/mathieu/guix/gnu/packages/pipewire.scm:68:0: easyeffects@6.2.8: tabulation on line 68, column 0
/home/mathieu/guix/gnu/packages/pipewire.scm:69:0: easyeffects@6.2.8: tabulation on line 69, column 0
/home/mathieu/guix/gnu/packages/pipewire.scm:70:0: easyeffects@6.2.8: tabulation on line 70, column 0
/home/mathieu/guix/gnu/packages/pipewire.scm:93:0: easyeffects@6.2.8: tabulation on line 93, column 0
/home/mathieu/guix/gnu/packages/pipewire.scm:94:0: easyeffects@6.2.8: tabulation on line 94, column 0
/home/mathieu/guix/gnu/packages/pipewire.scm:95:0: easyeffects@6.2.8: tabulation on line 95, column 0
/home/mathieu/guix/gnu/packages/pipewire.scm:96:0: easyeffects@6.2.8: tabulation on line 96, column 0
/home/mathieu/guix/gnu/packages/pipewire.scm:97:0: easyeffects@6.2.8: tabulation on line 97, column 0
/home/mathieu/guix/gnu/packages/pipewire.scm:98:0: easyeffects@6.2.8: tabulation on line 98, column 0
/home/mathieu/guix/gnu/packages/pipewire.scm:99:0: easyeffects@6.2.8: tabulation on line 99, column 0

Mathieu
T
T
Tobias Geerinckx-Rice wrote on 18 Aug 2022 03:38
Re: [bug#57218] [PATCH] gnu: Add pipewire.scm and easyeffects
(address . 57218@debbugs.gnu.org)
0A83FD38-587F-429D-B7D5-6056F9B1E21D@tobias.gr
On 17 August 2022 12:48:15 UTC, Mathieu Othacehe <othacehe@gnu.org> wrote:
Toggle quote (4 lines)
>> + xiph-rnnoise
>
>This variable is undefined.

That's because it was very recently renamed to just rnnoise, which was a different (incorrectly named) package now renamed to something else.

Complicated, but luckily the solution is simple.
Formbi, Mathieu,
Kind regards,

T G-R

Sent on the go. Excuse or enjoy my brevity.
S
S
Steve George wrote on 31 Mar 23:13 +0200
closing 57218
(address . control@debbugs.gnu.org)(address . 57218-submitter@debbugs.gnu.org)
1711919578-2135-bts-steve@futurile.net
close 57218
Hi Formbi - part of the some changes you sent in another patch series.
thanks
?
Your comment

This issue is archived.

To comment on this conversation send an email to 57218@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 57218
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch