[bug#60840,2/3] gnu: packages: Add python-pulsectl.
Commit Message
Comments
Hello,
Sergiu Ivanov <sivanov@colimite.fr> writes:
>>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!
> ---
> 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).
> + #: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).
> + (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.")
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 :-).
Hi again,
Sergiu Ivanov <sivanov@colimite.fr> writes:
>>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.
[...]
> +(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.
Hello,
Sergiu Ivanov <sergiu.ivanov@univ-evry.fr> writes:
> 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:
--8<---------------cut here---------------start------------->8---
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
--8<---------------cut here---------------end--------------->8---
added a proper GNU Change Log to the commit message:
--8<---------------cut here---------------start------------->8---
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.
--8<---------------cut here---------------end--------------->8---
and pushed the series!
Notice that in my environment, it doesn't run:
--8<---------------cut here---------------start------------->8---
$ 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
--8<---------------cut here---------------end--------------->8---
although I have 'dunst' running on top of my ratpoison WM.
Hello,
Maxim Cournoyer <maxim.cournoyer@gmail.com> [2023-01-22T22:28:06+0100]:
[...]
>> 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!
> 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
> * 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!
> 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
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(+)
@@ -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