From 33780355c45f3eb644ab2c60fb1b57e4bc23e216 Mon Sep 17 00:00:00 2001 From: Jasi Date: Wed, 25 Jun 2025 16:13:52 -0400 Subject: [PATCH 1/8] speakersafetyd: add normalcea as maintainer --- pkgs/by-name/sp/speakersafetyd/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/sp/speakersafetyd/package.nix b/pkgs/by-name/sp/speakersafetyd/package.nix index 51f02ac93fa1..6507c7755fee 100644 --- a/pkgs/by-name/sp/speakersafetyd/package.nix +++ b/pkgs/by-name/sp/speakersafetyd/package.nix @@ -49,6 +49,7 @@ rustPlatform.buildRustPackage rec { mainProgram = "speakersafetyd"; homepage = "https://github.com/AsahiLinux/speakersafetyd"; maintainers = with maintainers; [ + normalcea flokli yuka ]; From 2a140ef32eb34efdb574f2204768731eec34a457 Mon Sep 17 00:00:00 2001 From: Jasi Date: Wed, 25 Jun 2025 17:09:21 -0400 Subject: [PATCH 2/8] speakersafetyd: use `fetchFromGitHub` over `fetchCrate` as fetcher --- pkgs/by-name/sp/speakersafetyd/package.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/sp/speakersafetyd/package.nix b/pkgs/by-name/sp/speakersafetyd/package.nix index 6507c7755fee..f9f83113fd7b 100644 --- a/pkgs/by-name/sp/speakersafetyd/package.nix +++ b/pkgs/by-name/sp/speakersafetyd/package.nix @@ -2,7 +2,7 @@ stdenv, lib, rustPlatform, - fetchCrate, + fetchFromGitHub, pkg-config, alsa-lib, rust, @@ -13,9 +13,11 @@ rustPlatform.buildRustPackage rec { pname = "speakersafetyd"; version = "1.0.2"; - src = fetchCrate { - inherit pname version; - hash = "sha256-3DzBNebg1y/+psD2zOpDsnRJmabQLeO1UMxPq9M0CsU="; + src = fetchFromGitHub { + owner = "AsahiLinux"; + repo = "speakersafetyd"; + tag = version; + hash = "sha256-ULAGdYUfeMlPki6DT2vD+tvDqKMxJtG16o/+7+ERsv4="; }; useFetchCargoVendor = true; cargoHash = "sha256-DnOnqi60JsRX8yqEM/5zZ3yX/rk85/ruwL3aW1FRXKg="; From b0104a221003649e9b46d8060896efebfd90d970 Mon Sep 17 00:00:00 2001 From: Jasi Date: Wed, 25 Jun 2025 17:07:12 -0400 Subject: [PATCH 3/8] speakersafetyd: remove unused attributes; use `finalAttrs` --- pkgs/by-name/sp/speakersafetyd/package.nix | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/sp/speakersafetyd/package.nix b/pkgs/by-name/sp/speakersafetyd/package.nix index f9f83113fd7b..79092541d6a2 100644 --- a/pkgs/by-name/sp/speakersafetyd/package.nix +++ b/pkgs/by-name/sp/speakersafetyd/package.nix @@ -5,21 +5,20 @@ fetchFromGitHub, pkg-config, alsa-lib, - rust, udevCheckHook, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "speakersafetyd"; version = "1.0.2"; src = fetchFromGitHub { owner = "AsahiLinux"; repo = "speakersafetyd"; - tag = version; + tag = finalAttrs.version; hash = "sha256-ULAGdYUfeMlPki6DT2vD+tvDqKMxJtG16o/+7+ERsv4="; }; - useFetchCargoVendor = true; + cargoHash = "sha256-DnOnqi60JsRX8yqEM/5zZ3yX/rk85/ruwL3aW1FRXKg="; nativeBuildInputs = [ @@ -58,4 +57,4 @@ rustPlatform.buildRustPackage rec { license = licenses.mit; platforms = platforms.linux; }; -} +}) From e8e99e359532cb20561cb63aebab3657b8e58e0b Mon Sep 17 00:00:00 2001 From: Jasi Date: Wed, 25 Jun 2025 17:11:48 -0400 Subject: [PATCH 4/8] speakersafetyd: use `DESTDIR` variable in `installFlags` attribute --- pkgs/by-name/sp/speakersafetyd/package.nix | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/sp/speakersafetyd/package.nix b/pkgs/by-name/sp/speakersafetyd/package.nix index 79092541d6a2..1f4226419f55 100644 --- a/pkgs/by-name/sp/speakersafetyd/package.nix +++ b/pkgs/by-name/sp/speakersafetyd/package.nix @@ -35,11 +35,12 @@ rustPlatform.buildRustPackage (finalAttrs: { ''; installFlags = [ - "BINDIR=$(out)/bin" - "UNITDIR=$(out)/lib/systemd/system" - "UDEVDIR=$(out)/lib/udev/rules.d" - "SHAREDIR=$(out)/share" - "TMPFILESDIR=$(out)/lib/tmpfiles.d" + "DESTDIR=$(out)" + "BINDIR=bin" + "UNITDIR=lib/systemd/system" + "UDEVDIR=lib/udev/rules.d" + "SHAREDIR=share" + "TMPFILESDIR=lib/tmpfiles.d" ]; dontCargoInstall = true; From 9e2581c4de7374636b7f0d989252cc168261f934 Mon Sep 17 00:00:00 2001 From: Jasi Date: Wed, 25 Jun 2025 17:26:20 -0400 Subject: [PATCH 5/8] speakersafetyd: shorten package description --- pkgs/by-name/sp/speakersafetyd/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/sp/speakersafetyd/package.nix b/pkgs/by-name/sp/speakersafetyd/package.nix index 1f4226419f55..846a1473c34e 100644 --- a/pkgs/by-name/sp/speakersafetyd/package.nix +++ b/pkgs/by-name/sp/speakersafetyd/package.nix @@ -47,7 +47,7 @@ rustPlatform.buildRustPackage (finalAttrs: { doInstallCheck = true; meta = with lib; { - description = "Userspace daemon written in Rust that implements an analogue of the Texas Instruments Smart Amp speaker protection model"; + description = "Userspace daemon that implements the Smart Amp protection model"; mainProgram = "speakersafetyd"; homepage = "https://github.com/AsahiLinux/speakersafetyd"; maintainers = with maintainers; [ From 0c54773e7fcdd39d18d1665d4caeb0609b2ce229 Mon Sep 17 00:00:00 2001 From: Jasi Date: Wed, 25 Jun 2025 17:27:32 -0400 Subject: [PATCH 6/8] speakersafetyd: remove `with lib;` usage --- pkgs/by-name/sp/speakersafetyd/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/sp/speakersafetyd/package.nix b/pkgs/by-name/sp/speakersafetyd/package.nix index 846a1473c34e..15fc619dc4a8 100644 --- a/pkgs/by-name/sp/speakersafetyd/package.nix +++ b/pkgs/by-name/sp/speakersafetyd/package.nix @@ -46,16 +46,16 @@ rustPlatform.buildRustPackage (finalAttrs: { dontCargoInstall = true; doInstallCheck = true; - meta = with lib; { + meta = { description = "Userspace daemon that implements the Smart Amp protection model"; mainProgram = "speakersafetyd"; homepage = "https://github.com/AsahiLinux/speakersafetyd"; - maintainers = with maintainers; [ + maintainers = with lib.maintainers; [ normalcea flokli yuka ]; - license = licenses.mit; - platforms = platforms.linux; + license = lib.licenses.mit; + platforms = lib.platforms.linux; }; }) From f6ecfe5d2b4964d3defa725b6059bc95d004e6fa Mon Sep 17 00:00:00 2001 From: Jasi Date: Wed, 25 Jun 2025 17:32:07 -0400 Subject: [PATCH 7/8] speakersafetyd: add `nix-update-script` --- pkgs/by-name/sp/speakersafetyd/package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/by-name/sp/speakersafetyd/package.nix b/pkgs/by-name/sp/speakersafetyd/package.nix index 15fc619dc4a8..5a2a940ad4ad 100644 --- a/pkgs/by-name/sp/speakersafetyd/package.nix +++ b/pkgs/by-name/sp/speakersafetyd/package.nix @@ -6,6 +6,7 @@ pkg-config, alsa-lib, udevCheckHook, + nix-update-script, }: rustPlatform.buildRustPackage (finalAttrs: { @@ -46,6 +47,10 @@ rustPlatform.buildRustPackage (finalAttrs: { dontCargoInstall = true; doInstallCheck = true; + passthru = { + updateScript = nix-update-script { }; + }; + meta = { description = "Userspace daemon that implements the Smart Amp protection model"; mainProgram = "speakersafetyd"; From 4ca8227f8a52ae4b2708e15173af9f7b0b66fd54 Mon Sep 17 00:00:00 2001 From: Jasi Date: Thu, 26 Jun 2025 16:56:12 -0400 Subject: [PATCH 8/8] =?UTF-8?q?speakersafetyd:=201.0.2=20=E2=86=92=201.1.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/by-name/sp/speakersafetyd/package.nix | 21 ++++++++++++------- .../speakersafetyd/remove-install-paths.patch | 16 ++++++++++++++ 2 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 pkgs/by-name/sp/speakersafetyd/remove-install-paths.patch diff --git a/pkgs/by-name/sp/speakersafetyd/package.nix b/pkgs/by-name/sp/speakersafetyd/package.nix index 5a2a940ad4ad..ec73d4cbd676 100644 --- a/pkgs/by-name/sp/speakersafetyd/package.nix +++ b/pkgs/by-name/sp/speakersafetyd/package.nix @@ -11,16 +11,20 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "speakersafetyd"; - version = "1.0.2"; + version = "1.1.2"; src = fetchFromGitHub { owner = "AsahiLinux"; repo = "speakersafetyd"; tag = finalAttrs.version; - hash = "sha256-ULAGdYUfeMlPki6DT2vD+tvDqKMxJtG16o/+7+ERsv4="; + hash = "sha256-sSGoF2c5HfPM2FBrBJwJ9NvExYijGx6JH1bJp3epfe0="; }; - cargoHash = "sha256-DnOnqi60JsRX8yqEM/5zZ3yX/rk85/ruwL3aW1FRXKg="; + cargoHash = "sha256-9XbrIY1VwnHtqi/ZfS952SyjNjA/TJRdOqCsPReZI8o="; + + patches = [ + ./remove-install-paths.patch + ]; nativeBuildInputs = [ pkg-config @@ -29,10 +33,13 @@ rustPlatform.buildRustPackage (finalAttrs: { buildInputs = [ alsa-lib ]; postPatch = '' - substituteInPlace speakersafetyd.service --replace "/usr" "$out" - substituteInPlace Makefile --replace "target/release" "target/${stdenv.hostPlatform.rust.cargoShortTarget}/$cargoBuildType" - # creating files in /var does not make sense in a nix package - substituteInPlace Makefile --replace 'install -dDm0755 $(DESTDIR)/$(VARDIR)/lib/speakersafetyd/blackbox' "" + substituteInPlace speakersafetyd.service \ + --replace-fail "/usr" \ + "$out" + + substituteInPlace Makefile \ + --replace-fail "target/release" \ + "target/${stdenv.hostPlatform.rust.cargoShortTarget}/$cargoBuildType" \ ''; installFlags = [ diff --git a/pkgs/by-name/sp/speakersafetyd/remove-install-paths.patch b/pkgs/by-name/sp/speakersafetyd/remove-install-paths.patch new file mode 100644 index 000000000000..9581dc7ca1e5 --- /dev/null +++ b/pkgs/by-name/sp/speakersafetyd/remove-install-paths.patch @@ -0,0 +1,16 @@ +diff --git a/Makefile b/Makefile +index 41bf7b4..ca14be7 100644 +--- a/Makefile ++++ b/Makefile +@@ -24,11 +24,8 @@ install-data: + install -pm0644 95-speakersafetyd.rules $(DESTDIR)/$(UDEVDIR)/95-speakersafetyd.rules + install -dDm0755 $(DESTDIR)/$(SHAREDIR)/speakersafetyd/apple + install -pm0644 -t $(DESTDIR)/$(SHAREDIR)/speakersafetyd/apple $(wildcard conf/apple/*) +- install -dDm0755 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/$(VARDIR)/lib/speakersafetyd +- install -dDm0700 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/$(VARDIR)/lib/speakersafetyd/blackbox + install -dDm0755 $(DESTDIR)/$(TMPFILESDIR) + install -pm0644 speakersafetyd.tmpfiles $(DESTDIR)/$(TMPFILESDIR)/speakersafetyd.conf +- install -dDm0755 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/run/speakersafetyd + + uninstall: + rm -f $(DESTDIR)/$(BINDIR)/speakersafetyd $(DESTDIR)/$(UNITDIR)/speakersafetyd.service $(DESTDIR)/$(UDEVDIR)/95-speakersafetyd.rules $(DESTDIR)/$(TMPFILESDIR)/speakersafetyd.conf