From acc1b3260e9291eadd678096895f0f852b81e585 Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 12 Jul 2024 17:53:28 -0400 Subject: [PATCH 01/10] spotifyd: set default arguments internally --- pkgs/applications/audio/spotifyd/default.nix | 10 +++++----- pkgs/top-level/all-packages.nix | 7 +------ 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/pkgs/applications/audio/spotifyd/default.nix b/pkgs/applications/audio/spotifyd/default.nix index 13c85e7d3584..c8745947d6a8 100644 --- a/pkgs/applications/audio/spotifyd/default.nix +++ b/pkgs/applications/audio/spotifyd/default.nix @@ -1,8 +1,8 @@ -{ lib, stdenv, fetchFromGitHub, rustPackages, pkg-config, openssl -, withALSA ? true, alsa-lib -, withPulseAudio ? false, libpulseaudio -, withPortAudio ? false, portaudio -, withMpris ? false +{ lib, stdenv, config, fetchFromGitHub, rustPackages, pkg-config, openssl +, withALSA ? stdenv.isLinux, alsa-lib +, withPulseAudio ? config.pulseaudio or stdenv.isLinux, libpulseaudio +, withPortAudio ? stdenv.isDarwin, portaudio +, withMpris ? stdenv.isLinux , withKeyring ? false , dbus }: diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1e010edf26b9..7b5dbfd53952 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -31378,12 +31378,7 @@ with pkgs; spotify-cli-linux = callPackage ../applications/audio/spotify-cli-linux { }; - spotifyd = callPackage ../applications/audio/spotifyd { - withALSA = stdenv.isLinux; - withPulseAudio = config.pulseaudio or stdenv.isLinux; - withPortAudio = stdenv.isDarwin; - withMpris = stdenv.isLinux; - }; + spotifyd = callPackage ../applications/audio/spotifyd { }; srain = callPackage ../applications/networking/irc/srain { }; From e932f90954fb9f0a3e2658d2a748c6b208a0a827 Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 12 Jul 2024 17:54:28 -0400 Subject: [PATCH 02/10] spotifyd: migrate to by-name --- .../spotifyd/default.nix => by-name/sp/spotifyd/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 2 deletions(-) rename pkgs/{applications/audio/spotifyd/default.nix => by-name/sp/spotifyd/package.nix} (100%) diff --git a/pkgs/applications/audio/spotifyd/default.nix b/pkgs/by-name/sp/spotifyd/package.nix similarity index 100% rename from pkgs/applications/audio/spotifyd/default.nix rename to pkgs/by-name/sp/spotifyd/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7b5dbfd53952..d933cf79d38a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -31378,8 +31378,6 @@ with pkgs; spotify-cli-linux = callPackage ../applications/audio/spotify-cli-linux { }; - spotifyd = callPackage ../applications/audio/spotifyd { }; - srain = callPackage ../applications/networking/irc/srain { }; super-productivity = callPackage ../applications/office/super-productivity { }; From c2ebccb950423d7d3b57de1457e3ec66a90f559e Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 12 Jul 2024 17:55:35 -0400 Subject: [PATCH 03/10] spotifyd: format with nixfmt --- pkgs/by-name/sp/spotifyd/package.nix | 35 ++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/pkgs/by-name/sp/spotifyd/package.nix b/pkgs/by-name/sp/spotifyd/package.nix index c8745947d6a8..37e1bfb339fb 100644 --- a/pkgs/by-name/sp/spotifyd/package.nix +++ b/pkgs/by-name/sp/spotifyd/package.nix @@ -1,10 +1,20 @@ -{ lib, stdenv, config, fetchFromGitHub, rustPackages, pkg-config, openssl -, withALSA ? stdenv.isLinux, alsa-lib -, withPulseAudio ? config.pulseaudio or stdenv.isLinux, libpulseaudio -, withPortAudio ? stdenv.isDarwin, portaudio -, withMpris ? stdenv.isLinux -, withKeyring ? false -, dbus +{ + lib, + stdenv, + config, + fetchFromGitHub, + rustPackages, + pkg-config, + openssl, + withALSA ? stdenv.isLinux, + alsa-lib, + withPulseAudio ? config.pulseaudio or stdenv.isLinux, + libpulseaudio, + withPortAudio ? stdenv.isDarwin, + portaudio, + withMpris ? stdenv.isLinux, + withKeyring ? false, + dbus, }: rustPackages.rustPlatform.buildRustPackage rec { @@ -22,14 +32,16 @@ rustPackages.rustPlatform.buildRustPackage rec { nativeBuildInputs = [ pkg-config ]; - buildInputs = lib.optionals stdenv.isLinux [ openssl ] + buildInputs = + lib.optionals stdenv.isLinux [ openssl ] ++ lib.optional withALSA alsa-lib ++ lib.optional withPulseAudio libpulseaudio ++ lib.optional withPortAudio portaudio ++ lib.optional (withMpris || withKeyring) dbus; buildNoDefaultFeatures = true; - buildFeatures = lib.optional withALSA "alsa_backend" + buildFeatures = + lib.optional withALSA "alsa_backend" ++ lib.optional withPulseAudio "pulseaudio_backend" ++ lib.optional withPortAudio "portaudio_backend" ++ lib.optional withMpris "dbus_mpris" @@ -42,7 +54,10 @@ rustPackages.rustPlatform.buildRustPackage rec { homepage = "https://spotifyd.rs/"; changelog = "https://github.com/Spotifyd/spotifyd/blob/${src.rev}/CHANGELOG.md"; license = licenses.gpl3Plus; - maintainers = with maintainers; [ anderslundstedt Br1ght0ne ]; + maintainers = with maintainers; [ + anderslundstedt + Br1ght0ne + ]; platforms = platforms.unix; mainProgram = "spotifyd"; }; From b3cd2a1df25a1ffdcde6fe4c143e9a2ac0d7e95e Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 12 Jul 2024 17:56:02 -0400 Subject: [PATCH 04/10] spotifyd: modernize Adds updateScript to help in maintenance https://github.com/NixOS/nixpkgs/issues/208242 --- pkgs/by-name/sp/spotifyd/package.nix | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/sp/spotifyd/package.nix b/pkgs/by-name/sp/spotifyd/package.nix index 37e1bfb339fb..29a739f177cb 100644 --- a/pkgs/by-name/sp/spotifyd/package.nix +++ b/pkgs/by-name/sp/spotifyd/package.nix @@ -15,6 +15,7 @@ withMpris ? stdenv.isLinux, withKeyring ? false, dbus, + nix-update-script, }: rustPackages.rustPlatform.buildRustPackage rec { @@ -49,16 +50,20 @@ rustPackages.rustPlatform.buildRustPackage rec { doCheck = false; - meta = with lib; { + passthru = { + updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; }; + }; + + meta = { description = "Open source Spotify client running as a UNIX daemon"; homepage = "https://spotifyd.rs/"; changelog = "https://github.com/Spotifyd/spotifyd/blob/${src.rev}/CHANGELOG.md"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ anderslundstedt Br1ght0ne ]; - platforms = platforms.unix; + platforms = lib.platforms.unix; mainProgram = "spotifyd"; }; } From 13c5512f1e1462b80eb66dcd209c587c2228da7c Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 12 Jul 2024 17:57:05 -0400 Subject: [PATCH 05/10] spotifyd: add getchoo as maintainer --- pkgs/by-name/sp/spotifyd/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/sp/spotifyd/package.nix b/pkgs/by-name/sp/spotifyd/package.nix index 29a739f177cb..ff4c03e28e33 100644 --- a/pkgs/by-name/sp/spotifyd/package.nix +++ b/pkgs/by-name/sp/spotifyd/package.nix @@ -62,6 +62,7 @@ rustPackages.rustPlatform.buildRustPackage rec { maintainers = with lib.maintainers; [ anderslundstedt Br1ght0ne + getchoo ]; platforms = lib.platforms.unix; mainProgram = "spotifyd"; From 94a6fbf3213f8e0599a92b2b451191df6865e11b Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 12 Jul 2024 18:02:59 -0400 Subject: [PATCH 06/10] spotifyd: add version test --- pkgs/by-name/sp/spotifyd/package.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/by-name/sp/spotifyd/package.nix b/pkgs/by-name/sp/spotifyd/package.nix index ff4c03e28e33..679a15ecb37f 100644 --- a/pkgs/by-name/sp/spotifyd/package.nix +++ b/pkgs/by-name/sp/spotifyd/package.nix @@ -16,6 +16,8 @@ withKeyring ? false, dbus, nix-update-script, + testers, + spotifyd, }: rustPackages.rustPlatform.buildRustPackage rec { @@ -51,6 +53,10 @@ rustPackages.rustPlatform.buildRustPackage rec { doCheck = false; passthru = { + tests.version = testers.testVersion { + package = spotifyd; + version = builtins.head (lib.splitString "-" version); + }; updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; }; }; From fb033f0be1953936f42767db575813d6ee4938c7 Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 12 Jul 2024 18:07:51 -0400 Subject: [PATCH 07/10] spotifyd: 0.3.5-unstable-2024-02-18 -> 0.3.5-unstable-2024-07-10 --- pkgs/by-name/sp/spotifyd/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/sp/spotifyd/package.nix b/pkgs/by-name/sp/spotifyd/package.nix index 679a15ecb37f..bb819651bda4 100644 --- a/pkgs/by-name/sp/spotifyd/package.nix +++ b/pkgs/by-name/sp/spotifyd/package.nix @@ -22,16 +22,16 @@ rustPackages.rustPlatform.buildRustPackage rec { pname = "spotifyd"; - version = "0.3.5-unstable-2024-02-18"; + version = "0.3.5-unstable-2024-07-10"; src = fetchFromGitHub { owner = "Spotifyd"; repo = "spotifyd"; - rev = "ff2f7a06e54bf05afd57a0243dc9f67abc15f040"; - hash = "sha256-nebAd4a+ht+blRP52OF830/Dm15ZPwRL4IPWmmT9ViM="; + rev = "8fb0b9a5cce46d2e99e127881a04fb1986e58008"; + hash = "sha256-wEPdf5ylnmu/SqoaWHxAzIEUpdRhhZfdQ623zYzcU+s="; }; - cargoHash = "sha256-6BRIMTrWTwvX3yIGEYEvigMT+n4EtaruMdrej2Dd49w="; + cargoHash = "sha256-+xTmkp+hGzmz4XrfKqPCtlpsX8zLA8XgJWM1SPunjq4="; nativeBuildInputs = [ pkg-config ]; From 41e79c9e11005208bbd929588ed880cdd7727da7 Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 12 Jul 2024 18:24:40 -0400 Subject: [PATCH 08/10] spotifyd: add `withJack` option this allows using the rodiojack backend added in https://github.com/Spotifyd/spotifyd/pull/1281 --- pkgs/by-name/sp/spotifyd/package.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/sp/spotifyd/package.nix b/pkgs/by-name/sp/spotifyd/package.nix index bb819651bda4..e1393e447d2a 100644 --- a/pkgs/by-name/sp/spotifyd/package.nix +++ b/pkgs/by-name/sp/spotifyd/package.nix @@ -8,6 +8,8 @@ openssl, withALSA ? stdenv.isLinux, alsa-lib, + withJack ? stdenv.isLinux, + libjack2, withPulseAudio ? config.pulseaudio or stdenv.isLinux, libpulseaudio, withPortAudio ? stdenv.isDarwin, @@ -37,7 +39,8 @@ rustPackages.rustPlatform.buildRustPackage rec { buildInputs = lib.optionals stdenv.isLinux [ openssl ] - ++ lib.optional withALSA alsa-lib + ++ lib.optional (withALSA || withJack) alsa-lib + ++ lib.optional withJack libjack2 ++ lib.optional withPulseAudio libpulseaudio ++ lib.optional withPortAudio portaudio ++ lib.optional (withMpris || withKeyring) dbus; @@ -45,6 +48,7 @@ rustPackages.rustPlatform.buildRustPackage rec { buildNoDefaultFeatures = true; buildFeatures = lib.optional withALSA "alsa_backend" + ++ lib.optional withJack "rodiojack_backend" ++ lib.optional withPulseAudio "pulseaudio_backend" ++ lib.optional withPortAudio "portaudio_backend" ++ lib.optional withMpris "dbus_mpris" From b0df3a330f781f791d33318bc9773b4f29fd6152 Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 12 Jul 2024 18:26:47 -0400 Subject: [PATCH 09/10] spotifyd: enable `withKeyring` by default This is a standard feature described in documentation and very useful in configuring spotify declaratively without leaking secrets --- pkgs/by-name/sp/spotifyd/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/sp/spotifyd/package.nix b/pkgs/by-name/sp/spotifyd/package.nix index e1393e447d2a..83240137a064 100644 --- a/pkgs/by-name/sp/spotifyd/package.nix +++ b/pkgs/by-name/sp/spotifyd/package.nix @@ -15,7 +15,7 @@ withPortAudio ? stdenv.isDarwin, portaudio, withMpris ? stdenv.isLinux, - withKeyring ? false, + withKeyring ? true, dbus, nix-update-script, testers, From 93a6079c14e89275689a36865b2b910f214c438a Mon Sep 17 00:00:00 2001 From: seth Date: Mon, 15 Jul 2024 12:46:35 -0400 Subject: [PATCH 10/10] spotifyd: only use dbus on linux --- pkgs/by-name/sp/spotifyd/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/sp/spotifyd/package.nix b/pkgs/by-name/sp/spotifyd/package.nix index 83240137a064..54e2b4dc3a02 100644 --- a/pkgs/by-name/sp/spotifyd/package.nix +++ b/pkgs/by-name/sp/spotifyd/package.nix @@ -43,7 +43,9 @@ rustPackages.rustPlatform.buildRustPackage rec { ++ lib.optional withJack libjack2 ++ lib.optional withPulseAudio libpulseaudio ++ lib.optional withPortAudio portaudio - ++ lib.optional (withMpris || withKeyring) dbus; + # The `dbus_keying` feature works on other platforms, but only requires + # `dbus` on Linux + ++ lib.optional ((withMpris || withKeyring) && stdenv.isLinux) dbus; buildNoDefaultFeatures = true; buildFeatures =