about summary refs log tree commit diff
path: root/pkgs/applications/audio
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/audio')
-rw-r--r--pkgs/applications/audio/AMB-plugins/default.nix2
-rw-r--r--pkgs/applications/audio/CHOWTapeModel/default.nix132
-rw-r--r--pkgs/applications/audio/ChowCentaur/default.nix53
-rw-r--r--pkgs/applications/audio/ChowKick/default.nix107
-rw-r--r--pkgs/applications/audio/ChowPhaser/default.nix76
-rw-r--r--pkgs/applications/audio/FIL-plugins/default.nix43
-rw-r--r--pkgs/applications/audio/LibreArp/default.nix53
-rw-r--r--pkgs/applications/audio/LibreArp/lv2.nix53
-rw-r--r--pkgs/applications/audio/adlplug/default.nix1
-rw-r--r--pkgs/applications/audio/aether-lv2/default.nix2
-rw-r--r--pkgs/applications/audio/alsa-scarlett-gui/default.nix12
-rw-r--r--pkgs/applications/audio/amarok/default.nix18
-rw-r--r--pkgs/applications/audio/amberol/default.nix2
-rw-r--r--pkgs/applications/audio/ams-lv2/default.nix2
-rw-r--r--pkgs/applications/audio/ardour/default.nix4
-rw-r--r--pkgs/applications/audio/ario/default.nix4
-rw-r--r--pkgs/applications/audio/artyFX/default.nix2
-rw-r--r--pkgs/applications/audio/asunder/default.nix2
-rw-r--r--pkgs/applications/audio/aucatctl/default.nix2
-rw-r--r--pkgs/applications/audio/audacious/default.nix3
-rw-r--r--pkgs/applications/audio/audacity/default.nix6
-rw-r--r--pkgs/applications/audio/audio-recorder/default.nix4
-rw-r--r--pkgs/applications/audio/autotalent/default.nix2
-rw-r--r--pkgs/applications/audio/bambootracker/default.nix2
-rw-r--r--pkgs/applications/audio/bchoppr/default.nix2
-rw-r--r--pkgs/applications/audio/beast/patch.patch187
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix6
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix6
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix12
-rw-r--r--pkgs/applications/audio/blanket/default.nix67
-rw-r--r--pkgs/applications/audio/bolliedelayxt.lv2/default.nix2
-rw-r--r--pkgs/applications/audio/bristol/default.nix2
-rw-r--r--pkgs/applications/audio/brutefir/default.nix2
-rw-r--r--pkgs/applications/audio/buzztrax/default.nix6
-rw-r--r--pkgs/applications/audio/calf/default.nix2
-rw-r--r--pkgs/applications/audio/callaudiod/default.nix2
-rw-r--r--pkgs/applications/audio/cantata/default.nix2
-rw-r--r--pkgs/applications/audio/caps/default.nix2
-rw-r--r--pkgs/applications/audio/cardinal/default.nix5
-rw-r--r--pkgs/applications/audio/carla/default.nix2
-rw-r--r--pkgs/applications/audio/castopod/default.nix8
-rw-r--r--pkgs/applications/audio/caudec/default.nix2
-rw-r--r--pkgs/applications/audio/cava/default.nix4
-rw-r--r--pkgs/applications/audio/cdparanoia/default.nix2
-rw-r--r--pkgs/applications/audio/cheesecutter/default.nix2
-rw-r--r--pkgs/applications/audio/cider/default.nix6
-rw-r--r--pkgs/applications/audio/clementine/default.nix3
-rw-r--r--pkgs/applications/audio/clerk/default.nix2
-rw-r--r--pkgs/applications/audio/cmus/default.nix10
-rw-r--r--pkgs/applications/audio/cmus/option-debugging.patch42
-rw-r--r--pkgs/applications/audio/cozy/default.nix2
-rw-r--r--pkgs/applications/audio/csa/default.nix2
-rw-r--r--pkgs/applications/audio/csound/csound-manual/default.nix2
-rw-r--r--pkgs/applications/audio/deadbeef/default.nix4
-rw-r--r--pkgs/applications/audio/delayarchitect/default.nix2
-rw-r--r--pkgs/applications/audio/denemo/default.nix4
-rw-r--r--pkgs/applications/audio/diopser/default.nix2
-rw-r--r--pkgs/applications/audio/dirt/default.nix2
-rw-r--r--pkgs/applications/audio/dolbybcsoftwaredecode/default.nix2
-rw-r--r--pkgs/applications/audio/dragonfly-reverb/default.nix2
-rw-r--r--pkgs/applications/audio/drumgizmo/default.nix2
-rw-r--r--pkgs/applications/audio/drumkv1/default.nix2
-rw-r--r--pkgs/applications/audio/dsf2flac/default.nix2
-rw-r--r--pkgs/applications/audio/eartag/default.nix6
-rw-r--r--pkgs/applications/audio/easyabc/default.nix4
-rw-r--r--pkgs/applications/audio/easyaudiosync/0001-fix-project-name.patch13
-rw-r--r--pkgs/applications/audio/easyaudiosync/0002-fix-qt67-deprecated-methods.patch21
-rw-r--r--pkgs/applications/audio/easyaudiosync/0003-fix-darwin-app.patch35
-rw-r--r--pkgs/applications/audio/easyaudiosync/0004-force-qt6.patch21
-rw-r--r--pkgs/applications/audio/easyaudiosync/default.nix98
-rw-r--r--pkgs/applications/audio/easyeffects/default.nix2
-rw-r--r--pkgs/applications/audio/easytag/default.nix66
-rw-r--r--pkgs/applications/audio/ensemble-chorus/default.nix5
-rw-r--r--pkgs/applications/audio/ensemble-chorus/juice-cxx-packing-fix.diff55
-rw-r--r--pkgs/applications/audio/exact-audio-copy/default.nix2
-rw-r--r--pkgs/applications/audio/exaile/default.nix8
-rw-r--r--pkgs/applications/audio/famistudio/default.nix12
-rw-r--r--pkgs/applications/audio/faust/faust2.nix4
-rw-r--r--pkgs/applications/audio/faust/faustlive.nix2
-rw-r--r--pkgs/applications/audio/faustPhysicalModeling/default.nix6
-rw-r--r--pkgs/applications/audio/fdkaac/default.nix2
-rw-r--r--pkgs/applications/audio/feishin/default.nix12
-rw-r--r--pkgs/applications/audio/flac123/default.nix22
-rw-r--r--pkgs/applications/audio/flacon/default.nix4
-rw-r--r--pkgs/applications/audio/fmsynth/default.nix2
-rw-r--r--pkgs/applications/audio/fomp/default.nix2
-rw-r--r--pkgs/applications/audio/freac/default.nix2
-rw-r--r--pkgs/applications/audio/freewheeling/default.nix2
-rw-r--r--pkgs/applications/audio/friture/default.nix2
-rw-r--r--pkgs/applications/audio/ft2-clone/default.nix6
-rw-r--r--pkgs/applications/audio/furnace/default.nix121
-rwxr-xr-xpkgs/applications/audio/furnace/update.sh12
-rw-r--r--pkgs/applications/audio/fverb/default.nix2
-rw-r--r--pkgs/applications/audio/g4music/default.nix6
-rw-r--r--pkgs/applications/audio/gbsplay/default.nix32
-rw-r--r--pkgs/applications/audio/geonkick/default.nix2
-rw-r--r--pkgs/applications/audio/giada/default.nix21
-rw-r--r--pkgs/applications/audio/gmpc/default.nix6
-rw-r--r--pkgs/applications/audio/gnome-podcasts/default.nix16
-rw-r--r--pkgs/applications/audio/go-musicfox/default.nix12
-rw-r--r--pkgs/applications/audio/goattracker/default.nix2
-rw-r--r--pkgs/applications/audio/goodvibes/default.nix22
-rw-r--r--pkgs/applications/audio/gpodder/default.nix6
-rw-r--r--pkgs/applications/audio/greg/default.nix2
-rw-r--r--pkgs/applications/audio/gspeech/default.nix6
-rw-r--r--pkgs/applications/audio/gst123/default.nix4
-rw-r--r--pkgs/applications/audio/guitarix/default.nix6
-rw-r--r--pkgs/applications/audio/gxplugins-lv2/default.nix2
-rw-r--r--pkgs/applications/audio/headset/default.nix2
-rw-r--r--pkgs/applications/audio/helio-workstation/default.nix4
-rw-r--r--pkgs/applications/audio/helm/default.nix2
-rw-r--r--pkgs/applications/audio/helvum/default.nix2
-rw-r--r--pkgs/applications/audio/hivelytracker/default.nix4
-rw-r--r--pkgs/applications/audio/hushboard/default.nix4
-rw-r--r--pkgs/applications/audio/id3v2/default.nix2
-rw-r--r--pkgs/applications/audio/in-formant/default.nix2
-rw-r--r--pkgs/applications/audio/indicator-sound-switcher/default.nix4
-rw-r--r--pkgs/applications/audio/infamousPlugins/default.nix2
-rw-r--r--pkgs/applications/audio/ingen/default.nix2
-rw-r--r--pkgs/applications/audio/jack-capture/default.nix2
-rw-r--r--pkgs/applications/audio/jack-oscrolloscope/default.nix2
-rw-r--r--pkgs/applications/audio/jack-passthrough/default.nix2
-rw-r--r--pkgs/applications/audio/jacktrip/default.nix4
-rw-r--r--pkgs/applications/audio/jalv/default.nix2
-rw-r--r--pkgs/applications/audio/jamesdsp/default.nix2
-rw-r--r--pkgs/applications/audio/japa/default.nix2
-rw-r--r--pkgs/applications/audio/jconvolver/default.nix2
-rw-r--r--pkgs/applications/audio/jmusicbot/default.nix4
-rw-r--r--pkgs/applications/audio/keyfinder-cli/default.nix2
-rw-r--r--pkgs/applications/audio/kid3/default.nix2
-rw-r--r--pkgs/applications/audio/klystrack/default.nix2
-rw-r--r--pkgs/applications/audio/ladspa-sdk/default.nix2
-rw-r--r--pkgs/applications/audio/lash/default.nix2
-rw-r--r--pkgs/applications/audio/ledfx/default.nix6
-rw-r--r--pkgs/applications/audio/lingot/default.nix4
-rw-r--r--pkgs/applications/audio/listenbrainz-mpd/default.nix6
-rw-r--r--pkgs/applications/audio/littlegptracker/default.nix2
-rw-r--r--pkgs/applications/audio/lollypop/default.nix64
-rw-r--r--pkgs/applications/audio/lpd8editor/default.nix2
-rw-r--r--pkgs/applications/audio/lsp-plugins/default.nix6
-rw-r--r--pkgs/applications/audio/luppp/default.nix2
-rw-r--r--pkgs/applications/audio/lv2bm/default.nix2
-rw-r--r--pkgs/applications/audio/lyrebird/default.nix4
-rw-r--r--pkgs/applications/audio/m4acut/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/CompBus/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix2
-rw-r--r--pkgs/applications/audio/mda-lv2/default.nix2
-rw-r--r--pkgs/applications/audio/melmatcheq.lv2/default.nix2
-rw-r--r--pkgs/applications/audio/mid2key/default.nix2
-rw-r--r--pkgs/applications/audio/midivisualizer/default.nix (renamed from pkgs/applications/audio/midi-visualizer/default.nix)12
-rw-r--r--pkgs/applications/audio/miniaudicle/default.nix2
-rw-r--r--pkgs/applications/audio/minidsp/default.nix2
-rw-r--r--pkgs/applications/audio/miniplayer/default.nix2
-rw-r--r--pkgs/applications/audio/mixxx/default.nix17
-rw-r--r--pkgs/applications/audio/moc/default.nix2
-rw-r--r--pkgs/applications/audio/mod-arpeggiator-lv2/default.nix2
-rw-r--r--pkgs/applications/audio/monkeys-audio/default.nix4
-rw-r--r--pkgs/applications/audio/mopidy/iris.nix2
-rw-r--r--pkgs/applications/audio/mopidy/moped.nix2
-rw-r--r--pkgs/applications/audio/mopidy/mopidy.nix2
-rw-r--r--pkgs/applications/audio/mopidy/mopify.nix2
-rw-r--r--pkgs/applications/audio/mopidy/musicbox-webclient.nix2
-rw-r--r--pkgs/applications/audio/mopidy/scrobbler.nix2
-rw-r--r--pkgs/applications/audio/mopidy/youtube.nix3
-rw-r--r--pkgs/applications/audio/mousai/default.nix75
-rw-r--r--pkgs/applications/audio/mousai/paths.patch13
-rw-r--r--pkgs/applications/audio/mp3blaster/default.nix2
-rw-r--r--pkgs/applications/audio/mp3val/default.nix2
-rw-r--r--pkgs/applications/audio/mpc/default.nix2
-rw-r--r--pkgs/applications/audio/mpc123/default.nix2
-rw-r--r--pkgs/applications/audio/mpd-touch-screen-gui/default.nix2
-rw-r--r--pkgs/applications/audio/mpdevil/default.nix56
-rw-r--r--pkgs/applications/audio/mpg321/default.nix53
-rw-r--r--pkgs/applications/audio/munt/libmt32emu.nix2
-rw-r--r--pkgs/applications/audio/munt/mt32emu-qt.nix2
-rw-r--r--pkgs/applications/audio/muse/default.nix2
-rw-r--r--pkgs/applications/audio/museeks/default.nix2
-rw-r--r--pkgs/applications/audio/musescore/default.nix21
-rw-r--r--pkgs/applications/audio/music-player/default.nix2
-rw-r--r--pkgs/applications/audio/musikcube/default.nix1
-rw-r--r--pkgs/applications/audio/musly/default.nix2
-rw-r--r--pkgs/applications/audio/muso/default.nix6
-rw-r--r--pkgs/applications/audio/mympd/default.nix6
-rw-r--r--pkgs/applications/audio/ncmpcpp/default.nix2
-rw-r--r--pkgs/applications/audio/ncpamixer/default.nix2
-rw-r--r--pkgs/applications/audio/ncspot/default.nix6
-rw-r--r--pkgs/applications/audio/new-session-manager/default.nix2
-rw-r--r--pkgs/applications/audio/noise-repellent/default.nix2
-rw-r--r--pkgs/applications/audio/noson/default.nix4
-rw-r--r--pkgs/applications/audio/open-music-kontrollers/jit.nix2
-rw-r--r--pkgs/applications/audio/open-music-kontrollers/mephisto.nix2
-rw-r--r--pkgs/applications/audio/open-music-kontrollers/midi_matrix.nix2
-rw-r--r--pkgs/applications/audio/open-music-kontrollers/orbit.nix2
-rw-r--r--pkgs/applications/audio/open-music-kontrollers/patchmatrix.nix2
-rw-r--r--pkgs/applications/audio/open-music-kontrollers/router.nix2
-rw-r--r--pkgs/applications/audio/open-music-kontrollers/vm.nix2
-rw-r--r--pkgs/applications/audio/opustags/default.nix4
-rw-r--r--pkgs/applications/audio/orca-c/default.nix2
-rw-r--r--pkgs/applications/audio/osmid/default.nix2
-rw-r--r--pkgs/applications/audio/oxefmsynth/default.nix2
-rw-r--r--pkgs/applications/audio/paprefs/default.nix4
-rw-r--r--pkgs/applications/audio/parlatype/default.nix10
-rw-r--r--pkgs/applications/audio/parrot/default.nix2
-rw-r--r--pkgs/applications/audio/pavucontrol/default.nix4
-rw-r--r--pkgs/applications/audio/pbpctrl/default.nix2
-rw-r--r--pkgs/applications/audio/pd-plugins/cyclone/default.nix2
-rw-r--r--pkgs/applications/audio/pd-plugins/maxlib/default.nix2
-rw-r--r--pkgs/applications/audio/pd-plugins/mrpeach/default.nix2
-rw-r--r--pkgs/applications/audio/pd-plugins/timbreid/default.nix2
-rw-r--r--pkgs/applications/audio/pd-plugins/zexy/default.nix2
-rw-r--r--pkgs/applications/audio/pianobar/default.nix2
-rw-r--r--pkgs/applications/audio/pianobooster/default.nix2
-rw-r--r--pkgs/applications/audio/picard/default.nix2
-rw-r--r--pkgs/applications/audio/picoloop/default.nix2
-rw-r--r--pkgs/applications/audio/pithos/default.nix4
-rw-r--r--pkgs/applications/audio/plexamp/default.nix24
-rwxr-xr-xpkgs/applications/audio/plexamp/update-plexamp.sh5
-rw-r--r--pkgs/applications/audio/plugin-torture/default.nix2
-rw-r--r--pkgs/applications/audio/plujain-ramp/default.nix2
-rw-r--r--pkgs/applications/audio/pmidi/default.nix4
-rw-r--r--pkgs/applications/audio/pms/default.nix2
-rw-r--r--pkgs/applications/audio/pocket-casts/default.nix2
-rw-r--r--pkgs/applications/audio/polyphone/default.nix2
-rw-r--r--pkgs/applications/audio/praat/default.nix8
-rw-r--r--pkgs/applications/audio/pragha/default.nix2
-rw-r--r--pkgs/applications/audio/psst/default.nix6
-rw-r--r--pkgs/applications/audio/psst/make-build-reproducible.patch2
-rw-r--r--pkgs/applications/audio/pt2-clone/default.nix2
-rw-r--r--pkgs/applications/audio/puddletag/default.nix2
-rw-r--r--pkgs/applications/audio/pulseaudio-dlna/default.nix2
-rw-r--r--pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix2
-rw-r--r--pkgs/applications/audio/pulseeffects-legacy/default.nix4
-rw-r--r--pkgs/applications/audio/pwvucontrol/Cargo.lock355
-rw-r--r--pkgs/applications/audio/pwvucontrol/default.nix8
-rw-r--r--pkgs/applications/audio/pyradio/default.nix10
-rw-r--r--pkgs/applications/audio/qjackctl/default.nix2
-rw-r--r--pkgs/applications/audio/qmidiarp/default.nix2
-rw-r--r--pkgs/applications/audio/qmidinet/default.nix2
-rw-r--r--pkgs/applications/audio/qmmp/default.nix4
-rw-r--r--pkgs/applications/audio/qpwgraph/default.nix6
-rw-r--r--pkgs/applications/audio/qsynth/default.nix4
-rw-r--r--pkgs/applications/audio/quodlibet/default.nix4
-rw-r--r--pkgs/applications/audio/radioboat/default.nix2
-rw-r--r--pkgs/applications/audio/radiotray-ng/default.nix6
-rw-r--r--pkgs/applications/audio/reaper/default.nix8
-rwxr-xr-xpkgs/applications/audio/reaper/updater.sh8
-rw-r--r--pkgs/applications/audio/rhvoice/default.nix2
-rw-r--r--pkgs/applications/audio/rhythmbox/default.nix7
-rw-r--r--pkgs/applications/audio/rofi-mpd/default.nix2
-rw-r--r--pkgs/applications/audio/samplebrain/default.nix2
-rw-r--r--pkgs/applications/audio/samplv1/default.nix2
-rw-r--r--pkgs/applications/audio/setbfree/default.nix2
-rw-r--r--pkgs/applications/audio/sfxr-qt/default.nix2
-rw-r--r--pkgs/applications/audio/sfxr/default.nix6
-rw-r--r--pkgs/applications/audio/sidplayfp/default.nix6
-rw-r--r--pkgs/applications/audio/snd/default.nix4
-rw-r--r--pkgs/applications/audio/sonata/default.nix6
-rw-r--r--pkgs/applications/audio/songrec/default.nix2
-rw-r--r--pkgs/applications/audio/sony-headphones-client/default.nix2
-rw-r--r--pkgs/applications/audio/sooperlooper/default.nix2
-rw-r--r--pkgs/applications/audio/sorcer/default.nix2
-rw-r--r--pkgs/applications/audio/sound-juicer/default.nix6
-rw-r--r--pkgs/applications/audio/soundconverter/default.nix4
-rw-r--r--pkgs/applications/audio/soundsource/default.nix6
-rw-r--r--pkgs/applications/audio/soundtracker/default.nix2
-rw-r--r--pkgs/applications/audio/spectrojack/default.nix2
-rw-r--r--pkgs/applications/audio/spek/default.nix4
-rw-r--r--pkgs/applications/audio/spotify-cli-linux/default.nix2
-rw-r--r--pkgs/applications/audio/spotify-player/default.nix8
-rw-r--r--pkgs/applications/audio/spotify-qt/default.nix11
-rw-r--r--pkgs/applications/audio/spotify/linux.nix42
-rw-r--r--pkgs/applications/audio/spotifyd/default.nix2
-rw-r--r--pkgs/applications/audio/squeezelite/default.nix115
-rwxr-xr-xpkgs/applications/audio/squeezelite/update.sh18
-rw-r--r--pkgs/applications/audio/squishyball/default.nix2
-rw-r--r--pkgs/applications/audio/ssrc/default.nix2
-rw-r--r--pkgs/applications/audio/stone-phaser/default.nix2
-rw-r--r--pkgs/applications/audio/sublime-music/default.nix127
-rw-r--r--pkgs/applications/audio/subtitlr/default.nix2
-rw-r--r--pkgs/applications/audio/surge-XT/default.nix4
-rw-r--r--pkgs/applications/audio/synthv1/default.nix2
-rw-r--r--pkgs/applications/audio/tageditor/default.nix2
-rw-r--r--pkgs/applications/audio/tagger/default.nix2
-rw-r--r--pkgs/applications/audio/tambura/default.nix2
-rw-r--r--pkgs/applications/audio/tauon/default.nix2
-rw-r--r--pkgs/applications/audio/tenacity/default.nix3
-rw-r--r--pkgs/applications/audio/tidal-hifi/default.nix8
-rw-r--r--pkgs/applications/audio/tone/default.nix2
-rw-r--r--pkgs/applications/audio/tonelib-gfx/default.nix2
-rw-r--r--pkgs/applications/audio/touchosc/default.nix8
-rw-r--r--pkgs/applications/audio/transcribe/default.nix4
-rw-r--r--pkgs/applications/audio/tuner/default.nix6
-rw-r--r--pkgs/applications/audio/vcv-rack/default.nix5
-rw-r--r--pkgs/applications/audio/vgmstream/default.nix2
-rw-r--r--pkgs/applications/audio/vimpc/default.nix2
-rw-r--r--pkgs/applications/audio/viper4linux/default.nix2
-rw-r--r--pkgs/applications/audio/vocal/default.nix6
-rw-r--r--pkgs/applications/audio/vocproc/default.nix2
-rw-r--r--pkgs/applications/audio/waon/default.nix2
-rw-r--r--pkgs/applications/audio/waylyrics/Cargo.lock4174
-rw-r--r--pkgs/applications/audio/waylyrics/default.nix15
-rw-r--r--pkgs/applications/audio/whipper/default.nix12
-rw-r--r--pkgs/applications/audio/x42-avldrums/default.nix4
-rw-r--r--pkgs/applications/audio/yasr/default.nix2
-rw-r--r--pkgs/applications/audio/ymuse/default.nix4
-rw-r--r--pkgs/applications/audio/youtube-music/default.nix59
-rw-r--r--pkgs/applications/audio/zam-plugins/default.nix6
-rw-r--r--pkgs/applications/audio/zita-at1/default.nix4
-rw-r--r--pkgs/applications/audio/zrythm/default.nix103
-rw-r--r--pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix2
314 files changed, 1144 insertions, 6487 deletions
diff --git a/pkgs/applications/audio/AMB-plugins/default.nix b/pkgs/applications/audio/AMB-plugins/default.nix
index b388674fa4492..97bd35264bb56 100644
--- a/pkgs/applications/audio/AMB-plugins/default.nix
+++ b/pkgs/applications/audio/AMB-plugins/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   preInstall="mkdir -p $out/lib/ladspa";
 
   meta = {
-    description = "A set of ambisonics ladspa plugins";
+    description = "Set of ambisonics ladspa plugins";
     longDescription = ''
       Mono and stereo to B-format panning, horizontal rotator, square, hexagon and cube decoders.
     '';
diff --git a/pkgs/applications/audio/CHOWTapeModel/default.nix b/pkgs/applications/audio/CHOWTapeModel/default.nix
deleted file mode 100644
index 29c1b82d9d0e1..0000000000000
--- a/pkgs/applications/audio/CHOWTapeModel/default.nix
+++ /dev/null
@@ -1,132 +0,0 @@
-{ alsa-lib
-, at-spi2-core
-, cmake
-, curl
-, dbus
-, libepoxy
-, fetchFromGitHub
-, freeglut
-, freetype
-, gtk3
-, lib
-, libGL
-, libXcursor
-, libXdmcp
-, libXext
-, libXinerama
-, libXrandr
-, libXtst
-, libdatrie
-, libjack2
-, libpsl
-, libselinux
-, libsepol
-, libsysprof-capture
-, libthai
-, libuuid
-, libxkbcommon
-, lv2
-, pcre
-, pcre2
-, pkg-config
-, python3
-, sqlite
-, gcc11Stdenv
-, webkitgtk
-}:
-let
-  # JUCE version in submodules is incompatible with GCC12
-  # See here: https://forum.juce.com/t/build-fails-on-fedora-wrong-c-version/50902/2
-  stdenv = gcc11Stdenv;
-in
-stdenv.mkDerivation rec {
-  pname = "CHOWTapeModel";
-  version = "2.11.4";
-
-  src = fetchFromGitHub {
-    owner = "jatinchowdhury18";
-    repo = "AnalogTapeModel";
-    rev = "v${version}";
-    sha256 = "sha256-WriHi68Y6hAsrwE+74JtVlAKUR9lfTczj6UK9h2FOGM=";
-    fetchSubmodules = true;
-  };
-
-  nativeBuildInputs = [ pkg-config cmake ];
-
-  buildInputs = [
-    alsa-lib
-    at-spi2-core
-    curl
-    dbus
-    libepoxy
-    freeglut
-    freetype
-    gtk3
-    libGL
-    libXcursor
-    libXdmcp
-    libXext
-    libXinerama
-    libXrandr
-    libXtst
-    libdatrie
-    libjack2
-    libpsl
-    libselinux
-    libsepol
-    libsysprof-capture
-    libthai
-    libuuid
-    libxkbcommon
-    lv2
-    pcre
-    pcre2
-    python3
-    sqlite
-    webkitgtk
-  ];
-
-  # Link-time-optimization fails without these
-  cmakeFlags = [
-    "-DCMAKE_AR=${stdenv.cc.cc}/bin/gcc-ar"
-    "-DCMAKE_RANLIB=${stdenv.cc.cc}/bin/gcc-ranlib"
-    "-DCMAKE_NM=${stdenv.cc.cc}/bin/gcc-nm"
-  ];
-
-  cmakeBuildType = "Release";
-
-  postPatch = "cd Plugin";
-
-  installPhase = ''
-    mkdir -p $out/lib/lv2 $out/lib/vst3 $out/lib/clap $out/bin $out/share/doc/CHOWTapeModel/
-    cd CHOWTapeModel_artefacts/${cmakeBuildType}
-    cp -r LV2/CHOWTapeModel.lv2 $out/lib/lv2
-    cp -r VST3/CHOWTapeModel.vst3 $out/lib/vst3
-    cp -r CLAP/CHOWTapeModel.clap $out/lib/clap
-    cp Standalone/CHOWTapeModel  $out/bin
-    cp ../../../../Manual/ChowTapeManual.pdf $out/share/doc/CHOWTapeModel/
-  '';
-
-  # JUCE dlopens these, make sure they are in rpath
-  # Otherwise, segfault will happen
-  NIX_LDFLAGS = (toString [
-    "-lX11"
-    "-lXext"
-    "-lXcursor"
-    "-lXinerama"
-    "-lXrandr"
-  ]);
-
-  meta = with lib; {
-    homepage = "https://github.com/jatinchowdhury18/AnalogTapeModel";
-    description =
-      "Physical modelling signal processing for analog tape recording. LV2, VST3, CLAP, and standalone";
-    license = with licenses; [ gpl3Only ];
-    maintainers = with maintainers; [ magnetophon ];
-    platforms = platforms.linux;
-    # error: 'vvtanh' was not declared in this scope; did you mean 'tanh'?
-    # error: no matching function for call to 'juce::dsp::SIMDRegister<double>::SIMDRegister(xsimd::simd_batch_traits<xsimd::batch<double, 2> >::batch_bool_type)'
-    broken = stdenv.isAarch64; # since 2021-12-27 on hydra (update to 2.10): https://hydra.nixos.org/build/162558991
-    mainProgram = "CHOWTapeModel";
-  };
-}
diff --git a/pkgs/applications/audio/ChowCentaur/default.nix b/pkgs/applications/audio/ChowCentaur/default.nix
deleted file mode 100644
index 80f5768dc1578..0000000000000
--- a/pkgs/applications/audio/ChowCentaur/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, cairo, libxkbcommon
-, xcbutilcursor, xcbutilkeysyms, xcbutil, libXrandr, libXinerama, libXcursor
-, alsa-lib, libjack2, lv2, gcc-unwrapped }:
-
-stdenv.mkDerivation rec {
-  pname = "ChowCentaur";
-  version = "1.4.0";
-
-  src = fetchFromGitHub {
-    owner = "jatinchowdhury18";
-    repo = "KlonCentaur";
-    rev = "v${version}";
-    sha256 = "0mrzlf4a6f25xd7z9xanpyq7ybb4al01dzpjsgi0jkmlmadyhc4h";
-    fetchSubmodules = true;
-  };
-
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [
-    cairo
-    libxkbcommon
-    xcbutilcursor
-    xcbutilkeysyms
-    xcbutil
-    libXrandr
-    libXinerama
-    libXcursor
-    alsa-lib
-    libjack2
-    lv2
-  ];
-
-  cmakeFlags = [
-    "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
-    "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
-    "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
-  ];
-
-  installPhase = ''
-    mkdir -p $out/lib/lv2 $out/lib/vst3
-    cd ChowCentaur/ChowCentaur_artefacts/Release
-    cp -r LV2/ChowCentaur.lv2 $out/lib/lv2
-    cp -r VST3/ChowCentaur.vst3 $out/lib/vst3
-  '';
-
-  meta = with lib; {
-    description =
-      "Digital emulation of the Klon Centaur guitar pedal using RNNs, Wave Digital Filters, and more";
-    homepage = "https://github.com/jatinchowdhury18/KlonCentaur";
-    license = licenses.bsd3;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ magnetophon ];
-  };
-}
diff --git a/pkgs/applications/audio/ChowKick/default.nix b/pkgs/applications/audio/ChowKick/default.nix
deleted file mode 100644
index 0eec7ea32d32a..0000000000000
--- a/pkgs/applications/audio/ChowKick/default.nix
+++ /dev/null
@@ -1,107 +0,0 @@
-{ alsa-lib
-, at-spi2-core
-, brotli
-, cmake
-, curl
-, dbus
-, libepoxy
-, fetchFromGitHub
-, freeglut
-, freetype
-, gtk2-x11
-, lib
-, libGL
-, libXcursor
-, libXdmcp
-, libXext
-, libXinerama
-, libXrandr
-, libXtst
-, libdatrie
-, libjack2
-, libpsl
-, libselinux
-, libsepol
-, libsysprof-capture
-, libthai
-, libxkbcommon
-, lv2
-, pcre
-, pkg-config
-, python3
-, sqlite
-, stdenv
-, util-linuxMinimal
-, webkitgtk
-}:
-
-stdenv.mkDerivation rec {
-  pname = "ChowKick";
-  version = "1.1.1";
-
-  src = fetchFromGitHub {
-    owner = "Chowdhury-DSP";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0amnp0p7ckbbr9dcbdnld1ryv46kvza2dj8m6hzmi7c1s4df8x5q";
-    fetchSubmodules = true;
-  };
-
-  nativeBuildInputs = [
-    pkg-config
-    cmake
-  ];
-  buildInputs = [
-    alsa-lib
-    at-spi2-core
-    brotli
-    curl
-    dbus
-    libepoxy
-    freeglut
-    freetype
-    gtk2-x11
-    libGL
-    libXcursor
-    libXdmcp
-    libXext
-    libXinerama
-    libXrandr
-    libXtst
-    libdatrie
-    libjack2
-    libpsl
-    libselinux
-    libsepol
-    libsysprof-capture
-    libthai
-    libxkbcommon
-    lv2
-    pcre
-    python3
-    sqlite
-    util-linuxMinimal
-    webkitgtk
-  ];
-
-  cmakeFlags = [
-    "-DCMAKE_AR=${stdenv.cc.cc}/bin/gcc-ar"
-    "-DCMAKE_RANLIB=${stdenv.cc.cc}/bin/gcc-ranlib"
-  ];
-
-  installPhase = ''
-    mkdir -p $out/lib/lv2 $out/lib/vst3 $out/bin
-    cp -r ChowKick_artefacts/Release/LV2//${pname}.lv2 $out/lib/lv2
-    cp -r ChowKick_artefacts/Release/VST3/${pname}.vst3 $out/lib/vst3
-    cp ChowKick_artefacts/Release/Standalone/${pname}  $out/bin
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/Chowdhury-DSP/ChowKick";
-    description = "Kick synthesizer based on old-school drum machine circuits";
-    license = with licenses; [ bsd3 ];
-    maintainers = with maintainers; [ magnetophon ];
-    platforms = platforms.linux;
-    mainProgram = "ChowKick";
-  };
-}
diff --git a/pkgs/applications/audio/ChowPhaser/default.nix b/pkgs/applications/audio/ChowPhaser/default.nix
deleted file mode 100644
index a828a1e1d0410..0000000000000
--- a/pkgs/applications/audio/ChowPhaser/default.nix
+++ /dev/null
@@ -1,76 +0,0 @@
-{ alsa-lib, at-spi2-core, cmake, curl, dbus, libepoxy, fetchFromGitHub, freeglut
-, freetype, gcc-unwrapped, gtk3, lib, libGL, libXcursor, libXdmcp, libXext
-, libXinerama, libXrandr, libXtst, libdatrie, libjack2, libpsl, libselinux
-, libsepol, libsysprof-capture, libthai, libxkbcommon, pcre, pkg-config
-, python3, sqlite, stdenv }:
-
-stdenv.mkDerivation rec {
-  pname = "ChowPhaser";
-  version = "1.1.1";
-
-  src = fetchFromGitHub {
-    owner = "jatinchowdhury18";
-    repo = "ChowPhaser";
-    rev = "v${version}";
-    fetchSubmodules = true;
-    sha256 = "sha256-9wo7ZFMruG3QNvlpILSvrFh/Sx6J1qnlWc8+aQyS4tQ=";
-  };
-
-  nativeBuildInputs = [ pkg-config cmake ];
-
-  buildInputs = [
-    alsa-lib
-    at-spi2-core
-    curl
-    dbus
-    libepoxy
-    freeglut
-    freetype
-    gtk3
-    libGL
-    libXcursor
-    libXdmcp
-    libXext
-    libXinerama
-    libXrandr
-    libXtst
-    libdatrie
-    libjack2
-    libpsl
-    libselinux
-    libsepol
-    libsysprof-capture
-    libthai
-    libxkbcommon
-    pcre
-    python3
-    sqlite
-    gcc-unwrapped
-  ];
-
-  cmakeFlags = [
-    "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
-    "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
-    "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
-  ];
-
-  installPhase = ''
-    mkdir -p $out/lib/lv2 $out/lib/vst3 $out/bin $out/share/doc/ChowPhaser/
-    cd ChowPhaserMono_artefacts/Release
-    cp libChowPhaserMono_SharedCode.a  $out/lib
-    cp -r VST3/ChowPhaserMono.vst3 $out/lib/vst3
-    cp Standalone/ChowPhaserMono  $out/bin
-    cd ../../ChowPhaserStereo_artefacts/Release
-    cp libChowPhaserStereo_SharedCode.a  $out/lib
-    cp -r VST3/ChowPhaserStereo.vst3 $out/lib/vst3
-    cp Standalone/ChowPhaserStereo  $out/bin
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/jatinchowdhury18/ChowPhaser";
-    description = "Phaser effect based loosely on the Schulte Compact Phasing 'A'";
-    license = with licenses; [ bsd3 ];
-    maintainers = with maintainers; [ magnetophon ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/audio/FIL-plugins/default.nix b/pkgs/applications/audio/FIL-plugins/default.nix
deleted file mode 100644
index d5f12addf8596..0000000000000
--- a/pkgs/applications/audio/FIL-plugins/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, ladspaH
-}:
-
-stdenv.mkDerivation rec {
-  pname = "FIL-plugins";
-  version = "0.3.0";
-
-  src = fetchurl {
-    url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
-    hash = "sha256-HAvycSEZZfZwoVp3g7QWcwfbdyZKwWJKBuVmeWTajuk=";
-  };
-
-  buildInputs = [ ladspaH ];
-
-  postPatch = ''
-    substituteInPlace Makefile \
-      --replace /usr/lib/ladspa "$out/lib/ladspa" \
-      --replace g++             "$CXX"
-  '';
-
-  preInstall = ''
-    mkdir -p "$out/lib/ladspa"
-  '';
-
-  meta = {
-    description = "a four-band parametric equaliser, which has the nice property of being stable even while parameters are being changed";
-    longDescription = ''
-      Each section has an active/bypass switch, frequency, bandwidth and gain controls.
-      There is also a global bypass switch and gain control.
-      The 2nd order resonant filters are implemented using a Mitra-Regalia style lattice filter.
-      All switches and controls are internally smoothed, so they can be used 'live' whithout any clicks or zipper noises.
-      This should make this plugin a good candidate for use in systems that allow automation of plugin control ports, such as Ardour, or for stage use.
-    '';
-    version = version;
-    homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/ladspa/index.html";
-    license = lib.licenses.gpl2Plus;
-    maintainers = [ lib.maintainers.magnetophon ];
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/pkgs/applications/audio/LibreArp/default.nix b/pkgs/applications/audio/LibreArp/default.nix
deleted file mode 100644
index 0736745aaaf40..0000000000000
--- a/pkgs/applications/audio/LibreArp/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ stdenv, lib, fetchFromGitLab, cmake, pkg-config, cairo, libxkbcommon
-, xcbutilcursor, xcbutilkeysyms, xcbutil, libXrandr, libXinerama, libXcursor
-, alsa-lib, libjack2, lv2, gcc-unwrapped, curl}:
-
-stdenv.mkDerivation rec {
-  pname = "LibreArp";
-  version = "2.4";
-
-  src = fetchFromGitLab {
-    owner = "LibreArp";
-    repo = "LibreArp";
-    rev = version;
-    hash = "sha256-jEpES68NuHhelUq/L46CxEeadk3LbuPZ72JaGDbw8fg=";
-    fetchSubmodules = true;
-  };
-
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [
-    cairo
-    libxkbcommon
-    xcbutilcursor
-    xcbutilkeysyms
-    xcbutil
-    libXrandr
-    libXinerama
-    libXcursor
-    alsa-lib
-    libjack2
-    lv2
-    curl
-  ];
-
-  cmakeFlags = [
-    "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
-    "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
-    "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
-  ];
-
-  installPhase = ''
-    mkdir -p $out/lib/vst3
-    cd LibreArp_artefacts/Release
-    cp -r VST3/LibreArp.vst3 $out/lib/vst3
-  '';
-
-  meta = with lib; {
-    description =
-      "A pattern-based arpeggio generator plugin.";
-    homepage = "https://librearp.gitlab.io/";
-    license = licenses.gpl3Plus;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ magnetophon ];
-  };
-}
diff --git a/pkgs/applications/audio/LibreArp/lv2.nix b/pkgs/applications/audio/LibreArp/lv2.nix
deleted file mode 100644
index b723683b7ec6b..0000000000000
--- a/pkgs/applications/audio/LibreArp/lv2.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ stdenv, lib, fetchFromGitLab, cmake, pkg-config, cairo, libxkbcommon
-, xcbutilcursor, xcbutilkeysyms, xcbutil, libXrandr, libXinerama, libXcursor
-, alsa-lib, libjack2, lv2, gcc-unwrapped, curl}:
-
-stdenv.mkDerivation rec {
-  pname = "LibreArp-lv2";
-  version = "2.4";
-
-  src = fetchFromGitLab {
-    owner = "LibreArp";
-    repo = "LibreArp";
-    rev = "${version}-lv2";
-    hash = "sha256-x+ZPiU/ZFzrXb8szMS9Ts4JEEyXYpM8CLZHT4lNJWY8=";
-    fetchSubmodules = true;
-  };
-
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [
-    cairo
-    libxkbcommon
-    xcbutilcursor
-    xcbutilkeysyms
-    xcbutil
-    libXrandr
-    libXinerama
-    libXcursor
-    alsa-lib
-    libjack2
-    lv2
-    curl
-  ];
-
-  cmakeFlags = [
-    "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
-    "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
-    "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
-  ];
-
-  installPhase = ''
-    mkdir -p $out/lib/lv2
-    cd LibreArp_artefacts/Release
-    cp -r LV2/LibreArp.lv2 $out/lib/lv2
-  '';
-
-  meta = with lib; {
-    description =
-      "A pattern-based arpeggio generator plugin.";
-    homepage = "https://librearp.gitlab.io/";
-    license = licenses.gpl3Plus;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ magnetophon ];
-  };
-}
diff --git a/pkgs/applications/audio/adlplug/default.nix b/pkgs/applications/audio/adlplug/default.nix
index a5d82b6e00ddd..7cdbaa3b8722b 100644
--- a/pkgs/applications/audio/adlplug/default.nix
+++ b/pkgs/applications/audio/adlplug/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , fmt
diff --git a/pkgs/applications/audio/aether-lv2/default.nix b/pkgs/applications/audio/aether-lv2/default.nix
index 6710aaa87f4e3..afec5763022d3 100644
--- a/pkgs/applications/audio/aether-lv2/default.nix
+++ b/pkgs/applications/audio/aether-lv2/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://dougal-s.github.io/Aether/";
-    description = "An algorithmic reverb LV2 based on Cloudseed";
+    description = "Algorithmic reverb LV2 based on Cloudseed";
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
     license = licenses.mit;
diff --git a/pkgs/applications/audio/alsa-scarlett-gui/default.nix b/pkgs/applications/audio/alsa-scarlett-gui/default.nix
index 9504a5e9521bf..05c409ed72ea6 100644
--- a/pkgs/applications/audio/alsa-scarlett-gui/default.nix
+++ b/pkgs/applications/audio/alsa-scarlett-gui/default.nix
@@ -16,22 +16,28 @@ stdenv.mkDerivation rec {
 
   src = fetchFromGitHub {
     owner = "geoffreybennett";
-    repo = pname;
+    repo = "alsa-scarlett-gui";
     rev = version;
-    sha256 = "sha256-+74JRQn2xwgPHZSrp5b+uny0+aLnsFvx/cOKIdj4J40=";
+    hash = "sha256-+74JRQn2xwgPHZSrp5b+uny0+aLnsFvx/cOKIdj4J40=";
   };
 
   NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated-declarations" ];
 
   makeFlags = [ "DESTDIR=\${out}" "PREFIX=''" ];
   sourceRoot = "${src.name}/src";
+
+  postPatch = ''
+    substituteInPlace file.c \
+      --replace-fail "/usr/sbin/alsactl" "${alsa-utils}/bin/alsactl"
+  '';
+
   nativeBuildInputs = [ pkg-config wrapGAppsHook4 makeWrapper ];
   buildInputs = [ gtk4 alsa-lib openssl ];
   postInstall = ''
     wrapProgram $out/bin/alsa-scarlett-gui --prefix PATH : ${lib.makeBinPath [ alsa-utils ]}
 
     substituteInPlace $out/share/applications/vu.b4.alsa-scarlett-gui.desktop \
-      --replace "Exec=/bin/alsa-scarlett-gui" "Exec=$out/bin/alsa-scarlett-gui"
+      --replace-fail "Exec=/bin/alsa-scarlett-gui" "Exec=$out/bin/alsa-scarlett-gui"
   '';
 
   # causes redefinition of _FORTIFY_SOURCE
diff --git a/pkgs/applications/audio/amarok/default.nix b/pkgs/applications/audio/amarok/default.nix
index e48e27b5cc699..4115dae3aeb34 100644
--- a/pkgs/applications/audio/amarok/default.nix
+++ b/pkgs/applications/audio/amarok/default.nix
@@ -1,23 +1,23 @@
-{ mkDerivation, fetchurl, lib
+{ stdenv, fetchurl, lib
 , extra-cmake-modules, kdoctools
 , qca-qt5, qjson, qtquickcontrols2, qtscript, qtwebengine
 , karchive, kcmutils, kconfig, kdnssd, kguiaddons, kinit, kirigami2, knewstuff, knotifyconfig, ktexteditor, kwindowsystem
-, fftw, phonon, plasma-framework, threadweaver, breeze-icons
+, fftw, phonon, plasma-framework, threadweaver, breeze-icons, wrapQtAppsHook
 , curl, ffmpeg, gdk-pixbuf, libaio, liblastfm, libmtp, loudmouth, lzo, lz4, mariadb-embedded, pcre, snappy, taglib, taglib_extras
 }:
 
-mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "amarok";
-  version = "2.9.71";
+  version = "3.0.0";
 
   src = fetchurl {
-    url = "mirror://kde/unstable/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0kz8wixjmy4yxq2gk11ybswryxb6alfymd3bzcar9xinscllhh3a";
+    url = "mirror://kde/stable/amarok/${finalAttrs.version}/amarok-${finalAttrs.version}.tar.xz";
+    sha256 = "sha256-FKh2eDBfrXagodrKVVpndf+mQuXrvMzs2R9JcJOZLBw=";
   };
 
   outputs = [ "out" "doc" ];
 
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapQtAppsHook ];
 
   propagatedBuildInputs = [
     qca-qt5 qjson qtquickcontrols2 qtscript qtwebengine
@@ -31,8 +31,8 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://amarok.kde.org";
-    description = "A powerful music player with an intuitive interface";
+    description = "Powerful music player with an intuitive interface";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
   };
-}
+})
diff --git a/pkgs/applications/audio/amberol/default.nix b/pkgs/applications/audio/amberol/default.nix
index 6d6946a241673..8ec6c3e6b1ab7 100644
--- a/pkgs/applications/audio/amberol/default.nix
+++ b/pkgs/applications/audio/amberol/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/World/amberol";
-    description = "A small and simple sound and music player";
+    description = "Small and simple sound and music player";
     maintainers = with maintainers; [ linsui ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/ams-lv2/default.nix b/pkgs/applications/audio/ams-lv2/default.nix
index 3d3589de5485c..bf0e3275ca6bb 100644
--- a/pkgs/applications/audio/ams-lv2/default.nix
+++ b/pkgs/applications/audio/ams-lv2/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation  rec {
   '';
 
   meta = with lib; {
-    description = "An LV2 port of the internal modules found in Alsa Modular Synth";
+    description = "LV2 port of the internal modules found in Alsa Modular Synth";
     homepage = "https://github.com/blablack/ams-lv2";
     license = licenses.gpl3;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/applications/audio/ardour/default.nix b/pkgs/applications/audio/ardour/default.nix
index 226aa832f80f1..9aaff5539268f 100644
--- a/pkgs/applications/audio/ardour/default.nix
+++ b/pkgs/applications/audio/ardour/default.nix
@@ -64,14 +64,14 @@
 }:
 stdenv.mkDerivation rec {
   pname = "ardour";
-  version = "8.4";
+  version = "8.6";
 
   # We can't use `fetchFromGitea` here, as attempting to fetch release archives from git.ardour.org
   # result in an empty archive. See https://tracker.ardour.org/view.php?id=7328 for more info.
   src = fetchgit {
     url = "git://git.ardour.org/ardour/ardour.git";
     rev = version;
-    hash = "sha256-6qx/elkj4Kb4YK1JZG/S036WdUO7wEE6/yf4pZQP8J0=";
+    hash = "sha256-sMp24tjtX8fZJWc7dvb+9e6pEflT4ugoOZjDis6/3nM=";
   };
 
   bundledContent = fetchzip {
diff --git a/pkgs/applications/audio/ario/default.nix b/pkgs/applications/audio/ario/default.nix
index b9e14f486b7ab..f34ff19ea04ce 100644
--- a/pkgs/applications/audio/ario/default.nix
+++ b/pkgs/applications/audio/ario/default.nix
@@ -13,7 +13,7 @@
 , libsoup
 , libxml2
 , taglib
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 stdenv.mkDerivation rec {
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     pkg-config
     gettext
     intltool
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
diff --git a/pkgs/applications/audio/artyFX/default.nix b/pkgs/applications/audio/artyFX/default.nix
index f68c6fa5c7dc4..e7c909c966378 100644
--- a/pkgs/applications/audio/artyFX/default.nix
+++ b/pkgs/applications/audio/artyFX/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://openavproductions.com/artyfx/";
-    description = "A LV2 plugin bundle of artistic realtime effects";
+    description = "LV2 plugin bundle of artistic realtime effects";
     license = licenses.gpl2;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/asunder/default.nix b/pkgs/applications/audio/asunder/default.nix
index 8e209a4717faf..2c734acafdcdb 100644
--- a/pkgs/applications/audio/asunder/default.nix
+++ b/pkgs/applications/audio/asunder/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A graphical Audio CD ripper and encoder for Linux";
+    description = "Graphical Audio CD ripper and encoder for Linux";
     mainProgram = "asunder";
     homepage = "http://littlesvr.ca/asunder/index.php";
     license = licenses.gpl2;
diff --git a/pkgs/applications/audio/aucatctl/default.nix b/pkgs/applications/audio/aucatctl/default.nix
index 2914d3f343884..dce352a866885 100644
--- a/pkgs/applications/audio/aucatctl/default.nix
+++ b/pkgs/applications/audio/aucatctl/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
     '';
 
   meta = with lib; {
-    description = "The aucatctl utility sends MIDI messages to control sndiod and/or aucat volumes";
+    description = "Utility that allows to send MIDI messages to control sndiod and/or aucat volumes";
     homepage = "http://www.sndio.org";
     license = licenses.isc;
     maintainers = with maintainers; [ sna ];
diff --git a/pkgs/applications/audio/audacious/default.nix b/pkgs/applications/audio/audacious/default.nix
index 15eff9f8e8b99..beca5afc721da 100644
--- a/pkgs/applications/audio/audacious/default.nix
+++ b/pkgs/applications/audio/audacious/default.nix
@@ -38,10 +38,11 @@ stdenv.mkDerivation rec {
 
   postInstall = lib.optionalString (audacious-plugins != null) ''
     ln -s ${audacious-plugins}/lib/audacious $out/lib
+    ln -s ${audacious-plugins}/share/audacious/Skins $out/share/audacious/
   '';
 
   meta = with lib; {
-    description = "A lightweight and versatile audio player";
+    description = "Lightweight and versatile audio player";
     homepage = "https://audacious-media-player.org/";
     maintainers = with maintainers; [ eelco ramkromberg ttuegel thiagokokada ];
     platforms = with platforms; linux;
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index c0db59b1d2bbd..802fccf29cc18 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , cmake
 , makeWrapper
-, wrapGAppsHook
+, wrapGAppsHook3
 , pkg-config
 , python3
 , gettext
@@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
     pkg-config
     python3
     makeWrapper
-    wrapGAppsHook
+    wrapGAppsHook3
   ] ++ lib.optionals stdenv.isLinux [
     linuxHeaders
   ];
@@ -202,7 +202,7 @@ stdenv.mkDerivation rec {
       # Documentation.
       cc-by-30
     ];
-    maintainers = with maintainers; [ lheckemann veprbl wegank ];
+    maintainers = with maintainers; [ veprbl wegank ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/audio/audio-recorder/default.nix b/pkgs/applications/audio/audio-recorder/default.nix
index 72d31e2966ff5..ebf9eafcb0d3f 100644
--- a/pkgs/applications/audio/audio-recorder/default.nix
+++ b/pkgs/applications/audio/audio-recorder/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl
 , pkg-config, intltool
 , glib, dbus, gtk3, libappindicator-gtk3, gst_all_1
-, librsvg, wrapGAppsHook
+, librsvg, wrapGAppsHook3
 , pulseaudioSupport ? true, libpulseaudio }:
 
 stdenv.mkDerivation rec {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   # https://bugs.launchpad.net/audio-recorder/+bug/1784622
   env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
-  nativeBuildInputs = [ pkg-config intltool wrapGAppsHook ];
+  nativeBuildInputs = [ pkg-config intltool wrapGAppsHook3 ];
 
   buildInputs = [
     glib dbus gtk3 librsvg libappindicator-gtk3
diff --git a/pkgs/applications/audio/autotalent/default.nix b/pkgs/applications/audio/autotalent/default.nix
index ba96aa51d6068..8e77cc352b155 100644
--- a/pkgs/applications/audio/autotalent/default.nix
+++ b/pkgs/applications/audio/autotalent/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://tombaran.info/autotalent.html";
-    description = "A real-time pitch correction LADSPA plugin (no MIDI control)";
+    description = "Real-time pitch correction LADSPA plugin (no MIDI control)";
     license = licenses.gpl2;
     maintainers = [ maintainers.michalrus ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/bambootracker/default.nix b/pkgs/applications/audio/bambootracker/default.nix
index 5f955334fef20..77ee141ef070d 100644
--- a/pkgs/applications/audio/bambootracker/default.nix
+++ b/pkgs/applications/audio/bambootracker/default.nix
@@ -75,7 +75,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers";
+    description = "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;
diff --git a/pkgs/applications/audio/bchoppr/default.nix b/pkgs/applications/audio/bchoppr/default.nix
index 1d1afc0dd940c..fc31d09b2dabf 100644
--- a/pkgs/applications/audio/bchoppr/default.nix
+++ b/pkgs/applications/audio/bchoppr/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/sjaehn/BChoppr";
-    description = "An audio stream chopping LV2 plugin";
+    description = "Audio stream chopping LV2 plugin";
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/beast/patch.patch b/pkgs/applications/audio/beast/patch.patch
deleted file mode 100644
index 9d9f82cf4b4b9..0000000000000
--- a/pkgs/applications/audio/beast/patch.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-Index: beast-0.7.1/shell/Makefile.in
-===================================================================
---- beast-0.7.1.orig/shell/Makefile.in
-+++ beast-0.7.1/shell/Makefile.in
-@@ -859,10 +859,7 @@ check-before: check-installation
- check-installation:
- 	@for p in $(bin_PROGRAMS) ; do					\
- 	  pp="$(DESTDIR)$(bindir)/$$p" ;				\
--	  echo "TEST: test -x \"$$pp\"" ;				\
--	  test -x "$$pp" ||						\
--	    { echo "Failed to verify installation of executable: $$pp";	\
--	      exit 1 ; }						\
-+	  echo "TEST: test -x \"$$pp\" Test disabled" ;				\
- 	done
- # Tell versions [3.59,3.63) of GNU make to not export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
-Index: beast-0.7.1/shell/Makefile.am
-===================================================================
---- beast-0.7.1.orig/shell/Makefile.am
-+++ beast-0.7.1/shell/Makefile.am
-@@ -859,10 +859,7 @@ check-before: check-installation
- check-installation:
- 	@for p in $(bin_PROGRAMS) ; do					\
- 	  pp="$(DESTDIR)$(bindir)/$$p" ;				\
--	  echo "TEST: test -x \"$$pp\"" ;				\
--	  test -x "$$pp" ||						\
--	    { echo "Failed to verify installation of executable: $$pp";	\
--	      exit 1 ; }						\
-+	  echo "TEST: test -x \"$$pp\" Test disabled" ;				\
- 	done
- # Tell versions [3.59,3.63) of GNU make to not export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
-Index: beast-0.7.1/birnet/birnettests.h
-===================================================================
---- beast-0.7.1.orig/birnet/birnettests.h
-+++ beast-0.7.1/birnet/birnettests.h
-@@ -27,6 +27,7 @@
- 
- #include <glib.h>
- #include <string.h>
-+#include <signal.h>
- 
- BIRNET_EXTERN_C_BEGIN();
- 
-Index: beast-0.7.1/tools/bseloopfuncs.c
-===================================================================
---- beast-0.7.1.orig/tools/bseloopfuncs.c
-+++ beast-0.7.1/tools/bseloopfuncs.c
-@@ -21,6 +21,7 @@
- #include <string.h>
- #include <stdio.h>
- #include <math.h>
-+#include <signal.h>
- 
- typedef struct {
-   gdouble score;
---- beast-0.7.1.orig/bse/Makefile.am	2008-06-01 13:12:28.116708321 +0200
-+++ beast-0.7.1/bse/Makefile.am	2008-06-01 13:12:40.000000000 +0200
-@@ -10,7 +10,7 @@
- # need -I$(top_builddir) for <sfi/sficonfig.h>
- # need -I$(srcdir) for "bseserver.h" in .genprc.c
- # need -I. (builddir) for "bsecore.genidl.hh" in bsecore.cc
--INCLUDES += -I$(top_srcdir) -I$(top_builddir) -I$(srcdir) -I. $(BSE_CFLAGS) -DG_DISABLE_DEPRECATED -DG_DISABLE_CONST_RETURNS
-+INCLUDES += -I$(top_srcdir) -I$(top_builddir) -I$(srcdir) -I. $(BSE_CFLAGS) -DG_DISABLE_CONST_RETURNS
- DEFS     += $(strip \
- 	$(patsubst %, -DG_LOG_DOMAIN=\"BSE\" -DBSE_COMPILATION, \
- 	              $(filter $(<F), $(bse_sources) $(bse_sources))) \
---- beast-0.7.1.orig/bse/zintern/Makefile.am	2008-06-01 13:14:25.880028999 +0200
-+++ beast-0.7.1/bse/zintern/Makefile.am	2008-06-01 13:14:38.000000000 +0200
-@@ -4,7 +4,7 @@
- ## GNU Lesser General Public License version 2 or any later version.
- include $(top_srcdir)/Makefile.decl
- 
--INCLUDES += -I$(top_srcdir) -I$(top_builddir) $(BSE_CFLAGS) -DG_DISABLE_DEPRECATED -DG_DISABLE_CONST_RETURNS
-+INCLUDES += -I$(top_srcdir) -I$(top_builddir) $(BSE_CFLAGS) -DG_DISABLE_CONST_RETURNS
- 
- ZFILE_DEFS = $(strip \
- 	wave-mono		$(srcdir)/wave-mono.bse		\
---- a/configure.in	2008-06-01 15:19:46.000000000 +0200
-+++ b/configure.in	2008-06-01 15:27:45.000000000 +0200
-@@ -159,39 +159,33 @@
- dnl # Define package requirements.
- dnl #
- dnl ## include acintltool.m4 to provide IT_PROG_INTLTOOL
--builtin(include, acintltool.m4)dnl
--AC_DEFUN([AC_I18N_REQUIREMENTS],
--[
--    ALL_LINGUAS=`cat "$srcdir/po/LINGUAS" | grep -v '^#' | xargs echo -n `
--    AC_SUBST(ALL_LINGUAS)
--    AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(top_srcdir)/po/LINGUAS'])
--
--    dnl # versioned BEAST gettext domain (po/)
--    BST_GETTEXT_DOMAIN=beast-v$BIN_VERSION    # version without -rcZ
--    AC_SUBST(BST_GETTEXT_DOMAIN)
--    AC_DEFINE_UNQUOTED(BST_GETTEXT_DOMAIN, "$BST_GETTEXT_DOMAIN", [Versioned BEAST gettext domain])
--    GETTEXT_PACKAGE=$BST_GETTEXT_DOMAIN
--    AC_SUBST(GETTEXT_PACKAGE)
--
--    dnl # locale directory for all domains
--    dnl # (AM_GLIB_DEFINE_LOCALEDIR() could do this if it would do AC_SUBST())
--    saved_prefix="$prefix"
--    saved_exec_prefix="$exec_prefix"
--    test "x$prefix" = xNONE && prefix=$ac_default_prefix
--    test "x$exec_prefix" = xNONE && exec_prefix=$prefix
--    if test "x$CATOBJEXT" = "x.mo" ; then
--      beastlocaledir=`eval echo "${libdir}/locale"`
--    else
--      beastlocaledir=`eval echo "${datadir}/locale"`
--    fi
--    exec_prefix="$saved_exec_prefix"
--    prefix="$saved_prefix"
--    AC_SUBST(beastlocaledir)
--
--    dnl # do gettext checks and prepare for intltool
--    AM_GLIB_GNU_GETTEXT
--    IT_PROG_INTLTOOL
--])
-+IT_PROG_INTLTOOL([0.35.0])
-+
-+dnl # versioned BEAST gettext domain (po/)
-+BST_GETTEXT_DOMAIN=beast-v$BIN_VERSION    # version without -rcZ
-+AC_SUBST(BST_GETTEXT_DOMAIN)
-+AC_DEFINE_UNQUOTED(BST_GETTEXT_DOMAIN, "$BST_GETTEXT_DOMAIN", [Versioned BEAST gettext domain])
-+GETTEXT_PACKAGE=$BST_GETTEXT_DOMAIN
-+AC_SUBST(GETTEXT_PACKAGE)
-+
-+dnl # locale directory for all domains
-+dnl # (AM_GLIB_DEFINE_LOCALEDIR() could do this if it would do AC_SUBST())
-+saved_prefix="$prefix"
-+saved_exec_prefix="$exec_prefix"
-+test "x$prefix" = xNONE && prefix=$ac_default_prefix
-+test "x$exec_prefix" = xNONE && exec_prefix=$prefix
-+if test "x$CATOBJEXT" = "x.mo" ; then
-+  beastlocaledir=`eval echo "${libdir}/locale"`
-+else
-+  beastlocaledir=`eval echo "${datadir}/locale"`
-+fi
-+exec_prefix="$saved_exec_prefix"
-+prefix="$saved_prefix"
-+AC_SUBST(beastlocaledir)
-+
-+dnl # do gettext checks and prepare for intltool
-+AM_GLIB_GNU_GETTEXT
-+
- AC_DEFUN([AC_SFI_REQUIREMENTS],
- [
-     dnl # check for GLib libs, libbirnet already provides gthread-2.0 and glib-2.0
-@@ -570,7 +564,6 @@
- AC_BIRNET_REQUIREMENTS
- 
- # Check requirement sets
--AC_I18N_REQUIREMENTS
- AC_SFI_REQUIREMENTS
- AC_BSE_REQUIREMENTS
- AC_BSESCM_REQUIREMENTS
---- a/po/POTFILES.in	2008-06-22 15:12:10.000000000 +0200
-+++ b/po/POTFILES.in	2008-06-22 15:13:28.000000000 +0200
-@@ -131,3 +131,29 @@
- plugins/davxtalstrings.c
- plugins/freeverb/bsefreeverb.c
- tools/bsewavetool.cc
-+
-+beast-gtk/bstgentypes.c
-+birnet/birnetcpu.cc
-+birnet/birnetutils.hh
-+bse/bsebus.genprc.c
-+bse/bsebusmodule.genidl.hh
-+bse/bsecontainer.genprc.c
-+bse/bsecore.genidl.hh
-+bse/bseieee754.h
-+bse/bseladspamodule.c
-+bse/bseparasite.genprc.c
-+bse/bsesong.genprc.c
-+bse/bsesource.genprc.c
-+bse/bsetrack.genprc.c
-+plugins/artscompressor.genidl.hh
-+plugins/bseamplifier.genidl.hh
-+plugins/bsebalance.genidl.hh
-+plugins/bsecontribsampleandhold.genidl.hh
-+plugins/bsenoise.genidl.hh
-+plugins/bsequantizer.genidl.hh
-+plugins/bsesummation.genidl.hh
-+plugins/davbassfilter.genidl.hh
-+plugins/davchorus.genidl.hh
-+plugins/standardguspatchenvelope.genidl.hh
-+plugins/standardsaturator.genidl.hh
-+tests/latency/bselatencytest.genidl.hh
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
index 5f750a885d155..71243f6774603 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
@@ -2,7 +2,7 @@
 , gdk-pixbuf, glib, gtk3, lib, xorg
 , libglvnd, libjack2, ffmpeg
 , libxkbcommon, xdg-utils, zlib, pulseaudio
-, wrapGAppsHook, makeWrapper }:
+, wrapGAppsHook3, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "bitwig-studio";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-cF8gVPjM0KUcKOW09uFccp4/lzbUmZcBkVOwr/A/8Yw=";
   };
 
-  nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
+  nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook3 ];
 
   unpackCmd = ''
     mkdir -p root
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A digital audio workstation";
+    description = "Digital audio workstation";
     longDescription = ''
       Bitwig Studio is a multi-platform music-creation system for
       production, performance and DJing, with a focus on flexible
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
index 9d4da64074616..6e0643b270d1f 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
@@ -16,7 +16,7 @@
 , makeWrapper
 , pipewire
 , pulseaudio
-, wrapGAppsHook
+, wrapGAppsHook3
 , xdg-utils
 , xorg
 , zlib
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-gtQ1mhXk0AqGidZk5TCzSR58pD1JJoELMBmELtqyb4U=";
   };
 
-  nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
+  nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook3 ];
 
   unpackCmd = ''
     mkdir -p root
@@ -106,7 +106,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A digital audio workstation";
+    description = "Digital audio workstation";
     longDescription = ''
       Bitwig Studio is a multi-platform music-creation system for
       production, performance and DJing, with a focus on flexible
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
index d6bb4edfabd26..92ee1de47e7c7 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
@@ -19,7 +19,7 @@
 , pango
 , pipewire
 , pulseaudio
-, wrapGAppsHook
+, wrapGAppsHook3
 , xdg-utils
 , xorg
 , zlib
@@ -27,14 +27,14 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwig-studio";
-  version = "5.1.8";
+  version = "5.1.9";
 
   src = fetchurl {
-    url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
-    sha256 = "sha256-KxNLae/uTYL1m/X+/7wr7hhKfw31NpB9Mw9RzfrTuus=";
+    url = "https://www.bitwig.com/dl/Bitwig%20Studio/${version}/installer_linux/";
+    hash = "sha256-J5kLqXCMnGb0ZMhES6PQIPjN51ptlBGj4Fy8qSzJ6Qg=";
   };
 
-  nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
+  nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook3 ];
 
   unpackCmd = ''
     mkdir -p root
@@ -112,7 +112,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A digital audio workstation";
+    description = "Digital audio workstation";
     longDescription = ''
       Bitwig Studio is a multi-platform music-creation system for
       production, performance and DJing, with a focus on flexible
diff --git a/pkgs/applications/audio/blanket/default.nix b/pkgs/applications/audio/blanket/default.nix
deleted file mode 100644
index 4b08f8cf223ae..0000000000000
--- a/pkgs/applications/audio/blanket/default.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{ lib
-, fetchFromGitHub
-, meson
-, ninja
-, pkg-config
-, wrapGAppsHook4
-, desktop-file-utils
-, appstream-glib
-, python3Packages
-, glib
-, gtk4
-, libadwaita
-, gobject-introspection
-, gst_all_1
-}:
-
-python3Packages.buildPythonApplication rec {
-  pname = "blanket";
-  version = "0.6.0";
-
-  src = fetchFromGitHub {
-    owner = "rafaelmardojai";
-    repo = "blanket";
-    rev = "refs/tags/${version}";
-    sha256 = "sha256-4gthT1x76IfXWkLaLMPtFS4TRlRGk5Enbu/k1jAHzwE=";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    wrapGAppsHook4
-    desktop-file-utils
-    gobject-introspection
-  ];
-
-  buildInputs = [
-    glib
-    gtk4
-    libadwaita
-    gst_all_1.gstreamer
-    gst_all_1.gst-plugins-base
-    gst_all_1.gst-plugins-good
-    gst_all_1.gst-plugins-bad
-  ];
-
-  propagatedBuildInputs = with python3Packages; [
-    pygobject3
-  ];
-
-  format = "other";
-
-  postPatch = ''
-    patchShebangs build-aux/meson/postinstall.py
-    substituteInPlace build-aux/meson/postinstall.py \
-      --replace gtk-update-icon-cache gtk4-update-icon-cache
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/rafaelmardojai/blanket";
-    description = "Listen to different sounds";
-    mainProgram = "blanket";
-    maintainers = with maintainers; [ onny ];
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/audio/bolliedelayxt.lv2/default.nix b/pkgs/applications/audio/bolliedelayxt.lv2/default.nix
index 7ea601dcd923d..5fd5ec43268b7 100644
--- a/pkgs/applications/audio/bolliedelayxt.lv2/default.nix
+++ b/pkgs/applications/audio/bolliedelayxt.lv2/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation  rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A flexible LV2 delay plugin";
+    description = "Flexible LV2 delay plugin";
     homepage = "https://github.com/MrBollie/bolliedelayxt.lv2";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/bristol/default.nix b/pkgs/applications/audio/bristol/default.nix
index fc50691155ecc..96f99e54ffc75 100644
--- a/pkgs/applications/audio/bristol/default.nix
+++ b/pkgs/applications/audio/bristol/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A range of synthesiser, electric piano and organ emulations";
+    description = "Range of synthesiser, electric piano and organ emulations";
     homepage = "https://bristol.sourceforge.net";
     license = licenses.gpl3;
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/audio/brutefir/default.nix b/pkgs/applications/audio/brutefir/default.nix
index 8cb54bf410bf0..47f4648943a1e 100644
--- a/pkgs/applications/audio/brutefir/default.nix
+++ b/pkgs/applications/audio/brutefir/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://torger.se/anders/brutefir.html";
-    description = "A software convolution engine";
+    description = "Software convolution engine";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ auchter ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/audio/buzztrax/default.nix b/pkgs/applications/audio/buzztrax/default.nix
index 85d8fbed7671f..38bb5d68e69b9 100644
--- a/pkgs/applications/audio/buzztrax/default.nix
+++ b/pkgs/applications/audio/buzztrax/default.nix
@@ -7,7 +7,7 @@
 , itstool
 , libtool
 , pkg-config
-, wrapGAppsHook
+, wrapGAppsHook3
 , yelp-tools
 , clutter-gtk
 , gst_all_1
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
     itstool
     libtool
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
     yelp-tools
   ];
 
@@ -65,7 +65,7 @@ stdenv.mkDerivation {
   env.NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
 
   meta = with lib; {
-    description = "Buzztrax is a modular music composer for Linux.";
+    description = "Buzztrax is a modular music composer for Linux";
     homepage = "https://www.buzztrax.org/";
     license = licenses.lgpl21Plus;
     maintainers = [ maintainers.bendlas ];
diff --git a/pkgs/applications/audio/calf/default.nix b/pkgs/applications/audio/calf/default.nix
index ecc43dd10c470..2fa5bdae14587 100644
--- a/pkgs/applications/audio/calf/default.nix
+++ b/pkgs/applications/audio/calf/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://calf-studio-gear.org";
-    description = "A set of high quality open source audio plugins for musicians";
+    description = "Set of high quality open source audio plugins for musicians";
     license = licenses.lgpl2;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/callaudiod/default.nix b/pkgs/applications/audio/callaudiod/default.nix
index 0723bfe7a0f42..2a64a18326c16 100644
--- a/pkgs/applications/audio/callaudiod/default.nix
+++ b/pkgs/applications/audio/callaudiod/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     description = "Daemon for dealing with audio routing during phone calls";
     homepage = "https://gitlab.com/mobian1/callaudiod";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ pacman99 tomfitzhenry ];
+    maintainers = with maintainers; [ pacman99 ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/cantata/default.nix b/pkgs/applications/audio/cantata/default.nix
index 0d5c856252537..a9ce19cfdb811 100644
--- a/pkgs/applications/audio/cantata/default.nix
+++ b/pkgs/applications/audio/cantata/default.nix
@@ -110,7 +110,7 @@ mkDerivation rec {
   cmakeFlags = lib.flatten (map (e: map (f: fstat e.enable f) e.names) options);
 
   meta = with lib; {
-    description = "A graphical client for MPD";
+    description = "Graphical client for MPD";
     mainProgram = "cantata";
     homepage = "https://github.com/cdrummond/cantata";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/audio/caps/default.nix b/pkgs/applications/audio/caps/default.nix
index e0f71fa264619..90b361aeef762 100644
--- a/pkgs/applications/audio/caps/default.nix
+++ b/pkgs/applications/audio/caps/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A selection of LADSPA plugins implementing classic effects";
+    description = "Selection of LADSPA plugins implementing classic effects";
     longDescription = ''
       The C* Audio Plugin Suite is a selection of classic effects,
       unique filters and signal generators.  The digital guitarist
diff --git a/pkgs/applications/audio/cardinal/default.nix b/pkgs/applications/audio/cardinal/default.nix
index 33ad843db529d..654d22233a3b4 100644
--- a/pkgs/applications/audio/cardinal/default.nix
+++ b/pkgs/applications/audio/cardinal/default.nix
@@ -1,5 +1,4 @@
 { stdenv
-, fetchFromGitHub
 , fetchurl
 , cmake
 , dbus
@@ -27,11 +26,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cardinal";
-  version = "24.04";
+  version = "24.05";
 
   src = fetchurl {
     url = "https://github.com/DISTRHO/Cardinal/releases/download/${version}/cardinal+deps-${version}.tar.xz";
-    hash = "sha256-vowDdHAXVZ+HSMoQsvJdzghsJzH+OrSpx6MxPRAgtJA=";
+    hash = "sha256-ZUJI5utUtST+idlL7WKBIs850EpK98cnmO47g8/iZcI=";
   };
 
   prePatch = ''
diff --git a/pkgs/applications/audio/carla/default.nix b/pkgs/applications/audio/carla/default.nix
index 7ba8188546c4d..b13ffdeb24c1d 100644
--- a/pkgs/applications/audio/carla/default.nix
+++ b/pkgs/applications/audio/carla/default.nix
@@ -93,7 +93,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://kx.studio/Applications:Carla";
-    description = "An audio plugin host";
+    description = "Audio plugin host";
     longDescription = ''
       It currently supports LADSPA (including LRDF), DSSI, LV2, VST2/3
       and AU plugin formats, plus GIG, SF2 and SFZ file support.
diff --git a/pkgs/applications/audio/castopod/default.nix b/pkgs/applications/audio/castopod/default.nix
index bd66a6835562d..3f098c3653444 100644
--- a/pkgs/applications/audio/castopod/default.nix
+++ b/pkgs/applications/audio/castopod/default.nix
@@ -7,11 +7,11 @@
 }:
 stdenv.mkDerivation {
   pname = "castopod";
-  version = "1.10.5";
+  version = "1.11.0";
 
   src = fetchurl {
-    url = "https://code.castopod.org/adaures/castopod/uploads/66de724407be8f940af5eb1d633fbbc3/castopod-1.10.5.tar.gz";
-    sha256 = "0ssdgqxqldg2f6ni54k5vlndnjjy9lah47q1crpz5nnkkjgvc96y";
+    url = "https://code.castopod.org/adaures/castopod/uploads/0f1fbf6eb849b208e26b53d930b9e22f/castopod-1.11.0.tar.gz";
+    sha256 = "09l4q8v809jnvgx9vpa1fyjhgqdbbrwkyk591kx5k1gg935rmgnx";
   };
 
   dontBuild = true;
@@ -47,7 +47,7 @@ stdenv.mkDerivation {
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
-    description = "An open-source hosting platform made for podcasters who want to engage and interact with their audience";
+    description = "Open-source hosting platform made for podcasters who want to engage and interact with their audience";
     homepage = "https://castopod.org";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ alexoundos ];
diff --git a/pkgs/applications/audio/caudec/default.nix b/pkgs/applications/audio/caudec/default.nix
index 8b76425f6876f..c1fd7acc90bd1 100644
--- a/pkgs/applications/audio/caudec/default.nix
+++ b/pkgs/applications/audio/caudec/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
    meta = with lib; {
     homepage = "https://caudec.cocatre.net/";
-    description = "A multiprocess audio converter that supports many formats (FLAC, MP3, Ogg Vorbis, Windows codecs and many more)";
+    description = "Multiprocess audio converter that supports many formats (FLAC, MP3, Ogg Vorbis, Windows codecs and many more)";
     license     = licenses.gpl3;
     platforms   = platforms.linux ++ platforms.darwin;
   };
diff --git a/pkgs/applications/audio/cava/default.nix b/pkgs/applications/audio/cava/default.nix
index 23ecf095147fd..ed15a6df8808a 100644
--- a/pkgs/applications/audio/cava/default.nix
+++ b/pkgs/applications/audio/cava/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cava";
-  version = "0.10.1";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     owner = "karlstav";
     repo = "cava";
     rev = version;
-    hash = "sha256-hndlEuKbI8oHvm0dosO0loQAw/U2qasoJ+4K8JG7I2Q=";
+    hash = "sha256-y6RslsU/zmr0Ai/rnr73N3OtjuBcWa3JCwh9P5GkNss=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/audio/cdparanoia/default.nix b/pkgs/applications/audio/cdparanoia/default.nix
index f32772b4a3923..4c861a177846d 100644
--- a/pkgs/applications/audio/cdparanoia/default.nix
+++ b/pkgs/applications/audio/cdparanoia/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://xiph.org/paranoia";
-    description = "A tool and library for reading digital audio from CDs";
+    description = "Tool and library for reading digital audio from CDs";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
     platforms = platforms.unix;
     mainProgram = "cdparanoia";
diff --git a/pkgs/applications/audio/cheesecutter/default.nix b/pkgs/applications/audio/cheesecutter/default.nix
index 8e2877c40c7bb..b1c44f2bebc8b 100644
--- a/pkgs/applications/audio/cheesecutter/default.nix
+++ b/pkgs/applications/audio/cheesecutter/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "A tracker program for composing music for the SID chip";
+    description = "Tracker program for composing music for the SID chip";
     homepage = "https://github.com/theyamo/CheeseCutter/";
     license = licenses.gpl2Plus;
     platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
diff --git a/pkgs/applications/audio/cider/default.nix b/pkgs/applications/audio/cider/default.nix
index b9a688370dcd1..21dd14ddc7ce5 100644
--- a/pkgs/applications/audio/cider/default.nix
+++ b/pkgs/applications/audio/cider/default.nix
@@ -2,11 +2,11 @@
 
 appimageTools.wrapType2 rec {
   pname = "cider";
-  version = "1.6.2";
+  version = "1.6.3";
 
   src = fetchurl {
     url = "https://github.com/ciderapp/Cider/releases/download/v${version}/Cider-${version}.AppImage";
-    sha256 = "sha256-43QmTnFp8raEyZO5NK/UlRM8Ykd0y4iaYlL3MpROmsk=";
+    sha256 = "sha256-NwoV1eeAN0u9VXWpu5mANXhmgqe8u3h7BlsREP1f/pI=";
   };
 
   extraInstallCommands =
@@ -23,7 +23,7 @@ appimageTools.wrapType2 rec {
     '';
 
   meta = with lib; {
-    description = "A new look into listening and enjoying Apple Music in style and performance.";
+    description = "New look into listening and enjoying Apple Music in style and performance";
     homepage = "https://github.com/ciderapp/Cider";
     license = licenses.agpl3Only;
     mainProgram = "cider";
diff --git a/pkgs/applications/audio/clementine/default.nix b/pkgs/applications/audio/clementine/default.nix
index e3558127a61d0..75394a4afcfdc 100644
--- a/pkgs/applications/audio/clementine/default.nix
+++ b/pkgs/applications/audio/clementine/default.nix
@@ -1,7 +1,6 @@
 { lib
 , mkDerivation
 , fetchFromGitHub
-, fetchpatch
 , boost
 , cmake
 , chromaprint
@@ -129,7 +128,7 @@ in mkDerivation {
 
   meta = with lib; {
     homepage = "https://www.clementine-player.org";
-    description = "A multiplatform music player";
+    description = "Multiplatform music player";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.ttuegel ];
diff --git a/pkgs/applications/audio/clerk/default.nix b/pkgs/applications/audio/clerk/default.nix
index fa306d44c0a69..f77b03daac786 100644
--- a/pkgs/applications/audio/clerk/default.nix
+++ b/pkgs/applications/audio/clerk/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An MPD client based on rofi/fzf";
+    description = "MPD client based on rofi/fzf";
     homepage = "https://github.com/carnager/clerk";
     license = licenses.mit;
     maintainers = with maintainers; [ anderspapitto rewine ];
diff --git a/pkgs/applications/audio/cmus/default.nix b/pkgs/applications/audio/cmus/default.nix
index 7448e562ffa60..db32f8548517b 100644
--- a/pkgs/applications/audio/cmus/default.nix
+++ b/pkgs/applications/audio/cmus/default.nix
@@ -8,12 +8,12 @@
 , samplerateSupport ? jackSupport, libsamplerate ? null
 , ossSupport ? false, alsa-oss ? null
 , pulseaudioSupport ? config.pulseaudio or false, libpulseaudio ? null
+, sndioSupport ? false, sndio ? null
 , mprisSupport ? stdenv.isLinux, systemd ? null
 
 # TODO: add these
 #, artsSupport
 #, roarSupport
-#, sndioSupport
 #, sunSupport
 #, waveoutSupport
 
@@ -59,11 +59,11 @@ let
     (mkFlag samplerateSupport "CONFIG_SAMPLERATE=y" libsamplerate)
     (mkFlag ossSupport        "CONFIG_OSS=y"        alsa-oss)
     (mkFlag pulseaudioSupport "CONFIG_PULSE=y"      libpulseaudio)
+    (mkFlag sndioSupport      "CONFIG_SNDIO=y"      sndio)
     (mkFlag mprisSupport      "CONFIG_MPRIS=y"      systemd)
 
     #(mkFlag artsSupport      "CONFIG_ARTS=y")
     #(mkFlag roarSupport      "CONFIG_ROAR=y")
-    #(mkFlag sndioSupport     "CONFIG_SNDIO=y")
     #(mkFlag sunSupport       "CONFIG_SUN=y")
     #(mkFlag waveoutSupport   "CONFIG_WAVEOUT=y")
 
@@ -92,13 +92,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "cmus";
-  version = "2.10.0-unstable-2023-11-05";
+  version = "2.11.0";
 
   src = fetchFromGitHub {
     owner  = "cmus";
     repo   = "cmus";
-    rev    = "23afab39902d3d97c47697196b07581305337529";
-    sha256 = "sha256-pxDIYbeJMoaAuErCghWJpDSh1WbYbhgJ7+ca5WLCrOs=";
+    rev    = "v${version}";
+    hash   = "sha256-kUJC+ORLkYD57mPL/1p5VCm9yiNzVdOZhxp7sVP6oMw=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/audio/cmus/option-debugging.patch b/pkgs/applications/audio/cmus/option-debugging.patch
deleted file mode 100644
index 84115e1480e13..0000000000000
--- a/pkgs/applications/audio/cmus/option-debugging.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Shows build and link errors in configure for ease of debugging which
-options require what.
-diff --git a/scripts/checks.sh b/scripts/checks.sh
-index 64cbbf3..fab4d9b 100644
---- a/scripts/checks.sh
-+++ b/scripts/checks.sh
-@@ -425,7 +425,7 @@ try_compile()
- 		echo "$1" > $__src || exit 1
- 		shift
- 		__cmd="$CC -c $CFLAGS $@ $__src -o $__obj"
--		$CC -c $CFLAGS "$@" $__src -o $__obj 2>/dev/null
-+		$CC -c $CFLAGS "$@" $__src -o $__obj
- 		;;
- 	cxx)
- 		__src=`tmp_file prog.cc`
-@@ -433,7 +433,7 @@ try_compile()
- 		echo "$1" > $__src || exit 1
- 		shift
- 		__cmd="$CXX -c $CXXFLAGS $@ $__src -o $__obj"
--		$CXX -c $CXXFLAGS "$@" $__src -o $__obj 2>/dev/null
-+		$CXX -c $CXXFLAGS "$@" $__src -o $__obj
- 		;;
- 	esac
- 	return $?
-@@ -451,7 +451,7 @@ try_compile_link()
- 		echo "$1" > $__src || exit 1
- 		shift
- 		__cmd="$CC $__src -o $__exe $CFLAGS $LDFLAGS $@"
--		$CC $__src -o $__exe $CFLAGS $LDFLAGS "$@" 2>/dev/null
-+		$CC $__src -o $__exe $CFLAGS $LDFLAGS "$@"
- 		;;
- 	cxx)
- 		__src=`tmp_file prog.cc`
-@@ -459,7 +459,7 @@ try_compile_link()
- 		echo "$1" > $__src || exit 1
- 		shift
- 		__cmd="$CXX $__src -o $__exe $CXXFLAGS $CXXLDFLAGS $@"
--		$CXX $__src -o $__exe $CXXFLAGS $CXXLDFLAGS "$@" 2>/dev/null
-+		$CXX $__src -o $__exe $CXXFLAGS $CXXLDFLAGS "$@"
- 		;;
- 	esac
- 	return $?
diff --git a/pkgs/applications/audio/cozy/default.nix b/pkgs/applications/audio/cozy/default.nix
index 65cad453f6b73..6777893460877 100644
--- a/pkgs/applications/audio/cozy/default.nix
+++ b/pkgs/applications/audio/cozy/default.nix
@@ -64,7 +64,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A modern audio book player for Linux";
+    description = "Modern audio book player for Linux";
     homepage = "https://cozy.geigi.de/";
     maintainers = with maintainers; [ makefu aleksana ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/csa/default.nix b/pkgs/applications/audio/csa/default.nix
index 0f7ad460a8c69..a861d8b0a4779 100644
--- a/pkgs/applications/audio/csa/default.nix
+++ b/pkgs/applications/audio/csa/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://sourceforge.net/projects/csa/";
-    description = "A group of LADSPA Audio plugins for FM broadcast and more";
+    description = "Group of LADSPA Audio plugins for FM broadcast and more";
     longDescription = ''
       CSA means : Contrôle Signal Audio.
       It contains the following plugins:
diff --git a/pkgs/applications/audio/csound/csound-manual/default.nix b/pkgs/applications/audio/csound/csound-manual/default.nix
index ffb4821d767d1..bb4db74e22ab4 100644
--- a/pkgs/applications/audio/csound/csound-manual/default.nix
+++ b/pkgs/applications/audio/csound/csound-manual/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Csound Canonical Reference Manual";
+    description = "Csound Canonical Reference Manual";
     homepage = "https://github.com/csound/manual";
     license = licenses.fdl12Plus;
     maintainers = with maintainers; [ hlolli ];
diff --git a/pkgs/applications/audio/deadbeef/default.nix b/pkgs/applications/audio/deadbeef/default.nix
index f26fd4903726f..d141a61963659 100644
--- a/pkgs/applications/audio/deadbeef/default.nix
+++ b/pkgs/applications/audio/deadbeef/default.nix
@@ -8,7 +8,7 @@
 , swift-corelibs-libdispatch
 # deadbeef can use either gtk2 or gtk3
 , gtk2Support ? false, gtk2
-, gtk3Support ? true, gtk3, gsettings-desktop-schemas, wrapGAppsHook
+, gtk3Support ? true, gtk3, gsettings-desktop-schemas, wrapGAppsHook3
 # input plugins
 , vorbisSupport ? true, libvorbis
 , mp123Support ? true, libmad
@@ -112,7 +112,7 @@ in clangStdenv.mkDerivation {
     libtool
     pkg-config
   ] ++ optionals gtk3Support [
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/audio/delayarchitect/default.nix b/pkgs/applications/audio/delayarchitect/default.nix
index 3500d51d29529..a3a38c93953f2 100644
--- a/pkgs/applications/audio/delayarchitect/default.nix
+++ b/pkgs/applications/audio/delayarchitect/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/jpcima/DelayArchitect";
-    description = "A visual, musical editor for delay effects";
+    description = "Visual, musical editor for delay effects";
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.all;
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/denemo/default.nix b/pkgs/applications/audio/denemo/default.nix
index ed4460a283226..1a5ce4c77e6e0 100644
--- a/pkgs/applications/audio/denemo/default.nix
+++ b/pkgs/applications/audio/denemo/default.nix
@@ -3,7 +3,7 @@
 , glib, libxml2, librsvg, libsndfile, aubio
 , gtk3, gtksourceview, evince, fluidsynth, rubberband
 , autoreconfHook, gtk-doc
-, portaudio, portmidi, fftw, wrapGAppsHook }:
+, portaudio, portmidi, fftw, wrapGAppsHook3 }:
 
 stdenv.mkDerivation rec {
   pname = "denemo";
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     autoreconfHook
     gtk-doc
-    wrapGAppsHook
+    wrapGAppsHook3
     intltool
     gettext
     pkg-config
diff --git a/pkgs/applications/audio/diopser/default.nix b/pkgs/applications/audio/diopser/default.nix
index 67b95aef923f1..cba5d4615b385 100644
--- a/pkgs/applications/audio/diopser/default.nix
+++ b/pkgs/applications/audio/diopser/default.nix
@@ -75,7 +75,7 @@ in  stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A totally original phase rotation plugin";
+    description = "Totally original phase rotation plugin";
     homepage = "https://github.com/robbert-vdh/diopser";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ magnetophon ];
diff --git a/pkgs/applications/audio/dirt/default.nix b/pkgs/applications/audio/dirt/default.nix
index 4b9be9a080855..6b3ea6320638c 100644
--- a/pkgs/applications/audio/dirt/default.nix
+++ b/pkgs/applications/audio/dirt/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An unimpressive thingie for playing bits of samples with some level of accuracy";
+    description = "Unimpressive thingie for playing bits of samples with some level of accuracy";
     homepage = "https://github.com/tidalcycles/Dirt";
     license = licenses.gpl3;
     maintainers = with maintainers; [ anderspapitto ];
diff --git a/pkgs/applications/audio/dolbybcsoftwaredecode/default.nix b/pkgs/applications/audio/dolbybcsoftwaredecode/default.nix
index fddbfc117bdaf..1e54e25ec98aa 100644
--- a/pkgs/applications/audio/dolbybcsoftwaredecode/default.nix
+++ b/pkgs/applications/audio/dolbybcsoftwaredecode/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Dolby B & C software decoder";
+    description = "Dolby B & C software decoder";
     homepage = "https://sourceforge.net/projects/dolbybcsoftwaredecode/";
     maintainers = with maintainers; [ lorenz ];
 
diff --git a/pkgs/applications/audio/dragonfly-reverb/default.nix b/pkgs/applications/audio/dragonfly-reverb/default.nix
index 59494587157c2..a495e77651b04 100644
--- a/pkgs/applications/audio/dragonfly-reverb/default.nix
+++ b/pkgs/applications/audio/dragonfly-reverb/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/michaelwillis/dragonfly-reverb";
-    description = "A hall-style reverb based on freeverb3 algorithms";
+    description = "Hall-style reverb based on freeverb3 algorithms";
     maintainers = [ maintainers.magnetophon ];
     license = licenses.gpl3Plus;
     platforms = ["x86_64-linux"];
diff --git a/pkgs/applications/audio/drumgizmo/default.nix b/pkgs/applications/audio/drumgizmo/default.nix
index 08183c004fd6e..f7d05198939b7 100644
--- a/pkgs/applications/audio/drumgizmo/default.nix
+++ b/pkgs/applications/audio/drumgizmo/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An LV2 sample based drum plugin";
+    description = "LV2 sample based drum plugin";
     homepage = "https://www.drumgizmo.org";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/drumkv1/default.nix b/pkgs/applications/audio/drumkv1/default.nix
index 8dfb00318c159..73d55c97f56f2 100644
--- a/pkgs/applications/audio/drumkv1/default.nix
+++ b/pkgs/applications/audio/drumkv1/default.nix
@@ -14,7 +14,7 @@ mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
 
   meta = with lib; {
-    description = "An old-school drum-kit sampler synthesizer with stereo fx";
+    description = "Old-school drum-kit sampler synthesizer with stereo fx";
     mainProgram = "drumkv1_jack";
     homepage = "http://drumkv1.sourceforge.net/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/dsf2flac/default.nix b/pkgs/applications/audio/dsf2flac/default.nix
index 2459c1c6929da..0a7eaf0a2dac5 100644
--- a/pkgs/applications/audio/dsf2flac/default.nix
+++ b/pkgs/applications/audio/dsf2flac/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ];
 
   meta = with lib; {
-    description = "A DSD to FLAC transcoding tool";
+    description = "DSD to FLAC transcoding tool";
     homepage = "https://github.com/hank/dsf2flac";
     license = licenses.gpl2;
     maintainers = with maintainers; [ artemist ];
diff --git a/pkgs/applications/audio/eartag/default.nix b/pkgs/applications/audio/eartag/default.nix
index cb5a650a21915..11bd27953f12d 100644
--- a/pkgs/applications/audio/eartag/default.nix
+++ b/pkgs/applications/audio/eartag/default.nix
@@ -15,11 +15,12 @@
 , gtk4
 , librsvg
 , python3Packages
+, blueprint-compiler
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "eartag";
-  version = "0.6.0";
+  version = "0.6.1";
   format = "other";
 
   src = fetchFromGitLab {
@@ -27,7 +28,7 @@ python3Packages.buildPythonApplication rec {
     owner = "World";
     repo = pname;
     rev = version;
-    hash = "sha256-MfffIqxfelwP+9wsFvQfEIMkav7j5LJEHjLPOsuYdtQ=";
+    hash = "sha256-CAJz9p1PJxq3VDxzZEHD860xINCQF722bPaf7psNztY=";
   };
 
   postPatch = ''
@@ -48,6 +49,7 @@ python3Packages.buildPythonApplication rec {
     gettext
     gobject-introspection
     wrapGAppsHook4
+    blueprint-compiler
   ] ++ lib.optional stdenv.isDarwin gtk4; # for gtk4-update-icon-cache
 
   buildInputs = [
diff --git a/pkgs/applications/audio/easyabc/default.nix b/pkgs/applications/audio/easyabc/default.nix
index 9fb792626ac2c..bdc753d0f45e0 100644
--- a/pkgs/applications/audio/easyabc/default.nix
+++ b/pkgs/applications/audio/easyabc/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, fetchPypi, substituteAll, python39, fluidsynth, soundfont-fluid, wrapGAppsHook, abcmidi, abcm2ps, ghostscript }:
+{ lib, fetchFromGitHub, fetchPypi, substituteAll, python39, fluidsynth, soundfont-fluid, wrapGAppsHook3, abcmidi, abcm2ps, ghostscript }:
 
 let
   # requires python39 due to https://stackoverflow.com/a/71902541 https://github.com/jwdj/EasyABC/issues/52
@@ -28,7 +28,7 @@ in python.pkgs.buildPythonApplication {
     hash = "sha256-leC3A4HQMeJNeZXArb3YAYr2mddGPcws618NrRh2Q1Y=";
   };
 
-  nativeBuildInputs = [ wrapGAppsHook ];
+  nativeBuildInputs = [ wrapGAppsHook3 ];
 
   propagatedBuildInputs = with python.pkgs; [
     cx-freeze
diff --git a/pkgs/applications/audio/easyaudiosync/0001-fix-project-name.patch b/pkgs/applications/audio/easyaudiosync/0001-fix-project-name.patch
new file mode 100644
index 0000000000000..ed7a462d02c67
--- /dev/null
+++ b/pkgs/applications/audio/easyaudiosync/0001-fix-project-name.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7065538..b2716e1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -4,7 +4,7 @@ if (VCPKG)
+   include("${CMAKE_SOURCE_DIR}/cmake/vcpkg.cmake")
+ endif ()
+ 
+-project("Easy Audio Sync"
++project("easyaudiosync"
+   VERSION 1.1.1
+   DESCRIPTION "Audio library syncing and conversion utility"
+   HOMEPAGE_URL "https://github.com/complexlogic/EasyAudioSync"
diff --git a/pkgs/applications/audio/easyaudiosync/0002-fix-qt67-deprecated-methods.patch b/pkgs/applications/audio/easyaudiosync/0002-fix-qt67-deprecated-methods.patch
new file mode 100644
index 0000000000000..523c1821a10f2
--- /dev/null
+++ b/pkgs/applications/audio/easyaudiosync/0002-fix-qt67-deprecated-methods.patch
@@ -0,0 +1,21 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index e7befae..8689f13 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -43,11 +43,14 @@ configure_file("${PROJECT_SOURCE_DIR}/translations/languages.hpp.in" "${PROJECT_
+ 
+ # Make lupdate target for Qt 6
+ if (${QT_VERSION} VERSION_GREATER_EQUAL "6")
+-  qt_add_lupdate(${EXECUTABLE_NAME}
++  qt_add_lupdate(
+     TS_FILES ${TS_FILES} "${PROJECT_SOURCE_DIR}/translations/source.ts"
++    SOURCE_TARGETS ${EXECUTABLE_NAME}
+   )
+ endif ()
+-qt_add_translation(QM_FILES "${TS_FILES}")
++qt_add_translations(
++  ${EXECUTABLE_NAME} 
++)
+ foreach (FILE ${QM_FILES})
+   get_filename_component(BASENAME ${FILE} NAME)
+   string(APPEND TRANSLATION_FILES "    <file>${BASENAME}</file>\n")
diff --git a/pkgs/applications/audio/easyaudiosync/0003-fix-darwin-app.patch b/pkgs/applications/audio/easyaudiosync/0003-fix-darwin-app.patch
new file mode 100644
index 0000000000000..f547a20446f34
--- /dev/null
+++ b/pkgs/applications/audio/easyaudiosync/0003-fix-darwin-app.patch
@@ -0,0 +1,35 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index e7befae..e7dc255 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -86,7 +86,6 @@ if (UNIX)
+     )
+   endif ()
+   if (APPLE)
+-    if (DMG)
+       set_target_properties(${EXECUTABLE_NAME} PROPERTIES 
+                             MACOSX_BUNDLE ON
+                             MACOSX_BUNDLE_EXECUTABLE_NAME "${EXECUTABLE_NAME}"
+@@ -94,21 +93,12 @@ if (UNIX)
+                             MACOSX_BUNDLE_ICON_FILE "${EXECUTABLE_NAME}.icns"
+                             MACOSX_BUNDLE_GUI_IDENTIFIER "${RDNS_NAME}"
+                             MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_VERSION}"
+-                            MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_NAME}"
++                            MACOSX_BUNDLE_BUNDLE_NAME "Easy Audio Sync"
+                             MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION}"
+                             MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_VERSION}"
+                             MACOSX_BUNDLE_COPYRIGHT "Public Domain"
+ 
+       )
+-      install(CODE "include(BundleUtilities)\nfixup_bundle(\"${PROJECT_BINARY_DIR}/${EXECUTABLE_NAME}.app\" \"\" \"\")")
+-      add_custom_target(my_install COMMAND ${CMAKE_COMMAND} --build . --target install WORKING_DIRECTORY "${PROJECT_BINARY_DIR}")
+-      add_custom_target(dmg
+-        COMMAND mv "${EXECUTABLE_NAME}.app" "${PROJECT_NAME}.app" # fixup_bundle won't accept app names with spaces so need to manually rename
+-        COMMAND "${MACDEPLOYQT}" "${PROJECT_NAME}.app" -dmg
+-        COMMAND mv "${PROJECT_NAME}.dmg" "${EXECUTABLE_NAME}-${PROJECT_VERSION}-${CMAKE_OSX_ARCHITECTURES}.dmg"
+-        WORKING_DIRECTORY "${PROJECT_BINARY_DIR}")
+-      add_dependencies(dmg my_install)
+-    endif ()
+   else ()
+     install(TARGETS ${EXECUTABLE_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
+     set (DATA_DIR "${CMAKE_INSTALL_PREFIX}/share")
diff --git a/pkgs/applications/audio/easyaudiosync/0004-force-qt6.patch b/pkgs/applications/audio/easyaudiosync/0004-force-qt6.patch
new file mode 100644
index 0000000000000..267f6094039f5
--- /dev/null
+++ b/pkgs/applications/audio/easyaudiosync/0004-force-qt6.patch
@@ -0,0 +1,21 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7065538..1946574 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -19,14 +19,8 @@ set(EXECUTABLE_OUTPUT_PATH "${PROJECT_BINARY_DIR}")
+ set(VS_STARTUP_PROJECT ${EXECUTABLE_NAME})
+ 
+ # Configure options
+-if (WIN32 OR APPLE)
+-  set(QT_VERSION "6")
+-else ()
+-  set(QT_VERSION "5" CACHE STRING "Qt major version to use (5 or 6).")
+-  if (NOT (QT_VERSION STREQUAL "5" OR QT_VERSION STREQUAL "6"))
+-    message(FATAL_ERROR "Unsupported Qt version '${QT_VERSION}'. Only 5 and 6 are supported")
+-  endif ()
+-endif ()
++set(QT_VERSION "6")
++
+ if (APPLE)
+   option(DMG "Make deployable DMG" OFF)
+ endif ()
diff --git a/pkgs/applications/audio/easyaudiosync/default.nix b/pkgs/applications/audio/easyaudiosync/default.nix
new file mode 100644
index 0000000000000..0b910dfb573b8
--- /dev/null
+++ b/pkgs/applications/audio/easyaudiosync/default.nix
@@ -0,0 +1,98 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, cmake
+, qtbase
+, qttools
+, spdlog
+, ffmpeg
+, taglib
+, wrapQtAppsHook
+, makeDesktopItem
+, copyDesktopItems
+}:
+
+stdenv.mkDerivation rec {
+  pname = "easyaudiosync";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "complexlogic";
+    repo = "EasyAudioSync";
+    rev = "v${version}";
+    hash = "sha256-w98tj9BuixPhuDgwn74EYY0gvKH6kbfQmtg030RWRU0=";
+  };
+
+  patches = [
+    ./0001-fix-project-name.patch
+    ./0002-fix-qt67-deprecated-methods.patch
+    ./0003-fix-darwin-app.patch
+    ./0004-force-qt6.patch
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wrapQtAppsHook
+  ] ++ lib.optional stdenv.isLinux copyDesktopItems;
+
+  buildInputs = [
+    qtbase
+    qttools
+    ffmpeg
+    spdlog
+    taglib
+  ];
+
+  installPhase =
+    ''
+      runHook preInstall
+    '' + lib.optionalString stdenv.isDarwin ''
+      mkdir -p $out/Applications
+      mv "easyaudiosync.app" "Easy Audio Sync.app"
+      cp -r "Easy Audio Sync.app" $out/Applications
+    '' + lib.optionalString stdenv.isLinux ''
+      install -Dm755 easyaudiosync $out/bin/easyaudiosync
+
+      for RES in 48 64 128 256; do
+        install -Dm755 "$src/assets/icons/easyaudiosync''${RES}.png" "$out/share/icons/hicolor/''${RES}x''${RES}/apps/easyaudiosync.png"
+      done
+
+      install -Dm755 "$src/assets/icons/easyaudiosync.svg" "$out/share/icons/hicolor/scalable/apps/easyaudiosync.svg"
+    '' + ''
+      runHook postInstall
+    '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "easyaudiosync";
+      exec = "easyaudiosync";
+      icon = "easyaudiosync";
+      desktopName = "Easy Audio Sync";
+      categories = [
+        "Qt"
+        "Audio"
+        "AudioVideo"
+      ];
+      comment = "Audio library syncing and conversion utility";
+    })
+  ];
+
+  meta = with lib; {
+    description = "Audio library syncing and conversion utility";
+    longDescription = ''
+      Easy Audio Sync is an audio library syncing and conversion utility.
+      The intended use is syncing an audio library with many lossless files to a mobile device
+      with limited storage.
+
+      The program's design is inspired by the rsync utility. It supports folder-based
+      source to destination syncing, with added audio transcoding capability, and is
+      GUI-based instead of CLI-based.
+    '';
+    homepage = "https://github.com/complexlogic/EasyAudioSync";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ matteopacini ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/applications/audio/easyeffects/default.nix b/pkgs/applications/audio/easyeffects/default.nix
index 4bb2926b1b4ea..4730df0464d66 100644
--- a/pkgs/applications/audio/easyeffects/default.nix
+++ b/pkgs/applications/audio/easyeffects/default.nix
@@ -112,7 +112,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     changelog = "https://github.com/wwmm/easyeffects/blob/v${version}/CHANGELOG.md";
-    description = "Audio effects for PipeWire applications.";
+    description = "Audio effects for PipeWire applications";
     homepage = "https://github.com/wwmm/easyeffects";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/audio/easytag/default.nix b/pkgs/applications/audio/easytag/default.nix
index 6366721a35653..35ba2666f0b6b 100644
--- a/pkgs/applications/audio/easytag/default.nix
+++ b/pkgs/applications/audio/easytag/default.nix
@@ -1,25 +1,65 @@
-{ lib, stdenv, fetchurl, pkg-config, intltool, gtk3, glib, libid3tag, id3lib, taglib
-, libvorbis, libogg, opusfile, flac, itstool, libxml2, gsettings-desktop-schemas
-, gnome, wrapGAppsHook
+{
+  lib,
+  stdenv,
+  fetchurl,
+  pkg-config,
+  intltool,
+  gtk3,
+  glib,
+  libid3tag,
+  id3lib,
+  taglib,
+  libvorbis,
+  libogg,
+  opusfile,
+  flac,
+  itstool,
+  libxml2,
+  gsettings-desktop-schemas,
+  gnome,
+  wrapGAppsHook3,
+  fetchpatch,
 }:
 
-let
+stdenv.mkDerivation rec {
   pname = "easytag";
   version = "2.4.3";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1mbxnqrw1fwcgraa1bgik25vdzvf97vma5pzknbwbqq5ly9fwlgw";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    hash = "sha256-/FHukqcF48WXnf8WVfdJbv+2i5jxraBUfoy7wDO2fdU=";
   };
 
+  patches = [
+    # https://gitlab.gnome.org/GNOME/easytag/-/merge_requests/8
+    # Borrowed from Gentoo
+    (fetchpatch {
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-sound/easytag/files/easytag-2.4.3-ogg-corruption.patch?id=b175a159c1138702bdfb009ff4d6565019ed3c4a";
+      hash = "sha256-z75dYTEVp1raSFROjpakLeBjF96sgWBxxRB6ut9wYXw=";
+    })
+  ];
+
   NIX_LDFLAGS = "-lid3tag -lz";
 
-  nativeBuildInputs = [ pkg-config intltool itstool libxml2 wrapGAppsHook ];
+  nativeBuildInputs = [
+    pkg-config
+    intltool
+    itstool
+    libxml2
+    wrapGAppsHook3
+  ];
   buildInputs = [
-    gtk3 glib libid3tag id3lib taglib libvorbis libogg opusfile flac
-    gsettings-desktop-schemas gnome.adwaita-icon-theme
+    gtk3
+    glib
+    libid3tag
+    id3lib
+    taglib
+    libvorbis
+    libogg
+    opusfile
+    flac
+    gsettings-desktop-schemas
+    gnome.adwaita-icon-theme
   ];
 
   doCheck = false; # fails 1 out of 9 tests
@@ -36,7 +76,7 @@ in stdenv.mkDerivation rec {
     mainProgram = "easytag";
     homepage = "https://gitlab.gnome.org/GNOME/easytag";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ matteopacini ];
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/applications/audio/ensemble-chorus/default.nix b/pkgs/applications/audio/ensemble-chorus/default.nix
index 7fcf412dd593f..a83719a5e4161 100644
--- a/pkgs/applications/audio/ensemble-chorus/default.nix
+++ b/pkgs/applications/audio/ensemble-chorus/default.nix
@@ -12,6 +12,11 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  patches = [
+    # fix compile error regarding packed attribute in 3rd party juice library
+    ./juice-cxx-packing-fix.diff
+  ];
+
   nativeBuildInputs = [ cmake pkg-config ];
 
   buildInputs = [
diff --git a/pkgs/applications/audio/ensemble-chorus/juice-cxx-packing-fix.diff b/pkgs/applications/audio/ensemble-chorus/juice-cxx-packing-fix.diff
new file mode 100644
index 0000000000000..041f252a81e02
--- /dev/null
+++ b/pkgs/applications/audio/ensemble-chorus/juice-cxx-packing-fix.diff
@@ -0,0 +1,55 @@
+diff --git a/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h b/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h
+index 69a66e4..3e50635 100644
+--- a/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h
++++ b/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h
+@@ -111,18 +111,10 @@ public:
+     forcedinline uint8 getGreen() const noexcept      { return components.g; }

+     forcedinline uint8 getBlue() const noexcept       { return components.b; }

+ 

+-   #if JUCE_GCC

+-    // NB these are here as a workaround because GCC refuses to bind to packed values.

+-    forcedinline uint8& getAlpha() noexcept           { return comps [indexA]; }

+-    forcedinline uint8& getRed() noexcept             { return comps [indexR]; }

+-    forcedinline uint8& getGreen() noexcept           { return comps [indexG]; }

+-    forcedinline uint8& getBlue() noexcept            { return comps [indexB]; }

+-   #else

+     forcedinline uint8& getAlpha() noexcept           { return components.a; }

+     forcedinline uint8& getRed() noexcept             { return components.r; }

+     forcedinline uint8& getGreen() noexcept           { return components.g; }

+     forcedinline uint8& getBlue() noexcept            { return components.b; }

+-   #endif

+ 

+     //==============================================================================

+     /** Copies another pixel colour over this one.

+@@ -336,21 +328,22 @@ private:
+         uint8 b, g, r, a;

+        #endif

+       #endif

+-    } JUCE_PACKED;

++    };

++

++    // structure must be packed but using the packed attribute causes compile

++    // failures with newer c++ compilers. Verify default packing produces same layout

++    static_assert(sizeof(Components) == 4, "Components struct is not packed");

+ 

+     union

+     {

+         uint32 internal;

+         Components components;

+-       #if JUCE_GCC

+-        uint8 comps[4];  // helper struct needed because gcc does not allow references to packed union members

+-       #endif

+     };

+-}

+-#ifndef DOXYGEN

+- JUCE_PACKED

+-#endif

+-;

++};

++

++// class must be packed but using the packed attribute causes compile

++// failures with newer c++ compilers. Verify default packing produces same layout

++static_assert(sizeof(PixelARGB) == 4, "PixelARGB class is not packed");

+ 

+ 

+ //==============================================================================

diff --git a/pkgs/applications/audio/exact-audio-copy/default.nix b/pkgs/applications/audio/exact-audio-copy/default.nix
index bd5e55bc21061..ec7dad91a8084 100644
--- a/pkgs/applications/audio/exact-audio-copy/default.nix
+++ b/pkgs/applications/audio/exact-audio-copy/default.nix
@@ -76,7 +76,7 @@ symlinkJoin {
   paths = [ wrapper desktopItem ];
 
   meta = with lib; {
-    description = "A precise CD audio grabber for creating perfect quality rips using CD and DVD drives";
+    description = "Precise CD audio grabber for creating perfect quality rips using CD and DVD drives";
     homepage = "https://www.exactaudiocopy.de/";
     changelog = "https://www.exactaudiocopy.de/en/index.php/resources/whats-new/whats-new/";
     license = licenses.unfree;
diff --git a/pkgs/applications/audio/exaile/default.nix b/pkgs/applications/audio/exaile/default.nix
index a2f75fd85a705..4f49564898a9a 100644
--- a/pkgs/applications/audio/exaile/default.nix
+++ b/pkgs/applications/audio/exaile/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub
-, gobject-introspection, makeWrapper, wrapGAppsHook
+, gobject-introspection, makeWrapper, wrapGAppsHook3
 , gtk3, gst_all_1, python3
 , gettext, gnome, help2man, keybinder3, libnotify, librsvg, streamripper, udisks, webkitgtk
 , iconTheme ? gnome.adwaita-icon-theme
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     gobject-introspection
     makeWrapper
-    wrapGAppsHook
+    wrapGAppsHook3
   ] ++ lib.optionals documentationSupport [
     help2man
     python3.pkgs.sphinx
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     gst-plugins-ugly
     gst-libav
   ]) ++ (with python3.pkgs; [
-    bsddb3
+    berkeleydb
     dbus-python
     mutagen
     pygobject3
@@ -92,7 +92,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";
+    description = "Music player with a simple interface and powerful music management capabilities";
     mainProgram = "exaile";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ryneeverett ];
diff --git a/pkgs/applications/audio/famistudio/default.nix b/pkgs/applications/audio/famistudio/default.nix
index 7d738065ce3a3..b858edf29bca5 100644
--- a/pkgs/applications/audio/famistudio/default.nix
+++ b/pkgs/applications/audio/famistudio/default.nix
@@ -1,10 +1,12 @@
 { stdenv
 , lib
 , buildDotnetModule
+, dotnetCorePackages
 , callPackage
 , fetchFromGitHub
 , ffmpeg
 , glfw
+, libglvnd
 , libogg
 , libvorbis
 , makeWrapper
@@ -22,13 +24,13 @@ let
 in
 buildDotnetModule rec {
   pname = "famistudio";
-  version = "4.1.3";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "BleuBleu";
     repo = "FamiStudio";
     rev = "refs/tags/${version}";
-    hash = "sha256-bryxhminkrTVe5qhGeMStZp3NTHBREXrsUlyQkfPkao=";
+    hash = "sha256-WYy/6cWQg3Ayok/eAdnvlWAvdcuhy/sdlWOVvaYcPkc=";
   };
 
   postPatch = let
@@ -85,6 +87,12 @@ buildDotnetModule rec {
 
   projectFile = "FamiStudio/${csprojName}.csproj";
   nugetDeps = ./deps.nix;
+  dotnet-sdk = dotnetCorePackages.sdk_7_0;
+  dotnet-runtime = dotnetCorePackages.runtime_7_0;
+
+  runtimeDeps = lib.optionals stdenv.hostPlatform.isLinux [
+    libglvnd
+  ];
 
   executables = [ "FamiStudio" ];
 
diff --git a/pkgs/applications/audio/faust/faust2.nix b/pkgs/applications/audio/faust/faust2.nix
index 7df2dbf6518ae..a1d1bd06ab759 100644
--- a/pkgs/applications/audio/faust/faust2.nix
+++ b/pkgs/applications/audio/faust/faust2.nix
@@ -23,13 +23,13 @@ with lib.strings;
 
 let
 
-  version = "2.72.14";
+  version = "2.74.6";
 
   src = fetchFromGitHub {
     owner = "grame-cncm";
     repo = "faust";
     rev = version;
-    sha256 = "sha256-RdSXiOYwKsfyrfHEughCeSwa9VFM6/3pMg54yCMpzLU=";
+    sha256 = "sha256-0r7DjTrsNKZ5ZmWoA+Y9OXyJFUiUFZiPQb1skXXWYTw=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/faust/faustlive.nix b/pkgs/applications/audio/faust/faustlive.nix
index 3826bb8b4badf..9051334cb2be1 100644
--- a/pkgs/applications/audio/faust/faustlive.nix
+++ b/pkgs/applications/audio/faust/faustlive.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation rec {
   postPatch = "cd Build";
 
   meta = with lib; {
-    description = "A standalone just-in-time Faust compiler";
+    description = "Standalone just-in-time Faust compiler";
     mainProgram = "FaustLive";
     longDescription = ''
       FaustLive is a standalone just-in-time Faust compiler. It tries to bring
diff --git a/pkgs/applications/audio/faustPhysicalModeling/default.nix b/pkgs/applications/audio/faustPhysicalModeling/default.nix
index bf9ab68f9e888..8b00ca2252a69 100644
--- a/pkgs/applications/audio/faustPhysicalModeling/default.nix
+++ b/pkgs/applications/audio/faustPhysicalModeling/default.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "faustPhysicalModeling";
-  version = "2.72.14";
+  version = "2.74.6";
 
   src = fetchFromGitHub {
     owner = "grame-cncm";
     repo = "faust";
     rev = version;
-    sha256 = "sha256-UBMVU2oAfoAaSQXxZxV+LFq8dyb5dvy/0cCG4XywZVc=";
+    sha256 = "sha256-2qgw7pauDZBvEb5iySNiq2Fq+T+qw+AjVTwxaSQ9Eko=";
   };
 
   buildInputs = [ faust2jaqt faust2lv2 ];
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The physical models included with faust compiled as jack standalone and lv2 instruments";
+    description = "Physical models included with faust compiled as jack standalone and lv2 instruments";
     homepage = "https://github.com/grame-cncm/faust/tree/master-dev/examples/physicalModeling";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/fdkaac/default.nix b/pkgs/applications/audio/fdkaac/default.nix
index 55e014e001fbe..f944d414098f1 100644
--- a/pkgs/applications/audio/fdkaac/default.nix
+++ b/pkgs/applications/audio/fdkaac/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, autoreconfHook, fetchFromGitHub, fetchpatch, fdk_aac }:
+{ lib, stdenv, autoreconfHook, fetchFromGitHub, fdk_aac }:
 
 stdenv.mkDerivation rec {
   pname = "fdkaac";
diff --git a/pkgs/applications/audio/feishin/default.nix b/pkgs/applications/audio/feishin/default.nix
index e0e35bae6df09..98a0c5edebce1 100644
--- a/pkgs/applications/audio/feishin/default.nix
+++ b/pkgs/applications/audio/feishin/default.nix
@@ -3,7 +3,7 @@
   stdenv,
   buildNpmPackage,
   fetchFromGitHub,
-  electron_27,
+  electron_30,
   darwin,
   copyDesktopItems,
   makeDesktopItem,
@@ -11,22 +11,22 @@
 }:
 let
   pname = "feishin";
-  version = "0.6.1";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "jeffvli";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Nj8GwrH49ph14xvJldj5GQR4mlt9unCPEcgLrsH/sx8=";
+    hash = "sha256-eNGHrSF/MgRHh0CVc0l8denZIbAnPXwFCZJZcvF+Xtc=";
   };
 
-  electron = electron_27;
+  electron = electron_30;
 in
 buildNpmPackage {
   inherit pname version;
 
   inherit src;
-  npmDepsHash = "sha256-+pr9fWg/9kxkYMmthtqhjgF6MOomSQxVCO5V8tHHRdE=";
+  npmDepsHash = "sha256-7oh5bl5APAvzb/TxHMUP/saRWLwuP9xqGvn7/RDhFk8=";
 
   npmFlags = [ "--legacy-peer-deps" ];
   makeCacheWritable = true;
@@ -60,7 +60,7 @@ buildNpmPackage {
         inherit version;
 
         src = "${src}/release/app";
-        npmDepsHash = "sha256-MRwKxe1hoFs5bPXT6K/UspSDs9XBdcRJGvxGlTKExp4=";
+        npmDepsHash = "sha256-NgWPr3mctn7f6X2JFsbdNNHkN84RRlLAywqfbyahCQw=";
 
         npmFlags = [ "--ignore-scripts" ];
         dontNpmBuild = true;
diff --git a/pkgs/applications/audio/flac123/default.nix b/pkgs/applications/audio/flac123/default.nix
deleted file mode 100644
index 646e361524d48..0000000000000
--- a/pkgs/applications/audio/flac123/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib, stdenv, fetchurl, autoreconfHook, flac, libao, libogg, popt }:
-
-stdenv.mkDerivation rec {
-  pname = "flac123";
-  version = "0.0.12";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/flac-tools/${pname}-${version}-release.tar.gz";
-    sha256 = "0zg4ahkg7v81za518x32wldf42g0rrvlrcqhrg9sv3li9bayyxhr";
-  };
-
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ flac libao libogg popt ];
-
-  meta = with lib; {
-    homepage = "https://flac-tools.sourceforge.net/";
-    description = "A command-line program for playing FLAC audio files";
-    license = licenses.gpl2Plus;
-    platforms = platforms.all;
-    mainProgram = "flac123";
-  };
-}
diff --git a/pkgs/applications/audio/flacon/default.nix b/pkgs/applications/audio/flacon/default.nix
index a06efc1c78ea4..811e1d806c607 100644
--- a/pkgs/applications/audio/flacon/default.nix
+++ b/pkgs/applications/audio/flacon/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flacon";
-  version = "11.3.0";
+  version = "11.4.0";
 
   src = fetchFromGitHub {
     owner = "flacon";
     repo = "flacon";
     rev = "v${version}";
-    sha256 = "sha256-jzpD8+zhIbOYgSNsoE1Pay+FiPXtRCd6Zz6HHkzWAkY=";
+    sha256 = "sha256-guIGSKmpinDDfTDSCmcJKWysUPdG/gw5oaKmXqgf53o=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
diff --git a/pkgs/applications/audio/fmsynth/default.nix b/pkgs/applications/audio/fmsynth/default.nix
index 57b4bec50adb9..72dbd50b51b42 100644
--- a/pkgs/applications/audio/fmsynth/default.nix
+++ b/pkgs/applications/audio/fmsynth/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
   preInstall = "mkdir -p $out/lib/lv2";
 
   meta = {
-    description = "a flexible 8 operator FM synthesizer for LV2";
+    description = "Flexible 8 operator FM synthesizer for LV2";
     longDescription = ''
       The synth core supports:
 
diff --git a/pkgs/applications/audio/fomp/default.nix b/pkgs/applications/audio/fomp/default.nix
index 8dc86cb8ccf5d..1b99041af286d 100644
--- a/pkgs/applications/audio/fomp/default.nix
+++ b/pkgs/applications/audio/fomp/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://drobilla.net/software/fomp.html";
-    description = "An LV2 port of the MCP, VCO, FIL, and WAH plugins by Fons Adriaensen";
+    description = "LV2 port of the MCP, VCO, FIL, and WAH plugins by Fons Adriaensen";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/freac/default.nix b/pkgs/applications/audio/freac/default.nix
index 226a26b6c138a..6f4df5a433aae 100644
--- a/pkgs/applications/audio/freac/default.nix
+++ b/pkgs/applications/audio/freac/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The fre:ac audio converter project";
+    description = "Audio converter and CD ripper with support for various popular formats and encoders";
     license = licenses.gpl2Plus;
     homepage = "https://www.freac.org/";
     maintainers = with maintainers; [ shamilton ];
diff --git a/pkgs/applications/audio/freewheeling/default.nix b/pkgs/applications/audio/freewheeling/default.nix
index 976421aee7abc..2da35c3adec85 100644
--- a/pkgs/applications/audio/freewheeling/default.nix
+++ b/pkgs/applications/audio/freewheeling/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = {
-    description = "A live looping instrument with JACK and MIDI support";
+    description = "Live looping instrument with JACK and MIDI support";
     longDescription = ''
         Freewheeling allows us to build repetitive grooves
         by sampling and directing loops from within spirited improvisation.
diff --git a/pkgs/applications/audio/friture/default.nix b/pkgs/applications/audio/friture/default.nix
index 60a098bb1ab8b..b42cfb05c7fa0 100644
--- a/pkgs/applications/audio/friture/default.nix
+++ b/pkgs/applications/audio/friture/default.nix
@@ -48,7 +48,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A real-time audio analyzer";
+    description = "Real-time audio analyzer";
     mainProgram = "friture";
     homepage = "https://friture.org/";
     license = licenses.gpl3;
diff --git a/pkgs/applications/audio/ft2-clone/default.nix b/pkgs/applications/audio/ft2-clone/default.nix
index 1f05808536e18..aac0eacad0d45 100644
--- a/pkgs/applications/audio/ft2-clone/default.nix
+++ b/pkgs/applications/audio/ft2-clone/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ft2-clone";
-  version = "1.82";
+  version = "1.84";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "ft2-clone";
     rev = "v${version}";
-    hash = "sha256-qEwPKrgmWYMIwIdgKozG9kghCYp4aoYTX28GqKbuDu4=";
+    hash = "sha256-RPrNpm+0N//CpVtG6cJD+m+0G6ca75hZwdEdHsGadEg=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A highly accurate clone of the classic Fasttracker II software for MS-DOS";
+    description = "Highly accurate clone of the classic Fasttracker II software for MS-DOS";
     homepage = "https://16-bits.org/ft2.php";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/applications/audio/furnace/default.nix b/pkgs/applications/audio/furnace/default.nix
deleted file mode 100644
index cc52c197974d1..0000000000000
--- a/pkgs/applications/audio/furnace/default.nix
+++ /dev/null
@@ -1,121 +0,0 @@
-{ stdenv
-, lib
-, testers
-, furnace
-, fetchFromGitHub
-, cmake
-, pkg-config
-, makeWrapper
-, fftw
-, fmt_8
-, libsndfile
-, libX11
-, rtmidi
-, SDL2
-, zlib
-, withJACK ? stdenv.hostPlatform.isUnix
-, libjack2
-, withGUI ? true
-, Cocoa
-, portaudio
-, alsa-lib
-# Enable GL/GLES rendering
-, withGL ? !stdenv.hostPlatform.isDarwin
-# Use GLES instead of GL, some platforms have better support for one than the other
-, preferGLES ? stdenv.hostPlatform.isAarch
-}:
-
-stdenv.mkDerivation rec {
-  pname = "furnace";
-  version = "0.6.2";
-
-  src = fetchFromGitHub {
-    owner = "tildearrow";
-    repo = "furnace";
-    rev = "v${version}";
-    fetchSubmodules = true;
-    hash = "sha256-Pv9Sx+bdoy8uV5o9i1rUSuokwQVA8EPYFkZXM8Fynmk=";
-  };
-
-  postPatch = lib.optionalString stdenv.hostPlatform.isLinux ''
-    # To offer scaling detection on X11, furnace checks if libX11.so is available via dlopen and uses some of its functions
-    # But it's being linked against a versioned libX11.so.VERSION via SDL, so the unversioned one is not on the rpath
-    substituteInPlace src/gui/scaling.cpp \
-      --replace 'libX11.so' '${lib.getLib libX11}/lib/libX11.so'
-  '';
-
-  nativeBuildInputs = [
-    cmake
-    pkg-config
-  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
-    makeWrapper
-  ];
-
-  buildInputs = [
-    fftw
-    fmt_8
-    libsndfile
-    rtmidi
-    SDL2
-    zlib
-    portaudio
-  ] ++ lib.optionals withJACK [
-    libjack2
-  ] ++ lib.optionals stdenv.hostPlatform.isLinux [
-    # portaudio pkg-config is pulling this in as a link dependency, not set in propagatedBuildInputs
-    alsa-lib
-  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
-    Cocoa
-  ];
-
-  cmakeFlags = [
-    "-DBUILD_GUI=${if withGUI then "ON" else "OFF"}"
-    "-DSYSTEM_FFTW=ON"
-    "-DSYSTEM_FMT=ON"
-    "-DSYSTEM_LIBSNDFILE=ON"
-    "-DSYSTEM_RTMIDI=ON"
-    "-DSYSTEM_SDL2=ON"
-    "-DSYSTEM_ZLIB=ON"
-    "-DSYSTEM_PORTAUDIO=ON"
-    "-DWITH_JACK=${if withJACK then "ON" else "OFF"}"
-    "-DWITH_PORTAUDIO=ON"
-    "-DWITH_RENDER_SDL=ON"
-    "-DWITH_RENDER_OPENGL=${lib.boolToString withGL}"
-    "-DWARNINGS_ARE_ERRORS=ON"
-  ] ++ lib.optionals withGL [
-    "-DUSE_GLES=${lib.boolToString preferGLES}"
-  ];
-
-  postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
-    # Normal CMake install phase on Darwin only installs the binary, the user is expected to use CPack to build a
-    # bundle. That adds alot of overhead for not much benefit (CPack is currently abit broken, and needs impure access
-    # to /usr/bin/hdiutil). So we'll manually assemble & install everything instead.
-
-    mkdir -p $out/{Applications/Furnace.app/Contents/{MacOS,Resources},share/{,doc,licenses}/furnace}
-    mv $out/{bin,Applications/Furnace.app/Contents/MacOS}/furnace
-    makeWrapper $out/{Applications/Furnace.app/Contents/MacOS,bin}/furnace
-
-    install -m644 {../res,$out/Applications/Furnace.app/Contents}/Info.plist
-    install -m644 ../res/icon.icns $out/Applications/Furnace.app/Contents/Resources/Furnace.icns
-    install -m644 {..,$out/share/licenses/furnace}/LICENSE
-    cp -r ../papers $out/share/doc/furnace/
-    cp -r ../demos $out/share/furnace/
-  '';
-
-  passthru = {
-    updateScript = ./update.sh;
-    tests.version = testers.testVersion {
-      package = furnace;
-    };
-  };
-
-  meta = with lib; {
-    description = "Multi-system chiptune tracker compatible with DefleMask modules";
-    homepage = "https://github.com/tildearrow/furnace";
-    changelog = "https://github.com/tildearrow/furnace/releases/tag/v${version}";
-    license = with licenses; [ gpl2Plus ];
-    maintainers = with maintainers; [ OPNA2608 ];
-    platforms = platforms.all;
-    mainProgram = "furnace";
-  };
-}
diff --git a/pkgs/applications/audio/furnace/update.sh b/pkgs/applications/audio/furnace/update.sh
deleted file mode 100755
index cc2969f350454..0000000000000
--- a/pkgs/applications/audio/furnace/update.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i bash -p common-updater-scripts curl jql
-
-set -eu -o pipefail
-
-# Because upstream uses release tags that don't always sort correctly, query for latest release
-version="$(
-  curl -Ls 'https://api.github.com/repos/tildearrow/furnace/releases/latest' \
-  | jql -r '"tag_name"' \
-  | sed 's/^v//'
-)"
-update-source-version furnace "$version"
diff --git a/pkgs/applications/audio/fverb/default.nix b/pkgs/applications/audio/fverb/default.nix
index 2cd723b73bc9a..6d28b8e88bf9c 100644
--- a/pkgs/applications/audio/fverb/default.nix
+++ b/pkgs/applications/audio/fverb/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A stereo variant of the reverberator by Jon Dattorro, for lv2";
+    description = "Stereo variant of the reverberator by Jon Dattorro, for lv2";
     homepage = "https://github.com/jpcima/fverb";
     license = licenses.bsd2;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/g4music/default.nix b/pkgs/applications/audio/g4music/default.nix
index 0cc1987c356d0..da7e7777af5ff 100644
--- a/pkgs/applications/audio/g4music/default.nix
+++ b/pkgs/applications/audio/g4music/default.nix
@@ -15,14 +15,14 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "g4music";
-  version = "3.5.2";
+  version = "3.6.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "neithern";
     repo = "g4music";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-ljSXTEp+f4HMXhGWDGHdX6whm90Vo5KWOQunU2hHwo8=";
+    hash = "sha256-yNKDTcLunTLhAtOBrjuycw0rrdCSwmhhVyBg3AfMUCQ=";
   };
 
   nativeBuildInputs = [
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A beautiful, fast, fluent, light weight music player written in GTK4";
+    description = "Beautiful, fast, fluent, light weight music player written in GTK4";
     mainProgram = "g4music";
     homepage = "https://gitlab.gnome.org/neithern/g4music";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/audio/gbsplay/default.nix b/pkgs/applications/audio/gbsplay/default.nix
deleted file mode 100644
index 5c7d302346e34..0000000000000
--- a/pkgs/applications/audio/gbsplay/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, installShellFiles, libpulseaudio, nas }:
-
-stdenv.mkDerivation rec {
-  pname = "gbsplay";
-  version = "0.0.97";
-
-  src = fetchFromGitHub {
-    owner = "mmitch";
-    repo = "gbsplay";
-    rev = version;
-    sha256 = "sha256-O4t5OzXcrGoxzSXr0nzc01bItjcp1LvFeWnbdSUDwFU=";
-  };
-
-  configureFlags = [
-    "--without-test" # See mmitch/gbsplay#62
-    "--without-contrib"
-  ];
-
-  nativeBuildInputs = [ installShellFiles ];
-  buildInputs = [ libpulseaudio nas ];
-
-  postInstall = ''
-    installShellCompletion --bash --name gbsplay contrib/gbsplay.bashcompletion
-  '';
-
-  meta = with lib; {
-    description = "Gameboy sound player";
-    license = licenses.gpl1Plus;
-    platforms = [ "i686-linux" "x86_64-linux" ];
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/pkgs/applications/audio/geonkick/default.nix b/pkgs/applications/audio/geonkick/default.nix
index 9b1b5fb7c685f..2ff3c823a7ab7 100644
--- a/pkgs/applications/audio/geonkick/default.nix
+++ b/pkgs/applications/audio/geonkick/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.com/iurie-sw/geonkick";
-    description = "A free software percussion synthesizer";
+    description = "Free software percussion synthesizer";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/giada/default.nix b/pkgs/applications/audio/giada/default.nix
index 7008e6a53155f..2880bce40f8bc 100644
--- a/pkgs/applications/audio/giada/default.nix
+++ b/pkgs/applications/audio/giada/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , fltk
@@ -22,15 +21,15 @@
 , nlohmann_json
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "giada";
   version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "monocasual";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-vTOUS9mI4B3yRNnM2dNCH7jgMuD3ztdhe1FMgXUIt58=";
+    repo = "giada";
+    rev = finalAttrs.version;
+    hash = "sha256-vTOUS9mI4B3yRNnM2dNCH7jgMuD3ztdhe1FMgXUIt58=";
     fetchSubmodules = true;
   };
 
@@ -67,12 +66,12 @@ stdenv.mkDerivation rec {
     libXrandr
   ];
 
-  meta = with lib; {
-    description = "A free, minimal, hardcore audio tool for DJs, live performers and electronic musicians";
+  meta = {
+    description = "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 ];
-    platforms = platforms.all;
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ kashw2 ];
+    platforms = lib.platforms.all;
   };
-}
+})
diff --git a/pkgs/applications/audio/gmpc/default.nix b/pkgs/applications/audio/gmpc/default.nix
index 33930dfb7d2d1..3bd6f3138146c 100644
--- a/pkgs/applications/audio/gmpc/default.nix
+++ b/pkgs/applications/audio/gmpc/default.nix
@@ -16,7 +16,7 @@
 , libICE
 , sqlite
 , hicolor-icon-theme
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 stdenv.mkDerivation rec {
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     sha256 = "0b3bnxf98i5lhjyljvgxgx9xmb6p46cn3a9cccrng14nagri9556";
   };
 
-  nativeBuildInputs = [ pkg-config libtool intltool gob2 vala wrapGAppsHook ];
+  nativeBuildInputs = [ pkg-config libtool intltool gob2 vala wrapGAppsHook3 ];
   buildInputs = [
     glib
     gtk2
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gmpclient.org";
-    description = "A GTK2 frontend for Music Player Daemon";
+    description = "GTK2 frontend for Music Player Daemon";
     license = licenses.gpl2;
     maintainers = [];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/gnome-podcasts/default.nix b/pkgs/applications/audio/gnome-podcasts/default.nix
index 55ffb370d60aa..f5e53a1c7c66a 100644
--- a/pkgs/applications/audio/gnome-podcasts/default.nix
+++ b/pkgs/applications/audio/gnome-podcasts/default.nix
@@ -15,6 +15,7 @@
 , desktop-file-utils
 , dbus
 , openssl
+, glib-networking
 , sqlite
 , gst_all_1
 , wrapGAppsHook4
@@ -22,19 +23,19 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-podcasts";
-  version = "0.6.1";
+  version = "0.7.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "podcasts";
     rev = version;
-    hash = "sha256-LPwCYgAFgUMFQZ0i4ldiuGYGMMWcMqYct3/o7eTIhmU=";
+    hash = "sha256-KCjHT/4AeJ+RXCtawkhs6f4D8NCJotYIPk3tGr5YG9M=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit pname version src;
-    hash = "sha256-n3ZcUhqn1rvvgkBKSKvH0b8wbOCqcBGwpb2OqMe8h0s=";
+    hash = "sha256-XTfKqKs7874ak7Lzscxw8E2qcnJOWMZaaol8TpIB6Vw=";
   };
 
   nativeBuildInputs = [
@@ -56,6 +57,7 @@ stdenv.mkDerivation rec {
     gettext
     dbus
     openssl
+    glib-networking
     sqlite
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-base
@@ -66,13 +68,13 @@ stdenv.mkDerivation rec {
   # tests require network
   doCheck = false;
 
-  meta = with lib; {
+  meta = {
     description = "Listen to your favorite podcasts";
     mainProgram = "gnome-podcasts";
     homepage = "https://apps.gnome.org/Podcasts/";
-    license = licenses.gpl3Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.unix;
+    license = lib.licenses.gpl3Plus;
+    maintainers = lib.teams.gnome.members;
+    platforms = lib.platforms.unix;
     broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/gnome-podcasts.x86_64-darwin
   };
 }
diff --git a/pkgs/applications/audio/go-musicfox/default.nix b/pkgs/applications/audio/go-musicfox/default.nix
index 944b2aa1aef13..243fa8fa1a2a1 100644
--- a/pkgs/applications/audio/go-musicfox/default.nix
+++ b/pkgs/applications/audio/go-musicfox/default.nix
@@ -2,25 +2,26 @@
 , buildGoModule
 , fetchFromGitHub
 , pkg-config
-, alsa-lib
 , flac
+, stdenv
+, alsa-lib
 , nix-update-script
 }:
 
 buildGoModule rec {
   pname = "go-musicfox";
-  version = "4.3.3";
+  version = "4.5.3";
 
   src = fetchFromGitHub {
     owner = "go-musicfox";
     repo = "go-musicfox";
     rev = "v${version}";
-    hash = "sha256-J6R3T92cHFUkKwc+GKm612tVjglP2Tc/kDUmzUMhvio=";
+    hash = "sha256-qf4XAAfWWlHAnNGhXaYpnjj+2z+/lWOHaTyv8R4UDgQ=";
   };
 
   deleteVendor = true;
 
-  vendorHash = "sha256-KSIdBEEvYaYcDIDmzfRO857I8FSN4Ajw6phAPQLYEqg=";
+  vendorHash = "sha256-oz/kVp/Jj2Lmo19UFOn2VPD/iWbSRCbmKy8fK8RdkYs=";
 
   subPackages = [ "cmd/musicfox.go" ];
 
@@ -35,8 +36,9 @@ buildGoModule rec {
   ];
 
   buildInputs = [
-    alsa-lib
     flac
+  ] ++ lib.optionals stdenv.isLinux [
+    alsa-lib
   ];
 
   passthru.updateScript = nix-update-script { };
diff --git a/pkgs/applications/audio/goattracker/default.nix b/pkgs/applications/audio/goattracker/default.nix
index 17373c1d5a526..810b4185330c3 100644
--- a/pkgs/applications/audio/goattracker/default.nix
+++ b/pkgs/applications/audio/goattracker/default.nix
@@ -66,7 +66,7 @@ in stdenv.mkDerivation (finalAttrs: {
   desktopItems = [ desktopItem ];
 
   meta = {
-    description = "A crossplatform music editor for creating Commodore 64 music. Uses reSID library by Dag Lem and supports alternatively HardSID & CatWeasel devices"
+    description = "Crossplatform music editor for creating Commodore 64 music. Uses reSID library by Dag Lem and supports alternatively HardSID & CatWeasel devices"
       + lib.optionalString isStereo " - Stereo version";
     homepage = "https://cadaver.github.io/tools.html";
     downloadPage = "https://sourceforge.net/projects/goattracker2/";
diff --git a/pkgs/applications/audio/goodvibes/default.nix b/pkgs/applications/audio/goodvibes/default.nix
index 111cad65a013d..165bf2b88653d 100644
--- a/pkgs/applications/audio/goodvibes/default.nix
+++ b/pkgs/applications/audio/goodvibes/default.nix
@@ -1,36 +1,44 @@
 { lib
 , stdenv
 , fetchFromGitLab
+, fetchpatch
 , meson
 , ninja
 , pkg-config
 , glib
 , glib-networking
 , gtk3
-, libsoup
+, libsoup_3
 , keybinder3
 , gst_all_1
-, wrapGAppsHook
+, wrapGAppsHook3
 , appstream-glib
 , desktop-file-utils
 }:
 
 stdenv.mkDerivation rec {
   pname = "goodvibes";
-  version = "0.7.9";
+  version = "0.8.0";
 
   src = fetchFromGitLab {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-yXrCE3nsdZP4JHKVslzQafjZ380zC8sZv5TJf8dJqJw=";
+    hash = "sha256-KflLEc6BFA3pBY9HukEm5NluGi2igFNP6joOMdmZ0Ds=";
   };
+  patches = [
+    # Fixes a compilation error
+    (fetchpatch {
+      url = "https://gitlab.com/goodvibes/goodvibes/-/commit/e332f831b91ee068a1a58846d7607b30ab010116.patch";
+      hash = "sha256-PzbTltbD0xWJAytCGg1TAwBLrICP+9QZbCbG1QQ8Qmw=";
+    })
+  ];
 
   nativeBuildInputs = [
     meson
     ninja
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
     appstream-glib
     desktop-file-utils
   ];
@@ -40,7 +48,7 @@ stdenv.mkDerivation rec {
     # for libsoup TLS support
     glib-networking
     gtk3
-    libsoup
+    libsoup_3
     keybinder3
   ] ++ (with gst_all_1; [
     gstreamer
@@ -55,7 +63,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A lightweight internet radio player";
+    description = "Lightweight internet radio player";
     homepage = "https://gitlab.com/goodvibes/goodvibes";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/gpodder/default.nix b/pkgs/applications/audio/gpodder/default.nix
index 80f12aa2d0dc7..0e6178006ccfc 100644
--- a/pkgs/applications/audio/gpodder/default.nix
+++ b/pkgs/applications/audio/gpodder/default.nix
@@ -8,7 +8,7 @@
 , intltool
 , python3
 , python3Packages
-, wrapGAppsHook
+, wrapGAppsHook3
 , xdg-utils
 }:
 
@@ -34,7 +34,7 @@ python3Packages.buildPythonApplication rec {
 
   nativeBuildInputs = [
     intltool
-    wrapGAppsHook
+    wrapGAppsHook3
     glibcLocales
     gobject-introspection
   ];
@@ -87,7 +87,7 @@ python3Packages.buildPythonApplication rec {
   passthru.updateScript = gitUpdater {};
 
   meta = with lib; {
-    description = "A podcatcher written in python";
+    description = "Podcatcher written in python";
     longDescription = ''
       gPodder downloads and manages free audio and video content (podcasts)
       for you. Listen directly on your computer or on your mobile devices.
diff --git a/pkgs/applications/audio/greg/default.nix b/pkgs/applications/audio/greg/default.nix
index 5e6d5e2583ab0..77ed401f6662d 100644
--- a/pkgs/applications/audio/greg/default.nix
+++ b/pkgs/applications/audio/greg/default.nix
@@ -17,7 +17,7 @@ with pythonPackages; buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/manolomartinez/greg";
-    description = "A command-line podcast aggregator";
+    description = "Command-line podcast aggregator";
     mainProgram = "greg";
     license = licenses.gpl3;
     maintainers = with maintainers; [ edwtjo ];
diff --git a/pkgs/applications/audio/gspeech/default.nix b/pkgs/applications/audio/gspeech/default.nix
index f2216ed7d2560..2a253c735e37e 100644
--- a/pkgs/applications/audio/gspeech/default.nix
+++ b/pkgs/applications/audio/gspeech/default.nix
@@ -2,7 +2,7 @@
 , fetchFromGitHub
 , python3
 , gtk3
-, wrapGAppsHook
+, wrapGAppsHook3
 , glibcLocales
 , gobject-introspection
 , gettext
@@ -30,7 +30,7 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   nativeBuildInputs = [
-    wrapGAppsHook
+    wrapGAppsHook3
     gobject-introspection
     pango
     gdk-pixbuf
@@ -68,7 +68,7 @@ python3.pkgs.buildPythonApplication rec {
   strictDeps = false;
 
   meta = with lib; {
-    description = "A minimal GUI for the Text To Speech 'Svox Pico'. Read clipboard or selected text in different languages and manage it : pause, stop, replay";
+    description = "Minimal GUI for the Text To Speech 'Svox Pico'. Read clipboard or selected text in different languages and manage it : pause, stop, replay";
     homepage = "https://github.com/mothsART/gSpeech";
     maintainers = with maintainers; [ mothsart ];
     license = licenses.gpl3;
diff --git a/pkgs/applications/audio/gst123/default.nix b/pkgs/applications/audio/gst123/default.nix
index 37b343f540b41..65d925342be2c 100644
--- a/pkgs/applications/audio/gst123/default.nix
+++ b/pkgs/applications/audio/gst123/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , autoreconfHook
 , pkg-config
-, wrapGAppsHook
+, wrapGAppsHook3
 , gst_all_1
 , gtk3
 , ncurses
@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [
     autoreconfHook
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
diff --git a/pkgs/applications/audio/guitarix/default.nix b/pkgs/applications/audio/guitarix/default.nix
index c1d1cf5571c50..71ac598000daf 100644
--- a/pkgs/applications/audio/guitarix/default.nix
+++ b/pkgs/applications/audio/guitarix/default.nix
@@ -31,7 +31,7 @@
 , sord
 , sratom
 , wafHook
-, wrapGAppsHook
+, wrapGAppsHook3
 , zita-convolver
 , zita-resampler
 , optimizationSupport ? false # Enable support for native CPU extensions
@@ -62,7 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
     pkg-config
     python3
     wafHook
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
@@ -105,7 +105,7 @@ stdenv.mkDerivation (finalAttrs: {
   env.NIX_CFLAGS_COMPILE = toString [ "-fpermissive" ];
 
   meta = with lib; {
-    description = "A virtual guitar amplifier for Linux running with JACK";
+    description = "Virtual guitar amplifier for Linux running with JACK";
     mainProgram = "guitarix";
     longDescription = ''
         guitarix is a virtual guitar amplifier for Linux running with
diff --git a/pkgs/applications/audio/gxplugins-lv2/default.nix b/pkgs/applications/audio/gxplugins-lv2/default.nix
index 847096c38816f..93ae0cbc2e04d 100644
--- a/pkgs/applications/audio/gxplugins-lv2/default.nix
+++ b/pkgs/applications/audio/gxplugins-lv2/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/brummer10/GxPlugins.lv2";
-    description = "A set of extra lv2 plugins from the guitarix project";
+    description = "Set of extra lv2 plugins from the guitarix project";
     maintainers = [ maintainers.magnetophon ];
     license = licenses.gpl3Plus;
   };
diff --git a/pkgs/applications/audio/headset/default.nix b/pkgs/applications/audio/headset/default.nix
index f505bc8c0ecb4..009ce3f0b7033 100644
--- a/pkgs/applications/audio/headset/default.nix
+++ b/pkgs/applications/audio/headset/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple music player for YouTube and Reddit";
+    description = "Simple music player for YouTube and Reddit";
     homepage = "https://headsetapp.co/";
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/helio-workstation/default.nix b/pkgs/applications/audio/helio-workstation/default.nix
index eaaa197a9c6af..dc4bf6333d384 100644
--- a/pkgs/applications/audio/helio-workstation/default.nix
+++ b/pkgs/applications/audio/helio-workstation/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "helio-workstation";
-  version = "3.12";
+  version = "3.13";
 
   src = fetchFromGitHub {
     owner = "helio-fm";
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    sha256 = "sha256-U5F78RlM6+R+Ms00Z3aTh3npkbgL+FhhFtc9OpGvbdY=";
+    sha256 = "sha256-esCulHphPD0gr0dsVBnRTvsGp56vHZmzdbz99mWq9R4=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/audio/helm/default.nix b/pkgs/applications/audio/helm/default.nix
index a7dff6a3ab724..b6331fd213925 100644
--- a/pkgs/applications/audio/helm/default.nix
+++ b/pkgs/applications/audio/helm/default.nix
@@ -49,7 +49,7 @@
 
   meta = with lib; {
     homepage = "http://tytel.org/helm";
-    description = "A free, cross-platform, polyphonic synthesizer";
+    description = "Free, cross-platform, polyphonic synthesizer";
     longDescription = ''
       A free, cross-platform, polyphonic synthesizer.
       Features:
diff --git a/pkgs/applications/audio/helvum/default.nix b/pkgs/applications/audio/helvum/default.nix
index 6e3de0f14bb75..6e8aec5bd9484 100644
--- a/pkgs/applications/audio/helvum/default.nix
+++ b/pkgs/applications/audio/helvum/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A GTK patchbay for pipewire";
+    description = "GTK patchbay for pipewire";
     homepage = "https://gitlab.freedesktop.org/pipewire/helvum";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fufexan ];
diff --git a/pkgs/applications/audio/hivelytracker/default.nix b/pkgs/applications/audio/hivelytracker/default.nix
index 324d0ca362b4c..8ad62eb81a5a4 100644
--- a/pkgs/applications/audio/hivelytracker/default.nix
+++ b/pkgs/applications/audio/hivelytracker/default.nix
@@ -6,7 +6,7 @@
 , SDL_image
 , SDL_ttf
 , gtk3
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
diff --git a/pkgs/applications/audio/hushboard/default.nix b/pkgs/applications/audio/hushboard/default.nix
index 3248ab35b22cb..dbc0a467024cb 100644
--- a/pkgs/applications/audio/hushboard/default.nix
+++ b/pkgs/applications/audio/hushboard/default.nix
@@ -9,7 +9,7 @@
 , pycairo
 , pygobject3
 , six
-, wrapGAppsHook
+, wrapGAppsHook3
 , xlib
 }:
 
@@ -25,7 +25,7 @@ buildPythonApplication {
   };
 
   nativeBuildInputs = [
-    wrapGAppsHook
+    wrapGAppsHook3
     gobject-introspection
   ];
 
diff --git a/pkgs/applications/audio/id3v2/default.nix b/pkgs/applications/audio/id3v2/default.nix
index 6129f25236e6b..b50affb2a95ea 100644
--- a/pkgs/applications/audio/id3v2/default.nix
+++ b/pkgs/applications/audio/id3v2/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A command line editor for id3v2 tags";
+    description = "Command line editor for id3v2 tags";
     homepage = "https://id3v2.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
diff --git a/pkgs/applications/audio/in-formant/default.nix b/pkgs/applications/audio/in-formant/default.nix
index 89e7e876af8ea..a6bcc68bf5a7a 100644
--- a/pkgs/applications/audio/in-formant/default.nix
+++ b/pkgs/applications/audio/in-formant/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A real-time pitch and formant tracking software";
+    description = "Real-time pitch and formant tracking software";
     mainProgram = "in-formant";
     homepage = "https://github.com/in-formant/in-formant";
     license = licenses.asl20;
diff --git a/pkgs/applications/audio/indicator-sound-switcher/default.nix b/pkgs/applications/audio/indicator-sound-switcher/default.nix
index c47aff47fffe5..1a99287348276 100644
--- a/pkgs/applications/audio/indicator-sound-switcher/default.nix
+++ b/pkgs/applications/audio/indicator-sound-switcher/default.nix
@@ -5,7 +5,7 @@
 , gettext
 , gtk3
 , gobject-introspection
-, intltool, wrapGAppsHook, glib
+, intltool, wrapGAppsHook3, glib
 , librsvg
 , libayatana-appindicator
 , libpulseaudio
@@ -32,7 +32,7 @@ python3Packages.buildPythonApplication rec {
   nativeBuildInputs = [
     gettext
     intltool
-    wrapGAppsHook
+    wrapGAppsHook3
     glib
     gdk-pixbuf
   ];
diff --git a/pkgs/applications/audio/infamousPlugins/default.nix b/pkgs/applications/audio/infamousPlugins/default.nix
index 38c8663a53c66..062431bd4080a 100644
--- a/pkgs/applications/audio/infamousPlugins/default.nix
+++ b/pkgs/applications/audio/infamousPlugins/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://ssj71.github.io/infamousPlugins";
-    description = "A collection of open-source LV2 plugins";
+    description = "Collection of open-source LV2 plugins";
     longDescription = ''
       These are audio plugins in the LV2 format, developed for linux. Most are suitable for live use.
       This collection contains:
diff --git a/pkgs/applications/audio/ingen/default.nix b/pkgs/applications/audio/ingen/default.nix
index 81a97d5a054e6..b81201cc83e4f 100644
--- a/pkgs/applications/audio/ingen/default.nix
+++ b/pkgs/applications/audio/ingen/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation  rec {
   '';
 
   meta = with lib; {
-    description = "A modular audio processing system using JACK and LV2 or LADSPA plugins";
+    description = "Modular audio processing system using JACK and LV2 or LADSPA plugins";
     homepage = "http://drobilla.net/software/ingen";
     license = licenses.agpl3Plus;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/applications/audio/jack-capture/default.nix b/pkgs/applications/audio/jack-capture/default.nix
index 62fa23be2e5b8..c3fc09cb088f9 100644
--- a/pkgs/applications/audio/jack-capture/default.nix
+++ b/pkgs/applications/audio/jack-capture/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = with lib; {
-    description = "A program for recording soundfiles with jack";
+    description = "Program for recording soundfiles with jack";
     mainProgram = "jack_capture";
     homepage = "https://github.com/kmatheussen/jack_capture/";
     license = licenses.gpl2;
diff --git a/pkgs/applications/audio/jack-oscrolloscope/default.nix b/pkgs/applications/audio/jack-oscrolloscope/default.nix
index 8cdac43a3882e..ea2d37151c79d 100644
--- a/pkgs/applications/audio/jack-oscrolloscope/default.nix
+++ b/pkgs/applications/audio/jack-oscrolloscope/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple waveform viewer for JACK";
+    description = "Simple waveform viewer for JACK";
     mainProgram = "jack_oscrolloscope";
     homepage = "http://das.nasophon.de/jack_oscrolloscope";
     license = licenses.gpl2;
diff --git a/pkgs/applications/audio/jack-passthrough/default.nix b/pkgs/applications/audio/jack-passthrough/default.nix
index 6126257b35e6e..b73e3035a6706 100644
--- a/pkgs/applications/audio/jack-passthrough/default.nix
+++ b/pkgs/applications/audio/jack-passthrough/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ fmt_9 libjack2 ];
 
   meta = with lib; {
-    description = "A simple app to help with JACK apps that behave strangely.";
+    description = "Simple app to help with JACK apps that behave strangely";
     longDescription = ''
       Creates a JACK passthrough client with an arbitrary name and number of
       ports. Common uses include tricking stubborn applications into creating
diff --git a/pkgs/applications/audio/jacktrip/default.nix b/pkgs/applications/audio/jacktrip/default.nix
index f8fb4cedbc9ff..a7b3624546e0d 100644
--- a/pkgs/applications/audio/jacktrip/default.nix
+++ b/pkgs/applications/audio/jacktrip/default.nix
@@ -11,7 +11,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.2.5";
+  version = "2.3.0";
   pname = "jacktrip";
 
   src = fetchFromGitHub {
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     repo = "jacktrip";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-rZ8oaud+ovJ7t+SGnWe7QbqjQns1EkbbwpdE+rLr6nc=";
+    sha256 = "sha256-MUP+8Hjrj95D5SONIEsweB5j+kgEhLEWTKWBlEWLt94=";
   };
 
   preConfigure = ''
diff --git a/pkgs/applications/audio/jalv/default.nix b/pkgs/applications/audio/jalv/default.nix
index b640b55c5476b..a528a209efa74 100644
--- a/pkgs/applications/audio/jalv/default.nix
+++ b/pkgs/applications/audio/jalv/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation  rec {
   ];
 
   meta = with lib; {
-    description = "A simple but fully featured LV2 host for Jack";
+    description = "Simple but fully featured LV2 host for Jack";
     homepage = "http://drobilla.net/software/jalv";
     license = licenses.isc;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/applications/audio/jamesdsp/default.nix b/pkgs/applications/audio/jamesdsp/default.nix
index 4d2b7cf6dba17..4f9b5c68c859b 100644
--- a/pkgs/applications/audio/jamesdsp/default.nix
+++ b/pkgs/applications/audio/jamesdsp/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     broken = (stdenv.isLinux && stdenv.isAarch64);
-    description = "An audio effect processor for PipeWire clients";
+    description = "Audio effect processor for PipeWire clients";
     mainProgram = "jamesdsp";
     homepage = "https://github.com/Audio4Linux/JDSP4Linux";
     license = lib.licenses.gpl3Only;
diff --git a/pkgs/applications/audio/japa/default.nix b/pkgs/applications/audio/japa/default.nix
index a6ee28cc1498a..ca95624f3ed66 100644
--- a/pkgs/applications/audio/japa/default.nix
+++ b/pkgs/applications/audio/japa/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "A 'perceptual' or 'psychoacoustic' audio spectrum analyser for JACK and ALSA";
+    description = "'perceptual' or 'psychoacoustic' audio spectrum analyser for JACK and ALSA";
     homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/index.html";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/jconvolver/default.nix b/pkgs/applications/audio/jconvolver/default.nix
index 5294ae5f13a18..0abda14b56e63 100644
--- a/pkgs/applications/audio/jconvolver/default.nix
+++ b/pkgs/applications/audio/jconvolver/default.nix
@@ -105,7 +105,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A JACK client and audio file convolver with reverb samples";
+    description = "JACK client and audio file convolver with reverb samples";
     homepage = "https://kokkinizita.linuxaudio.org/linuxaudio/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ orivej ];
diff --git a/pkgs/applications/audio/jmusicbot/default.nix b/pkgs/applications/audio/jmusicbot/default.nix
index 5caf1a472d57d..3bf4d63eec721 100644
--- a/pkgs/applications/audio/jmusicbot/default.nix
+++ b/pkgs/applications/audio/jmusicbot/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "JMusicBot";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchurl {
     url = "https://github.com/jagrosh/MusicBot/releases/download/${version}/JMusicBot-${version}.jar";
-    sha256 = "sha256-JSVrzyCqAp3V5OZ+KJczhWGolPkdaHsPmiqfmhapQMs=";
+    sha256 = "sha256-+0814w4zKNr2TxZ9CS8FxeuTLa71jM+DhrfFvLMFlw0=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/applications/audio/keyfinder-cli/default.nix b/pkgs/applications/audio/keyfinder-cli/default.nix
index 33adb65f5e8ac..9fe910d857691 100644
--- a/pkgs/applications/audio/keyfinder-cli/default.nix
+++ b/pkgs/applications/audio/keyfinder-cli/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
       used to estimate the musical key of many different audio formats.
     '';
     license = licenses.gpl3Plus;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     mainProgram = "keyfinder-cli";
   };
 }
diff --git a/pkgs/applications/audio/kid3/default.nix b/pkgs/applications/audio/kid3/default.nix
index cae02e03e613c..8cc6f6d8ec604 100644
--- a/pkgs/applications/audio/kid3/default.nix
+++ b/pkgs/applications/audio/kid3/default.nix
@@ -95,7 +95,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = {
-    description = "A simple and powerful audio tag editor";
+    description = "Simple and powerful audio tag editor";
     inherit mainProgram;
     homepage = "https://kid3.kde.org/";
     license = lib.licenses.lgpl2Plus;
diff --git a/pkgs/applications/audio/klystrack/default.nix b/pkgs/applications/audio/klystrack/default.nix
index 597ed4bd2cb2b..83c3410a88c16 100644
--- a/pkgs/applications/audio/klystrack/default.nix
+++ b/pkgs/applications/audio/klystrack/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A chiptune tracker";
+    description = "Chiptune tracker";
     homepage = "https://kometbomb.github.io/klystrack";
     license = licenses.mit;
     maintainers = with maintainers; [ suhr ];
diff --git a/pkgs/applications/audio/ladspa-sdk/default.nix b/pkgs/applications/audio/ladspa-sdk/default.nix
index 34f7be934c2ec..de0f07b64fddb 100644
--- a/pkgs/applications/audio/ladspa-sdk/default.nix
+++ b/pkgs/applications/audio/ladspa-sdk/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "The SDK for the LADSPA audio plugin standard";
+    description = "SDK for the LADSPA audio plugin standard";
     longDescription = ''
       The LADSPA SDK, including the ladspa.h API header file,
       ten example LADSPA plugins and
diff --git a/pkgs/applications/audio/lash/default.nix b/pkgs/applications/audio/lash/default.nix
index 6c8ea6528f9ba..090c457d44a86 100644
--- a/pkgs/applications/audio/lash/default.nix
+++ b/pkgs/applications/audio/lash/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation  rec {
   '';
 
   meta = with lib; {
-    description = "A Linux Audio Session Handler";
+    description = "Linux Audio Session Handler";
     longDescription = ''
       Session management system for GNU/Linux audio applications.
     '';
diff --git a/pkgs/applications/audio/ledfx/default.nix b/pkgs/applications/audio/ledfx/default.nix
index bcbe1bc397d3e..f45c7dc3af558 100644
--- a/pkgs/applications/audio/ledfx/default.nix
+++ b/pkgs/applications/audio/ledfx/default.nix
@@ -6,12 +6,12 @@
 
 python3.pkgs.buildPythonPackage rec {
   pname = "ledfx";
-  version = "2.0.96";
+  version = "2.0.99";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nvPHAnoD5j1rneeuMufQkXj8YWXau2zJYug+Avpe87I=";
+    hash = "sha256-pwrAVcIwZ3RDYFMDk80q5aVSqLTQ5weZqgB3GRRu2ig=";
   };
 
   pythonRelaxDeps = true;
@@ -58,6 +58,7 @@ python3.pkgs.buildPythonPackage rec {
     sounddevice
     stupidartnet
     uvloop
+    vnoise
     voluptuous
     zeroconf
   ];
@@ -71,5 +72,6 @@ python3.pkgs.buildPythonPackage rec {
     changelog = "https://github.com/LedFx/LedFx/blob/${version}/CHANGELOG.rst";
     license = licenses.gpl3Only;
     maintainers = teams.c3d2.members;
+    mainProgram = "ledfx";
   };
 }
diff --git a/pkgs/applications/audio/lingot/default.nix b/pkgs/applications/audio/lingot/default.nix
index 3d7339f571d65..4cc31ae421549 100644
--- a/pkgs/applications/audio/lingot/default.nix
+++ b/pkgs/applications/audio/lingot/default.nix
@@ -3,7 +3,7 @@
 , fetchurl
 , pkg-config
 , intltool
-, wrapGAppsHook
+, wrapGAppsHook3
 , gtk3
 , alsa-lib
 , libpulseaudio
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     pkg-config
     intltool
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
diff --git a/pkgs/applications/audio/listenbrainz-mpd/default.nix b/pkgs/applications/audio/listenbrainz-mpd/default.nix
index 9f633fc8d0793..d8bdd4fec98d3 100644
--- a/pkgs/applications/audio/listenbrainz-mpd/default.nix
+++ b/pkgs/applications/audio/listenbrainz-mpd/default.nix
@@ -14,17 +14,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "listenbrainz-mpd";
-  version = "2.3.5";
+  version = "2.3.7";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "elomatreb";
     repo = "listenbrainz-mpd";
     rev = "v${version}";
-    hash = "sha256-z3SVpPCWZqCVXPKbPxZAKGtk8Z/Tf5PULn0dWsKlVrE=";
+    hash = "sha256-xnVhPiHhI7VqkSBBlrKJBpdS6kd51DMlKWVnJIo/OQQ=";
   };
 
-  cargoHash = "sha256-eCdUrxt9edJm6K3f8V8bjgYWMq3mgj/ZfUZYWE3ZBqw=";
+  cargoHash = "sha256-Reglc7UtsFk+VIwg4Q9TIChVrWweuV6yPWxbtTDH6mU=";
 
   nativeBuildInputs = [ pkg-config installShellFiles asciidoctor ];
 
diff --git a/pkgs/applications/audio/littlegptracker/default.nix b/pkgs/applications/audio/littlegptracker/default.nix
index b575f717be747..fad1d3f15cac6 100644
--- a/pkgs/applications/audio/littlegptracker/default.nix
+++ b/pkgs/applications/audio/littlegptracker/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A music tracker similar to lsdj optimised to run on portable game consoles";
+    description = "Music tracker similar to lsdj optimised to run on portable game consoles";
     longDescription = ''
       LittleGPTracker (a.k.a 'The piggy', 'lgpt') is a music tracker optimised
       to run on portable game consoles. It is currently running on Game Park's
diff --git a/pkgs/applications/audio/lollypop/default.nix b/pkgs/applications/audio/lollypop/default.nix
index 3fb5e7efa7981..8b492e09cc5cc 100644
--- a/pkgs/applications/audio/lollypop/default.nix
+++ b/pkgs/applications/audio/lollypop/default.nix
@@ -18,14 +18,15 @@
 , gdk-pixbuf
 , glib
 , pango
-, wrapGAppsHook
+, wrapGAppsHook3
 , lastFMSupport ? true
 , youtubeSupport ? true
+, kid3Support ? true
 }:
 
-python3.pkgs.buildPythonApplication rec  {
+python3.pkgs.buildPythonApplication rec {
   pname = "lollypop";
-  version = "1.4.37";
+  version = "1.4.39";
 
   format = "other";
 
@@ -35,7 +36,7 @@ python3.pkgs.buildPythonApplication rec  {
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    sha256 = "sha256-3GPmGNbbSxvLq0t3F9q1x64BwNQCEvFQWLb0bSO9KUY=";
+    sha256 = "sha256-VPHQwy2+XR9R7toIN5sNFB91ddROlL7Scr8AKLgUzuo=";
   };
 
   nativeBuildInputs = [
@@ -45,35 +46,32 @@ python3.pkgs.buildPythonApplication rec  {
     meson
     ninja
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
-  buildInputs = with gst_all_1; [
-    gdk-pixbuf
-    glib
-    glib-networking
-    gst-libav
-    gst-plugins-bad
-    gst-plugins-base
-    gst-plugins-good
-    gst-plugins-ugly
-    gstreamer
-    gtk3
-    libhandy
-    libsoup_3
-    pango
-    totem-pl-parser
-  ] ++ lib.optional lastFMSupport libsecret;
+  buildInputs = with gst_all_1;
+    [
+      gdk-pixbuf
+      glib
+      glib-networking
+      gst-libav
+      gst-plugins-bad
+      gst-plugins-base
+      gst-plugins-good
+      gst-plugins-ugly
+      gstreamer
+      gtk3
+      libhandy
+      libsoup_3
+      pango
+      totem-pl-parser
+    ] ++ lib.optional lastFMSupport libsecret;
 
-  propagatedBuildInputs = with python3.pkgs; [
-    beautifulsoup4
-    pillow
-    pycairo
-    pygobject3
-  ]
-  ++ lib.optional lastFMSupport pylast
-  ++ lib.optional youtubeSupport youtube-dl
-  ;
+  propagatedBuildInputs = with python3.pkgs;
+    [ beautifulsoup4 pillow pycairo pygobject3 ]
+    ++ lib.optional lastFMSupport pylast
+    ++ lib.optional youtubeSupport youtube-dl
+    ++ lib.optional kid3Support pkgs.kid3;
 
   postPatch = ''
     chmod +x meson_post_install.py
@@ -95,13 +93,11 @@ python3.pkgs.buildPythonApplication rec  {
     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
-  passthru = {
-    updateScript = nix-update-script { };
-  };
+  passthru = { updateScript = nix-update-script { }; };
 
   meta = with lib; {
     changelog = "https://gitlab.gnome.org/World/lollypop/tags/${version}";
-    description = "A modern music player for GNOME";
+    description = "Modern music player for GNOME";
     homepage = "https://gitlab.gnome.org/World/lollypop";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/pkgs/applications/audio/lpd8editor/default.nix b/pkgs/applications/audio/lpd8editor/default.nix
index 4b92417dc694c..4c48ca18ad37f 100644
--- a/pkgs/applications/audio/lpd8editor/default.nix
+++ b/pkgs/applications/audio/lpd8editor/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A linux editor for the Akai LPD8";
+    description = "Linux editor for the Akai LPD8";
     homepage = "https://github.com/charlesfleche/lpd8editor";
     license = licenses.mit;
     maintainers = with maintainers; [ pinpox ];
diff --git a/pkgs/applications/audio/lsp-plugins/default.nix b/pkgs/applications/audio/lsp-plugins/default.nix
index aec55c9437adc..56b508df7f6f6 100644
--- a/pkgs/applications/audio/lsp-plugins/default.nix
+++ b/pkgs/applications/audio/lsp-plugins/default.nix
@@ -1,15 +1,15 @@
-{ lib, stdenv, fetchurl, fetchpatch, pkg-config, makeWrapper
+{ lib, stdenv, fetchurl, pkg-config, makeWrapper
 , libsndfile, jack2
 , libGLU, libGL, lv2, cairo
 , ladspaH, php, libXrandr }:
 
 stdenv.mkDerivation rec {
   pname = "lsp-plugins";
-  version = "1.2.15";
+  version = "1.2.16";
 
   src = fetchurl {
     url = "https://github.com/sadko4u/${pname}/releases/download/${version}/${pname}-src-${version}.tar.gz";
-    sha256 = "sha256-krku+jFGOvLwixNGd+0jBzE/17k/OU0zAePLhnxd864=";
+    sha256 = "sha256-w2BUIF44z78syLroQk2asVXA5bt9P9POiuwxpnlkc8o=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/applications/audio/luppp/default.nix b/pkgs/applications/audio/luppp/default.nix
index 23b084bddb573..3ade4a2ea8f03 100644
--- a/pkgs/applications/audio/luppp/default.nix
+++ b/pkgs/applications/audio/luppp/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://openavproductions.com/luppp/";  # https does not work
-    description = "A music creation tool, intended for live use";
+    description = "Music creation tool, intended for live use";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ prusnak ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/lv2bm/default.nix b/pkgs/applications/audio/lv2bm/default.nix
index 033a7c8cfe706..dd831f024c2a1 100644
--- a/pkgs/applications/audio/lv2bm/default.nix
+++ b/pkgs/applications/audio/lv2bm/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/portalmod/lv2bm";
-    description = "A benchmark tool for LV2 plugins";
+    description = "Benchmark tool for LV2 plugins";
     license = licenses.gpl3;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/lyrebird/default.nix b/pkgs/applications/audio/lyrebird/default.nix
index 5eb2d745cdc32..be12c55596509 100644
--- a/pkgs/applications/audio/lyrebird/default.nix
+++ b/pkgs/applications/audio/lyrebird/default.nix
@@ -2,7 +2,7 @@
 , lib
 , fetchFromGitHub
 , makeDesktopItem
-, wrapGAppsHook
+, wrapGAppsHook3
 , gtk3
 , gobject-introspection
 , sox
@@ -34,7 +34,7 @@ python3Packages.buildPythonApplication rec {
 
   propagatedBuildInputs = with python3Packages; [ toml pygobject3 ];
 
-  nativeBuildInputs = [ wrapGAppsHook gobject-introspection ];
+  nativeBuildInputs = [ wrapGAppsHook3 gobject-introspection ];
 
   buildInputs = [ gtk3 sox ];
 
diff --git a/pkgs/applications/audio/m4acut/default.nix b/pkgs/applications/audio/m4acut/default.nix
index f9612dc210090..44958f25e5e5e 100644
--- a/pkgs/applications/audio/m4acut/default.nix
+++ b/pkgs/applications/audio/m4acut/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ l-smash ];
 
   meta = with lib; {
-    description = "Losslessly & gaplessly cut m4a (AAC in MP4) files.";
+    description = "Losslessly & gaplessly cut m4a (AAC in MP4) files";
     homepage = "https://github.com/nu774/m4acut";
     license = with licenses; [ bsdOriginal zlib ];
     maintainers = [ maintainers.chkno ];
diff --git a/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix b/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
index 36ec1c38ca324..09e87abec0ea3 100644
--- a/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A compressor with character. For jack and lv2";
+    description = "Compressor with character. For jack and lv2";
     homepage = "https://github.com/magnetophon/CharacterCompressor";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix b/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
index 21f5f2206f076..ce90f0f5f1641 100644
--- a/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A group of compressors mixed into a bus, sidechained from that mix bus. For jack and lv2";
+    description = "Group of compressors mixed into a bus, sidechained from that mix bus. For jack and lv2";
     homepage = "https://github.com/magnetophon/CompBus";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix b/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
index a8fecfedb5c37..98fae67d71c52 100644
--- a/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A chorus algorithm that maintains constant and symmetric detuning depth (in cents), regardless of modulation rate. For jack and lv2";
+    description = "Chorus algorithm that maintains constant and symmetric detuning depth (in cents), regardless of modulation rate. For jack and lv2";
     homepage = "https://github.com/magnetophon/constant-detune-chorus";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix b/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
index 168687052dcd5..66f66d2e24483 100644
--- a/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A fast yet clean lookahead limiter for jack and lv2";
+    description = "Fast yet clean lookahead limiter for jack and lv2";
     homepage = "https://magnetophon.github.io/LazyLimiter/";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix b/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
index a89b4e56485e2..0caba36177438 100644
--- a/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A collection of bread and butter compressors";
+    description = "Collection of bread and butter compressors";
     homepage = "https://github.com/magnetophon/faustCompressors";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix b/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
index 51f6baf704243..42163d9879b8b 100644
--- a/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A multiband compressor made from shelving filters.";
+    description = "Multiband compressor made from shelving filters";
     homepage = "https://github.com/magnetophon/shelfMultiBand";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/mda-lv2/default.nix b/pkgs/applications/audio/mda-lv2/default.nix
index 98812bec4d87f..b1f0f5b53c5b7 100644
--- a/pkgs/applications/audio/mda-lv2/default.nix
+++ b/pkgs/applications/audio/mda-lv2/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://drobilla.net/software/mda-lv2.html";
-    description = "An LV2 port of the MDA plugins by Paul Kellett";
+    description = "LV2 port of the MDA plugins by Paul Kellett";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/melmatcheq.lv2/default.nix b/pkgs/applications/audio/melmatcheq.lv2/default.nix
index 55c6e4c185a40..7469b8146f72c 100644
--- a/pkgs/applications/audio/melmatcheq.lv2/default.nix
+++ b/pkgs/applications/audio/melmatcheq.lv2/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/brummer10/MelMatchEQ.lv2";
-    description = "a profiling EQ using a 26 step Mel Frequency Band";
+    description = "Profiling EQ using a 26 step Mel Frequency Band";
     maintainers = with maintainers; [ magnetophon ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/mid2key/default.nix b/pkgs/applications/audio/mid2key/default.nix
index a4794e8a2e901..f17fd476613a5 100644
--- a/pkgs/applications/audio/mid2key/default.nix
+++ b/pkgs/applications/audio/mid2key/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://code.google.com/p/mid2key/";
-    description = "A simple tool which maps midi notes to simulated keystrokes";
+    description = "Simple tool which maps midi notes to simulated keystrokes";
     license = licenses.gpl3;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/midi-visualizer/default.nix b/pkgs/applications/audio/midivisualizer/default.nix
index 907a17eccb301..10a2a5de6a096 100644
--- a/pkgs/applications/audio/midi-visualizer/default.nix
+++ b/pkgs/applications/audio/midivisualizer/default.nix
@@ -20,14 +20,14 @@
 , Kernel
 }:
 
-stdenv.mkDerivation rec {
-  pname = "MIDIVisualizer";
+stdenv.mkDerivation (finalAttrs: {
+  pname = "midivisualizer";
   version = "7.0";
 
   src = fetchFromGitHub {
     owner = "kosua20";
-    repo = pname;
-    rev = "v${version}";
+    repo = "MIDIVisualizer";
+    rev = "v${finalAttrs.version}";
     sha256 = "sha256-wfPSPH+E9cErVvfJZqHttFtjiUYJopM/u6w6NpRHifE=";
   };
 
@@ -65,11 +65,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A small MIDI visualizer tool, using OpenGL";
+    description = "Small MIDI visualizer tool, using OpenGL";
     mainProgram = "MIDIVisualizer";
     homepage = "https://github.com/kosua20/MIDIVisualizer";
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = [ maintainers.ericdallo ];
   };
-}
+})
diff --git a/pkgs/applications/audio/miniaudicle/default.nix b/pkgs/applications/audio/miniaudicle/default.nix
index d0aed09ee8632..f3cd335b47be6 100644
--- a/pkgs/applications/audio/miniaudicle/default.nix
+++ b/pkgs/applications/audio/miniaudicle/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildFlags = [ "linux-${audioBackend}" ];
 
   meta = with lib; {
-    description = "A light-weight integrated development environment for the ChucK digital audio programming language";
+    description = "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/";
diff --git a/pkgs/applications/audio/minidsp/default.nix b/pkgs/applications/audio/minidsp/default.nix
index 5c3da313e3c4f..1ba98f0034813 100644
--- a/pkgs/applications/audio/minidsp/default.nix
+++ b/pkgs/applications/audio/minidsp/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = lib.optionals stdenv.isLinux [pkg-config];
 
   meta = with lib; {
-    description = "A control interface for some MiniDSP products";
+    description = "Control interface for some MiniDSP products";
     homepage = "https://github.com/mrene/minidsp-rs";
     license = licenses.asl20;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/applications/audio/miniplayer/default.nix b/pkgs/applications/audio/miniplayer/default.nix
index e3837baeca048..2d87078b786dc 100644
--- a/pkgs/applications/audio/miniplayer/default.nix
+++ b/pkgs/applications/audio/miniplayer/default.nix
@@ -34,7 +34,7 @@ buildPythonApplication rec {
   # pythonImportsCheck is disabled because this package doesn't expose any modules.
 
   meta = with lib; {
-    description = "A curses-based MPD client with basic functionality that can also display an album art";
+    description = "Curses-based MPD client with basic functionality that can also display an album art";
     homepage = "https://github.com/GuardKenzie/miniplayer";
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
diff --git a/pkgs/applications/audio/mixxx/default.nix b/pkgs/applications/audio/mixxx/default.nix
index 4abc6d4956f47..0f65d5cea8c7c 100644
--- a/pkgs/applications/audio/mixxx/default.nix
+++ b/pkgs/applications/audio/mixxx/default.nix
@@ -52,20 +52,23 @@
 , upower
 , vamp-plugin-sdk
 , wavpack
+, wrapGAppsHook3
 }:
 
 mkDerivation rec {
   pname = "mixxx";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "mixxxdj";
     repo = "mixxx";
     rev = version;
-    hash = "sha256-JSWUzerm7D6AKq6g/9eRrt3EE2movRdM+VLUg07sLHo=";
+    hash = "sha256-BOdXgA+z3sFE4ngAEhSbp1gDbsti1STJY2Yy6Hp+zTE=";
   };
 
-  nativeBuildInputs = [ cmake pkg-config ];
+  nativeBuildInputs = [ cmake pkg-config wrapGAppsHook3 ];
+
+  dontWrapGApps = true;
 
   buildInputs = [
     chromaprint
@@ -118,9 +121,9 @@ mkDerivation rec {
     wavpack
   ];
 
-  qtWrapperArgs = [
-    "--set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive"
-  ];
+  preFixup=''
+    qtWrapperArgs+=(--set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive ''${gappsWrapperArgs[@]})
+  '';
 
   # mixxx installs udev rules to DATADIR instead of SYSCONFDIR
   # let's disable this and install udev rules manually via postInstall
@@ -144,7 +147,7 @@ mkDerivation rec {
     description = "Digital DJ mixing software";
     mainProgram = "mixxx";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ goibhniu bfortz ];
+    maintainers = with maintainers; [ goibhniu bfortz benley ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/moc/default.nix b/pkgs/applications/audio/moc/default.nix
index 6e408a5d12b54..e81382f344050 100644
--- a/pkgs/applications/audio/moc/default.nix
+++ b/pkgs/applications/audio/moc/default.nix
@@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An ncurses console audio player designed to be powerful and easy to use";
+    description = "Terminal audio player designed to be powerful and easy to use";
     homepage = "http://moc.daper.net/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ aethelz pSub jagajaga ];
diff --git a/pkgs/applications/audio/mod-arpeggiator-lv2/default.nix b/pkgs/applications/audio/mod-arpeggiator-lv2/default.nix
index a628e38469f51..0f8ef18d569a5 100644
--- a/pkgs/applications/audio/mod-arpeggiator-lv2/default.nix
+++ b/pkgs/applications/audio/mod-arpeggiator-lv2/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "a LV2 arpeggiator";
+    description = "LV2 arpeggiator";
     homepage = "https://github.com/moddevices/mod-arpeggiator-lv2";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/monkeys-audio/default.nix b/pkgs/applications/audio/monkeys-audio/default.nix
index 0018c99bc1af5..3fdcda98d1160 100644
--- a/pkgs/applications/audio/monkeys-audio/default.nix
+++ b/pkgs/applications/audio/monkeys-audio/default.nix
@@ -5,13 +5,13 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  version = "10.71";
+  version = "10.72";
   pname = "monkeys-audio";
 
   src = fetchzip {
     url = "https://monkeysaudio.com/files/MAC_${
       builtins.concatStringsSep "" (lib.strings.splitString "." finalAttrs.version)}_SDK.zip";
-    hash = "sha256-YHPC+dHfvRSr6GldWSlgCGt/wuO/WXQGRliarnM8/AU=";
+    hash = "sha256-vtpQhCV1hkme69liTO13vz+kxpA3zJ+U1In/4z6qLbQ=";
     stripRoot = false;
   };
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/mopidy/iris.nix b/pkgs/applications/audio/mopidy/iris.nix
index 38a6a55e3d96f..66af8c6586873 100644
--- a/pkgs/applications/audio/mopidy/iris.nix
+++ b/pkgs/applications/audio/mopidy/iris.nix
@@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/jaedb/Iris";
-    description = "A fully-functional Mopidy web client encompassing Spotify and many other backends";
+    description = "Fully-functional Mopidy web client encompassing Spotify and many other backends";
     license = licenses.asl20;
     maintainers = [ maintainers.rvolosatovs ];
   };
diff --git a/pkgs/applications/audio/mopidy/moped.nix b/pkgs/applications/audio/mopidy/moped.nix
index ec1b2ddaff06a..3e4e728c3c2de 100644
--- a/pkgs/applications/audio/mopidy/moped.nix
+++ b/pkgs/applications/audio/mopidy/moped.nix
@@ -18,7 +18,7 @@ pythonPackages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/martijnboland/moped";
-    description = "A web client for Mopidy";
+    description = "Web client for Mopidy";
     license = licenses.mit;
     maintainers = [];
     hydraPlatforms = [];
diff --git a/pkgs/applications/audio/mopidy/mopidy.nix b/pkgs/applications/audio/mopidy/mopidy.nix
index bf7f9a07f7721..ef604a6b41502 100644
--- a/pkgs/applications/audio/mopidy/mopidy.nix
+++ b/pkgs/applications/audio/mopidy/mopidy.nix
@@ -45,7 +45,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";
+    description = "Extensible music server that plays music from local disk, Spotify, SoundCloud, and more";
     mainProgram = "mopidy";
     license = licenses.asl20;
     maintainers = [ maintainers.fpletz ];
diff --git a/pkgs/applications/audio/mopidy/mopify.nix b/pkgs/applications/audio/mopidy/mopify.nix
index 68ba39a0ab42d..b5f89f4f4511b 100644
--- a/pkgs/applications/audio/mopidy/mopify.nix
+++ b/pkgs/applications/audio/mopidy/mopify.nix
@@ -16,7 +16,7 @@ pythonPackages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/dirkgroenen/mopidy-mopify";
-    description = "A mopidy webclient based on the Spotify webbased interface";
+    description = "Mopidy webclient based on the Spotify webbased interface";
     license = licenses.gpl3;
     maintainers = [ maintainers.Gonzih ];
   };
diff --git a/pkgs/applications/audio/mopidy/musicbox-webclient.nix b/pkgs/applications/audio/mopidy/musicbox-webclient.nix
index 02dc7b37cef1e..902d209f0286a 100644
--- a/pkgs/applications/audio/mopidy/musicbox-webclient.nix
+++ b/pkgs/applications/audio/mopidy/musicbox-webclient.nix
@@ -22,7 +22,7 @@ pythonPackages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Mopidy frontend extension and web client with additional features for Pi MusicBox";
+    description = "Mopidy frontend extension and web client with additional features for Pi MusicBox";
     homepage = "https://github.com/pimusicbox/mopidy-musicbox-webclient";
     changelog = "https://github.com/pimusicbox/mopidy-musicbox-webclient/blob/v${version}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/pkgs/applications/audio/mopidy/scrobbler.nix b/pkgs/applications/audio/mopidy/scrobbler.nix
index a7d9194ab9b8a..f283356c808ad 100644
--- a/pkgs/applications/audio/mopidy/scrobbler.nix
+++ b/pkgs/applications/audio/mopidy/scrobbler.nix
@@ -17,7 +17,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/mopidy/mopidy-scrobbler";
-    description = "Mopidy extension for scrobbling played tracks to Last.fm.";
+    description = "Mopidy extension for scrobbling played tracks to Last.fm";
     license = licenses.asl20;
     maintainers = with maintainers; [ jakeisnt ];
   };
diff --git a/pkgs/applications/audio/mopidy/youtube.nix b/pkgs/applications/audio/mopidy/youtube.nix
index 20958429c30ec..a4aea017ea4e4 100644
--- a/pkgs/applications/audio/mopidy/youtube.nix
+++ b/pkgs/applications/audio/mopidy/youtube.nix
@@ -2,6 +2,7 @@
 , fetchFromGitHub
 , python3
 , mopidy
+, extraPkgs ? pkgs: []
 }:
 
 python3.pkgs.buildPythonApplication rec {
@@ -25,7 +26,7 @@ python3.pkgs.buildPythonApplication rec {
     ytmusicapi
   ] ++ [
     mopidy
-  ];
+  ] ++ extraPkgs pkgs;
 
   nativeCheckInputs = with python3.pkgs; [
     vcrpy
diff --git a/pkgs/applications/audio/mousai/default.nix b/pkgs/applications/audio/mousai/default.nix
deleted file mode 100644
index 1ce6a0ea82091..0000000000000
--- a/pkgs/applications/audio/mousai/default.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, appstream-glib
-, cargo
-, dbus
-, desktop-file-utils
-, glib
-, glib-networking
-, gobject-introspection
-, gst_all_1
-, gtk4
-, libadwaita
-, libpulseaudio
-, libsoup_3
-, meson
-, ninja
-, pkg-config
-, rustPlatform
-, rustc
-, wrapGAppsHook4
-}:
-
-stdenv.mkDerivation rec {
-  pname = "mousai";
-  version = "0.7.6";
-
-  src = fetchFromGitHub {
-    owner = "SeaDve";
-    repo = "Mousai";
-    rev = "v${version}";
-    hash = "sha256-QInnKjGYaWlIj+F3upQ8CJ6RqCM72Y+BGrrezndqfOg=";
-  };
-
-  cargoDeps = rustPlatform.fetchCargoTarball {
-    inherit src;
-    name = "${pname}-${version}";
-    hash = "sha256-/AwTNuDdhAhj/kbc6EdC3FKGO1LfZIY68utPjcrw0S0=";
-  };
-
-  nativeBuildInputs = [
-    appstream-glib
-    desktop-file-utils
-    meson
-    ninja
-    pkg-config
-    wrapGAppsHook4
-    rustPlatform.cargoSetupHook
-    cargo
-    rustc
-  ];
-
-  buildInputs = [
-    dbus
-    gst_all_1.gstreamer
-    gst_all_1.gst-plugins-base
-    gst_all_1.gst-plugins-good
-    gst_all_1.gst-plugins-bad
-    glib
-    glib-networking
-    gtk4
-    libadwaita
-    libpulseaudio
-    libsoup_3
-  ];
-
-  meta = with lib; {
-    description = "Identify any songs in seconds";
-    mainProgram = "mousai";
-    homepage = "https://github.com/SeaDve/Mousai";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ dotlambda ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/audio/mousai/paths.patch b/pkgs/applications/audio/mousai/paths.patch
deleted file mode 100644
index 35b328ad0ea3c..0000000000000
--- a/pkgs/applications/audio/mousai/paths.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/backend/utils.py b/src/backend/utils.py
-index cebc009..0087c09 100644
---- a/src/backend/utils.py
-+++ b/src/backend/utils.py
-@@ -79,7 +79,7 @@ class Utils:
-     @staticmethod
-     def get_default_audio_sources():
-         pactl_output = subprocess.run(
--            ['/usr/bin/pactl', 'info'],
-+            ['@pactl@', 'info'],
-             stdout=subprocess.PIPE,
-             text=True
-         ).stdout.splitlines()
diff --git a/pkgs/applications/audio/mp3blaster/default.nix b/pkgs/applications/audio/mp3blaster/default.nix
index 8d4a63f3b9ef1..1faeddb4d8e0b 100644
--- a/pkgs/applications/audio/mp3blaster/default.nix
+++ b/pkgs/applications/audio/mp3blaster/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ]);
 
   meta = with lib; {
-    description = "An audio player for the text console";
+    description = "Audio player for the text console";
     homepage = "http://www.mp3blaster.org/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ earldouglas ];
diff --git a/pkgs/applications/audio/mp3val/default.nix b/pkgs/applications/audio/mp3val/default.nix
index daa03617824b1..506829ac3a000 100644
--- a/pkgs/applications/audio/mp3val/default.nix
+++ b/pkgs/applications/audio/mp3val/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "fortify" ];
 
   meta = {
-    description = "A tool for validating and repairing MPEG audio streams";
+    description = "Tool for validating and repairing MPEG audio streams";
     longDescription = ''
       MP3val is a small, high-speed, free software tool for checking MPEG audio
       files' integrity. It can be useful for finding corrupted files (e.g.
diff --git a/pkgs/applications/audio/mpc/default.nix b/pkgs/applications/audio/mpc/default.nix
index 9f7d8a06e206b..b0dcbfa18c595 100644
--- a/pkgs/applications/audio/mpc/default.nix
+++ b/pkgs/applications/audio/mpc/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.musicpd.org/clients/mpc/";
-    description = "A minimalist command line interface to MPD";
+    description = "Minimalist command line interface to MPD";
     changelog = "https://raw.githubusercontent.com/MusicPlayerDaemon/mpc/v${version}/NEWS";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
diff --git a/pkgs/applications/audio/mpc123/default.nix b/pkgs/applications/audio/mpc123/default.nix
index 5f9f0229cb498..1061705115ea5 100644
--- a/pkgs/applications/audio/mpc123/default.nix
+++ b/pkgs/applications/audio/mpc123/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A Musepack (.mpc) audio player";
+    description = "Musepack (.mpc) audio player";
     homepage = "https://github.com/bucciarati/mpc123";
     license = lib.licenses.gpl2Plus;
     mainProgram = "mpc123";
diff --git a/pkgs/applications/audio/mpd-touch-screen-gui/default.nix b/pkgs/applications/audio/mpd-touch-screen-gui/default.nix
index ce00cb2bd03e7..87f2dea11f065 100644
--- a/pkgs/applications/audio/mpd-touch-screen-gui/default.nix
+++ b/pkgs/applications/audio/mpd-touch-screen-gui/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
   doCheck = true;
 
   meta = with lib; {
-    description = "A small MPD client that let's you view covers and has controls suitable for small touchscreens";
+    description = "Small MPD client that let's you view covers and has controls suitable for small touchscreens";
     homepage = "https://github.com/muesli4/mpd-touch-screen-gui";
     # See: https://github.com/muesli4/mpd-touch-screen-gui/tree/master/LICENSES
     license = licenses.lgpl3Plus;
diff --git a/pkgs/applications/audio/mpdevil/default.nix b/pkgs/applications/audio/mpdevil/default.nix
deleted file mode 100644
index 9dff169594471..0000000000000
--- a/pkgs/applications/audio/mpdevil/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ lib, fetchFromGitHub
-, pkg-config, meson ,ninja
-, python3Packages
-, gdk-pixbuf, glib, gobject-introspection, gtk3
-, libnotify
-, wrapGAppsHook }:
-
-python3Packages.buildPythonApplication rec {
-  pname = "mpdevil";
-  version = "1.11.0";
-
-  src = fetchFromGitHub {
-    owner = "SoongNoonien";
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    sha256 = "sha256-ooNZSsVtIeueqgj9hR9OZp08qm8gGokiq8IU3U/ZV5w=";
-  };
-
-  format = "other";
-
-  nativeBuildInputs = [
-    glib.dev gobject-introspection gtk3 pkg-config meson ninja wrapGAppsHook
-  ];
-
-  buildInputs = [
-    gdk-pixbuf glib libnotify
-  ];
-
-  propagatedBuildInputs = with python3Packages; [
-    beautifulsoup4 distutils-extra mpd2 notify-py pygobject3 requests
-  ];
-
-  postInstall = ''
-    glib-compile-schemas $out/share/glib-2.0/schemas
-  '';
-
-  preFixup = ''
-    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
-  '';
-
-  # Prevent double wrapping.
-  dontWrapGApps = true;
-  # Otherwise wrapGAppsHook do not pick up the dependencies correctly.
-  strictDeps = false;
-  # There aren't any checks.
-  doCheck = false;
-
-  meta = with lib; {
-    description = "A simple music browser for MPD";
-    homepage = "https://github.com/SoongNoonien/mpdevil";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ apfelkuchen6 ];
-    mainProgram = "mpdevil";
-  };
-}
diff --git a/pkgs/applications/audio/mpg321/default.nix b/pkgs/applications/audio/mpg321/default.nix
deleted file mode 100644
index e00b6722f38d6..0000000000000
--- a/pkgs/applications/audio/mpg321/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{lib, stdenv, fetchurl, fetchpatch, libao, libmad, libid3tag, zlib, alsa-lib
-# Specify default libao output plugin to use (e.g. "alsa", "pulse" …).
-# If null, it will use the libao system default.
-, defaultAudio ? null
-}:
-
-stdenv.mkDerivation rec {
-  pname = "mpg321";
-  version = "0.3.2";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/mpg321/${version}/mpg321_${version}.orig.tar.gz";
-    sha256 = "0ki8mh76bbmdh77qsiw682dvi8y468yhbdabqwg05igmwc1wqvq5";
-  };
-
-  patches = [
-    (fetchpatch {
-      name = "CVE-2018-7263.patch";
-      url = "https://sources.debian.org/data/main/m/mpg321/0.3.2-3/debian/patches/handle_illegal_bitrate_value.patch";
-      sha256 = "15simp5fjvm9b024ryfh441rkh2d5bcrizqkzlrh07n9sm7fkw6x";
-    })
-    # Apple defines semun already. Skip redefining it to fix build errors.
-    (fetchpatch {
-      url = "https://raw.githubusercontent.com/Homebrew/formula-patches/85fa66a9/mpg321/0.3.2.patch";
-      sha256 = "sha256-qFYpKpE9PZSzOJrnsQINZi6FvUVX0anRyOvlF5eOYqE=";
-    })
-  ];
-
-  hardeningDisable = [ "format" ];
-
-  # Workaround build failure on -fno-common toolchains like upstream
-  # gcc-10. Otherwise build fails as:
-  #   ld: volume.o:/build/mpg321-0.3.2-orig/mpg321.h:119: multiple definition of
-  #     `loop_remaining'; mpg321.o:/build/mpg321-0.3.2-orig/mpg321.h:119: first defined here
-  env.NIX_CFLAGS_COMPILE = "-fcommon";
-
-  configureFlags =
-    [ ("--enable-alsa=" + (if stdenv.isLinux then "yes" else "no")) ]
-    ++ (lib.optional (defaultAudio != null)
-         "--with-default-audio=${defaultAudio}");
-
-  buildInputs = [libao libid3tag libmad zlib]
-    ++ lib.optional stdenv.isLinux alsa-lib;
-
-  installTargets = [ "install" "install-man" ];
-
-  meta = with lib; {
-    description = "Command-line MP3 player";
-    homepage = "https://mpg321.sourceforge.net/";
-    license = licenses.gpl2;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/applications/audio/munt/libmt32emu.nix b/pkgs/applications/audio/munt/libmt32emu.nix
index e011804944b53..c8a9263b7501f 100644
--- a/pkgs/applications/audio/munt/libmt32emu.nix
+++ b/pkgs/applications/audio/munt/libmt32emu.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://munt.sourceforge.net/";
-    description = "A library to emulate Roland MT-32, CM-32L, CM-64 and LAPC-I devices";
+    description = "Library to emulate Roland MT-32, CM-32L, CM-64 and LAPC-I devices";
     license = with licenses; [ lgpl21Plus ];
     maintainers = with maintainers; [ OPNA2608 ];
     platforms = platforms.unix; # Not tested on ReactOS yet :)
diff --git a/pkgs/applications/audio/munt/mt32emu-qt.nix b/pkgs/applications/audio/munt/mt32emu-qt.nix
index 9ebb59ddafdde..e84ad492c488e 100644
--- a/pkgs/applications/audio/munt/mt32emu-qt.nix
+++ b/pkgs/applications/audio/munt/mt32emu-qt.nix
@@ -64,7 +64,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://munt.sourceforge.net/";
-    description = "A synthesizer application built on Qt and libmt32emu";
+    description = "Synthesizer application built on Qt and libmt32emu";
     mainProgram = "mt32emu-qt";
     longDescription = ''
       mt32emu-qt is a synthesiser application that facilitates both realtime
diff --git a/pkgs/applications/audio/muse/default.nix b/pkgs/applications/audio/muse/default.nix
index 642d1057b483e..d5f32097250b0 100644
--- a/pkgs/applications/audio/muse/default.nix
+++ b/pkgs/applications/audio/muse/default.nix
@@ -81,7 +81,7 @@ stdenv.mkDerivation (finalAttrs: {
       it is published under the GNU General Public License.
     '';
     license = lib.licenses.gpl2Plus;
-    maintainers = with lib.maintainers; [ eclairevoyant orivej ];
+    maintainers = with lib.maintainers; [ orivej ];
     platforms = lib.platforms.linux;
     mainProgram = "muse4";
   };
diff --git a/pkgs/applications/audio/museeks/default.nix b/pkgs/applications/audio/museeks/default.nix
index 5db7f5bd40844..3a54d3923d007 100644
--- a/pkgs/applications/audio/museeks/default.nix
+++ b/pkgs/applications/audio/museeks/default.nix
@@ -27,7 +27,7 @@ appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "A simple, clean and cross-platform music player";
+    description = "Simple, clean and cross-platform music player";
     homepage = "https://github.com/martpie/museeks";
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/musescore/default.nix b/pkgs/applications/audio/musescore/default.nix
index 707ec5c8ebfe8..479e8850872c5 100644
--- a/pkgs/applications/audio/musescore/default.nix
+++ b/pkgs/applications/audio/musescore/default.nix
@@ -20,6 +20,9 @@
 , qtdeclarative
 , qtgraphicaleffects
 , flac
+, libopusenc
+, libopus
+, tinyxml-2
 , qtquickcontrols
 , qtquickcontrols2
 , qtscript
@@ -47,13 +50,13 @@ let
   } else portaudio;
 in stdenv'.mkDerivation (finalAttrs: {
   pname = "musescore";
-  version = "4.2.1";
+  version = "4.3.2";
 
   src = fetchFromGitHub {
     owner = "musescore";
     repo = "MuseScore";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-YCeO/ijxA+tZxNviqmlIBkAdjPTrKoOoo1QyMIOqhWU=";
+    sha256 = "sha256-QjvY8R2nq/DeFDikHn9qr4aCEwzAcogQXM5vdZqhoMM=";
   };
 
   cmakeFlags = [
@@ -62,8 +65,12 @@ in stdenv'.mkDerivation (finalAttrs: {
     # not useful on NixOS, see:
     # https://github.com/musescore/MuseScore/issues/15571
     "-DMUE_BUILD_CRASHPAD_CLIENT=OFF"
-    # Use our freetype
+    # Use our versions of system libraries
     "-DMUE_COMPILE_USE_SYSTEM_FREETYPE=ON"
+    "-DMUE_COMPILE_USE_SYSTEM_TINYXML=ON"
+    # Implies also -DMUE_COMPILE_USE_SYSTEM_OPUS=ON
+    "-DMUE_COMPILE_USE_SYSTEM_OPUSENC=ON"
+    "-DMUE_COMPILE_USE_SYSTEM_FLAC=ON"
     # From some reason, in $src/build/cmake/SetupBuildEnvironment.cmake,
     # upstream defaults to compiling to x86_64 only, unless this cmake flag is
     # set
@@ -84,11 +91,6 @@ in stdenv'.mkDerivation (finalAttrs: {
     "--set-default QT_QPA_PLATFORM xcb"
   ];
 
-  # HACK `propagatedSandboxProfile` does not appear to actually propagate the
-  # sandbox profile from `qtbase`, see:
-  # https://github.com/NixOS/nixpkgs/issues/237458
-  sandboxProfile = toString qtbase.__propagatedSandboxProfile or null;
-
   nativeBuildInputs = [
     wrapQtAppsHook
     cmake
@@ -107,6 +109,9 @@ in stdenv'.mkDerivation (finalAttrs: {
     portaudio'
     portmidi
     flac
+    libopusenc
+    libopus
+    tinyxml-2
     qtbase
     qtdeclarative
     qtgraphicaleffects
diff --git a/pkgs/applications/audio/music-player/default.nix b/pkgs/applications/audio/music-player/default.nix
index 0a93443df473a..137c463437756 100644
--- a/pkgs/applications/audio/music-player/default.nix
+++ b/pkgs/applications/audio/music-player/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "An extensible music player daemon written in Rust";
+    description = "Extensible music player daemon written in Rust";
     homepage = "https://github.com/tsirysndr/music-player";
     changelog = "https://github.com/tsirysndr/music-player/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/audio/musikcube/default.nix b/pkgs/applications/audio/musikcube/default.nix
index f25606886ff79..db91a2952bf2a 100644
--- a/pkgs/applications/audio/musikcube/default.nix
+++ b/pkgs/applications/audio/musikcube/default.nix
@@ -2,7 +2,6 @@
 , cmake
 , curl
 , fetchFromGitHub
-, fetchpatch
 , ffmpeg
 , gnutls
 , lame
diff --git a/pkgs/applications/audio/musly/default.nix b/pkgs/applications/audio/musly/default.nix
index 43c5fc3365d15..1f8e1a9f3aef1 100644
--- a/pkgs/applications/audio/musly/default.nix
+++ b/pkgs/applications/audio/musly/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://www.musly.org";
-    description = "A fast and high-quality audio music similarity library written in C/C++";
+    description = "Fast and high-quality audio music similarity library written in C/C++";
     longDescription = ''
       Musly analyzes the the audio signal of music pieces to estimate their similarity.
       No meta-data about the music piece is included in the similarity estimation.
diff --git a/pkgs/applications/audio/muso/default.nix b/pkgs/applications/audio/muso/default.nix
index 30b26e7e59796..8cf4e31b79e47 100644
--- a/pkgs/applications/audio/muso/default.nix
+++ b/pkgs/applications/audio/muso/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, rustPlatform
-, pkg-config, wrapGAppsHook, CoreServices
+, pkg-config, wrapGAppsHook3, CoreServices
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
     hash = "sha256-09DWUER0ZWQuwfE3sjov2GjJNI7coE3D3E5iUy9mlSE=";
   };
 
-  nativeBuildInputs = [ pkg-config wrapGAppsHook ];
+  nativeBuildInputs = [ pkg-config wrapGAppsHook3 ];
   buildInputs = lib.optional stdenv.isDarwin CoreServices;
 
   preConfigure = ''
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "An automatic music sorter (based on ID3 tags)";
+    description = "Automatic music sorter (based on ID3 tags)";
     mainProgram = "muso";
     homepage = "https://github.com/quebin31/muso";
     license = with licenses; [ gpl3Plus ];
diff --git a/pkgs/applications/audio/mympd/default.nix b/pkgs/applications/audio/mympd/default.nix
index cae2a3b7f1a9c..8e635ddd4796d 100644
--- a/pkgs/applications/audio/mympd/default.nix
+++ b/pkgs/applications/audio/mympd/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mympd";
-  version = "14.1.2";
+  version = "15.0.2";
 
   src = fetchFromGitHub {
     owner = "jcorporation";
     repo = "myMPD";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-CMqH9iy9U85bKj7YLcYsKFs5CDePGBEfUWL+sb7WzBw=";
+    sha256 = "sha256-Yz6gL87Vc8iFTRgKhyUgLL1ool+oinvwq2W9OjFl/OQ=";
   };
 
   nativeBuildInputs = [
@@ -59,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://jcorporation.github.io/myMPD";
-    description = "A standalone and mobile friendly web mpd client with a tiny footprint and advanced features";
+    description = "Standalone and mobile friendly web mpd client with a tiny footprint and advanced features";
     maintainers = [ lib.maintainers.doronbehar ];
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/ncmpcpp/default.nix b/pkgs/applications/audio/ncmpcpp/default.nix
index 9577d8ab3959c..e2ecb813f5528 100644
--- a/pkgs/applications/audio/ncmpcpp/default.nix
+++ b/pkgs/applications/audio/ncmpcpp/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional taglibSupport taglib;
 
   meta = with lib; {
-    description = "A featureful ncurses based MPD client inspired by ncmpc";
+    description = "Featureful ncurses based MPD client inspired by ncmpc";
     homepage    = "https://rybczak.net/ncmpcpp/";
     changelog   = "https://github.com/ncmpcpp/ncmpcpp/blob/${version}/CHANGELOG.md";
     license     = licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/ncpamixer/default.nix b/pkgs/applications/audio/ncpamixer/default.nix
index d33024c0dfbe3..77519fde31c59 100644
--- a/pkgs/applications/audio/ncpamixer/default.nix
+++ b/pkgs/applications/audio/ncpamixer/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An ncurses mixer for PulseAudio inspired by pavucontrol";
+    description = "Terminal mixer for PulseAudio inspired by pavucontrol";
     homepage = "https://github.com/fulhax/ncpamixer";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/ncspot/default.nix b/pkgs/applications/audio/ncspot/default.nix
index 1bc391b4b55c8..d5abb66d23981 100644
--- a/pkgs/applications/audio/ncspot/default.nix
+++ b/pkgs/applications/audio/ncspot/default.nix
@@ -20,16 +20,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ncspot";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "hrkfdn";
     repo = "ncspot";
     rev = "v${version}";
-    hash = "sha256-RgA3jV/vD6qgIVQCZ0Sm+9CST4SlqN4MUurVM3nIdh0=";
+    hash = "sha256-Sl4i9HFl+Dth9jmW6hPZzgh0Y35pRo1Xi9LRxCuSIP4=";
   };
 
-  cargoHash = "sha256-8ZUgm1O4NmZpxgNRKnh1MNhiFNoBWQHo22kyP3hWJwI=";
+  cargoHash = "sha256-INgDavtBI75h+qVlxTncYu3su+SH/D7HTlThRHJzwkY=";
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optional withClipboard python3;
diff --git a/pkgs/applications/audio/new-session-manager/default.nix b/pkgs/applications/audio/new-session-manager/default.nix
index 5f23b9be651cc..6e24f0c90d292 100644
--- a/pkgs/applications/audio/new-session-manager/default.nix
+++ b/pkgs/applications/audio/new-session-manager/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://new-session-manager.jackaudio.org/";
-    description = "A session manager designed for audio applications.";
+    description = "Session manager designed for audio applications";
     maintainers = [ maintainers._6AA4FD ];
     license = licenses.gpl3Plus;
     platforms = ["x86_64-linux"];
diff --git a/pkgs/applications/audio/noise-repellent/default.nix b/pkgs/applications/audio/noise-repellent/default.nix
index bcd2f8e4c42a5..d1860141ebb31 100644
--- a/pkgs/applications/audio/noise-repellent/default.nix
+++ b/pkgs/applications/audio/noise-repellent/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An lv2 plugin for broadband noise reduction";
+    description = "LV2 plugin for broadband noise reduction";
     homepage    = "https://github.com/lucianodato/noise-repellent";
     license     = licenses.gpl3;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/noson/default.nix b/pkgs/applications/audio/noson/default.nix
index 426a3d9d1bbb3..0184934ff2208 100644
--- a/pkgs/applications/audio/noson/default.nix
+++ b/pkgs/applications/audio/noson/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "noson";
-  version = "5.6.6";
+  version = "5.6.7";
 
   src = fetchFromGitHub {
     owner = "janbar";
     repo = "noson-app";
     rev = finalAttrs.version;
-    hash = "sha256-aBrp+mfY/c6K3dLbDGnEKoUbQC7TlFRQJZCjXPeDZ6s=";
+    hash = "sha256-lroQYO+Ab7uPQmsrUFK6uWdCoGQp1klyfLw6eAxdzjg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/open-music-kontrollers/jit.nix b/pkgs/applications/audio/open-music-kontrollers/jit.nix
index 937a6446a8da3..b82b12385ea3c 100644
--- a/pkgs/applications/audio/open-music-kontrollers/jit.nix
+++ b/pkgs/applications/audio/open-music-kontrollers/jit.nix
@@ -8,5 +8,5 @@ callPackage ./generic.nix (args // rec {
 
   additionalBuildInputs = [ lv2 fontconfig libvterm-neovim ];
 
-  description = "A Just-in-Time C/Rust compiler embedded in an LV2 plugin";
+  description = "Just-in-Time C/Rust compiler embedded in an LV2 plugin";
 })
diff --git a/pkgs/applications/audio/open-music-kontrollers/mephisto.nix b/pkgs/applications/audio/open-music-kontrollers/mephisto.nix
index 2328b9979158a..e63c2fb7325c2 100644
--- a/pkgs/applications/audio/open-music-kontrollers/mephisto.nix
+++ b/pkgs/applications/audio/open-music-kontrollers/mephisto.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A Just-in-time FAUST embedded in an LV2 plugin";
+    description = "Just-in-time FAUST embedded in an LV2 plugin";
     homepage = "https://git.open-music-kontrollers.ch/~hp/mephisto.lv2";
     license = licenses.artistic2;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/open-music-kontrollers/midi_matrix.nix b/pkgs/applications/audio/open-music-kontrollers/midi_matrix.nix
index cd431d1a1d3da..7da92eb45b18e 100644
--- a/pkgs/applications/audio/open-music-kontrollers/midi_matrix.nix
+++ b/pkgs/applications/audio/open-music-kontrollers/midi_matrix.nix
@@ -6,5 +6,5 @@ callPackage ./generic.nix (args // rec {
 
   sha256 = "1nwmfxdzk4pvbwcgi3d7v4flqc10bmi2fxhrhrpfa7cafqs40ib6";
 
-  description = "An LV2 MIDI channel matrix patcher";
+  description = "LV2 MIDI channel matrix patcher";
 })
diff --git a/pkgs/applications/audio/open-music-kontrollers/orbit.nix b/pkgs/applications/audio/open-music-kontrollers/orbit.nix
index 930fc17760f91..21fdf44b24c04 100644
--- a/pkgs/applications/audio/open-music-kontrollers/orbit.nix
+++ b/pkgs/applications/audio/open-music-kontrollers/orbit.nix
@@ -8,5 +8,5 @@ callPackage ./generic.nix (args // rec {
 
   additionalBuildInputs = [ zlib ];
 
-  description = "An LV2 time event manipulation plugin bundle";
+  description = "LV2 time event manipulation plugin bundle";
 })
diff --git a/pkgs/applications/audio/open-music-kontrollers/patchmatrix.nix b/pkgs/applications/audio/open-music-kontrollers/patchmatrix.nix
index cc343e0330c30..39b68ba3a577c 100644
--- a/pkgs/applications/audio/open-music-kontrollers/patchmatrix.nix
+++ b/pkgs/applications/audio/open-music-kontrollers/patchmatrix.nix
@@ -9,5 +9,5 @@ callPackage ./generic.nix (args // rec {
 
   additionalBuildInputs = [ libjack2 ];
 
-  description = "A JACK patchbay in flow matrix style";
+  description = "JACK patchbay in flow matrix style";
 })
diff --git a/pkgs/applications/audio/open-music-kontrollers/router.nix b/pkgs/applications/audio/open-music-kontrollers/router.nix
index 40d3a5e6fbcd1..b7e734db2803c 100644
--- a/pkgs/applications/audio/open-music-kontrollers/router.nix
+++ b/pkgs/applications/audio/open-music-kontrollers/router.nix
@@ -7,5 +7,5 @@ callPackage ./generic.nix (args // rec {
   url = "https://git.open-music-kontrollers.ch/lv2/${pname}.lv2/snapshot/${pname}.lv2-7d754dd64c540d40b828166401617715dc235ca3.tar.xz";
   sha256 = "sha256-LjaW5Xdxfjzd6IJ2ptHzmHt7fhU1HQo7ubZ4USVqRE8=";
 
-  description = "An atom/audio/CV router LV2 plugin bundle";
+  description = "Atom/Audio/CV router LV2 plugin bundle";
 })
diff --git a/pkgs/applications/audio/open-music-kontrollers/vm.nix b/pkgs/applications/audio/open-music-kontrollers/vm.nix
index 8d432d356cf5e..c35da5bf36364 100644
--- a/pkgs/applications/audio/open-music-kontrollers/vm.nix
+++ b/pkgs/applications/audio/open-music-kontrollers/vm.nix
@@ -6,5 +6,5 @@ callPackage ./generic.nix (args // rec {
 
   sha256 = "013gq7jn556nkk1nq6zzh9nmp3fb36jd7ndzvyq3qryw7khzkagc";
 
-  description = "A programmable virtual machine LV2 plugin";
+  description = "Programmable virtual machine LV2 plugin";
 })
diff --git a/pkgs/applications/audio/opustags/default.nix b/pkgs/applications/audio/opustags/default.nix
index 314d475a04ede..9bafacc2e30ec 100644
--- a/pkgs/applications/audio/opustags/default.nix
+++ b/pkgs/applications/audio/opustags/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opustags";
-  version = "1.9.0";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "fmang";
     repo = "opustags";
     rev = version;
-    sha256 = "sha256-cRDyE6/nv8g0OWxZ/AqfwVrk3cSIycvbjvQm9CyQK7g=";
+    sha256 = "sha256-0lo+4VMYXGwXUuRxU1xZRxzlUQ4o4n/CDHXDM27FK44=";
   };
 
 
diff --git a/pkgs/applications/audio/orca-c/default.nix b/pkgs/applications/audio/orca-c/default.nix
index be40def26441b..3dfea97ace2a7 100644
--- a/pkgs/applications/audio/orca-c/default.nix
+++ b/pkgs/applications/audio/orca-c/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An esoteric programming language designed to quickly create procedural sequencers";
+    description = "Esoteric programming language designed to quickly create procedural sequencers";
     homepage = "https://git.sr.ht/~rabbits/orca";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/applications/audio/osmid/default.nix b/pkgs/applications/audio/osmid/default.nix
index 1a65826dca338..79b809428ea53 100644
--- a/pkgs/applications/audio/osmid/default.nix
+++ b/pkgs/applications/audio/osmid/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/llloret/osmid";
-    description = "A lightweight, portable, easy to use tool to convert MIDI to OSC and OSC to MIDI";
+    description = "Lightweight, portable, easy to use tool to convert MIDI to OSC and OSC to MIDI";
     license = licenses.mit;
     maintainers = with maintainers; [ c0deaddict ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/oxefmsynth/default.nix b/pkgs/applications/audio/oxefmsynth/default.nix
index 81cdc29be7a49..ef4482e8f1cc4 100644
--- a/pkgs/applications/audio/oxefmsynth/default.nix
+++ b/pkgs/applications/audio/oxefmsynth/default.nix
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/oxesoft/oxefmsynth";
-    description = "An open source VST 2.4 instrument plugin";
+    description = "Open source VST 2.4 instrument plugin";
     maintainers = [ maintainers.hirenashah ];
     platforms = [ "x86_64-linux" ];
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/audio/paprefs/default.nix b/pkgs/applications/audio/paprefs/default.nix
index 212d866059da1..fa28433fe9cd3 100644
--- a/pkgs/applications/audio/paprefs/default.nix
+++ b/pkgs/applications/audio/paprefs/default.nix
@@ -8,7 +8,7 @@
 , pulseaudioFull
 , glibmm
 , gtkmm3
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 stdenv.mkDerivation rec {
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     ninja
     gettext
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
diff --git a/pkgs/applications/audio/parlatype/default.nix b/pkgs/applications/audio/parlatype/default.nix
index 927de1d938569..3d9a3da25c2ea 100644
--- a/pkgs/applications/audio/parlatype/default.nix
+++ b/pkgs/applications/audio/parlatype/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "parlatype";
-  version = "4.1";
+  version = "4.2";
 
   src = fetchFromGitHub {
     owner = "gkarsay";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0546rl5sm7xmgl54cqps3a7bhfs7xdvz98jgdcf4sgiz1k2vh9xq";
+    sha256 = "1wi9f23zgvsa98xcxgghm53jlafnr3pan1zl4gkn0yd8b2d6avhk";
   };
 
   nativeBuildInputs = [
@@ -58,9 +58,6 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    substituteInPlace data/meson_post_install.py \
-      --replace-fail 'gtk-update-icon-cache' 'gtk4-update-icon-cache'
-    patchShebangs data/meson_post_install.py
     patchShebangs libparlatype/tests/data/generate_config_data
   '';
 
@@ -76,8 +73,7 @@ stdenv.mkDerivation rec {
       useful for journalists, students, scientists and whoever needs to
       transcribe audio files.
     '';
-    # maintainer lost control of parlatype.org
-    homepage = "https://github.com/gkarsay/parlatype";
+    homepage = "https://www.parlatype.xyz/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ alexshpilkin melchips ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/parrot/default.nix b/pkgs/applications/audio/parrot/default.nix
index 8520b92015555..db5b89bb39fa0 100644
--- a/pkgs/applications/audio/parrot/default.nix
+++ b/pkgs/applications/audio/parrot/default.nix
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A hassle-free Discord music bot";
+    description = "Hassle-free Discord music bot";
     homepage = "https://github.com/aquelemiguel/parrot";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ gerg-l ];
diff --git a/pkgs/applications/audio/pavucontrol/default.nix b/pkgs/applications/audio/pavucontrol/default.nix
index 00aed303666eb..019c777cd046c 100644
--- a/pkgs/applications/audio/pavucontrol/default.nix
+++ b/pkgs/applications/audio/pavucontrol/default.nix
@@ -9,7 +9,7 @@
 , libcanberra-gtk3
 , json-glib
 , gnome
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 stdenv.mkDerivation rec {
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     gnome.adwaita-icon-theme
   ];
 
-  nativeBuildInputs = [ pkg-config intltool wrapGAppsHook ];
+  nativeBuildInputs = [ pkg-config intltool wrapGAppsHook3 ];
 
   configureFlags = [ "--disable-lynx" ];
 
diff --git a/pkgs/applications/audio/pbpctrl/default.nix b/pkgs/applications/audio/pbpctrl/default.nix
index 1cb18d8318239..9567a75de6134 100644
--- a/pkgs/applications/audio/pbpctrl/default.nix
+++ b/pkgs/applications/audio/pbpctrl/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ dbus ];
 
   meta = with lib; {
-    description = "Control Google Pixel Buds Pro from the Linux command line.";
+    description = "Control Google Pixel Buds Pro from the Linux command line";
     homepage = "https://github.com/qzed/pbpctrl";
     license = with licenses; [ asl20 mit ];
     maintainers = [ maintainers.vanilla ];
diff --git a/pkgs/applications/audio/pd-plugins/cyclone/default.nix b/pkgs/applications/audio/pd-plugins/cyclone/default.nix
index 12efbfb64a4c3..db46c1224ee6c 100644
--- a/pkgs/applications/audio/pd-plugins/cyclone/default.nix
+++ b/pkgs/applications/audio/pd-plugins/cyclone/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library of PureData classes, bringing some level of compatibility between Max/MSP and Pd environments";
+    description = "Library of PureData classes, bringing some level of compatibility between Max/MSP and Pd environments";
     homepage = "http://puredata.info/downloads/cyclone";
     license = licenses.tcltk;
     maintainers = with maintainers; [ magnetophon carlthome ];
diff --git a/pkgs/applications/audio/pd-plugins/maxlib/default.nix b/pkgs/applications/audio/pd-plugins/maxlib/default.nix
index 1fc3475bc6ac2..567141afaffea 100644
--- a/pkgs/applications/audio/pd-plugins/maxlib/default.nix
+++ b/pkgs/applications/audio/pd-plugins/maxlib/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A library of non-tilde externals for puredata, by Miller Puckette";
+    description = "Library of non-tilde externals for puredata, by Miller Puckette";
     homepage = "http://puredata.info/downloads/maxlib";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/pd-plugins/mrpeach/default.nix b/pkgs/applications/audio/pd-plugins/mrpeach/default.nix
index 71f5e9438e1c3..e11c5cd00a186 100644
--- a/pkgs/applications/audio/pd-plugins/mrpeach/default.nix
+++ b/pkgs/applications/audio/pd-plugins/mrpeach/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A collection of Pd objectclasses for OSC-messages";
+    description = "Collection of Pd objectclasses for OSC-messages";
     homepage = "http://puredata.info/downloads/osc";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/pd-plugins/timbreid/default.nix b/pkgs/applications/audio/pd-plugins/timbreid/default.nix
index 7fd2adefce075..f3da39f15b33d 100644
--- a/pkgs/applications/audio/pd-plugins/timbreid/default.nix
+++ b/pkgs/applications/audio/pd-plugins/timbreid/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = {
-    description = "A collection of audio feature analysis externals for puredata";
+    description = "Collection of audio feature analysis externals for puredata";
     homepage = "http://williambrent.conflations.com/pages/research.html";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/pd-plugins/zexy/default.nix b/pkgs/applications/audio/pd-plugins/zexy/default.nix
index 13944c8a01b25..3e5285fbba406 100644
--- a/pkgs/applications/audio/pd-plugins/zexy/default.nix
+++ b/pkgs/applications/audio/pd-plugins/zexy/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "The swiss army knife for puredata";
+    description = "Swiss army knife for puredata";
     homepage = "http://puredata.info/downloads/zexy";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/pianobar/default.nix b/pkgs/applications/audio/pianobar/default.nix
index 3d2d6e1263b0c..7854203d89396 100644
--- a/pkgs/applications/audio/pianobar/default.nix
+++ b/pkgs/applications/audio/pianobar/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   CFLAGS = "-std=c99";
 
   meta = with lib; {
-    description = "A console front-end for Pandora.com";
+    description = "Console front-end for Pandora.com";
     homepage = "https://6xq.net/pianobar/";
     platforms = platforms.unix;
     license = licenses.mit; # expat version
diff --git a/pkgs/applications/audio/pianobooster/default.nix b/pkgs/applications/audio/pianobooster/default.nix
index a83c5ee7e401d..8a78ca046e4de 100644
--- a/pkgs/applications/audio/pianobooster/default.nix
+++ b/pkgs/applications/audio/pianobooster/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A MIDI file player that teaches you how to play the piano";
+    description = "MIDI file player that teaches you how to play the piano";
     mainProgram = "pianobooster";
     homepage = "https://github.com/pianobooster/PianoBooster";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix
index 82909a6296bff..76edc412a3921 100644
--- a/pkgs/applications/audio/picard/default.nix
+++ b/pkgs/applications/audio/picard/default.nix
@@ -76,7 +76,7 @@ pythonPackages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://picard.musicbrainz.org";
     changelog = "https://picard.musicbrainz.org/changelog";
-    description = "The official MusicBrainz tagger";
+    description = "Official MusicBrainz tagger";
     mainProgram = "picard";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/pkgs/applications/audio/picoloop/default.nix b/pkgs/applications/audio/picoloop/default.nix
index 74d2e305b74f3..cc9d0646d9879 100644
--- a/pkgs/applications/audio/picoloop/default.nix
+++ b/pkgs/applications/audio/picoloop/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A synth and a stepsequencer (a clone of the famous nanoloop)";
+    description = "Synth and a stepsequencer (a clone of the famous nanoloop)";
     homepage = "https://github.com/yoyz/picoloop";
     platforms = platforms.linux;
     license = licenses.bsd3;
diff --git a/pkgs/applications/audio/pithos/default.nix b/pkgs/applications/audio/pithos/default.nix
index 1ff4aedb6b00f..dbb3a63fce6b7 100644
--- a/pkgs/applications/audio/pithos/default.nix
+++ b/pkgs/applications/audio/pithos/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, meson, ninja, pkg-config, appstream-glib
-, wrapGAppsHook, pythonPackages, gtk3, gnome, gobject-introspection
+, wrapGAppsHook3, pythonPackages, gtk3, gnome, gobject-introspection
 , libnotify, libsecret, gst_all_1 }:
 
 pythonPackages.buildPythonApplication rec {
@@ -20,7 +20,7 @@ pythonPackages.buildPythonApplication rec {
     patchShebangs meson_post_install.py
   '';
 
-  nativeBuildInputs = [ meson ninja pkg-config appstream-glib wrapGAppsHook ];
+  nativeBuildInputs = [ meson ninja pkg-config appstream-glib wrapGAppsHook3 ];
 
   propagatedNativeBuildInputs = [
     gobject-introspection
diff --git a/pkgs/applications/audio/plexamp/default.nix b/pkgs/applications/audio/plexamp/default.nix
index 245760be5f70a..ec79cbefabf0f 100644
--- a/pkgs/applications/audio/plexamp/default.nix
+++ b/pkgs/applications/audio/plexamp/default.nix
@@ -1,28 +1,26 @@
-{ lib, fetchurl, appimageTools, pkgs }:
+{ lib, fetchurl, appimageTools }:
 
 let
   pname = "plexamp";
-  version = "4.8.3";
+  version = "4.10.1";
 
   src = fetchurl {
     url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
-    name="${pname}-${version}.AppImage";
-    hash = "sha512-CrSXmRVatVSkMyB1QaNSL/tK60rQvT9JraRtYYLl0Fau3M1LJXK9yqvt77AjwIwIvi2Dm5SROG+c4rA1XtI4Yg==";
+    name = "${pname}-${version}.AppImage";
+    hash = "sha512-Y43W6aPnZEMnkBQwSHbT8PWjuhkfNxce79Y9cixEPnq4VybROHGb9s6ghV7kP81TSWkb9QruFhmXfuJRSkXxTw==";
   };
 
   appimageContents = appimageTools.extractType2 {
     inherit pname version src;
   };
-in appimageTools.wrapType2 {
+in
+appimageTools.wrapType2 {
   inherit pname version src;
 
-  multiArch = false; # no 32bit needed
-  extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs ++ [ pkgs.bash ];
-
   extraInstallCommands = ''
     install -m 444 -D ${appimageContents}/plexamp.desktop $out/share/applications/plexamp.desktop
-    install -m 444 -D ${appimageContents}/plexamp.png \
-      $out/share/icons/hicolor/512x512/apps/plexamp.png
+    install -m 444 -D ${appimageContents}/plexamp.svg \
+      $out/share/icons/hicolor/scalable/apps/plexamp.svg
     substituteInPlace $out/share/applications/${pname}.desktop \
       --replace 'Exec=AppRun' 'Exec=${pname}'
   '';
@@ -30,11 +28,11 @@ in appimageTools.wrapType2 {
   passthru.updateScript = ./update-plexamp.sh;
 
   meta = with lib; {
-    description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
+    description = "Beautiful Plex music player for audiophiles, curators, and hipsters";
     homepage = "https://plexamp.com/";
-    changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/53";
+    changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/73";
     license = licenses.unfree;
-    maintainers = with maintainers; [ killercup synthetica ];
+    maintainers = with maintainers; [ killercup redhawk synthetica ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/audio/plexamp/update-plexamp.sh b/pkgs/applications/audio/plexamp/update-plexamp.sh
index b6b8def1e310a..44ad9b9250147 100755
--- a/pkgs/applications/audio/plexamp/update-plexamp.sh
+++ b/pkgs/applications/audio/plexamp/update-plexamp.sh
@@ -5,7 +5,7 @@
 set -Eeuxo pipefail
 
 cleanup() {
-    rm -rf "$TMPDIR"
+  rm -rf "$TMPDIR"
 }
 
 trap cleanup EXIT
@@ -42,9 +42,10 @@ if diff "$DEFAULT_NIX" "$WORKING_NIX"; then
 fi
 
 # update sha hash (convenietly provided)
-sed -i "s@sha.* = .*;@sha512 = \"$SHA512\";@g" "$WORKING_NIX"
+sed -i "s@hash.* = .*;@hash = \"sha512-$SHA512\";@g" "$WORKING_NIX"
 
 # update the changelog ("just" increment the number)
+# manually check that the changelog corresponds to our Plexamp version
 CHANGELOG_URL=$(rg --only-matching 'changelog = "(.+)";' --replace '$1' $WORKING_NIX)
 CHANGELOG_NUMBER=$(rg --only-matching '.*/([0-9]+)' --replace '$1' <<< $CHANGELOG_URL)
 NEXT_CHANGELOG=$(($CHANGELOG_NUMBER + 1))
diff --git a/pkgs/applications/audio/plugin-torture/default.nix b/pkgs/applications/audio/plugin-torture/default.nix
index abfda0f022e3d..b3f671adc4b2a 100644
--- a/pkgs/applications/audio/plugin-torture/default.nix
+++ b/pkgs/applications/audio/plugin-torture/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     homepage = "https://github.com/cth103/plugin-torture";
-    description = "A tool to test LADSPA and LV2 plugins";
+    description = "Tool to test LADSPA and LV2 plugins";
     license = licenses.gpl2;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/plujain-ramp/default.nix b/pkgs/applications/audio/plujain-ramp/default.nix
index d8f5357efdbe9..c8af8a1c5a1e7 100644
--- a/pkgs/applications/audio/plujain-ramp/default.nix
+++ b/pkgs/applications/audio/plujain-ramp/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "INSTALL_PATH=$(out)/lib/lv2" ];
 
   meta = with lib; {
-    description = "A mono rhythmic tremolo LV2 Audio Plugin";
+    description = "Mono rhythmic tremolo LV2 Audio Plugin";
     homepage = "https://github.com/Houston4444/plujain-ramp";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/pmidi/default.nix b/pkgs/applications/audio/pmidi/default.nix
index c8725fa9a36a7..29215aa061952 100644
--- a/pkgs/applications/audio/pmidi/default.nix
+++ b/pkgs/applications/audio/pmidi/default.nix
@@ -15,8 +15,8 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://www.parabola.me.uk/alsa/pmidi.html";
-    description = "A straightforward command line program to play midi files through the ALSA sequencer";
-    maintainers = with maintainers; [ lheckemann ];
+    description = "Straightforward command line program to play midi files through the ALSA sequencer";
+    maintainers = with maintainers; [ ];
     license = licenses.gpl2;
     mainProgram = "pmidi";
   };
diff --git a/pkgs/applications/audio/pms/default.nix b/pkgs/applications/audio/pms/default.nix
index d8c7bffcb0f44..77883d27834ff 100644
--- a/pkgs/applications/audio/pms/default.nix
+++ b/pkgs/applications/audio/pms/default.nix
@@ -14,7 +14,7 @@ buildGoModule {
   vendorHash = "sha256-XNFzG4hGDUN0wWbpBoQWUH1bWIgoYcyP4tNRGSV4ro4=";
 
   meta = with lib; {
-    description = "An interactive Vim-like console client for MPD";
+    description = "Interactive Vim-like console client for MPD";
     homepage = "https://ambientsound.github.io/pms/";
     license = licenses.mit;
     maintainers = with maintainers; [ deejayem ];
diff --git a/pkgs/applications/audio/pocket-casts/default.nix b/pkgs/applications/audio/pocket-casts/default.nix
index e07904b32485c..8777f0bb54028 100644
--- a/pkgs/applications/audio/pocket-casts/default.nix
+++ b/pkgs/applications/audio/pocket-casts/default.nix
@@ -52,7 +52,7 @@ buildNpmPackage rec {
     description = "Pocket Casts webapp, packaged for the Linux Desktop";
     homepage = "https://github.com/felicianotech/pocket-casts-desktop-app";
     license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
     mainProgram = "pocket-casts";
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/audio/polyphone/default.nix b/pkgs/applications/audio/polyphone/default.nix
index a01ce9773afa9..f9e33dc94a801 100644
--- a/pkgs/applications/audio/polyphone/default.nix
+++ b/pkgs/applications/audio/polyphone/default.nix
@@ -45,7 +45,7 @@ mkDerivation rec {
 
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
-    description = "A soundfont editor for creating musical instruments";
+    description = "Soundfont editor for creating musical instruments";
     mainProgram = "polyphone";
     homepage = "https://www.polyphone-soundfonts.com/";
     license = licenses.gpl3;
diff --git a/pkgs/applications/audio/praat/default.nix b/pkgs/applications/audio/praat/default.nix
index 6ea7b2f885368..39d258c806c72 100644
--- a/pkgs/applications/audio/praat/default.nix
+++ b/pkgs/applications/audio/praat/default.nix
@@ -6,23 +6,23 @@
 , libpulseaudio
 , pkg-config
 , stdenv
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "praat";
-  version = "6.4.07";
+  version = "6.4.12";
 
   src = fetchFromGitHub {
     owner = "praat";
     repo = "praat";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-r36znpkyI6/UPtOm1ZjedOadRG1BiIscRV9qRLf/A5Q=";
+    hash = "sha256-nriw/nP73m27QWdhC5ooTuVMul+GdOUsnVroM/CZiiY=";
   };
 
   nativeBuildInputs = [
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
diff --git a/pkgs/applications/audio/pragha/default.nix b/pkgs/applications/audio/pragha/default.nix
index 2ae9e233c4e27..00c442e7f58c2 100644
--- a/pkgs/applications/audio/pragha/default.nix
+++ b/pkgs/applications/audio/pragha/default.nix
@@ -94,7 +94,7 @@ mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A lightweight GTK+ music manager - fork of Consonance Music Manager";
+    description = "Lightweight GTK+ music manager - fork of Consonance Music Manager";
     mainProgram = "pragha";
     homepage = "https://pragha-music-player.github.io/";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/psst/default.nix b/pkgs/applications/audio/psst/default.nix
index 4d81f3f212bbb..2bd8573ab5807 100644
--- a/pkgs/applications/audio/psst/default.nix
+++ b/pkgs/applications/audio/psst/default.nix
@@ -16,13 +16,13 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "psst";
-  version = "unstable-2024-04-01";
+  version = "unstable-2024-05-26";
 
   src = fetchFromGitHub {
     owner = "jpochyla";
     repo = pname;
-    rev = "37d8da11774c6eff3d1c2902ac883dace178e832";
-    hash = "sha256-BGIbf7jtrspFqURyy2AIYKSSkcirLgj0oUBq0CHl+2s=";
+    rev = "6c9cd3f91653764b832ea5136cda04c9e0f8fe50";
+    hash = "sha256-bttF+yX1BT4t1TUmJBs0OZuPD+6uPxHlb8YzRIVNKTQ=";
   };
 
   cargoLock = {
diff --git a/pkgs/applications/audio/psst/make-build-reproducible.patch b/pkgs/applications/audio/psst/make-build-reproducible.patch
index 5598c443b3c6b..17a93ef76caed 100644
--- a/pkgs/applications/audio/psst/make-build-reproducible.patch
+++ b/pkgs/applications/audio/psst/make-build-reproducible.patch
@@ -51,7 +51,7 @@ index fcbd491..2d71ee3 100644
 -pub const GIT_VERSION: &str = git_version!();
 -pub const BUILD_TIME: &str = include!(concat!(env!("OUT_DIR"), "/build-time.txt"));
 -pub const REMOTE_URL: &str = include!(concat!(env!("OUT_DIR"), "/remote-url.txt"));
-+pub const GIT_VERSION: &str = "37d8da11774c6eff3d1c2902ac883dace178e832";
++pub const GIT_VERSION: &str = "6c9cd3f91653764b832ea5136cda04c9e0f8fe50";
 +pub const BUILD_TIME: &str = "1970-01-01 00:00:00";
 +pub const REMOTE_URL: &str = "https://github.com/jpochyla/psst";
  
diff --git a/pkgs/applications/audio/pt2-clone/default.nix b/pkgs/applications/audio/pt2-clone/default.nix
index 975b44866e817..98ff39c0f5b47 100644
--- a/pkgs/applications/audio/pt2-clone/default.nix
+++ b/pkgs/applications/audio/pt2-clone/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A highly accurate clone of the classic ProTracker 2.3D software for Amiga";
+    description = "Highly accurate clone of the classic ProTracker 2.3D software for Amiga";
     homepage = "https://16-bits.org/pt2.php";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/applications/audio/puddletag/default.nix b/pkgs/applications/audio/puddletag/default.nix
index 3b6e215d2ffbd..97ea40d7438b4 100644
--- a/pkgs/applications/audio/puddletag/default.nix
+++ b/pkgs/applications/audio/puddletag/default.nix
@@ -74,7 +74,7 @@ python3.pkgs.buildPythonApplication rec {
   dontStrip = true; # we are not generating any binaries
 
   meta = with lib; {
-    description = "An audio tag editor similar to the Windows program, Mp3tag";
+    description = "Audio tag editor similar to the Windows program, Mp3tag";
     mainProgram = "puddletag";
     homepage = "https://docs.puddletag.net";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/pulseaudio-dlna/default.nix b/pkgs/applications/audio/pulseaudio-dlna/default.nix
index 57f99b81299e3..8027ec70aa5cf 100644
--- a/pkgs/applications/audio/pulseaudio-dlna/default.nix
+++ b/pkgs/applications/audio/pulseaudio-dlna/default.nix
@@ -66,7 +66,7 @@ python3Packages.buildPythonApplication {
   '';
 
   meta = with lib; {
-    description = "A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux";
+    description = "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;
diff --git a/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix b/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix
index d4f3306697d7c..5448e3b3b2e68 100644
--- a/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix
+++ b/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     ++ lib.optionals (pythonOlder "3.5") [ typing ];
 
   meta = with lib; {
-    description = "A pure python implementation of multicast DNS service discovery";
+    description = "Pure python implementation of multicast DNS service discovery";
     homepage = "https://github.com/jstasiak/python-zeroconf";
     license = licenses.lgpl21;
     maintainers = [ ];
diff --git a/pkgs/applications/audio/pulseeffects-legacy/default.nix b/pkgs/applications/audio/pulseeffects-legacy/default.nix
index c243b99f098c7..1fb71e05d2f20 100644
--- a/pkgs/applications/audio/pulseeffects-legacy/default.nix
+++ b/pkgs/applications/audio/pulseeffects-legacy/default.nix
@@ -7,7 +7,7 @@
 , python3
 , libxml2
 , desktop-file-utils
-, wrapGAppsHook
+, wrapGAppsHook3
 , gst_all_1
 , pulseaudio
 , gtk3
@@ -62,7 +62,7 @@ in stdenv.mkDerivation rec {
     itstool
     python3
     desktop-file-utils
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
diff --git a/pkgs/applications/audio/pwvucontrol/Cargo.lock b/pkgs/applications/audio/pwvucontrol/Cargo.lock
index c894d9222ae7a..c07b91890643e 100644
--- a/pkgs/applications/audio/pwvucontrol/Cargo.lock
+++ b/pkgs/applications/audio/pwvucontrol/Cargo.lock
@@ -4,18 +4,18 @@ version = 3
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.4"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
+version = "1.0.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "c9d19de80eff169429ac1e9f48fffb163916b448a44e8e046186232046d9e1f9"
 
 [[package]]
 name = "autocfg"
@@ -29,7 +29,7 @@ version = "0.66.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "cexpr",
  "clang-sys",
  "lazy_static",
@@ -40,7 +40,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.29",
+ "syn 2.0.43",
 ]
 
 [[package]]
@@ -51,18 +51,15 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
 name = "bitmaps"
-version = "2.1.0"
+version = "3.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2"
-dependencies = [
- "typenum",
-]
+checksum = "a1d084b0137aaa901caf9f1e8b21daa6aa24d41cd806e111335541eff9683bd6"
 
 [[package]]
 name = "block"
@@ -72,11 +69,11 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
 
 [[package]]
 name = "cairo-rs"
-version = "0.18.0"
+version = "0.18.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d859b656775a6b1dd078d3e5924884e6ea88aa649a7fdde03d5b2ec56ffcc10b"
+checksum = "f33613627f0dea6a731b0605101fad59ba4f193a52c96c4687728d822605a8a1"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "cairo-sys-rs",
  "glib",
  "libc",
@@ -86,9 +83,9 @@ dependencies = [
 
 [[package]]
 name = "cairo-sys-rs"
-version = "0.18.0"
+version = "0.18.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd4d115132e01c0165e3bf5f56aedee8980b0b96ede4eb000b693c05a8adb8ff"
+checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
 dependencies = [
  "glib-sys",
  "libc",
@@ -97,9 +94,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.82"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
  "libc",
 ]
@@ -115,9 +112,9 @@ dependencies = [
 
 [[package]]
 name = "cfg-expr"
-version = "0.15.4"
+version = "0.15.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9"
+checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3"
 dependencies = [
  "smallvec",
  "target-lexicon",
@@ -173,9 +170,9 @@ dependencies = [
 
 [[package]]
 name = "futures"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -188,9 +185,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -198,15 +195,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -215,38 +212,38 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.43",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -262,9 +259,9 @@ dependencies = [
 
 [[package]]
 name = "gdk-pixbuf"
-version = "0.18.0"
+version = "0.18.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbc9c2ed73a81d556b65d08879ba4ee58808a6b1927ce915262185d6d547c6f3"
+checksum = "446f32b74d22c33b7b258d4af4ffde53c2bf96ca2e29abdf1a785fe59bd6c82c"
 dependencies = [
  "gdk-pixbuf-sys",
  "gio",
@@ -288,9 +285,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6982d9815ed6ac95b0467b189e81f29dea26d08a732926ec113e65744ed3f96c"
+checksum = "7edb019ad581f8ecf8ea8e4baa6df7c483a95b5a59be3140be6a9c3b0c632af6"
 dependencies = [
  "cairo-rs",
  "gdk-pixbuf",
@@ -340,9 +337,9 @@ dependencies = [
 
 [[package]]
 name = "gio"
-version = "0.18.1"
+version = "0.18.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7884cba6b1c5db1607d970cadf44b14a43913d42bc68766eea6a5e2fe0891524"
+checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -372,11 +369,11 @@ dependencies = [
 
 [[package]]
 name = "glib"
-version = "0.18.1"
+version = "0.18.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "331156127e8166dd815cf8d2db3a5beb492610c716c03ee6db4f2d07092af0a7"
+checksum = "951bbd7fdc5c044ede9f05170f05a3ae9479239c3afdfe2d22d537a3add15c4e"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "futures-channel",
  "futures-core",
  "futures-executor",
@@ -396,16 +393,16 @@ dependencies = [
 
 [[package]]
 name = "glib-macros"
-version = "0.18.0"
+version = "0.18.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "179643c50bf28d20d2f6eacd2531a88f2f5d9747dd0b86b8af1e8bb5dd0de3c0"
+checksum = "72793962ceece3863c2965d7f10c8786323b17c7adea75a515809fa20ab799a5"
 dependencies = [
  "heck",
- "proc-macro-crate",
+ "proc-macro-crate 2.0.1",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.43",
 ]
 
 [[package]]
@@ -460,9 +457,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc25855255120f294d874acd6eaf4fbed7ce1cdc550e2d8415ea57fafbe816d5"
+checksum = "0d958e351d2f210309b32d081c832d7de0aca0b077aa10d88336c6379bd01f7e"
 dependencies = [
  "cairo-rs",
  "gdk4",
@@ -475,9 +472,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4-sys"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1ecf3a63bf1223d68f80f72cc896c4d8c80482fbce1c9a12c66d3de7290ee46"
+checksum = "12bd9e3effea989f020e8f1ff3fa3b8c63ba93d43b899c11a118868853a56d55"
 dependencies = [
  "cairo-sys-rs",
  "gdk4-sys",
@@ -491,9 +488,9 @@ dependencies = [
 
 [[package]]
 name = "gtk4"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3b095b26f2a2df70be1805d3590eeb9d7a05ecb5be9649b82defc72dc56228c"
+checksum = "5aeb51aa3e9728575a053e1f43543cd9992ac2477e1b186ad824fd4adfb70842"
 dependencies = [
  "cairo-rs",
  "field-offset",
@@ -517,7 +514,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f"
 dependencies = [
  "anyhow",
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro-error",
  "proc-macro2",
  "quote",
@@ -526,9 +523,9 @@ dependencies = [
 
 [[package]]
 name = "gtk4-sys"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b0bdde87c50317b4f355bcbb4a9c2c414ece1b7c824fb4ad4ba8f3bdb2c6603"
+checksum = "54d8c4aa23638ce9faa2caf7e2a27d4a1295af2155c8e8d28c4d4eeca7a65eb8"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -545,9 +542,9 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.14.0"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "heck"
@@ -556,24 +553,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
-name = "im-rc"
-version = "15.1.0"
+name = "imbl"
+version = "3.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe"
+checksum = "bc3be8d8cd36f33a46b1849f31f837c44d9fa87223baee3b4bd96b8f11df81eb"
 dependencies = [
  "bitmaps",
+ "imbl-sized-chunks",
  "rand_core",
  "rand_xoshiro",
- "sized-chunks",
- "typenum",
  "version_check",
 ]
 
 [[package]]
+name = "imbl-sized-chunks"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "144006fb58ed787dcae3f54575ff4349755b00ccc99f4b4873860b654be1ed63"
+dependencies = [
+ "bitmaps",
+]
+
+[[package]]
 name = "indexmap"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -593,9 +598,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libadwaita"
-version = "0.5.2"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06444f4ca05a60693da6e9e2b591bd40a298e65a118a8d5e830771718b3e0253"
+checksum = "2fe7e70c06507ed10a16cda707f358fbe60fe0dc237498f78c686ade92fd979c"
 dependencies = [
  "gdk-pixbuf",
  "gdk4",
@@ -609,9 +614,9 @@ dependencies = [
 
 [[package]]
 name = "libadwaita-sys"
-version = "0.5.2"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "021cfe3d1fcfa82411765a791f7e9b32f35dd98ce88d2e3fa10e7320f5cc8ce7"
+checksum = "5e10aaa38de1d53374f90deeb4535209adc40cc5dba37f9704724169bceec69a"
 dependencies = [
  "gdk4-sys",
  "gio-sys",
@@ -625,9 +630,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.147"
+version = "0.2.151"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
 
 [[package]]
 name = "libloading"
@@ -641,11 +646,11 @@ dependencies = [
 
 [[package]]
 name = "libspa"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcdea6b6663acf456641a4dea1b87fa6970a3e881596237713192d8f5423b542"
+checksum = "0434617020ddca18b86067912970c55410ca654cdafd775480322f50b857a8c4"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "cc",
  "convert_case",
  "cookie-factory",
@@ -658,9 +663,9 @@ dependencies = [
 
 [[package]]
 name = "libspa-sys"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e63fc701d3375e6e255765d6a6172d9af06583115e78f3dfe2c8ff1dfd0b2dab"
+checksum = "b3e70ca3f3e70f858ef363046d06178c427b4e0b63d210c95fd87d752679d345"
 dependencies = [
  "bindgen",
  "cc",
@@ -697,9 +702,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "memoffset"
@@ -727,16 +732,15 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "nix"
-version = "0.26.2"
+version = "0.26.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
 dependencies = [
  "bitflags 1.3.2",
  "cfg-if",
  "libc",
  "memoffset 0.7.1",
  "pin-utils",
- "static_assertions",
 ]
 
 [[package]]
@@ -780,15 +784,15 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "pango"
-version = "0.18.0"
+version = "0.18.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06a9e54b831d033206160096b825f2070cf5fda7e35167b1c01e9e774f9202d1"
+checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
 dependencies = [
  "gio",
  "glib",
@@ -817,9 +821,9 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.12"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "pin-utils"
@@ -829,12 +833,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pipewire"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "062c97c31818918b8bffdc66cfd93f3e4b4141f505c63234f9ff0a658fddedab"
+checksum = "a2d009c8dd65e890b515a71950f7e4c801523b8894ff33863a40830bf762e9e9"
 dependencies = [
  "anyhow",
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "libc",
  "libspa",
  "libspa-sys",
@@ -846,9 +850,9 @@ dependencies = [
 
 [[package]]
 name = "pipewire-sys"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d558e2cffe5f97ac32c7e0b6cb6074b5271b8c2c628ac68633342ee08fdab308"
+checksum = "890c084e7b737246cb4799c86b71a0e4da536031ff7473dd639eba9f95039f64"
 dependencies = [
  "bindgen",
  "libspa-sys",
@@ -857,9 +861,9 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
 
 [[package]]
 name = "proc-macro-crate"
@@ -868,7 +872,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
 dependencies = [
  "once_cell",
- "toml_edit",
+ "toml_edit 0.19.15",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a"
+dependencies = [
+ "toml_datetime",
+ "toml_edit 0.20.2",
 ]
 
 [[package]]
@@ -897,9 +911,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.66"
+version = "1.0.71"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8"
 dependencies = [
  "unicode-ident",
 ]
@@ -913,7 +927,7 @@ dependencies = [
  "gettext-rs",
  "glib",
  "gtk4",
- "im-rc",
+ "imbl",
  "libadwaita",
  "log",
  "once_cell",
@@ -947,9 +961,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.9.3"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -959,9 +973,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.6"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -970,9 +984,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.4"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "rustc-hash"
@@ -991,61 +1005,59 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.18"
+version = "1.0.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
 
 [[package]]
 name = "serde"
-version = "1.0.183"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c"
-
-[[package]]
-name = "serde_spanned"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
 dependencies = [
- "serde",
+ "serde_derive",
 ]
 
 [[package]]
-name = "shlex"
-version = "1.1.0"
+name = "serde_derive"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
+]
 
 [[package]]
-name = "sized-chunks"
+name = "serde_spanned"
 version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
- "bitmaps",
- "typenum",
+ "serde",
 ]
 
 [[package]]
+name = "shlex"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
+
+[[package]]
 name = "slab"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
-
-[[package]]
-name = "static_assertions"
-version = "1.1.0"
+version = "1.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
 
 [[package]]
 name = "syn"
@@ -1060,9 +1072,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.29"
+version = "2.0.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
+checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1071,9 +1083,9 @@ dependencies = [
 
 [[package]]
 name = "system-deps"
-version = "6.1.1"
+version = "6.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30c2de8a4d8f4b823d634affc9cd2a74ec98c53a756f317e529a48046cbf71f3"
+checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
 dependencies = [
  "cfg-expr",
  "heck",
@@ -1084,46 +1096,46 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.11"
+version = "0.12.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
+checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
 
 [[package]]
 name = "temp-dir"
-version = "0.1.11"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab"
+checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6"
 
 [[package]]
 name = "thiserror"
-version = "1.0.47"
+version = "1.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f"
+checksum = "83a48fd946b02c0a526b2e9481c8e2a17755e47039164a86c4070446e3a4614d"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.47"
+version = "1.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b"
+checksum = "e7fbe9b594d6568a6a1443250a7e67d80b74e1e96f6d1715e1e21cc1888291d3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.43",
 ]
 
 [[package]]
 name = "toml"
-version = "0.7.6"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
+checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit",
+ "toml_edit 0.20.2",
 ]
 
 [[package]]
@@ -1137,28 +1149,33 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.19.14"
+version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
  "indexmap",
- "serde",
- "serde_spanned",
  "toml_datetime",
  "winnow",
 ]
 
 [[package]]
-name = "typenum"
-version = "1.16.0"
+name = "toml_edit"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.11"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-segmentation"
@@ -1202,9 +1219,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "winnow"
-version = "0.5.14"
+version = "0.5.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97"
+checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c"
 dependencies = [
  "memchr",
 ]
@@ -1212,9 +1229,9 @@ dependencies = [
 [[package]]
 name = "wireplumber"
 version = "0.1.0"
-source = "git+https://github.com/arcnmx/wireplumber.rs.git?rev=341b0c4e8d177f5f21c109cf88cca4f2dc1f853a#341b0c4e8d177f5f21c109cf88cca4f2dc1f853a"
+source = "git+https://github.com/arcnmx/wireplumber.rs.git?rev=2c0ee463d029d3562ee66db90554c5af573565c1#2c0ee463d029d3562ee66db90554c5af573565c1"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "gio",
  "glib",
  "libc",
@@ -1228,7 +1245,7 @@ dependencies = [
 [[package]]
 name = "wireplumber-sys"
 version = "0.1.0"
-source = "git+https://github.com/arcnmx/wireplumber.rs.git?rev=341b0c4e8d177f5f21c109cf88cca4f2dc1f853a#341b0c4e8d177f5f21c109cf88cca4f2dc1f853a"
+source = "git+https://github.com/arcnmx/wireplumber.rs.git?rev=2c0ee463d029d3562ee66db90554c5af573565c1#2c0ee463d029d3562ee66db90554c5af573565c1"
 dependencies = [
  "gio-sys",
  "glib-sys",
diff --git a/pkgs/applications/audio/pwvucontrol/default.nix b/pkgs/applications/audio/pwvucontrol/default.nix
index ae631e1ff5166..f6733b1e4fdfd 100644
--- a/pkgs/applications/audio/pwvucontrol/default.nix
+++ b/pkgs/applications/audio/pwvucontrol/default.nix
@@ -34,19 +34,19 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "pwvucontrol";
-  version = "0.3.1";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "saivert";
     repo = "pwvucontrol";
     rev = version;
-    hash = "sha256-t4JUpKtuO1JgrdsNbl0M/SwPmoqu7WxsaD74vlJeVhY=";
+    hash = "sha256-cWNWdCMk9hF8Nzq2UFBEKSx1zS8JlplMG7B5gv7BaZA=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "wireplumber-0.1.0" = "sha256-+LZ8xKok2AOegW8WvfrfZGXuQB4xHrLNshcTOHab+xQ=";
+      "wireplumber-0.1.0" = "sha256-r3p4OpmMgiFgjn1Fj4LeMOhx6R2UWollIdJRy/0kiNM=";
     };
   };
 
@@ -77,7 +77,7 @@ stdenv.mkDerivation rec {
     description = "Pipewire Volume Control";
     homepage = "https://github.com/saivert/pwvucontrol";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ figsoda ];
+    maintainers = with maintainers; [ figsoda Guanran928 ];
     mainProgram = "pwvucontrol";
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/audio/pyradio/default.nix b/pkgs/applications/audio/pyradio/default.nix
index 72cbfd443c08b..6e07d531514ce 100644
--- a/pkgs/applications/audio/pyradio/default.nix
+++ b/pkgs/applications/audio/pyradio/default.nix
@@ -6,13 +6,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pyradio";
-  version = "0.9.3.4";
+  version = "0.9.3.9";
 
   src = fetchFromGitHub {
     owner = "coderholic";
     repo = "pyradio";
     rev = "refs/tags/${version}";
-    hash = "sha256-QifBzQsvYU5kP5mnidOgWGBh3h2MvJm8Wo0i1v6j/cU=";
+    hash = "sha256-EoHCOg4nPkKRSFX/3AUKJaXzS6J1quwtv+mKeKBu5Ns=";
   };
 
   nativeBuildInputs = [
@@ -28,6 +28,12 @@ python3Packages.buildPythonApplication rec {
     rich
   ];
 
+  postPatch = ''
+    # Disable update check
+    substituteInPlace pyradio/config \
+      --replace-fail "distro = None" "distro = NixOS"
+  '';
+
   checkPhase = ''
     $out/bin/pyradio --help
   '';
diff --git a/pkgs/applications/audio/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix
index 47f8f10fbf0ff..871f9012a584c 100644
--- a/pkgs/applications/audio/qjackctl/default.nix
+++ b/pkgs/applications/audio/qjackctl/default.nix
@@ -37,7 +37,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Qt application to control the JACK sound server daemon";
+    description = "Qt application to control the JACK sound server daemon";
     mainProgram = "qjackctl";
     homepage = "https://github.com/rncbc/qjackctl";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/qmidiarp/default.nix b/pkgs/applications/audio/qmidiarp/default.nix
index 7b7f929e53798..6e9edbebf0301 100644
--- a/pkgs/applications/audio/qmidiarp/default.nix
+++ b/pkgs/applications/audio/qmidiarp/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ]);
 
   meta = with lib; {
-    description = "An advanced MIDI arpeggiator";
+    description = "Advanced MIDI arpeggiator";
     mainProgram = "qmidiarp";
     longDescription = ''
       An advanced MIDI arpeggiator, programmable step sequencer and LFO for Linux.
diff --git a/pkgs/applications/audio/qmidinet/default.nix b/pkgs/applications/audio/qmidinet/default.nix
index 29c8ad7a797f7..f6985abfbe3f8 100644
--- a/pkgs/applications/audio/qmidinet/default.nix
+++ b/pkgs/applications/audio/qmidinet/default.nix
@@ -16,7 +16,7 @@ mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
 
   meta = with lib; {
-    description = "A MIDI network gateway application that sends and receives MIDI data (ALSA Sequencer and/or JACK MIDI) over the network";
+    description = "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;
diff --git a/pkgs/applications/audio/qmmp/default.nix b/pkgs/applications/audio/qmmp/default.nix
index 943c5ab0b974a..af7abcef17db9 100644
--- a/pkgs/applications/audio/qmmp/default.nix
+++ b/pkgs/applications/audio/qmmp/default.nix
@@ -26,11 +26,11 @@
 
 stdenv.mkDerivation rec {
   pname = "qmmp";
-  version = "2.1.7";
+  version = "2.1.8";
 
   src = fetchurl {
     url = "https://qmmp.ylsoftware.com/files/qmmp/2.1/${pname}-${version}.tar.bz2";
-    hash = "sha256-5qdnvGFgFEk+00tjnVhqW29AyyjCfiFQOyYyVmAjHnM=";
+    hash = "sha256-hGphQ8epqym47C9doiSOQd3yc28XwV2UsNc7ivhaae4=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
diff --git a/pkgs/applications/audio/qpwgraph/default.nix b/pkgs/applications/audio/qpwgraph/default.nix
index 0867919ab47e7..72b06a0bab0e0 100644
--- a/pkgs/applications/audio/qpwgraph/default.nix
+++ b/pkgs/applications/audio/qpwgraph/default.nix
@@ -13,14 +13,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "qpwgraph";
-  version = "0.6.3";
+  version = "0.7.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "rncbc";
     repo = "qpwgraph";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-mTWmXHC9KkXgUIO5CIcGOoYYLx+5si/LETSmHFhmrRE=";
+    sha256 = "sha256-aXZsAOsdp0x7J0T9B9C1Qm2qDkhRNHRWUmPafdHRrOQ=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
   cmakeFlags = [ "-DCONFIG_WAYLAND=ON" ];
 
   meta = with lib; {
-    description = "Qt graph manager for PipeWire, similar to QjackCtl.";
+    description = "Qt graph manager for PipeWire, similar to QjackCtl";
     longDescription = ''
       qpwgraph is a graph manager dedicated for PipeWire,
       using the Qt C++ framework, based and pretty much like
diff --git a/pkgs/applications/audio/qsynth/default.nix b/pkgs/applications/audio/qsynth/default.nix
index 88ec50acc6dee..0895e368af0b9 100644
--- a/pkgs/applications/audio/qsynth/default.nix
+++ b/pkgs/applications/audio/qsynth/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "qsynth";
-  version = "0.9.90";
+  version = "0.9.91";
 
   src = fetchurl {
     url = "mirror://sourceforge/qsynth/${pname}-${version}.tar.gz";
-    hash = "sha256-5lqmoUku4/8oKxlQio1nJtMu1kn42iK8mi0K3s9y70M=";
+    hash = "sha256-CS/rCvm7IuVwDN1PURO6ADVXTZkX7OYzKJP8xfOHN4E=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
diff --git a/pkgs/applications/audio/quodlibet/default.nix b/pkgs/applications/audio/quodlibet/default.nix
index f7baad9c53a07..66d74efdcfd7a 100644
--- a/pkgs/applications/audio/quodlibet/default.nix
+++ b/pkgs/applications/audio/quodlibet/default.nix
@@ -5,7 +5,7 @@
   # build time
 , gettext
 , gobject-introspection
-, wrapGAppsHook
+, wrapGAppsHook3
 
   # runtime
 , adwaita-icon-theme
@@ -62,7 +62,7 @@ python3.pkgs.buildPythonApplication rec {
   nativeBuildInputs = [
     gettext
     gobject-introspection
-    wrapGAppsHook
+    wrapGAppsHook3
   ] ++ (with python3.pkgs; [
     sphinx-rtd-theme
     sphinxHook
diff --git a/pkgs/applications/audio/radioboat/default.nix b/pkgs/applications/audio/radioboat/default.nix
index b5421115201a3..ebb19dcf479e1 100644
--- a/pkgs/applications/audio/radioboat/default.nix
+++ b/pkgs/applications/audio/radioboat/default.nix
@@ -50,7 +50,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A terminal web radio client";
+    description = "Terminal web radio client";
     mainProgram = "radioboat";
     homepage = "https://github.com/slashformotion/radioboat";
     license = licenses.asl20;
diff --git a/pkgs/applications/audio/radiotray-ng/default.nix b/pkgs/applications/audio/radiotray-ng/default.nix
index 56c316dadcdb4..51dbc26f5617d 100644
--- a/pkgs/applications/audio/radiotray-ng/default.nix
+++ b/pkgs/applications/audio/radiotray-ng/default.nix
@@ -26,7 +26,7 @@
 # Testing
 , gtest
 # Fixup
-, wrapGAppsHook
+, wrapGAppsHook3
 , makeWrapper
 }:
 
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-/0GlQdSsIPKGrDT9CgxvaH8TpAbqxFduwL2A2+BSrEI=";
   };
 
-  nativeBuildInputs = [ cmake pkg-config wrapGAppsHook makeWrapper ];
+  nativeBuildInputs = [ cmake pkg-config wrapGAppsHook3 makeWrapper ];
 
   buildInputs = [
     curl
@@ -102,7 +102,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An internet radio player for linux";
+    description = "Internet radio player for linux";
     homepage = "https://github.com/ebruck/radiotray-ng";
     license = licenses.gpl3;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/pkgs/applications/audio/reaper/default.nix b/pkgs/applications/audio/reaper/default.nix
index 7adba1d0c1566..833b4e3b073a1 100644
--- a/pkgs/applications/audio/reaper/default.nix
+++ b/pkgs/applications/audio/reaper/default.nix
@@ -28,13 +28,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "reaper";
-  version = "7.15";
+  version = "7.16";
 
   src = fetchurl {
     url = url_for_platform version stdenv.hostPlatform.qemuArch;
-    hash = if stdenv.isDarwin then "sha256-7tWgbHIkARgsPi0buvbQb4qTqndyPwRRqut1Gj4WNZE=" else {
-      x86_64-linux = "sha256-O1xh+DKwPKTcQrNhWMX5ErKa1hXq0yeyt/XJMQav11c=";
-      aarch64-linux = "sha256-rQE8Aa+iFWpA18udCXm4JW8BPTEDeEQAupy353Sbcl8=";
+    hash = if stdenv.isDarwin then "sha256-UMliD9tk8VDpeQ4tBC31peemv7HAKHW0xtqoSkzYG4Y=" else {
+      x86_64-linux = "sha256-sK0GVK29SGkLBILeWcFjcvQ956NCPb1HvqmXLeLbgP8=";
+      aarch64-linux = "sha256-mJ/UtrWaPq3Oar8rMvRFm8iafK1I7bL42deIQyiHVMk=";
     }.${stdenv.hostPlatform.system};
   };
 
diff --git a/pkgs/applications/audio/reaper/updater.sh b/pkgs/applications/audio/reaper/updater.sh
index 31832f7173c66..ef070c38aa229 100755
--- a/pkgs/applications/audio/reaper/updater.sh
+++ b/pkgs/applications/audio/reaper/updater.sh
@@ -9,18 +9,14 @@ function set_hash_for_linux() {
   local arch=$1
   pkg_hash=$(nix-prefetch-url https://www.reaper.fm/files/${reaper_ver%.*}.x/reaper${reaper_ver/./}_linux_$arch.tar.xz)
   pkg_hash=$(nix hash to-sri "sha256:$pkg_hash")
-  # reset the version so the second architecture update doesn't get ignored
-  update-source-version reaper 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" --system=$arch-linux
-  update-source-version reaper "${reaper_ver}" "$pkg_hash" --system=$arch-linux
+  update-source-version reaper "${reaper_ver}" "$pkg_hash" --system=$arch-linux --ignore-same-version
 }
 
 function set_hash_for_darwin() {
   local arch=$1
   pkg_hash=$(nix-prefetch-url https://www.reaper.fm/files/${reaper_ver%.*}.x/reaper${reaper_ver/./}_universal.dmg)
   pkg_hash=$(nix hash to-sri "sha256:$pkg_hash")
-  # reset the version so the second architecture update doesn't get ignored
-  update-source-version reaper 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" --system=$arch-darwin
-  update-source-version reaper "${reaper_ver}" "$pkg_hash" --system=$arch-darwin
+  update-source-version reaper "${reaper_ver}" "$pkg_hash" --system=$arch-darwin --ignore-same-version
 }
 
 set_hash_for_linux aarch64
diff --git a/pkgs/applications/audio/rhvoice/default.nix b/pkgs/applications/audio/rhvoice/default.nix
index 7fe8a12dd42d7..16614d0e32e69 100644
--- a/pkgs/applications/audio/rhvoice/default.nix
+++ b/pkgs/applications/audio/rhvoice/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "A free and open source speech synthesizer for Russian language and others";
+    description = "Free and open source speech synthesizer for Russian language and others";
     homepage = "https://github.com/Olga-Yakovleva/RHVoice/wiki";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ berce ];
diff --git a/pkgs/applications/audio/rhythmbox/default.nix b/pkgs/applications/audio/rhythmbox/default.nix
index c14638912af21..f09a663454b95 100644
--- a/pkgs/applications/audio/rhythmbox/default.nix
+++ b/pkgs/applications/audio/rhythmbox/default.nix
@@ -4,7 +4,6 @@
 , pkg-config
 , meson
 , ninja
-, fetchFromGitLab
 , python3
 , vala
 , glib
@@ -27,7 +26,7 @@
 , tdb
 , json-glib
 , itstool
-, wrapGAppsHook
+, wrapGAppsHook3
 , desktop-file-utils
 , gst_all_1
 , gst_plugins ? with gst_all_1; [ gst-plugins-good gst-plugins-ugly ]
@@ -50,7 +49,7 @@ stdenv.mkDerivation rec {
     vala
     glib
     itstool
-    wrapGAppsHook
+    wrapGAppsHook3
     desktop-file-utils
     gobject-introspection
   ];
@@ -114,7 +113,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/rhythmbox";
-    description = "A music playing application for GNOME";
+    description = "Music playing application for GNOME";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.rasendubi ];
diff --git a/pkgs/applications/audio/rofi-mpd/default.nix b/pkgs/applications/audio/rofi-mpd/default.nix
index 65c4c700e262e..ec76fbdf801bb 100644
--- a/pkgs/applications/audio/rofi-mpd/default.nix
+++ b/pkgs/applications/audio/rofi-mpd/default.nix
@@ -17,7 +17,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A rofi menu for interacting with MPD written in Python";
+    description = "Rofi menu for interacting with MPD written in Python";
     mainProgram = "rofi-mpd";
     homepage = "https://github.com/JakeStanger/Rofi_MPD";
     license = licenses.mit;
diff --git a/pkgs/applications/audio/samplebrain/default.nix b/pkgs/applications/audio/samplebrain/default.nix
index 54314812491c3..ae3549ff16d91 100644
--- a/pkgs/applications/audio/samplebrain/default.nix
+++ b/pkgs/applications/audio/samplebrain/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A custom sample mashing app";
+    description = "Custom sample mashing app";
     mainProgram = "samplebrain";
     homepage = "https://thentrythis.org/projects/samplebrain";
     changelog = "https://gitlab.com/then-try-this/samplebrain/-/releases/v${version}_release";
diff --git a/pkgs/applications/audio/samplv1/default.nix b/pkgs/applications/audio/samplv1/default.nix
index 1af25d0d75b56..991af8eac354b 100644
--- a/pkgs/applications/audio/samplv1/default.nix
+++ b/pkgs/applications/audio/samplv1/default.nix
@@ -17,7 +17,7 @@ mkDerivation rec {
   buildInputs = [ libjack2 alsa-lib liblo libsndfile lv2 qtbase rubberband ];
 
   meta = with lib; {
-    description = "An old-school all-digital polyphonic sampler synthesizer with stereo fx";
+    description = "Old-school all-digital polyphonic sampler synthesizer with stereo fx";
     mainProgram = "samplv1_jack";
     homepage = "http://samplv1.sourceforge.net/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/setbfree/default.nix b/pkgs/applications/audio/setbfree/default.nix
index d1ac18eabbcf3..309cac8e8559c 100644
--- a/pkgs/applications/audio/setbfree/default.nix
+++ b/pkgs/applications/audio/setbfree/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation  rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A DSP tonewheel organ emulator";
+    description = "DSP tonewheel organ emulator";
     homepage = "https://setbfree.org";
     license = licenses.gpl2;
     platforms = [ "x86_64-linux" "i686-linux" ]; # fails on ARM and Darwin
diff --git a/pkgs/applications/audio/sfxr-qt/default.nix b/pkgs/applications/audio/sfxr-qt/default.nix
index 529d12db967f8..33724f9230e73 100644
--- a/pkgs/applications/audio/sfxr-qt/default.nix
+++ b/pkgs/applications/audio/sfxr-qt/default.nix
@@ -57,7 +57,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/agateau/sfxr-qt";
-    description = "A sound effect generator, QtQuick port of sfxr";
+    description = "Sound effect generator, QtQuick port of sfxr";
     mainProgram = "sfxr-qt";
     license = licenses.gpl2;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/applications/audio/sfxr/default.nix b/pkgs/applications/audio/sfxr/default.nix
index 552bc8ea52a56..d3314facb6920 100644
--- a/pkgs/applications/audio/sfxr/default.nix
+++ b/pkgs/applications/audio/sfxr/default.nix
@@ -6,7 +6,7 @@
 , SDL
 , gtk3
 , gsettings-desktop-schemas
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
     SDL
     gtk3
     gsettings-desktop-schemas
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   makeFlags = [ "DESTDIR=$(out)" ];
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "http://www.drpetter.se/project_sfxr.html";
-    description = "A videogame sound effect generator";
+    description = "Videogame sound effect generator";
     mainProgram = "sfxr";
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/applications/audio/sidplayfp/default.nix b/pkgs/applications/audio/sidplayfp/default.nix
index 72e3e380a8481..c0a30fb900162 100644
--- a/pkgs/applications/audio/sidplayfp/default.nix
+++ b/pkgs/applications/audio/sidplayfp/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "sidplayfp";
-  version = "2.7.0";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     owner = "libsidplayfp";
     repo = "sidplayfp";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-bIX9BByUdScbS0NCrUjF5PTHG9T6hrPGjD5XM0eQgfA=";
+    hash = "sha256-2OgU2J/tot5HK4FV1pvZzI9u/e8p65Ymnqj7IdCcfIs=";
   };
 
   strictDeps = true;
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A SID player using libsidplayfp";
+    description = "SID player using libsidplayfp";
     homepage = "https://github.com/libsidplayfp/sidplayfp";
     license = with licenses; [ gpl2Plus ];
     mainProgram = "sidplayfp";
diff --git a/pkgs/applications/audio/snd/default.nix b/pkgs/applications/audio/snd/default.nix
index 6958a38f25863..67ec87343c74a 100644
--- a/pkgs/applications/audio/snd/default.nix
+++ b/pkgs/applications/audio/snd/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "snd";
-  version = "24.2";
+  version = "24.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/snd/snd-${version}.tar.gz";
-    sha256 = "sha256-1ngnhOpPaRGH3xmiA7cUfVDqlJM1ZC+XfeSiV8vcdls=";
+    sha256 = "sha256-nP4ngNUQvveSQBEqXlzYdaqD0SGzTDPwIiWhSabRu+8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/audio/sonata/default.nix b/pkgs/applications/audio/sonata/default.nix
index 97397da96f259..8b6b9631a85d0 100644
--- a/pkgs/applications/audio/sonata/default.nix
+++ b/pkgs/applications/audio/sonata/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, wrapGAppsHook, gettext
+{ lib, fetchFromGitHub, wrapGAppsHook3, gettext
 , python3Packages, gnome, gtk3, glib, gdk-pixbuf, gsettings-desktop-schemas, gobject-introspection }:
 
 let
@@ -19,7 +19,7 @@ in buildPythonApplication rec {
   nativeBuildInputs = [
     gettext
     gobject-introspection
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
@@ -45,7 +45,7 @@ in buildPythonApplication rec {
   '';
 
   meta = {
-    description = "An elegant client for the Music Player Daemon";
+    description = "Elegant client for the Music Player Daemon";
     mainProgram = "sonata";
     longDescription = ''
       Sonata is an elegant client for the Music Player Daemon.
diff --git a/pkgs/applications/audio/songrec/default.nix b/pkgs/applications/audio/songrec/default.nix
index 5493418ba1a27..37d69bcd48a19 100644
--- a/pkgs/applications/audio/songrec/default.nix
+++ b/pkgs/applications/audio/songrec/default.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An open-source Shazam client for Linux, written in Rust";
+    description = "Open-source Shazam client for Linux, written in Rust";
     homepage = "https://github.com/marin-m/SongRec";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/sony-headphones-client/default.nix b/pkgs/applications/audio/sony-headphones-client/default.nix
index 24cae82f1b02d..81d405b9d85ac 100644
--- a/pkgs/applications/audio/sony-headphones-client/default.nix
+++ b/pkgs/applications/audio/sony-headphones-client/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A client recreating the functionality of the Sony Headphones app";
+    description = "Client recreating the functionality of the Sony Headphones app";
     homepage = "https://github.com/Plutoberth/SonyHeadphonesClient";
     license = licenses.mit;
     maintainers = with maintainers; [ stunkymonkey ];
diff --git a/pkgs/applications/audio/sooperlooper/default.nix b/pkgs/applications/audio/sooperlooper/default.nix
index 35fb524ab3015..5e2ea785b281c 100644
--- a/pkgs/applications/audio/sooperlooper/default.nix
+++ b/pkgs/applications/audio/sooperlooper/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A live looping sampler capable of immediate loop recording, overdubbing, multiplying, reversing and more";
+    description = "Live looping sampler capable of immediate loop recording, overdubbing, multiplying, reversing and more";
     longDescription = ''
       It allows for multiple simultaneous multi-channel loops limited only by your computer's available memory.
       The application is a standalone JACK client with an engine controllable via OSC and MIDI.
diff --git a/pkgs/applications/audio/sorcer/default.nix b/pkgs/applications/audio/sorcer/default.nix
index 4da290791758d..6c28d540458f5 100644
--- a/pkgs/applications/audio/sorcer/default.nix
+++ b/pkgs/applications/audio/sorcer/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     homepage = "http://openavproductions.com/sorcer/";
-    description = "A wavetable LV2 plugin synth, targeted at the electronic / dubstep genre";
+    description = "Wavetable LV2 plugin synth, targeted at the electronic / dubstep genre";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/sound-juicer/default.nix b/pkgs/applications/audio/sound-juicer/default.nix
index 65a12c423b3f3..ef299ac7074cf 100644
--- a/pkgs/applications/audio/sound-juicer/default.nix
+++ b/pkgs/applications/audio/sound-juicer/default.nix
@@ -16,7 +16,7 @@
 , libdiscid
 , isocodes
 , gsettings-desktop-schemas
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 stdenv.mkDerivation rec {
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     pkg-config
     itstool
     libxml2
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A Gnome CD Ripper";
+    description = "Gnome CD Ripper";
     mainProgram = "sound-juicer";
     homepage = "https://gitlab.gnome.org/GNOME/sound-juicer";
     maintainers = [ maintainers.bdimcheff ];
diff --git a/pkgs/applications/audio/soundconverter/default.nix b/pkgs/applications/audio/soundconverter/default.nix
index b07ed63f220df..27238e36d088c 100644
--- a/pkgs/applications/audio/soundconverter/default.nix
+++ b/pkgs/applications/audio/soundconverter/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchurl
 # Optional due to unfree license.
 , faacSupport ? false
-, glib, python3Packages, gtk3, wrapGAppsHook
+, glib, python3Packages, gtk3, wrapGAppsHook3
 , gsettings-desktop-schemas, intltool, xvfb-run
 , gobject-introspection, gst_all_1, fdk-aac-encoder }:
 
@@ -26,7 +26,7 @@ python3Packages.buildPythonApplication rec {
 
   nativeBuildInputs = [
     intltool
-    wrapGAppsHook
+    wrapGAppsHook3
     gobject-introspection
   ];
 
diff --git a/pkgs/applications/audio/soundsource/default.nix b/pkgs/applications/audio/soundsource/default.nix
index e211a5736689e..8f2d743e03df1 100644
--- a/pkgs/applications/audio/soundsource/default.nix
+++ b/pkgs/applications/audio/soundsource/default.nix
@@ -5,11 +5,11 @@
 }:
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "soundsource";
-  version = "5.6.0";
+  version = "5.6.3";
 
   src = fetchurl {
-    url = "https://web.archive.org/web/20230707140658/https://rogueamoeba.com/soundsource/download/SoundSource.zip";
-    sha256 = "1avm1jr75mjbps0fad3glshrwl42vnhc0f9sak038ny85f3apyi0";
+    url = "https://web.archive.org/web/20240505002011/https://rogueamoeba.com/soundsource/download/SoundSource.zip";
+    sha256 = "sha256-uXQw4MEV4hkrd7tjNCxtuXpbfmdW8bilI5ZmXwn9BLM=";
   };
   dontUnpack = true;
 
diff --git a/pkgs/applications/audio/soundtracker/default.nix b/pkgs/applications/audio/soundtracker/default.nix
index bf308fd29d280..02c4813e03703 100644
--- a/pkgs/applications/audio/soundtracker/default.nix
+++ b/pkgs/applications/audio/soundtracker/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
   ] ++ lib.optional stdenv.isLinux alsa-lib;
 
   meta = with lib; {
-    description = "A music tracking tool similar in design to the DOS program FastTracker and the Amiga legend ProTracker";
+    description = "Music tracking tool similar in design to the DOS program FastTracker and the Amiga legend ProTracker";
     longDescription = ''
       SoundTracker is a pattern-oriented music editor (similar to the DOS
       program 'FastTracker'). Samples are lined up on tracks and patterns
diff --git a/pkgs/applications/audio/spectrojack/default.nix b/pkgs/applications/audio/spectrojack/default.nix
index 54cb7101e6e8f..92ac92af7e9a3 100644
--- a/pkgs/applications/audio/spectrojack/default.nix
+++ b/pkgs/applications/audio/spectrojack/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A little spectrogram/audiogram/sonogram/whatever for JACK";
+    description = "Little spectrogram/audiogram/sonogram/whatever for JACK";
     homepage = "http://sed.free.fr/spectrojack";
     license = lib.licenses.publicDomain;
     maintainers = with lib.maintainers; [ sleexyz ];
diff --git a/pkgs/applications/audio/spek/default.nix b/pkgs/applications/audio/spek/default.nix
index bd206709c26e5..6bc15adf6082e 100644
--- a/pkgs/applications/audio/spek/default.nix
+++ b/pkgs/applications/audio/spek/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, intltool, pkg-config, ffmpeg, wxGTK32, gtk3, wrapGAppsHook }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, intltool, pkg-config, ffmpeg, wxGTK32, gtk3, wrapGAppsHook3 }:
 
 stdenv.mkDerivation rec {
   pname = "spek";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-VYt2so2k3Rk3sLSV1Tf1G2pESYiXygrKr9Koop8ChCg=";
   };
 
-  nativeBuildInputs = [ autoreconfHook intltool pkg-config wrapGAppsHook ];
+  nativeBuildInputs = [ autoreconfHook intltool pkg-config wrapGAppsHook3 ];
 
   buildInputs = [ ffmpeg wxGTK32 gtk3 ];
 
diff --git a/pkgs/applications/audio/spotify-cli-linux/default.nix b/pkgs/applications/audio/spotify-cli-linux/default.nix
index 73b1ea9132061..38aec6ea6f082 100644
--- a/pkgs/applications/audio/spotify-cli-linux/default.nix
+++ b/pkgs/applications/audio/spotify-cli-linux/default.nix
@@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://pwittchen.github.io/spotify-cli-linux/";
     maintainers = [ maintainers.kmein ];
-    description = "A command line interface to Spotify on Linux.";
+    description = "Command line interface to Spotify on Linux";
     mainProgram = "spotifycli";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/spotify-player/default.nix b/pkgs/applications/audio/spotify-player/default.nix
index e4e02f03891b9..2a250ff946652 100644
--- a/pkgs/applications/audio/spotify-player/default.nix
+++ b/pkgs/applications/audio/spotify-player/default.nix
@@ -33,16 +33,16 @@ assert lib.assertOneOf "withAudioBackend" withAudioBackend [ "" "alsa" "pulseaud
 
 rustPlatform.buildRustPackage rec {
   pname = "spotify-player";
-  version = "0.17.2";
+  version = "0.18.2";
 
   src = fetchFromGitHub {
     owner = "aome510";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-TwMQtyg8ygFTI5DgT5rBVkZE31U4puaANIo5S8W0TXU=";
+    hash = "sha256-bLUPQgqSsE9tF5YiFj5B+Ylyy96DhWFNjwqXbQ9H8uc=";
   };
 
-  cargoHash = "sha256-RTvMywRWdZiBgNMjlUGa4jlD0HYOL3ESkVppGlsl4So=";
+  cargoHash = "sha256-rptGA7J63rHdmxuPIguhZYYs8tZbpidJ0fXroBBoEIM=";
 
   nativeBuildInputs = [
     pkg-config
@@ -92,7 +92,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = {
-    description = "A terminal spotify player that has feature parity with the official client";
+    description = "Terminal spotify player that has feature parity with the official client";
     homepage = "https://github.com/aome510/spotify-player";
     changelog = "https://github.com/aome510/spotify-player/releases/tag/v${version}";
     mainProgram = "spotify_player";
diff --git a/pkgs/applications/audio/spotify-qt/default.nix b/pkgs/applications/audio/spotify-qt/default.nix
index d5947d145172b..0fbf7c9438427 100644
--- a/pkgs/applications/audio/spotify-qt/default.nix
+++ b/pkgs/applications/audio/spotify-qt/default.nix
@@ -1,4 +1,5 @@
-{ fetchFromGitHub
+{ stdenvNoCC
+, fetchFromGitHub
 , lib
 , cmake
 , mkDerivation
@@ -26,12 +27,18 @@ mkDerivation rec {
 
    installFlags = [ "DESTDIR=$(out)" ];
 
+   postInstall = lib.optionalString stdenvNoCC.isDarwin ''
+     mkdir -p $out/Applications
+     mv $out/bin/spotify-qt.app $out/Applications
+     ln $out/Applications/spotify-qt.app/Contents/MacOS/spotify-qt $out/bin/spotify-qt
+   '';
+
    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; [ ];
+    maintainers = with maintainers; [ iivusly ];
     platforms = platforms.unix;
    };
 }
diff --git a/pkgs/applications/audio/spotify/linux.nix b/pkgs/applications/audio/spotify/linux.nix
index 202f8b4ceeec1..8886e851c3c95 100644
--- a/pkgs/applications/audio/spotify/linux.nix
+++ b/pkgs/applications/audio/spotify/linux.nix
@@ -1,4 +1,4 @@
-{ fetchurl, lib, stdenv, squashfsTools, xorg, alsa-lib, makeShellWrapper, wrapGAppsHook, openssl, freetype
+{ fetchurl, lib, stdenv, squashfsTools, xorg, alsa-lib, makeShellWrapper, wrapGAppsHook3, openssl, freetype
 , glib, pango, cairo, atk, gdk-pixbuf, gtk3, cups, nspr, nss_latest, libpng, libnotify
 , libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_4, curlWithGnuTls, zlib, gnome
 , at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa, libxkbcommon
@@ -14,14 +14,14 @@ let
   # If an update breaks things, one of those might have valuable info:
   # https://aur.archlinux.org/packages/spotify/
   # https://community.spotify.com/t5/Desktop-Linux
-  version = "1.2.31.1205.g4d59ad7c";
+  version = "1.2.37.701.ge66eb7bc";
   # To get the latest stable revision:
   # curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
   # To get general information:
   # curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
   # More examples of api usage:
   # https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
-  rev = "75";
+  rev = "76";
 
   deps = [
     alsa-lib
@@ -86,11 +86,12 @@ stdenv.mkDerivation {
   # spotify ourselves:
   # https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
   src = fetchurl {
+    name = "spotify-${version}-${rev}.snap";
     url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
-    hash = "sha512-o4iLcbNqbsxo9YJMy0SXO7Udv4CMhhBcsf53UuqWKFFWY/jKVN+Lb+dB7Jf9+UowpmbrP44w97Oi+dnbfFXYjQ==";
+    hash = "sha512-k7aw1QM3NCFkm0tXcHgYyeEBagGFpCL6JdWlFruJszPloiCy5vopOsD4PdqyiSEs0rSUP0rLxX2UBs3XuI5cUA==";
   };
 
-  nativeBuildInputs = [ wrapGAppsHook makeShellWrapper squashfsTools ];
+  nativeBuildInputs = [ wrapGAppsHook3 makeShellWrapper squashfsTools ];
 
   dontStrip = true;
   dontPatchELF = true;
@@ -120,11 +121,15 @@ stdenv.mkDerivation {
   # Prevent double wrapping
   dontWrapGApps = true;
 
+  env = rec {
+    libdir = "${placeholder "out"}/lib/spotify";
+    librarypath = "${lib.makeLibraryPath deps}:${libdir}";
+  };
+
   installPhase =
     ''
       runHook preInstall
 
-      libdir=$out/lib/spotify
       mkdir -p $libdir
       mv ./usr/* $out/
 
@@ -147,16 +152,6 @@ stdenv.mkDerivation {
         --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
         --set-rpath $rpath $out/share/spotify/spotify
 
-      librarypath="${lib.makeLibraryPath deps}:$libdir"
-      wrapProgramShell $out/share/spotify/spotify \
-        ''${gappsWrapperArgs[@]} \
-        ${lib.optionalString (deviceScaleFactor != null) ''
-          --add-flags "--force-device-scale-factor=${toString deviceScaleFactor}" \
-        ''} \
-        --prefix LD_LIBRARY_PATH : "$librarypath" \
-        --prefix PATH : "${gnome.zenity}/bin" \
-        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}"
-
       # fix Icon line in the desktop file (#48062)
       sed -i "s:^Icon=.*:Icon=spotify-client:" "$out/share/spotify/spotify.desktop"
 
@@ -175,6 +170,21 @@ stdenv.mkDerivation {
       runHook postInstall
     '';
 
+    fixupPhase = ''
+      runHook preFixup
+
+      wrapProgramShell $out/share/spotify/spotify \
+        ''${gappsWrapperArgs[@]} \
+        ${lib.optionalString (deviceScaleFactor != null) ''
+          --add-flags "--force-device-scale-factor=${toString deviceScaleFactor}" \
+        ''} \
+        --prefix LD_LIBRARY_PATH : "$librarypath" \
+        --prefix PATH : "${gnome.zenity}/bin" \
+        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}"
+
+      runHook postFixup
+    '';
+
   meta = meta // {
     maintainers = with lib.maintainers; [ eelco ftrvxmtrx sheenobu timokau ma27 ];
   };
diff --git a/pkgs/applications/audio/spotifyd/default.nix b/pkgs/applications/audio/spotifyd/default.nix
index c80843896425b..13c85e7d3584c 100644
--- a/pkgs/applications/audio/spotifyd/default.nix
+++ b/pkgs/applications/audio/spotifyd/default.nix
@@ -38,7 +38,7 @@ rustPackages.rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An open source Spotify client running as a UNIX daemon";
+    description = "Open source Spotify client running as a UNIX daemon";
     homepage = "https://spotifyd.rs/";
     changelog = "https://github.com/Spotifyd/spotifyd/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/squeezelite/default.nix b/pkgs/applications/audio/squeezelite/default.nix
deleted file mode 100644
index deaec9e16d7cc..0000000000000
--- a/pkgs/applications/audio/squeezelite/default.nix
+++ /dev/null
@@ -1,115 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, flac
-, libgpiod
-, libmad
-, libpulseaudio
-, libvorbis
-, mpg123
-, audioBackend ? if stdenv.isLinux then "alsa" else "portaudio"
-, alsaSupport ? stdenv.isLinux
-, alsa-lib
-, dsdSupport ? true
-, faad2Support ? true
-, faad2
-, ffmpegSupport ? true
-, ffmpeg
-, opusSupport ? true
-, opusfile
-, resampleSupport ? true
-, soxr
-, sslSupport ? true
-, openssl
-, portaudioSupport ? stdenv.isDarwin
-, portaudio
-, slimserver
-, AudioToolbox
-, AudioUnit
-, Carbon
-, CoreAudio
-, CoreVideo
-, VideoDecodeAcceleration
-}:
-
-let
-  inherit (lib) optional optionals optionalString;
-
-  pulseSupport = audioBackend == "pulse";
-
-  binName = "squeezelite${optionalString pulseSupport "-pulse"}";
-
-in
-stdenv.mkDerivation {
-  # the nixos module uses the pname as the binary name
-  pname = binName;
-  # versions are specified in `squeezelite.h`
-  # see https://github.com/ralph-irving/squeezelite/issues/29
-  version = "2.0.0.1486";
-
-  src = fetchFromGitHub {
-    owner = "ralph-irving";
-    repo = "squeezelite";
-    rev = "fd4a82e7d0e53124d9618320f3c115d90654509d";
-    hash = "sha256-nR2Px7VYjAktUsueEyBAV2392+/dX6JYIy7YSMh05c0=";
-  };
-
-  buildInputs = [ flac libmad libvorbis mpg123 ]
-    ++ optional pulseSupport libpulseaudio
-    ++ optional alsaSupport alsa-lib
-    ++ optional portaudioSupport portaudio
-    ++ optionals stdenv.isDarwin [ CoreVideo VideoDecodeAcceleration CoreAudio AudioToolbox AudioUnit Carbon ]
-    ++ optional faad2Support faad2
-    ++ optional ffmpegSupport ffmpeg
-    ++ optional opusSupport opusfile
-    ++ optional resampleSupport soxr
-    ++ optional sslSupport openssl
-    ++ optional (stdenv.isAarch32 or stdenv.isAarch64) libgpiod;
-
-  enableParallelBuilding = true;
-
-  postPatch = ''
-    substituteInPlace opus.c \
-      --replace "<opusfile.h>" "<opus/opusfile.h>"
-  '';
-
-  EXECUTABLE = binName;
-
-  OPTS = [ "-DLINKALL" "-DGPIO" ]
-    ++ optional dsdSupport "-DDSD"
-    ++ optional (!faad2Support) "-DNO_FAAD"
-    ++ optional ffmpegSupport "-DFFMPEG"
-    ++ optional opusSupport "-DOPUS"
-    ++ optional portaudioSupport "-DPORTAUDIO"
-    ++ optional pulseSupport "-DPULSEAUDIO"
-    ++ optional resampleSupport "-DRESAMPLE"
-    ++ optional sslSupport "-DUSE_SSL"
-    ++ optional (stdenv.isAarch32 or stdenv.isAarch64) "-DRPI";
-
-  env = lib.optionalAttrs stdenv.isDarwin {
-    LDADD = "-lportaudio -lpthread";
-  };
-
-  installPhase = ''
-    runHook preInstall
-
-    install -Dm555 -t $out/bin                   ${binName}
-    install -Dm444 -t $out/share/doc/squeezelite *.txt *.md
-
-    runHook postInstall
-  '';
-
-  passthru = {
-    inherit (slimserver) tests;
-    updateScript = ./update.sh;
-  };
-
-  meta = with lib; {
-    description = "Lightweight headless squeezebox client emulator";
-    homepage = "https://github.com/ralph-irving/squeezelite";
-    license = with licenses; [ gpl3Plus ] ++ optional dsdSupport bsd2;
-    mainProgram = binName;
-    maintainers = with maintainers; [ adamcstephens ];
-    platforms = if (audioBackend == "pulse") then platforms.linux else platforms.linux ++ platforms.darwin;
-  };
-}
diff --git a/pkgs/applications/audio/squeezelite/update.sh b/pkgs/applications/audio/squeezelite/update.sh
deleted file mode 100755
index ac55144d158d5..0000000000000
--- a/pkgs/applications/audio/squeezelite/update.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=./. -i bash -p common-updater-scripts coreutils curl gnused jq nix nix-prefetch-git nix-prefetch-github ripgrep
-
-set -euo pipefail
-
-latestRev="$(curl -s "https://api.github.com/repos/ralph-irving/squeezelite/commits?per_page=1" | jq -r ".[0].sha")"
-latestVersion="$( curl -s https://raw.githubusercontent.com/ralph-irving/squeezelite/${latestRev}/squeezelite.h | rg 'define (MAJOR|MINOR|MICRO)_VERSION' | sed 's/#.*VERSION //' | tr '\n' '.' | sed  -e 's/"//g' -e 's/\.$//')"
-currentVersion=$(nix-instantiate --eval -E "with import ./. {}; squeezelite.version or (lib.getVersion squeezelite)" | tr -d '"')
-
-if [[ "$currentVersion" == "$latestVersion" ]]; then
-  echo "squeezelite is up-to-date: $currentVersion"
-  exit 0
-fi
-
-srcHash=$(nix-prefetch-github ralph-irving squeezelite --rev "$latestRev" | jq -r .hash)
-
-
-update-source-version squeezelite "$latestVersion" "$srcHash" --rev="${latestRev}"
diff --git a/pkgs/applications/audio/squishyball/default.nix b/pkgs/applications/audio/squishyball/default.nix
index af8eb9b373142..170cfe63ba255 100644
--- a/pkgs/applications/audio/squishyball/default.nix
+++ b/pkgs/applications/audio/squishyball/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool to perform sample comparison testing on the command line";
+    description = "Tool to perform sample comparison testing on the command line";
     longDescription = ''
        squishyball is a simple command-line utility for performing
        double-blind A/B, A/B/X or X/X/Y testing on the command line.
diff --git a/pkgs/applications/audio/ssrc/default.nix b/pkgs/applications/audio/ssrc/default.nix
index d6d776c860588..73fd622fbeb23 100644
--- a/pkgs/applications/audio/ssrc/default.nix
+++ b/pkgs/applications/audio/ssrc/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "A high quality audio sampling rate converter";
+    description = "High quality audio sampling rate converter";
     longDescription = ''
       This program converts sampling rates of PCM wav files. This
       program also has a function to apply dither to its output and
diff --git a/pkgs/applications/audio/stone-phaser/default.nix b/pkgs/applications/audio/stone-phaser/default.nix
index a60200fa567fd..6bef356172cd5 100644
--- a/pkgs/applications/audio/stone-phaser/default.nix
+++ b/pkgs/applications/audio/stone-phaser/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     homepage = "https://github.com/jpcima/stone-phaser";
-    description = "A classic analog phaser effect, made with DPF and Faust";
+    description = "Classic analog phaser effect, made with DPF and Faust";
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
     license = licenses.boost;
diff --git a/pkgs/applications/audio/sublime-music/default.nix b/pkgs/applications/audio/sublime-music/default.nix
deleted file mode 100644
index 2ce12df23dcf6..0000000000000
--- a/pkgs/applications/audio/sublime-music/default.nix
+++ /dev/null
@@ -1,127 +0,0 @@
-{ lib
-, fetchFromGitHub
-, python3
-, gobject-introspection
-, gtk3
-, pango
-, wrapGAppsHook
-, xvfb-run
-, chromecastSupport ? false
-, serverSupport ? false
-, keyringSupport ? true
-, notifySupport ? true
-, libnotify
-, networkSupport ? true
-, networkmanager
-}:
-
-let
-  python = python3.override {
-    packageOverrides = self: super: {
-      semver = super.semver.overridePythonAttrs (oldAttrs: rec {
-        version = "2.13.0";
-        src = fetchFromGitHub {
-          owner = "python-semver";
-          repo = "python-semver";
-          rev = "refs/tags/${version}";
-          hash = "sha256-IWTo/P9JRxBQlhtcH3JMJZZrwAA8EALF4dtHajWUc4w=";
-        };
-        doCheck = false; # no tests
-      });
-
-      dataclasses-json = super.dataclasses-json.overridePythonAttrs (oldAttrs: rec {
-        version = "0.5.7";
-        src = fetchFromGitHub {
-          owner = "lidatong";
-          repo = "dataclasses-json";
-          rev = "refs/tags/v${version}";
-          hash = "sha256-0tw5Lz+c4ymO+AGpG6THbiALWGBrehC84+yWWk1eafc=";
-        };
-        nativeBuildInputs = [ python3.pkgs.setuptools ];
-      });
-    };
-  };
-in
-python.pkgs.buildPythonApplication rec {
-  pname = "sublime-music";
-  version = "0.12.0";
-  format = "pyproject";
-
-  src = fetchFromGitHub {
-    owner = "sublime-music";
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    hash = "sha256-FPzeFqDOcaiariz7qJwz6P3Wd+ZDxNP57uj+ptMtEyM=";
-  };
-
-  nativeBuildInputs = [
-    python.pkgs.flit-core
-    gobject-introspection
-    wrapGAppsHook
-  ];
-
-  postPatch = ''
-    sed -i "/--cov/d" setup.cfg
-    sed -i "/--no-cov-on-fail/d" setup.cfg
-
-    # https://github.com/sublime-music/sublime-music/commit/f477659d24e372ed6654501deebad91ae4b0b51c
-    sed -i "s/python-mpv/mpv/g" pyproject.toml
-  '';
-
-  buildInputs = [
-    gtk3
-    pango
-  ]
-  ++ lib.optional notifySupport libnotify
-  ++ lib.optional networkSupport networkmanager
-  ;
-
-  propagatedBuildInputs = with python.pkgs; [
-    bleach
-    bottle
-    dataclasses-json
-    deepdiff
-    levenshtein
-    mpv
-    peewee
-    pychromecast
-    pygobject3
-    python-dateutil
-    requests
-    semver
-    thefuzz
-  ]
-  ++ lib.optional keyringSupport keyring
-  ;
-
-  nativeCheckInputs = with python.pkgs; [
-    pytest
-  ];
-
-  checkPhase = ''
-    ${xvfb-run}/bin/xvfb-run pytest
-  '';
-
-  pythonImportsCheck = [
-    "sublime_music"
-  ];
-
-  postInstall = ''
-    install -Dm444 sublime-music.desktop      -t $out/share/applications
-    install -Dm444 sublime-music.metainfo.xml -t $out/share/metainfo
-
-    for size in 16 22 32 48 64 72 96 128 192 512 1024; do
-        install -Dm444 logo/rendered/"$size".png \
-          $out/share/icons/hicolor/"$size"x"$size"/apps/sublime-music.png
-    done
-  '';
-
-  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;
-    maintainers = with maintainers; [ albakham sumnerevans ];
-  };
-}
diff --git a/pkgs/applications/audio/subtitlr/default.nix b/pkgs/applications/audio/subtitlr/default.nix
index 67847f3b91b02..0444fa7d4535c 100644
--- a/pkgs/applications/audio/subtitlr/default.nix
+++ b/pkgs/applications/audio/subtitlr/default.nix
@@ -27,7 +27,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "This application, a subtitle generator for YouTube, utilizes OpenAI's Whisper API.";
+    description = "This application, a subtitle generator for YouTube, utilizes OpenAI's Whisper API";
     homepage = "https://github.com/yoanbernabeu/Subtitlr/";
     license = licenses.mit;
     maintainers = with maintainers; [ qjoly ];
diff --git a/pkgs/applications/audio/surge-XT/default.nix b/pkgs/applications/audio/surge-XT/default.nix
index 63cf1110d7849..08dd794275d68 100644
--- a/pkgs/applications/audio/surge-XT/default.nix
+++ b/pkgs/applications/audio/surge-XT/default.nix
@@ -16,14 +16,14 @@
 
 stdenv.mkDerivation rec {
   pname = "surge-XT";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "surge-synthesizer";
     repo = "surge";
     rev = "release_xt_${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-xcbZ5TC2W2PVzAkpoKPFIgW1oRGaC+ynQYot3cb5NAQ=";
+    sha256 = "sha256-r8CZxjmH9lfCizc95jRB4je+R/74zMqRMlGIZxxxriw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/synthv1/default.nix b/pkgs/applications/audio/synthv1/default.nix
index 770c5d924a1db..77dfec0dd8e6d 100644
--- a/pkgs/applications/audio/synthv1/default.nix
+++ b/pkgs/applications/audio/synthv1/default.nix
@@ -14,7 +14,7 @@ mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
 
   meta = with lib; {
-    description = "An old-school 4-oscillator subtractive polyphonic synthesizer with stereo fx";
+    description = "Old-school 4-oscillator subtractive polyphonic synthesizer with stereo fx";
     mainProgram = "synthv1_jack";
     homepage = "https://synthv1.sourceforge.io/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/tageditor/default.nix b/pkgs/applications/audio/tageditor/default.nix
index 2d720955baa91..af45e965b7ec4 100644
--- a/pkgs/applications/audio/tageditor/default.nix
+++ b/pkgs/applications/audio/tageditor/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/Martchus/tageditor";
-    description = "A tag editor with Qt GUI and command-line interface supporting MP4/M4A/AAC (iTunes), ID3, Vorbis, Opus, FLAC and Matroska";
+    description = "Tag editor with Qt GUI and command-line interface supporting MP4/M4A/AAC (iTunes), ID3, Vorbis, Opus, FLAC and Matroska";
     license = licenses.gpl2;
     maintainers = [ maintainers.matthiasbeyer ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/tagger/default.nix b/pkgs/applications/audio/tagger/default.nix
index bac0d7c9d8337..4298702073393 100644
--- a/pkgs/applications/audio/tagger/default.nix
+++ b/pkgs/applications/audio/tagger/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An easy-to-use music tag (metadata) editor";
+    description = "Easy-to-use music tag (metadata) editor";
     homepage = "https://github.com/nlogozzo/NickvisionTagger";
     mainProgram = "org.nickvision.tagger";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/tambura/default.nix b/pkgs/applications/audio/tambura/default.nix
index e1d62754c4494..9fcf9bb70ef93 100644
--- a/pkgs/applications/audio/tambura/default.nix
+++ b/pkgs/applications/audio/tambura/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A FAUST patch inspired by the Indian Tambura/Tanpura - a four string drone instrument, known for its unique rich harmonic timbre";
+    description = "FAUST patch inspired by the Indian Tambura/Tanpura - a four string drone instrument, known for its unique rich harmonic timbre";
     homepage = "https://github.com/olilarkin/Tambura";
     license = licenses.gpl2;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/tauon/default.nix b/pkgs/applications/audio/tauon/default.nix
index 2d7a3f441e4c6..990f0601c51dc 100644
--- a/pkgs/applications/audio/tauon/default.nix
+++ b/pkgs/applications/audio/tauon/default.nix
@@ -133,7 +133,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "The Linux desktop music player from the future";
+    description = "Linux desktop music player from the future";
     mainProgram = "tauon";
     homepage = "https://tauonmusicbox.rocks/";
     changelog = "https://github.com/Taiko2k/TauonMusicBox/releases/tag/v${finalAttrs.version}";
diff --git a/pkgs/applications/audio/tenacity/default.nix b/pkgs/applications/audio/tenacity/default.nix
index c2879d4123249..c5606677fd45c 100644
--- a/pkgs/applications/audio/tenacity/default.nix
+++ b/pkgs/applications/audio/tenacity/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitea
-, fetchpatch
 , cmake
 , wxGTK32
 , gtk3
@@ -153,7 +152,7 @@ stdenv.mkDerivation rec {
     mainProgram = "tenacity";
     homepage = "https://tenacityaudio.org/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ irenes lheckemann ];
+    maintainers = with maintainers; [ irenes ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/tidal-hifi/default.nix b/pkgs/applications/audio/tidal-hifi/default.nix
index d9d14b9670db7..e432560524faf 100644
--- a/pkgs/applications/audio/tidal-hifi/default.nix
+++ b/pkgs/applications/audio/tidal-hifi/default.nix
@@ -32,15 +32,16 @@
 , systemd
 , xdg-utils
 , xorg
+, libGL
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tidal-hifi";
-  version = "5.10.0";
+  version = "5.13.1";
 
   src = fetchurl {
     url = "https://github.com/Mastermindzh/tidal-hifi/releases/download/${finalAttrs.version}/tidal-hifi_${finalAttrs.version}_amd64.deb";
-    sha256 = "sha256-+sRXpRAtbLpQlyJUhbc1Cuzh6aV8HRvYH/ja9sfvKoA=";
+    sha256 = "sha256-TnvVm0qjm41if90+f9YtO8wR6NYg6oUZbZd0RiUU33M=";
   };
 
   nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper ];
@@ -84,6 +85,7 @@ stdenv.mkDerivation (finalAttrs: {
     xorg.libXScrnSaver
     xorg.libxshmfence
     xorg.libXtst
+    libGL
   ];
 
   runtimeDependencies =
@@ -113,7 +115,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/Mastermindzh/tidal-hifi/releases/tag/${finalAttrs.version}";
-    description = "The web version of Tidal running in electron with hifi support thanks to widevine";
+    description = "Web version of Tidal running in electron with hifi support thanks to widevine";
     homepage = "https://github.com/Mastermindzh/tidal-hifi";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ qbit spikespaz ];
diff --git a/pkgs/applications/audio/tone/default.nix b/pkgs/applications/audio/tone/default.nix
index dc10439ab0fc9..c6dc5daa04239 100644
--- a/pkgs/applications/audio/tone/default.nix
+++ b/pkgs/applications/audio/tone/default.nix
@@ -24,7 +24,7 @@ buildDotnetModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/sandreas/tone";
-    description = "A cross platform utility to dump and modify audio metadata for a wide variety of formats";
+    description = "Cross platform utility to dump and modify audio metadata for a wide variety of formats";
     license = licenses.asl20;
     maintainers = [ maintainers.jvanbruegge ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/tonelib-gfx/default.nix b/pkgs/applications/audio/tonelib-gfx/default.nix
index 260ebd40872ef..826433128e7da 100644
--- a/pkgs/applications/audio/tonelib-gfx/default.nix
+++ b/pkgs/applications/audio/tonelib-gfx/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
  '';
 
   meta = with lib; {
-    description = "Tonelib GFX is an amp and effects modeling software for electric guitar and bass.";
+    description = "Tonelib GFX is an amp and effects modeling software for electric guitar and bass";
     homepage = "https://tonelib.net/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
diff --git a/pkgs/applications/audio/touchosc/default.nix b/pkgs/applications/audio/touchosc/default.nix
index 23d254efc0b55..bc53b296357b6 100644
--- a/pkgs/applications/audio/touchosc/default.nix
+++ b/pkgs/applications/audio/touchosc/default.nix
@@ -45,7 +45,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "touchosc";
-  version = "1.3.1.204";
+  version = "1.3.3.207";
 
   suffix = {
     aarch64-linux = "linux-arm64";
@@ -56,9 +56,9 @@ stdenv.mkDerivation rec {
   src = fetchurl {
     url = "https://hexler.net/pub/${pname}/${pname}-${version}-${suffix}.deb";
     hash = {
-      aarch64-linux = "sha256-uSXCgwJUEQZDKPAHDT4kKcvkBg9c+T0nrpvYW8jG8Kg=";
-      armv7l-linux  = "sha256-dG5BF8n66YCYCZzc1pLf2qpMLmbv6lfVZYfgry25jQ0=";
-      x86_64-linux  = "sha256-R07kTuwsfe6WhGpHeyZS/HydDUSH6AByx0pJu/i40xE=";
+      aarch64-linux = "sha256-peEO5haVHXvCT+F48UiKdgwuccqBuZACEXnepB4dcvY=";
+      armv7l-linux  = "sha256-uQNoEye/Jd3T6pLJY2sN7hkTQl3AAilG5Vr9G61vFRM=";
+      x86_64-linux  = "sha256-+/r9gRK8HyynlJ1syC2VQ6VboPEzsVNqEVrQfNLeEv0=";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
diff --git a/pkgs/applications/audio/transcribe/default.nix b/pkgs/applications/audio/transcribe/default.nix
index 0d311adf8799d..785550a0a040b 100644
--- a/pkgs/applications/audio/transcribe/default.nix
+++ b/pkgs/applications/audio/transcribe/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , fetchzip
 , lib
-, wrapGAppsHook
+, wrapGAppsHook3
 , xdg-utils
 , which
 , alsa-lib
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     which
     xdg-utils
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = with gst_all_1; [
diff --git a/pkgs/applications/audio/tuner/default.nix b/pkgs/applications/audio/tuner/default.nix
index 0f4db5af20a6e..8637340f38262 100644
--- a/pkgs/applications/audio/tuner/default.nix
+++ b/pkgs/applications/audio/tuner/default.nix
@@ -7,7 +7,7 @@
 , vala
 , glib
 , itstool
-, wrapGAppsHook
+, wrapGAppsHook3
 , desktop-file-utils
 , libsoup
 , json-glib
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     vala
     glib
     itstool
-    wrapGAppsHook
+    wrapGAppsHook3
     desktop-file-utils
   ];
 
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/louis77/tuner";
-    description = "An app to discover and play internet radio stations";
+    description = "App to discover and play internet radio stations";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     mainProgram = "com.github.louis77.tuner";
diff --git a/pkgs/applications/audio/vcv-rack/default.nix b/pkgs/applications/audio/vcv-rack/default.nix
index c086436de09ff..7a1ded3e2f82a 100644
--- a/pkgs/applications/audio/vcv-rack/default.nix
+++ b/pkgs/applications/audio/vcv-rack/default.nix
@@ -24,7 +24,7 @@
 , rtmidi
 , speexdsp
 , stdenv
-, wrapGAppsHook
+, wrapGAppsHook3
 , zstd
 }:
 
@@ -183,7 +183,7 @@ stdenv.mkDerivation rec {
     libicns
     makeWrapper
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
   buildInputs = [
     alsa-lib
@@ -250,6 +250,7 @@ stdenv.mkDerivation rec {
     # no-derivatives clause
     license = with licenses; [ gpl3Plus cc-by-nc-40 unfreeRedistributable ];
     maintainers = with maintainers; [ nathyong jpotier ddelabru ];
+    mainProgram = "Rack";
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/vgmstream/default.nix b/pkgs/applications/audio/vgmstream/default.nix
index 99802872ef036..95d36296033ed 100644
--- a/pkgs/applications/audio/vgmstream/default.nix
+++ b/pkgs/applications/audio/vgmstream/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optional (! buildAudaciousPlugin) "-DBUILD_AUDACIOUS=OFF";
 
   meta = with lib; {
-    description = "A library for playback of various streamed audio formats used in video games";
+    description = "Library for playback of various streamed audio formats used in video games";
     homepage    = "https://vgmstream.org";
     maintainers = with maintainers; [ zane ];
     license     = with licenses; isc;
diff --git a/pkgs/applications/audio/vimpc/default.nix b/pkgs/applications/audio/vimpc/default.nix
index 713f444ef1ea7..f85bf4ebd8672 100644
--- a/pkgs/applications/audio/vimpc/default.nix
+++ b/pkgs/applications/audio/vimpc/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A vi/vim inspired client for the Music Player Daemon (mpd)";
+    description = "Vi/vim inspired client for the Music Player Daemon (mpd)";
     homepage = "https://github.com/boysetsfrog/vimpc";
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/pkgs/applications/audio/viper4linux/default.nix b/pkgs/applications/audio/viper4linux/default.nix
index 118af6853e5ad..289c6fbf233f7 100644
--- a/pkgs/applications/audio/viper4linux/default.nix
+++ b/pkgs/applications/audio/viper4linux/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An Adaptive Digital Sound Processor";
+    description = "Adaptive Digital Sound Processor";
     homepage = "https://github.com/Audio4Linux/Viper4Linux";
     license = licenses.gpl3Plus;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/vocal/default.nix b/pkgs/applications/audio/vocal/default.nix
index 00f4ac9172ac3..ee97a92ac3283 100644
--- a/pkgs/applications/audio/vocal/default.nix
+++ b/pkgs/applications/audio/vocal/default.nix
@@ -21,7 +21,7 @@
 , gst_all_1
 , json-glib
 , libgee
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 stdenv.mkDerivation rec {
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     ninja
     vala
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = with gst_all_1; [
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The podcast client for the modern free desktop";
+    description = "Podcast client for the modern free desktop";
     longDescription = ''
       Vocal is a powerful, fast, and intuitive application that helps users find new podcasts, manage their libraries, and enjoy the best that independent audio and video publishing has to offer. Vocal features full support for both episode downloading and streaming, native system integration, iTunes store search and top 100 charts (with international results support), iTunes link parsing, OPML importing and exporting, and so much more. Plus, it has great smart features like automatically keeping your library clean from old files, and the ability to set custom skip intervals.
     '';
diff --git a/pkgs/applications/audio/vocproc/default.nix b/pkgs/applications/audio/vocproc/default.nix
index bb402f425daa2..e7dd5cc8716ca 100644
--- a/pkgs/applications/audio/vocproc/default.nix
+++ b/pkgs/applications/audio/vocproc/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://hyperglitch.com/dev/VocProc";
-    description = "An LV2 plugin for pitch shifting (with or without formant correction), vocoding, automatic pitch correction and harmonizing of singing voice (harmonizer)";
+    description = "LV2 plugin for pitch shifting (with or without formant correction), vocoding, automatic pitch correction and harmonizing of singing voice (harmonizer)";
     license = licenses.gpl2;
     maintainers = [ maintainers.michalrus ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/waon/default.nix b/pkgs/applications/audio/waon/default.nix
index 970ab087b2ca7..b1f66798dd9c7 100644
--- a/pkgs/applications/audio/waon/default.nix
+++ b/pkgs/applications/audio/waon/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Wave-to-Notes transcriber";
+    description = "Wave-to-Notes transcriber";
     homepage = "https://kichiki.github.io/WaoN/";
     license = licenses.gpl2;
     maintainers = [ maintainers.puckipedia ];
diff --git a/pkgs/applications/audio/waylyrics/Cargo.lock b/pkgs/applications/audio/waylyrics/Cargo.lock
deleted file mode 100644
index 2a5931a81a0cb..0000000000000
--- a/pkgs/applications/audio/waylyrics/Cargo.lock
+++ /dev/null
@@ -1,4174 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "addr2line"
-version = "0.21.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
-dependencies = [
- "gimli",
-]
-
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
-[[package]]
-name = "aes"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
-dependencies = [
- "cfg-if",
- "cipher",
- "cpufeatures",
-]
-
-[[package]]
-name = "ahash"
-version = "0.7.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
-dependencies = [
- "getrandom",
- "once_cell",
- "version_check",
-]
-
-[[package]]
-name = "ahash"
-version = "0.8.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
-dependencies = [
- "cfg-if",
- "getrandom",
- "once_cell",
- "version_check",
- "zerocopy",
-]
-
-[[package]]
-name = "aho-corasick"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "ansi_term"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "anyhow"
-version = "1.0.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
-
-[[package]]
-name = "arrayvec"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
-
-[[package]]
-name = "assert_float_eq"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cea652ffbedecf29e9cd41bb4c066881057a42c0c119040f022802b26853e77"
-
-[[package]]
-name = "async-channel"
-version = "2.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "136d4d23bcc79e27423727b36823d86233aad06dfea531837b038394d11e9928"
-dependencies = [
- "concurrent-queue",
- "event-listener",
- "event-listener-strategy",
- "futures-core",
- "pin-project-lite",
-]
-
-[[package]]
-name = "async-trait"
-version = "0.1.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "atk"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4af014b17dd80e8af9fa689b2d4a211ddba6eb583c1622f35d0cb543f6b17e4"
-dependencies = [
- "atk-sys",
- "glib 0.18.5",
- "libc",
-]
-
-[[package]]
-name = "atk-sys"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009"
-dependencies = [
- "glib-sys 0.18.1",
- "gobject-sys 0.18.0",
- "libc",
- "system-deps",
-]
-
-[[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",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
-
-[[package]]
-name = "backtrace"
-version = "0.3.71"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
-dependencies = [
- "addr2line",
- "cc",
- "cfg-if",
- "libc",
- "miniz_oxide",
- "object",
- "rustc-demangle",
-]
-
-[[package]]
-name = "base64"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
-
-[[package]]
-name = "base64ct"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bitflags"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "bitvec"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
-dependencies = [
- "funty",
- "radium",
- "tap",
- "wyz",
-]
-
-[[package]]
-name = "block"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
-
-[[package]]
-name = "block-padding"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "borsh"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0901fc8eb0aca4c83be0106d6f2db17d86a08dfc2c25f0e84464bf381158add6"
-dependencies = [
- "borsh-derive",
- "cfg_aliases",
-]
-
-[[package]]
-name = "borsh-derive"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51670c3aa053938b0ee3bd67c3817e471e626151131b934038e83c5bf8de48f5"
-dependencies = [
- "once_cell",
- "proc-macro-crate 3.1.0",
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
- "syn_derive",
-]
-
-[[package]]
-name = "bumpalo"
-version = "3.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
-
-[[package]]
-name = "bytecheck"
-version = "0.6.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
-dependencies = [
- "bytecheck_derive",
- "ptr_meta",
- "simdutf8",
-]
-
-[[package]]
-name = "bytecheck_derive"
-version = "0.6.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "byteorder"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
-
-[[package]]
-name = "bytes"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
-
-[[package]]
-name = "cairo-rs"
-version = "0.18.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2"
-dependencies = [
- "bitflags 2.5.0",
- "cairo-sys-rs 0.18.2",
- "glib 0.18.5",
- "libc",
- "once_cell",
- "thiserror",
-]
-
-[[package]]
-name = "cairo-rs"
-version = "0.19.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562"
-dependencies = [
- "bitflags 2.5.0",
- "cairo-sys-rs 0.19.2",
- "glib 0.19.4",
- "libc",
- "thiserror",
-]
-
-[[package]]
-name = "cairo-sys-rs"
-version = "0.18.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
-dependencies = [
- "glib-sys 0.18.1",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "cairo-sys-rs"
-version = "0.19.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64"
-dependencies = [
- "glib-sys 0.19.0",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "cbc"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
-dependencies = [
- "cipher",
-]
-
-[[package]]
-name = "cc"
-version = "1.0.94"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7"
-
-[[package]]
-name = "cfg-expr"
-version = "0.15.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
-dependencies = [
- "smallvec",
- "target-lexicon",
-]
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "cfg_aliases"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
-
-[[package]]
-name = "cipher"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
-dependencies = [
- "crypto-common",
- "inout",
-]
-
-[[package]]
-name = "clap"
-version = "2.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
-dependencies = [
- "ansi_term",
- "atty",
- "bitflags 1.3.2",
- "strsim 0.8.0",
- "textwrap",
- "unicode-width",
- "vec_map",
-]
-
-[[package]]
-name = "cocoa"
-version = "0.25.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c"
-dependencies = [
- "bitflags 1.3.2",
- "block",
- "cocoa-foundation",
- "core-foundation",
- "core-graphics",
- "foreign-types 0.5.0",
- "libc",
- "objc",
-]
-
-[[package]]
-name = "cocoa-foundation"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
-dependencies = [
- "bitflags 1.3.2",
- "block",
- "core-foundation",
- "core-graphics-types",
- "libc",
- "objc",
-]
-
-[[package]]
-name = "concurrent-queue"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
-dependencies = [
- "crossbeam-utils",
-]
-
-[[package]]
-name = "const-oid"
-version = "0.9.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
-
-[[package]]
-name = "cookie"
-version = "0.17.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7efb37c3e1ccb1ff97164ad95ac1606e8ccd35b3fa0a7d99a304c7f4a428cc24"
-dependencies = [
- "percent-encoding",
- "time",
- "version_check",
-]
-
-[[package]]
-name = "cookie"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747"
-dependencies = [
- "time",
- "version_check",
-]
-
-[[package]]
-name = "cookie_store"
-version = "0.20.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "387461abbc748185c3a6e1673d826918b450b87ff22639429c694619a83b6cf6"
-dependencies = [
- "cookie 0.17.0",
- "idna 0.3.0",
- "log",
- "publicsuffix",
- "serde",
- "serde_derive",
- "serde_json",
- "time",
- "url",
-]
-
-[[package]]
-name = "core-foundation"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.8.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
-
-[[package]]
-name = "core-graphics"
-version = "0.23.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081"
-dependencies = [
- "bitflags 1.3.2",
- "core-foundation",
- "core-graphics-types",
- "foreign-types 0.5.0",
- "libc",
-]
-
-[[package]]
-name = "core-graphics-types"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
-dependencies = [
- "bitflags 1.3.2",
- "core-foundation",
- "libc",
-]
-
-[[package]]
-name = "cpufeatures"
-version = "0.2.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "crc32fast"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
-dependencies = [
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
-
-[[package]]
-name = "crypto-common"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-dependencies = [
- "generic-array",
- "typenum",
-]
-
-[[package]]
-name = "darling"
-version = "0.14.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
-dependencies = [
- "darling_core",
- "darling_macro",
-]
-
-[[package]]
-name = "darling_core"
-version = "0.14.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2",
- "quote 1.0.36",
- "strsim 0.10.0",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.14.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
-dependencies = [
- "darling_core",
- "quote 1.0.36",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "dbus"
-version = "0.9.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b"
-dependencies = [
- "libc",
- "libdbus-sys",
- "winapi",
-]
-
-[[package]]
-name = "dbus-codegen"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a49da9fdfbe872d4841d56605dc42efa5e6ca3291299b87f44e1cde91a28617c"
-dependencies = [
- "clap",
- "dbus",
- "xml-rs",
-]
-
-[[package]]
-name = "dbus-tree"
-version = "0.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f456e698ae8e54575e19ddb1f9b7bce2298568524f215496b248eb9498b4f508"
-dependencies = [
- "dbus",
-]
-
-[[package]]
-name = "der"
-version = "0.7.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0"
-dependencies = [
- "const-oid",
- "pem-rfc7468",
- "zeroize",
-]
-
-[[package]]
-name = "deranged"
-version = "0.3.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
-dependencies = [
- "powerfmt",
-]
-
-[[package]]
-name = "derive_is_enum_variant"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0ac8859845146979953797f03cc5b282fb4396891807cdb3d04929a88418197"
-dependencies = [
- "heck 0.3.3",
- "quote 0.3.15",
- "syn 0.11.11",
-]
-
-[[package]]
-name = "digest"
-version = "0.10.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
-dependencies = [
- "const-oid",
- "crypto-common",
-]
-
-[[package]]
-name = "directories"
-version = "5.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35"
-dependencies = [
- "dirs-sys",
-]
-
-[[package]]
-name = "dirs-next"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
-dependencies = [
- "cfg-if",
- "dirs-sys-next",
-]
-
-[[package]]
-name = "dirs-sys"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
-dependencies = [
- "libc",
- "option-ext",
- "redox_users",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "dirs-sys-next"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
-dependencies = [
- "libc",
- "redox_users",
- "winapi",
-]
-
-[[package]]
-name = "documented"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21cd1d2800b9a2b71d4311a38fcda9eebc9313bbd86730880147eba1e29599e0"
-dependencies = [
- "documented-derive",
- "phf",
- "thiserror",
-]
-
-[[package]]
-name = "documented-derive"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48583206f0a72d5fbfcb5dd8ab56ec878a6594fbcb1219d5b65b502b960c7cdb"
-dependencies = [
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "dpi"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53"
-
-[[package]]
-name = "ecb"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a8bfa975b1aec2145850fcaa1c6fe269a16578c44705a532ae3edc92b8881c7"
-dependencies = [
- "cipher",
-]
-
-[[package]]
-name = "embed-resource"
-version = "2.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6985554d0688b687c5cb73898a34fbe3ad6c24c58c238a4d91d5e840670ee9d"
-dependencies = [
- "cc",
- "memchr",
- "rustc_version",
- "toml",
- "vswhom",
- "winreg",
-]
-
-[[package]]
-name = "encoding_rs"
-version = "0.8.34"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "enum-kinds"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e40a16955681d469ab3da85aaa6b42ff656b3c67b52e1d8d3dd36afe97fd462"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "equivalent"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
-
-[[package]]
-name = "errno"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
-dependencies = [
- "libc",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "event-listener"
-version = "5.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24"
-dependencies = [
- "concurrent-queue",
- "parking",
- "pin-project-lite",
-]
-
-[[package]]
-name = "event-listener-strategy"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3"
-dependencies = [
- "event-listener",
- "pin-project-lite",
-]
-
-[[package]]
-name = "fastrand"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
-
-[[package]]
-name = "fdeflate"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
-dependencies = [
- "simd-adler32",
-]
-
-[[package]]
-name = "field-offset"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
-dependencies = [
- "memoffset",
- "rustc_version",
-]
-
-[[package]]
-name = "flate2"
-version = "1.0.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
-dependencies = [
- "crc32fast",
- "miniz_oxide",
-]
-
-[[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 0.1.1",
-]
-
-[[package]]
-name = "foreign-types"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
-dependencies = [
- "foreign-types-macros",
- "foreign-types-shared 0.3.1",
-]
-
-[[package]]
-name = "foreign-types-macros"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
-
-[[package]]
-name = "form_urlencoded"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
-dependencies = [
- "percent-encoding",
-]
-
-[[package]]
-name = "from_variants"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e859c8f2057687618905dbe99fc76e836e0a69738865ef90e46fc214a41bbf2"
-dependencies = [
- "from_variants_impl",
-]
-
-[[package]]
-name = "from_variants_impl"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55a5e644a80e6d96b2b4910fa7993301d7b7926c045b475b62202b20a36ce69e"
-dependencies = [
- "darling",
- "proc-macro2",
- "quote 1.0.36",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "funty"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
-
-[[package]]
-name = "futures-channel"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
-dependencies = [
- "futures-core",
-]
-
-[[package]]
-name = "futures-core"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
-
-[[package]]
-name = "futures-executor"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
-dependencies = [
- "futures-core",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-io"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
-
-[[package]]
-name = "futures-macro"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "futures-sink"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
-
-[[package]]
-name = "futures-task"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
-
-[[package]]
-name = "futures-util"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
-dependencies = [
- "futures-core",
- "futures-macro",
- "futures-task",
- "pin-project-lite",
- "pin-utils",
- "slab",
-]
-
-[[package]]
-name = "gdk"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5ba081bdef3b75ebcdbfc953699ed2d7417d6bd853347a42a37d76406a33646"
-dependencies = [
- "cairo-rs 0.18.5",
- "gdk-pixbuf 0.18.5",
- "gdk-sys",
- "gio 0.18.4",
- "glib 0.18.5",
- "libc",
- "pango 0.18.3",
-]
-
-[[package]]
-name = "gdk-pixbuf"
-version = "0.18.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec"
-dependencies = [
- "gdk-pixbuf-sys 0.18.0",
- "gio 0.18.4",
- "glib 0.18.5",
- "libc",
- "once_cell",
-]
-
-[[package]]
-name = "gdk-pixbuf"
-version = "0.19.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92"
-dependencies = [
- "gdk-pixbuf-sys 0.19.0",
- "gio 0.19.4",
- "glib 0.19.4",
- "libc",
-]
-
-[[package]]
-name = "gdk-pixbuf-sys"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
-dependencies = [
- "gio-sys 0.18.1",
- "glib-sys 0.18.1",
- "gobject-sys 0.18.0",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "gdk-pixbuf-sys"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96"
-dependencies = [
- "gio-sys 0.19.0",
- "glib-sys 0.19.0",
- "gobject-sys 0.19.0",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "gdk-sys"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2"
-dependencies = [
- "cairo-sys-rs 0.18.2",
- "gdk-pixbuf-sys 0.18.0",
- "gio-sys 0.18.1",
- "glib-sys 0.18.1",
- "gobject-sys 0.18.0",
- "libc",
- "pango-sys 0.18.0",
- "pkg-config",
- "system-deps",
-]
-
-[[package]]
-name = "gdk4"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b"
-dependencies = [
- "cairo-rs 0.19.4",
- "gdk-pixbuf 0.19.2",
- "gdk4-sys",
- "gio 0.19.4",
- "glib 0.19.4",
- "libc",
- "pango 0.19.3",
-]
-
-[[package]]
-name = "gdk4-sys"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626"
-dependencies = [
- "cairo-sys-rs 0.19.2",
- "gdk-pixbuf-sys 0.19.0",
- "gio-sys 0.19.0",
- "glib-sys 0.19.0",
- "gobject-sys 0.19.0",
- "libc",
- "pango-sys 0.19.0",
- "pkg-config",
- "system-deps",
-]
-
-[[package]]
-name = "gdk4-win32"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab6181b6e5c91ee292dca0032b00d48dee8e61358253742c9752537a88486b3f"
-dependencies = [
- "gdk4",
- "gdk4-win32-sys",
- "gio 0.19.4",
- "glib 0.19.4",
- "libc",
-]
-
-[[package]]
-name = "gdk4-win32-sys"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efa8530d6619cf43f007f3efd993a356e1ca4e643c4d0bd2a99832a08af2e402"
-dependencies = [
- "gdk4-sys",
- "glib-sys 0.19.0",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "generic-array"
-version = "0.14.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
-dependencies = [
- "typenum",
- "version_check",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi",
-]
-
-[[package]]
-name = "gettext-rs"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364"
-dependencies = [
- "gettext-sys",
- "locale_config",
-]
-
-[[package]]
-name = "gettext-sys"
-version = "0.21.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d"
-dependencies = [
- "cc",
- "temp-dir",
-]
-
-[[package]]
-name = "gimli"
-version = "0.28.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
-
-[[package]]
-name = "gio"
-version = "0.18.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-util",
- "gio-sys 0.18.1",
- "glib 0.18.5",
- "libc",
- "once_cell",
- "pin-project-lite",
- "smallvec",
- "thiserror",
-]
-
-[[package]]
-name = "gio"
-version = "0.19.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f91a0518c2ec539f099d3f945ab2d6a83ec372a9ef40a21906343b191182845"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-util",
- "gio-sys 0.19.0",
- "glib 0.19.4",
- "libc",
- "pin-project-lite",
- "smallvec",
- "thiserror",
-]
-
-[[package]]
-name = "gio-sys"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
-dependencies = [
- "glib-sys 0.18.1",
- "gobject-sys 0.18.0",
- "libc",
- "system-deps",
- "winapi",
-]
-
-[[package]]
-name = "gio-sys"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4"
-dependencies = [
- "glib-sys 0.19.0",
- "gobject-sys 0.19.0",
- "libc",
- "system-deps",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "glib"
-version = "0.18.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5"
-dependencies = [
- "bitflags 2.5.0",
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-task",
- "futures-util",
- "gio-sys 0.18.1",
- "glib-macros 0.18.5",
- "glib-sys 0.18.1",
- "gobject-sys 0.18.0",
- "libc",
- "memchr",
- "once_cell",
- "smallvec",
- "thiserror",
-]
-
-[[package]]
-name = "glib"
-version = "0.19.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae1407b2ce171e654720be10d57d4054d3ff2f10a13d5b37e6819b41439832f7"
-dependencies = [
- "bitflags 2.5.0",
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-task",
- "futures-util",
- "gio-sys 0.19.0",
- "glib-macros 0.19.4",
- "glib-sys 0.19.0",
- "gobject-sys 0.19.0",
- "libc",
- "memchr",
- "smallvec",
- "thiserror",
-]
-
-[[package]]
-name = "glib-macros"
-version = "0.18.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc"
-dependencies = [
- "heck 0.4.1",
- "proc-macro-crate 2.0.0",
- "proc-macro-error",
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "glib-macros"
-version = "0.19.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8bba315e8ce8aa59631545358450f4962557e89b5f7db7442e7153b47037f71"
-dependencies = [
- "heck 0.5.0",
- "proc-macro-crate 3.1.0",
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "glib-sys"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
-dependencies = [
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "glib-sys"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4"
-dependencies = [
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "gobject-sys"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
-dependencies = [
- "glib-sys 0.18.1",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "gobject-sys"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979"
-dependencies = [
- "glib-sys 0.19.0",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "graphene-rs"
-version = "0.19.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91"
-dependencies = [
- "glib 0.19.4",
- "graphene-sys",
- "libc",
-]
-
-[[package]]
-name = "graphene-sys"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0"
-dependencies = [
- "glib-sys 0.19.0",
- "libc",
- "pkg-config",
- "system-deps",
-]
-
-[[package]]
-name = "gsk4"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e"
-dependencies = [
- "cairo-rs 0.19.4",
- "gdk4",
- "glib 0.19.4",
- "graphene-rs",
- "gsk4-sys",
- "libc",
- "pango 0.19.3",
-]
-
-[[package]]
-name = "gsk4-sys"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738"
-dependencies = [
- "cairo-sys-rs 0.19.2",
- "gdk4-sys",
- "glib-sys 0.19.0",
- "gobject-sys 0.19.0",
- "graphene-sys",
- "libc",
- "pango-sys 0.19.0",
- "system-deps",
-]
-
-[[package]]
-name = "gtk"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93c4f5e0e20b60e10631a5f06da7fe3dda744b05ad0ea71fee2f47adf865890c"
-dependencies = [
- "atk",
- "cairo-rs 0.18.5",
- "field-offset",
- "futures-channel",
- "gdk",
- "gdk-pixbuf 0.18.5",
- "gio 0.18.4",
- "glib 0.18.5",
- "gtk-sys",
- "gtk3-macros",
- "libc",
- "pango 0.18.3",
- "pkg-config",
-]
-
-[[package]]
-name = "gtk-sys"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722"
-dependencies = [
- "atk-sys",
- "cairo-sys-rs 0.18.2",
- "gdk-pixbuf-sys 0.18.0",
- "gdk-sys",
- "gio-sys 0.18.1",
- "glib-sys 0.18.1",
- "gobject-sys 0.18.0",
- "libc",
- "pango-sys 0.18.0",
- "system-deps",
-]
-
-[[package]]
-name = "gtk3-macros"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e"
-dependencies = [
- "proc-macro-crate 1.3.1",
- "proc-macro-error",
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "gtk4"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83"
-dependencies = [
- "cairo-rs 0.19.4",
- "field-offset",
- "futures-channel",
- "gdk-pixbuf 0.19.2",
- "gdk4",
- "gio 0.19.4",
- "glib 0.19.4",
- "graphene-rs",
- "gsk4",
- "gtk4-macros",
- "gtk4-sys",
- "libc",
- "pango 0.19.3",
-]
-
-[[package]]
-name = "gtk4-macros"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567"
-dependencies = [
- "anyhow",
- "proc-macro-crate 3.1.0",
- "proc-macro-error",
- "proc-macro2",
- "quote 1.0.36",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "gtk4-sys"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18"
-dependencies = [
- "cairo-sys-rs 0.19.2",
- "gdk-pixbuf-sys 0.19.0",
- "gdk4-sys",
- "gio-sys 0.19.0",
- "glib-sys 0.19.0",
- "gobject-sys 0.19.0",
- "graphene-sys",
- "gsk4-sys",
- "libc",
- "pango-sys 0.19.0",
- "system-deps",
-]
-
-[[package]]
-name = "h2"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "816ec7294445779408f36fe57bc5b7fc1cf59664059096c65f905c1c61f58069"
-dependencies = [
- "bytes",
- "fnv",
- "futures-core",
- "futures-sink",
- "futures-util",
- "http",
- "indexmap",
- "slab",
- "tokio",
- "tokio-util",
- "tracing",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-dependencies = [
- "ahash 0.7.8",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.14.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
-
-[[package]]
-name = "heck"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
-dependencies = [
- "unicode-segmentation",
-]
-
-[[package]]
-name = "heck"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
-
-[[package]]
-name = "heck"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
-
-[[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.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
-
-[[package]]
-name = "hex"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
-
-[[package]]
-name = "http"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
-dependencies = [
- "bytes",
- "fnv",
- "itoa",
-]
-
-[[package]]
-name = "http-body"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
-dependencies = [
- "bytes",
- "http",
-]
-
-[[package]]
-name = "http-body-util"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d"
-dependencies = [
- "bytes",
- "futures-core",
- "http",
- "http-body",
- "pin-project-lite",
-]
-
-[[package]]
-name = "httparse"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
-
-[[package]]
-name = "hyper"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a"
-dependencies = [
- "bytes",
- "futures-channel",
- "futures-util",
- "h2",
- "http",
- "http-body",
- "httparse",
- "itoa",
- "pin-project-lite",
- "smallvec",
- "tokio",
- "want",
-]
-
-[[package]]
-name = "hyper-tls"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0"
-dependencies = [
- "bytes",
- "http-body-util",
- "hyper",
- "hyper-util",
- "native-tls",
- "tokio",
- "tokio-native-tls",
- "tower-service",
-]
-
-[[package]]
-name = "hyper-util"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
-dependencies = [
- "bytes",
- "futures-channel",
- "futures-util",
- "http",
- "http-body",
- "hyper",
- "pin-project-lite",
- "socket2",
- "tokio",
- "tower",
- "tower-service",
- "tracing",
-]
-
-[[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.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "idna"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "indexmap"
-version = "2.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
-dependencies = [
- "equivalent",
- "hashbrown 0.14.3",
-]
-
-[[package]]
-name = "inout"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
-dependencies = [
- "block-padding",
- "generic-array",
-]
-
-[[package]]
-name = "ipnet"
-version = "2.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
-
-[[package]]
-name = "itoa"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
-
-[[package]]
-name = "js-sys"
-version = "0.3.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "keyboard-types"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a"
-dependencies = [
- "bitflags 2.5.0",
- "serde",
- "unicode-segmentation",
-]
-
-[[package]]
-name = "ksni"
-version = "0.2.1"
-source = "git+https://github.com/waylyrics/ksni.git#af6fa6e6e29b7cb3779f98c1ca3aaeb8744ef4c4"
-dependencies = [
- "dbus",
- "dbus-codegen",
- "dbus-tree",
- "thiserror",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-dependencies = [
- "spin",
-]
-
-[[package]]
-name = "libappindicator"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a"
-dependencies = [
- "glib 0.18.5",
- "gtk",
- "gtk-sys",
- "libappindicator-sys",
- "log",
-]
-
-[[package]]
-name = "libappindicator-sys"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf"
-dependencies = [
- "gtk-sys",
- "libloading",
- "once_cell",
-]
-
-[[package]]
-name = "libc"
-version = "0.2.153"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
-
-[[package]]
-name = "libdbus-sys"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72"
-dependencies = [
- "cc",
- "pkg-config",
-]
-
-[[package]]
-name = "libloading"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
-dependencies = [
- "cfg-if",
- "winapi",
-]
-
-[[package]]
-name = "libm"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
-
-[[package]]
-name = "libmimalloc-sys"
-version = "0.1.35"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3979b5c37ece694f1f5e51e7ecc871fdb0f517ed04ee45f88d15d6d553cb9664"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "libredox"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
-dependencies = [
- "bitflags 2.5.0",
- "libc",
-]
-
-[[package]]
-name = "libxdo"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00333b8756a3d28e78def82067a377de7fa61b24909000aeaa2b446a948d14db"
-dependencies = [
- "libxdo-sys",
-]
-
-[[package]]
-name = "libxdo-sys"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db23b9e7e2b7831bbd8aac0bbeeeb7b68cbebc162b227e7052e8e55829a09212"
-dependencies = [
- "libc",
- "x11",
-]
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.4.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
-
-[[package]]
-name = "locale_config"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
-dependencies = [
- "lazy_static",
- "objc",
- "objc-foundation",
- "regex",
- "winapi",
-]
-
-[[package]]
-name = "lock_api"
-version = "0.4.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
-dependencies = [
- "autocfg",
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
-
-[[package]]
-name = "lrc-nom"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0fb729227bcfd7c7cf247c37a932ac168b94759c052f046b9aad4ba5f584f70"
-dependencies = [
- "nom",
- "rust_decimal",
- "rust_decimal_macros",
- "thiserror",
-]
-
-[[package]]
-name = "malloc_buf"
-version = "0.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "matchers"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
-dependencies = [
- "regex-automata 0.1.10",
-]
-
-[[package]]
-name = "md5"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
-
-[[package]]
-name = "memchr"
-version = "2.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
-
-[[package]]
-name = "memoffset"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "mimalloc"
-version = "0.1.39"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa01922b5ea280a911e323e4d2fd24b7fe5cc4042e0d2cda3c40775cdc4bdc9c"
-dependencies = [
- "libmimalloc-sys",
-]
-
-[[package]]
-name = "mime"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
-
-[[package]]
-name = "minimal-lexical"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-
-[[package]]
-name = "miniz_oxide"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
-dependencies = [
- "adler",
- "simd-adler32",
-]
-
-[[package]]
-name = "mio"
-version = "0.8.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
-dependencies = [
- "libc",
- "wasi",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "mpris"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55cef955a7826b1e00e901a3652e7a895abd221fb4ab61547e7d0e4c235d7feb"
-dependencies = [
- "dbus",
- "derive_is_enum_variant",
- "enum-kinds",
- "from_variants",
- "thiserror",
-]
-
-[[package]]
-name = "muda"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f428b4e9db3d17e2f809dfb1ff9ddfbbf16c71790d1656d10aee320877e1392f"
-dependencies = [
- "cocoa",
- "crossbeam-channel",
- "dpi",
- "gtk",
- "keyboard-types",
- "libxdo",
- "objc",
- "once_cell",
- "png",
- "thiserror",
- "windows-sys 0.52.0",
-]
-
-[[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 = "ncmapi2"
-version = "0.1.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcd3c218f2db46fc0b26ac6263d3005b96c82d5ebec0d349c3c902eef8bd660c"
-dependencies = [
- "aes",
- "base64",
- "cbc",
- "cookie 0.18.1",
- "ecb",
- "hex",
- "md5",
- "phf",
- "rand",
- "regex",
- "reqwest",
- "rsa",
- "serde",
- "serde_json",
- "serde_repr",
- "thiserror",
- "tokio",
-]
-
-[[package]]
-name = "nom"
-version = "7.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
-dependencies = [
- "memchr",
- "minimal-lexical",
-]
-
-[[package]]
-name = "nu-ansi-term"
-version = "0.46.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
-dependencies = [
- "overload",
- "winapi",
-]
-
-[[package]]
-name = "num-bigint-dig"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151"
-dependencies = [
- "byteorder",
- "lazy_static",
- "libm",
- "num-integer",
- "num-iter",
- "num-traits",
- "rand",
- "smallvec",
- "zeroize",
-]
-
-[[package]]
-name = "num-conv"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
-
-[[package]]
-name = "num-integer"
-version = "0.1.46"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "num-iter"
-version = "0.1.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
-dependencies = [
- "autocfg",
- "libm",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
-dependencies = [
- "hermit-abi 0.3.9",
- "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.32.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
-
-[[package]]
-name = "opencc-rust"
-version = "1.1.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93236c9c3fb3e36c0cf4467731aabf338fd4831d4fad072a47cb2d4757e47303"
-dependencies = [
- "libc",
- "pkg-config",
-]
-
-[[package]]
-name = "openssl"
-version = "0.10.64"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
-dependencies = [
- "bitflags 2.5.0",
- "cfg-if",
- "foreign-types 0.3.2",
- "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",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[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.102"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
-dependencies = [
- "cc",
- "libc",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "option-ext"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
-
-[[package]]
-name = "overload"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
-
-[[package]]
-name = "pango"
-version = "0.18.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
-dependencies = [
- "gio 0.18.4",
- "glib 0.18.5",
- "libc",
- "once_cell",
- "pango-sys 0.18.0",
-]
-
-[[package]]
-name = "pango"
-version = "0.19.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1264d13deb823cc652f26cfe59afb1ec4b9db2a5bd27c41b738c879cc1bfaa1"
-dependencies = [
- "gio 0.19.4",
- "glib 0.19.4",
- "libc",
- "pango-sys 0.19.0",
-]
-
-[[package]]
-name = "pango-sys"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
-dependencies = [
- "glib-sys 0.18.1",
- "gobject-sys 0.18.0",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "pango-sys"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea"
-dependencies = [
- "glib-sys 0.19.0",
- "gobject-sys 0.19.0",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "parking"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
-
-[[package]]
-name = "parking_lot"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
-dependencies = [
- "lock_api",
- "parking_lot_core",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.9.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
-dependencies = [
- "cfg-if",
- "libc",
- "redox_syscall",
- "smallvec",
- "windows-targets 0.48.5",
-]
-
-[[package]]
-name = "pem-rfc7468"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
-dependencies = [
- "base64ct",
-]
-
-[[package]]
-name = "percent-encoding"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
-
-[[package]]
-name = "phf"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
-dependencies = [
- "phf_macros",
- "phf_shared",
-]
-
-[[package]]
-name = "phf_generator"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
-dependencies = [
- "phf_shared",
- "rand",
-]
-
-[[package]]
-name = "phf_macros"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
-dependencies = [
- "phf_generator",
- "phf_shared",
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "phf_shared"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
-dependencies = [
- "siphasher",
-]
-
-[[package]]
-name = "pin-project"
-version = "1.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
-dependencies = [
- "pin-project-internal",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
-
-[[package]]
-name = "pin-utils"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
-[[package]]
-name = "pkcs1"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
-dependencies = [
- "der",
- "pkcs8",
- "spki",
-]
-
-[[package]]
-name = "pkcs8"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
-dependencies = [
- "der",
- "spki",
-]
-
-[[package]]
-name = "pkg-config"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
-
-[[package]]
-name = "png"
-version = "0.17.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
-dependencies = [
- "bitflags 1.3.2",
- "crc32fast",
- "fdeflate",
- "flate2",
- "miniz_oxide",
-]
-
-[[package]]
-name = "powerfmt"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-
-[[package]]
-name = "proc-macro-crate"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
-dependencies = [
- "once_cell",
- "toml_edit 0.19.15",
-]
-
-[[package]]
-name = "proc-macro-crate"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8"
-dependencies = [
- "toml_edit 0.20.7",
-]
-
-[[package]]
-name = "proc-macro-crate"
-version = "3.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
-dependencies = [
- "toml_edit 0.21.1",
-]
-
-[[package]]
-name = "proc-macro-error"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-dependencies = [
- "proc-macro-error-attr",
- "proc-macro2",
- "quote 1.0.36",
- "syn 1.0.109",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro-error-attr"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.79"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "psl-types"
-version = "2.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac"
-
-[[package]]
-name = "ptr_meta"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
-dependencies = [
- "ptr_meta_derive",
-]
-
-[[package]]
-name = "ptr_meta_derive"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "publicsuffix"
-version = "2.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96a8c1bda5ae1af7f99a2962e49df150414a43d62404644d98dd5c3a93d07457"
-dependencies = [
- "idna 0.3.0",
- "psl-types",
-]
-
-[[package]]
-name = "qqmusic-rs"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7698cb357cfa1a75f5a2071469345ede01a6c4ee83a2ff2a88f9e481893f341"
-dependencies = [
- "serde",
- "serde_json",
- "url",
-]
-
-[[package]]
-name = "quote"
-version = "0.3.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
-
-[[package]]
-name = "quote"
-version = "1.0.36"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "radium"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
-
-[[package]]
-name = "rand"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "libc",
- "rand_chacha",
- "rand_core",
-]
-
-[[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",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "redox_users"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
-dependencies = [
- "getrandom",
- "libredox",
- "thiserror",
-]
-
-[[package]]
-name = "regex"
-version = "1.10.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-automata 0.4.6",
- "regex-syntax 0.8.3",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
-dependencies = [
- "regex-syntax 0.6.29",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax 0.8.3",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
-
-[[package]]
-name = "regex-syntax"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
-
-[[package]]
-name = "rend"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
-dependencies = [
- "bytecheck",
-]
-
-[[package]]
-name = "reqwest"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e6cc1e89e689536eb5aeede61520e874df5a4707df811cd5da4aa5fbb2aae19"
-dependencies = [
- "base64",
- "bytes",
- "cookie 0.17.0",
- "cookie_store",
- "encoding_rs",
- "futures-core",
- "futures-util",
- "h2",
- "http",
- "http-body",
- "http-body-util",
- "hyper",
- "hyper-tls",
- "hyper-util",
- "ipnet",
- "js-sys",
- "log",
- "mime",
- "native-tls",
- "once_cell",
- "percent-encoding",
- "pin-project-lite",
- "rustls-pemfile",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "sync_wrapper",
- "system-configuration",
- "tokio",
- "tokio-native-tls",
- "tower-service",
- "url",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
- "winreg",
-]
-
-[[package]]
-name = "rkyv"
-version = "0.7.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0"
-dependencies = [
- "bitvec",
- "bytecheck",
- "bytes",
- "hashbrown 0.12.3",
- "ptr_meta",
- "rend",
- "rkyv_derive",
- "seahash",
- "tinyvec",
- "uuid",
-]
-
-[[package]]
-name = "rkyv_derive"
-version = "0.7.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "rsa"
-version = "0.9.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc"
-dependencies = [
- "const-oid",
- "digest",
- "num-bigint-dig",
- "num-integer",
- "num-traits",
- "pkcs1",
- "pkcs8",
- "rand_core",
- "signature",
- "spki",
- "subtle",
- "zeroize",
-]
-
-[[package]]
-name = "rust_decimal"
-version = "1.35.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1790d1c4c0ca81211399e0e0af16333276f375209e71a37b67698a373db5b47a"
-dependencies = [
- "arrayvec",
- "borsh",
- "bytes",
- "num-traits",
- "rand",
- "rkyv",
- "serde",
- "serde_json",
-]
-
-[[package]]
-name = "rust_decimal_macros"
-version = "1.34.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e418701588729bef95e7a655f2b483ad64bb97c46e8e79fde83efd92aaab6d82"
-dependencies = [
- "quote 1.0.36",
- "rust_decimal",
-]
-
-[[package]]
-name = "rustc-demangle"
-version = "0.1.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
-
-[[package]]
-name = "rustc_version"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-dependencies = [
- "semver",
-]
-
-[[package]]
-name = "rustix"
-version = "0.38.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
-dependencies = [
- "bitflags 2.5.0",
- "errno",
- "libc",
- "linux-raw-sys",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "rustls-pemfile"
-version = "2.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
-dependencies = [
- "base64",
- "rustls-pki-types",
-]
-
-[[package]]
-name = "rustls-pki-types"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247"
-
-[[package]]
-name = "rustversion"
-version = "1.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47"
-
-[[package]]
-name = "ryu"
-version = "1.0.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
-
-[[package]]
-name = "schannel"
-version = "0.1.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
-dependencies = [
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "scopeguard"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
-
-[[package]]
-name = "seahash"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
-
-[[package]]
-name = "security-framework"
-version = "2.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6"
-dependencies = [
- "bitflags 1.3.2",
- "core-foundation",
- "core-foundation-sys",
- "libc",
- "security-framework-sys",
-]
-
-[[package]]
-name = "security-framework-sys"
-version = "2.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "semver"
-version = "1.0.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
-
-[[package]]
-name = "serde"
-version = "1.0.197"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.197"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.115"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_repr"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "serde_spanned"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
-dependencies = [
- "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",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "sharded-slab"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
-dependencies = [
- "lazy_static",
-]
-
-[[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 = "signature"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
-dependencies = [
- "digest",
- "rand_core",
-]
-
-[[package]]
-name = "simd-adler32"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
-
-[[package]]
-name = "simdutf8"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
-
-[[package]]
-name = "siphasher"
-version = "0.3.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
-
-[[package]]
-name = "slab"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "smallvec"
-version = "1.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
-
-[[package]]
-name = "socket2"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
-dependencies = [
- "libc",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "sorensen"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f480a5525538a706e6cb343127173f9b2fc402dea20cfdbbe6e91df018baedb8"
-dependencies = [
- "assert_float_eq",
- "hashbrown 0.12.3",
-]
-
-[[package]]
-name = "spin"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "spki"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
-dependencies = [
- "base64ct",
- "der",
-]
-
-[[package]]
-name = "strsim"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-
-[[package]]
-name = "strsim"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-
-[[package]]
-name = "strum"
-version = "0.26.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
-dependencies = [
- "strum_macros",
-]
-
-[[package]]
-name = "strum_macros"
-version = "0.26.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
-dependencies = [
- "heck 0.4.1",
- "proc-macro2",
- "quote 1.0.36",
- "rustversion",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "subtle"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
-
-[[package]]
-name = "syn"
-version = "0.11.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
-dependencies = [
- "quote 0.3.15",
- "synom",
- "unicode-xid",
-]
-
-[[package]]
-name = "syn"
-version = "1.0.109"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.58"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn_derive"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b"
-dependencies = [
- "proc-macro-error",
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "sync_wrapper"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
-
-[[package]]
-name = "synom"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
-dependencies = [
- "unicode-xid",
-]
-
-[[package]]
-name = "system-configuration"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
-dependencies = [
- "bitflags 1.3.2",
- "core-foundation",
- "system-configuration-sys",
-]
-
-[[package]]
-name = "system-configuration-sys"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "system-deps"
-version = "6.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
-dependencies = [
- "cfg-expr",
- "heck 0.5.0",
- "pkg-config",
- "toml",
- "version-compare",
-]
-
-[[package]]
-name = "tap"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
-
-[[package]]
-name = "target-lexicon"
-version = "0.12.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
-
-[[package]]
-name = "temp-dir"
-version = "0.1.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f227968ec00f0e5322f9b8173c7a0cbcff6181a0a5b28e9892491c286277231"
-
-[[package]]
-name = "tempfile"
-version = "3.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
-dependencies = [
- "cfg-if",
- "fastrand",
- "rustix",
- "windows-sys 0.52.0",
-]
-
-[[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.58"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.58"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "thread_local"
-version = "1.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
-dependencies = [
- "cfg-if",
- "once_cell",
-]
-
-[[package]]
-name = "time"
-version = "0.3.36"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
-dependencies = [
- "deranged",
- "itoa",
- "num-conv",
- "powerfmt",
- "serde",
- "time-core",
- "time-macros",
-]
-
-[[package]]
-name = "time-core"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
-
-[[package]]
-name = "time-macros"
-version = "0.2.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
-dependencies = [
- "num-conv",
- "time-core",
-]
-
-[[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 = "1.37.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
-dependencies = [
- "backtrace",
- "bytes",
- "libc",
- "mio",
- "num_cpus",
- "parking_lot",
- "pin-project-lite",
- "signal-hook-registry",
- "socket2",
- "tokio-macros",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "tokio-macros"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "tokio-native-tls"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
-dependencies = [
- "native-tls",
- "tokio",
-]
-
-[[package]]
-name = "tokio-util"
-version = "0.7.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
-dependencies = [
- "bytes",
- "futures-core",
- "futures-sink",
- "pin-project-lite",
- "tokio",
- "tracing",
-]
-
-[[package]]
-name = "toml"
-version = "0.8.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
-dependencies = [
- "serde",
- "serde_spanned",
- "toml_datetime",
- "toml_edit 0.22.9",
-]
-
-[[package]]
-name = "toml_datetime"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "toml_edit"
-version = "0.19.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
-dependencies = [
- "indexmap",
- "toml_datetime",
- "winnow 0.5.40",
-]
-
-[[package]]
-name = "toml_edit"
-version = "0.20.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
-dependencies = [
- "indexmap",
- "toml_datetime",
- "winnow 0.5.40",
-]
-
-[[package]]
-name = "toml_edit"
-version = "0.21.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
-dependencies = [
- "indexmap",
- "toml_datetime",
- "winnow 0.5.40",
-]
-
-[[package]]
-name = "toml_edit"
-version = "0.22.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4"
-dependencies = [
- "indexmap",
- "serde",
- "serde_spanned",
- "toml_datetime",
- "winnow 0.6.6",
-]
-
-[[package]]
-name = "tower"
-version = "0.4.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
-dependencies = [
- "futures-core",
- "futures-util",
- "pin-project",
- "pin-project-lite",
- "tokio",
- "tower-layer",
- "tower-service",
- "tracing",
-]
-
-[[package]]
-name = "tower-layer"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
-
-[[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.40"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
-dependencies = [
- "log",
- "pin-project-lite",
- "tracing-attributes",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-attributes"
-version = "0.1.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
-dependencies = [
- "once_cell",
- "valuable",
-]
-
-[[package]]
-name = "tracing-journald"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba316a74e8fc3c3896a850dba2375928a9fa171b085ecddfc7c054d39970f3fd"
-dependencies = [
- "libc",
- "tracing-core",
- "tracing-subscriber",
-]
-
-[[package]]
-name = "tracing-log"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
-dependencies = [
- "log",
- "once_cell",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-subscriber"
-version = "0.3.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
-dependencies = [
- "matchers",
- "nu-ansi-term",
- "once_cell",
- "regex",
- "sharded-slab",
- "smallvec",
- "thread_local",
- "tracing",
- "tracing-core",
- "tracing-log",
-]
-
-[[package]]
-name = "tray-icon"
-version = "0.13.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a97ec55956c54569e74209ae9d29a7a79193b252d17a6ac28bcffd4c11a384ad"
-dependencies = [
- "cocoa",
- "core-graphics",
- "crossbeam-channel",
- "dirs-next",
- "libappindicator",
- "muda",
- "objc",
- "once_cell",
- "png",
- "thiserror",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "try-lock"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
-
-[[package]]
-name = "typenum"
-version = "1.17.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
-
-[[package]]
-name = "unicode-bidi"
-version = "0.3.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
-dependencies = [
- "tinyvec",
-]
-
-[[package]]
-name = "unicode-segmentation"
-version = "1.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
-
-[[package]]
-name = "unicode-width"
-version = "0.1.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
-
-[[package]]
-name = "unicode-xid"
-version = "0.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
-
-[[package]]
-name = "url"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
-dependencies = [
- "form_urlencoded",
- "idna 0.5.0",
- "percent-encoding",
-]
-
-[[package]]
-name = "uuid"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
-
-[[package]]
-name = "valuable"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
-
-[[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-compare"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "vswhom"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b"
-dependencies = [
- "libc",
- "vswhom-sys",
-]
-
-[[package]]
-name = "vswhom-sys"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "want"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
-dependencies = [
- "try-lock",
-]
-
-[[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.92"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
-dependencies = [
- "cfg-if",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.92"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
-dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-futures"
-version = "0.4.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
-dependencies = [
- "cfg-if",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.92"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
-dependencies = [
- "quote 1.0.36",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.92"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.92"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
-
-[[package]]
-name = "waylyrics"
-version = "0.3.5"
-dependencies = [
- "ahash 0.8.11",
- "anyhow",
- "async-channel",
- "async-trait",
- "dbus",
- "directories",
- "documented",
- "gdk4-win32",
- "gettext-rs",
- "glib-macros 0.19.4",
- "gtk4",
- "ksni",
- "lrc-nom",
- "md5",
- "mimalloc",
- "mpris",
- "ncmapi2",
- "once_cell",
- "opencc-rust",
- "qqmusic-rs",
- "regex",
- "reqwest",
- "rust_decimal",
- "rust_decimal_macros",
- "serde",
- "serde_json",
- "sorensen",
- "strum",
- "thiserror",
- "tokio",
- "toml",
- "toml_edit 0.22.9",
- "tracing",
- "tracing-journald",
- "tracing-subscriber",
- "tray-icon",
- "url",
- "windows",
- "windows_exe_info",
-]
-
-[[package]]
-name = "web-sys"
-version = "0.3.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[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-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[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.56.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132"
-dependencies = [
- "windows-core",
- "windows-targets 0.52.5",
-]
-
-[[package]]
-name = "windows-core"
-version = "0.56.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6"
-dependencies = [
- "windows-implement",
- "windows-interface",
- "windows-result",
- "windows-targets 0.52.5",
-]
-
-[[package]]
-name = "windows-implement"
-version = "0.56.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "windows-interface"
-version = "0.56.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "windows-result"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "749f0da9cc72d82e600d8d2e44cadd0b9eedb9038f71a1c58556ac1c5791813b"
-dependencies = [
- "windows-targets 0.52.5",
-]
-
-[[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.5",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
-dependencies = [
- "windows-targets 0.52.5",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
-dependencies = [
- "windows_aarch64_gnullvm 0.48.5",
- "windows_aarch64_msvc 0.48.5",
- "windows_i686_gnu 0.48.5",
- "windows_i686_msvc 0.48.5",
- "windows_x86_64_gnu 0.48.5",
- "windows_x86_64_gnullvm 0.48.5",
- "windows_x86_64_msvc 0.48.5",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
-dependencies = [
- "windows_aarch64_gnullvm 0.52.5",
- "windows_aarch64_msvc 0.52.5",
- "windows_i686_gnu 0.52.5",
- "windows_i686_gnullvm",
- "windows_i686_msvc 0.52.5",
- "windows_x86_64_gnu 0.52.5",
- "windows_x86_64_gnullvm 0.52.5",
- "windows_x86_64_msvc 0.52.5",
-]
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
-
-[[package]]
-name = "windows_exe_info"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7e7bfd02caf5cd98a197cec15c852685c8c42605f91d7be3083541a0b40a7ff"
-dependencies = [
- "embed-resource",
-]
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
-
-[[package]]
-name = "windows_i686_gnullvm"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
-
-[[package]]
-name = "winnow"
-version = "0.5.40"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "winnow"
-version = "0.6.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "winreg"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
-dependencies = [
- "cfg-if",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wyz"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
-dependencies = [
- "tap",
-]
-
-[[package]]
-name = "x11"
-version = "2.21.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e"
-dependencies = [
- "libc",
- "pkg-config",
-]
-
-[[package]]
-name = "xml-rs"
-version = "0.8.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193"
-
-[[package]]
-name = "zerocopy"
-version = "0.7.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
-dependencies = [
- "zerocopy-derive",
-]
-
-[[package]]
-name = "zerocopy-derive"
-version = "0.7.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
-dependencies = [
- "proc-macro2",
- "quote 1.0.36",
- "syn 2.0.58",
-]
-
-[[package]]
-name = "zeroize"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
diff --git a/pkgs/applications/audio/waylyrics/default.nix b/pkgs/applications/audio/waylyrics/default.nix
index 8fcfe02acfe9e..69069f01243c3 100644
--- a/pkgs/applications/audio/waylyrics/default.nix
+++ b/pkgs/applications/audio/waylyrics/default.nix
@@ -9,25 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "waylyrics";
-  version = "0.3.5";
+  version = "0.3.12";
 
   src = fetchFromGitHub {
     owner = "waylyrics";
     repo = "waylyrics";
     rev = "v${version}";
-    hash = "sha256-44O2+OLsBZhl0/0910RsdCe8cHt6UGhYF7CUfhsFQU8=";
+    hash = "sha256-FfrgeUDKiM9m0mvKlu02KEuvsq+3Gv3yPFW1DIQw05I=";
   };
 
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "ksni-0.2.1" = "sha256-kjirYZVDP9e7/933L7gwSgVrNInSTbsRCAfnhUqmcLI=";
-    };
-  };
-
-  postPatch = ''
-    cp ${./Cargo.lock} Cargo.lock
-  '';
+  cargoHash = "sha256-xD46aKT18Kl+81Pfv+zleUUKhSV1Px7JFjhXw1/4cBA=";
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook4 ];
   buildInputs = [ openssl dbus ];
diff --git a/pkgs/applications/audio/whipper/default.nix b/pkgs/applications/audio/whipper/default.nix
index 53d7262d78df7..179bb96660859 100644
--- a/pkgs/applications/audio/whipper/default.nix
+++ b/pkgs/applications/audio/whipper/default.nix
@@ -3,9 +3,12 @@
 , fetchFromGitHub
 , fetchpatch
 , installShellFiles
+, wrapGAppsNoGuiHook
+, gobject-introspection
 , libcdio-paranoia
 , cdrdao
 , libsndfile
+, glib
 , flac
 , sox
 , util-linux
@@ -37,6 +40,8 @@ in python3.pkgs.buildPythonApplication rec {
 
   nativeBuildInputs = with python3.pkgs; [
     installShellFiles
+    wrapGAppsNoGuiHook
+    gobject-introspection
 
     setuptools-scm
     docutils
@@ -54,7 +59,7 @@ in python3.pkgs.buildPythonApplication rec {
     setuptools
   ];
 
-  buildInputs = [ libsndfile ];
+  buildInputs = [ libsndfile glib ];
 
   nativeCheckInputs = with python3.pkgs; [
     twisted
@@ -62,8 +67,11 @@ in python3.pkgs.buildPythonApplication rec {
 
   makeWrapperArgs = [
     "--prefix" "PATH" ":" (lib.makeBinPath bins)
+    "\${gappsWrapperArgs[@]}"
   ];
 
+  dontWrapGApps = true;
+
   outputs = [ "out" "man" ];
   postBuild = ''
     make -C man
@@ -88,7 +96,7 @@ in python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/whipper-team/whipper";
-    description = "A CD ripper aiming for accuracy over speed";
+    description = "CD ripper aiming for accuracy over speed";
     maintainers = with maintainers; [ emily ];
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/applications/audio/x42-avldrums/default.nix b/pkgs/applications/audio/x42-avldrums/default.nix
index 16e1a24343c53..3234a719e3c00 100644
--- a/pkgs/applications/audio/x42-avldrums/default.nix
+++ b/pkgs/applications/audio/x42-avldrums/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "x42-avldrums";
-  version = "0.7.2";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "x42";
     repo = "avldrums.lv2";
     rev = "v${version}";
-    hash = "sha256-NNqBZTWjIM97qsXTW/+6T7eOAELi/OwXh4mCYPD/C6I=";
+    hash = "sha256-AZKHjzgw0TtLHh4TF+yOUSa+GlNVwyHCpJWAZikXTy4=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/yasr/default.nix b/pkgs/applications/audio/yasr/default.nix
index b90b7272b1ab0..7da1e066413b7 100644
--- a/pkgs/applications/audio/yasr/default.nix
+++ b/pkgs/applications/audio/yasr/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://yasr.sourceforge.net";
-    description = "A general-purpose console screen reader";
+    description = "General-purpose console screen reader";
     longDescription = "Yasr is a general-purpose console screen reader for GNU/Linux and other Unix-like operating systems.";
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl2;
diff --git a/pkgs/applications/audio/ymuse/default.nix b/pkgs/applications/audio/ymuse/default.nix
index 2c8da2f3af44e..19859a1d819d9 100644
--- a/pkgs/applications/audio/ymuse/default.nix
+++ b/pkgs/applications/audio/ymuse/default.nix
@@ -1,7 +1,7 @@
 { lib
 , fetchFromGitHub
 , buildGoModule
-, wrapGAppsHook
+, wrapGAppsHook3
 , pkg-config
 , glib
 , gobject-introspection
@@ -26,7 +26,7 @@ buildGoModule rec {
 
   nativeBuildInputs = [
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
     glib
     gobject-introspection
     gdk-pixbuf
diff --git a/pkgs/applications/audio/youtube-music/default.nix b/pkgs/applications/audio/youtube-music/default.nix
index c56e2ba4c48fc..e02bc32412bd2 100644
--- a/pkgs/applications/audio/youtube-music/default.nix
+++ b/pkgs/applications/audio/youtube-music/default.nix
@@ -4,74 +4,34 @@
 , electron
 , python3
 , stdenv
-, stdenvNoCC
 , copyDesktopItems
-, moreutils
-, cacert
-, jq
-, nodePackages
+, nodejs
+, pnpm
 , makeDesktopItem
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "youtube-music";
-  version = "3.3.5";
+  version = "3.3.12";
 
   src = fetchFromGitHub {
     owner = "th-ch";
     repo = "youtube-music";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-JOmcfe7xrKRaxJwj2No3e99HBYbX+ROTjHl5Frc2P9Q=";
+    hash = "sha256-kBGMp58086NQ77x1YGS5NewWfiDaXHOEbyflHPtdfIs=";
   };
 
-  pnpmDeps = stdenvNoCC.mkDerivation {
-    pname = "${finalAttrs.pname}-pnpm-deps";
-    inherit (finalAttrs) src version ELECTRON_SKIP_BINARY_DOWNLOAD;
-
-    nativeBuildInputs = [ jq moreutils nodePackages.pnpm cacert ];
-
-    installPhase = ''
-      export HOME=$(mktemp -d)
-
-      pnpm config set store-dir $out
-      pnpm install --frozen-lockfile --ignore-script
-
-      rm -rf $out/v3/tmp
-      for f in $(find $out -name "*.json"); do
-        sed -i -E -e 's/"checkedAt":[0-9]+,//g' $f
-        jq --sort-keys . $f | sponge $f
-      done
-    '';
-
-    dontBuild = true;
-    dontFixup = true;
-    outputHashMode = "recursive";
-    outputHash = {
-      x86_64-linux = "sha256-K2yJdoi+bJpz0Xf2MHlFzQXbP+H3uVE2hYfkzoB7vBE=";
-      aarch64-linux = "sha256-ZiA6XKPnkoAl9m2vEJth2wyDxj61Efye4cUk+76znnM=";
-      x86_64-darwin = "sha256-wh5Y47c5qD2PctROP9AWqLDs7H5S2/8X0zxkSMkr1xQ=";
-      aarch64-darwin = "sha256-e2h4bLVnSEtZcHERsfkNmawgxQHQXxgXrNlFKB+IRTw=";
-    }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
+  pnpmDeps = pnpm.fetchDeps {
+    inherit (finalAttrs) pname version src;
+    hash = "sha256-t5omzz6y8lVFGAuhtc+HF5gwu4Ntt/dxml+nWysEpVs=";
   };
 
-  nativeBuildInputs = [ makeWrapper python3 nodePackages.pnpm nodePackages.nodejs ]
+  nativeBuildInputs = [ makeWrapper python3 nodejs pnpm.configHook ]
     ++ lib.optionals (!stdenv.isDarwin) [ copyDesktopItems ];
 
 
   ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
 
-  preBuild = ''
-    export HOME=$(mktemp -d)
-    export STORE_PATH=$(mktemp -d)
-
-    cp -Tr "$pnpmDeps" "$STORE_PATH"
-    chmod -R +w "$STORE_PATH"
-
-    pnpm config set store-dir "$STORE_PATH"
-    pnpm install --offline --frozen-lockfile --ignore-script
-    patchShebangs node_modules/{*,.*}
-  '';
-
   postBuild = lib.optionalString stdenv.isDarwin ''
     cp -R ${electron}/Applications/Electron.app Electron.app
     chmod -R u+w Electron.app
@@ -127,8 +87,9 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "Electron wrapper around YouTube Music";
     homepage = "https://th-ch.github.io/youtube-music/";
+    changelog = "https://github.com/th-ch/youtube-music/blob/master/changelog.md#${lib.replaceStrings ["."] [""] finalAttrs.src.rev}";
     license = licenses.mit;
-    maintainers = [ maintainers.aacebedo ];
+    maintainers = with maintainers; [ aacebedo SuperSandro2000 ];
     mainProgram = "youtube-music";
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
diff --git a/pkgs/applications/audio/zam-plugins/default.nix b/pkgs/applications/audio/zam-plugins/default.nix
index 7d499ff1664e8..1638954c15c83 100644
--- a/pkgs/applications/audio/zam-plugins/default.nix
+++ b/pkgs/applications/audio/zam-plugins/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zam-plugins";
-  version = "4.2";
+  version = "4.3";
 
   src = fetchFromGitHub {
     owner = "zamaudio";
     repo = pname;
     rev = version;
-    sha256 = "sha256-6TPZMDhGHqXjY8UYEqlr4hweF+W19IpIfSa9Bo9Ta1A=";
+    sha256 = "sha256-wT1BXQrcD+TI+trqx0ZVUmVLZMTDQgJI3dAvN54wy6Y=";
     fetchSubmodules = true;
   };
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.zamaudio.com/?p=976";
-    description = "A collection of LV2/LADSPA/VST/JACK audio plugins by ZamAudio";
+    description = "Collection of LV2/LADSPA/VST/JACK audio plugins by ZamAudio";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/zita-at1/default.nix b/pkgs/applications/audio/zita-at1/default.nix
index 4e9544e39602d..d55942368f8fe 100644
--- a/pkgs/applications/audio/zita-at1/default.nix
+++ b/pkgs/applications/audio/zita-at1/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zita-at1";
-  version = "0.6.2";
+  version = "0.8.2";
 
   src = fetchurl {
     url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "0mxfn61zvhlq3r1mqipyqzjbanrfdkk8x4nxbz8nlbdk0bf3vfqr";
+    sha256 = "sha256-NSYTJmgOmL/CgGI/rBGQuqmccZEzvwYgchb7e4XqmmM=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/audio/zrythm/default.nix b/pkgs/applications/audio/zrythm/default.nix
index 663c159d5d9b0..8ec6ba1a040aa 100644
--- a/pkgs/applications/audio/zrythm/default.nix
+++ b/pkgs/applications/audio/zrythm/default.nix
@@ -1,12 +1,9 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchFromSourcehut
-, fetchpatch
-, SDL2
+, fetchzip
 , alsa-lib
 , appstream
-, appstream-glib
 , bash-completion
 , boost
 , breeze-icons
@@ -16,7 +13,6 @@
 , curl
 , dbus
 , dconf
-, faust2lv2
 , fftw
 , fftwFloat
 , flex
@@ -27,159 +23,140 @@
 , guile
 , help2man
 , jq
-, json-glib
 , kissfft
 , libadwaita
-, libaudec
 , libbacktrace
 , libcyaml
 , libepoxy
-, libgtop
 , libjack2
 , libpanel
 , libpulseaudio
 , libsamplerate
-, libsass
 , libsndfile
-, libsoundio
 , libxml2
 , libyaml
 , lilv
 , lv2
 , meson
 , ninja
-, pandoc
-, pcre
 , pcre2
 , pkg-config
 , python3
-, reproc
-, rtaudio
+, rtaudio_6
 , rtmidi
 , rubberband
 , sassc
 , serd
 , sord
 , sox
+, soxr
 , sratom
 , texi2html
 , vamp-plugin-sdk
 , wrapGAppsHook4
+, writeScript
 , xdg-utils
 , xxHash
+, yyjson
 , zix
 , zstd
 }:
 
 let
-  # As of zrythm-1.0.0-beta.4.5.62, Zrythm needs clap
-  # https://github.com/falktx/carla/tree/main/source/includes/clap, which is
-  # only available on Carla unstable as of 2023-02-24.
-  carla-unstable = carla.overrideAttrs (oldAttrs: rec {
+  # Error: Dependency carla-host-plugin found: NO found 2.5.6 but need: '>=2.6.0'
+  # So we need Carla unstable
+  carla-unstable = carla.overrideAttrs (oldAttrs: {
     pname = "carla";
-    version = "unstable-2023-05-12";
+    version = "unstable-2024-04-26";
 
     src = fetchFromGitHub {
       owner = "falkTX";
-      repo = pname;
-      rev = "0175570f1d41285f39efe0ee32234458e0ed941c";
-      hash = "sha256-yfVzZV8G4AUDM8+yS9finzobpOb1PUEPgBWFhEY4nFQ=";
+      repo = "carla";
+      rev = "948991d7b5104280c03960925908e589c77b169a";
+      hash = "sha256-uGAuKheoMfP9hZXsw29ec+58dJM8wMuowe95QutzKBY=";
     };
   });
 in
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "zrythm";
-  version = "1.0.0-beta.4.9.1";
+  version = "1.0.0-rc.1";
 
-  src = fetchFromSourcehut {
-    owner = "~alextee";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-U3IUqNbHu20uyWfkTsLOOlUZjcUL4QdHilB3srSsebw=";
+  src = fetchzip {
+    url = "https://www.zrythm.org/releases/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
+    sha256 = "sha256-Ljbw7bjGI6js4OP9KEXCkhC9AMbInSz0nn+pROm4vXw=";
   };
 
+  passthru.updateScript = writeScript "update-zrythm" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p curl common-updater-scripts
+
+    version="$(curl -s https://www.zrythm.org/releases/ | grep -o -m 1 'href="zrythm-[^"]*\.tar\.xz"' | head -1 | sed 's/href="zrythm-\(.*\)\.tar\.xz"/\1/')"
+    update-source-version zrythm "$version"
+  '';
+
   nativeBuildInputs = [
+    chromaprint
     cmake
+    flex
+    guile
     help2man
     jq
-    libaudec
     libxml2
+    lilv
     meson
     ninja
-    pandoc
     pkg-config
     python3
     python3.pkgs.sphinx
     sassc
+    serd
+    sord
+    sratom
     texi2html
     wrapGAppsHook4
   ];
 
   buildInputs = [
-    SDL2
     alsa-lib
     appstream
-    appstream-glib
     bash-completion
     boost
-    breeze-icons
     carla-unstable
-    chromaprint
     curl
     dbus
     dconf
-    faust2lv2
     fftw
     fftwFloat
-    flex
     glib
     graphviz
     gtk4
     gtksourceview5
-    guile
-    json-glib
     kissfft
     libadwaita
     libbacktrace
     libcyaml
     libepoxy
-    libgtop
     libjack2
     libpanel
     libpulseaudio
     libsamplerate
-    libsass
     libsndfile
-    libsoundio
     libyaml
-    lilv
     lv2
-    pcre
     pcre2
-    reproc
-    rtaudio
+    rtaudio_6
     rtmidi
     rubberband
-    serd
-    sord
     sox
-    sratom
+    soxr
     vamp-plugin-sdk
     xdg-utils
     xxHash
+    yyjson
     zix
     zstd
   ];
 
-  patches = [
-    # Fix gcc-13 build failure
-    (fetchpatch {
-      name = "gcc-13.patch";
-      url = "https://gitlab.zrythm.org/zrythm/zrythm/-/commit/cbc2b3715b939718479631841f2d9703fb28e6da.diff";
-      hash = "sha256-2ZTSaCtSO3yynJVFe5B1AEjWhjRa5YyA26ergAfdL5Y=";
-    })
-  ];
-
   # Zrythm uses meson to build, but requires cmake for dependency detection.
   dontUseCmakeConfigure = true;
 
@@ -197,7 +174,6 @@ stdenv.mkDerivation rec {
     "-Dmanpage=true"
     "-Drtaudio=enabled"
     "-Drtmidi=enabled"
-    "-Dsdl=enabled"
     # "-Duser_manual=true" # needs sphinx-intl
   ];
 
@@ -220,7 +196,7 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     gappsWrapperArgs+=(
-      --prefix GSETTINGS_SCHEMA_DIR : "$out/share/gsettings-schemas/${pname}-${version}/glib-2.0/schemas/"
+      --prefix GSETTINGS_SCHEMA_DIR : "$out/share/gsettings-schemas/${finalAttrs.pname}-${finalAttrs.version}/glib-2.0/schemas/"
       --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${breeze-icons}/share"
     )
   '';
@@ -228,8 +204,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.zrythm.org";
     description = "Automated and intuitive digital audio workstation";
-    maintainers = with maintainers; [ tshaynik magnetophon yuu ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ tshaynik magnetophon yuu astavie PowerUser64 ];
+    platforms = platforms.unix;
+    broken = stdenv.isDarwin;
     license = licenses.agpl3Plus;
   };
-}
+})
diff --git a/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix b/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix
index f490e452b51c0..7f33e10f74208 100644
--- a/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix
+++ b/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Zest Framework used in ZynAddSubFX's UI";
+    description = "Zest Framework used in ZynAddSubFX's UI";
     homepage = "https://github.com/mruby-zest";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ kira-bruneau ];