[PATCH 0/3] gnu: volctl: Update to 0.9.3.

  • Done
  • quality assurance status badge
Details
3 participants
  • Maxim Cournoyer
  • Sergiu Ivanov
  • Sergiu Ivanov
Owner
unassigned
Submitted by
Sergiu Ivanov
Severity
normal

Debbugs page

Sergiu Ivanov wrote 2 years ago
(address . guix-patches@gnu.org)
87k01na0gm.fsf@colimite.fr
Dear Guix,

I am hereby submitting a patch series updating volctl to 0.9.3.

This new version relies on python-pulsectl, which this patch series also adds.

Thanks!

-
Sergiu
From 10957fe441340d5d1f3a83f8baeb9ffcff1158dd Mon Sep 17 00:00:00 2001
From: Sergiu Ivanov <sivanov@colimite.fr>
Date: Sun, 15 Jan 2023 23:32:03 +0100
Subject: [PATCH 0/3] gnu: volctl: Update to 0.9.3.

Dear Guix,

I am hereby submitting a patch series updating volctl to 0.9.3.

This new version relies on python-pulsectl, which this patch series also adds.

Thanks!

-
Sergiu


Sergiu Ivanov (3):
gnu: volctl: Make the synopsis line shorter.
gnu: packages: Add python-pulsectl.
gnu: volctl: Update to 0.9.3.

gnu/packages/audio.scm | 34 ++++++++++++++++++++++++++++++++++
gnu/packages/gtk.scm | 19 ++++++++++---------
2 files changed, 44 insertions(+), 9 deletions(-)

--
2.38.1
Sergiu Ivanov wrote 2 years ago
[PATCH 1/3] gnu: volctl: Make the synopsis line shorter.
(address . 60840@debbugs.gnu.org)
87o7qz8lev.fsf@colimite.fr
From e0c69ddefe7367e4b4417db70c86eacbfc6e3eae Mon Sep 17 00:00:00 2001
From: Sergiu Ivanov <sivanov@colimite.fr>
Date: Sun, 4 Dec 2022 13:27:13 +0100
Subject: [PATCH 1/3] gnu: volctl: Make the synopsis line shorter.

* gnu/packages/gtk.scm (volctl): Make the synopsis line shorter.
---
gnu/packages/gtk.scm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index de82b9e55f..c8ae855cfa 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -33,6 +33,7 @@
;;; Copyright © 2022 Benjamin Slade <slade@lambda-y.net>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2022 Sergiu Ivanov <sivanov@colimite.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2978,7 +2979,8 @@ (define-public volctl
(propagated-inputs
(list python-click python-pycairo python-pygobject python-pyyaml))
(home-page "https://buzz.github.io/volctl/")
- (synopsis "Per-application volume control and on-screen display for graphical desktops")
+ (synopsis
+ "Per-application volume control and on-screen display for graphical desktops")
(description "Volctl is a PulseAudio-enabled tray icon volume control and
OSD applet for graphical desktops. It's not meant to be an replacement for a
full-featured mixer application. If you're looking for that check out the
--
2.38.1
Sergiu Ivanov wrote 2 years ago
[PATCH 2/3] gnu: packages: Add python-pulsectl.
(address . 60840@debbugs.gnu.org)
87h6wr8lah.fsf@colimite.fr
From b92cdb4ce99bc7ad45e0caba7f863db5931741db Mon Sep 17 00:00:00 2001
From: Sergiu Ivanov <sivanov@colimite.fr>
Date: Sun, 15 Jan 2023 23:16:02 +0100
Subject: [PATCH 2/3] gnu: packages: Add python-pulsectl.

* gnu/packages/audio.scm (python-pulsectl): New variable.
---
gnu/packages/audio.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)

Toggle diff (54 lines)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index d72cf0ca87..391a763e45 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -40,6 +40,7 @@
;;; Copyright © 2022 Juliana Sims <jtsims@protonmail.com>
;;; Copyright © 2022 Simon Streit <simon@netpanic.org>
;;; Copyright © 2022 Andy Tai <atai@atai.org>
+;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2779,6 +2780,39 @@ (define-public python-pyaudio
cross-platform audio input/output stream library.")
(license license:expat)))
+(define-public python-pulsectl
+ (package
+ (name "python-pulsectl")
+ (version "22.3.2")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "pulsectl" version))
+ (sha256
+ (base32
+ "115ha1cwpd2r84ssnxdbr59hgs0jbx0lz3xpqli64kmxxqf4w5yc"))))
+ (build-system python-build-system)
+ (inputs (list pulseaudio))
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((pulse (assoc-ref inputs "pulseaudio")))
+ (substitute* "pulsectl/_pulsectl.py"
+ (("libpulse.so.0")
+ (string-append pulse "/lib/libpulse.so.0")))
+ #t))))))
+ (home-page "https://github.com/mk-fg/python-pulse-control")
+ (synopsis
+ "Python bindings for mixer-like controls in PulseAudio")
+ (description
+ "Python high-level interface and ctypes-based bindings for
+PulseAudio (libpulse), to use in simple synchronous code. This wrapper is
+mostly for mixer-like controls and introspection-related operations, as
+opposed to e.g. submitting sound samples to play and player-like client.")
+ (license license:expat)))
+
(define-public python-pyliblo
(package
(name "python-pyliblo")
--
2.38.1
Sergiu Ivanov wrote 2 years ago
[PATCH 3/3] gnu: volctl: Update to 0.9.3.
(address . 60840@debbugs.gnu.org)
87a62j8l72.fsf@colimite.fr
From 10957fe441340d5d1f3a83f8baeb9ffcff1158dd Mon Sep 17 00:00:00 2001
From: Sergiu Ivanov <sivanov@colimite.fr>
Date: Sun, 15 Jan 2023 23:23:44 +0100
Subject: [PATCH 3/3] gnu: volctl: Update to 0.9.3.

* gnu/packages/gtk.scm (volctl): Update to 0.9.3.
---
gnu/packages/gtk.scm | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)

Toggle diff (54 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index c8ae855cfa..ea21985867 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -68,6 +68,7 @@ (define-module (gnu packages gtk)
#:use-module (guix build-system waf)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
+ #:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
@@ -2950,7 +2951,7 @@ (define-public gtkdatabox
(define-public volctl
(package
(name "volctl")
- (version "0.8.2")
+ (version "0.9.3")
(source (origin
(method git-fetch)
(uri (git-reference (url "https://github.com/buzz/volctl")
@@ -2958,7 +2959,7 @@ (define-public volctl
(file-name (git-file-name name version))
(sha256
(base32
- "1cx27j83pz2qffnzb85fbl1x6pp3irv1kbw7g1hri7kaw6ky4xiz"))))
+ "0fz80w3ywq54jn4v31frfdj01s5g9lz6v9cd7hpg3kirca0zisln"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -2967,17 +2968,15 @@ (define-public volctl
(lambda* (#:key inputs #:allow-other-keys)
(let ((pulse (assoc-ref inputs "pulseaudio"))
(xfixes (assoc-ref inputs "libxfixes")))
- (substitute* "volctl/lib/xwrappers.py"
+ (substitute* "volctl/xwrappers.py"
(("libXfixes.so")
(string-append xfixes "/lib/libXfixes.so")))
- (substitute* "volctl/lib/pulseaudio.py"
- (("libpulse.so.0")
- (string-append pulse "/lib/libpulse.so.0")))
#t))))))
(inputs
- (list gtk+ libxfixes pulseaudio))
+ (list libxfixes))
(propagated-inputs
- (list python-click python-pycairo python-pygobject python-pyyaml))
+ (list python-click python-pycairo python-pygobject python-pyyaml
+ python-pulsectl gtk+))
(home-page "https://buzz.github.io/volctl/")
(synopsis
"Per-application volume control and on-screen display for graphical desktops")
--
2.38.1
Maxim Cournoyer wrote 2 years ago
Re: bug#60840: [PATCH 0/3] gnu: volctl: Update to 0.9.3.
(name . Sergiu Ivanov)(address . sivanov@colimite.fr)(address . 60840@debbugs.gnu.org)
875yd676zw.fsf_-_@gmail.com
Hi Sergiu,

Sergiu Ivanov <sivanov@colimite.fr> writes:

Toggle quote (7 lines)
>>From e0c69ddefe7367e4b4417db70c86eacbfc6e3eae Mon Sep 17 00:00:00 2001
> From: Sergiu Ivanov <sivanov@colimite.fr>
> Date: Sun, 4 Dec 2022 13:27:13 +0100
> Subject: [PATCH 1/3] gnu: volctl: Make the synopsis line shorter.
>
> * gnu/packages/gtk.scm (volctl): Make the synopsis line shorter.

I'd reword this as "Re-indent the synopsis line", or alternatively make
it really shorter, perhaps dropping the last "for graphical
applications" bit, which get repeated the description anyway.

Toggle quote (13 lines)
> gnu/packages/gtk.scm | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
> index de82b9e55f..c8ae855cfa 100644
> --- a/gnu/packages/gtk.scm
> +++ b/gnu/packages/gtk.scm
> @@ -33,6 +33,7 @@
> ;;; Copyright © 2022 Benjamin Slade <slade@lambda-y.net>
> ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
> ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
> +;;; Copyright © 2022 Sergiu Ivanov <sivanov@colimite.fr>

When changes are not substantial (< 10 new additions/changes) they are
not protected by copyright, so you can drop the above hunk.

Toggle quote (13 lines)
> ;;; This file is part of GNU Guix.
> ;;;
> @@ -2978,7 +2979,8 @@ (define-public volctl
> (propagated-inputs
> (list python-click python-pycairo python-pygobject python-pyyaml))
> (home-page "https://buzz.github.io/volctl/")
> - (synopsis "Per-application volume control and on-screen display for graphical desktops")
> + (synopsis
> + "Per-application volume control and on-screen display for graphical desktops")
> (description "Volctl is a PulseAudio-enabled tray icon volume control and
> OSD applet for graphical desktops. It's not meant to be an replacement for a
> full-featured mixer application. If you're looking for that check out the

--
Thanks,
Maxim
Maxim Cournoyer wrote 2 years ago
(name . Sergiu Ivanov)(address . sivanov@colimite.fr)(address . 60840@debbugs.gnu.org)
871qnu76rc.fsf_-_@gmail.com
Hello,

Sergiu Ivanov <sivanov@colimite.fr> writes:

Toggle quote (7 lines)
>>From b92cdb4ce99bc7ad45e0caba7f863db5931741db Mon Sep 17 00:00:00 2001
> From: Sergiu Ivanov <sivanov@colimite.fr>
> Date: Sun, 15 Jan 2023 23:16:02 +0100
> Subject: [PATCH 2/3] gnu: packages: Add python-pulsectl.
>
> * gnu/packages/audio.scm (python-pulsectl): New variable.

Thanks for this contribution!

Toggle quote (35 lines)
> ---
> gnu/packages/audio.scm | 34 ++++++++++++++++++++++++++++++++++
> 1 file changed, 34 insertions(+)
>
> diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
> index d72cf0ca87..391a763e45 100644
> --- a/gnu/packages/audio.scm
> +++ b/gnu/packages/audio.scm
> @@ -40,6 +40,7 @@
> ;;; Copyright © 2022 Juliana Sims <jtsims@protonmail.com>
> ;;; Copyright © 2022 Simon Streit <simon@netpanic.org>
> ;;; Copyright © 2022 Andy Tai <atai@atai.org>
> +;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
> @@ -2779,6 +2780,39 @@ (define-public python-pyaudio
> cross-platform audio input/output stream library.")
> (license license:expat)))
>
> +(define-public python-pulsectl
> + (package
> + (name "python-pulsectl")
> + (version "22.3.2")
> + (source (origin
> + (method url-fetch)
> + (uri (pypi-uri "pulsectl" version))
> + (sha256
> + (base32
> + "115ha1cwpd2r84ssnxdbr59hgs0jbx0lz3xpqli64kmxxqf4w5yc"))))
> + (build-system python-build-system)
> + (inputs (list pulseaudio))
> + (arguments
> + `(#:tests? #f

Tests are typically stripped from the pypi source archive (sdist). If
you look into the source repository, there are tests under
pulsectl/tests, so it'd be better to fetch the source from git.

Also note that for the cases where using #:tests? #f is actually needed
(when there really are no test suite), a short explanatory comment is
expected (;no test suite).

Toggle quote (10 lines)
> + #:phases
> + (modify-phases %standard-phases
> + (add-after 'unpack 'patch-path
> + (lambda* (#:key inputs #:allow-other-keys)
> + (let ((pulse (assoc-ref inputs "pulseaudio")))
> + (substitute* "pulsectl/_pulsectl.py"
> + (("libpulse.so.0")
> + (string-append pulse "/lib/libpulse.so.0")))
> + #t))))))

Please do not include trailing #t in phases or snippets anymore; they
are not needed. Also prefer using a plain list for arguments and
g-expressions (gexps).

Toggle quote (10 lines)
> + (synopsis
> + "Python bindings for mixer-like controls in PulseAudio")
> + (description
> + "Python high-level interface and ctypes-based bindings for
> +PulseAudio (libpulse), to use in simple synchronous code. This wrapper is
> +mostly for mixer-like controls and introspection-related operations, as
> +opposed to e.g. submitting sound samples to play and player-like
> client.")

I'd start the description with "This package provides a Python
high-level interface [...]", to make it a complete sentence.

I'd use plural for the last word (player-like clientS), as there could
be more than one client available.

Don't forget to CC my email when sending a revised v2 version with the
above :-).

--
Thanks,
Maxim
Maxim Cournoyer wrote 2 years ago
(name . Sergiu Ivanov)(address . sivanov@colimite.fr)(address . 60840@debbugs.gnu.org)
87wn5m5rzo.fsf_-_@gmail.com
Hi again,

Sergiu Ivanov <sivanov@colimite.fr> writes:

Toggle quote (5 lines)
>>From b92cdb4ce99bc7ad45e0caba7f863db5931741db Mon Sep 17 00:00:00 2001
> From: Sergiu Ivanov <sivanov@colimite.fr>
> Date: Sun, 15 Jan 2023 23:16:02 +0100
> Subject: [PATCH 2/3] gnu: packages: Add python-pulsectl.

[...]

Toggle quote (23 lines)
> +(define-public python-pulsectl
> + (package
> + (name "python-pulsectl")
> + (version "22.3.2")
> + (source (origin
> + (method url-fetch)
> + (uri (pypi-uri "pulsectl" version))
> + (sha256
> + (base32
> + "115ha1cwpd2r84ssnxdbr59hgs0jbx0lz3xpqli64kmxxqf4w5yc"))))
> + (build-system python-build-system)
> + (inputs (list pulseaudio))
> + (arguments
> + `(#:tests? #f
> + #:phases
> + (modify-phases %standard-phases
> + (add-after 'unpack 'patch-path
> + (lambda* (#:key inputs #:allow-other-keys)
> + (let ((pulse (assoc-ref inputs "pulseaudio")))
> + (substitute* "pulsectl/_pulsectl.py"
> + (("libpulse.so.0")
> + (string-append pulse "/lib/libpulse.so.0")))

Sorry, I forgot to mention in my previous reply: here, you could use
(search-input-file inputs "lib/libpulse.so.0"), which has the added
benefit of failing if the file cannot be found in the inputs arguments.

--
Thanks,
Maxim
Sergiu Ivanov wrote 2 years ago
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 60840@debbugs.gnu.org)
87zgabfrof.fsf@colimite.fr
Hi Maxim,

Thank you very much for the review!

And sorry for the delay: day job :D


Maxim Cournoyer <maxim.cournoyer@gmail.com> [2023-01-16T17:56:51+0100]:
Toggle quote (15 lines)
> Hi Sergiu,
>
> Sergiu Ivanov <sivanov@colimite.fr> writes:
>
>>>From e0c69ddefe7367e4b4417db70c86eacbfc6e3eae Mon Sep 17 00:00:00 2001
>> From: Sergiu Ivanov <sivanov@colimite.fr>
>> Date: Sun, 4 Dec 2022 13:27:13 +0100
>> Subject: [PATCH 1/3] gnu: volctl: Make the synopsis line shorter.
>>
>> * gnu/packages/gtk.scm (volctl): Make the synopsis line shorter.
>
> I'd reword this as "Re-indent the synopsis line", or alternatively make
> it really shorter, perhaps dropping the last "for graphical
> applications" bit, which get repeated the description anyway.

I chose the second option and made the synopsis shorter as you suggest.

Toggle quote (16 lines)
>> gnu/packages/gtk.scm | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
>> index de82b9e55f..c8ae855cfa 100644
>> --- a/gnu/packages/gtk.scm
>> +++ b/gnu/packages/gtk.scm
>> @@ -33,6 +33,7 @@
>> ;;; Copyright © 2022 Benjamin Slade <slade@lambda-y.net>
>> ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
>> ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
>> +;;; Copyright © 2022 Sergiu Ivanov <sivanov@colimite.fr>
>
> When changes are not substantial (< 10 new additions/changes) they are
> not protected by copyright, so you can drop the above hunk.

Ah, good know! I dropped the hunk.

-
Sergiu
From 7603972f4514eeac5ebd1dde119d35e8ea2adc4d Mon Sep 17 00:00:00 2001
From: Sergiu Ivanov <sivanov@colimite.fr>
Date: Mon, 16 Jan 2023 23:41:14 +0100
Subject: [PATCH 1/3] gnu: volctl: Make the synopsis line shorter.

* gnu/packages/gtk.scm (volctl): Make the synopsis line shorter.
---
gnu/packages/gtk.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index de82b9e55f..ea22d0e930 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -2978,7 +2978,7 @@ (define-public volctl
(propagated-inputs
(list python-click python-pycairo python-pygobject python-pyyaml))
(home-page "https://buzz.github.io/volctl/")
- (synopsis "Per-application volume control and on-screen display for graphical desktops")
+ (synopsis "Per-application volume control and on-screen display")
(description "Volctl is a PulseAudio-enabled tray icon volume control and
OSD applet for graphical desktops. It's not meant to be an replacement for a
full-featured mixer application. If you're looking for that check out the
--
2.38.1
Sergiu Ivanov wrote 2 years ago
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 60840@debbugs.gnu.org)
878rhvfr0b.fsf@colimite.fr
Hi,

Maxim Cournoyer <maxim.cournoyer@gmail.com> [2023-01-16T18:01:59+0100]:
Toggle quote (23 lines)
> Sergiu Ivanov <sivanov@colimite.fr> writes:
>
>>>From b92cdb4ce99bc7ad45e0caba7f863db5931741db Mon Sep 17 00:00:00 2001
>>
>> +(define-public python-pulsectl
>> + (package
>> + (name "python-pulsectl")
>> + (version "22.3.2")
>> + (source (origin
>> + (method url-fetch)
>> + (uri (pypi-uri "pulsectl" version))
>> + (sha256
>> + (base32
>> + "115ha1cwpd2r84ssnxdbr59hgs0jbx0lz3xpqli64kmxxqf4w5yc"))))
>> + (build-system python-build-system)
>> + (inputs (list pulseaudio))
>> + (arguments
>> + `(#:tests? #f
>
> Tests are typically stripped from the pypi source archive (sdist). If
> you look into the source repository, there are tests under
> pulsectl/tests, so it'd be better to fetch the source from git.

In fact, pulsectl's tests fail because they seem to want to start
a dummy PulseAudio instance, which I expect to fail because of the
restrictions of the build environment. Here's my post on the mailing
list with some more details:


I added a comment briefly explaining this, but maybe there is
a better way.

Toggle quote (17 lines)
> Also note that for the cases where using #:tests? #f is actually needed
> (when there really are no test suite), a short explanatory comment is
> expected (;no test suite).
>
>> + #:phases
>> + (modify-phases %standard-phases
>> + (add-after 'unpack 'patch-path
>> + (lambda* (#:key inputs #:allow-other-keys)
>> + (let ((pulse (assoc-ref inputs "pulseaudio")))
>> + (substitute* "pulsectl/_pulsectl.py"
>> + (("libpulse.so.0")
>> + (string-append pulse "/lib/libpulse.so.0")))
>> + #t))))))
>
> Please do not include trailing #t in phases or snippets anymore; they
> are not needed.

Fixed, thank you.

Toggle quote (3 lines)
> Also prefer using a plain list for arguments and g-expressions
> (gexps).

I spent some time squinting at this remark and reading the manuals, but
I can't figure out what you mean.

Could you please give some more hints about the parts I should change
and how?

Toggle quote (16 lines)
>> + (synopsis
>> + "Python bindings for mixer-like controls in PulseAudio")
>> + (description
>> + "Python high-level interface and ctypes-based bindings for
>> +PulseAudio (libpulse), to use in simple synchronous code. This wrapper is
>> +mostly for mixer-like controls and introspection-related operations, as
>> +opposed to e.g. submitting sound samples to play and player-like
>> client.")
>
> I'd start the description with "This package provides a Python
> high-level interface [...]", to make it a complete sentence.
>
> I'd use plural for the last word (player-like clientS), as there could
> be more than one client available.

Done, thank you.

Toggle quote (3 lines)
> Don't forget to CC my email when sending a revised v2 version with the
> above :-).

Done as well :D


Maxim Cournoyer <maxim.cournoyer@gmail.com> [2023-01-16T18:06:19+0100]:
Toggle quote (3 lines)
> Hi again,
>
> Sergiu Ivanov <sivanov@colimite.fr> writes:
[...]
Toggle quote (15 lines)
>> + (arguments
>> + `(#:tests? #f
>> + #:phases
>> + (modify-phases %standard-phases
>> + (add-after 'unpack 'patch-path
>> + (lambda* (#:key inputs #:allow-other-keys)
>> + (let ((pulse (assoc-ref inputs "pulseaudio")))
>> + (substitute* "pulsectl/_pulsectl.py"
>> + (("libpulse.so.0")
>> + (string-append pulse "/lib/libpulse.so.0")))
>
> Sorry, I forgot to mention in my previous reply: here, you could use
> (search-input-file inputs "lib/libpulse.so.0"), which has the added
> benefit of failing if the file cannot be found in the inputs arguments.

Oh, good to know, thank you for the suggestion! search-input-file
actually simplified the code and allowed me to drop the let (which
I copied from the previous version of volctl in fact).

I updated patches 2 and 3 to use search-input-file and attach both to
these E-mails.

By the way, I'd be happy to know whether with debbugs it is better to
attach the updated patches to E-mails with comments, or rather sending
the patches as separate E-mails.

-
Sergiu
From cc34fdad77158fd98c1233d8d877f2d730c41fac Mon Sep 17 00:00:00 2001
From: Sergiu Ivanov <sivanov@colimite.fr>
Date: Sun, 15 Jan 2023 23:16:02 +0100
Subject: [PATCH 2/3] gnu: packages: Add python-pulsectl.

* gnu/packages/audio.scm (python-pulsectl): New variable.
---
gnu/packages/audio.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index d72cf0ca87..990e46ee38 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -40,6 +40,7 @@
;;; Copyright © 2022 Juliana Sims <jtsims@protonmail.com>
;;; Copyright © 2022 Simon Streit <simon@netpanic.org>
;;; Copyright © 2022 Andy Tai <atai@atai.org>
+;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2779,6 +2780,38 @@ (define-public python-pyaudio
cross-platform audio input/output stream library.")
(license license:expat)))
+(define-public python-pulsectl
+ (package
+ (name "python-pulsectl")
+ (version "22.3.2")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "pulsectl" version))
+ (sha256
+ (base32
+ "115ha1cwpd2r84ssnxdbr59hgs0jbx0lz3xpqli64kmxxqf4w5yc"))))
+ (build-system python-build-system)
+ (inputs (list pulseaudio))
+ (arguments
+ `(#:tests? #f ; tests try to communicate with PulseAudio
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "pulsectl/_pulsectl.py"
+ (("libpulse.so.0")
+ (string-append (search-input-file inputs "/lib/libpulse.so.0")))))))))
+ (home-page "https://github.com/mk-fg/python-pulse-control")
+ (synopsis
+ "Python bindings for mixer-like controls in PulseAudio")
+ (description
+ "This package provides a Python high-level interface and ctypes-based
+bindings for PulseAudio (libpulse), to use in simple synchronous code.
+This wrapper is mostly for mixer-like controls and introspection-related
+operations, as opposed to e.g. submitting sound samples to play and
+player-like clients.")
+ (license license:expat)))
+
(define-public python-pyliblo
(package
(name "python-pyliblo")
--
2.38.1
From f98307b017c0cfb1a4a46f9a882ec558cec294b1 Mon Sep 17 00:00:00 2001
From: Sergiu Ivanov <sivanov@colimite.fr>
Date: Sun, 15 Jan 2023 23:23:44 +0100
Subject: [PATCH 3/3] gnu: volctl: Update to 0.9.3.

* gnu/packages/gtk.scm (volctl): Update to 0.9.3.
---
gnu/packages/gtk.scm | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)

Toggle diff (65 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index ea22d0e930..2e6a546308 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -33,6 +33,7 @@
;;; Copyright © 2022 Benjamin Slade <slade@lambda-y.net>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -67,6 +68,7 @@ (define-module (gnu packages gtk)
#:use-module (guix build-system waf)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
+ #:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
@@ -2949,7 +2951,7 @@ (define-public gtkdatabox
(define-public volctl
(package
(name "volctl")
- (version "0.8.2")
+ (version "0.9.3")
(source (origin
(method git-fetch)
(uri (git-reference (url "https://github.com/buzz/volctl")
@@ -2957,26 +2959,21 @@ (define-public volctl
(file-name (git-file-name name version))
(sha256
(base32
- "1cx27j83pz2qffnzb85fbl1x6pp3irv1kbw7g1hri7kaw6ky4xiz"))))
+ "0fz80w3ywq54jn4v31frfdj01s5g9lz6v9cd7hpg3kirca0zisln"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-path
(lambda* (#:key inputs #:allow-other-keys)
- (let ((pulse (assoc-ref inputs "pulseaudio"))
- (xfixes (assoc-ref inputs "libxfixes")))
- (substitute* "volctl/lib/xwrappers.py"
- (("libXfixes.so")
- (string-append xfixes "/lib/libXfixes.so")))
- (substitute* "volctl/lib/pulseaudio.py"
- (("libpulse.so.0")
- (string-append pulse "/lib/libpulse.so.0")))
- #t))))))
+ (substitute* "volctl/xwrappers.py"
+ (("libXfixes.so")
+ (string-append (search-input-file inputs "/lib/libXfixes.so")))))))))
(inputs
- (list gtk+ libxfixes pulseaudio))
+ (list libxfixes))
(propagated-inputs
- (list python-click python-pycairo python-pygobject python-pyyaml))
+ (list python-click python-pycairo python-pygobject python-pyyaml
+ python-pulsectl gtk+))
(home-page "https://buzz.github.io/volctl/")
(synopsis "Per-application volume control and on-screen display")
(description "Volctl is a PulseAudio-enabled tray icon volume control and
--
2.38.1
Maxim Cournoyer wrote 2 years ago
(name . Sergiu Ivanov)(address . sergiu.ivanov@univ-evry.fr)
87a62a1cpl.fsf@gmail.com
Hello,

Sergiu Ivanov <sergiu.ivanov@univ-evry.fr> writes:

Toggle quote (14 lines)
> Hi again,
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> [2023-01-16T18:01:59+0100]:
>>
>> Don't forget to CC my email when sending a revised v2 version with the
>> above :-).
>
> I CCed you, but Google doesn't like another quirk in my E-mail
> configuration which I don't have motivation to debug :-S
>
> I therefore sending you a small ping from my work E-mail, and I'm
> attaching the 3 updated patches just in case it is more convenient
> for you.

Thanks! I've made cosmetic adjustments to the update commit like so:

Toggle snippet (24 lines)
modified gnu/packages/gtk.scm
@@ -2968,12 +2968,17 @@ (define-public volctl
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "volctl/xwrappers.py"
(("libXfixes.so")
- (string-append (search-input-file inputs "/lib/libXfixes.so")))))))))
+ (string-append (search-input-file inputs
+ "/lib/libXfixes.so")))))))))
(inputs
(list libxfixes))
(propagated-inputs
- (list python-click python-pycairo python-pygobject python-pyyaml
- python-pulsectl gtk+))
+ (list python-click
+ python-pycairo
+ python-pygobject
+ python-pyyaml
+ python-pulsectl
+ gtk+))
(home-page "https://buzz.github.io/volctl/")
(synopsis "Per-application volume control and on-screen display")
(description "Volctl is a PulseAudio-enabled tray icon volume control and

added a proper GNU Change Log to the commit message:

Toggle snippet (11 lines)
gnu: volctl: Update to 0.9.3.

Fixes <https://issues.guix.gnu.org/58120>.

* gnu/packages/gtk.scm (volctl): Update to 0.9.3.
[arguments]: Update substitutions in patch-path phase and delete
trailing #t.
[inputs]: Delete pulseaudio. Move gtk+ to...
[propagated-inputs] ... here.

and pushed the series!

Notice that in my environment, it doesn't run:

Toggle snippet (8 lines)
$ volctl
PulseAudio connected
Warning: Could not embed Gtk.StatusIcon.
Fatal error: Could not create a status icon. Are you sure you have a working notification area?
pulseaudio disconnected
Alarm clock

although I have 'dunst' running on top of my ratpoison WM.

--
Thanks,
Maxim
Closed
Sergiu Ivanov wrote 2 years ago
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 60840-done@debbugs.gnu.org)
878rht400n.fsf@univ-evry.fr
Hello,

Maxim Cournoyer <maxim.cournoyer@gmail.com> [2023-01-22T22:28:06+0100]:
[...]
Toggle quote (8 lines)
>> I CCed you, but Google doesn't like another quirk in my E-mail
>> configuration which I don't have motivation to debug :-S
>>
>> I therefore sending you a small ping from my work E-mail, and I'm
>> attaching the 3 updated patches just in case it is more convenient
>> for you.
>
> Thanks! I've made cosmetic adjustments to the update commit like so:
[...]

Thank you!

Toggle quote (6 lines)
> added a proper GNU Change Log to the commit message:
>
> gnu: volctl: Update to 0.9.3.
>
> Fixes <https://issues.guix.gnu.org/58120>.

Ah! Incidentally, this is what I was aiming to fix when I started the
work on this patch series, but guix lint told me I could update the
version… :D

Toggle quote (9 lines)
> * gnu/packages/gtk.scm (volctl): Update to 0.9.3.
> [arguments]: Update substitutions in patch-path phase and delete
> trailing #t.
> [inputs]: Delete pulseaudio. Move gtk+ to...
> [propagated-inputs] ... here.
>
>
> and pushed the series!

Cool!

Toggle quote (11 lines)
> Notice that in my environment, it doesn't run:
>
> $ volctl
> PulseAudio connected
> Warning: Could not embed Gtk.StatusIcon.
> Fatal error: Could not create a status icon. Are you sure you have a working notification area?
> pulseaudio disconnected
> Alarm clock
>
> although I have 'dunst' running on top of my ratpoison WM.

I tested the new version with ./pre-inst-env guix shell volctl and
everything looked fine with the default systray of EXWM.

I will do a global system update by the end of the week and will see if
I can reproduce and fix the issue.

-
Sergiu
Closed
?
Your comment

This issue is archived.

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

To respond to this issue using the mumi CLI, first switch to it
mumi current 60840
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
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help