about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/audio
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/audio')
-rw-r--r--nixpkgs/pkgs/applications/audio/alsa-scarlett-gui/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/ams/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/ario/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/asunder/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/audacity/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/audio-recorder/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/bambootracker/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/blanket/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/bucklespring/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/cantata/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/castopod/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/cd-discid/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/cider/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/cplay-ng/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/curseradio/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/deadbeef/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/dfasma/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/drumkv1/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/easyabc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/easyeffects/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/easytag/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak/edit.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/exaile/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faustlive.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/fdkaac/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/flac2all/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/flacon/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/friture/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/ft2-clone/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/g4music/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/giada/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/goattracker/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/greg/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/gtkcord4/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/audio/gtkpod/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/audio/guitarix/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/helio-workstation/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/hushboard/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/iannix/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/in-formant/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/indicator-sound-switcher/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/jack-autoconnect/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/jack-capture/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/jackmix/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/jacktrip/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/audio/jamesdsp/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/jmusicbot/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/librespot/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/lingot/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/linvstmanager/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/lmms/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/lyrebird/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/mellowplayer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/meters_lv2/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/miniaudicle/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/mixxx/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/mousai/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/munt/mt32emu-qt.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/munt/mt32emu-smf2wav.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/musescore/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/muso/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/mympd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/nootka/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/nova-filters/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/padthv1/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/paprefs/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/parlatype/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/patchance/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/pianobooster/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/picard/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/pipecontrol/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/pithos/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/audio/plugdata/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/polyphone/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/praat/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/pragha/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/psst/default.nix2
-rwxr-xr-xnixpkgs/pkgs/applications/audio/psst/update.sh4
-rw-r--r--nixpkgs/pkgs/applications/audio/pt2-clone/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/puddletag/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/pulseeffects-legacy/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/pyradio/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/qjackctl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/qmidiarp/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/qmidinet/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/qmmp/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/audio/qsampler/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/qsynth/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/audio/r128gain/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/radioboat/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/redoflacs/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/rofi-pulse-select/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/rosegarden/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/rubyripper/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/samplebrain/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/samplv1/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/schismtracker/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/seq66/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/sfxr/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/shortwave/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/snd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/sonata/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/sound-juicer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/soundconverter/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/soundkonverter/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/spek/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/spot/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-cli-linux/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-player/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-qt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-tui/0001-Add-Collection-SearchType.patch41
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-tui/Cargo.lock2704
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-tui/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/audio/spotifyd/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/audio/squeezelite/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/sublime-music/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/surge-XT/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/synthv1/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/tauon/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/tenacity/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/tony/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/traverso/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/vcv-rack/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/audio/vmpk/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/waylyrics/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/yams/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/yesplaymusic/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/youtube-music/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix1
147 files changed, 197 insertions, 3016 deletions
diff --git a/nixpkgs/pkgs/applications/audio/alsa-scarlett-gui/default.nix b/nixpkgs/pkgs/applications/audio/alsa-scarlett-gui/default.nix
index de4f8b3db98a..2b5aea7e5843 100644
--- a/nixpkgs/pkgs/applications/audio/alsa-scarlett-gui/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/ams/default.nix b/nixpkgs/pkgs/applications/audio/ams/default.nix
index c51dced37724..9086bfc33387 100644
--- a/nixpkgs/pkgs/applications/audio/ams/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/ario/default.nix b/nixpkgs/pkgs/applications/audio/ario/default.nix
index 5b956e8f5961..b9e14f486b7a 100644
--- a/nixpkgs/pkgs/applications/audio/ario/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/asunder/default.nix b/nixpkgs/pkgs/applications/audio/asunder/default.nix
index dbaef1cf2acf..8e209a4717fa 100644
--- a/nixpkgs/pkgs/applications/audio/asunder/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/audacity/default.nix b/nixpkgs/pkgs/applications/audio/audacity/default.nix
index f476b3c8a8e6..74af177d0e27 100644
--- a/nixpkgs/pkgs/applications/audio/audacity/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/audio-recorder/default.nix b/nixpkgs/pkgs/applications/audio/audio-recorder/default.nix
index aaf6777533ff..72d31e2966ff 100644
--- a/nixpkgs/pkgs/applications/audio/audio-recorder/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/bambootracker/default.nix b/nixpkgs/pkgs/applications/audio/bambootracker/default.nix
index 6c1bd006c7a6..5ebc2caf0f71 100644
--- a/nixpkgs/pkgs/applications/audio/bambootracker/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix b/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
index 93296b3eff0b..3ec595e3e8bb 100644
--- a/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/blanket/default.nix b/nixpkgs/pkgs/applications/audio/blanket/default.nix
index 5a3d9949f8c5..4b08f8cf223a 100644
--- a/nixpkgs/pkgs/applications/audio/blanket/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/bucklespring/default.nix b/nixpkgs/pkgs/applications/audio/bucklespring/default.nix
index dbdef66c5bc4..ccc25da4f1ed 100644
--- a/nixpkgs/pkgs/applications/audio/bucklespring/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/cantata/default.nix b/nixpkgs/pkgs/applications/audio/cantata/default.nix
index c5f3cfe5b68f..0d5c85625253 100644
--- a/nixpkgs/pkgs/applications/audio/cantata/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/castopod/default.nix b/nixpkgs/pkgs/applications/audio/castopod/default.nix
index 9d9f83e2ecce..801368a131cf 100644
--- a/nixpkgs/pkgs/applications/audio/castopod/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/cd-discid/default.nix b/nixpkgs/pkgs/applications/audio/cd-discid/default.nix
index 16c574e8d038..e13a64e4bd83 100644
--- a/nixpkgs/pkgs/applications/audio/cd-discid/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/cider/default.nix b/nixpkgs/pkgs/applications/audio/cider/default.nix
index 96f0ab0f706a..315fa2c9a65b 100644
--- a/nixpkgs/pkgs/applications/audio/cider/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/cplay-ng/default.nix b/nixpkgs/pkgs/applications/audio/cplay-ng/default.nix
index d4eb815bd14c..caecd35bed18 100644
--- a/nixpkgs/pkgs/applications/audio/cplay-ng/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/curseradio/default.nix b/nixpkgs/pkgs/applications/audio/curseradio/default.nix
index 94059e06e546..0faa58b99884 100644
--- a/nixpkgs/pkgs/applications/audio/curseradio/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/deadbeef/default.nix b/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
index 2c08477d07a0..f26fd4903726 100644
--- a/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/dfasma/default.nix b/nixpkgs/pkgs/applications/audio/dfasma/default.nix
index cb2ac2b9e0bf..78ab9c8a5f4f 100644
--- a/nixpkgs/pkgs/applications/audio/dfasma/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix b/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix
index 649c0f39097f..6ae27b93f29e 100644
--- a/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/drumkv1/default.nix b/nixpkgs/pkgs/applications/audio/drumkv1/default.nix
index 30d6328b5758..8dfb00318c15 100644
--- a/nixpkgs/pkgs/applications/audio/drumkv1/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/easyabc/default.nix b/nixpkgs/pkgs/applications/audio/easyabc/default.nix
index edf6e3596aa2..9fb792626ac2 100644
--- a/nixpkgs/pkgs/applications/audio/easyabc/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/easyeffects/default.nix b/nixpkgs/pkgs/applications/audio/easyeffects/default.nix
index dd998050ac70..81fb1efe5083 100644
--- a/nixpkgs/pkgs/applications/audio/easyeffects/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/easytag/default.nix b/nixpkgs/pkgs/applications/audio/easytag/default.nix
index d55fd7ff0cb6..6d3fd8f1d17d 100644
--- a/nixpkgs/pkgs/applications/audio/easytag/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/espeak/default.nix b/nixpkgs/pkgs/applications/audio/espeak/default.nix
index 7164cb5fd3e0..4693995883d9 100644
--- a/nixpkgs/pkgs/applications/audio/espeak/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/espeak/edit.nix b/nixpkgs/pkgs/applications/audio/espeak/edit.nix
index 6c4da056c848..4be2f404f60f 100644
--- a/nixpkgs/pkgs/applications/audio/espeak/edit.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/exaile/default.nix b/nixpkgs/pkgs/applications/audio/exaile/default.nix
index 77054b2d9144..a2f75fd85a70 100644
--- a/nixpkgs/pkgs/applications/audio/exaile/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/faust/faustlive.nix b/nixpkgs/pkgs/applications/audio/faust/faustlive.nix
index 1d91f561c044..3826bb8b4bad 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faustlive.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/fdkaac/default.nix b/nixpkgs/pkgs/applications/audio/fdkaac/default.nix
index 2350bde0bd6a..55e014e001fb 100644
--- a/nixpkgs/pkgs/applications/audio/fdkaac/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/flac2all/default.nix b/nixpkgs/pkgs/applications/audio/flac2all/default.nix
index 4a6132d39af3..7020879eae9b 100644
--- a/nixpkgs/pkgs/applications/audio/flac2all/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/flacon/default.nix b/nixpkgs/pkgs/applications/audio/flacon/default.nix
index b5d57e5a6178..a06efc1c78ea 100644
--- a/nixpkgs/pkgs/applications/audio/flacon/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/friture/default.nix b/nixpkgs/pkgs/applications/audio/friture/default.nix
index eb702d086312..60a098bb1ab8 100644
--- a/nixpkgs/pkgs/applications/audio/friture/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix b/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
index ad4691e1ffa7..0587fc8d4bbb 100644
--- a/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ft2-clone";
-  version = "1.76";
+  version = "1.79.2";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "ft2-clone";
     rev = "v${version}";
-    hash = "sha256-oVQ1B7rYZX2kHTY8jVVm3rkOLx499kiEvhkv2V94W9k=";
+    hash = "sha256-/RZXtSjJ0nRtlMreT4M/IYQpdv/UXjVJaHMld9wwaUw=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/audio/g4music/default.nix b/nixpkgs/pkgs/applications/audio/g4music/default.nix
index ed8b067ade32..bbb31c114659 100644
--- a/nixpkgs/pkgs/applications/audio/g4music/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/giada/default.nix b/nixpkgs/pkgs/applications/audio/giada/default.nix
index 0b272226f19a..7008e6a53155 100644
--- a/nixpkgs/pkgs/applications/audio/giada/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix b/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
index 8753b1893ea3..bba557913297 100644
--- a/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/goattracker/default.nix b/nixpkgs/pkgs/applications/audio/goattracker/default.nix
index 148dd8788634..17373c1d5a52 100644
--- a/nixpkgs/pkgs/applications/audio/goattracker/default.nix
+++ b/nixpkgs/pkgs/applications/audio/goattracker/default.nix
@@ -58,7 +58,7 @@ in stdenv.mkDerivation (finalAttrs: {
 
     convert goattrk2.bmp goattracker.png
     install -Dm644 goattracker.png $out/share/icons/hicolor/32x32/apps/goattracker.png
-    install -Dm644 ../linux/goattracker.1 -t $out/share/man/man1/goattracker.1
+    ${lib.optionalString (!isStereo) "install -Dm644 ../linux/goattracker.1 $out/share/man/man1/goattracker.1"}
 
     runHook postInstall
   '';
diff --git a/nixpkgs/pkgs/applications/audio/greg/default.nix b/nixpkgs/pkgs/applications/audio/greg/default.nix
index 2193447c02c7..5e6d5e2583ab 100644
--- a/nixpkgs/pkgs/applications/audio/greg/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/gtkcord4/default.nix b/nixpkgs/pkgs/applications/audio/gtkcord4/default.nix
deleted file mode 100644
index e75e27e7d792..000000000000
--- a/nixpkgs/pkgs/applications/audio/gtkcord4/default.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{ buildGoModule
-, cairo
-, fetchFromGitHub
-, gdk-pixbuf
-, glib
-, gobject-introspection
-, graphene
-, gst_all_1
-, gtk4
-, lib
-, libadwaita
-, libcanberra-gtk3
-, pango
-, pkg-config
-, sound-theme-freedesktop
-, wrapGAppsHook4
-}:
-
-buildGoModule rec {
-  pname = "gtkcord4";
-  version = "0.0.19";
-
-  src = fetchFromGitHub {
-    owner = "diamondburned";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-TOrAUTYS4J4W1wZvP1TxZf5Nel29YCPoWPN7GYNomkc=";
-  };
-
-  nativeBuildInputs = [
-    gobject-introspection
-    pkg-config
-    wrapGAppsHook4
-  ];
-
-  buildInputs = [
-    cairo
-    gdk-pixbuf
-    glib
-    graphene
-    gtk4
-    pango
-    # Optional according to upstream but required for sound and video
-    gst_all_1.gst-plugins-bad
-    gst_all_1.gst-plugins-base
-    gst_all_1.gst-plugins-good
-    gst_all_1.gst-plugins-ugly
-    gst_all_1.gstreamer
-    libcanberra-gtk3
-    sound-theme-freedesktop
-    libadwaita
-  ];
-
-  postInstall = ''
-    install -D -m 444 -t $out/share/applications nix/so.libdb.gtkcord4.desktop
-    install -D -m 444 internal/icons/hicolor/scalable/apps/logo.svg $out/share/icons/hicolor/scalable/apps/gtkcord4.svg
-  '';
-
-  vendorHash = "sha256-dJm+v7/2+TQWoU7G1uOpie6KN5W0JqfLU4mF8mghV4A=";
-
-  meta = with lib; {
-    description = "GTK4 Discord client in Go, attempt #4";
-    homepage = "https://github.com/diamondburned/gtkcord4";
-    license = licenses.gpl3Only;
-    mainProgram = "gtkcord4";
-    maintainers = with maintainers; [ hmenke urandom aleksana ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/audio/gtkpod/default.nix b/nixpkgs/pkgs/applications/audio/gtkpod/default.nix
deleted file mode 100644
index ba73a5aae109..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/applications/audio/guitarix/default.nix b/nixpkgs/pkgs/applications/audio/guitarix/default.nix
index 84308d59d44c..2134370eac9f 100644
--- a/nixpkgs/pkgs/applications/audio/guitarix/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix b/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix
index 0b92b23d1800..eaaa197a9c6a 100644
--- a/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/hushboard/default.nix b/nixpkgs/pkgs/applications/audio/hushboard/default.nix
index f0fde190db99..3248ab35b22c 100644
--- a/nixpkgs/pkgs/applications/audio/hushboard/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/iannix/default.nix b/nixpkgs/pkgs/applications/audio/iannix/default.nix
index 31f0bbbb4c7d..f55fcdfd3601 100644
--- a/nixpkgs/pkgs/applications/audio/iannix/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/in-formant/default.nix b/nixpkgs/pkgs/applications/audio/in-formant/default.nix
index 3df72add7f6b..89e7e876af8e 100644
--- a/nixpkgs/pkgs/applications/audio/in-formant/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/indicator-sound-switcher/default.nix b/nixpkgs/pkgs/applications/audio/indicator-sound-switcher/default.nix
index 6610e53e2cc7..c47aff47fffe 100644
--- a/nixpkgs/pkgs/applications/audio/indicator-sound-switcher/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/jack-autoconnect/default.nix b/nixpkgs/pkgs/applications/audio/jack-autoconnect/default.nix
index 302571c2be4d..d4fd50ca4f6d 100644
--- a/nixpkgs/pkgs/applications/audio/jack-autoconnect/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/jack-capture/default.nix b/nixpkgs/pkgs/applications/audio/jack-capture/default.nix
index e0b761a70f90..62fa23be2e5b 100644
--- a/nixpkgs/pkgs/applications/audio/jack-capture/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix b/nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix
index 9905d072361e..8cdac43a3882 100644
--- a/nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/jackmix/default.nix b/nixpkgs/pkgs/applications/audio/jackmix/default.nix
index b34c7fbc1801..86c8a91862e7 100644
--- a/nixpkgs/pkgs/applications/audio/jackmix/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/jacktrip/default.nix b/nixpkgs/pkgs/applications/audio/jacktrip/default.nix
index fc7b636e97af..150f05c5f53e 100644
--- a/nixpkgs/pkgs/applications/audio/jacktrip/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/jamesdsp/default.nix b/nixpkgs/pkgs/applications/audio/jamesdsp/default.nix
index d7e96c84c6a5..4d2b7cf6dba1 100644
--- a/nixpkgs/pkgs/applications/audio/jamesdsp/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/jmusicbot/default.nix b/nixpkgs/pkgs/applications/audio/jmusicbot/default.nix
index 6b154ffbb1a6..5caf1a472d57 100644
--- a/nixpkgs/pkgs/applications/audio/jmusicbot/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jmusicbot/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "JMusicBot";
-  version = "0.3.9";
+  version = "0.4.0";
 
   src = fetchurl {
     url = "https://github.com/jagrosh/MusicBot/releases/download/${version}/JMusicBot-${version}.jar";
-    sha256 = "sha256-2A1yo2e1MawGLMTM6jWwpQJJuKOmljxFriORv90Jqg8=";
+    sha256 = "sha256-JSVrzyCqAp3V5OZ+KJczhWGolPkdaHsPmiqfmhapQMs=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix b/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix
index 491a18bba3ea..d7e7dd7b6947 100644
--- a/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix
@@ -33,8 +33,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://plugin.org.uk/";
     description = "LADSPA format audio plugins";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = [ maintainers.magnetophon ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/librespot/default.nix b/nixpkgs/pkgs/applications/audio/librespot/default.nix
index 2617030829a5..dc60185fc0f7 100644
--- a/nixpkgs/pkgs/applications/audio/librespot/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/lingot/default.nix b/nixpkgs/pkgs/applications/audio/lingot/default.nix
index 234e2d675cb1..3d7339f571d6 100644
--- a/nixpkgs/pkgs/applications/audio/lingot/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/linvstmanager/default.nix b/nixpkgs/pkgs/applications/audio/linvstmanager/default.nix
index dc8376c4166f..8df3fd507adc 100644
--- a/nixpkgs/pkgs/applications/audio/linvstmanager/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/lmms/default.nix b/nixpkgs/pkgs/applications/audio/lmms/default.nix
index 01b84780607b..75e5e9d39e83 100644
--- a/nixpkgs/pkgs/applications/audio/lmms/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/lyrebird/default.nix b/nixpkgs/pkgs/applications/audio/lyrebird/default.nix
index 4f1d8ca36e84..5eb2d745cdc3 100644
--- a/nixpkgs/pkgs/applications/audio/lyrebird/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/mellowplayer/default.nix b/nixpkgs/pkgs/applications/audio/mellowplayer/default.nix
index b736ae882990..b5eb65cad444 100644
--- a/nixpkgs/pkgs/applications/audio/mellowplayer/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/meters_lv2/default.nix b/nixpkgs/pkgs/applications/audio/meters_lv2/default.nix
index e79da2fd1ea9..d4dbcf210ec9 100644
--- a/nixpkgs/pkgs/applications/audio/meters_lv2/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix b/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix
index e6b21dff2dc5..42d4c38d47a3 100644
--- a/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix b/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix
index ed48c129418c..907a17eccb30 100644
--- a/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix b/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix
index 0d07663d115a..645c69a1c86b 100644
--- a/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/miniaudicle/default.nix b/nixpkgs/pkgs/applications/audio/miniaudicle/default.nix
index 00f71063bac3..d0aed09ee863 100644
--- a/nixpkgs/pkgs/applications/audio/miniaudicle/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/mixxx/default.nix b/nixpkgs/pkgs/applications/audio/mixxx/default.nix
index f9e860d78177..4abc6d4956f4 100644
--- a/nixpkgs/pkgs/applications/audio/mixxx/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix b/nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix
index d4da27dd3639..c68d14b28f99 100644
--- a/nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix b/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix
index b92d0fd77c11..bf7f9a07f772 100644
--- a/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/mousai/default.nix b/nixpkgs/pkgs/applications/audio/mousai/default.nix
index c2bcc0200fbc..1ce6a0ea8209 100644
--- a/nixpkgs/pkgs/applications/audio/mousai/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/munt/mt32emu-qt.nix b/nixpkgs/pkgs/applications/audio/munt/mt32emu-qt.nix
index 51501de4a89e..9ebb59ddafdd 100644
--- a/nixpkgs/pkgs/applications/audio/munt/mt32emu-qt.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/munt/mt32emu-smf2wav.nix b/nixpkgs/pkgs/applications/audio/munt/mt32emu-smf2wav.nix
index 517d1b200aab..3ebadcca91be 100644
--- a/nixpkgs/pkgs/applications/audio/munt/mt32emu-smf2wav.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/musescore/default.nix b/nixpkgs/pkgs/applications/audio/musescore/default.nix
index 71ae712c9f67..d6c90f896dfd 100644
--- a/nixpkgs/pkgs/applications/audio/musescore/default.nix
+++ b/nixpkgs/pkgs/applications/audio/musescore/default.nix
@@ -142,9 +142,6 @@ in stdenv'.mkDerivation (finalAttrs: {
     homepage = "https://musescore.org/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ vandenoever doronbehar ];
-    # on aarch64-linux:
-    # error: cannot convert '<brace-enclosed initializer list>' to 'float32x4_t' in assignment
-    broken = (stdenv.isLinux && stdenv.isAarch64);
     mainProgram = "mscore";
   };
 })
diff --git a/nixpkgs/pkgs/applications/audio/muso/default.nix b/nixpkgs/pkgs/applications/audio/muso/default.nix
index 95c45216ef2e..30b26e7e5979 100644
--- a/nixpkgs/pkgs/applications/audio/muso/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/mympd/default.nix b/nixpkgs/pkgs/applications/audio/mympd/default.nix
index a757ca391e1b..bf60c8a4439d 100644
--- a/nixpkgs/pkgs/applications/audio/mympd/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mympd/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mympd";
-  version = "14.0.4";
+  version = "14.1.0";
 
   src = fetchFromGitHub {
     owner = "jcorporation";
     repo = "myMPD";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-kPh3u6mjTxoqGlhei8kPOyrjU9m7zpv16y5PaGHBsIA=";
+    sha256 = "sha256-yNB5WQi3M4cYogtxx/vLi2xJog2keyFrJIMlx663DLo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/nootka/default.nix b/nixpkgs/pkgs/applications/audio/nootka/default.nix
index 3ce835138f6d..a52c5bb98176 100644
--- a/nixpkgs/pkgs/applications/audio/nootka/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/nova-filters/default.nix b/nixpkgs/pkgs/applications/audio/nova-filters/default.nix
index 1c457c8a0e7b..17d90c6d310b 100644
--- a/nixpkgs/pkgs/applications/audio/nova-filters/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/padthv1/default.nix b/nixpkgs/pkgs/applications/audio/padthv1/default.nix
index 2c4581cc7319..f51a3f69a2c5 100644
--- a/nixpkgs/pkgs/applications/audio/padthv1/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/paprefs/default.nix b/nixpkgs/pkgs/applications/audio/paprefs/default.nix
index ef45cc4676a1..212d866059da 100644
--- a/nixpkgs/pkgs/applications/audio/paprefs/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/parlatype/default.nix b/nixpkgs/pkgs/applications/audio/parlatype/default.nix
index 23fb4380a2e5..d05130de4124 100644
--- a/nixpkgs/pkgs/applications/audio/parlatype/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/patchance/default.nix b/nixpkgs/pkgs/applications/audio/patchance/default.nix
index 7770065b3d1c..86e1d2745b96 100644
--- a/nixpkgs/pkgs/applications/audio/patchance/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/pianobooster/default.nix b/nixpkgs/pkgs/applications/audio/pianobooster/default.nix
index 7d62aa61d6b0..a83c5ee7e401 100644
--- a/nixpkgs/pkgs/applications/audio/pianobooster/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/picard/default.nix b/nixpkgs/pkgs/applications/audio/picard/default.nix
index 36ed7069ea80..82909a6296bf 100644
--- a/nixpkgs/pkgs/applications/audio/picard/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/pipecontrol/default.nix b/nixpkgs/pkgs/applications/audio/pipecontrol/default.nix
index 0f302bc72e5d..1586be58e3cf 100644
--- a/nixpkgs/pkgs/applications/audio/pipecontrol/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/pithos/default.nix b/nixpkgs/pkgs/applications/audio/pithos/default.nix
index 6de3da92db8a..1ff4aedb6b00 100644
--- a/nixpkgs/pkgs/applications/audio/pithos/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/plugdata/default.nix b/nixpkgs/pkgs/applications/audio/plugdata/default.nix
index b4f587f2e807..9af5c4a9fa85 100644
--- a/nixpkgs/pkgs/applications/audio/plugdata/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/polyphone/default.nix b/nixpkgs/pkgs/applications/audio/polyphone/default.nix
index 0e73861aa0f4..a01ce9773afa 100644
--- a/nixpkgs/pkgs/applications/audio/polyphone/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/praat/default.nix b/nixpkgs/pkgs/applications/audio/praat/default.nix
index 0f98ba2357a5..6274d448ad51 100644
--- a/nixpkgs/pkgs/applications/audio/praat/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/pragha/default.nix b/nixpkgs/pkgs/applications/audio/pragha/default.nix
index 8e039f05927f..2ae9e233c4e2 100644
--- a/nixpkgs/pkgs/applications/audio/pragha/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/psst/default.nix b/nixpkgs/pkgs/applications/audio/psst/default.nix
index 46958b01bd1c..7abb8e78d161 100644
--- a/nixpkgs/pkgs/applications/audio/psst/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/psst/update.sh b/nixpkgs/pkgs/applications/audio/psst/update.sh
index a504b61c2410..4ffa9417f040 100755
--- a/nixpkgs/pkgs/applications/audio/psst/update.sh
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix b/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
index 0f4bb9957f7a..c4213c06f8bc 100644
--- a/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/puddletag/default.nix b/nixpkgs/pkgs/applications/audio/puddletag/default.nix
index 128d5c59c78e..ddeee09d829d 100644
--- a/nixpkgs/pkgs/applications/audio/puddletag/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix b/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix
index 1b21aa9d4163..e58d8edba6f9 100644
--- a/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix b/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix
index 5358750b13e2..57f99b81299e 100644
--- a/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/pulseeffects-legacy/default.nix b/nixpkgs/pkgs/applications/audio/pulseeffects-legacy/default.nix
index 7d255b7a71e2..c243b99f098c 100644
--- a/nixpkgs/pkgs/applications/audio/pulseeffects-legacy/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/pyradio/default.nix b/nixpkgs/pkgs/applications/audio/pyradio/default.nix
index e9ef64260f46..9748c9f16111 100644
--- a/nixpkgs/pkgs/applications/audio/pyradio/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/qjackctl/default.nix b/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
index abfcef0d2f75..47f8f10fbf0f 100644
--- a/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/qmidiarp/default.nix b/nixpkgs/pkgs/applications/audio/qmidiarp/default.nix
index 4c2de70efc0f..7b7f929e5379 100644
--- a/nixpkgs/pkgs/applications/audio/qmidiarp/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/qmidinet/default.nix b/nixpkgs/pkgs/applications/audio/qmidinet/default.nix
index 556787ca9ea5..29c8ad7a797f 100644
--- a/nixpkgs/pkgs/applications/audio/qmidinet/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/qmmp/default.nix b/nixpkgs/pkgs/applications/audio/qmmp/default.nix
index 65cf4e3d7b00..427d9f48c1fd 100644
--- a/nixpkgs/pkgs/applications/audio/qmmp/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qmmp/default.nix
@@ -26,11 +26,11 @@
 
 stdenv.mkDerivation rec {
   pname = "qmmp";
-  version = "2.1.5";
+  version = "2.1.6";
 
   src = fetchurl {
     url = "https://qmmp.ylsoftware.com/files/qmmp/2.1/${pname}-${version}.tar.bz2";
-    hash = "sha256-Jb4/KxnY1wtrUTbD+X04Wl7b9A2sZ92E/N1K+dVU95U=";
+    hash = "sha256-knqo5yCkcO/bFmM++z+SdiWzpDKK9ooV0wqlcIKj7so=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
@@ -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/nixpkgs/pkgs/applications/audio/qsampler/default.nix b/nixpkgs/pkgs/applications/audio/qsampler/default.nix
index bb40e0b3eebc..bd4922394f6a 100644
--- a/nixpkgs/pkgs/applications/audio/qsampler/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/qsynth/default.nix b/nixpkgs/pkgs/applications/audio/qsynth/default.nix
index a24625ca7de8..714a66f6e2c8 100644
--- a/nixpkgs/pkgs/applications/audio/qsynth/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/r128gain/default.nix b/nixpkgs/pkgs/applications/audio/r128gain/default.nix
index 8cf6871a76b4..6cf7f41f10ce 100644
--- a/nixpkgs/pkgs/applications/audio/r128gain/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/radioboat/default.nix b/nixpkgs/pkgs/applications/audio/radioboat/default.nix
index 3dc97a84b62f..b5421115201a 100644
--- a/nixpkgs/pkgs/applications/audio/radioboat/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix b/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix
index ce3f57162366..56c316dadcdb 100644
--- a/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix
+++ b/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix
@@ -19,7 +19,6 @@
 # GStreamer
 , glib-networking
 , gst_all_1
-, libsoup_3
 # User-agent info
 , lsb-release
 # rt2rtng
@@ -100,8 +99,6 @@ stdenv.mkDerivation rec {
   preFixup = ''
     gappsWrapperArgs+=(--suffix PATH : ${lib.makeBinPath [ dbus ]})
     wrapProgram $out/bin/rt2rtng --prefix PYTHONPATH : $PYTHONPATH
-    # for GStreamer
-    gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${lib.getLib libsoup_3}/lib")
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/audio/redoflacs/default.nix b/nixpkgs/pkgs/applications/audio/redoflacs/default.nix
index 999dc90a6e4e..75425375f6af 100644
--- a/nixpkgs/pkgs/applications/audio/redoflacs/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix b/nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix
index 8f9819bd913b..65c4c700e262 100644
--- a/nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/rofi-pulse-select/default.nix b/nixpkgs/pkgs/applications/audio/rofi-pulse-select/default.nix
index 0664a6c2c4d7..857cdddeb638 100644
--- a/nixpkgs/pkgs/applications/audio/rofi-pulse-select/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/rosegarden/default.nix b/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
index 0a82a4671db2..57a7ca82254a 100644
--- a/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/rubyripper/default.nix b/nixpkgs/pkgs/applications/audio/rubyripper/default.nix
index 23cc0577c688..a30eca6a7686 100644
--- a/nixpkgs/pkgs/applications/audio/rubyripper/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/samplebrain/default.nix b/nixpkgs/pkgs/applications/audio/samplebrain/default.nix
index 942e7bccc13c..54314812491c 100644
--- a/nixpkgs/pkgs/applications/audio/samplebrain/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/samplv1/default.nix b/nixpkgs/pkgs/applications/audio/samplv1/default.nix
index 95035570e924..1af25d0d75b5 100644
--- a/nixpkgs/pkgs/applications/audio/samplv1/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/schismtracker/default.nix b/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
index 46f6237ce322..94b082fd84a4 100644
--- a/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
+++ b/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "schismtracker";
-  version = "20240129";
+  version = "20240308";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-msi638LQM0LPfUineINRW8l8BcPKIeRBEDtV5L6anGk=";
+    sha256 = "sha256-6MzMmeD4HCS/7VTFTAcOhyKjz5NvzvDEzcSpHGUwFvM=";
   };
 
   configureFlags = [ "--enable-dependency-tracking" ]
diff --git a/nixpkgs/pkgs/applications/audio/seq66/default.nix b/nixpkgs/pkgs/applications/audio/seq66/default.nix
index 8f47ab0b6a20..51d40f962a88 100644
--- a/nixpkgs/pkgs/applications/audio/seq66/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix b/nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix
index 2b264cfd56b9..529d12db967f 100644
--- a/nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/sfxr/default.nix b/nixpkgs/pkgs/applications/audio/sfxr/default.nix
index 08efb7690335..552bc8ea52a5 100644
--- a/nixpkgs/pkgs/applications/audio/sfxr/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/shortwave/default.nix b/nixpkgs/pkgs/applications/audio/shortwave/default.nix
index b64e4bf5e50e..c1f3f53416fd 100644
--- a/nixpkgs/pkgs/applications/audio/shortwave/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/snd/default.nix b/nixpkgs/pkgs/applications/audio/snd/default.nix
index 9151cdff7608..6958a38f2586 100644
--- a/nixpkgs/pkgs/applications/audio/snd/default.nix
+++ b/nixpkgs/pkgs/applications/audio/snd/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "snd";
-  version = "24.1";
+  version = "24.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/snd/snd-${version}.tar.gz";
-    sha256 = "sha256-hC6GddYjBD6p4zwHD3fCvZZLwpRiNKOb6aaHstRhA1M=";
+    sha256 = "sha256-1ngnhOpPaRGH3xmiA7cUfVDqlJM1ZC+XfeSiV8vcdls=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/applications/audio/sonata/default.nix b/nixpkgs/pkgs/applications/audio/sonata/default.nix
index e5aa90180120..97397da96f25 100644
--- a/nixpkgs/pkgs/applications/audio/sonata/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix b/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix
index 6ea4bcd6628d..f58f88b32138 100644
--- a/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix b/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix
index 999b2825eff7..261de6e48450 100644
--- a/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/soundconverter/default.nix b/nixpkgs/pkgs/applications/audio/soundconverter/default.nix
index e2e5094e8452..b07ed63f220d 100644
--- a/nixpkgs/pkgs/applications/audio/soundconverter/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/soundkonverter/default.nix b/nixpkgs/pkgs/applications/audio/soundkonverter/default.nix
index b044db5fab82..0aebd46210da 100644
--- a/nixpkgs/pkgs/applications/audio/soundkonverter/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/spek/default.nix b/nixpkgs/pkgs/applications/audio/spek/default.nix
index f54e661b4c74..bd206709c26e 100644
--- a/nixpkgs/pkgs/applications/audio/spek/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/spot/default.nix b/nixpkgs/pkgs/applications/audio/spot/default.nix
index d9a0babb6840..7cf683beb918 100644
--- a/nixpkgs/pkgs/applications/audio/spot/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/spotify-cli-linux/default.nix b/nixpkgs/pkgs/applications/audio/spotify-cli-linux/default.nix
index 82aa5c366ab6..73b1ea913206 100644
--- a/nixpkgs/pkgs/applications/audio/spotify-cli-linux/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/spotify-player/default.nix b/nixpkgs/pkgs/applications/audio/spotify-player/default.nix
index 0e4e5234ec00..f3c675564512 100644
--- a/nixpkgs/pkgs/applications/audio/spotify-player/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix b/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix
index d302643eb47d..4f6460bd3a2d 100644
--- a/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/spotify-tui/0001-Add-Collection-SearchType.patch b/nixpkgs/pkgs/applications/audio/spotify-tui/0001-Add-Collection-SearchType.patch
deleted file mode 100644
index b9daa79a9719..000000000000
--- a/nixpkgs/pkgs/applications/audio/spotify-tui/0001-Add-Collection-SearchType.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 408e6a5170bbe9f854bf46e1cbae21265cf25294 Mon Sep 17 00:00:00 2001
-From: Florian Bruhin <me@the-compiler.org>
-Date: Mon, 25 Apr 2022 18:39:07 +0200
-Subject: [PATCH] Add Collection SearchType
-
-Backport of https://github.com/ramsayleung/rspotify/pull/306
----
- src/senum.rs | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/senum.rs b/src/senum.rs
-index c94c31c..79d8730 100644
---- a/src/senum.rs
-+++ b/src/senum.rs
-@@ -87,6 +87,7 @@ pub enum Type {
-     User,
-     Show,
-     Episode,
-+    Collection,
- }
- impl Type {
-     pub fn as_str(&self) -> &str {
-@@ -98,6 +99,7 @@ pub fn as_str(&self) -> &str {
-             Type::User => "user",
-             Type::Show => "show",
-             Type::Episode => "episode",
-+            Type::Collection => "collection",
-         }
-     }
- }
-@@ -112,6 +114,7 @@ fn from_str(s: &str) -> Result<Self, Self::Err> {
-             "user" => Ok(Type::User),
-             "show" => Ok(Type::Show),
-             "episode" => Ok(Type::Episode),
-+            "collection" => Ok(Type::Collection),
-             _ => Err(Error::new(ErrorKind::NoEnum(s.to_owned()))),
-         }
-     }
--- 
-2.35.3
-
diff --git a/nixpkgs/pkgs/applications/audio/spotify-tui/Cargo.lock b/nixpkgs/pkgs/applications/audio/spotify-tui/Cargo.lock
deleted file mode 100644
index 22ab43406c48..000000000000
--- a/nixpkgs/pkgs/applications/audio/spotify-tui/Cargo.lock
+++ /dev/null
@@ -1,2704 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "addr2line"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"
-dependencies = [
- "gimli",
-]
-
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
-[[package]]
-name = "adler32"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
-
-[[package]]
-name = "aho-corasick"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "android_system_properties"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "ansi_term"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "anyhow"
-version = "1.0.71"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
-
-[[package]]
-name = "arboard"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47044a1809e2953fe6d084312b81dcb7d9ffc24fee45aa39e5b938f66f75b8a8"
-dependencies = [
- "clipboard-win",
- "core-graphics",
- "image",
- "log",
- "objc",
- "objc-foundation",
- "objc_id",
- "once_cell",
- "parking_lot",
- "scopeguard",
- "thiserror",
- "winapi 0.3.9",
- "x11rb",
-]
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi 0.1.19",
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "autocfg"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78"
-dependencies = [
- "autocfg 1.1.0",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "backtrace"
-version = "0.3.67"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca"
-dependencies = [
- "addr2line",
- "cc",
- "cfg-if 1.0.0",
- "libc",
- "miniz_oxide 0.6.2",
- "object",
- "rustc-demangle",
-]
-
-[[package]]
-name = "base64"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "bitflags"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-
-[[package]]
-name = "block"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
-
-[[package]]
-name = "bumpalo"
-version = "3.12.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b"
-
-[[package]]
-name = "bytemuck"
-version = "1.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
-
-[[package]]
-name = "byteorder"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-
-[[package]]
-name = "bytes"
-version = "0.4.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
-dependencies = [
- "byteorder",
- "iovec",
-]
-
-[[package]]
-name = "bytes"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
-
-[[package]]
-name = "bytes"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
-
-[[package]]
-name = "cassowary"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
-
-[[package]]
-name = "cc"
-version = "1.0.79"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
-
-[[package]]
-name = "cfg-if"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "chrono"
-version = "0.4.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
-dependencies = [
- "iana-time-zone",
- "js-sys",
- "num-integer",
- "num-traits",
- "rustc-serialize",
- "serde",
- "time",
- "wasm-bindgen",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "clap"
-version = "2.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
-dependencies = [
- "ansi_term",
- "atty",
- "bitflags",
- "strsim 0.8.0",
- "textwrap",
- "unicode-width",
- "vec_map",
-]
-
-[[package]]
-name = "clipboard-win"
-version = "4.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
-dependencies = [
- "error-code",
- "str-buf",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "cloudabi"
-version = "0.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "color_quant"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
-
-[[package]]
-name = "core-foundation"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
-
-[[package]]
-name = "core-graphics"
-version = "0.21.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52a67c4378cf203eace8fb6567847eb641fd6ff933c1145a115c6ee820ebb978"
-dependencies = [
- "bitflags",
- "core-foundation",
- "foreign-types",
- "libc",
-]
-
-[[package]]
-name = "crc32fast"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-dependencies = [
- "cfg-if 1.0.0",
-]
-
-[[package]]
-name = "crossterm"
-version = "0.20.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0ebde6a9dd5e331cd6c6f48253254d117642c31653baa475e394657c59c1f7d"
-dependencies = [
- "bitflags",
- "crossterm_winapi",
- "libc",
- "mio 0.7.14",
- "parking_lot",
- "signal-hook",
- "signal-hook-mio",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "crossterm_winapi"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a6966607622438301997d3dac0d2f6e9a90c68bb6bc1785ea98456ab93c0507"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "darling"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcfbcb0c5961907597a7d1148e3af036268f2b773886b8bb3eeb1e1281d3d3d6"
-dependencies = [
- "darling_core",
- "darling_macro",
-]
-
-[[package]]
-name = "darling_core"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6afc018370c3bff3eb51f89256a6bdb18b4fdcda72d577982a14954a7a0b402c"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2 0.4.30",
- "quote 0.6.13",
- "strsim 0.7.0",
- "syn 0.15.44",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6d8dac1c6f1d29a41c4712b4400f878cb4fcc4c7628f298dd75038e024998d1"
-dependencies = [
- "darling_core",
- "quote 0.6.13",
- "syn 0.15.44",
-]
-
-[[package]]
-name = "deflate"
-version = "0.8.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174"
-dependencies = [
- "adler32",
- "byteorder",
-]
-
-[[package]]
-name = "derive_builder"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ac53fa6a3cda160df823a9346442525dcaf1e171999a1cf23e67067e4fd64d4"
-dependencies = [
- "darling",
- "derive_builder_core",
- "proc-macro2 0.4.30",
- "quote 0.6.13",
- "syn 0.15.44",
-]
-
-[[package]]
-name = "derive_builder_core"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0288a23da9333c246bb18c143426074a6ae96747995c5819d2947b64cd942b37"
-dependencies = [
- "darling",
- "proc-macro2 0.4.30",
- "quote 0.6.13",
- "syn 0.15.44",
-]
-
-[[package]]
-name = "dirs"
-version = "3.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309"
-dependencies = [
- "dirs-sys",
-]
-
-[[package]]
-name = "dirs-sys"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
-dependencies = [
- "libc",
- "redox_users",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "dotenv"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0d0a1279c96732bc6800ce6337b6a614697b0e74ae058dc03c62ebeb78b4d86"
-dependencies = [
- "failure",
- "lazy_static",
- "regex",
-]
-
-[[package]]
-name = "either"
-version = "1.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
-
-[[package]]
-name = "encoding_rs"
-version = "0.8.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
-dependencies = [
- "cfg-if 1.0.0",
-]
-
-[[package]]
-name = "env_logger"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3"
-dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
-]
-
-[[package]]
-name = "errno"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "error-code"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
-dependencies = [
- "libc",
- "str-buf",
-]
-
-[[package]]
-name = "failure"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
-dependencies = [
- "backtrace",
- "failure_derive",
-]
-
-[[package]]
-name = "failure_derive"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 1.0.109",
- "synstructure",
-]
-
-[[package]]
-name = "fastrand"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
-dependencies = [
- "instant",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
-name = "form_urlencoded"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
-dependencies = [
- "percent-encoding 2.2.0",
-]
-
-[[package]]
-name = "fuchsia-cprng"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-
-[[package]]
-name = "fuchsia-zircon"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
-dependencies = [
- "bitflags",
- "fuchsia-zircon-sys",
-]
-
-[[package]]
-name = "fuchsia-zircon-sys"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-
-[[package]]
-name = "futures"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-channel"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
-dependencies = [
- "futures-core",
- "futures-sink",
-]
-
-[[package]]
-name = "futures-core"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
-
-[[package]]
-name = "futures-executor"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
-dependencies = [
- "futures-core",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-io"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
-
-[[package]]
-name = "futures-macro"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 2.0.15",
-]
-
-[[package]]
-name = "futures-sink"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
-
-[[package]]
-name = "futures-task"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
-
-[[package]]
-name = "futures-util"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-macro",
- "futures-sink",
- "futures-task",
- "memchr",
- "pin-project-lite 0.2.9",
- "pin-utils",
- "slab",
-]
-
-[[package]]
-name = "gethostname"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
-dependencies = [
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
-dependencies = [
- "cfg-if 1.0.0",
- "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "gimli"
-version = "0.27.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4"
-
-[[package]]
-name = "h2"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535"
-dependencies = [
- "bytes 0.5.6",
- "fnv",
- "futures-core",
- "futures-sink",
- "futures-util",
- "http",
- "indexmap",
- "slab",
- "tokio",
- "tokio-util",
- "tracing",
- "tracing-futures",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
-
-[[package]]
-name = "http"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
-dependencies = [
- "bytes 1.4.0",
- "fnv",
- "itoa 1.0.6",
-]
-
-[[package]]
-name = "http-body"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b"
-dependencies = [
- "bytes 0.5.6",
- "http",
-]
-
-[[package]]
-name = "httparse"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
-
-[[package]]
-name = "httpdate"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47"
-
-[[package]]
-name = "humantime"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
-dependencies = [
- "quick-error",
-]
-
-[[package]]
-name = "hyper"
-version = "0.13.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb"
-dependencies = [
- "bytes 0.5.6",
- "futures-channel",
- "futures-core",
- "futures-util",
- "h2",
- "http",
- "http-body",
- "httparse",
- "httpdate",
- "itoa 0.4.8",
- "pin-project",
- "socket2",
- "tokio",
- "tower-service",
- "tracing",
- "want",
-]
-
-[[package]]
-name = "hyper-tls"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed"
-dependencies = [
- "bytes 0.5.6",
- "hyper",
- "native-tls",
- "tokio",
- "tokio-tls",
-]
-
-[[package]]
-name = "iana-time-zone"
-version = "0.1.56"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c"
-dependencies = [
- "android_system_properties",
- "core-foundation-sys",
- "iana-time-zone-haiku",
- "js-sys",
- "wasm-bindgen",
- "windows",
-]
-
-[[package]]
-name = "iana-time-zone-haiku"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "ident_case"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
-
-[[package]]
-name = "idna"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
-dependencies = [
- "matches",
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "idna"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "image"
-version = "0.23.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1"
-dependencies = [
- "bytemuck",
- "byteorder",
- "color_quant",
- "num-iter",
- "num-rational",
- "num-traits",
- "png",
- "tiff",
-]
-
-[[package]]
-name = "indexmap"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg 1.1.0",
- "hashbrown",
-]
-
-[[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if 1.0.0",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "1.0.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220"
-dependencies = [
- "hermit-abi 0.3.1",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "iovec"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "ipnet"
-version = "2.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f"
-
-[[package]]
-name = "itertools"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484"
-dependencies = [
- "either",
-]
-
-[[package]]
-name = "itoa"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
-
-[[package]]
-name = "itoa"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
-
-[[package]]
-name = "jpeg-decoder"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2"
-
-[[package]]
-name = "js-sys"
-version = "0.3.62"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68c16e1bfd491478ab155fd8b4896b86f9ede344949b641e61501e07c2b8b4d5"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "kernel32-sys"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
-dependencies = [
- "winapi 0.2.8",
- "winapi-build",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "libc"
-version = "0.2.144"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
-
-[[package]]
-name = "linked-hash-map"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f"
-
-[[package]]
-name = "lock_api"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
-dependencies = [
- "autocfg 1.1.0",
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if 1.0.0",
-]
-
-[[package]]
-name = "malloc_buf"
-version = "0.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "matches"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
-
-[[package]]
-name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg 1.1.0",
-]
-
-[[package]]
-name = "mime"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
-
-[[package]]
-name = "mime_guess"
-version = "2.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
-dependencies = [
- "mime",
- "unicase",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
-dependencies = [
- "adler32",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
-dependencies = [
- "adler",
- "autocfg 1.1.0",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
-dependencies = [
- "adler",
-]
-
-[[package]]
-name = "mio"
-version = "0.6.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
-dependencies = [
- "cfg-if 0.1.10",
- "fuchsia-zircon",
- "fuchsia-zircon-sys",
- "iovec",
- "kernel32-sys",
- "libc",
- "log",
- "miow 0.2.2",
- "net2",
- "slab",
- "winapi 0.2.8",
-]
-
-[[package]]
-name = "mio"
-version = "0.7.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc"
-dependencies = [
- "libc",
- "log",
- "miow 0.3.7",
- "ntapi",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "mio-named-pipes"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656"
-dependencies = [
- "log",
- "mio 0.6.23",
- "miow 0.3.7",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "mio-uds"
-version = "0.6.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
-dependencies = [
- "iovec",
- "libc",
- "mio 0.6.23",
-]
-
-[[package]]
-name = "miow"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
-dependencies = [
- "kernel32-sys",
- "net2",
- "winapi 0.2.8",
- "ws2_32-sys",
-]
-
-[[package]]
-name = "miow"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "native-tls"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
-dependencies = [
- "lazy_static",
- "libc",
- "log",
- "openssl",
- "openssl-probe",
- "openssl-sys",
- "schannel",
- "security-framework",
- "security-framework-sys",
- "tempfile",
-]
-
-[[package]]
-name = "net2"
-version = "0.2.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631"
-dependencies = [
- "cfg-if 0.1.10",
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "nix"
-version = "0.20.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5e06129fb611568ef4e868c14b326274959aa70ff7776e9d55323531c374945"
-dependencies = [
- "bitflags",
- "cc",
- "cfg-if 1.0.0",
- "libc",
- "memoffset",
-]
-
-[[package]]
-name = "ntapi"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg 1.1.0",
- "num-traits",
-]
-
-[[package]]
-name = "num-iter"
-version = "0.1.43"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
-dependencies = [
- "autocfg 1.1.0",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
-dependencies = [
- "autocfg 1.1.0",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-dependencies = [
- "autocfg 1.1.0",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
-dependencies = [
- "hermit-abi 0.2.6",
- "libc",
-]
-
-[[package]]
-name = "objc"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
-dependencies = [
- "malloc_buf",
-]
-
-[[package]]
-name = "objc-foundation"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
-dependencies = [
- "block",
- "objc",
- "objc_id",
-]
-
-[[package]]
-name = "objc_id"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
-dependencies = [
- "objc",
-]
-
-[[package]]
-name = "object"
-version = "0.30.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.17.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
-
-[[package]]
-name = "openssl"
-version = "0.10.52"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56"
-dependencies = [
- "bitflags",
- "cfg-if 1.0.0",
- "foreign-types",
- "libc",
- "once_cell",
- "openssl-macros",
- "openssl-sys",
-]
-
-[[package]]
-name = "openssl-macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 2.0.15",
-]
-
-[[package]]
-name = "openssl-probe"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
-
-[[package]]
-name = "openssl-sys"
-version = "0.9.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e"
-dependencies = [
- "cc",
- "libc",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "parking_lot"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
-dependencies = [
- "instant",
- "lock_api",
- "parking_lot_core",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.8.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
-dependencies = [
- "cfg-if 1.0.0",
- "instant",
- "libc",
- "redox_syscall 0.2.16",
- "smallvec",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "percent-encoding"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
-
-[[package]]
-name = "percent-encoding"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
-
-[[package]]
-name = "pin-project"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
-dependencies = [
- "pin-project-internal",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "pin-project-lite"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777"
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
-
-[[package]]
-name = "pin-utils"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
-[[package]]
-name = "pkg-config"
-version = "0.3.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
-
-[[package]]
-name = "png"
-version = "0.16.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6"
-dependencies = [
- "bitflags",
- "crc32fast",
- "deflate",
- "miniz_oxide 0.3.7",
-]
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-
-[[package]]
-name = "proc-macro2"
-version = "0.4.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
-dependencies = [
- "unicode-xid 0.1.0",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.56"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quick-error"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-
-[[package]]
-name = "quote"
-version = "0.6.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
-dependencies = [
- "proc-macro2 0.4.30",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500"
-dependencies = [
- "proc-macro2 1.0.56",
-]
-
-[[package]]
-name = "rand"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-dependencies = [
- "autocfg 0.1.8",
- "libc",
- "rand_chacha 0.1.1",
- "rand_core 0.4.2",
- "rand_hc",
- "rand_isaac",
- "rand_jitter",
- "rand_os",
- "rand_pcg",
- "rand_xorshift",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "rand"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "libc",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
-dependencies = [
- "autocfg 0.1.8",
- "rand_core 0.3.1",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
-dependencies = [
- "rand_core 0.4.2",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
-
-[[package]]
-name = "rand_core"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
-dependencies = [
- "rand_core 0.3.1",
-]
-
-[[package]]
-name = "rand_isaac"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
-dependencies = [
- "rand_core 0.3.1",
-]
-
-[[package]]
-name = "rand_jitter"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
-dependencies = [
- "libc",
- "rand_core 0.4.2",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "rand_os"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
-dependencies = [
- "cloudabi",
- "fuchsia-cprng",
- "libc",
- "rand_core 0.4.2",
- "rdrand",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "rand_pcg"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
-dependencies = [
- "autocfg 0.1.8",
- "rand_core 0.4.2",
-]
-
-[[package]]
-name = "rand_xorshift"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
-dependencies = [
- "rand_core 0.3.1",
-]
-
-[[package]]
-name = "random"
-version = "0.12.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97d13a3485349981c90c79112a11222c3e6e75de1d52b87a7525b3bf5361420f"
-
-[[package]]
-name = "rdrand"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
-dependencies = [
- "rand_core 0.3.1",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "redox_users"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
-dependencies = [
- "getrandom",
- "redox_syscall 0.2.16",
- "thiserror",
-]
-
-[[package]]
-name = "regex"
-version = "1.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c"
-
-[[package]]
-name = "reqwest"
-version = "0.10.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0718f81a8e14c4dbb3b34cf23dc6aaf9ab8a0dfec160c534b3dbca1aaa21f47c"
-dependencies = [
- "base64 0.13.1",
- "bytes 0.5.6",
- "encoding_rs",
- "futures-core",
- "futures-util",
- "http",
- "http-body",
- "hyper",
- "hyper-tls",
- "ipnet",
- "js-sys",
- "lazy_static",
- "log",
- "mime",
- "mime_guess",
- "native-tls",
- "percent-encoding 2.2.0",
- "pin-project-lite 0.2.9",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "tokio",
- "tokio-socks",
- "tokio-tls",
- "url 2.3.1",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
- "winreg",
-]
-
-[[package]]
-name = "rspotify"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eefd7bb58b714606b30a490f751d7926942e2874eef5e82934d60d7a4a68dca4"
-dependencies = [
- "base64 0.10.1",
- "chrono",
- "derive_builder",
- "dotenv",
- "env_logger",
- "failure",
- "itertools",
- "lazy_static",
- "log",
- "percent-encoding 1.0.1",
- "rand 0.6.5",
- "random",
- "reqwest",
- "serde",
- "serde_derive",
- "serde_json",
- "url 1.7.2",
- "webbrowser",
-]
-
-[[package]]
-name = "rustc-demangle"
-version = "0.1.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
-
-[[package]]
-name = "rustc-serialize"
-version = "0.3.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
-
-[[package]]
-name = "rustix"
-version = "0.37.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f79bef90eb6d984c72722595b5b1348ab39275a5e5123faca6863bf07d75a4e0"
-dependencies = [
- "bitflags",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "ryu"
-version = "1.0.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
-
-[[package]]
-name = "schannel"
-version = "0.1.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
-dependencies = [
- "windows-sys 0.42.0",
-]
-
-[[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
-name = "security-framework"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23a2ac85147a3a11d77ecf1bc7166ec0b92febfa4461c37944e180f319ece467"
-dependencies = [
- "bitflags",
- "core-foundation",
- "core-foundation-sys",
- "libc",
- "security-framework-sys",
-]
-
-[[package]]
-name = "security-framework-sys"
-version = "2.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "serde"
-version = "1.0.163"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.163"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 2.0.15",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.96"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
-dependencies = [
- "itoa 1.0.6",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_urlencoded"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
-dependencies = [
- "form_urlencoded",
- "itoa 1.0.6",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_yaml"
-version = "0.8.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b"
-dependencies = [
- "indexmap",
- "ryu",
- "serde",
- "yaml-rust",
-]
-
-[[package]]
-name = "signal-hook"
-version = "0.3.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9"
-dependencies = [
- "libc",
- "signal-hook-registry",
-]
-
-[[package]]
-name = "signal-hook-mio"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
-dependencies = [
- "libc",
- "mio 0.7.14",
- "signal-hook",
-]
-
-[[package]]
-name = "signal-hook-registry"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "slab"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
-dependencies = [
- "autocfg 1.1.0",
-]
-
-[[package]]
-name = "smallvec"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
-
-[[package]]
-name = "socket2"
-version = "0.3.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e"
-dependencies = [
- "cfg-if 1.0.0",
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "spotify-tui"
-version = "0.25.0"
-dependencies = [
- "anyhow",
- "arboard",
- "backtrace",
- "clap",
- "crossterm",
- "dirs",
- "rand 0.8.5",
- "rspotify",
- "serde",
- "serde_json",
- "serde_yaml",
- "tokio",
- "tui",
- "unicode-width",
-]
-
-[[package]]
-name = "str-buf"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
-
-[[package]]
-name = "strsim"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
-
-[[package]]
-name = "strsim"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-
-[[package]]
-name = "syn"
-version = "0.15.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
-dependencies = [
- "proc-macro2 0.4.30",
- "quote 0.6.13",
- "unicode-xid 0.1.0",
-]
-
-[[package]]
-name = "syn"
-version = "1.0.109"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "unicode-ident",
-]
-
-[[package]]
-name = "synstructure"
-version = "0.12.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 1.0.109",
- "unicode-xid 0.2.4",
-]
-
-[[package]]
-name = "tempfile"
-version = "3.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
-dependencies = [
- "cfg-if 1.0.0",
- "fastrand",
- "redox_syscall 0.3.5",
- "rustix",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "textwrap"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
-name = "thiserror"
-version = "1.0.40"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.40"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 2.0.15",
-]
-
-[[package]]
-name = "tiff"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437"
-dependencies = [
- "jpeg-decoder",
- "miniz_oxide 0.4.4",
- "weezl",
-]
-
-[[package]]
-name = "time"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
-dependencies = [
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "tinyvec"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
-dependencies = [
- "tinyvec_macros",
-]
-
-[[package]]
-name = "tinyvec_macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-
-[[package]]
-name = "tokio"
-version = "0.2.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092"
-dependencies = [
- "bytes 0.5.6",
- "fnv",
- "futures-core",
- "iovec",
- "lazy_static",
- "libc",
- "memchr",
- "mio 0.6.23",
- "mio-named-pipes",
- "mio-uds",
- "num_cpus",
- "pin-project-lite 0.1.12",
- "signal-hook-registry",
- "slab",
- "tokio-macros",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "tokio-macros"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "tokio-socks"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d611fd5d241872372d52a0a3d309c52d0b95a6a67671a6c8f7ab2c4a37fb2539"
-dependencies = [
- "bytes 0.4.12",
- "either",
- "futures",
- "thiserror",
- "tokio",
-]
-
-[[package]]
-name = "tokio-tls"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343"
-dependencies = [
- "native-tls",
- "tokio",
-]
-
-[[package]]
-name = "tokio-util"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499"
-dependencies = [
- "bytes 0.5.6",
- "futures-core",
- "futures-sink",
- "log",
- "pin-project-lite 0.1.12",
- "tokio",
-]
-
-[[package]]
-name = "tower-service"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
-
-[[package]]
-name = "tracing"
-version = "0.1.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
-dependencies = [
- "cfg-if 1.0.0",
- "log",
- "pin-project-lite 0.2.9",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
-dependencies = [
- "once_cell",
-]
-
-[[package]]
-name = "tracing-futures"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
-dependencies = [
- "pin-project",
- "tracing",
-]
-
-[[package]]
-name = "try-lock"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
-
-[[package]]
-name = "tui"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39c8ce4e27049eed97cfa363a5048b09d995e209994634a0efc26a14ab6c0c23"
-dependencies = [
- "bitflags",
- "cassowary",
- "crossterm",
- "unicode-segmentation",
- "unicode-width",
-]
-
-[[package]]
-name = "unicase"
-version = "2.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
-dependencies = [
- "version_check",
-]
-
-[[package]]
-name = "unicode-bidi"
-version = "0.3.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
-dependencies = [
- "tinyvec",
-]
-
-[[package]]
-name = "unicode-segmentation"
-version = "1.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
-
-[[package]]
-name = "unicode-width"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
-
-[[package]]
-name = "unicode-xid"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
-
-[[package]]
-name = "url"
-version = "1.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
-dependencies = [
- "idna 0.1.5",
- "matches",
- "percent-encoding 1.0.1",
-]
-
-[[package]]
-name = "url"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
-dependencies = [
- "form_urlencoded",
- "idna 0.3.0",
- "percent-encoding 2.2.0",
-]
-
-[[package]]
-name = "vcpkg"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
-
-[[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "want"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
-dependencies = [
- "log",
- "try-lock",
-]
-
-[[package]]
-name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
-
-[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.85"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b6cb788c4e39112fbe1822277ef6fb3c55cd86b95cb3d3c4c1c9597e4ac74b4"
-dependencies = [
- "cfg-if 1.0.0",
- "serde",
- "serde_json",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.85"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35e522ed4105a9d626d885b35d62501b30d9666283a5c8be12c14a8bdafe7822"
-dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 2.0.15",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-futures"
-version = "0.4.35"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "083abe15c5d88556b77bdf7aef403625be9e327ad37c62c4e4129af740168163"
-dependencies = [
- "cfg-if 1.0.0",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.85"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "358a79a0cb89d21db8120cbfb91392335913e4890665b1a7981d9e956903b434"
-dependencies = [
- "quote 1.0.27",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.85"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4783ce29f09b9d93134d41297aded3a712b7b979e9c6f28c32cb88c973a94869"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 2.0.15",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.85"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a901d592cafaa4d711bc324edfaff879ac700b19c3dfd60058d2b445be2691eb"
-
-[[package]]
-name = "web-sys"
-version = "0.3.62"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16b5f940c7edfdc6d12126d98c9ef4d1b3d470011c47c76a6581df47ad9ba721"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "webbrowser"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecad156490d6b620308ed411cfee90d280b3cbd13e189ea0d3fada8acc89158a"
-dependencies = [
- "web-sys",
- "widestring",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "weezl"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
-
-[[package]]
-name = "widestring"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c"
-
-[[package]]
-name = "winapi"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-build"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "winapi-wsapoll"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
-dependencies = [
- "windows-targets 0.48.0",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.42.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
-dependencies = [
- "windows_aarch64_gnullvm 0.42.2",
- "windows_aarch64_msvc 0.42.2",
- "windows_i686_gnu 0.42.2",
- "windows_i686_msvc 0.42.2",
- "windows_x86_64_gnu 0.42.2",
- "windows_x86_64_gnullvm 0.42.2",
- "windows_x86_64_msvc 0.42.2",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.45.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
-dependencies = [
- "windows-targets 0.42.2",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-dependencies = [
- "windows-targets 0.48.0",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
-dependencies = [
- "windows_aarch64_gnullvm 0.42.2",
- "windows_aarch64_msvc 0.42.2",
- "windows_i686_gnu 0.42.2",
- "windows_i686_msvc 0.42.2",
- "windows_x86_64_gnu 0.42.2",
- "windows_x86_64_gnullvm 0.42.2",
- "windows_x86_64_msvc 0.42.2",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
-dependencies = [
- "windows_aarch64_gnullvm 0.48.0",
- "windows_aarch64_msvc 0.48.0",
- "windows_i686_gnu 0.48.0",
- "windows_i686_msvc 0.48.0",
- "windows_x86_64_gnu 0.48.0",
- "windows_x86_64_gnullvm 0.48.0",
- "windows_x86_64_msvc 0.48.0",
-]
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
-
-[[package]]
-name = "winreg"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "ws2_32-sys"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
-dependencies = [
- "winapi 0.2.8",
- "winapi-build",
-]
-
-[[package]]
-name = "x11rb"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ffb080b3f2f616242a4eb8e7d325035312127901025b0052bc3154a282d0f19"
-dependencies = [
- "gethostname",
- "nix",
- "winapi 0.3.9",
- "winapi-wsapoll",
-]
-
-[[package]]
-name = "yaml-rust"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
-dependencies = [
- "linked-hash-map",
-]
diff --git a/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix b/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix
deleted file mode 100644
index bca06406eba9..000000000000
--- a/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ lib
-, rustPlatform
-, fetchFromGitHub
-, stdenv
-, installShellFiles
-, pkg-config
-, openssl
-, python3
-, libxcb
-, AppKit
-, Security
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "spotify-tui";
-  version = "0.25.0";
-
-  src = fetchFromGitHub {
-    owner = "Rigellute";
-    repo = "spotify-tui";
-    rev = "v${version}";
-    hash = "sha256-L5gg6tjQuYoAC89XfKE38KCFONwSAwfNoFEUPH4jNAI=";
-  };
-
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-  };
-
-  nativeBuildInputs = [ installShellFiles ] ++ lib.optionals stdenv.isLinux [ pkg-config python3 ];
-  buildInputs = [ ]
-    ++ lib.optionals stdenv.isLinux [ openssl libxcb ]
-    ++ lib.optionals stdenv.isDarwin [ AppKit Security ];
-
-  postPatch = ''
-    # update Cargo.lock to fix build
-    ln -sf ${./Cargo.lock} Cargo.lock
-
-    # Add patch adding the collection variant to rspotify used by spotify-tu
-    # This fixes the issue of getting an error when playing liked songs
-    # see https://github.com/NixOS/nixpkgs/pull/170915
-    patch -p1 -d $cargoDepsCopy/rspotify-0.10.0 < ${./0001-Add-Collection-SearchType.patch}
-  '';
-
-  postInstall = ''
-    for shell in bash fish zsh; do
-      $out/bin/spt --completions $shell > spt.$shell
-      installShellCompletion spt.$shell
-    done
-  '';
-
-  meta = with lib; {
-    description = "Spotify for the terminal written in Rust";
-    homepage = "https://github.com/Rigellute/spotify-tui";
-    changelog = "https://github.com/Rigellute/spotify-tui/blob/v${version}/CHANGELOG.md";
-    license = with licenses; [ mit /* or */ asl20 ];
-    maintainers = with maintainers; [ jwijenbergh ];
-    mainProgram = "spt";
-  };
-}
diff --git a/nixpkgs/pkgs/applications/audio/spotifyd/default.nix b/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
index 0e41bedb2650..6de9493ab8e8 100644
--- a/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/squeezelite/default.nix b/nixpkgs/pkgs/applications/audio/squeezelite/default.nix
index 3fd633506b2d..694dd04d12a9 100644
--- a/nixpkgs/pkgs/applications/audio/squeezelite/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/sublime-music/default.nix b/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
index a2f6b17a8746..b2cf3a5d842d 100644
--- a/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/surge-XT/default.nix b/nixpkgs/pkgs/applications/audio/surge-XT/default.nix
index 9f234b5e71c0..63cf1110d784 100644
--- a/nixpkgs/pkgs/applications/audio/surge-XT/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/synthv1/default.nix b/nixpkgs/pkgs/applications/audio/synthv1/default.nix
index b0e9e9bde9d0..770c5d924a1d 100644
--- a/nixpkgs/pkgs/applications/audio/synthv1/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/tauon/default.nix b/nixpkgs/pkgs/applications/audio/tauon/default.nix
index 979907202835..09136728a4b9 100644
--- a/nixpkgs/pkgs/applications/audio/tauon/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/tenacity/default.nix b/nixpkgs/pkgs/applications/audio/tenacity/default.nix
index 6c4dd61c6674..c2879d412324 100644
--- a/nixpkgs/pkgs/applications/audio/tenacity/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/tony/default.nix b/nixpkgs/pkgs/applications/audio/tony/default.nix
index 33561122b191..a0af1a706643 100644
--- a/nixpkgs/pkgs/applications/audio/tony/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/traverso/default.nix b/nixpkgs/pkgs/applications/audio/traverso/default.nix
index 698a03b4a713..b8a81ec7a8e9 100644
--- a/nixpkgs/pkgs/applications/audio/traverso/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix b/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix
index c0067779b7b2..c086436de09f 100644
--- a/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/vmpk/default.nix b/nixpkgs/pkgs/applications/audio/vmpk/default.nix
index c40af7b046ed..7802c6cce704 100644
--- a/nixpkgs/pkgs/applications/audio/vmpk/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/waylyrics/default.nix b/nixpkgs/pkgs/applications/audio/waylyrics/default.nix
index f22f4f1e8203..9f55645a56bb 100644
--- a/nixpkgs/pkgs/applications/audio/waylyrics/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix b/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix
index e28d773d6e2a..02336f753450 100644
--- a/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/yams/default.nix b/nixpkgs/pkgs/applications/audio/yams/default.nix
index 96c1ab27b72c..e4afe4ad2729 100644
--- a/nixpkgs/pkgs/applications/audio/yams/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/yesplaymusic/default.nix b/nixpkgs/pkgs/applications/audio/yesplaymusic/default.nix
index aee0d1d192fe..a7f81dcf4c40 100644
--- a/nixpkgs/pkgs/applications/audio/yesplaymusic/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/youtube-music/default.nix b/nixpkgs/pkgs/applications/audio/youtube-music/default.nix
index cfb97b549a06..7f6b7865054f 100644
--- a/nixpkgs/pkgs/applications/audio/youtube-music/default.nix
+++ b/nixpkgs/pkgs/applications/audio/youtube-music/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchFromGitHub
-, buildNpmPackage
 , makeWrapper
 , electron
 , python3
@@ -14,21 +13,17 @@
 , makeDesktopItem
 }:
 
-let
+stdenv.mkDerivation (finalAttrs: {
   pname = "youtube-music";
-  version = "3.1.0";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner = "th-ch";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-6ZiftpdCwxCkJzcHryVrUKzM+mM1eQpdLNFl0Dja59Q=";
+    repo = "youtube-music";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-N6TzDTKvMyasksE0qcEGKeNjGAD08OzxpmpoQ11/ZW4=";
   };
 
-in
-stdenv.mkDerivation (finalAttrs: {
-  inherit pname version src;
-
   pnpmDeps = stdenvNoCC.mkDerivation {
     pname = "${finalAttrs.pname}-pnpm-deps";
     inherit (finalAttrs) src version ELECTRON_SKIP_BINARY_DOWNLOAD;
@@ -51,17 +46,15 @@ stdenv.mkDerivation (finalAttrs: {
     dontBuild = true;
     dontFixup = true;
     outputHashMode = "recursive";
-    outputHashAlgo = "sha256";
     outputHash = {
-      x86_64-linux = "sha256-Oy11V7FXfVhLUR9gX0sjQEFuVPFpbaVdT518oOSLcvA=";
-      aarch64-linux = "sha256-6nXemaGiQjp2stjjKItPJ62VcH5Q5pRf63qKtl2haXI=";
-      x86_64-darwin = "sha256-jSMAw+AMD63vqPckZjblw4EDngA4E8h0WlsZu3hUShY=";
-      aarch64-darwin = "sha256-zujXURpIcw7IOw63AW167h6cywYXydhHZMzA2apGZAs=";
+      x86_64-linux = "sha256-V6CSawxBWFbXmAPbck0xCXqRlANpqFAoqSAB4Duf8qM=";
+      aarch64-linux = "sha256-cqBn35soV14CmobKt0napRELio4HKKA8Iw3QSWTxzP8=";
+      x86_64-darwin = "sha256-DY9T1N8Hxr57/XisYT+u2+hQvYMIiyQ3UHeTuA6BhSY=";
+      aarch64-darwin = "sha256-3Zk0SyhVKaz5QdO69/xzWFZj9ueJS6GLWhfW7odWvHc=";
     }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
   };
 
-  nativeBuildInputs =
-    [ makeWrapper python3 nodePackages.pnpm nodePackages.nodejs ]
+  nativeBuildInputs = [ makeWrapper python3 nodePackages.pnpm nodePackages.nodejs ]
     ++ lib.optionals (!stdenv.isDarwin) [ copyDesktopItems ];
 
 
diff --git a/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix b/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
index 0060e8d4c7f4..20dcd0d491e8 100644
--- a/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
+++ b/nixpkgs/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"