@@ -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")