* [bug#74120] [PATCH] gnu: Add rust-speakersafetyd-1.
@ 2024-10-30 19:41 Roman Scherer
2024-11-03 20:48 ` Nicolas Graves via Guix-patches via
2024-11-06 17:08 ` [bug#74120] [PATCH v2] " Roman Scherer
0 siblings, 2 replies; 4+ messages in thread
From: Roman Scherer @ 2024-10-30 19:41 UTC (permalink / raw)
To: 74120; +Cc: Roman Scherer, Efraim Flashner
* gnu/packages/crates-io.scm (rust-speakersafetyd-1): New variable.
Change-Id: I02eb6e0c23fd04cff86b67ed30e8867af07a724b
---
gnu/packages/crates-io.scm | 55 ++++++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index c08ccd29fd..83b543f552 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -73271,6 +73271,61 @@ (define-public rust-sourcemap-6
(description "This package provides basic sourcemap handling for Rust.")
(license license:bsd-3)))
+(define-public rust-speakersafetyd-1
+ (package
+ (name "rust-speakersafetyd")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "speakersafetyd" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1dvyj194niz5i4rldsqvjmz8j7df9w9qpvf9rwg3vsnzc2mjh0zg"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-alsa" ,rust-alsa-0.8)
+ ("rust-chrono" ,rust-chrono-0.4)
+ ("rust-clap" ,rust-clap-4)
+ ("rust-clap-verbosity-flag" ,rust-clap-verbosity-flag-2)
+ ("rust-configparser" ,rust-configparser-3)
+ ("rust-json" ,rust-json-0.12)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-signal-hook" ,rust-signal-hook-0.3)
+ ("rust-simple-logger" ,rust-simple-logger-1))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "src/main.rs"
+ (("share/speakersafetyd") "share")
+ (("/usr/local") (assoc-ref outputs "out")))))
+ (add-after 'unpack 'remove-systemd-udev-rules
+ (lambda _
+ (substitute* "95-speakersafetyd.rules"
+ ((".*SYSTEMD_WANTS.*") ""))))
+ (add-after 'install 'install-conf
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((target (string-append (assoc-ref outputs "out") "/share")))
+ (copy-recursively "conf" target))))
+ (add-after 'install 'install-udev-rules
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (mkdir-p (string-append out "/lib/udev/rules.d"))
+ (copy-file "95-speakersafetyd.rules"
+ (string-append out
+ "/lib/udev/rules.d/"
+ "95-speakersafetyd.rules"))))))))
+ (inputs (list alsa-lib))
+ (native-inputs (list pkg-config))
+ (home-page "https://github.com/AsahiLinux/speakersafetyd/")
+ (synopsis "Speaker protection daemon")
+ (description "Speakersafetyd is a userspace daemon written in Rust that
+implements an analogue of the Texas Instruments Smart Amp speaker protection
+model.")
+ (license license:expat)))
+
(define-public rust-special-0.8
(package
(name "rust-special")
base-commit: d6f775c30c6f47e174f6110d1089edc6315600e4
--
2.46.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [bug#74120] [PATCH] gnu: Add rust-speakersafetyd-1.
2024-10-30 19:41 [bug#74120] [PATCH] gnu: Add rust-speakersafetyd-1 Roman Scherer
@ 2024-11-03 20:48 ` Nicolas Graves via Guix-patches via
2024-11-06 17:15 ` Roman Scherer
2024-11-06 17:08 ` [bug#74120] [PATCH v2] " Roman Scherer
1 sibling, 1 reply; 4+ messages in thread
From: Nicolas Graves via Guix-patches via @ 2024-11-03 20:48 UTC (permalink / raw)
To: Roman Scherer, 74120; +Cc: Roman Scherer, Efraim Flashner
Hi Roman,
Just so you know, you can probably use gexpressions for the phases, this
would make it easier to read.
Can you resend a revised patch? Thanks!
--
Best regards,
Nicolas Graves
^ permalink raw reply [flat|nested] 4+ messages in thread
* [bug#74120] [PATCH v2] gnu: Add rust-speakersafetyd-1.
2024-10-30 19:41 [bug#74120] [PATCH] gnu: Add rust-speakersafetyd-1 Roman Scherer
2024-11-03 20:48 ` Nicolas Graves via Guix-patches via
@ 2024-11-06 17:08 ` Roman Scherer
1 sibling, 0 replies; 4+ messages in thread
From: Roman Scherer @ 2024-11-06 17:08 UTC (permalink / raw)
To: 74120; +Cc: Roman Scherer, Efraim Flashner
* gnu/packages/crates-io.scm (rust-speakersafetyd-1): New variable.
Change-Id: I02eb6e0c23fd04cff86b67ed30e8867af07a724b
---
gnu/packages/crates-io.scm | 52 ++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index c08ccd29fd..22b28e0845 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -73271,6 +73271,58 @@ (define-public rust-sourcemap-6
(description "This package provides basic sourcemap handling for Rust.")
(license license:bsd-3)))
+(define-public rust-speakersafetyd-1
+ (package
+ (name "rust-speakersafetyd")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "speakersafetyd" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1dvyj194niz5i4rldsqvjmz8j7df9w9qpvf9rwg3vsnzc2mjh0zg"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list
+ #:cargo-inputs `(("rust-alsa" ,rust-alsa-0.8)
+ ("rust-chrono" ,rust-chrono-0.4)
+ ("rust-clap" ,rust-clap-4)
+ ("rust-clap-verbosity-flag" ,rust-clap-verbosity-flag-2)
+ ("rust-configparser" ,rust-configparser-3)
+ ("rust-json" ,rust-json-0.12)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-signal-hook" ,rust-signal-hook-0.3)
+ ("rust-simple-logger" ,rust-simple-logger-1))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda _
+ (substitute* "src/main.rs"
+ (("/usr/local") #$output))))
+ (add-after 'unpack 'remove-systemd-udev-rules
+ (lambda _
+ (substitute* "95-speakersafetyd.rules"
+ ((".*SYSTEMD_WANTS.*") ""))))
+ (add-after 'install 'install-data
+ (lambda _
+ (setenv "BINDIR" (string-append #$output "/bin"))
+ (setenv "UNITDIR" (string-append #$output "/lib/systemd/system"))
+ (setenv "UDEVDIR" (string-append #$output "/lib/udev/rules.d"))
+ (setenv "TMPFILESDIR" (string-append #$output "/usr/lib/tmpfiles.d"))
+ (setenv "SHAREDIR" (string-append #$output "/usr/share"))
+ (setenv "VARDIR" (string-append #$output "/var"))
+ (invoke "make" "install-data"))))))
+ (inputs (list alsa-lib))
+ (native-inputs (list pkg-config))
+ (home-page "https://github.com/AsahiLinux/speakersafetyd/")
+ (synopsis "Speaker protection daemon")
+ (description "Speakersafetyd is a userspace daemon written in Rust that
+implements an analogue of the Texas Instruments Smart Amp speaker protection
+model.")
+ (license license:expat)))
+
(define-public rust-special-0.8
(package
(name "rust-special")
base-commit: 54f82bcf22178d89140a131332a9e036ac386657
--
2.46.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [bug#74120] [PATCH] gnu: Add rust-speakersafetyd-1.
2024-11-03 20:48 ` Nicolas Graves via Guix-patches via
@ 2024-11-06 17:15 ` Roman Scherer
0 siblings, 0 replies; 4+ messages in thread
From: Roman Scherer @ 2024-11-06 17:15 UTC (permalink / raw)
To: Nicolas Graves; +Cc: Roman Scherer, 74120, Efraim Flashner
[-- Attachment #1: Type: text/plain, Size: 2988 bytes --]
Nicolas Graves <ngraves@ngraves.fr> writes:
Hi Nicolas,
thanks for the review. I sent a v2 where I now use g-expressions and use
the install-data target from the Makefile to install files.
I tested this with this speakersafteyd service which I'm going to send
soon as well. I paste it here to maybe double check the paths I plan to
use in the service.
----------------------------------------------------------------------
(define-module (asahi guix services speakersafetyd)
#:use-module (asahi guix packages crates-io)
#:use-module (gnu services base)
#:use-module (gnu services shepherd)
#:use-module (gnu services)
#:use-module (guix gexp)
#:use-module (guix records)
#:export (speakersafetyd-service-type))
(define-record-type* <speakersafetyd-configuration>
speakersafetyd-configuration
make-speakersafetyd-configuration
speakersafetyd-configuration?
(config-path speakersafetyd-configuration-config-path
(default "/usr/share/speakersafetyd"))
(blackbox speakersafetyd-configuration-blackbox
(default "/var/lib/speakersafetyd/blackbox"))
(max-reduction speakersafetyd-configuration-max-reduction
(default 7))
(package speakersafetyd-configuration-package
(default rust-speakersafetyd-1)))
(define (speakersafetyd-shepherd-service config)
(let ((blackbox (speakersafetyd-configuration-blackbox config))
(config-path (speakersafetyd-configuration-config-path config))
(max-reduction (speakersafetyd-configuration-max-reduction config))
(package (speakersafetyd-configuration-package config)))
(list (shepherd-service
(documentation "Speaker saftey daemon")
(provision '(speakersafetyd))
(requirement '(udev))
(start #~(make-forkexec-constructor
(list #$(file-append package "/bin/speakersafetyd")
"--config-path" #$(file-append package config-path)
"--blackbox-path" #$blackbox
"--max-reduction" (number->string #$max-reduction))))
(stop #~(make-kill-destructor))))))
(define speakersafetyd-service-type
(service-type
(name 'speakersafetyd)
(description "Speaker saftey daemon")
(extensions
(list (service-extension
profile-service-type
(compose list speakersafetyd-configuration-package))
(service-extension
shepherd-root-service-type
speakersafetyd-shepherd-service)
(service-extension
udev-service-type
(compose list speakersafetyd-configuration-package))))
(default-value (speakersafetyd-configuration))))
----------------------------------------------------------------------
Could you have another look, please?
Thanks, Roman.
> Hi Roman,
>
> Just so you know, you can probably use gexpressions for the phases, this
> would make it easier to read.
>
> Can you resend a revised patch? Thanks!
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 519 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-11-06 17:17 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-30 19:41 [bug#74120] [PATCH] gnu: Add rust-speakersafetyd-1 Roman Scherer
2024-11-03 20:48 ` Nicolas Graves via Guix-patches via
2024-11-06 17:15 ` Roman Scherer
2024-11-06 17:08 ` [bug#74120] [PATCH v2] " Roman Scherer
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).