about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/audio
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/audio')
-rw-r--r--nixpkgs/pkgs/tools/audio/abcm2ps/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/accuraterip-checksum/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/acousticbrainz-client/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/asap/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/audiowaveform/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/bark/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/builtin-plugins.nix82
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/common.nix8
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/audio/botamusique/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/catnip-gtk4/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/catnip/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/dsp/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/essentia-extractor/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/gvolicon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/headset-charge-indicator/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/linuxwave/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/mictray/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/midimonster/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/mp3cat/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/mpd-discord-rpc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/mpd-mpris/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/mpd-notification/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/mpd-sima/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/mpdas/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/mpdris2/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/nanotts/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/pasystray/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/patray/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/picotts/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/piper/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/pnmixer/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/pw-volume/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/spotdl/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/audio/stt/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/tidal-dl/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/unflac/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/video2midi/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/volctl/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/volumeicon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/whisper-ctranslate2/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/yabridgectl/default.nix1
43 files changed, 113 insertions, 39 deletions
diff --git a/nixpkgs/pkgs/tools/audio/abcm2ps/default.nix b/nixpkgs/pkgs/tools/audio/abcm2ps/default.nix
index 249b4ba1706c..c91457231716 100644
--- a/nixpkgs/pkgs/tools/audio/abcm2ps/default.nix
+++ b/nixpkgs/pkgs/tools/audio/abcm2ps/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     description = "A command line program which converts ABC to music sheet in PostScript or SVG format";
     platforms = platforms.unix;
     maintainers = [ maintainers.dotlambda ];
+    mainProgram = "abcm2ps";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/abcmidi/default.nix b/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
index 3d5474a0984a..b44f53fce10a 100644
--- a/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
+++ b/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "abcMIDI";
-  version = "2023.09.13";
+  version = "2023.11.17";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    hash = "sha256-rpGINfLuWHu6QA/30aI9B8Hmpfx1o6vstiQn+t0blxA=";
+    hash = "sha256-yWCHK7bi1kCZNWBhaLqilm/ZUv5YXUGi7W3PaRKA7ww=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/audio/accuraterip-checksum/default.nix b/nixpkgs/pkgs/tools/audio/accuraterip-checksum/default.nix
index 161e9848bea6..8658dfb5a7aa 100644
--- a/nixpkgs/pkgs/tools/audio/accuraterip-checksum/default.nix
+++ b/nixpkgs/pkgs/tools/audio/accuraterip-checksum/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
     platforms = with platforms; linux;
+    mainProgram = "accuraterip-checksum";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/acousticbrainz-client/default.nix b/nixpkgs/pkgs/tools/audio/acousticbrainz-client/default.nix
index 651605679684..1d4b59ed2c92 100644
--- a/nixpkgs/pkgs/tools/audio/acousticbrainz-client/default.nix
+++ b/nixpkgs/pkgs/tools/audio/acousticbrainz-client/default.nix
@@ -37,5 +37,6 @@ python3Packages.buildPythonApplication rec {
     # essentia-extractor is only available for those platforms
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = with maintainers; [ ];
+    mainProgram = "abzsubmit";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/asap/default.nix b/nixpkgs/pkgs/tools/audio/asap/default.nix
index c4a9b03039c5..ccdb5ed93039 100644
--- a/nixpkgs/pkgs/tools/audio/asap/default.nix
+++ b/nixpkgs/pkgs/tools/audio/asap/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "asap";
-  version = "6.0.0";
+  version = "6.0.1";
 
   src = fetchzip {
     url = "mirror://sourceforge/project/asap/asap/${version}/asap-${version}.tar.gz";
-    sha256 = "sha256-j7vznFI/Yg1yuRvYDmRSyHDfDN7iFV+b6MK2jdnaz6Q=";
+    sha256 = "sha256-nTnnRDYOkTmXfXPS1XIHaC2LHFfZz+gVInQ3satuyDM=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/tools/audio/audiowaveform/default.nix b/nixpkgs/pkgs/tools/audio/audiowaveform/default.nix
index 11dc8541c5b9..a5fff36322e4 100644
--- a/nixpkgs/pkgs/tools/audio/audiowaveform/default.nix
+++ b/nixpkgs/pkgs/tools/audio/audiowaveform/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ edbentley ];
+    mainProgram = "audiowaveform";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/bark/default.nix b/nixpkgs/pkgs/tools/audio/bark/default.nix
index f943b555b010..e866b1a18a3b 100644
--- a/nixpkgs/pkgs/tools/audio/bark/default.nix
+++ b/nixpkgs/pkgs/tools/audio/bark/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage {
     license = lib.licenses.agpl3Only;
     maintainers = with lib.maintainers; [ samw ];
     platforms = lib.platforms.linux;
+    mainProgram = "bark";
   };
 }
 
diff --git a/nixpkgs/pkgs/tools/audio/beets/builtin-plugins.nix b/nixpkgs/pkgs/tools/audio/beets/builtin-plugins.nix
index 1fef39ef72f5..e3bc10210441 100644
--- a/nixpkgs/pkgs/tools/audio/beets/builtin-plugins.nix
+++ b/nixpkgs/pkgs/tools/audio/beets/builtin-plugins.nix
@@ -17,20 +17,32 @@
   };
   acousticbrainz.propagatedBuildInputs = [ python3Packages.requests ];
   albumtypes = { };
-  aura.propagatedBuildInputs = with python3Packages; [ flask pillow ];
-  badfiles.wrapperBins = [ mp3val flac ];
+  aura = {
+    propagatedBuildInputs = with python3Packages; [ flask pillow ];
+    testPaths = [ ];
+  };
+  badfiles = {
+    testPaths = [ ];
+    wrapperBins = [ mp3val flac ];
+  };
   bareasc = { };
   beatport.propagatedBuildInputs = [ python3Packages.requests-oauthlib ];
-  bench = { };
-  bpd = { };
-  bpm = { };
-  bpsync = { };
+  bench.testPaths = [ ];
+  bpd.testPaths = [ ];
+  bpm.testPaths = [ ];
+  bpsync.testPaths = [ ];
   bucket = { };
-  chroma.propagatedBuildInputs = [ python3Packages.pyacoustid ];
+  chroma = {
+    propagatedBuildInputs = [ python3Packages.pyacoustid ];
+    testPaths = [ ];
+  };
   convert.wrapperBins = [ ffmpeg ];
-  deezer.propagatedBuildInputs = [ python3Packages.requests ];
+  deezer = {
+    propagatedBuildInputs = [ python3Packages.requests ];
+    testPaths = [ ];
+  };
   discogs.propagatedBuildInputs = with python3Packages; [ discogs-client requests ];
-  duplicates = { };
+  duplicates.testPaths = [ ];
   edit = { };
   embedart = {
     propagatedBuildInputs = with python3Packages; [ pillow ];
@@ -43,32 +55,44 @@
     wrapperBins = [ imagemagick ];
   };
   filefilter = { };
-  fish = { };
-  freedesktop = { };
-  fromfilename = { };
+  fish.testPaths = [ ];
+  freedesktop.testPaths = [ ];
+  fromfilename.testPaths = [ ];
   ftintitle = { };
-  fuzzy = { };
-  gmusic = { };
+  fuzzy.testPaths = [ ];
+  gmusic.testPaths = [ ];
   hook = { };
   ihate = { };
   importadded = { };
   importfeeds = { };
   info = { };
-  inline = { };
+  inline.testPaths = [ ];
   ipfs = { };
   keyfinder.wrapperBins = [ keyfinder-cli ];
-  kodiupdate.propagatedBuildInputs = [ python3Packages.requests ];
+  kodiupdate = {
+    propagatedBuildInputs = [ python3Packages.requests ];
+    testPaths = [ ];
+  };
   lastgenre.propagatedBuildInputs = [ python3Packages.pylast ];
-  lastimport.propagatedBuildInputs = [ python3Packages.pylast ];
-  loadext.propagatedBuildInputs = [ python3Packages.requests ];
+  lastimport = {
+    propagatedBuildInputs = [ python3Packages.pylast ];
+    testPaths = [ ];
+  };
+  loadext = {
+    propagatedBuildInputs = [ python3Packages.requests ];
+    testPaths = [ ];
+  };
   lyrics.propagatedBuildInputs = [ python3Packages.beautifulsoup4 ];
-  mbcollection = { };
+  mbcollection.testPaths = [ ];
   mbsubmit = { };
   mbsync = { };
   metasync = { };
-  missing = { };
+  missing.testPaths = [ ];
   mpdstats.propagatedBuildInputs = [ python3Packages.mpd2 ];
-  mpdupdate.propagatedBuildInputs = [ python3Packages.mpd2 ];
+  mpdupdate = {
+    propagatedBuildInputs = [ python3Packages.mpd2 ];
+    testPaths = [ ];
+  };
   parentwork = { };
   permissions = { };
   play = { };
@@ -76,12 +100,18 @@
   plexupdate = { };
   random = { };
   replaygain.wrapperBins = [ aacgain ffmpeg mp3gain ];
-  rewrite = { };
-  scrub = { };
+  rewrite.testPaths= [ ];
+  scrub.testPaths = [ ];
   smartplaylist = { };
-  sonosupdate.propagatedBuildInputs = [ python3Packages.soco ];
+  sonosupdate = {
+    propagatedBuildInputs = [ python3Packages.soco ];
+    testPaths = [ ];
+  };
   spotify = { };
-  subsonicplaylist.propagatedBuildInputs = [ python3Packages.requests ];
+  subsonicplaylist = {
+    propagatedBuildInputs = [ python3Packages.requests ];
+    testPaths = [ ];
+  };
   subsonicupdate.propagatedBuildInputs = [ python3Packages.requests ];
   the = { };
   thumbnails = {
@@ -89,7 +119,7 @@
     wrapperBins = [ imagemagick ];
   };
   types.testPaths = [ "test/test_types_plugin.py" ];
-  unimported = { };
+  unimported.testPaths = [ ];
   web.propagatedBuildInputs = [ python3Packages.flask ];
   zero = { };
 }
diff --git a/nixpkgs/pkgs/tools/audio/beets/common.nix b/nixpkgs/pkgs/tools/audio/beets/common.nix
index 37faff29c728..d4e589f098e4 100644
--- a/nixpkgs/pkgs/tools/audio/beets/common.nix
+++ b/nixpkgs/pkgs/tools/audio/beets/common.nix
@@ -36,12 +36,12 @@
 let
   inherit (lib) attrNames attrValues concatMap;
 
-  mkPlugin = { enable ? !disableAllPlugins, builtin ? false, propagatedBuildInputs ? [ ], testPaths ? [ ], wrapperBins ? [ ] }: {
-    inherit enable builtin propagatedBuildInputs testPaths wrapperBins;
+  mkPlugin = { name, enable ? !disableAllPlugins, builtin ? false, propagatedBuildInputs ? [ ], testPaths ? [ "test/test_${name}.py" ], wrapperBins ? [ ] }: {
+    inherit name enable builtin propagatedBuildInputs testPaths wrapperBins;
   };
 
   basePlugins = lib.mapAttrs (_: a: { builtin = true; } // a) (import ./builtin-plugins.nix inputs);
-  allPlugins = lib.mapAttrs (_: mkPlugin) (lib.recursiveUpdate basePlugins pluginOverrides);
+  allPlugins = lib.mapAttrs (n: a: mkPlugin { name = n; } // a) (lib.recursiveUpdate basePlugins pluginOverrides);
   builtinPlugins = lib.filterAttrs (_: p: p.builtin) allPlugins;
   enabledPlugins = lib.filterAttrs (_: p: p.enable) allPlugins;
   disabledPlugins = lib.filterAttrs (_: p: !p.enable) allPlugins;
@@ -102,7 +102,7 @@ python3Packages.buildPythonApplication {
     responses
   ] ++ pluginWrapperBins;
 
-  disabledTestPaths = lib.flatten (attrValues (lib.mapAttrs (n: v: v.testPaths ++ [ "test/test_${n}.py" ]) disabledPlugins));
+  disabledTestPaths = lib.flatten (attrValues (lib.mapAttrs (_: v: v.testPaths) disabledPlugins));
   inherit disabledTests;
 
   # Perform extra "sanity checks", before running pytest tests.
diff --git a/nixpkgs/pkgs/tools/audio/beets/default.nix b/nixpkgs/pkgs/tools/audio/beets/default.nix
index c78ccced9a80..ba468895cc41 100644
--- a/nixpkgs/pkgs/tools/audio/beets/default.nix
+++ b/nixpkgs/pkgs/tools/audio/beets/default.nix
@@ -46,6 +46,12 @@ lib.makeExtensible (self: {
       # Pillow 10 compatibility fix, a backport of
       # https://github.com/beetbox/beets/pull/4868, which doesn't apply now
       ./patches/fix-pillow10-compat.patch
+
+      # Sphinx 6 compatibility fix.
+      (fetchpatch {
+        url = "https://github.com/beetbox/beets/commit/2106f471affd1dab35b4b26187b9c74d034528c5.patch";
+        hash = "sha256-V/886dYJW/O55VqU8sd+x/URIFcKhP6j5sUhTGMoxL8=";
+      })
     ];
     disabledTests = [
       # This issue is present on this version alone, and can be removed on the
diff --git a/nixpkgs/pkgs/tools/audio/botamusique/default.nix b/nixpkgs/pkgs/tools/audio/botamusique/default.nix
index 02460f61d93b..85c707bda90c 100644
--- a/nixpkgs/pkgs/tools/audio/botamusique/default.nix
+++ b/nixpkgs/pkgs/tools/audio/botamusique/default.nix
@@ -152,5 +152,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ infinisil ];
+    mainProgram = "botamusique";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/catnip-gtk4/default.nix b/nixpkgs/pkgs/tools/audio/catnip-gtk4/default.nix
index 2175edb0c523..da677d71bc03 100644
--- a/nixpkgs/pkgs/tools/audio/catnip-gtk4/default.nix
+++ b/nixpkgs/pkgs/tools/audio/catnip-gtk4/default.nix
@@ -39,5 +39,6 @@ buildGoModule {
     homepage = "https://github.com/diamondburned/catnip-gtk4";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "catnip-gtk4";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/catnip/default.nix b/nixpkgs/pkgs/tools/audio/catnip/default.nix
index de299738242e..de8a609dfd61 100644
--- a/nixpkgs/pkgs/tools/audio/catnip/default.nix
+++ b/nixpkgs/pkgs/tools/audio/catnip/default.nix
@@ -46,5 +46,6 @@ buildGoModule rec {
     changelog = "https://github.com/noriah/catnip/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "catnip";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/dsp/default.nix b/nixpkgs/pkgs/tools/audio/dsp/default.nix
index e17e211d3402..8c218ab70e8e 100644
--- a/nixpkgs/pkgs/tools/audio/dsp/default.nix
+++ b/nixpkgs/pkgs/tools/audio/dsp/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.isc;
     maintainers = with maintainers; [ aaronjheng ];
     platforms = platforms.linux;
+    mainProgram = "dsp";
   };
 })
diff --git a/nixpkgs/pkgs/tools/audio/essentia-extractor/default.nix b/nixpkgs/pkgs/tools/audio/essentia-extractor/default.nix
index 4fbdd02e4404..de3bf45d10c5 100644
--- a/nixpkgs/pkgs/tools/audio/essentia-extractor/default.nix
+++ b/nixpkgs/pkgs/tools/audio/essentia-extractor/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ lovesegfault ];
     platforms = [ "x86_64-linux" "i686-linux" ];
+    mainProgram = "streaming_extractor_music";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/gvolicon/default.nix b/nixpkgs/pkgs/tools/audio/gvolicon/default.nix
index e15a048b991c..1e552d64cfaa 100644
--- a/nixpkgs/pkgs/tools/audio/gvolicon/default.nix
+++ b/nixpkgs/pkgs/tools/audio/gvolicon/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation {
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.bennofs ];
+    mainProgram = "gvolicon";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/headset-charge-indicator/default.nix b/nixpkgs/pkgs/tools/audio/headset-charge-indicator/default.nix
index bed9c415c83b..40005ea9a6e1 100644
--- a/nixpkgs/pkgs/tools/audio/headset-charge-indicator/default.nix
+++ b/nixpkgs/pkgs/tools/audio/headset-charge-indicator/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ zebreus ];
     license = licenses.bsd2;
+    mainProgram = "headset-charge-indicator.py";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/linuxwave/default.nix b/nixpkgs/pkgs/tools/audio/linuxwave/default.nix
index 98860675dafc..4d86b31c854e 100644
--- a/nixpkgs/pkgs/tools/audio/linuxwave/default.nix
+++ b/nixpkgs/pkgs/tools/audio/linuxwave/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ figsoda ];
     inherit (zig_0_10.meta) platforms;
+    mainProgram = "linuxwave";
   };
 })
diff --git a/nixpkgs/pkgs/tools/audio/mictray/default.nix b/nixpkgs/pkgs/tools/audio/mictray/default.nix
index e757bac96682..d93423e66b49 100644
--- a/nixpkgs/pkgs/tools/audio/mictray/default.nix
+++ b/nixpkgs/pkgs/tools/audio/mictray/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.anpryl ];
+    mainProgram = "mictray";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/midimonster/default.nix b/nixpkgs/pkgs/tools/audio/midimonster/default.nix
index ec55367474f5..8ff97968b000 100644
--- a/nixpkgs/pkgs/tools/audio/midimonster/default.nix
+++ b/nixpkgs/pkgs/tools/audio/midimonster/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation {
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = with maintainers; [keldu];
+    mainProgram = "midimonster";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/mp3cat/default.nix b/nixpkgs/pkgs/tools/audio/mp3cat/default.nix
index dbcc458164de..5819eb281b2f 100644
--- a/nixpkgs/pkgs/tools/audio/mp3cat/default.nix
+++ b/nixpkgs/pkgs/tools/audio/mp3cat/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.omnipotententity ];
     platforms = platforms.all;
+    mainProgram = "mp3cat";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/mpd-discord-rpc/default.nix b/nixpkgs/pkgs/tools/audio/mpd-discord-rpc/default.nix
index 786f5c062daa..17bc6c6e419f 100644
--- a/nixpkgs/pkgs/tools/audio/mpd-discord-rpc/default.nix
+++ b/nixpkgs/pkgs/tools/audio/mpd-discord-rpc/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/JakeStanger/mpd-discord-rpc/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
+    mainProgram = "mpd-discord-rpc";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/mpd-mpris/default.nix b/nixpkgs/pkgs/tools/audio/mpd-mpris/default.nix
index f530ffc5d664..dcf1e467300e 100644
--- a/nixpkgs/pkgs/tools/audio/mpd-mpris/default.nix
+++ b/nixpkgs/pkgs/tools/audio/mpd-mpris/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     homepage = "https://github.com/natsukagami/mpd-mpris";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
+    mainProgram = "mpd-mpris";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/mpd-notification/default.nix b/nixpkgs/pkgs/tools/audio/mpd-notification/default.nix
index 03b632ae7e0e..845056c61414 100644
--- a/nixpkgs/pkgs/tools/audio/mpd-notification/default.nix
+++ b/nixpkgs/pkgs/tools/audio/mpd-notification/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ CaitlinDavitt ];
     platforms = platforms.unix;
+    mainProgram = "mpd-notification";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/mpd-sima/default.nix b/nixpkgs/pkgs/tools/audio/mpd-sima/default.nix
index 0da82ea0b9aa..b123d2828c4c 100644
--- a/nixpkgs/pkgs/tools/audio/mpd-sima/default.nix
+++ b/nixpkgs/pkgs/tools/audio/mpd-sima/default.nix
@@ -34,5 +34,6 @@ buildPythonApplication rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with lib.maintainers; [ apfelkuchen6 ];
+    mainProgram = "mpd-sima";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/mpdas/default.nix b/nixpkgs/pkgs/tools/audio/mpdas/default.nix
index 8b12b6fc16d7..04251854d48d 100644
--- a/nixpkgs/pkgs/tools/audio/mpdas/default.nix
+++ b/nixpkgs/pkgs/tools/audio/mpdas/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = [ maintainers.taketwo ];
     platforms = platforms.all;
+    mainProgram = "mpdas";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/mpdris2/default.nix b/nixpkgs/pkgs/tools/audio/mpdris2/default.nix
index fd8618d6243d..fd4b60f13e05 100644
--- a/nixpkgs/pkgs/tools/audio/mpdris2/default.nix
+++ b/nixpkgs/pkgs/tools/audio/mpdris2/default.nix
@@ -50,5 +50,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    mainProgram = "mpDris2";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/nanotts/default.nix b/nixpkgs/pkgs/tools/audio/nanotts/default.nix
index a68f1593b646..41214ffe9206 100644
--- a/nixpkgs/pkgs/tools/audio/nanotts/default.nix
+++ b/nixpkgs/pkgs/tools/audio/nanotts/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation {
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.strikerlulu ];
     platforms = lib.platforms.linux;
+    mainProgram = "nanotts";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/pasystray/default.nix b/nixpkgs/pkgs/tools/audio/pasystray/default.nix
index c01088466599..20708e82729d 100644
--- a/nixpkgs/pkgs/tools/audio/pasystray/default.nix
+++ b/nixpkgs/pkgs/tools/audio/pasystray/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ exlevan kamilchm ];
     platforms = platforms.linux;
+    mainProgram = "pasystray";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/patray/default.nix b/nixpkgs/pkgs/tools/audio/patray/default.nix
index ff7b55689b8f..e6800d943725 100644
--- a/nixpkgs/pkgs/tools/audio/patray/default.nix
+++ b/nixpkgs/pkgs/tools/audio/patray/default.nix
@@ -38,5 +38,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/pohmelie/patray";
     license = licenses.mit;
     maintainers = with maintainers; [ domenkozar ];
+    mainProgram = "patray";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/picotts/default.nix b/nixpkgs/pkgs/tools/audio/picotts/default.nix
index 137fa838c629..0b470aca5f94 100644
--- a/nixpkgs/pkgs/tools/audio/picotts/default.nix
+++ b/nixpkgs/pkgs/tools/audio/picotts/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.canndrew ];
     platforms = lib.platforms.linux;
+    mainProgram = "pico2wave";
   };
 })
diff --git a/nixpkgs/pkgs/tools/audio/piper/default.nix b/nixpkgs/pkgs/tools/audio/piper/default.nix
index ec55b78c4f8b..1f565b747529 100644
--- a/nixpkgs/pkgs/tools/audio/piper/default.nix
+++ b/nixpkgs/pkgs/tools/audio/piper/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://github.com/rhasspy/piper";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
+    mainProgram = "piper";
   };
 })
diff --git a/nixpkgs/pkgs/tools/audio/pnmixer/default.nix b/nixpkgs/pkgs/tools/audio/pnmixer/default.nix
index da4654a3e5fc..a65cad09b47d 100644
--- a/nixpkgs/pkgs/tools/audio/pnmixer/default.nix
+++ b/nixpkgs/pkgs/tools/audio/pnmixer/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ campadrenalin romildo ];
+    mainProgram = "pnmixer";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/pw-volume/default.nix b/nixpkgs/pkgs/tools/audio/pw-volume/default.nix
index 1a7b6c21a502..13e39484b577 100644
--- a/nixpkgs/pkgs/tools/audio/pw-volume/default.nix
+++ b/nixpkgs/pkgs/tools/audio/pw-volume/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ astro figsoda ];
     platforms = platforms.linux;
+    mainProgram = "pw-volume";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/spotdl/default.nix b/nixpkgs/pkgs/tools/audio/spotdl/default.nix
index 6b7a75bfb61e..9bbceae0b688 100644
--- a/nixpkgs/pkgs/tools/audio/spotdl/default.nix
+++ b/nixpkgs/pkgs/tools/audio/spotdl/default.nix
@@ -9,15 +9,14 @@ let
   python = python3;
 in python.pkgs.buildPythonApplication rec {
   pname = "spotdl";
-  version = "4.2.1";
-
-  format = "pyproject";
+  version = "4.2.2";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "spotDL";
     repo = "spotify-downloader";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xKas3WO3uigY1iFfxIN3+d+5U31vM7cLv08oMef8trc=";
+    hash = "sha256-pJr0OGUI3OcFsmvn9eqkvpFeF1EkHDdNoWc91s8h9O8=";
   };
 
   nativeBuildInputs = with python.pkgs; [
@@ -66,6 +65,9 @@ in python.pkgs.buildPythonApplication rec {
     # require networking
     "tests/test_init.py"
     "tests/test_matching.py"
+    "tests/providers/lyrics"
+    "tests/types"
+    "tests/utils/test_github.py"
     "tests/utils/test_m3u.py"
     "tests/utils/test_metadata.py"
     "tests/utils/test_search.py"
@@ -73,7 +75,6 @@ in python.pkgs.buildPythonApplication rec {
 
   disabledTests = [
     # require networking
-    "test_album_from_url"
     "test_convert"
     "test_download_ffmpeg"
     "test_download_song"
diff --git a/nixpkgs/pkgs/tools/audio/stt/default.nix b/nixpkgs/pkgs/tools/audio/stt/default.nix
index 9f3fcf05b5fa..89ed5f983973 100644
--- a/nixpkgs/pkgs/tools/audio/stt/default.nix
+++ b/nixpkgs/pkgs/tools/audio/stt/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.mpl20;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ rvolosatovs ];
+    mainProgram = "stt";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/tidal-dl/default.nix b/nixpkgs/pkgs/tools/audio/tidal-dl/default.nix
index 2e8ba35e8ce4..eb23a4da3ccd 100644
--- a/nixpkgs/pkgs/tools/audio/tidal-dl/default.nix
+++ b/nixpkgs/pkgs/tools/audio/tidal-dl/default.nix
@@ -21,5 +21,6 @@ buildPythonApplication rec {
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.misterio77 ];
     platforms = lib.platforms.all;
+    mainProgram = "tidal-dl";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/unflac/default.nix b/nixpkgs/pkgs/tools/audio/unflac/default.nix
index 9fc44469fec9..41068d479706 100644
--- a/nixpkgs/pkgs/tools/audio/unflac/default.nix
+++ b/nixpkgs/pkgs/tools/audio/unflac/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ felipeqq2 ];
+    mainProgram = "unflac";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/video2midi/default.nix b/nixpkgs/pkgs/tools/audio/video2midi/default.nix
index 2c2ea77de6e7..3d8661da3cab 100644
--- a/nixpkgs/pkgs/tools/audio/video2midi/default.nix
+++ b/nixpkgs/pkgs/tools/audio/video2midi/default.nix
@@ -31,5 +31,6 @@ in pythonPackages.buildPythonApplication rec {
     license = licenses.gpl3Only;
     maintainers = [ ];
     platforms = platforms.linux;
+    mainProgram = "v2m.py";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/volctl/default.nix b/nixpkgs/pkgs/tools/audio/volctl/default.nix
index e0a80f90a719..0d33c586ed37 100644
--- a/nixpkgs/pkgs/tools/audio/volctl/default.nix
+++ b/nixpkgs/pkgs/tools/audio/volctl/default.nix
@@ -53,5 +53,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
+    mainProgram = "volctl";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/volumeicon/default.nix b/nixpkgs/pkgs/tools/audio/volumeicon/default.nix
index 00690d016329..cabd145cc6e0 100644
--- a/nixpkgs/pkgs/tools/audio/volumeicon/default.nix
+++ b/nixpkgs/pkgs/tools/audio/volumeicon/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ bobvanderlinden ];
     license = licenses.gpl3;
+    mainProgram = "volumeicon";
   };
 }
 
diff --git a/nixpkgs/pkgs/tools/audio/whisper-ctranslate2/default.nix b/nixpkgs/pkgs/tools/audio/whisper-ctranslate2/default.nix
index dd928ab3e418..452af0a18b40 100644
--- a/nixpkgs/pkgs/tools/audio/whisper-ctranslate2/default.nix
+++ b/nixpkgs/pkgs/tools/audio/whisper-ctranslate2/default.nix
@@ -45,5 +45,6 @@ python3.pkgs.buildPythonApplication {
     changelog = "https://github.com/Softcatala/whisper-ctranslate2/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ happysalada ];
+    mainProgram = "whisper-ctranslate2";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/yabridgectl/default.nix b/nixpkgs/pkgs/tools/audio/yabridgectl/default.nix
index 06bca00fc5b0..41d32cd282a5 100644
--- a/nixpkgs/pkgs/tools/audio/yabridgectl/default.nix
+++ b/nixpkgs/pkgs/tools/audio/yabridgectl/default.nix
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ kira-bruneau ];
     platforms = yabridge.meta.platforms;
+    mainProgram = "yabridgectl";
   };
 }