summaryrefslogtreecommitdiff
path: root/gnu/packages/rust-apps.scm
diff options
context:
space:
mode:
authorRoman Scherer <roman@burningswell.com>2024-11-06 18:08:42 +0100
committerEfraim Flashner <efraim@flashner.co.il>2025-01-06 12:14:29 +0200
commit3424dd46a8a7f139297f214025d0ed64a7f46b3d (patch)
tree695a734180b7b91591b9a3de5d67dc23ce8c1b86 /gnu/packages/rust-apps.scm
parent8e7d1eeb8b3a875f90d9f245b2a11a54eb843f2d (diff)
gnu: Add speakersafetyd.
* gnu/packages/rust-apps.scm (speakersafetyd): New variable. Change-Id: I02eb6e0c23fd04cff86b67ed30e8867af07a724b Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Diffstat (limited to 'gnu/packages/rust-apps.scm')
-rw-r--r--gnu/packages/rust-apps.scm53
1 files changed, 53 insertions, 0 deletions
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 9affd370f8..ab609b0277 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -2689,6 +2689,59 @@ are parsed concurrently using a thread pool to utilize all cpu cores. A goal
of the project is to be runnable on untrusted networks without crashing.")
(license license:gpl3)))
+(define-public speakersafetyd
+ (package
+ (name "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
+ #:install-source? #f
+ #: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 tectonic
(package
(name "tectonic")