about summary refs log tree commit diff
path: root/pkgs/applications/audio
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/audio')
-rw-r--r--pkgs/applications/audio/alsa-scarlett-gui/default.nix1
-rw-r--r--pkgs/applications/audio/ams/default.nix1
-rw-r--r--pkgs/applications/audio/ario/default.nix1
-rw-r--r--pkgs/applications/audio/asunder/default.nix1
-rw-r--r--pkgs/applications/audio/audacity/default.nix1
-rw-r--r--pkgs/applications/audio/audio-recorder/default.nix1
-rw-r--r--pkgs/applications/audio/bambootracker/default.nix1
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix4
-rw-r--r--pkgs/applications/audio/blanket/default.nix1
-rw-r--r--pkgs/applications/audio/bucklespring/default.nix1
-rw-r--r--pkgs/applications/audio/cantata/default.nix1
-rw-r--r--pkgs/applications/audio/castopod/default.nix6
-rw-r--r--pkgs/applications/audio/cd-discid/default.nix1
-rw-r--r--pkgs/applications/audio/cider/default.nix2
-rw-r--r--pkgs/applications/audio/cplay-ng/default.nix1
-rw-r--r--pkgs/applications/audio/curseradio/default.nix1
-rw-r--r--pkgs/applications/audio/deadbeef/default.nix1
-rw-r--r--pkgs/applications/audio/dfasma/default.nix1
-rw-r--r--pkgs/applications/audio/dr14_tmeter/default.nix1
-rw-r--r--pkgs/applications/audio/drumkv1/default.nix1
-rw-r--r--pkgs/applications/audio/easyabc/default.nix1
-rw-r--r--pkgs/applications/audio/easyeffects/default.nix4
-rw-r--r--pkgs/applications/audio/easytag/default.nix1
-rw-r--r--pkgs/applications/audio/espeak/default.nix1
-rw-r--r--pkgs/applications/audio/espeak/edit.nix1
-rw-r--r--pkgs/applications/audio/exaile/default.nix1
-rw-r--r--pkgs/applications/audio/faust/faustlive.nix1
-rw-r--r--pkgs/applications/audio/fdkaac/default.nix1
-rw-r--r--pkgs/applications/audio/flac2all/default.nix1
-rw-r--r--pkgs/applications/audio/flacon/default.nix1
-rw-r--r--pkgs/applications/audio/friture/default.nix1
-rw-r--r--pkgs/applications/audio/ft2-clone/default.nix4
-rw-r--r--pkgs/applications/audio/g4music/default.nix1
-rw-r--r--pkgs/applications/audio/giada/default.nix1
-rw-r--r--pkgs/applications/audio/gnome-podcasts/default.nix1
-rw-r--r--pkgs/applications/audio/greg/default.nix1
-rw-r--r--pkgs/applications/audio/gtkpod/default.nix40
-rw-r--r--pkgs/applications/audio/guitarix/default.nix1
-rw-r--r--pkgs/applications/audio/helio-workstation/default.nix1
-rw-r--r--pkgs/applications/audio/hushboard/default.nix1
-rw-r--r--pkgs/applications/audio/iannix/default.nix1
-rw-r--r--pkgs/applications/audio/in-formant/default.nix1
-rw-r--r--pkgs/applications/audio/indicator-sound-switcher/default.nix1
-rw-r--r--pkgs/applications/audio/jack-autoconnect/default.nix1
-rw-r--r--pkgs/applications/audio/jack-capture/default.nix1
-rw-r--r--pkgs/applications/audio/jack-oscrolloscope/default.nix1
-rw-r--r--pkgs/applications/audio/jackmix/default.nix1
-rw-r--r--pkgs/applications/audio/jacktrip/default.nix5
-rw-r--r--pkgs/applications/audio/jamesdsp/default.nix1
-rw-r--r--pkgs/applications/audio/librespot/default.nix1
-rw-r--r--pkgs/applications/audio/lingot/default.nix1
-rw-r--r--pkgs/applications/audio/linvstmanager/default.nix1
-rw-r--r--pkgs/applications/audio/lmms/default.nix1
-rw-r--r--pkgs/applications/audio/lyrebird/default.nix1
-rw-r--r--pkgs/applications/audio/mellowplayer/default.nix1
-rw-r--r--pkgs/applications/audio/meters_lv2/default.nix1
-rw-r--r--pkgs/applications/audio/mhwaveedit/default.nix1
-rw-r--r--pkgs/applications/audio/midi-visualizer/default.nix1
-rw-r--r--pkgs/applications/audio/midisheetmusic/default.nix1
-rw-r--r--pkgs/applications/audio/miniaudicle/default.nix1
-rw-r--r--pkgs/applications/audio/mixxx/default.nix1
-rw-r--r--pkgs/applications/audio/monkeys-audio/default.nix4
-rw-r--r--pkgs/applications/audio/mopidy/mopidy.nix1
-rw-r--r--pkgs/applications/audio/mousai/default.nix1
-rw-r--r--pkgs/applications/audio/munt/mt32emu-qt.nix1
-rw-r--r--pkgs/applications/audio/munt/mt32emu-smf2wav.nix1
-rw-r--r--pkgs/applications/audio/muso/default.nix1
-rw-r--r--pkgs/applications/audio/nootka/default.nix1
-rw-r--r--pkgs/applications/audio/nova-filters/default.nix3
-rw-r--r--pkgs/applications/audio/padthv1/default.nix1
-rw-r--r--pkgs/applications/audio/paprefs/default.nix1
-rw-r--r--pkgs/applications/audio/parlatype/default.nix1
-rw-r--r--pkgs/applications/audio/patchance/default.nix1
-rw-r--r--pkgs/applications/audio/pianobooster/default.nix1
-rw-r--r--pkgs/applications/audio/picard/default.nix1
-rw-r--r--pkgs/applications/audio/pipecontrol/default.nix1
-rw-r--r--pkgs/applications/audio/pithos/default.nix7
-rw-r--r--pkgs/applications/audio/plugdata/default.nix1
-rw-r--r--pkgs/applications/audio/polyphone/default.nix1
-rw-r--r--pkgs/applications/audio/praat/default.nix1
-rw-r--r--pkgs/applications/audio/pragha/default.nix1
-rw-r--r--pkgs/applications/audio/psst/default.nix2
-rwxr-xr-xpkgs/applications/audio/psst/update.sh4
-rw-r--r--pkgs/applications/audio/pt2-clone/default.nix4
-rw-r--r--pkgs/applications/audio/puddletag/default.nix6
-rw-r--r--pkgs/applications/audio/pulseaudio-ctl/default.nix1
-rw-r--r--pkgs/applications/audio/pulseaudio-dlna/default.nix1
-rw-r--r--pkgs/applications/audio/pulseeffects-legacy/default.nix1
-rw-r--r--pkgs/applications/audio/pyradio/default.nix1
-rw-r--r--pkgs/applications/audio/qjackctl/default.nix1
-rw-r--r--pkgs/applications/audio/qmidiarp/default.nix1
-rw-r--r--pkgs/applications/audio/qmidinet/default.nix1
-rw-r--r--pkgs/applications/audio/qmmp/default.nix1
-rw-r--r--pkgs/applications/audio/qsampler/default.nix1
-rw-r--r--pkgs/applications/audio/qsynth/default.nix19
-rw-r--r--pkgs/applications/audio/r128gain/default.nix1
-rw-r--r--pkgs/applications/audio/radioboat/default.nix1
-rw-r--r--pkgs/applications/audio/redoflacs/default.nix1
-rw-r--r--pkgs/applications/audio/rofi-mpd/default.nix1
-rw-r--r--pkgs/applications/audio/rofi-pulse-select/default.nix1
-rw-r--r--pkgs/applications/audio/rosegarden/default.nix1
-rw-r--r--pkgs/applications/audio/rubyripper/default.nix1
-rw-r--r--pkgs/applications/audio/samplebrain/default.nix1
-rw-r--r--pkgs/applications/audio/samplv1/default.nix1
-rw-r--r--pkgs/applications/audio/seq66/default.nix14
-rw-r--r--pkgs/applications/audio/sfxr-qt/default.nix1
-rw-r--r--pkgs/applications/audio/sfxr/default.nix1
-rw-r--r--pkgs/applications/audio/shortwave/default.nix1
-rw-r--r--pkgs/applications/audio/sonata/default.nix1
-rw-r--r--pkgs/applications/audio/sonic-lineup/default.nix1
-rw-r--r--pkgs/applications/audio/sound-juicer/default.nix1
-rw-r--r--pkgs/applications/audio/soundconverter/default.nix1
-rw-r--r--pkgs/applications/audio/soundkonverter/default.nix1
-rw-r--r--pkgs/applications/audio/spek/default.nix1
-rw-r--r--pkgs/applications/audio/spot/default.nix1
-rw-r--r--pkgs/applications/audio/spotify-cli-linux/default.nix1
-rw-r--r--pkgs/applications/audio/spotify-player/default.nix6
-rw-r--r--pkgs/applications/audio/spotify-qt/default.nix1
-rw-r--r--pkgs/applications/audio/spotifyd/default.nix10
-rw-r--r--pkgs/applications/audio/squeezelite/default.nix6
-rw-r--r--pkgs/applications/audio/sublime-music/default.nix1
-rw-r--r--pkgs/applications/audio/surge-XT/default.nix6
-rw-r--r--pkgs/applications/audio/synthv1/default.nix1
-rw-r--r--pkgs/applications/audio/tauon/default.nix1
-rw-r--r--pkgs/applications/audio/tenacity/default.nix1
-rw-r--r--pkgs/applications/audio/tony/default.nix1
-rw-r--r--pkgs/applications/audio/traverso/default.nix1
-rw-r--r--pkgs/applications/audio/vcv-rack/default.nix13
-rw-r--r--pkgs/applications/audio/vmpk/default.nix1
-rw-r--r--pkgs/applications/audio/waylyrics/default.nix1
-rw-r--r--pkgs/applications/audio/xsynth-dssi/default.nix1
-rw-r--r--pkgs/applications/audio/yams/default.nix1
-rw-r--r--pkgs/applications/audio/yesplaymusic/default.nix1
-rw-r--r--pkgs/applications/audio/zynaddsubfx/default.nix1
134 files changed, 174 insertions, 108 deletions
diff --git a/pkgs/applications/audio/alsa-scarlett-gui/default.nix b/pkgs/applications/audio/alsa-scarlett-gui/default.nix
index de4f8b3db98a..2b5aea7e5843 100644
--- a/pkgs/applications/audio/alsa-scarlett-gui/default.nix
+++ b/pkgs/applications/audio/alsa-scarlett-gui/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GUI for alsa controls presented by Focusrite Scarlett Gen 2/3 Mixer Driver";
+    mainProgram = "alsa-scarlett-gui";
     homepage = "https://github.com/geoffreybennett/alsa-scarlett-gui";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ sebtm ];
diff --git a/pkgs/applications/audio/ams/default.nix b/pkgs/applications/audio/ams/default.nix
index c51dced37724..9086bfc33387 100644
--- a/pkgs/applications/audio/ams/default.nix
+++ b/pkgs/applications/audio/ams/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Realtime modular synthesizer for ALSA";
+    mainProgram = "ams";
     homepage = "https://alsamodular.sourceforge.net";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/ario/default.nix b/pkgs/applications/audio/ario/default.nix
index 5b956e8f5961..b9e14f486b7a 100644
--- a/pkgs/applications/audio/ario/default.nix
+++ b/pkgs/applications/audio/ario/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GTK client for MPD (Music player daemon)";
+    mainProgram = "ario";
     homepage = "https://ario-player.sourceforge.net/";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.garrison ];
diff --git a/pkgs/applications/audio/asunder/default.nix b/pkgs/applications/audio/asunder/default.nix
index dbaef1cf2acf..8e209a4717fa 100644
--- a/pkgs/applications/audio/asunder/default.nix
+++ b/pkgs/applications/audio/asunder/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A graphical Audio CD ripper and encoder for Linux";
+    mainProgram = "asunder";
     homepage = "http://littlesvr.ca/asunder/index.php";
     license = licenses.gpl2;
     maintainers = with maintainers; [ mudri ];
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index f476b3c8a8e6..74af177d0e27 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -190,6 +190,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Sound editor with graphical UI";
+    mainProgram = "audacity";
     homepage = "https://www.audacityteam.org";
     changelog = "https://github.com/audacity/audacity/releases";
     license = with licenses; [
diff --git a/pkgs/applications/audio/audio-recorder/default.nix b/pkgs/applications/audio/audio-recorder/default.nix
index aaf6777533ff..72d31e2966ff 100644
--- a/pkgs/applications/audio/audio-recorder/default.nix
+++ b/pkgs/applications/audio/audio-recorder/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Audio recorder for GNOME and Unity Desktops";
+    mainProgram = "audio-recorder";
     longDescription = ''
       This program allows you to record your favourite music or audio to a file.
       It can record audio from your system soundcard, microphones, browsers and
diff --git a/pkgs/applications/audio/bambootracker/default.nix b/pkgs/applications/audio/bambootracker/default.nix
index 6c1bd006c7a6..5ebc2caf0f71 100644
--- a/pkgs/applications/audio/bambootracker/default.nix
+++ b/pkgs/applications/audio/bambootracker/default.nix
@@ -76,6 +76,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers";
+    mainProgram = "BambooTracker";
     homepage = "https://bambootracker.github.io/BambooTracker/";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
index 93296b3eff0b..3ec595e3e8bb 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
@@ -27,11 +27,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwig-studio";
-  version = "5.1.3";
+  version = "5.1.6";
 
   src = fetchurl {
     url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
-    sha256 = "sha256-1/iKezOD2HCym6JBXRa9rGpjolJjrxRZA4vwfgZyVng=";
+    sha256 = "sha256-U1Qp7/7kAr1IEcv256I2J/sb5MYxfR20Pi5N8WaVh2U=";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
diff --git a/pkgs/applications/audio/blanket/default.nix b/pkgs/applications/audio/blanket/default.nix
index 5a3d9949f8c5..4b08f8cf223a 100644
--- a/pkgs/applications/audio/blanket/default.nix
+++ b/pkgs/applications/audio/blanket/default.nix
@@ -59,6 +59,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/rafaelmardojai/blanket";
     description = "Listen to different sounds";
+    mainProgram = "blanket";
     maintainers = with maintainers; [ onny ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/bucklespring/default.nix b/pkgs/applications/audio/bucklespring/default.nix
index dbdef66c5bc4..ccc25da4f1ed 100644
--- a/pkgs/applications/audio/bucklespring/default.nix
+++ b/pkgs/applications/audio/bucklespring/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Nostalgia bucklespring keyboard sound";
+    mainProgram = "buckle";
     longDescription = ''
       When built with libinput (wayland or bare console),
       users need to be in the input group to use this:
diff --git a/pkgs/applications/audio/cantata/default.nix b/pkgs/applications/audio/cantata/default.nix
index c5f3cfe5b68f..0d5c85625253 100644
--- a/pkgs/applications/audio/cantata/default.nix
+++ b/pkgs/applications/audio/cantata/default.nix
@@ -111,6 +111,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A graphical client for MPD";
+    mainProgram = "cantata";
     homepage = "https://github.com/cdrummond/cantata";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/applications/audio/castopod/default.nix b/pkgs/applications/audio/castopod/default.nix
index 9d9f83e2ecce..801368a131cf 100644
--- a/pkgs/applications/audio/castopod/default.nix
+++ b/pkgs/applications/audio/castopod/default.nix
@@ -7,11 +7,11 @@
 }:
 stdenv.mkDerivation {
   pname = "castopod";
-  version = "1.6.4";
+  version = "1.10.5";
 
   src = fetchurl {
-    url = "https://code.castopod.org/adaures/castopod/uploads/ce56d4f149242f12bedd20f9a2b0916d/castopod-1.6.4.tar.gz";
-    sha256 = "080jj91yxbn3xsbs0sywzwa2f5in9bp9qi2zwqcfqpaxlq9ga62v";
+    url = "https://code.castopod.org/adaures/castopod/uploads/66de724407be8f940af5eb1d633fbbc3/castopod-1.10.5.tar.gz";
+    sha256 = "0ssdgqxqldg2f6ni54k5vlndnjjy9lah47q1crpz5nnkkjgvc96y";
   };
 
   dontBuild = true;
diff --git a/pkgs/applications/audio/cd-discid/default.nix b/pkgs/applications/audio/cd-discid/default.nix
index 16c574e8d038..e13a64e4bd83 100644
--- a/pkgs/applications/audio/cd-discid/default.nix
+++ b/pkgs/applications/audio/cd-discid/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     description = "Command-line utility to get CDDB discid information from a CD-ROM disc";
+    mainProgram = "cd-discid";
 
     longDescription = ''
       cd-discid is a backend utility to get CDDB discid information
diff --git a/pkgs/applications/audio/cider/default.nix b/pkgs/applications/audio/cider/default.nix
index 96f0ab0f706a..315fa2c9a65b 100644
--- a/pkgs/applications/audio/cider/default.nix
+++ b/pkgs/applications/audio/cider/default.nix
@@ -23,7 +23,7 @@ appimageTools.wrapType2 rec {
   meta = with lib; {
     description = "A new look into listening and enjoying Apple Music in style and performance.";
     homepage = "https://github.com/ciderapp/Cider";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = [ maintainers.cigrainger ];
     platforms = [ "x86_64-linux" ];
     mainProgram = "cider";
diff --git a/pkgs/applications/audio/cplay-ng/default.nix b/pkgs/applications/audio/cplay-ng/default.nix
index d4eb815bd14c..caecd35bed18 100644
--- a/pkgs/applications/audio/cplay-ng/default.nix
+++ b/pkgs/applications/audio/cplay-ng/default.nix
@@ -29,6 +29,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/xi/cplay-ng";
     description = "Simple curses audio player";
+    mainProgram = "cplay-ng";
     longDescription = ''
       cplay is a minimalist music player with a textual user interface written
       in Python. It aims to provide a power-user-friendly interface with simple
diff --git a/pkgs/applications/audio/curseradio/default.nix b/pkgs/applications/audio/curseradio/default.nix
index 94059e06e546..0faa58b99884 100644
--- a/pkgs/applications/audio/curseradio/default.nix
+++ b/pkgs/applications/audio/curseradio/default.nix
@@ -29,6 +29,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Command line radio player";
+    mainProgram = "curseradio";
     homepage = "https://github.com/chronitis/curseradio";
     license = licenses.mit;
     maintainers = [ maintainers.eyjhb ];
diff --git a/pkgs/applications/audio/deadbeef/default.nix b/pkgs/applications/audio/deadbeef/default.nix
index 2c08477d07a0..f26fd4903726 100644
--- a/pkgs/applications/audio/deadbeef/default.nix
+++ b/pkgs/applications/audio/deadbeef/default.nix
@@ -130,6 +130,7 @@ in clangStdenv.mkDerivation {
 
   meta = with lib; {
     description = "Ultimate Music Player for GNU/Linux";
+    mainProgram = "deadbeef";
     homepage = "http://deadbeef.sourceforge.net/";
     downloadPage = "https://github.com/DeaDBeeF-Player/deadbeef";
     license = licenses.gpl2;
diff --git a/pkgs/applications/audio/dfasma/default.nix b/pkgs/applications/audio/dfasma/default.nix
index cb2ac2b9e0bf..78ab9c8a5f4f 100644
--- a/pkgs/applications/audio/dfasma/default.nix
+++ b/pkgs/applications/audio/dfasma/default.nix
@@ -49,6 +49,7 @@ in mkDerivation rec {
 
   meta = with lib; {
     description = "Analyse and compare audio files in time and frequency";
+    mainProgram = "dfasma";
     longDescription = ''
       DFasma is free open-source software to compare audio files by time and
       frequency. The comparison is first visual, using wavforms and spectra. It
diff --git a/pkgs/applications/audio/dr14_tmeter/default.nix b/pkgs/applications/audio/dr14_tmeter/default.nix
index 649c0f39097f..6ae27b93f29e 100644
--- a/pkgs/applications/audio/dr14_tmeter/default.nix
+++ b/pkgs/applications/audio/dr14_tmeter/default.nix
@@ -22,6 +22,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Compute the DR14 of a given audio file according to the procedure described by the Pleasurize Music Foundation";
+    mainProgram = "dr14_tmeter";
     license = licenses.gpl3Plus;
     homepage = "http://dr14tmeter.sourceforge.net/";
     maintainers = [ maintainers.adisbladis ];
diff --git a/pkgs/applications/audio/drumkv1/default.nix b/pkgs/applications/audio/drumkv1/default.nix
index 30d6328b5758..8dfb00318c15 100644
--- a/pkgs/applications/audio/drumkv1/default.nix
+++ b/pkgs/applications/audio/drumkv1/default.nix
@@ -15,6 +15,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "An old-school drum-kit sampler synthesizer with stereo fx";
+    mainProgram = "drumkv1_jack";
     homepage = "http://drumkv1.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/easyabc/default.nix b/pkgs/applications/audio/easyabc/default.nix
index edf6e3596aa2..9fb792626ac2 100644
--- a/pkgs/applications/audio/easyabc/default.nix
+++ b/pkgs/applications/audio/easyabc/default.nix
@@ -73,6 +73,7 @@ in python.pkgs.buildPythonApplication {
 
   meta = {
     description = "ABC music notation editor";
+    mainProgram = "easyabc";
     homepage = "https://easyabc.sourceforge.net/";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/audio/easyeffects/default.nix b/pkgs/applications/audio/easyeffects/default.nix
index dd998050ac70..81fb1efe5083 100644
--- a/pkgs/applications/audio/easyeffects/default.nix
+++ b/pkgs/applications/audio/easyeffects/default.nix
@@ -41,13 +41,13 @@
 
 stdenv.mkDerivation rec {
   pname = "easyeffects";
-  version = "7.1.4";
+  version = "7.1.5";
 
   src = fetchFromGitHub {
     owner = "wwmm";
     repo = "easyeffects";
     rev = "v${version}";
-    hash = "sha256-UNS7kHyxHB4VneELXGn2G8T8EeKUpjb1ib2q0G+gf/s=";
+    hash = "sha256-QoH1dOzBtQHQQKA0+eZFX6yOvjRUmUZVxcdpISIpLLk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/easytag/default.nix b/pkgs/applications/audio/easytag/default.nix
index d55fd7ff0cb6..6d3fd8f1d17d 100644
--- a/pkgs/applications/audio/easytag/default.nix
+++ b/pkgs/applications/audio/easytag/default.nix
@@ -33,6 +33,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "View and edit tags for various audio files";
+    mainProgram = "easytag";
     homepage = "https://wiki.gnome.org/Apps/EasyTAG";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/audio/espeak/default.nix b/pkgs/applications/audio/espeak/default.nix
index 7164cb5fd3e0..4693995883d9 100644
--- a/pkgs/applications/audio/espeak/default.nix
+++ b/pkgs/applications/audio/espeak/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Compact open source software speech synthesizer";
+    mainProgram = "espeak";
     homepage = "https://espeak.sourceforge.net/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/espeak/edit.nix b/pkgs/applications/audio/espeak/edit.nix
index 6c4da056c848..4be2f404f60f 100644
--- a/pkgs/applications/audio/espeak/edit.nix
+++ b/pkgs/applications/audio/espeak/edit.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Phoneme editor for espeak";
+    mainProgram = "espeakedit";
     homepage = "https://espeak.sourceforge.net/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/exaile/default.nix b/pkgs/applications/audio/exaile/default.nix
index 77054b2d9144..a2f75fd85a70 100644
--- a/pkgs/applications/audio/exaile/default.nix
+++ b/pkgs/applications/audio/exaile/default.nix
@@ -93,6 +93,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.exaile.org/";
     description = "A music player with a simple interface and powerful music management capabilities";
+    mainProgram = "exaile";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ryneeverett ];
     platforms = platforms.all;
diff --git a/pkgs/applications/audio/faust/faustlive.nix b/pkgs/applications/audio/faust/faustlive.nix
index 1d91f561c044..3826bb8b4bad 100644
--- a/pkgs/applications/audio/faust/faustlive.nix
+++ b/pkgs/applications/audio/faust/faustlive.nix
@@ -86,6 +86,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A standalone just-in-time Faust compiler";
+    mainProgram = "FaustLive";
     longDescription = ''
       FaustLive is a standalone just-in-time Faust compiler. It tries to bring
       together the convenience of a standalone interpreted language with the
diff --git a/pkgs/applications/audio/fdkaac/default.nix b/pkgs/applications/audio/fdkaac/default.nix
index 2350bde0bd6a..55e014e001fb 100644
--- a/pkgs/applications/audio/fdkaac/default.nix
+++ b/pkgs/applications/audio/fdkaac/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Command line encoder frontend for libfdk-aac encoder";
+    mainProgram = "fdkaac";
     longDescription = ''
       fdkaac reads linear PCM audio in either WAV, raw PCM, or CAF format,
       and encodes it into either M4A / AAC file.
diff --git a/pkgs/applications/audio/flac2all/default.nix b/pkgs/applications/audio/flac2all/default.nix
index 4a6132d39af3..7020879eae9b 100644
--- a/pkgs/applications/audio/flac2all/default.nix
+++ b/pkgs/applications/audio/flac2all/default.nix
@@ -37,6 +37,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Multi process, clustered, FLAC to multi codec audio converter with tagging support";
+    mainProgram = "flac2all";
     homepage = "https://github.com/ZivaVatra/flac2all";
     license = licenses.gpl3;
     # TODO: This has only been tested on Linux, but may work on Mac too.
diff --git a/pkgs/applications/audio/flacon/default.nix b/pkgs/applications/audio/flacon/default.nix
index b5d57e5a6178..a06efc1c78ea 100644
--- a/pkgs/applications/audio/flacon/default.nix
+++ b/pkgs/applications/audio/flacon/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description =
       "Extracts audio tracks from an audio CD image to separate tracks";
+    mainProgram = "flacon";
     homepage = "https://flacon.github.io/";
     license = licenses.lgpl21;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/friture/default.nix b/pkgs/applications/audio/friture/default.nix
index eb702d086312..60a098bb1ab8 100644
--- a/pkgs/applications/audio/friture/default.nix
+++ b/pkgs/applications/audio/friture/default.nix
@@ -49,6 +49,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A real-time audio analyzer";
+    mainProgram = "friture";
     homepage = "https://friture.org/";
     license = licenses.gpl3;
     platforms = platforms.linux; # fails on Darwin
diff --git a/pkgs/applications/audio/ft2-clone/default.nix b/pkgs/applications/audio/ft2-clone/default.nix
index 88e7864e10cb..0587fc8d4bbb 100644
--- a/pkgs/applications/audio/ft2-clone/default.nix
+++ b/pkgs/applications/audio/ft2-clone/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ft2-clone";
-  version = "1.77.1";
+  version = "1.79.2";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "ft2-clone";
     rev = "v${version}";
-    hash = "sha256-+DxJFCjXZmgaaK1+tF5LEmdBoKwl9Fz3ZNO35Ye7UGw=";
+    hash = "sha256-/RZXtSjJ0nRtlMreT4M/IYQpdv/UXjVJaHMld9wwaUw=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/audio/g4music/default.nix b/pkgs/applications/audio/g4music/default.nix
index ed8b067ade32..bbb31c114659 100644
--- a/pkgs/applications/audio/g4music/default.nix
+++ b/pkgs/applications/audio/g4music/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A beautiful, fast, fluent, light weight music player written in GTK4";
+    mainProgram = "g4music";
     homepage = "https://gitlab.gnome.org/neithern/g4music";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ magnouvean ];
diff --git a/pkgs/applications/audio/giada/default.nix b/pkgs/applications/audio/giada/default.nix
index 0b272226f19a..7008e6a53155 100644
--- a/pkgs/applications/audio/giada/default.nix
+++ b/pkgs/applications/audio/giada/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A free, minimal, hardcore audio tool for DJs, live performers and electronic musicians";
+    mainProgram = "giada";
     homepage = "https://giadamusic.com/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ kashw2 ];
diff --git a/pkgs/applications/audio/gnome-podcasts/default.nix b/pkgs/applications/audio/gnome-podcasts/default.nix
index 8753b1893ea3..bba557913297 100644
--- a/pkgs/applications/audio/gnome-podcasts/default.nix
+++ b/pkgs/applications/audio/gnome-podcasts/default.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Listen to your favorite podcasts";
+    mainProgram = "gnome-podcasts";
     homepage = "https://wiki.gnome.org/Apps/Podcasts";
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/applications/audio/greg/default.nix b/pkgs/applications/audio/greg/default.nix
index 2193447c02c7..5e6d5e2583ab 100644
--- a/pkgs/applications/audio/greg/default.nix
+++ b/pkgs/applications/audio/greg/default.nix
@@ -18,6 +18,7 @@ with pythonPackages; buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/manolomartinez/greg";
     description = "A command-line podcast aggregator";
+    mainProgram = "greg";
     license = licenses.gpl3;
     maintainers = with maintainers; [ edwtjo ];
   };
diff --git a/pkgs/applications/audio/gtkpod/default.nix b/pkgs/applications/audio/gtkpod/default.nix
deleted file mode 100644
index ba73a5aae109..000000000000
--- a/pkgs/applications/audio/gtkpod/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib, stdenv, fetchurl, pkg-config, wrapGAppsHook, intltool, libgpod, libxml2, curl, flac
-, gnome, gtk3, gettext, perlPackages, flex, libid3tag, gdl
-, libvorbis, gdk-pixbuf
-}:
-
-stdenv.mkDerivation rec {
-  version = "2.1.5";
-  pname = "gtkpod";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/gtkpod/${pname}-${version}.tar.gz";
-    sha256 = "0xisrpx069f7bjkyc8vqxb4k0480jmx1wscqxr6cpq1qj6pchzd5";
-  };
-  postPatch = ''
-    sed -i 's/which/type -P/' scripts/*.sh
-  '';
-
-  nativeBuildInputs = [ pkg-config wrapGAppsHook intltool ];
-  buildInputs = [
-    curl gettext
-    flex libgpod libid3tag flac libvorbis libxml2 gtk3 gdk-pixbuf
-    gdl gnome.adwaita-icon-theme gnome.anjuta
-  ] ++ (with perlPackages; [ perl XMLParser ]);
-
-  # Workaround build failure on -fno-common toolchains like upstream
-  # gcc-10. Otherwise build fails as:
-  #   ld: .libs/autodetection.o:/build/gtkpod-2.1.5/libgtkpod/gtkpod_app_iface.h:248: multiple definition of
-  #       `gtkpod_app'; .libs/gtkpod_app_iface.o:/build/gtkpod-2.1.5/libgtkpod/gtkpod_app_iface.h:248: first defined here
-  env.NIX_CFLAGS_COMPILE = "-fcommon";
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "GTK Manager for an Apple ipod";
-    homepage = "https://sourceforge.net/projects/gtkpod/";
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
-    maintainers = [ ];
-  };
-}
diff --git a/pkgs/applications/audio/guitarix/default.nix b/pkgs/applications/audio/guitarix/default.nix
index 84308d59d44c..2134370eac9f 100644
--- a/pkgs/applications/audio/guitarix/default.nix
+++ b/pkgs/applications/audio/guitarix/default.nix
@@ -117,6 +117,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A virtual guitar amplifier for Linux running with JACK";
+    mainProgram = "guitarix";
     longDescription = ''
         guitarix is a virtual guitar amplifier for Linux running with
       JACK (Jack Audio Connection Kit). It is free as in speech and
diff --git a/pkgs/applications/audio/helio-workstation/default.nix b/pkgs/applications/audio/helio-workstation/default.nix
index 0b92b23d1800..eaaa197a9c6a 100644
--- a/pkgs/applications/audio/helio-workstation/default.nix
+++ b/pkgs/applications/audio/helio-workstation/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "One music sequencer for all major platforms, both desktop and mobile";
+    mainProgram = "helio";
     homepage = "https://helio.fm/";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.suhr ];
diff --git a/pkgs/applications/audio/hushboard/default.nix b/pkgs/applications/audio/hushboard/default.nix
index f0fde190db99..3248ab35b22c 100644
--- a/pkgs/applications/audio/hushboard/default.nix
+++ b/pkgs/applications/audio/hushboard/default.nix
@@ -67,6 +67,7 @@ buildPythonApplication {
     homepage = "https://kryogenix.org/code/hushboard/";
     license = licenses.mit;
     description = "Mute your microphone while typing";
+    mainProgram = "hushboard";
     platforms = platforms.linux;
     maintainers = with maintainers; [ sersorrel ];
   };
diff --git a/pkgs/applications/audio/iannix/default.nix b/pkgs/applications/audio/iannix/default.nix
index 31f0bbbb4c7d..f55fcdfd3601 100644
--- a/pkgs/applications/audio/iannix/default.nix
+++ b/pkgs/applications/audio/iannix/default.nix
@@ -21,6 +21,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical open-source sequencer";
+    mainProgram = "iannix";
     homepage = "https://www.iannix.org/";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/in-formant/default.nix b/pkgs/applications/audio/in-formant/default.nix
index 3df72add7f6b..89e7e876af8e 100644
--- a/pkgs/applications/audio/in-formant/default.nix
+++ b/pkgs/applications/audio/in-formant/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A real-time pitch and formant tracking software";
+    mainProgram = "in-formant";
     homepage = "https://github.com/in-formant/in-formant";
     license = licenses.asl20;
     # currently broken on i686-linux and aarch64-linux due to other nixpkgs dependencies
diff --git a/pkgs/applications/audio/indicator-sound-switcher/default.nix b/pkgs/applications/audio/indicator-sound-switcher/default.nix
index 6610e53e2cc7..c47aff47fffe 100644
--- a/pkgs/applications/audio/indicator-sound-switcher/default.nix
+++ b/pkgs/applications/audio/indicator-sound-switcher/default.nix
@@ -54,6 +54,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Sound input/output selector indicator for Linux";
+    mainProgram = "indicator-sound-switcher";
     homepage = "https://yktoo.com/en/software/sound-switcher-indicator/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ alexnortung ];
diff --git a/pkgs/applications/audio/jack-autoconnect/default.nix b/pkgs/applications/audio/jack-autoconnect/default.nix
index 302571c2be4d..d4fd50ca4f6d 100644
--- a/pkgs/applications/audio/jack-autoconnect/default.nix
+++ b/pkgs/applications/audio/jack-autoconnect/default.nix
@@ -24,6 +24,7 @@ mkDerivation rec {
     homepage = "https://github.com/kripton/jack_autoconnect";
     description =
       "Tiny application that reacts on port registrations by clients and connects them";
+    mainProgram = "jack_autoconnect";
     maintainers = with maintainers; [ unclechu ];
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/jack-capture/default.nix b/pkgs/applications/audio/jack-capture/default.nix
index e0b761a70f90..62fa23be2e5b 100644
--- a/pkgs/applications/audio/jack-capture/default.nix
+++ b/pkgs/applications/audio/jack-capture/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A program for recording soundfiles with jack";
+    mainProgram = "jack_capture";
     homepage = "https://github.com/kmatheussen/jack_capture/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ goibhniu orivej ];
diff --git a/pkgs/applications/audio/jack-oscrolloscope/default.nix b/pkgs/applications/audio/jack-oscrolloscope/default.nix
index 9905d072361e..8cdac43a3882 100644
--- a/pkgs/applications/audio/jack-oscrolloscope/default.nix
+++ b/pkgs/applications/audio/jack-oscrolloscope/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple waveform viewer for JACK";
+    mainProgram = "jack_oscrolloscope";
     homepage = "http://das.nasophon.de/jack_oscrolloscope";
     license = licenses.gpl2;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/applications/audio/jackmix/default.nix b/pkgs/applications/audio/jackmix/default.nix
index b34c7fbc1801..86c8a91862e7 100644
--- a/pkgs/applications/audio/jackmix/default.nix
+++ b/pkgs/applications/audio/jackmix/default.nix
@@ -36,6 +36,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Matrix-Mixer for the Jack-Audio-connection-Kit";
+    mainProgram = "jackmix";
     homepage = "https://github.com/kampfschlaefer/jackmix";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ kampfschlaefer ];
diff --git a/pkgs/applications/audio/jacktrip/default.nix b/pkgs/applications/audio/jacktrip/default.nix
index fc7b636e97af..150f05c5f53e 100644
--- a/pkgs/applications/audio/jacktrip/default.nix
+++ b/pkgs/applications/audio/jacktrip/default.nix
@@ -11,7 +11,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.2.2";
+  version = "2.2.4";
   pname = "jacktrip";
 
   src = fetchFromGitHub {
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     repo = "jacktrip";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-idfetMiMqjl9Qrun4hlFhQaGWcvasgjojTts+0F3GGE=";
+    sha256 = "sha256-H1zjBNEFPvZRDEaFOiL1ZAlHQsNxeT4WbXEOqg0+eFg=";
   };
 
   preConfigure = ''
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Multi-machine audio network performance over the Internet";
+    mainProgram = "jacktrip";
     homepage = "https://jacktrip.github.io/jacktrip/";
     license = with licenses; [ gpl3 lgpl3 mit ];
     maintainers = [ maintainers.iwanb ];
diff --git a/pkgs/applications/audio/jamesdsp/default.nix b/pkgs/applications/audio/jamesdsp/default.nix
index d7e96c84c6a5..4d2b7cf6dba1 100644
--- a/pkgs/applications/audio/jamesdsp/default.nix
+++ b/pkgs/applications/audio/jamesdsp/default.nix
@@ -80,6 +80,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "An audio effect processor for PipeWire clients";
+    mainProgram = "jamesdsp";
     homepage = "https://github.com/Audio4Linux/JDSP4Linux";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ pasqui23 rewine ];
diff --git a/pkgs/applications/audio/librespot/default.nix b/pkgs/applications/audio/librespot/default.nix
index 2617030829a5..dc60185fc0f7 100644
--- a/pkgs/applications/audio/librespot/default.nix
+++ b/pkgs/applications/audio/librespot/default.nix
@@ -50,6 +50,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Open Source Spotify client library and playback daemon";
+    mainProgram = "librespot";
     homepage = "https://github.com/librespot-org/librespot";
     changelog = "https://github.com/librespot-org/librespot/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/pkgs/applications/audio/lingot/default.nix b/pkgs/applications/audio/lingot/default.nix
index 234e2d675cb1..3d7339f571d6 100644
--- a/pkgs/applications/audio/lingot/default.nix
+++ b/pkgs/applications/audio/lingot/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Not a Guitar-Only tuner";
+    mainProgram = "lingot";
     homepage = "https://www.nongnu.org/lingot/";
     license = lib.licenses.gpl2Plus;
     platforms = with lib.platforms; linux;
diff --git a/pkgs/applications/audio/linvstmanager/default.nix b/pkgs/applications/audio/linvstmanager/default.nix
index dc8376c4166f..8df3fd507adc 100644
--- a/pkgs/applications/audio/linvstmanager/default.nix
+++ b/pkgs/applications/audio/linvstmanager/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical companion application for various bridges like LinVst, etc";
+    mainProgram = "linvstmanager";
     homepage = "https://github.com/Goli4thus/linvstmanager";
     license = with licenses; [ gpl3 ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/lmms/default.nix b/pkgs/applications/audio/lmms/default.nix
index 01b84780607b..75e5e9d39e83 100644
--- a/pkgs/applications/audio/lmms/default.nix
+++ b/pkgs/applications/audio/lmms/default.nix
@@ -48,6 +48,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "DAW similar to FL Studio (music production software)";
+    mainProgram = "lmms";
     homepage = "https://lmms.io";
     license = licenses.gpl2Plus;
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/audio/lyrebird/default.nix b/pkgs/applications/audio/lyrebird/default.nix
index 4f1d8ca36e84..5eb2d745cdc3 100644
--- a/pkgs/applications/audio/lyrebird/default.nix
+++ b/pkgs/applications/audio/lyrebird/default.nix
@@ -55,6 +55,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Simple and powerful voice changer for Linux, written in GTK 3";
+    mainProgram = "lyrebird";
     homepage = "https://github.com/chxrlt/lyrebird";
     license = licenses.mit;
     maintainers = with maintainers; [ OPNA2608 ];
diff --git a/pkgs/applications/audio/mellowplayer/default.nix b/pkgs/applications/audio/mellowplayer/default.nix
index b736ae882990..b5eb65cad444 100644
--- a/pkgs/applications/audio/mellowplayer/default.nix
+++ b/pkgs/applications/audio/mellowplayer/default.nix
@@ -65,6 +65,7 @@ mkDerivation rec {
     broken = stdenv.isDarwin; # test build fails, but the project is not maintained anymore
 
     description = "Cloud music integration for your desktop";
+    mainProgram = "MellowPlayer";
     homepage = "https://gitlab.com/ColinDuquesnoy/MellowPlayer";
     license = licenses.gpl2;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/pkgs/applications/audio/meters_lv2/default.nix b/pkgs/applications/audio/meters_lv2/default.nix
index e79da2fd1ea9..d4dbcf210ec9 100644
--- a/pkgs/applications/audio/meters_lv2/default.nix
+++ b/pkgs/applications/audio/meters_lv2/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Collection of audio level meters with GUI in LV2 plugin format";
+    mainProgram = "x42-meter";
     homepage = "https://x42.github.io/meters.lv2/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/mhwaveedit/default.nix b/pkgs/applications/audio/mhwaveedit/default.nix
index e6b21dff2dc5..42d4c38d47a3 100644
--- a/pkgs/applications/audio/mhwaveedit/default.nix
+++ b/pkgs/applications/audio/mhwaveedit/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical program for editing, playing and recording sound files";
+    mainProgram = "mhwaveedit";
     homepage = "https://github.com/magnush/mhwaveedit";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/midi-visualizer/default.nix b/pkgs/applications/audio/midi-visualizer/default.nix
index ed48c129418c..907a17eccb30 100644
--- a/pkgs/applications/audio/midi-visualizer/default.nix
+++ b/pkgs/applications/audio/midi-visualizer/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A small MIDI visualizer tool, using OpenGL";
+    mainProgram = "MIDIVisualizer";
     homepage = "https://github.com/kosua20/MIDIVisualizer";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/applications/audio/midisheetmusic/default.nix b/pkgs/applications/audio/midisheetmusic/default.nix
index 0d07663d115a..645c69a1c86b 100644
--- a/pkgs/applications/audio/midisheetmusic/default.nix
+++ b/pkgs/applications/audio/midisheetmusic/default.nix
@@ -54,6 +54,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Convert MIDI Files to Piano Sheet Music for two hands";
+    mainProgram = "midisheetmusic.mono.exe";
     homepage = "http://midisheetmusic.com";
     license = licenses.gpl2;
     maintainers = [ ];
diff --git a/pkgs/applications/audio/miniaudicle/default.nix b/pkgs/applications/audio/miniaudicle/default.nix
index 00f71063bac3..d0aed09ee863 100644
--- a/pkgs/applications/audio/miniaudicle/default.nix
+++ b/pkgs/applications/audio/miniaudicle/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A light-weight integrated development environment for the ChucK digital audio programming language";
+    mainProgram = "miniAudicle";
     homepage = "https://audicle.cs.princeton.edu/mini/";
     downloadPage = "https://audicle.cs.princeton.edu/mini/linux/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/mixxx/default.nix b/pkgs/applications/audio/mixxx/default.nix
index f9e860d78177..4abc6d4956f4 100644
--- a/pkgs/applications/audio/mixxx/default.nix
+++ b/pkgs/applications/audio/mixxx/default.nix
@@ -142,6 +142,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://mixxx.org";
     description = "Digital DJ mixing software";
+    mainProgram = "mixxx";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ goibhniu bfortz ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/monkeys-audio/default.nix b/pkgs/applications/audio/monkeys-audio/default.nix
index d4da27dd3639..c68d14b28f99 100644
--- a/pkgs/applications/audio/monkeys-audio/default.nix
+++ b/pkgs/applications/audio/monkeys-audio/default.nix
@@ -5,13 +5,13 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  version = "10.52";
+  version = "10.60";
   pname = "monkeys-audio";
 
   src = fetchzip {
     url = "https://monkeysaudio.com/files/MAC_${
       builtins.concatStringsSep "" (lib.strings.splitString "." finalAttrs.version)}_SDK.zip";
-    hash = "sha256-n+bQzvuCTt7dnqkPO592KKZeShmMlbp/KAXK0F2dlTg=";
+    hash = "sha256-llOo9G65UDDCzaSahq5qssw6SmOJ5C9qS2bdXB/pKF0=";
     stripRoot = false;
   };
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/mopidy/mopidy.nix b/pkgs/applications/audio/mopidy/mopidy.nix
index b92d0fd77c11..bf7f9a07f772 100644
--- a/pkgs/applications/audio/mopidy/mopidy.nix
+++ b/pkgs/applications/audio/mopidy/mopidy.nix
@@ -46,6 +46,7 @@ pythonPackages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://www.mopidy.com/";
     description = "An extensible music server that plays music from local disk, Spotify, SoundCloud, and more";
+    mainProgram = "mopidy";
     license = licenses.asl20;
     maintainers = [ maintainers.fpletz ];
     hydraPlatforms = [];
diff --git a/pkgs/applications/audio/mousai/default.nix b/pkgs/applications/audio/mousai/default.nix
index c2bcc0200fbc..1ce6a0ea8209 100644
--- a/pkgs/applications/audio/mousai/default.nix
+++ b/pkgs/applications/audio/mousai/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Identify any songs in seconds";
+    mainProgram = "mousai";
     homepage = "https://github.com/SeaDve/Mousai";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/applications/audio/munt/mt32emu-qt.nix b/pkgs/applications/audio/munt/mt32emu-qt.nix
index 51501de4a89e..9ebb59ddafdd 100644
--- a/pkgs/applications/audio/munt/mt32emu-qt.nix
+++ b/pkgs/applications/audio/munt/mt32emu-qt.nix
@@ -65,6 +65,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://munt.sourceforge.net/";
     description = "A synthesizer application built on Qt and libmt32emu";
+    mainProgram = "mt32emu-qt";
     longDescription = ''
       mt32emu-qt is a synthesiser application that facilitates both realtime
       synthesis and conversion of pre-recorded SMF files to WAVE making use of
diff --git a/pkgs/applications/audio/munt/mt32emu-smf2wav.nix b/pkgs/applications/audio/munt/mt32emu-smf2wav.nix
index 517d1b200aab..3ebadcca91be 100644
--- a/pkgs/applications/audio/munt/mt32emu-smf2wav.nix
+++ b/pkgs/applications/audio/munt/mt32emu-smf2wav.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://munt.sourceforge.net/";
     description = "Produces a WAVE file from a Standard MIDI file (SMF)";
+    mainProgram = "mt32emu-smf2wav";
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ OPNA2608 ];
     platforms = platforms.all;
diff --git a/pkgs/applications/audio/muso/default.nix b/pkgs/applications/audio/muso/default.nix
index 95c45216ef2e..30b26e7e5979 100644
--- a/pkgs/applications/audio/muso/default.nix
+++ b/pkgs/applications/audio/muso/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "An automatic music sorter (based on ID3 tags)";
+    mainProgram = "muso";
     homepage = "https://github.com/quebin31/muso";
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/audio/nootka/default.nix b/pkgs/applications/audio/nootka/default.nix
index 3ce835138f6d..a52c5bb98176 100644
--- a/pkgs/applications/audio/nootka/default.nix
+++ b/pkgs/applications/audio/nootka/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Application for practicing playing musical scores and ear training";
+    mainProgram = "nootka";
     homepage = "https://nootka.sourceforge.io/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mmlb orivej ];
diff --git a/pkgs/applications/audio/nova-filters/default.nix b/pkgs/applications/audio/nova-filters/default.nix
index 1c457c8a0e7b..17d90c6d310b 100644
--- a/pkgs/applications/audio/nova-filters/default.nix
+++ b/pkgs/applications/audio/nova-filters/default.nix
@@ -4,7 +4,6 @@
 , scons
 , boost
 , ladspaH
-, libcxxabi
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -23,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
       --replace "-fomit-frame-pointer -ffast-math -mfpmath=sse" "-I${boost.dev}/include -I${ladspaH}/include" \
       --replace "env.has_key('cxx')" "True" \
       --replace "env['cxx']" "'${stdenv.cc.targetPrefix}c++'" \
-      --replace "-Wl,--strip-all" "${lib.optionalString stdenv.isDarwin "-L${libcxxabi}/lib"}"
+      --replace "-Wl,--strip-all" ""
 
     substituteInPlace filters.cpp \
       --replace "LADSPA_HINT_SAMPLE_RATE, 0, 0.5" "LADSPA_HINT_SAMPLE_RATE, 0.0001, 0.5"
diff --git a/pkgs/applications/audio/padthv1/default.nix b/pkgs/applications/audio/padthv1/default.nix
index 2c4581cc7319..f51a3f69a2c5 100644
--- a/pkgs/applications/audio/padthv1/default.nix
+++ b/pkgs/applications/audio/padthv1/default.nix
@@ -15,6 +15,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "polyphonic additive synthesizer";
+    mainProgram = "padthv1_jack";
     homepage = "http://padthv1.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/paprefs/default.nix b/pkgs/applications/audio/paprefs/default.nix
index ef45cc4676a1..212d866059da 100644
--- a/pkgs/applications/audio/paprefs/default.nix
+++ b/pkgs/applications/audio/paprefs/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "PulseAudio Preferences";
+    mainProgram = "paprefs";
 
     longDescription = ''
       PulseAudio Preferences (paprefs) is a simple GTK based configuration
diff --git a/pkgs/applications/audio/parlatype/default.nix b/pkgs/applications/audio/parlatype/default.nix
index 23fb4380a2e5..d05130de4124 100644
--- a/pkgs/applications/audio/parlatype/default.nix
+++ b/pkgs/applications/audio/parlatype/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GNOME audio player for transcription";
+    mainProgram = "parlatype";
     longDescription = ''
       Parlatype is a minimal audio player for manual speech transcription,
       written for the GNOME desktop environment. It plays audio sources to
diff --git a/pkgs/applications/audio/patchance/default.nix b/pkgs/applications/audio/patchance/default.nix
index 7770065b3d1c..86e1d2745b96 100644
--- a/pkgs/applications/audio/patchance/default.nix
+++ b/pkgs/applications/audio/patchance/default.nix
@@ -42,6 +42,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/Houston4444/Patchance";
     description = "JACK Patchbay GUI";
+    mainProgram = "patchance";
     license = licenses.gpl2;
     maintainers = with maintainers; [ orivej ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/pianobooster/default.nix b/pkgs/applications/audio/pianobooster/default.nix
index 7d62aa61d6b0..a83c5ee7e401 100644
--- a/pkgs/applications/audio/pianobooster/default.nix
+++ b/pkgs/applications/audio/pianobooster/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A MIDI file player that teaches you how to play the piano";
+    mainProgram = "pianobooster";
     homepage = "https://github.com/pianobooster/PianoBooster";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix
index 36ed7069ea80..82909a6296bf 100644
--- a/pkgs/applications/audio/picard/default.nix
+++ b/pkgs/applications/audio/picard/default.nix
@@ -77,6 +77,7 @@ pythonPackages.buildPythonApplication rec {
     homepage = "https://picard.musicbrainz.org";
     changelog = "https://picard.musicbrainz.org/changelog";
     description = "The official MusicBrainz tagger";
+    mainProgram = "picard";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
   };
diff --git a/pkgs/applications/audio/pipecontrol/default.nix b/pkgs/applications/audio/pipecontrol/default.nix
index 0f302bc72e5d..1586be58e3cf 100644
--- a/pkgs/applications/audio/pipecontrol/default.nix
+++ b/pkgs/applications/audio/pipecontrol/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Pipewire control GUI program in Qt (Kirigami2)";
+    mainProgram = "pipecontrol";
     homepage = "https://github.com/portaloffreedom/pipecontrol";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ tilcreator ];
diff --git a/pkgs/applications/audio/pithos/default.nix b/pkgs/applications/audio/pithos/default.nix
index 6de3da92db8a..1ff4aedb6b00 100644
--- a/pkgs/applications/audio/pithos/default.nix
+++ b/pkgs/applications/audio/pithos/default.nix
@@ -4,13 +4,13 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "pithos";
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo  = pname;
-    rev = version;
-    hash = "sha256-GPDbFlwiGT/B2paX33d3mUCV77q+fPM0LMaKFsQQjjQ=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-3j6IoMi30BQ8WHK4BxbsW+/3XZx7rBFd47EBENa2GiQ=";
   };
 
   format = "other";
@@ -34,6 +34,7 @@ pythonPackages.buildPythonApplication rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Pandora Internet Radio player for GNOME";
+    mainProgram = "pithos";
     homepage = "https://pithos.github.io/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ obadz ];
diff --git a/pkgs/applications/audio/plugdata/default.nix b/pkgs/applications/audio/plugdata/default.nix
index b4f587f2e807..9af5c4a9fa85 100644
--- a/pkgs/applications/audio/plugdata/default.nix
+++ b/pkgs/applications/audio/plugdata/default.nix
@@ -114,6 +114,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Plugin wrapper around Pure Data to allow patching in a wide selection of DAWs";
+    mainProgram = "plugdata";
     homepage = "https://plugdata.org/";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/polyphone/default.nix b/pkgs/applications/audio/polyphone/default.nix
index 0e73861aa0f4..a01ce9773afa 100644
--- a/pkgs/applications/audio/polyphone/default.nix
+++ b/pkgs/applications/audio/polyphone/default.nix
@@ -46,6 +46,7 @@ mkDerivation rec {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "A soundfont editor for creating musical instruments";
+    mainProgram = "polyphone";
     homepage = "https://www.polyphone-soundfonts.com/";
     license = licenses.gpl3;
     maintainers = [ maintainers.maxdamantus ];
diff --git a/pkgs/applications/audio/praat/default.nix b/pkgs/applications/audio/praat/default.nix
index 0f98ba2357a5..6274d448ad51 100644
--- a/pkgs/applications/audio/praat/default.nix
+++ b/pkgs/applications/audio/praat/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "Doing phonetics by computer";
+    mainProgram = "praat";
     homepage = "https://www.fon.hum.uva.nl/praat/";
     license = lib.licenses.gpl2Plus; # Has some 3rd-party code in it though
     maintainers = with lib.maintainers; [ orivej ];
diff --git a/pkgs/applications/audio/pragha/default.nix b/pkgs/applications/audio/pragha/default.nix
index 8e039f05927f..2ae9e233c4e2 100644
--- a/pkgs/applications/audio/pragha/default.nix
+++ b/pkgs/applications/audio/pragha/default.nix
@@ -95,6 +95,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A lightweight GTK+ music manager - fork of Consonance Music Manager";
+    mainProgram = "pragha";
     homepage = "https://pragha-music-player.github.io/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mbaeten ];
diff --git a/pkgs/applications/audio/psst/default.nix b/pkgs/applications/audio/psst/default.nix
index 46958b01bd1c..7abb8e78d161 100644
--- a/pkgs/applications/audio/psst/default.nix
+++ b/pkgs/applications/audio/psst/default.nix
@@ -16,7 +16,7 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "psst";
-  version = "unstable-2024-03-04";
+  version = "unstable-2024-02-11";
 
   src = fetchFromGitHub {
     owner = "jpochyla";
diff --git a/pkgs/applications/audio/psst/update.sh b/pkgs/applications/audio/psst/update.sh
index a504b61c2410..4ffa9417f040 100755
--- a/pkgs/applications/audio/psst/update.sh
+++ b/pkgs/applications/audio/psst/update.sh
@@ -24,7 +24,9 @@ if [ -z "$rev" ]; then
     rev="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/jpochyla/psst/commits?per_page=1" | jq -r '.[0].sha')"
 fi
 
-version="unstable-$(date +%F)"
+date="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/jpochyla/psst/commits/$rev" | jq -r '.commit.author.date' | cut -dT -f1)"
+
+version="unstable-$date"
 
 # Sources
 src_hash=$(nix-prefetch-github jpochyla psst --rev "$rev" | jq -r .hash)
diff --git a/pkgs/applications/audio/pt2-clone/default.nix b/pkgs/applications/audio/pt2-clone/default.nix
index 0f4bb9957f7a..c4213c06f8bc 100644
--- a/pkgs/applications/audio/pt2-clone/default.nix
+++ b/pkgs/applications/audio/pt2-clone/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pt2-clone";
-  version = "1.66.1";
+  version = "1.67";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "pt2-clone";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-j7VPC1sj1Q+wL2TBgv06uYLPqym8F57HG1SRvj0Ggeo=";
+    sha256 = "sha256-fTUTXwS6A72zhKkANlSljQVvPeN5rOTyuyb8vLxYfdk=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/audio/puddletag/default.nix b/pkgs/applications/audio/puddletag/default.nix
index 128d5c59c78e..ddeee09d829d 100644
--- a/pkgs/applications/audio/puddletag/default.nix
+++ b/pkgs/applications/audio/puddletag/default.nix
@@ -21,14 +21,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "puddletag";
-  version = "2.2.0";
+  version = "2.3.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "puddletag";
     repo = "puddletag";
     rev = "refs/tags/${version}";
-    hash = "sha256-KaFfpOWI9u2ZC/3kuCLneWOOKSmAaIuHPFHptkKMH/g=";
+    hash = "sha256-oScT8YcQoDf2qZ+J7xKm22Sbfym3tkVUrWT5D2LU5e8=";
   };
 
   pythonRelaxDeps = true;
@@ -57,6 +57,7 @@ python3.pkgs.buildPythonApplication rec {
     pyparsing
     pyqt5
     rapidfuzz
+    unidecode
   ];
 
   # the file should be executable but it isn't so our wrapper doesn't run
@@ -71,6 +72,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "An audio tag editor similar to the Windows program, Mp3tag";
+    mainProgram = "puddletag";
     homepage = "https://docs.puddletag.net";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ peterhoeg dschrempf ];
diff --git a/pkgs/applications/audio/pulseaudio-ctl/default.nix b/pkgs/applications/audio/pulseaudio-ctl/default.nix
index 1b21aa9d4163..e58d8edba6f9 100644
--- a/pkgs/applications/audio/pulseaudio-ctl/default.nix
+++ b/pkgs/applications/audio/pulseaudio-ctl/default.nix
@@ -33,6 +33,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Control pulseaudio volume from the shell or mapped to keyboard shortcuts. No need for alsa-utils";
+    mainProgram = "pulseaudio-ctl";
     homepage = "https://bbs.archlinux.org/viewtopic.php?id=124513";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/applications/audio/pulseaudio-dlna/default.nix b/pkgs/applications/audio/pulseaudio-dlna/default.nix
index 5358750b13e2..57f99b81299e 100644
--- a/pkgs/applications/audio/pulseaudio-dlna/default.nix
+++ b/pkgs/applications/audio/pulseaudio-dlna/default.nix
@@ -67,6 +67,7 @@ python3Packages.buildPythonApplication {
 
   meta = with lib; {
     description = "A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux";
+    mainProgram = "pulseaudio-dlna";
     homepage = "https://github.com/Cygn/pulseaudio-dlna";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mog ];
diff --git a/pkgs/applications/audio/pulseeffects-legacy/default.nix b/pkgs/applications/audio/pulseeffects-legacy/default.nix
index 7d255b7a71e2..c243b99f098c 100644
--- a/pkgs/applications/audio/pulseeffects-legacy/default.nix
+++ b/pkgs/applications/audio/pulseeffects-legacy/default.nix
@@ -106,6 +106,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Limiter, compressor, reverberation, equalizer and auto volume effects for Pulseaudio applications";
+    mainProgram = "pulseeffects";
     homepage = "https://github.com/wwmm/pulseeffects";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/audio/pyradio/default.nix b/pkgs/applications/audio/pyradio/default.nix
index e9ef64260f46..9748c9f16111 100644
--- a/pkgs/applications/audio/pyradio/default.nix
+++ b/pkgs/applications/audio/pyradio/default.nix
@@ -39,6 +39,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "http://www.coderholic.com/pyradio/";
     description = "Curses based internet radio player";
+    mainProgram = "pyradio";
     changelog = "https://github.com/coderholic/pyradio/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ contrun ];
diff --git a/pkgs/applications/audio/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix
index abfcef0d2f75..47f8f10fbf0f 100644
--- a/pkgs/applications/audio/qjackctl/default.nix
+++ b/pkgs/applications/audio/qjackctl/default.nix
@@ -38,6 +38,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A Qt application to control the JACK sound server daemon";
+    mainProgram = "qjackctl";
     homepage = "https://github.com/rncbc/qjackctl";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/applications/audio/qmidiarp/default.nix b/pkgs/applications/audio/qmidiarp/default.nix
index 4c2de70efc0f..7b7f929e5379 100644
--- a/pkgs/applications/audio/qmidiarp/default.nix
+++ b/pkgs/applications/audio/qmidiarp/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An advanced MIDI arpeggiator";
+    mainProgram = "qmidiarp";
     longDescription = ''
       An advanced MIDI arpeggiator, programmable step sequencer and LFO for Linux.
       It can hold any number of arpeggiator, sequencer, or LFO modules running in
diff --git a/pkgs/applications/audio/qmidinet/default.nix b/pkgs/applications/audio/qmidinet/default.nix
index 556787ca9ea5..29c8ad7a797f 100644
--- a/pkgs/applications/audio/qmidinet/default.nix
+++ b/pkgs/applications/audio/qmidinet/default.nix
@@ -17,6 +17,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A MIDI network gateway application that sends and receives MIDI data (ALSA Sequencer and/or JACK MIDI) over the network";
+    mainProgram = "qmidinet";
     homepage = "http://qmidinet.sourceforge.net/";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/qmmp/default.nix b/pkgs/applications/audio/qmmp/default.nix
index 54da814c5f20..427d9f48c1fd 100644
--- a/pkgs/applications/audio/qmmp/default.nix
+++ b/pkgs/applications/audio/qmmp/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Qt-based audio player that looks like Winamp";
+    mainProgram = "qmmp";
     homepage = "https://qmmp.ylsoftware.com/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/qsampler/default.nix b/pkgs/applications/audio/qsampler/default.nix
index bb40e0b3eebc..bd4922394f6a 100644
--- a/pkgs/applications/audio/qsampler/default.nix
+++ b/pkgs/applications/audio/qsampler/default.nix
@@ -20,6 +20,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.linuxsampler.org";
     description = "Graphical frontend to LinuxSampler";
+    mainProgram = "qsampler";
     license = licenses.gpl2;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/qsynth/default.nix b/pkgs/applications/audio/qsynth/default.nix
index a24625ca7de8..714a66f6e2c8 100644
--- a/pkgs/applications/audio/qsynth/default.nix
+++ b/pkgs/applications/audio/qsynth/default.nix
@@ -1,28 +1,23 @@
-{ lib, fetchurl, alsa-lib, fluidsynth, libjack2, autoconf, pkg-config
-, mkDerivation, qtbase, qttools, qtx11extras
+{ lib, stdenv, fetchurl, alsa-lib, fluidsynth, libjack2, cmake, pkg-config
+, qtbase, qttools, qtx11extras, wrapQtAppsHook
 }:
 
-mkDerivation  rec {
+stdenv.mkDerivation rec {
   pname = "qsynth";
-  version = "0.9.4";
+  version = "0.9.13";
 
   src = fetchurl {
     url = "mirror://sourceforge/qsynth/${pname}-${version}.tar.gz";
-    sha256 = "sha256-dlgIkMde7uv4UlMKEPhtZ7MfSTBc7RvHs+Q2yk+G/JM=";
+    hash = "sha256-SvgZrdS6BwWhNgbovcfhpQKVcu0iwr4dDqeIckuo1fk=";
   };
 
-  nativeBuildInputs = [ autoconf pkg-config ];
+  nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
 
   buildInputs = [ alsa-lib fluidsynth libjack2 qtbase qttools qtx11extras ];
 
-  enableParallelBuilding = true;
-  # Missing install depends:
-  #   lrelease error: Parse error at src/translations/qsynth_ru.ts:1503:33: Premature end of document.
-  #   make: *** [Makefile:107: src/translations/qsynth_ru.qm] Error 1
-  enableParallelInstalling = false;
-
   meta = with lib; {
     description = "Fluidsynth GUI";
+    mainProgram = "qsynth";
     homepage = "https://sourceforge.net/projects/qsynth";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ goibhniu ];
diff --git a/pkgs/applications/audio/r128gain/default.nix b/pkgs/applications/audio/r128gain/default.nix
index 8cf6871a76b4..6cf7f41f10ce 100644
--- a/pkgs/applications/audio/r128gain/default.nix
+++ b/pkgs/applications/audio/r128gain/default.nix
@@ -36,6 +36,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Fast audio loudness scanner & tagger (ReplayGain v2 / R128)";
+    mainProgram = "r128gain";
     homepage = "https://github.com/desbma/r128gain";
     license = licenses.lgpl2Plus;
     maintainers = [ maintainers.AluisioASG ];
diff --git a/pkgs/applications/audio/radioboat/default.nix b/pkgs/applications/audio/radioboat/default.nix
index 3dc97a84b62f..b5421115201a 100644
--- a/pkgs/applications/audio/radioboat/default.nix
+++ b/pkgs/applications/audio/radioboat/default.nix
@@ -51,6 +51,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A terminal web radio client";
+    mainProgram = "radioboat";
     homepage = "https://github.com/slashformotion/radioboat";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/redoflacs/default.nix b/pkgs/applications/audio/redoflacs/default.nix
index 999dc90a6e4e..75425375f6af 100644
--- a/pkgs/applications/audio/redoflacs/default.nix
+++ b/pkgs/applications/audio/redoflacs/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Parallel BASH commandline FLAC compressor, verifier, organizer, analyzer, and retagger";
+    mainProgram = "redoflacs";
     homepage = src.meta.homepage;
     license = licenses.gpl2;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/applications/audio/rofi-mpd/default.nix b/pkgs/applications/audio/rofi-mpd/default.nix
index 8f9819bd913b..65c4c700e262 100644
--- a/pkgs/applications/audio/rofi-mpd/default.nix
+++ b/pkgs/applications/audio/rofi-mpd/default.nix
@@ -18,6 +18,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A rofi menu for interacting with MPD written in Python";
+    mainProgram = "rofi-mpd";
     homepage = "https://github.com/JakeStanger/Rofi_MPD";
     license = licenses.mit;
     maintainers = with maintainers; [ jakestanger ];
diff --git a/pkgs/applications/audio/rofi-pulse-select/default.nix b/pkgs/applications/audio/rofi-pulse-select/default.nix
index 0664a6c2c4d7..857cdddeb638 100644
--- a/pkgs/applications/audio/rofi-pulse-select/default.nix
+++ b/pkgs/applications/audio/rofi-pulse-select/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Rofi-based interface to select source/sink (aka input/output) with PulseAudio";
+    mainProgram = "rofi-pulse-select";
     homepage = "https://gitlab.com/DamienCassou/rofi-pulse-select";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ DamienCassou ];
diff --git a/pkgs/applications/audio/rosegarden/default.nix b/pkgs/applications/audio/rosegarden/default.nix
index 0a82a4671db2..57a7ca82254a 100644
--- a/pkgs/applications/audio/rosegarden/default.nix
+++ b/pkgs/applications/audio/rosegarden/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.rosegardenmusic.com/";
     description = "Music composition and editing environment";
+    mainProgram = "rosegarden";
     longDescription = ''
       Rosegarden is a music composition and editing environment based around
       a MIDI sequencer that features a rich understanding of music notation
diff --git a/pkgs/applications/audio/rubyripper/default.nix b/pkgs/applications/audio/rubyripper/default.nix
index 23cc0577c688..a30eca6a7686 100644
--- a/pkgs/applications/audio/rubyripper/default.nix
+++ b/pkgs/applications/audio/rubyripper/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "High quality CD audio ripper";
+    mainProgram = "rrip_cli";
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
     homepage = "https://github.com/bleskodev/rubyripper";
diff --git a/pkgs/applications/audio/samplebrain/default.nix b/pkgs/applications/audio/samplebrain/default.nix
index 942e7bccc13c..54314812491c 100644
--- a/pkgs/applications/audio/samplebrain/default.nix
+++ b/pkgs/applications/audio/samplebrain/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A custom sample mashing app";
+    mainProgram = "samplebrain";
     homepage = "https://thentrythis.org/projects/samplebrain";
     changelog = "https://gitlab.com/then-try-this/samplebrain/-/releases/v${version}_release";
     maintainers = with maintainers; [ mitchmindtree ];
diff --git a/pkgs/applications/audio/samplv1/default.nix b/pkgs/applications/audio/samplv1/default.nix
index 95035570e924..1af25d0d75b5 100644
--- a/pkgs/applications/audio/samplv1/default.nix
+++ b/pkgs/applications/audio/samplv1/default.nix
@@ -18,6 +18,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "An old-school all-digital polyphonic sampler synthesizer with stereo fx";
+    mainProgram = "samplv1_jack";
     homepage = "http://samplv1.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/seq66/default.nix b/pkgs/applications/audio/seq66/default.nix
index 8f47ab0b6a20..51d40f962a88 100644
--- a/pkgs/applications/audio/seq66/default.nix
+++ b/pkgs/applications/audio/seq66/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "seq66";
-  version = "0.90.5";
+  version = "0.99.12";
 
   src = fetchFromGitHub {
     owner = "ahlstromcj";
-    repo = pname;
+    repo = "seq66";
     rev = version;
-    sha256 = "1jvra1wzlycfpvffnqidk264zw6fyl4fsghkw5256ldk22aalmq9";
+    hash = "sha256-+EU0UdmZaDnhN142yR/r0tK1FKBbuFPmde6iSS26Tjo=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config qttools which wrapQtAppsHook ];
@@ -18,13 +18,9 @@ stdenv.mkDerivation rec {
   buildInputs = [ alsa-lib libjack2 liblo qtbase ];
 
   postPatch = ''
-    for d in libseq66/include libseq66/src libsessions/include libsessions/src seq_qt5/src seq_rtmidi/include seq_rtmidi/src Seqtool/src; do
-      substituteInPlace "$d/Makefile.am" --replace '$(git_info)' '${version}'
+    for d in libseq66/src libsessions/include libsessions/src seq_qt5/src seq_rtmidi/src; do
+      substituteInPlace "$d/Makefile.am" --replace-fail '$(git_info)' '${version}'
     done
-
-    # gcc-13 headers compatibilty. TODO: try to remove with next version
-    # update
-    sed -e '1i #include <cstdint>' -i libseq66/src/os/daemonize.cpp
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/audio/sfxr-qt/default.nix b/pkgs/applications/audio/sfxr-qt/default.nix
index 2b264cfd56b9..529d12db967f 100644
--- a/pkgs/applications/audio/sfxr-qt/default.nix
+++ b/pkgs/applications/audio/sfxr-qt/default.nix
@@ -58,6 +58,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/agateau/sfxr-qt";
     description = "A sound effect generator, QtQuick port of sfxr";
+    mainProgram = "sfxr-qt";
     license = licenses.gpl2;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/sfxr/default.nix b/pkgs/applications/audio/sfxr/default.nix
index 08efb7690335..552bc8ea52a5 100644
--- a/pkgs/applications/audio/sfxr/default.nix
+++ b/pkgs/applications/audio/sfxr/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
     broken = stdenv.isDarwin;
     homepage = "http://www.drpetter.se/project_sfxr.html";
     description = "A videogame sound effect generator";
+    mainProgram = "sfxr";
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/audio/shortwave/default.nix b/pkgs/applications/audio/shortwave/default.nix
index b64e4bf5e50e..c1f3f53416fd 100644
--- a/pkgs/applications/audio/shortwave/default.nix
+++ b/pkgs/applications/audio/shortwave/default.nix
@@ -75,6 +75,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/World/Shortwave";
     description = "Find and listen to internet radio stations";
+    mainProgram = "shortwave";
     longDescription = ''
       Shortwave is a streaming audio player designed for the GNOME
       desktop. It is the successor to the older Gradio application.
diff --git a/pkgs/applications/audio/sonata/default.nix b/pkgs/applications/audio/sonata/default.nix
index e5aa90180120..97397da96f25 100644
--- a/pkgs/applications/audio/sonata/default.nix
+++ b/pkgs/applications/audio/sonata/default.nix
@@ -46,6 +46,7 @@ in buildPythonApplication rec {
 
   meta = {
     description = "An elegant client for the Music Player Daemon";
+    mainProgram = "sonata";
     longDescription = ''
       Sonata is an elegant client for the Music Player Daemon.
 
diff --git a/pkgs/applications/audio/sonic-lineup/default.nix b/pkgs/applications/audio/sonic-lineup/default.nix
index 6ea4bcd6628d..f58f88b32138 100644
--- a/pkgs/applications/audio/sonic-lineup/default.nix
+++ b/pkgs/applications/audio/sonic-lineup/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Comparative visualisation of related audio recordings";
+    mainProgram = "sonic-lineup";
     homepage = "https://www.sonicvisualiser.org/sonic-lineup/";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.vandenoever ];
diff --git a/pkgs/applications/audio/sound-juicer/default.nix b/pkgs/applications/audio/sound-juicer/default.nix
index 999b2825eff7..261de6e48450 100644
--- a/pkgs/applications/audio/sound-juicer/default.nix
+++ b/pkgs/applications/audio/sound-juicer/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Gnome CD Ripper";
+    mainProgram = "sound-juicer";
     homepage = "https://wiki.gnome.org/Apps/SoundJuicer";
     maintainers = [ maintainers.bdimcheff ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/soundconverter/default.nix b/pkgs/applications/audio/soundconverter/default.nix
index e2e5094e8452..b07ed63f220d 100644
--- a/pkgs/applications/audio/soundconverter/default.nix
+++ b/pkgs/applications/audio/soundconverter/default.nix
@@ -73,6 +73,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://soundconverter.org/";
     description = "Leading audio file converter for the GNOME Desktop";
+    mainProgram = "soundconverter";
     longDescription = ''
       SoundConverter reads anything the GStreamer library can read,
       and writes WAV, FLAC, MP3, AAC and Ogg Vorbis files.
diff --git a/pkgs/applications/audio/soundkonverter/default.nix b/pkgs/applications/audio/soundkonverter/default.nix
index b044db5fab82..0aebd46210da 100644
--- a/pkgs/applications/audio/soundkonverter/default.nix
+++ b/pkgs/applications/audio/soundkonverter/default.nix
@@ -78,6 +78,7 @@ mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.schmittlauch ];
     description = "Audio file converter, CD ripper and Replay Gain tool";
+    mainProgram = "soundkonverter";
     longDescription = ''
       soundKonverter is a frontend to various audio converters.
 
diff --git a/pkgs/applications/audio/spek/default.nix b/pkgs/applications/audio/spek/default.nix
index f54e661b4c74..bd206709c26e 100644
--- a/pkgs/applications/audio/spek/default.nix
+++ b/pkgs/applications/audio/spek/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Analyse your audio files by showing their spectrogram";
+    mainProgram = "spek";
     homepage = "http://spek.cc/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ bjornfor ];
diff --git a/pkgs/applications/audio/spot/default.nix b/pkgs/applications/audio/spot/default.nix
index d9a0babb6840..7cf683beb918 100644
--- a/pkgs/applications/audio/spot/default.nix
+++ b/pkgs/applications/audio/spot/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Native Spotify client for the GNOME desktop";
+    mainProgram = "spot";
     homepage = "https://github.com/xou816/spot";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/audio/spotify-cli-linux/default.nix b/pkgs/applications/audio/spotify-cli-linux/default.nix
index 82aa5c366ab6..73b1ea913206 100644
--- a/pkgs/applications/audio/spotify-cli-linux/default.nix
+++ b/pkgs/applications/audio/spotify-cli-linux/default.nix
@@ -23,6 +23,7 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://pwittchen.github.io/spotify-cli-linux/";
     maintainers = [ maintainers.kmein ];
     description = "A command line interface to Spotify on Linux.";
+    mainProgram = "spotifycli";
     license = licenses.gpl3;
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/audio/spotify-player/default.nix b/pkgs/applications/audio/spotify-player/default.nix
index 0e4e5234ec00..f3c675564512 100644
--- a/pkgs/applications/audio/spotify-player/default.nix
+++ b/pkgs/applications/audio/spotify-player/default.nix
@@ -33,16 +33,16 @@ assert lib.assertOneOf "withAudioBackend" withAudioBackend [ "" "alsa" "pulseaud
 
 rustPlatform.buildRustPackage rec {
   pname = "spotify-player";
-  version = "0.17.0";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "aome510";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-fGDIlkTaRg+J6YcP9iBcJFuYm9F0UOA+v/26hhdg9/o=";
+    hash = "sha256-1aq+J1dP+hGJHq3boxZLUFfLLSFDY2uN6BwYXqHjCtk=";
   };
 
-  cargoHash = "sha256-oZNydOnD2+6gLAsT3YTSlWSQ06EftS7Tl/AvlTbL84U=";
+  cargoHash = "sha256-nULTz1H52L1kiTtViYfvxL+jrJ0uDk68oe8t5Hd7aCU=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/audio/spotify-qt/default.nix b/pkgs/applications/audio/spotify-qt/default.nix
index d302643eb47d..4f6460bd3a2d 100644
--- a/pkgs/applications/audio/spotify-qt/default.nix
+++ b/pkgs/applications/audio/spotify-qt/default.nix
@@ -28,6 +28,7 @@ mkDerivation rec {
 
    meta = with lib; {
     description = "Lightweight unofficial Spotify client using Qt";
+    mainProgram = "spotify-qt";
     homepage = "https://github.com/kraxarn/spotify-qt";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/audio/spotifyd/default.nix b/pkgs/applications/audio/spotifyd/default.nix
index 0e41bedb2650..6de9493ab8e8 100644
--- a/pkgs/applications/audio/spotifyd/default.nix
+++ b/pkgs/applications/audio/spotifyd/default.nix
@@ -9,16 +9,16 @@
 
 rustPackages.rustPlatform.buildRustPackage rec {
   pname = "spotifyd";
-  version = "0.3.5";
+  version = "0.3.5-unstable-2024-02-18";
 
   src = fetchFromGitHub {
     owner = "Spotifyd";
     repo = "spotifyd";
-    rev = "v${version}";
-    hash = "sha256-+P85FWJIsfAv8/DnQFxfoWvNY8NpbZ2xUidfwN8tiA8=";
+    rev = "ff2f7a06e54bf05afd57a0243dc9f67abc15f040";
+    hash = "sha256-nebAd4a+ht+blRP52OF830/Dm15ZPwRL4IPWmmT9ViM=";
   };
 
-  cargoHash = "sha256-j+2yEtn3D+vNRcY4+NnqSX4xRQIE5Sq7bentxTh6kMI=";
+  cargoHash = "sha256-6BRIMTrWTwvX3yIGEYEvigMT+n4EtaruMdrej2Dd49w=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -40,7 +40,7 @@ rustPackages.rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "An open source Spotify client running as a UNIX daemon";
     homepage = "https://spotifyd.rs/";
-    changelog = "https://github.com/Spotifyd/spotifyd/raw/v${version}/CHANGELOG.md";
+    changelog = "https://github.com/Spotifyd/spotifyd/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ anderslundstedt Br1ght0ne marsam ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/audio/squeezelite/default.nix b/pkgs/applications/audio/squeezelite/default.nix
index 3fd633506b2d..694dd04d12a9 100644
--- a/pkgs/applications/audio/squeezelite/default.nix
+++ b/pkgs/applications/audio/squeezelite/default.nix
@@ -45,13 +45,13 @@ stdenv.mkDerivation {
   pname = binName;
   # versions are specified in `squeezelite.h`
   # see https://github.com/ralph-irving/squeezelite/issues/29
-  version = "2.0.0.1468";
+  version = "2.0.0.1473";
 
   src = fetchFromGitHub {
     owner = "ralph-irving";
     repo = "squeezelite";
-    rev = "fd89d67b1b9a17a6dd212be0c91d0417b440f60a";
-    hash = "sha256-wYVRlv+Y1jvdAGlj2zXKUhQBwWX9pGgNX6U71PsfySg=";
+    rev = "66c9b6a21834019a0230c39fcee74b6bf2891f7d";
+    hash = "sha256-MCH7vltF3jLGfxcRspXg9eQMx+e+lHSoxIanf91NrE0=";
   };
 
   buildInputs = [ flac libmad libvorbis mpg123 ]
diff --git a/pkgs/applications/audio/sublime-music/default.nix b/pkgs/applications/audio/sublime-music/default.nix
index a2f6b17a8746..b2cf3a5d842d 100644
--- a/pkgs/applications/audio/sublime-music/default.nix
+++ b/pkgs/applications/audio/sublime-music/default.nix
@@ -117,6 +117,7 @@ python.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "GTK3 Subsonic/Airsonic client";
+    mainProgram = "sublime-music";
     homepage = "https://sublimemusic.app/";
     changelog = "https://github.com/sublime-music/sublime-music/blob/v${version}/CHANGELOG.rst";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/surge-XT/default.nix b/pkgs/applications/audio/surge-XT/default.nix
index 9f234b5e71c0..63cf1110d784 100644
--- a/pkgs/applications/audio/surge-XT/default.nix
+++ b/pkgs/applications/audio/surge-XT/default.nix
@@ -2,7 +2,6 @@
 , lib
 , fetchFromGitHub
 , cmake
-, gitMinimal
 , pkg-config
 , alsa-lib
 , freetype
@@ -23,15 +22,12 @@ stdenv.mkDerivation rec {
     owner = "surge-synthesizer";
     repo = "surge";
     rev = "release_xt_${version}";
-    branchName = "release-xt/${version}";
     fetchSubmodules = true;
-    leaveDotGit = true;
-    sha256 = "sha256-q6qs/OhIakF+Gc8Da3pnfkUGYDUoJbvee0o8dfrRI2U=";
+    sha256 = "sha256-xcbZ5TC2W2PVzAkpoKPFIgW1oRGaC+ynQYot3cb5NAQ=";
   };
 
   nativeBuildInputs = [
     cmake
-    gitMinimal
     pkg-config
   ];
 
diff --git a/pkgs/applications/audio/synthv1/default.nix b/pkgs/applications/audio/synthv1/default.nix
index b0e9e9bde9d0..770c5d924a1d 100644
--- a/pkgs/applications/audio/synthv1/default.nix
+++ b/pkgs/applications/audio/synthv1/default.nix
@@ -15,6 +15,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "An old-school 4-oscillator subtractive polyphonic synthesizer with stereo fx";
+    mainProgram = "synthv1_jack";
     homepage = "https://synthv1.sourceforge.io/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/tauon/default.nix b/pkgs/applications/audio/tauon/default.nix
index 979907202835..09136728a4b9 100644
--- a/pkgs/applications/audio/tauon/default.nix
+++ b/pkgs/applications/audio/tauon/default.nix
@@ -134,6 +134,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "The Linux desktop music player from the future";
+    mainProgram = "tauon";
     homepage = "https://tauonmusicbox.rocks/";
     changelog = "https://github.com/Taiko2k/TauonMusicBox/releases/tag/v${finalAttrs.version}";
     license = licenses.gpl3;
diff --git a/pkgs/applications/audio/tenacity/default.nix b/pkgs/applications/audio/tenacity/default.nix
index 6c4dd61c6674..c2879d412324 100644
--- a/pkgs/applications/audio/tenacity/default.nix
+++ b/pkgs/applications/audio/tenacity/default.nix
@@ -150,6 +150,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Sound editor with graphical UI";
+    mainProgram = "tenacity";
     homepage = "https://tenacityaudio.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ irenes lheckemann ];
diff --git a/pkgs/applications/audio/tony/default.nix b/pkgs/applications/audio/tony/default.nix
index 33561122b191..a0af1a706643 100644
--- a/pkgs/applications/audio/tony/default.nix
+++ b/pkgs/applications/audio/tony/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Pitch and note annotation of unaccompanied melody";
+    mainProgram = "tony";
     homepage = "https://www.sonicvisualiser.org/tony/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ orivej ];
diff --git a/pkgs/applications/audio/traverso/default.nix b/pkgs/applications/audio/traverso/default.nix
index 698a03b4a713..b8a81ec7a8e9 100644
--- a/pkgs/applications/audio/traverso/default.nix
+++ b/pkgs/applications/audio/traverso/default.nix
@@ -22,6 +22,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Cross-platform multitrack audio recording and audio editing suite";
+    mainProgram = "traverso";
     homepage = "https://traverso-daw.org/";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
     platforms = platforms.all;
diff --git a/pkgs/applications/audio/vcv-rack/default.nix b/pkgs/applications/audio/vcv-rack/default.nix
index c0067779b7b2..c086436de09f 100644
--- a/pkgs/applications/audio/vcv-rack/default.nix
+++ b/pkgs/applications/audio/vcv-rack/default.nix
@@ -4,7 +4,6 @@
 , curl
 , fetchFromBitbucket
 , fetchFromGitHub
-, fetchzip
 , ghc_filesystem
 , glew
 , glfw
@@ -19,8 +18,6 @@
 , libjack2
 , libpulseaudio
 , libsamplerate
-, libXext
-, libXi
 , makeDesktopItem
 , makeWrapper
 , pkg-config
@@ -114,8 +111,8 @@ let
   };
 in
 stdenv.mkDerivation rec {
-  pname = "VCV-Rack";
-  version = "2.4.0";
+  pname = "vcv-rack";
+  version = "2.4.1";
 
   desktopItems = [
     (makeDesktopItem {
@@ -135,7 +132,7 @@ stdenv.mkDerivation rec {
     owner = "VCVRack";
     repo = "Rack";
     rev = "v${version}";
-    sha256 = "0azrqyx5as4jmk9dxb7cj7x9dha81i0mm9pkvdv944qyccqwg55i";
+    hash = "sha256-Gn/sFltLXX2mLv4dDqmr/UPd+JBXVkIZGwMI6Rm0Ih4=";
   };
 
   patches = [
@@ -169,6 +166,10 @@ stdenv.mkDerivation rec {
     cp -r ${fundamental-source} plugins/Fundamental/
     chmod -R +rw plugins/Fundamental # will be used as build dir
     substituteInPlace plugin.mk --replace ":= all" ":= dist"
+    substituteInPlace plugins/Fundamental/src/Logic.cpp \
+      --replace \
+        "LightButton<VCVBezelBig, VCVBezelLightBig<WhiteLight>>" \
+        "struct rack::componentlibrary::LightButton<VCVBezelBig, VCVBezelLightBig<WhiteLight>>"
 
     # Fix reference to zenity
     substituteInPlace dep/osdialog/osdialog_zenity.c \
diff --git a/pkgs/applications/audio/vmpk/default.nix b/pkgs/applications/audio/vmpk/default.nix
index c40af7b046ed..7802c6cce704 100644
--- a/pkgs/applications/audio/vmpk/default.nix
+++ b/pkgs/applications/audio/vmpk/default.nix
@@ -23,6 +23,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Virtual MIDI Piano Keyboard";
+    mainProgram = "vmpk";
     homepage = "http://vmpk.sourceforge.net/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ orivej ];
diff --git a/pkgs/applications/audio/waylyrics/default.nix b/pkgs/applications/audio/waylyrics/default.nix
index f22f4f1e8203..9f55645a56bb 100644
--- a/pkgs/applications/audio/waylyrics/default.nix
+++ b/pkgs/applications/audio/waylyrics/default.nix
@@ -55,6 +55,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Desktop lyrics with QQ and NetEase Music source";
+    mainProgram = "waylyrics";
     homepage = "https://github.com/poly000/waylyrics";
     license = with licenses; [ mit cc-by-40 ];
     maintainers = with maintainers; [ shadowrz aleksana ];
diff --git a/pkgs/applications/audio/xsynth-dssi/default.nix b/pkgs/applications/audio/xsynth-dssi/default.nix
index e28d773d6e2a..02336f753450 100644
--- a/pkgs/applications/audio/xsynth-dssi/default.nix
+++ b/pkgs/applications/audio/xsynth-dssi/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation  rec {
 
   meta = with lib; {
     description = "Classic-analog (VCOs-VCF-VCA) style software synthesizer";
+    mainProgram = "Xsynth_gtk";
     longDescription = ''
       Xsynth-DSSI is a classic-analog (VCOs-VCF-VCA) style software
       synthesizer which operates as a plugin for the DSSI Soft Synth
diff --git a/pkgs/applications/audio/yams/default.nix b/pkgs/applications/audio/yams/default.nix
index 96c1ab27b72c..e4afe4ad2729 100644
--- a/pkgs/applications/audio/yams/default.nix
+++ b/pkgs/applications/audio/yams/default.nix
@@ -23,6 +23,7 @@ python3Packages.buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/Berulacks/yams";
     description = "Last.FM scrobbler for MPD";
+    mainProgram = "yams";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ccellado ];
   };
diff --git a/pkgs/applications/audio/yesplaymusic/default.nix b/pkgs/applications/audio/yesplaymusic/default.nix
index aee0d1d192fe..a7f81dcf4c40 100644
--- a/pkgs/applications/audio/yesplaymusic/default.nix
+++ b/pkgs/applications/audio/yesplaymusic/default.nix
@@ -65,6 +65,7 @@ let
 
   meta = with lib; {
     description = "A good-looking third-party netease cloud music player";
+    mainProgram = "yesplaymusic";
     homepage = "https://github.com/qier222/YesPlayMusic/";
     license = licenses.mit;
     maintainers = with maintainers; [ ChaosAttractor ];
diff --git a/pkgs/applications/audio/zynaddsubfx/default.nix b/pkgs/applications/audio/zynaddsubfx/default.nix
index 0060e8d4c7f4..20dcd0d491e8 100644
--- a/pkgs/applications/audio/zynaddsubfx/default.nix
+++ b/pkgs/applications/audio/zynaddsubfx/default.nix
@@ -141,6 +141,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "High quality software synthesizer (${guiName} GUI)";
+    mainProgram = "zynaddsubfx";
     homepage =
       if guiModule == "zest"
       then "https://zynaddsubfx.sourceforge.io/zyn-fusion.html"