about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/baudline/default.nix1
-rw-r--r--pkgs/applications/audio/easyeffects/default.nix4
-rw-r--r--pkgs/applications/audio/geonkick/default.nix4
-rw-r--r--pkgs/applications/audio/hqplayer-desktop/default.nix1
-rw-r--r--pkgs/applications/audio/losslessaudiochecker/default.nix1
-rw-r--r--pkgs/applications/audio/midas/generic.nix1
-rw-r--r--pkgs/applications/audio/ncpamixer/default.nix2
-rw-r--r--pkgs/applications/audio/ocenaudio/default.nix1
-rw-r--r--pkgs/applications/audio/pocket-casts/default.nix1
-rw-r--r--pkgs/applications/audio/reaper/default.nix1
-rw-r--r--pkgs/applications/audio/redux/default.nix1
-rw-r--r--pkgs/applications/audio/renoise/default.nix1
-rw-r--r--pkgs/applications/audio/rymcast/default.nix1
-rwxr-xr-xpkgs/applications/audio/soundwireserver/default.nix1
-rw-r--r--pkgs/applications/audio/spotify/default.nix1
-rw-r--r--pkgs/applications/audio/sunvox/default.nix1
-rw-r--r--pkgs/applications/audio/tidal-hifi/default.nix119
-rw-r--r--pkgs/applications/audio/tonelib-gfx/default.nix1
-rw-r--r--pkgs/applications/audio/tonelib-jam/default.nix1
-rw-r--r--pkgs/applications/audio/tonelib-metal/default.nix1
-rw-r--r--pkgs/applications/audio/tonelib-zoom/default.nix1
-rw-r--r--pkgs/applications/audio/transcribe/default.nix1
-rw-r--r--pkgs/applications/audio/virtual-ans/default.nix1
-rw-r--r--pkgs/applications/blockchains/exodus/default.nix1
-rw-r--r--pkgs/applications/blockchains/nearcore/default.nix6
-rw-r--r--pkgs/applications/blockchains/sparrow/default.nix4
-rw-r--r--pkgs/applications/blockchains/wasabibackend/default.nix1
-rw-r--r--pkgs/applications/blockchains/wasabiwallet/default.nix1
-rw-r--r--pkgs/applications/editors/atom/default.nix1
-rw-r--r--pkgs/applications/editors/eclipse/build-eclipse.nix1
-rw-r--r--pkgs/applications/editors/pinegrow/default.nix1
-rw-r--r--pkgs/applications/editors/quartus-prime/quartus.nix1
-rw-r--r--pkgs/applications/editors/rehex/default.nix2
-rw-r--r--pkgs/applications/editors/sublime/2/default.nix1
-rw-r--r--pkgs/applications/editors/sublime/3/common.nix1
-rw-r--r--pkgs/applications/editors/sublime/4/common.nix1
-rw-r--r--pkgs/applications/editors/vim/default.nix13
-rw-r--r--pkgs/applications/editors/vim/plugins/generated.nix844
-rw-r--r--pkgs/applications/editors/vim/plugins/overrides.nix88
-rwxr-xr-xpkgs/applications/editors/vim/plugins/update.py8
-rw-r--r--pkgs/applications/editors/vscode/extensions/default.nix41
-rw-r--r--pkgs/applications/emulators/atari800/default.nix4
-rw-r--r--pkgs/applications/emulators/kega-fusion/default.nix1
-rw-r--r--pkgs/applications/emulators/wine/base.nix4
-rw-r--r--pkgs/applications/finance/cryptowatch/default.nix1
-rw-r--r--pkgs/applications/gis/qgis/unwrapped-ltr.nix4
-rw-r--r--pkgs/applications/gis/qgis/unwrapped.nix4
-rw-r--r--pkgs/applications/gis/udig/default.nix1
-rw-r--r--pkgs/applications/graphics/avocode/default.nix1
-rw-r--r--pkgs/applications/graphics/drawio/default.nix1
-rw-r--r--pkgs/applications/graphics/fiji/default.nix5
-rw-r--r--pkgs/applications/graphics/freecad/default.nix4
-rw-r--r--pkgs/applications/graphics/kodelife/default.nix1
-rw-r--r--pkgs/applications/graphics/lightburn/default.nix1
-rw-r--r--pkgs/applications/graphics/lorien/default.nix124
-rw-r--r--pkgs/applications/graphics/odafileconverter/default.nix1
-rw-r--r--pkgs/applications/graphics/panotools/default.nix7
-rw-r--r--pkgs/applications/graphics/pencil/default.nix1
-rw-r--r--pkgs/applications/graphics/pixeluvo/default.nix1
-rw-r--r--pkgs/applications/graphics/pixinsight/default.nix1
-rw-r--r--pkgs/applications/graphics/sane/backends/brscan4/default.nix1
-rw-r--r--pkgs/applications/graphics/sane/backends/brscan5/default.nix1
-rw-r--r--pkgs/applications/graphics/sane/backends/dsseries/default.nix1
-rw-r--r--pkgs/applications/graphics/solvespace/default.nix8
-rw-r--r--pkgs/applications/graphics/unigine-heaven/default.nix1
-rw-r--r--pkgs/applications/graphics/unigine-sanctuary/default.nix1
-rw-r--r--pkgs/applications/graphics/unigine-superposition/default.nix1
-rw-r--r--pkgs/applications/graphics/unigine-tropics/default.nix1
-rw-r--r--pkgs/applications/graphics/unigine-valley/default.nix1
-rw-r--r--pkgs/applications/graphics/vengi-tools/default.nix4
-rw-r--r--pkgs/applications/graphics/write_stylus/default.nix1
-rw-r--r--pkgs/applications/misc/1password-gui/beta.nix1
-rw-r--r--pkgs/applications/misc/1password-gui/default.nix1
-rw-r--r--pkgs/applications/misc/1password/default.nix12
-rw-r--r--pkgs/applications/misc/ArchiSteamFarm/web-ui/default.nix3
-rw-r--r--pkgs/applications/misc/adobe-reader/default.nix1
-rw-r--r--pkgs/applications/misc/anytype/default.nix4
-rw-r--r--pkgs/applications/misc/authy/default.nix1
-rw-r--r--pkgs/applications/misc/azuredatastudio/default.nix1
-rw-r--r--pkgs/applications/misc/binance/default.nix5
-rw-r--r--pkgs/applications/misc/confclerk/default.nix18
-rw-r--r--pkgs/applications/misc/dbeaver/default.nix4
-rw-r--r--pkgs/applications/misc/debian-goodies/default.nix4
-rw-r--r--pkgs/applications/misc/etesync-dav/default.nix5
-rw-r--r--pkgs/applications/misc/foxitreader/default.nix1
-rw-r--r--pkgs/applications/misc/gometer/default.nix1
-rw-r--r--pkgs/applications/misc/googleearth-pro/default.nix1
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix8
-rw-r--r--pkgs/applications/misc/hubstaff/default.nix1
-rw-r--r--pkgs/applications/misc/icesl/default.nix1
-rw-r--r--pkgs/applications/misc/ideamaker/default.nix1
-rw-r--r--pkgs/applications/misc/ipmicfg/default.nix1
-rw-r--r--pkgs/applications/misc/ipmiview/default.nix5
-rw-r--r--pkgs/applications/misc/join-desktop/default.nix1
-rw-r--r--pkgs/applications/misc/jotta-cli/default.nix1
-rw-r--r--pkgs/applications/misc/kdbplus/default.nix1
-rw-r--r--pkgs/applications/misc/koreader/default.nix1
-rw-r--r--pkgs/applications/misc/masterpdfeditor/default.nix1
-rw-r--r--pkgs/applications/misc/masterpdfeditor4/default.nix1
-rw-r--r--pkgs/applications/misc/megacmd/default.nix4
-rw-r--r--pkgs/applications/misc/mystem/default.nix1
-rw-r--r--pkgs/applications/misc/organicmaps/default.nix16
-rw-r--r--pkgs/applications/misc/pastel/default.nix6
-rw-r--r--pkgs/applications/misc/pdfsam-basic/default.nix4
-rw-r--r--pkgs/applications/misc/pdfstudio/common.nix4
-rw-r--r--pkgs/applications/misc/playonlinux/default.nix1
-rw-r--r--pkgs/applications/misc/polar-bookshelf/default.nix1
-rw-r--r--pkgs/applications/misc/premid/default.nix1
-rw-r--r--pkgs/applications/misc/prusa-slicer/default.nix55
-rw-r--r--pkgs/applications/misc/rescuetime/default.nix1
-rw-r--r--pkgs/applications/misc/robo3t/default.nix1
-rw-r--r--pkgs/applications/misc/sidequest/default.nix1
-rw-r--r--pkgs/applications/misc/signumone-ks/default.nix4
-rw-r--r--pkgs/applications/misc/simplenote/default.nix1
-rw-r--r--pkgs/applications/misc/skytemple/default.nix22
-rw-r--r--pkgs/applications/misc/snapmaker-luban/default.nix1
-rw-r--r--pkgs/applications/misc/snowsql/default.nix1
-rw-r--r--pkgs/applications/misc/thedesk/default.nix1
-rw-r--r--pkgs/applications/misc/upwork/default.nix1
-rw-r--r--pkgs/applications/misc/whalebird/default.nix1
-rw-r--r--pkgs/applications/misc/xkblayout-state/default.nix4
-rw-r--r--pkgs/applications/misc/xmind/default.nix5
-rw-r--r--pkgs/applications/misc/xplr/default.nix8
-rw-r--r--pkgs/applications/networking/aether/default.nix1
-rw-r--r--pkgs/applications/networking/apache-directory-studio/default.nix4
-rw-r--r--pkgs/applications/networking/appgate-sdp/default.nix1
-rw-r--r--pkgs/applications/networking/blocky/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/patches/m102-fix-dawn_version_generator-failure.patch43
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json16
-rw-r--r--pkgs/applications/networking/browsers/firefox/wrapper.nix7
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix1
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/widevine.nix1
-rw-r--r--pkgs/applications/networking/cisco-packet-tracer/7.nix1
-rw-r--r--pkgs/applications/networking/cisco-packet-tracer/8.nix1
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/fluxcd/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/kubernetes/default.nix31
-rw-r--r--pkgs/applications/networking/cluster/kubernetes/kubectl.nix13
-rw-r--r--pkgs/applications/networking/cluster/ocm/default.nix14
-rw-r--r--pkgs/applications/networking/cluster/octant/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/roxctl/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/talosctl/default.nix42
-rw-r--r--pkgs/applications/networking/cluster/temporal-cli/default.nix17
-rw-r--r--pkgs/applications/networking/cluster/tfswitch/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/velero/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/werf/default.nix6
-rw-r--r--pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix1
-rw-r--r--pkgs/applications/networking/flexget/default.nix4
-rw-r--r--pkgs/applications/networking/hpmyroom/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/alfaview/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/bluejeans/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/chatty/default.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/darwin.nix10
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/default.nix9
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/linux.nix10
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/openasar.nix42
-rw-r--r--pkgs/applications/networking/instant-messengers/ferdi/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/franz/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/gitter/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/hipchat/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/jitsi/default.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/ripcord/darwin.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/ripcord/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/sky/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/slack/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/teams/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/teamspeak/client.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/teamspeak/server.nix7
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/threema-desktop/default.nix7
-rw-r--r--pkgs/applications/networking/instant-messengers/viber/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/vk-cli/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/vk-messenger/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/wire-desktop/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix1
-rw-r--r--pkgs/applications/networking/insync/default.nix1
-rw-r--r--pkgs/applications/networking/insync/v3.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/mailspring/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix522
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/packages.nix4
-rw-r--r--pkgs/applications/networking/mullvad-vpn/default.nix1
-rw-r--r--pkgs/applications/networking/onionshare/default.nix2
-rw-r--r--pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix9
-rw-r--r--pkgs/applications/networking/p2p/jesec-rtorrent/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/soulseekqt/default.nix1
-rw-r--r--pkgs/applications/networking/p2p/tixati/default.nix1
-rw-r--r--pkgs/applications/networking/pcloud/default.nix1
-rw-r--r--pkgs/applications/networking/remote/anydesk/default.nix5
-rw-r--r--pkgs/applications/networking/remote/aws-workspaces/default.nix1
-rw-r--r--pkgs/applications/networking/remote/citrix-workspace/generic.nix1
-rw-r--r--pkgs/applications/networking/remote/nice-dcv-client/default.nix1
-rw-r--r--pkgs/applications/networking/remote/teamviewer/default.nix1
-rw-r--r--pkgs/applications/networking/resilio-sync/default.nix1
-rw-r--r--pkgs/applications/networking/scaleft/default.nix1
-rw-r--r--pkgs/applications/networking/sniffers/sngrep/default.nix4
-rw-r--r--pkgs/applications/networking/spideroak/default.nix1
-rw-r--r--pkgs/applications/networking/sync/onedrive/default.nix4
-rw-r--r--pkgs/applications/networking/syncthing-gtk/paths.patch22
-rw-r--r--pkgs/applications/networking/synology-drive-client/default.nix1
-rw-r--r--pkgs/applications/networking/termius/default.nix1
-rw-r--r--pkgs/applications/networking/tetrd/default.nix1
-rw-r--r--pkgs/applications/office/appflowy/default.nix1
-rw-r--r--pkgs/applications/office/jabref/default.nix1
-rw-r--r--pkgs/applications/office/libreoffice/default.nix2
-rw-r--r--pkgs/applications/office/mendeley/default.nix1
-rw-r--r--pkgs/applications/office/moneyplex/default.nix1
-rw-r--r--pkgs/applications/office/morgen/default.nix1
-rw-r--r--pkgs/applications/office/onlyoffice-bin/default.nix1
-rw-r--r--pkgs/applications/office/portfolio/default.nix5
-rw-r--r--pkgs/applications/office/qownnotes/default.nix4
-rw-r--r--pkgs/applications/office/softmaker/generic.nix1
-rw-r--r--pkgs/applications/office/wpsoffice/default.nix1
-rw-r--r--pkgs/applications/office/zotero/default.nix1
-rw-r--r--pkgs/applications/radio/gnuradio/3.9.nix4
-rw-r--r--pkgs/applications/radio/gnuradio/default.nix4
-rw-r--r--pkgs/applications/radio/js8call/cmake.patch69
-rw-r--r--pkgs/applications/radio/js8call/default.nix65
-rw-r--r--pkgs/applications/radio/sdrplay/default.nix1
-rw-r--r--pkgs/applications/science/biology/flywheel-cli/default.nix1
-rw-r--r--pkgs/applications/science/biology/quast/default.nix4
-rw-r--r--pkgs/applications/science/electronics/bitscope/common.nix1
-rw-r--r--pkgs/applications/science/electronics/eagle/eagle.nix1
-rw-r--r--pkgs/applications/science/electronics/picoscope/default.nix2
-rw-r--r--pkgs/applications/science/logic/isabelle/default.nix20
-rw-r--r--pkgs/applications/science/logic/nuXmv/default.nix1
-rw-r--r--pkgs/applications/science/logic/saw-tools/default.nix1
-rw-r--r--pkgs/applications/science/logic/tlaplus/toolbox.nix1
-rw-r--r--pkgs/applications/science/logic/tptp/default.nix1
-rw-r--r--pkgs/applications/science/logic/verifast/default.nix1
-rw-r--r--pkgs/applications/science/logic/verit/default.nix1
-rw-r--r--pkgs/applications/science/logic/z3/4.4.0.nix2
-rw-r--r--pkgs/applications/science/machine-learning/sc2-headless/default.nix1
-rw-r--r--pkgs/applications/science/math/cplex/default.nix1
-rw-r--r--pkgs/applications/science/math/geogebra/default.nix4
-rw-r--r--pkgs/applications/science/math/geogebra/geogebra6.nix6
-rw-r--r--pkgs/applications/science/math/gurobi/default.nix5
-rw-r--r--pkgs/applications/science/math/hmetis/default.nix1
-rw-r--r--pkgs/applications/science/math/scilab-bin/default.nix1
-rw-r--r--pkgs/applications/science/math/wolfram-engine/default.nix1
-rw-r--r--pkgs/applications/science/medicine/aliza/default.nix1
-rw-r--r--pkgs/applications/science/misc/boinc/default.nix6
-rw-r--r--pkgs/applications/science/misc/foldingathome/client.nix1
-rw-r--r--pkgs/applications/science/misc/foldingathome/control.nix1
-rw-r--r--pkgs/applications/science/misc/foldingathome/viewer.nix1
-rw-r--r--pkgs/applications/science/programming/fdr/default.nix1
-rw-r--r--pkgs/applications/science/robotics/betaflight-configurator/default.nix7
-rw-r--r--pkgs/applications/science/robotics/emuflight-configurator/default.nix1
-rw-r--r--pkgs/applications/science/robotics/inav-configurator/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/dterm/default.nix42
-rw-r--r--pkgs/applications/terminal-emulators/hyper/default.nix1
-rw-r--r--pkgs/applications/version-management/bcompare/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/gh/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-machete/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix8
-rw-r--r--pkgs/applications/version-management/gitea/default.nix15
-rw-r--r--pkgs/applications/version-management/github-desktop/default.nix1
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix1
-rw-r--r--pkgs/applications/version-management/meld/default.nix22
-rw-r--r--pkgs/applications/version-management/p4/default.nix1
-rw-r--r--pkgs/applications/version-management/p4v/default.nix1
-rw-r--r--pkgs/applications/version-management/sublime-merge/common.nix1
-rw-r--r--pkgs/applications/video/filebot/default.nix5
-rw-r--r--pkgs/applications/video/flirc/default.nix1
-rw-r--r--pkgs/applications/video/jellyfin-mpv-shim/default.nix4
-rw-r--r--pkgs/applications/video/lightworks/default.nix1
-rw-r--r--pkgs/applications/video/makemkv/default.nix1
-rw-r--r--pkgs/applications/video/streamlink-twitch-gui/bin.nix1
-rw-r--r--pkgs/applications/virtualization/conmon/default.nix2
-rw-r--r--pkgs/applications/virtualization/crun/default.nix10
-rw-r--r--pkgs/applications/virtualization/docker/compose.nix6
-rw-r--r--pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix1
-rw-r--r--pkgs/applications/virtualization/driver/win-spice/default.nix1
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix4
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix1
-rwxr-xr-xpkgs/applications/virtualization/vmware-workstation/default.nix1
-rw-r--r--pkgs/applications/window-managers/i3/i3-resurrect.nix4
-rw-r--r--pkgs/applications/window-managers/i3/status-rust.nix8
-rw-r--r--pkgs/build-support/docker/examples.nix41
-rw-r--r--pkgs/build-support/fetchgit/default.nix4
-rw-r--r--pkgs/data/misc/hackage/pin.json8
-rw-r--r--pkgs/data/misc/v2ray-domain-list-community/default.nix4
-rw-r--r--pkgs/data/misc/v2ray-geoip/default.nix6
-rw-r--r--pkgs/data/themes/nordic/default.nix34
-rw-r--r--pkgs/desktops/gnome/games/aisleriot/default.nix2
-rw-r--r--pkgs/development/compilers/gcc/4.9/default.nix6
-rw-r--r--pkgs/development/compilers/gcc/common/pre-configure.nix10
-rw-r--r--pkgs/development/compilers/ghc/8.10.7.nix3
-rw-r--r--pkgs/development/compilers/ghc/9.0.2.nix3
-rw-r--r--pkgs/development/compilers/ghc/9.2.3.nix3
-rw-r--r--pkgs/development/compilers/hare/disable-failing-test-cases.patch37
-rw-r--r--pkgs/development/compilers/hare/hare.nix10
-rw-r--r--pkgs/development/compilers/hare/harec.nix6
-rw-r--r--pkgs/development/compilers/hare/setup-hook.sh11
-rw-r--r--pkgs/development/compilers/llvm/14/compiler-rt/armv7l.patch32
-rw-r--r--pkgs/development/compilers/llvm/14/compiler-rt/default.nix3
-rw-r--r--pkgs/development/compilers/vyper/default.nix3
-rw-r--r--pkgs/development/coq-modules/paramcoq/default.nix3
-rw-r--r--pkgs/development/haskell-modules/cabal2nix-unstable.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix43
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml9
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml260
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml34
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml8
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix54
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix6173
-rw-r--r--pkgs/development/haskell-modules/lib/compose.nix3
-rw-r--r--pkgs/development/haskell-modules/non-hackage-packages.nix4
-rw-r--r--pkgs/development/interpreters/dhall/build-dhall-url.nix3
-rw-r--r--pkgs/development/interpreters/wasmtime/default.nix20
-rw-r--r--pkgs/development/libraries/amdvlk/default.nix4
-rw-r--r--pkgs/development/libraries/cpp-utilities/default.nix4
-rw-r--r--pkgs/development/libraries/duckdb/default.nix16
-rw-r--r--pkgs/development/libraries/egl-wayland/default.nix4
-rw-r--r--pkgs/development/libraries/geos/default.nix15
-rw-r--r--pkgs/development/libraries/libkqueue/default.nix5
-rw-r--r--pkgs/development/libraries/libvgm/default.nix6
-rw-r--r--pkgs/development/libraries/libzip/default.nix4
-rw-r--r--pkgs/development/libraries/ncurses/default.nix12
-rw-r--r--pkgs/development/libraries/pipewire/default.nix12
-rw-r--r--pkgs/development/libraries/science/math/m4rie/default.nix4
-rw-r--r--pkgs/development/libraries/taskflow/default.nix4
-rw-r--r--pkgs/development/libraries/v8/8_x.nix1
-rw-r--r--pkgs/development/libraries/v8/default.nix1
-rw-r--r--pkgs/development/node-packages/main-programs.nix1
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/base.nix4
-rw-r--r--pkgs/development/ocaml-modules/fmt/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ocaml-r/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/parmap/default.nix3
-rw-r--r--pkgs/development/python-modules/aesara/default.nix8
-rw-r--r--pkgs/development/python-modules/ailment/default.nix4
-rw-r--r--pkgs/development/python-modules/angr/default.nix4
-rw-r--r--pkgs/development/python-modules/angrop/default.nix9
-rw-r--r--pkgs/development/python-modules/archinfo/default.nix4
-rw-r--r--pkgs/development/python-modules/audible/default.nix6
-rw-r--r--pkgs/development/python-modules/aws-lambda-builders/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-eventhub/default.nix12
-rw-r--r--pkgs/development/python-modules/beaker/default.nix5
-rw-r--r--pkgs/development/python-modules/bimmer-connected/default.nix4
-rw-r--r--pkgs/development/python-modules/bitlist/default.nix4
-rw-r--r--pkgs/development/python-modules/casbin/default.nix4
-rw-r--r--pkgs/development/python-modules/claripy/default.nix4
-rw-r--r--pkgs/development/python-modules/cle/default.nix7
-rw-r--r--pkgs/development/python-modules/clickgen/default.nix3
-rw-r--r--pkgs/development/python-modules/cloudflare/default.nix4
-rw-r--r--pkgs/development/python-modules/connexion/default.nix4
-rw-r--r--pkgs/development/python-modules/cookiecutter/default.nix18
-rw-r--r--pkgs/development/python-modules/crownstone-uart/default.nix4
-rw-r--r--pkgs/development/python-modules/diff-cover/default.nix4
-rw-r--r--pkgs/development/python-modules/django-allauth/default.nix4
-rw-r--r--pkgs/development/python-modules/django-debug-toolbar/default.nix4
-rw-r--r--pkgs/development/python-modules/django-oauth-toolkit/default.nix6
-rw-r--r--pkgs/development/python-modules/django-prometheus/default.nix4
-rw-r--r--pkgs/development/python-modules/django-prometheus/drop-untestable-database-backends.patch6
-rw-r--r--pkgs/development/python-modules/django-webpack-loader/default.nix4
-rw-r--r--pkgs/development/python-modules/dremel3dpy/default.nix10
-rw-r--r--pkgs/development/python-modules/drf-spectacular-sidecar/default.nix4
-rw-r--r--pkgs/development/python-modules/ducc0/default.nix4
-rw-r--r--pkgs/development/python-modules/duckdb-engine/default.nix4
-rw-r--r--pkgs/development/python-modules/duckdb/default.nix4
-rw-r--r--pkgs/development/python-modules/email-validator/default.nix3
-rw-r--r--pkgs/development/python-modules/eth-typing/default.nix4
-rw-r--r--pkgs/development/python-modules/expiringdict/default.nix4
-rw-r--r--pkgs/development/python-modules/fastapi-mail/default.nix4
-rw-r--r--pkgs/development/python-modules/flake8-bugbear/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-admin/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-appbuilder/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-caching/default.nix28
-rw-r--r--pkgs/development/python-modules/flask-mongoengine/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-security-too/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-wtf/default.nix4
-rw-r--r--pkgs/development/python-modules/flower/default.nix3
-rw-r--r--pkgs/development/python-modules/furo/default.nix6
-rw-r--r--pkgs/development/python-modules/gehomesdk/default.nix4
-rw-r--r--pkgs/development/python-modules/gsd/default.nix6
-rw-r--r--pkgs/development/python-modules/ihatemoney/default.nix4
-rw-r--r--pkgs/development/python-modules/imap-tools/default.nix6
-rw-r--r--pkgs/development/python-modules/iminuit/default.nix30
-rw-r--r--pkgs/development/python-modules/junos-eznc/default.nix2
-rw-r--r--pkgs/development/python-modules/jupyter_server/default.nix33
-rw-r--r--pkgs/development/python-modules/jupyterhub/default.nix5
-rw-r--r--pkgs/development/python-modules/kerberos/default.nix6
-rw-r--r--pkgs/development/python-modules/kubernetes/default.nix6
-rw-r--r--pkgs/development/python-modules/losant-rest/default.nix4
-rw-r--r--pkgs/development/python-modules/lxmf/default.nix4
-rw-r--r--pkgs/development/python-modules/manuel/default.nix4
-rw-r--r--pkgs/development/python-modules/md-toc/default.nix8
-rw-r--r--pkgs/development/python-modules/miniaudio/default.nix4
-rw-r--r--pkgs/development/python-modules/mitogen/default.nix4
-rw-r--r--pkgs/development/python-modules/mockito/default.nix4
-rw-r--r--pkgs/development/python-modules/mysqlclient/default.nix4
-rw-r--r--pkgs/development/python-modules/napalm/default.nix8
-rw-r--r--pkgs/development/python-modules/nexia/default.nix4
-rw-r--r--pkgs/development/python-modules/nomadnet/default.nix4
-rw-r--r--pkgs/development/python-modules/notebook/default.nix4
-rw-r--r--pkgs/development/python-modules/openai/default.nix4
-rw-r--r--pkgs/development/python-modules/peaqevcore/default.nix4
-rw-r--r--pkgs/development/python-modules/proto-plus/default.nix4
-rw-r--r--pkgs/development/python-modules/pulumi-aws/default.nix4
-rw-r--r--pkgs/development/python-modules/pychromecast/default.nix4
-rw-r--r--pkgs/development/python-modules/pydantic/default.nix4
-rw-r--r--pkgs/development/python-modules/pygmt/default.nix6
-rw-r--r--pkgs/development/python-modules/pyhiveapi/default.nix4
-rw-r--r--pkgs/development/python-modules/pyld/default.nix (renamed from pkgs/development/python-modules/PyLD/default.nix)4
-rw-r--r--pkgs/development/python-modules/pymazda/default.nix4
-rw-r--r--pkgs/development/python-modules/pymc/default.nix6
-rw-r--r--pkgs/development/python-modules/pypdf2/default.nix4
-rw-r--r--pkgs/development/python-modules/pypoolstation/default.nix6
-rw-r--r--pkgs/development/python-modules/pyroute2-core/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-ethtool/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-ipdb/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-ipset/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-ndb/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-nftables/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-nslink/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-protocols/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2/default.nix4
-rw-r--r--pkgs/development/python-modules/pyside2/default.nix4
-rw-r--r--pkgs/development/python-modules/pysigma/default.nix6
-rw-r--r--pkgs/development/python-modules/pyswitchbot/default.nix8
-rw-r--r--pkgs/development/python-modules/python-jenkins/default.nix12
-rw-r--r--pkgs/development/python-modules/python-magic/default.nix5
-rw-r--r--pkgs/development/python-modules/pyvex/default.nix4
-rw-r--r--pkgs/development/python-modules/railroad-diagrams/default.nix16
-rw-r--r--pkgs/development/python-modules/rencode/default.nix24
-rw-r--r--pkgs/development/python-modules/rns/default.nix4
-rw-r--r--pkgs/development/python-modules/ropgadget/default.nix6
-rw-r--r--pkgs/development/python-modules/schwifty/default.nix4
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/shiboken2/default.nix2
-rw-r--r--pkgs/development/python-modules/slack-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/soco/default.nix6
-rw-r--r--pkgs/development/python-modules/sphinx-basic-ng/default.nix44
-rw-r--r--pkgs/development/python-modules/strenum/default.nix4
-rw-r--r--pkgs/development/python-modules/sunpy/default.nix4
-rw-r--r--pkgs/development/python-modules/systemd/default.nix36
-rw-r--r--pkgs/development/python-modules/tensorflow-metadata/default.nix4
-rw-r--r--pkgs/development/python-modules/tensorflow/bin.nix14
-rw-r--r--pkgs/development/python-modules/tensorflow/binary-hashes.nix50
-rwxr-xr-xpkgs/development/python-modules/tensorflow/prefetcher.sh18
-rw-r--r--pkgs/development/python-modules/timetagger/default.nix4
-rw-r--r--pkgs/development/python-modules/types-pytz/default.nix4
-rw-r--r--pkgs/development/python-modules/types-redis/default.nix4
-rw-r--r--pkgs/development/python-modules/types-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/types-tabulate/default.nix4
-rw-r--r--pkgs/development/python-modules/vaa/default.nix4
-rw-r--r--pkgs/development/python-modules/waitress/default.nix4
-rw-r--r--pkgs/development/python-modules/wandb/default.nix6
-rw-r--r--pkgs/development/python-modules/wtforms/default.nix4
-rw-r--r--pkgs/development/python-modules/youtube-search-python/default.nix4
-rw-r--r--pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb14
-rw-r--r--pkgs/development/tools/analysis/checkov/default.nix4
-rw-r--r--pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix9
-rw-r--r--pkgs/development/tools/analysis/tflint/default.nix4
-rw-r--r--pkgs/development/tools/apko/default.nix6
-rw-r--r--pkgs/development/tools/asmfmt/default.nix21
-rw-r--r--pkgs/development/tools/asmfmt/deps.nix20
-rw-r--r--pkgs/development/tools/bazelisk/default.nix6
-rw-r--r--pkgs/development/tools/beancount-language-server/default.nix6
-rw-r--r--pkgs/development/tools/buf/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_4/default.nix15
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_5/default.nix16
-rw-r--r--pkgs/development/tools/check/default.nix22
-rw-r--r--pkgs/development/tools/check/deps.nix11
-rw-r--r--pkgs/development/tools/clj-kondo/default.nix4
-rw-r--r--pkgs/development/tools/cloud-nuke/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/dagger/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/github-runner/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/agent.nix17
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/cli.nix17
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/common.nix36
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/frontend.nix40
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/server.nix27
-rwxr-xr-xpkgs/development/tools/continuous-integration/woodpecker/update.sh50
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/woodpecker-package.json63
-rw-r--r--pkgs/development/tools/dapper/default.nix19
-rw-r--r--pkgs/development/tools/doctl/default.nix4
-rw-r--r--pkgs/development/tools/ineffassign/default.nix27
-rw-r--r--pkgs/development/tools/lc3tools/0004-configure-use-cc.patch22
-rw-r--r--pkgs/development/tools/lc3tools/default.nix10
-rw-r--r--pkgs/development/tools/maligned/default.nix27
-rw-r--r--pkgs/development/tools/maligned/deps.nix20
-rw-r--r--pkgs/development/tools/misc/checkbashisms/default.nix4
-rw-r--r--pkgs/development/tools/misc/clojure-lsp/default.nix6
-rw-r--r--pkgs/development/tools/misc/elfinfo/default.nix13
-rw-r--r--pkgs/development/tools/misc/hound/default.nix4
-rw-r--r--pkgs/development/tools/misc/terraform-ls/default.nix6
-rw-r--r--pkgs/development/tools/okteto/default.nix6
-rw-r--r--pkgs/development/tools/packer/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-about/default.nix (renamed from pkgs/tools/package-management/cargo-about/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-about/zstd-pkg-config.patch (renamed from pkgs/tools/package-management/cargo-about/zstd-pkg-config.patch)0
-rw-r--r--pkgs/development/tools/rust/cargo-audit/default.nix (renamed from pkgs/tools/package-management/cargo-audit/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-bisect-rustc/default.nix31
-rw-r--r--pkgs/development/tools/rust/cargo-crev/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-deb/default.nix (renamed from pkgs/tools/package-management/cargo-deb/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-deps/default.nix (renamed from pkgs/tools/package-management/cargo-deps/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-download/Cargo.nix (renamed from pkgs/tools/package-management/cargo-download/Cargo.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-download/crates-io.nix (renamed from pkgs/tools/package-management/cargo-download/crates-io.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-download/default.nix (renamed from pkgs/tools/package-management/cargo-download/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-edit/default.nix (renamed from pkgs/tools/package-management/cargo-edit/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-expand/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-flamegraph/default.nix (renamed from pkgs/development/tools/cargo-flamegraph/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-graph/default.nix (renamed from pkgs/tools/package-management/cargo-graph/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-insta/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-kcov/default.nix (renamed from pkgs/tools/package-management/cargo-kcov/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-license/default.nix (renamed from pkgs/tools/package-management/cargo-license/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-outdated/default.nix (renamed from pkgs/tools/package-management/cargo-outdated/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-release/default.nix (renamed from pkgs/tools/package-management/cargo-release/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-update/default.nix (renamed from pkgs/tools/package-management/cargo-update/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-web/default.nix (renamed from pkgs/development/tools/cargo-web/default.nix)0
-rw-r--r--pkgs/development/tools/vultr/default.nix24
-rw-r--r--pkgs/development/tools/yq-go/default.nix12
-rw-r--r--pkgs/development/web/deno/default.nix6
-rw-r--r--pkgs/development/web/deno/librusty_v8.nix10
-rw-r--r--pkgs/games/freeciv/default.nix4
-rw-r--r--pkgs/games/gnonograms/default.nix14
-rw-r--r--pkgs/games/itch-setup/default.nix24
-rw-r--r--pkgs/games/itch/butler.nix29
-rw-r--r--pkgs/games/itch/default.nix85
-rw-r--r--pkgs/games/sm64ex/default.nix112
-rw-r--r--pkgs/games/sm64ex/generic.nix83
-rw-r--r--pkgs/games/umoria/default.nix24
-rw-r--r--pkgs/misc/screensavers/rss-glx/cstddef.patch12
-rw-r--r--pkgs/misc/screensavers/rss-glx/default.nix20
-rw-r--r--pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix4
-rw-r--r--pkgs/os-specific/linux/ax99100/default.nix29
-rw-r--r--pkgs/os-specific/linux/bcc/default.nix2
-rw-r--r--pkgs/os-specific/linux/bpftrace/default.nix10
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json70
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.10.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.15.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.17.nix18
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.18.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-libre.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix1
-rwxr-xr-xpkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh2
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix18
-rw-r--r--pkgs/servers/cayley/default.nix40
-rw-r--r--pkgs/servers/cayley/deps.nix471
-rw-r--r--pkgs/servers/confluencepot/default.nix44
-rw-r--r--pkgs/servers/dns/coredns/default.nix6
-rw-r--r--pkgs/servers/geospatial/geoserver/default.nix38
-rw-r--r--pkgs/servers/gpm/default.nix10
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix2
-rw-r--r--pkgs/servers/home-assistant/default.nix4
-rw-r--r--pkgs/servers/interlock/default.nix48
-rw-r--r--pkgs/servers/interlock/deps.nix65
-rw-r--r--pkgs/servers/irc/ergochat/default.nix4
-rw-r--r--pkgs/servers/mail/mlmmj/default.nix6
-rw-r--r--pkgs/servers/metabase/default.nix4
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix8
-rw-r--r--pkgs/servers/nextcloud/default.nix8
-rw-r--r--pkgs/servers/nosql/mongodb/patches/mongodb-4.0-glibc-2.34.patch14
-rw-r--r--pkgs/servers/nosql/mongodb/v4_0.nix14
-rw-r--r--pkgs/servers/nosql/mongodb/v4_2.nix13
-rw-r--r--pkgs/servers/peertube/default.nix8
-rw-r--r--pkgs/servers/plex/raw.nix6
-rw-r--r--pkgs/servers/rt/default.nix5
-rw-r--r--pkgs/servers/serf/default.nix42
-rw-r--r--pkgs/servers/shairport-sync/default.nix22
-rw-r--r--pkgs/servers/traefik/default.nix29
-rw-r--r--pkgs/servers/trickster/trickster.nix53
-rw-r--r--pkgs/servers/trickster/trickster_deps.nix237
-rw-r--r--pkgs/servers/web-apps/jirafeau/default.nix4
-rw-r--r--pkgs/servers/web-apps/snipe-it/default.nix4
-rw-r--r--pkgs/shells/oh/default.nix6
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix4
-rw-r--r--pkgs/tools/X11/pmenu/default.nix60
-rw-r--r--pkgs/tools/admin/aliyun-cli/default.nix6
-rw-r--r--pkgs/tools/admin/boulder/default.nix53
-rw-r--r--pkgs/tools/admin/lxd/default.nix7
-rw-r--r--pkgs/tools/admin/trinsic-cli/default.nix4
-rw-r--r--pkgs/tools/audio/mpd-discord-rpc/default.nix6
-rw-r--r--pkgs/tools/backup/borgmatic/default.nix4
-rw-r--r--pkgs/tools/backup/dar/default.nix4
-rw-r--r--pkgs/tools/backup/zfsbackup/default.nix26
-rw-r--r--pkgs/tools/backup/zfsbackup/deps.nix1326
-rw-r--r--pkgs/tools/bluetooth/blueman/default.nix4
-rw-r--r--pkgs/tools/filesystems/bindfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/catcli/default.nix6
-rw-r--r--pkgs/tools/filesystems/gcsfuse/default.nix16
-rw-r--r--pkgs/tools/filesystems/httm/default.nix6
-rw-r--r--pkgs/tools/games/minecraft/packwiz/default.nix6
-rw-r--r--pkgs/tools/graphics/wallutils/default.nix4
-rw-r--r--pkgs/tools/misc/antimicrox/default.nix4
-rw-r--r--pkgs/tools/misc/broot/default.nix6
-rw-r--r--pkgs/tools/misc/chafa/default.nix4
-rw-r--r--pkgs/tools/misc/chezmoi/default.nix6
-rw-r--r--pkgs/tools/misc/dateutils/default.nix4
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix4
-rw-r--r--pkgs/tools/misc/direnv/default.nix6
-rw-r--r--pkgs/tools/misc/dsq/default.nix26
-rw-r--r--pkgs/tools/misc/flameshot/default.nix4
-rw-r--r--pkgs/tools/misc/qjoypad/default.nix36
-rw-r--r--pkgs/tools/misc/time-decode/default.nix6
-rw-r--r--pkgs/tools/misc/tmux/default.nix6
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix18
-rw-r--r--pkgs/tools/networking/brook/default.nix6
-rw-r--r--pkgs/tools/networking/mu/default.nix69
-rw-r--r--pkgs/tools/networking/networkmanager/default.nix16
-rw-r--r--pkgs/tools/networking/offlineimap/default.nix1
-rw-r--r--pkgs/tools/networking/routedns/default.nix29
-rw-r--r--pkgs/tools/networking/vegeta/default.nix37
-rw-r--r--pkgs/tools/networking/vegeta/deps.nix255
-rw-r--r--pkgs/tools/networking/waitron/default.nix33
-rw-r--r--pkgs/tools/networking/waitron/deps.nix57
-rw-r--r--pkgs/tools/nix/alejandra/default.nix6
-rw-r--r--pkgs/tools/nix/nar-serve/default.nix6
-rw-r--r--pkgs/tools/nix/nixel/default.nix36
-rw-r--r--pkgs/tools/package-management/appimagekit/default.nix1
-rw-r--r--pkgs/tools/package-management/micromamba/default.nix2
-rw-r--r--pkgs/tools/security/bitwarden/default.nix6
-rw-r--r--pkgs/tools/security/certstrap/default.nix24
-rw-r--r--pkgs/tools/security/cve-bin-tool/default.nix25
-rw-r--r--pkgs/tools/security/fail2ban/default.nix6
-rw-r--r--pkgs/tools/security/himitsu-firefox/default.nix46
-rw-r--r--pkgs/tools/security/himitsu/default.nix34
-rw-r--r--pkgs/tools/security/prs/default.nix6
-rw-r--r--pkgs/tools/security/rekor/default.nix6
-rw-r--r--pkgs/tools/security/schleuder/Gemfile3
-rw-r--r--pkgs/tools/security/schleuder/Gemfile.lock85
-rw-r--r--pkgs/tools/security/schleuder/cli/Gemfile4
-rw-r--r--pkgs/tools/security/schleuder/cli/Gemfile.lock21
-rw-r--r--pkgs/tools/security/schleuder/cli/default.nix34
-rw-r--r--pkgs/tools/security/schleuder/cli/gemset.nix25
-rw-r--r--pkgs/tools/security/schleuder/default.nix38
-rw-r--r--pkgs/tools/security/schleuder/gemset.nix316
-rw-r--r--pkgs/tools/security/sslscan/default.nix4
-rw-r--r--pkgs/tools/system/btop/default.nix4
-rw-r--r--pkgs/tools/system/openipmi/default.nix2
-rw-r--r--pkgs/tools/system/smartmontools/default.nix10
-rw-r--r--pkgs/tools/text/cmigemo/default.nix6
-rw-r--r--pkgs/tools/text/dos2unix/default.nix4
-rw-r--r--pkgs/tools/text/mdbook/default.nix6
-rw-r--r--pkgs/tools/text/nkf/default.nix11
-rw-r--r--pkgs/tools/text/poedit/default.nix8
-rw-r--r--pkgs/tools/typesetting/htmldoc/default.nix4
-rw-r--r--pkgs/tools/video/harvid/default.nix12
-rw-r--r--pkgs/tools/video/rtmpdump/default.nix6
-rw-r--r--pkgs/tools/x11/xmcp/default.nix33
-rw-r--r--pkgs/top-level/aliases.nix1
-rw-r--r--pkgs/top-level/all-packages.nix165
-rw-r--r--pkgs/top-level/config.nix4
-rw-r--r--pkgs/top-level/dotnet-packages.nix4
-rw-r--r--pkgs/top-level/linux-kernels.nix15
-rw-r--r--pkgs/top-level/perl-packages.nix6
-rw-r--r--pkgs/top-level/python-aliases.nix2
-rw-r--r--pkgs/top-level/python-packages.nix11
-rw-r--r--pkgs/top-level/release-lib.nix3
664 files changed, 10203 insertions, 6272 deletions
diff --git a/pkgs/applications/audio/baudline/default.nix b/pkgs/applications/audio/baudline/default.nix
index b2a74e23dc5ea..6e5c53091d7c6 100644
--- a/pkgs/applications/audio/baudline/default.nix
+++ b/pkgs/applications/audio/baudline/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
     # See http://www.baudline.com/faq.html#licensing_terms.
     # (Do NOT (re)distribute on hydra.)
     license = licenses.unfree;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = [ maintainers.bjornfor ];
   };
diff --git a/pkgs/applications/audio/easyeffects/default.nix b/pkgs/applications/audio/easyeffects/default.nix
index ff7cce36712de..46b801bba331d 100644
--- a/pkgs/applications/audio/easyeffects/default.nix
+++ b/pkgs/applications/audio/easyeffects/default.nix
@@ -35,13 +35,13 @@
 
 stdenv.mkDerivation rec {
   pname = "easyeffects";
-  version = "6.2.5";
+  version = "6.2.6";
 
   src = fetchFromGitHub {
     owner = "wwmm";
     repo = "easyeffects";
     rev = "v${version}";
-    sha256 = "sha256-LvTvNBo3aUGUD4vA04YtINFBjTplhmkxj3FlbTZDTA0=";
+    sha256 = "sha256-1kXYh2Qk0Wj0LgHTcRVAKro7LAPV/UM5i9VmHjmxTx0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/geonkick/default.nix b/pkgs/applications/audio/geonkick/default.nix
index 9739a88586ae0..0a99edd7b069c 100644
--- a/pkgs/applications/audio/geonkick/default.nix
+++ b/pkgs/applications/audio/geonkick/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "geonkick";
-  version = "2.9.0";
+  version = "2.9.1";
 
   src = fetchFromGitLab {
     owner = "iurie-sw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/BDK1PyRw4xOt+rzC9yX29aRQb1aDnDBIenSz+859OY=";
+    sha256 = "sha256-XSqcj8+X6QMBnIusPB9VNrgcbdiWhNMOYeFyKklGmO8=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/applications/audio/hqplayer-desktop/default.nix b/pkgs/applications/audio/hqplayer-desktop/default.nix
index 5cfd9c7cbe898..17c8f936efd11 100644
--- a/pkgs/applications/audio/hqplayer-desktop/default.nix
+++ b/pkgs/applications/audio/hqplayer-desktop/default.nix
@@ -86,6 +86,7 @@ mkDerivation rec {
     homepage = "https://www.signalyst.com/custom.html";
     description = "High-end upsampling multichannel software HD-audio player";
     license = licenses.unfree;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ lovesegfault ];
   };
diff --git a/pkgs/applications/audio/losslessaudiochecker/default.nix b/pkgs/applications/audio/losslessaudiochecker/default.nix
index 9fecf7b9ba924..b7150d6b67713 100644
--- a/pkgs/applications/audio/losslessaudiochecker/default.nix
+++ b/pkgs/applications/audio/losslessaudiochecker/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation {
   meta = {
     description = "Utility to check whether audio is truly lossless or not";
     homepage = "https://losslessaudiochecker.com";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with lib.maintainers; [ p-h ];
diff --git a/pkgs/applications/audio/midas/generic.nix b/pkgs/applications/audio/midas/generic.nix
index b58bd0b275726..8c34318191bcf 100644
--- a/pkgs/applications/audio/midas/generic.nix
+++ b/pkgs/applications/audio/midas/generic.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     inherit homepage;
     description = "Editor for the ${brand} ${type} digital mixer";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/ncpamixer/default.nix b/pkgs/applications/audio/ncpamixer/default.nix
index aca96ef5da351..7663d1745d2fb 100644
--- a/pkgs/applications/audio/ncpamixer/default.nix
+++ b/pkgs/applications/audio/ncpamixer/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/fulhax/ncpamixer";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ StijnDW SuperSandro2000 ];
+    maintainers = with maintainers; [ StijnDW ] ++ teams.c3d2.members;
   };
 }
diff --git a/pkgs/applications/audio/ocenaudio/default.nix b/pkgs/applications/audio/ocenaudio/default.nix
index 8fe6beebc4b8d..1bbbe3583f90a 100644
--- a/pkgs/applications/audio/ocenaudio/default.nix
+++ b/pkgs/applications/audio/ocenaudio/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Cross-platform, easy to use, fast and functional audio editor";
     homepage = "https://www.ocenaudio.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ onny ];
diff --git a/pkgs/applications/audio/pocket-casts/default.nix b/pkgs/applications/audio/pocket-casts/default.nix
index 46625253d0f6a..7b7bf50a2f83f 100644
--- a/pkgs/applications/audio/pocket-casts/default.nix
+++ b/pkgs/applications/audio/pocket-casts/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Pocket Casts webapp, packaged for the Linux Desktop";
     homepage = "https://github.com/felicianotech/pocket-casts-desktop-app";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/reaper/default.nix b/pkgs/applications/audio/reaper/default.nix
index 820475be0c65b..d186755eccea2 100644
--- a/pkgs/applications/audio/reaper/default.nix
+++ b/pkgs/applications/audio/reaper/default.nix
@@ -76,6 +76,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Digital audio workstation";
     homepage = "https://www.reaper.fm/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" "aarch64-linux" ];
     maintainers = with maintainers; [ jfrankenau ilian orivej uniquepointer ];
diff --git a/pkgs/applications/audio/redux/default.nix b/pkgs/applications/audio/redux/default.nix
index 45ee78917ace3..41254cc9e50ee 100644
--- a/pkgs/applications/audio/redux/default.nix
+++ b/pkgs/applications/audio/redux/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Sample-based instrument, with a powerful phrase sequencer";
     homepage = "https://www.renoise.com/products/redux";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ mihnea-s ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/renoise/default.nix b/pkgs/applications/audio/renoise/default.nix
index acd1d80c86d57..1be3f53dce5f9 100644
--- a/pkgs/applications/audio/renoise/default.nix
+++ b/pkgs/applications/audio/renoise/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Modern tracker-based DAW";
     homepage = "https://www.renoise.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/rymcast/default.nix b/pkgs/applications/audio/rymcast/default.nix
index 92d3151c835c0..06e711941a637 100644
--- a/pkgs/applications/audio/rymcast/default.nix
+++ b/pkgs/applications/audio/rymcast/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Player for Mega Drive/Genesis VGM files";
     homepage = "https://www.inphonik.com/products/rymcast-genesis-vgm-player/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ astsmtl ];
diff --git a/pkgs/applications/audio/soundwireserver/default.nix b/pkgs/applications/audio/soundwireserver/default.nix
index db8d28989b27a..b296ebdad602a 100755
--- a/pkgs/applications/audio/soundwireserver/default.nix
+++ b/pkgs/applications/audio/soundwireserver/default.nix
@@ -35,6 +35,7 @@ qt5.mkDerivation {
     homepage = "https://georgielabs.net/";
     maintainers = with maintainers; [ mkg20001 ];
     platforms = [ "x86_64-linux" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
   };
 }
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index 14caa6db9c45f..ecbdaec7f28af 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -167,6 +167,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://www.spotify.com/";
     description = "Play music from the Spotify music service";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ eelco ftrvxmtrx sheenobu mudri timokau ma27 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/sunvox/default.nix b/pkgs/applications/audio/sunvox/default.nix
index 503079b9ed4b8..1bde46cdc944c 100644
--- a/pkgs/applications/audio/sunvox/default.nix
+++ b/pkgs/applications/audio/sunvox/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Small, fast and powerful modular synthesizer with pattern-based sequencer";
     license = licenses.unfreeRedistributable;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     homepage = "http://www.warmplace.ru/soft/sunvox/";
     maintainers = with maintainers; [ puffnfresh ];
     platforms = [ "i686-linux" "x86_64-linux" ];
diff --git a/pkgs/applications/audio/tidal-hifi/default.nix b/pkgs/applications/audio/tidal-hifi/default.nix
new file mode 100644
index 0000000000000..1befa966d3514
--- /dev/null
+++ b/pkgs/applications/audio/tidal-hifi/default.nix
@@ -0,0 +1,119 @@
+{ lib
+, stdenv
+, fetchurl
+, autoPatchelfHook
+, dpkg
+, makeWrapper
+, alsa-lib
+, at-spi2-atk
+, at-spi2-core
+, atk
+, cairo
+, cups
+, dbus
+, expat
+, ffmpeg
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, gtk3
+, libappindicator-gtk3
+, libdbusmenu
+, libdrm
+, libnotify
+, libpulseaudio
+, libsecret
+, libuuid
+, libxkbcommon
+, mesa
+, nss
+, pango
+, systemd
+, xdg-utils
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tidal-hifi";
+  version = "4.0.0";
+
+  src = fetchurl {
+    url = "https://github.com/Mastermindzh/tidal-hifi/releases/download/${version}/tidal-hifi_${version}_amd64.deb";
+    sha256 = "19gx9x3v5ywlvg5vyqgj6pghzwinby0i8isavfrix798pfr98j5z";
+  };
+
+  nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper ];
+
+  buildInputs = [
+    alsa-lib
+    at-spi2-atk
+    at-spi2-core
+    atk
+    cairo
+    cups
+    dbus
+    expat
+    ffmpeg
+    fontconfig
+    freetype
+    gdk-pixbuf
+    glib
+    gtk3
+    pango
+    systemd
+    mesa # for libgbm
+    nss
+    libuuid
+    libdrm
+    libnotify
+    libsecret
+    libpulseaudio
+    libxkbcommon
+    libappindicator-gtk3
+    xorg.libX11
+    xorg.libxcb
+    xorg.libXcomposite
+    xorg.libXcursor
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libXrandr
+    xorg.libXrender
+    xorg.libXScrnSaver
+    xorg.libxshmfence
+    xorg.libXtst
+  ];
+
+  runtimeDependencies =
+    [ (lib.getLib systemd) libnotify libdbusmenu xdg-utils ];
+
+  unpackPhase = "dpkg-deb -x $src .";
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/bin"
+    cp -R "opt" "$out"
+    cp -R "usr/share" "$out/share"
+    chmod -R g-w "$out"
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    makeWrapper $out/opt/tidal-hifi/tidal-hifi $out/bin/tidal-hifi \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}" \
+      "''${gappsWrapperArgs[@]}"
+  '';
+
+  meta = with lib; {
+    description = "The web version of Tidal running in electron with hifi support thanks to widevine";
+    homepage = "https://github.com/Mastermindzh/tidal-hifi";
+    changelog = "https://github.com/Mastermindzh/tidal-hifi/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ alternateved ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/audio/tonelib-gfx/default.nix b/pkgs/applications/audio/tonelib-gfx/default.nix
index a0b3cf2879e6b..682627c0e8218 100644
--- a/pkgs/applications/audio/tonelib-gfx/default.nix
+++ b/pkgs/applications/audio/tonelib-gfx/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     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;
     maintainers = with maintainers; [ dan4ik605743 orivej ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/tonelib-jam/default.nix b/pkgs/applications/audio/tonelib-jam/default.nix
index 17b3b1197f458..9229cba4839a2 100644
--- a/pkgs/applications/audio/tonelib-jam/default.nix
+++ b/pkgs/applications/audio/tonelib-jam/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "ToneLib Jam – the learning and practice software for guitar players";
     homepage = "https://tonelib.net/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/tonelib-metal/default.nix b/pkgs/applications/audio/tonelib-metal/default.nix
index 9acb6982c6a72..29c5cb6a3f24e 100644
--- a/pkgs/applications/audio/tonelib-metal/default.nix
+++ b/pkgs/applications/audio/tonelib-metal/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "ToneLib Metal – Guitar amp simulator targeted at metal players";
     homepage = "https://tonelib.net/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/tonelib-zoom/default.nix b/pkgs/applications/audio/tonelib-zoom/default.nix
index 41539503e0203..74fe8645acf3c 100644
--- a/pkgs/applications/audio/tonelib-zoom/default.nix
+++ b/pkgs/applications/audio/tonelib-zoom/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "ToneLib Zoom – change and save all the settings in your Zoom(r) guitar pedal";
     homepage = "https://tonelib.net/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/transcribe/default.nix b/pkgs/applications/audio/transcribe/default.nix
index d10a0d8794180..06f0d47d8a2cd 100644
--- a/pkgs/applications/audio/transcribe/default.nix
+++ b/pkgs/applications/audio/transcribe/default.nix
@@ -95,6 +95,7 @@ stdenv.mkDerivation rec {
       conventional music players.
     '';
     homepage = "https://www.seventhstring.com/xscribe/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/audio/virtual-ans/default.nix b/pkgs/applications/audio/virtual-ans/default.nix
index c1e41e41284d3..07f006aa0cc1a 100644
--- a/pkgs/applications/audio/virtual-ans/default.nix
+++ b/pkgs/applications/audio/virtual-ans/default.nix
@@ -80,6 +80,7 @@ stdenv.mkDerivation rec {
       + supported sound systems: ASIO, DirectSound, MME, ALSA, OSS, JACK, Audiobus, IAA.
       '';
     homepage = "https://warmplace.ru/soft/ans/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.free;
     # I cannot test the Darwin version, so I'll leave it disabled
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/blockchains/exodus/default.nix b/pkgs/applications/blockchains/exodus/default.nix
index d13278b7deecd..654da25261d3f 100644
--- a/pkgs/applications/blockchains/exodus/default.nix
+++ b/pkgs/applications/blockchains/exodus/default.nix
@@ -76,6 +76,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.exodus.io/";
     description = "Top-rated cryptocurrency wallet with Trezor integration and built-in Exchange";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mmahut rople380 ];
diff --git a/pkgs/applications/blockchains/nearcore/default.nix b/pkgs/applications/blockchains/nearcore/default.nix
index 515108ab90bda..2c5f97c9c78ed 100644
--- a/pkgs/applications/blockchains/nearcore/default.nix
+++ b/pkgs/applications/blockchains/nearcore/default.nix
@@ -4,7 +4,7 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "nearcore";
-  version = "1.26.1";
+  version = "1.27.0";
 
   # https://github.com/near/nearcore/tags
   src = fetchFromGitHub {
@@ -12,10 +12,10 @@ rustPlatform.buildRustPackage rec {
     repo = "nearcore";
     # there is also a branch for this version number, so we need to be explicit
     rev = "refs/tags/${version}";
-    sha256 = "sha256-WoQtDdbFcvl6Wp5uv2tr/W/YYH8dyezF+LzSJ5oJcYY=";
+    sha256 = "sha256-B9HqUa0mBSvsCPzxPt4NqpV99rV4lmQ9Q/z9lxob9oM=";
   };
 
-  cargoSha256 = "sha256-7h14XzhhPmkPoTx0kkJl7I7CPqbRAtxa1zpplYxg4p4=";
+  cargoSha256 = "sha256-6GIt3J6y/O8XaHQJKRSPRgK2XbghMLif4e2Btdww9Ng=";
 
   postPatch = ''
     substituteInPlace neard/build.rs \
diff --git a/pkgs/applications/blockchains/sparrow/default.nix b/pkgs/applications/blockchains/sparrow/default.nix
index bf43bac96958a..e3b54a7465634 100644
--- a/pkgs/applications/blockchains/sparrow/default.nix
+++ b/pkgs/applications/blockchains/sparrow/default.nix
@@ -225,6 +225,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A modern desktop Bitcoin wallet application supporting most hardware wallets and built on common standards such as PSBT, with an emphasis on transparency and usability.";
     homepage = "https://sparrowwallet.com";
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.asl20;
     maintainers = with maintainers; [ emmanuelrosa _1000101 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/blockchains/wasabibackend/default.nix b/pkgs/applications/blockchains/wasabibackend/default.nix
index df30302bc6c50..e4e97cae21a0d 100644
--- a/pkgs/applications/blockchains/wasabibackend/default.nix
+++ b/pkgs/applications/blockchains/wasabibackend/default.nix
@@ -43,6 +43,7 @@ buildDotnetModule rec {
   meta = with lib; {
     description = "Backend for the Wasabi Wallet";
     homepage = "https://wasabiwallet.io/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = with maintainers; [ mmahut ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/blockchains/wasabiwallet/default.nix b/pkgs/applications/blockchains/wasabiwallet/default.nix
index e3cea78629f41..71ee383282390 100644
--- a/pkgs/applications/blockchains/wasabiwallet/default.nix
+++ b/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Privacy focused Bitcoin wallet";
     homepage = "https://wasabiwallet.io/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ mmahut ];
diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix
index 325dfdd85d3b1..29c4bb6c884c9 100644
--- a/pkgs/applications/editors/atom/default.nix
+++ b/pkgs/applications/editors/atom/default.nix
@@ -86,6 +86,7 @@ let
     meta = with lib; {
       description = "A hackable text editor for the 21st Century";
       homepage = "https://atom.io/";
+      sourceProvenance = with sourceTypes; [ binaryNativeCode ];
       license = licenses.mit;
       maintainers = with maintainers; [ offline ysndr ];
       platforms = platforms.x86_64;
diff --git a/pkgs/applications/editors/eclipse/build-eclipse.nix b/pkgs/applications/editors/eclipse/build-eclipse.nix
index 39b94664f0475..19a2e378f30a7 100644
--- a/pkgs/applications/editors/eclipse/build-eclipse.nix
+++ b/pkgs/applications/editors/eclipse/build-eclipse.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.eclipse.org/";
     inherit description;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     platforms = [ "x86_64-linux" ];
   };
 
diff --git a/pkgs/applications/editors/pinegrow/default.nix b/pkgs/applications/editors/pinegrow/default.nix
index 65604926b8fda..1149117e67b24 100644
--- a/pkgs/applications/editors/pinegrow/default.nix
+++ b/pkgs/applications/editors/pinegrow/default.nix
@@ -74,6 +74,7 @@ stdenv.mkDerivation rec {
     homepage = "https://pinegrow.com";
     description = "UI Web Editor";
     platforms = [ "x86_64-linux" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = with licenses; [ unfreeRedistributable ];
     maintainers = with maintainers; [ gador ];
   };
diff --git a/pkgs/applications/editors/quartus-prime/quartus.nix b/pkgs/applications/editors/quartus-prime/quartus.nix
index 9475f44170314..4b56698602382 100644
--- a/pkgs/applications/editors/quartus-prime/quartus.nix
+++ b/pkgs/applications/editors/quartus-prime/quartus.nix
@@ -89,6 +89,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     inherit homepage;
     description = "FPGA design and simulation software";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     hydraPlatforms = [ ]; # requireFile srcs cannot be fetched by hydra, ignore
diff --git a/pkgs/applications/editors/rehex/default.nix b/pkgs/applications/editors/rehex/default.nix
index 3b169bf4e5331..52134d15da823 100644
--- a/pkgs/applications/editors/rehex/default.nix
+++ b/pkgs/applications/editors/rehex/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/solemnwarning/rehex";
     changelog = "https://github.com/solemnwarning/rehex/raw/${version}/CHANGES.txt";
     license = licenses.gpl2Only;
-    maintainers = with maintainers; [ markus1189 SuperSandro2000 ];
+    maintainers = with maintainers; [ markus1189 ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/editors/sublime/2/default.nix b/pkgs/applications/editors/sublime/2/default.nix
index 074584e3360e5..6c9a43779f763 100644
--- a/pkgs/applications/editors/sublime/2/default.nix
+++ b/pkgs/applications/editors/sublime/2/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Sophisticated text editor for code, markup and prose";
     license = lib.licenses.unfree;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     platforms = [ "x86_64-linux" "i686-linux" ];
   };
 }
diff --git a/pkgs/applications/editors/sublime/3/common.nix b/pkgs/applications/editors/sublime/3/common.nix
index a5cf2d560c015..e1d5b3d4d36e3 100644
--- a/pkgs/applications/editors/sublime/3/common.nix
+++ b/pkgs/applications/editors/sublime/3/common.nix
@@ -131,6 +131,7 @@ in stdenv.mkDerivation (rec {
     description = "Sophisticated text editor for code, markup and prose";
     homepage = "https://www.sublimetext.com/";
     maintainers = with maintainers; [ jtojnar wmertens demin-dmitriy zimbatm ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" "i686-linux" ];
   };
diff --git a/pkgs/applications/editors/sublime/4/common.nix b/pkgs/applications/editors/sublime/4/common.nix
index 81eaa442425bc..de9bf276aa5bf 100644
--- a/pkgs/applications/editors/sublime/4/common.nix
+++ b/pkgs/applications/editors/sublime/4/common.nix
@@ -142,6 +142,7 @@ in stdenv.mkDerivation (rec {
     description = "Sophisticated text editor for code, markup and prose";
     homepage = "https://www.sublimetext.com/";
     maintainers = with maintainers; [ jtojnar wmertens demin-dmitriy zimbatm ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "aarch64-linux" "x86_64-linux" ];
   };
diff --git a/pkgs/applications/editors/vim/default.nix b/pkgs/applications/editors/vim/default.nix
index d8167f6098791..42a1b730fe15f 100644
--- a/pkgs/applications/editors/vim/default.nix
+++ b/pkgs/applications/editors/vim/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, callPackage, ncurses, gettext, pkg-config
+{ lib, stdenv, fetchurl, callPackage, ncurses, bash, gawk, gettext, pkg-config
 # default vimrc
 , vimrc ? fetchurl {
     name = "default-vimrc";
@@ -18,9 +18,11 @@ stdenv.mkDerivation {
   inherit (common) version src postPatch hardeningDisable enableParallelBuilding meta;
 
   nativeBuildInputs = [ gettext pkg-config ];
-  buildInputs = [ ncurses ]
+  buildInputs = [ ncurses bash gawk ]
     ++ lib.optionals stdenv.hostPlatform.isDarwin [ Carbon Cocoa ];
 
+  strictDeps = true;
+
   configureFlags = [
     "--enable-multibyte"
     "--enable-nls"
@@ -36,6 +38,13 @@ stdenv.mkDerivation {
     "vim_cv_memmove_handles_overlap=yes"
   ];
 
+  # which.sh is used to for vim's own shebang patching, so make it find
+  # binaries for the host platform.
+  preConfigure = ''
+    export HOST_PATH
+    substituteInPlace src/which.sh --replace '$PATH' '$HOST_PATH'
+  '';
+
   postInstall = ''
     ln -s $out/bin/vim $out/bin/vi
     mkdir -p $out/share/vim
diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix
index b11d09063f8a9..f96dba825a6c5 100644
--- a/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/generated.nix
@@ -281,12 +281,12 @@ final: prev:
 
   SchemaStore-nvim = buildVimPluginFrom2Nix {
     pname = "SchemaStore.nvim";
-    version = "2022-06-08";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "b0o";
       repo = "SchemaStore.nvim";
-      rev = "005a0377c95fe521a65a90af26aadb46085871c8";
-      sha256 = "1yn541cn5m0jmwwhiygqlds9hvxsm9w6x70r24ig3nj2p9q41px3";
+      rev = "7561d31e5e668333d7e453c063ded5a2805f0e41";
+      sha256 = "0850akn3ik044dnz53d2ikdgw8b7yk6vhy58a346ac9cq1damz7r";
     };
     meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
   };
@@ -341,12 +341,12 @@ final: prev:
 
   SpaceVim = buildVimPluginFrom2Nix {
     pname = "SpaceVim";
-    version = "2022-06-07";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "SpaceVim";
       repo = "SpaceVim";
-      rev = "d66173b58abe941966e0e4666e54963c7a2d7dc9";
-      sha256 = "1cfz9xj5498n3mpw2f4fk0gxdp92d697dp7mm5vnz78h17p4px6y";
+      rev = "b7e45f2b1db2bb7b1ec8d9713607c3579f43207c";
+      sha256 = "12wkzf821fglinwacs2va28my5s8bf0xs9xzxifvcvbf5kp7k55x";
     };
     meta.homepage = "https://github.com/SpaceVim/SpaceVim/";
   };
@@ -449,12 +449,12 @@ final: prev:
 
   YouCompleteMe = buildVimPluginFrom2Nix {
     pname = "YouCompleteMe";
-    version = "2022-04-02";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "ycm-core";
       repo = "YouCompleteMe";
-      rev = "3ededaed2f9923d50bf3860ba8dace0f7d2724cd";
-      sha256 = "1n2h5wsp9vclsvzr40m1ffb6kjmcg0mccfj790giw77qa2i9s1rl";
+      rev = "4237c4647ec30215223d597f6172c8c46b8b239e";
+      sha256 = "17krclvg5y645g9vk43bpmhg1pzf4m8dlif5ar5h92qvbih8sw7i";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -498,12 +498,12 @@ final: prev:
 
   aerial-nvim = buildVimPluginFrom2Nix {
     pname = "aerial.nvim";
-    version = "2022-06-05";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "aerial.nvim";
-      rev = "2084c3ce26aba0aea0a450b35c5971b48f277574";
-      sha256 = "0p9rsgk6ynikhic8r9iy5i5rklg4dmri0yrm4gslmrp2bdmn111k";
+      rev = "dd35fd75c480da0e0239d69a607aac1347c395c6";
+      sha256 = "02mqp20vc5jjrf8d1padldnp3fdks0wjanwd22zr56y8zphcaxvc";
     };
     meta.homepage = "https://github.com/stevearc/aerial.nvim/";
   };
@@ -546,12 +546,12 @@ final: prev:
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2022-06-08";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "f10349b48b173d50b523ce009934bb4bfba04f7f";
-      sha256 = "1s6ba5h0cv8y80x2nv9m98q724xv242nqzgxxh7bniakzp3jm4j4";
+      rev = "91e8422d6d67f1b1139b57b8707945ea2531443e";
+      sha256 = "1fwvxs7ifshdpvzkfqld66cdlhvbrp76bpm603w1qaskm88fj2pf";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -570,12 +570,12 @@ final: prev:
 
   alpha-nvim = buildVimPluginFrom2Nix {
     pname = "alpha-nvim";
-    version = "2022-04-22";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "goolord";
       repo = "alpha-nvim";
-      rev = "4781fcfea5ddc1a92d41b32dc325132ed6fce7a8";
-      sha256 = "03i75403lskpgaqv7xp5hk4v6kqb0sv15ciil9jyj735ylhry3qq";
+      rev = "ef27a59e5b4d7b1c2fe1950da3fe5b1c5f3b4c94";
+      sha256 = "0w4864v6lgyzjckrsim8si9d6g7w979n81y96hx2h840xgcj22iw";
     };
     meta.homepage = "https://github.com/goolord/alpha-nvim/";
   };
@@ -678,12 +678,12 @@ final: prev:
 
   asyncrun-vim = buildVimPluginFrom2Nix {
     pname = "asyncrun.vim";
-    version = "2022-03-08";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "skywind3000";
       repo = "asyncrun.vim";
-      rev = "9f8e50033cb724d8856907a5fbf4685eb3efda24";
-      sha256 = "00j0fp57lqcn3qvkb392shj1mqfv9vmn5wjcsibf0y6vbcq17xxh";
+      rev = "aa8a99e87e64276d52556f4d9d4f4a19afd37556";
+      sha256 = "0r79iq6fl4rcpadwvwma70gxk57lri15bqb5p12xad67fxd40320";
     };
     meta.homepage = "https://github.com/skywind3000/asyncrun.vim/";
   };
@@ -714,12 +714,12 @@ final: prev:
 
   aurora = buildVimPluginFrom2Nix {
     pname = "aurora";
-    version = "2022-06-09";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "aurora";
-      rev = "0b16a5f1f0da15c4808fafbad5a1024140a598c7";
-      sha256 = "0gfkvfpj97ijw9rbhy80hq3ly10c4zah4l5zzsw4xpnjwcx9gnxg";
+      rev = "b19bbfe041c67f3f1144e4c88a1d88a7314bfa5b";
+      sha256 = "0ha9b3612i42ldjkq4ip00pbwr7za5bfjrph745c4xdy5dhbx2m5";
     };
     meta.homepage = "https://github.com/ray-x/aurora/";
   };
@@ -750,12 +750,12 @@ final: prev:
 
   auto-session = buildVimPluginFrom2Nix {
     pname = "auto-session";
-    version = "2022-05-06";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "rmagatti";
       repo = "auto-session";
-      rev = "7c9477614fb95b103c277a98bf3f588e337cd7ac";
-      sha256 = "1d502bfkr6qxrqr0jxwngj22cz4bh7v36kakpb9g4qbxdd3h1r30";
+      rev = "2c0103eb26b41cf4b58c3063d7549746d0f5fa73";
+      sha256 = "0m93a89as399bj29mw8nnx0s9bn3kmy74bys97hv4r1n5nc720fy";
     };
     meta.homepage = "https://github.com/rmagatti/auto-session/";
   };
@@ -798,12 +798,12 @@ final: prev:
 
   barbar-nvim = buildVimPluginFrom2Nix {
     pname = "barbar.nvim";
-    version = "2022-06-05";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "barbar.nvim";
-      rev = "a6a6209d1f2f599553741bbb02ce940fe8a5661b";
-      sha256 = "17851pqs1hr6vv86n2c7jz08xq0zm0iw9kbs393mfid2839clck9";
+      rev = "d7123f0368aa7fdd10f587176ad60aedcdfa44de";
+      sha256 = "1mqhhfaqd07ck0m6izqrf97a1vlkjcwvmjz5c5z2xssjlmcrx8pg";
     };
     meta.homepage = "https://github.com/romgrk/barbar.nvim/";
   };
@@ -930,12 +930,12 @@ final: prev:
 
   bufferline-nvim = buildVimPluginFrom2Nix {
     pname = "bufferline.nvim";
-    version = "2022-06-05";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "bufferline.nvim";
-      rev = "c78b3ecf9539a719828bca82fc7ddb9b3ba0c353";
-      sha256 = "03sf49s26nb9aqr16f776p58vs3dx9kyyach2jj4k1lp318w6ikp";
+      rev = "88c742f4af988c98aee5ac1c92f056905c636aae";
+      sha256 = "1nlxsg2nzkpxwj5jiwksg1hqp25g6hzj075zjvxbix72xdiv98lq";
     };
     meta.homepage = "https://github.com/akinsho/bufferline.nvim/";
   };
@@ -1098,12 +1098,12 @@ final: prev:
 
   cmp-buffer = buildVimPluginFrom2Nix {
     pname = "cmp-buffer";
-    version = "2022-05-09";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-buffer";
-      rev = "12463cfcd9b14052f9effccbf1d84caa7a2d57f0";
-      sha256 = "11fbxw8rrhypazd256qwjvf8gg0laqb9b4h9yqdgvwj810y6n6wg";
+      rev = "62fc67a2b0205136bc3e312664624ba2ab4a9323";
+      sha256 = "0wcys2z1yw6raxr9x5nm19ac04q8gfri4pw9mfsh18smv4rnl8zs";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-buffer/";
   };
@@ -1194,12 +1194,12 @@ final: prev:
 
   cmp-dap = buildVimPluginFrom2Nix {
     pname = "cmp-dap";
-    version = "2022-04-27";
+    version = "2022-06-05";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "cmp-dap";
-      rev = "69f22863739482120f9240919db1ac7d4dea3278";
-      sha256 = "03cxmnbr4sn69dzg1fg4r7rgja4invzfgpid123mhahq6sn7jir9";
+      rev = "2c4cecbb9c4d255acc87ccaca727d1ad2f2b8c90";
+      sha256 = "11wg62nf37ka40l9acwxcklzghapwiw3x549vnp397sl70r3w6b2";
     };
     meta.homepage = "https://github.com/rcarriga/cmp-dap/";
   };
@@ -1302,12 +1302,12 @@ final: prev:
 
   cmp-latex-symbols = buildVimPluginFrom2Nix {
     pname = "cmp-latex-symbols";
-    version = "2021-09-10";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "kdheepak";
       repo = "cmp-latex-symbols";
-      rev = "29dc9e53d17cd1f26605888f85500c8ba79cebff";
-      sha256 = "17qjw0yp0cmgyjy593qq6rfh7fgfwgb7mxg7a0kg1drjpncwv8gl";
+      rev = "46e7627afa8c8ff57158d1c29d721d8efebbc39f";
+      sha256 = "10354d12in7sr5hdamj0cw8hgja6pwl70i9lcxlnha5jzkx8xm03";
     };
     meta.homepage = "https://github.com/kdheepak/cmp-latex-symbols/";
   };
@@ -1374,12 +1374,12 @@ final: prev:
 
   cmp-nvim-lsp-signature-help = buildVimPluginFrom2Nix {
     pname = "cmp-nvim-lsp-signature-help";
-    version = "2022-03-29";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-nvim-lsp-signature-help";
-      rev = "8014f6d120f72fe0a135025c4d41e3fe41fd411b";
-      sha256 = "1k61aw9mp012h625jqrf311vnsm2rg27k08lxa4nv8kp6nk7il29";
+      rev = "007dd2740d9b70f2688db01a39d6d25b7169cd57";
+      sha256 = "194i2b6qbl3z4j2p2s6sig2fac8i9kglkdwdc5h3x2q7avw70yrg";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp-signature-help/";
   };
@@ -1638,24 +1638,24 @@ final: prev:
 
   coc-fzf = buildVimPluginFrom2Nix {
     pname = "coc-fzf";
-    version = "2021-11-11";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "antoinemadec";
       repo = "coc-fzf";
-      rev = "60828294b9ba846c78893389d4772021043d2fa1";
-      sha256 = "1y7rslksa558fdh3m4m626vpvs424pvxkkk70mr57is47cminm3m";
+      rev = "44bcdc4c62a773a52f0a09cff074e61890870b59";
+      sha256 = "1d0ryxqs6jx2vm5db6ca2aciqsl0559clbskif4kjp3j7ybnz9my";
     };
     meta.homepage = "https://github.com/antoinemadec/coc-fzf/";
   };
 
   coc-lua = buildVimPluginFrom2Nix {
     pname = "coc-lua";
-    version = "2022-06-09";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "josa42";
       repo = "coc-lua";
-      rev = "aa49b7ff2c7aa75aaa538479b552297e38952b38";
-      sha256 = "0m0c8rg7lpaf6kpjaw9qxkrd4jj4n4kzxnmxksgww3s2hmnj8x5w";
+      rev = "e956ff8a94bc73f5a315f0b103b7202fccedd848";
+      sha256 = "0s7jq8xfvb8g24gpzc3s9wcy91l2fs1hl8h7kz79r4mljmqppzs8";
     };
     meta.homepage = "https://github.com/josa42/coc-lua/";
   };
@@ -1710,12 +1710,12 @@ final: prev:
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc.nvim";
-    version = "2022-06-05";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "b4d732a29b66c75e6d130cab296cc604a2d73bc4";
-      sha256 = "08k7p189xh5rwyl9fjfmcg6z3yz6xmlyfpdf3a69vcvnixqg9ww6";
+      rev = "87e5dd692ec8ed7be25b15449fd0ab15a48bfb30";
+      sha256 = "17a7vg7yb1qxzz4a4b0bwqrh3mv1y31233xd1wihw81a0jzc5jkf";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
@@ -1782,12 +1782,12 @@ final: prev:
 
   command-t = buildVimPluginFrom2Nix {
     pname = "command-t";
-    version = "2022-05-28";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "wincent";
       repo = "command-t";
-      rev = "d554468ebee92c42adbbd1c6bf380eb668bd06d3";
-      sha256 = "0npnj71jnk2vvsp56vvmh3vjfxqklxdg4fn585ikgygv53fndszq";
+      rev = "81dba1e2741686514f466701ca62ce3831d49a08";
+      sha256 = "0mmvdhxzj8nv38nw1vddzzg7xkair72x7lwk4lkd369yc3bbwv6g";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/wincent/command-t/";
@@ -1795,12 +1795,12 @@ final: prev:
 
   comment-nvim = buildVimPluginFrom2Nix {
     pname = "comment.nvim";
-    version = "2022-06-07";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "numtostr";
       repo = "comment.nvim";
-      rev = "3c69bab36569d5d0321351ec956fc43a8d409fb0";
-      sha256 = "0wfhj4i1ycwsdmpkk9jcfmq141mqlf40sl4ymqd0zqrwzb8yz5m5";
+      rev = "2c26a00f32b190390b664e56e32fd5347613b9e2";
+      sha256 = "1ii8vjmi73i7vq9w3g13b5m0g5z0sivivkr4mav831yq7qbxvgm2";
     };
     meta.homepage = "https://github.com/numtostr/comment.nvim/";
   };
@@ -1963,36 +1963,36 @@ final: prev:
 
   copilot-vim = buildVimPluginFrom2Nix {
     pname = "copilot.vim";
-    version = "2022-06-07";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "github";
       repo = "copilot.vim";
-      rev = "aa9e451dda857c6615f531f8d4e4f201e43d7a03";
-      sha256 = "1i272gzvm4psqynw7pqyb00zlmx9q0r8z9l5iswy6kjwgvzz9298";
+      rev = "c2e75a3a7519c126c6fdb35984976df9ae13f564";
+      sha256 = "0m65y0pvc7sdj2xc3r97nb5md1i0iqcyri6h83hvs88skrmwnpap";
     };
     meta.homepage = "https://github.com/github/copilot.vim/";
   };
 
   coq-artifacts = buildVimPluginFrom2Nix {
     pname = "coq.artifacts";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq.artifacts";
-      rev = "8303d9265567a10a57ee88ab674de77ca6661075";
-      sha256 = "06jmbqrszb5n3lsjfk2q0fz7gyx9g3zb7ivrj4wprdnnws7nyl0a";
+      rev = "78d1c7e607ee8aa417c989f1c811ac73ee5dab9c";
+      sha256 = "128ajrr8zj3mpimvapn0i1g34sp42wammh83gkhvf8xrfrwbd1l1";
     };
     meta.homepage = "https://github.com/ms-jpq/coq.artifacts/";
   };
 
   coq-thirdparty = buildVimPluginFrom2Nix {
     pname = "coq.thirdparty";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq.thirdparty";
-      rev = "7920ea2527f12620701c08c48e1f668e2ccd37b7";
-      sha256 = "1xb590xs4n9gkrslb9v9apw7h3x3w48s6c6kkzphdabys2i9sdd4";
+      rev = "3c17b7a8806e809e1707774cf56a459dc914e309";
+      sha256 = "136lizq5hvvq99n23gjsjnhv8q3kkjx70axasva49abpjnbpaxms";
     };
     meta.homepage = "https://github.com/ms-jpq/coq.thirdparty/";
   };
@@ -2011,12 +2011,12 @@ final: prev:
 
   coq_nvim = buildVimPluginFrom2Nix {
     pname = "coq_nvim";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq_nvim";
-      rev = "fc168d99aeade7c3529b8883c12fdec17aad0f7c";
-      sha256 = "02p72z384xk08a2hw8byasnxvl865wxngj08s7zp07cv2vzf3hw0";
+      rev = "83a03e23da4bc52b8cf2fa13bcace18c192a32f8";
+      sha256 = "0dz24pk9dr4wmm58iyvhr3iwcbv6pvwc04s3gmp26hzds37phws2";
     };
     meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
   };
@@ -2155,12 +2155,12 @@ final: prev:
 
   dashboard-nvim = buildVimPluginFrom2Nix {
     pname = "dashboard-nvim";
-    version = "2022-05-30";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "dashboard-nvim";
-      rev = "a36b3232c98616149784f2ca2654e77caea7a522";
-      sha256 = "0106jhw9fg2zmk0fqnr126f9gnh5bw7sjrxldn06ajj15ll15p9p";
+      rev = "6f5cb262141f41d4c603cc987cdb64bf1ea3b216";
+      sha256 = "12lv8kwlb6bmk4bbp6vnym4w6ivasp3k9xgyhcm752wbf56zgzqy";
     };
     meta.homepage = "https://github.com/glepnir/dashboard-nvim/";
   };
@@ -2529,12 +2529,12 @@ final: prev:
 
   diffview-nvim = buildVimPluginFrom2Nix {
     pname = "diffview.nvim";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "sindrets";
       repo = "diffview.nvim";
-      rev = "ca297a7e526b42b1ea0e4bd6eebb36f2654125a7";
-      sha256 = "1vr7yx7i863brmpbayxc7k9z14ai0naa030ck43cknib1bdilpkp";
+      rev = "2e77bedfe11f52621fad1d8c20ffbddd8e36d137";
+      sha256 = "0661163vkaqnsy49ha0vgx0wjy71zwi14j80q58mfgvmacc31zj9";
     };
     meta.homepage = "https://github.com/sindrets/diffview.nvim/";
   };
@@ -2589,24 +2589,24 @@ final: prev:
 
   edge = buildVimPluginFrom2Nix {
     pname = "edge";
-    version = "2022-06-04";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "edge";
-      rev = "2c7c3a1bfbd7ce1a62ef61e6cfdcdb9e8c04d1f0";
-      sha256 = "0g3az80iisdbk5w6yqhpw8ws5jh82hzqwq8y6808n3f0ki1b5mz9";
+      rev = "91ce1f39311ad74c1e3bcad1e78efcd4fa3bceaa";
+      sha256 = "0gjqyvp8xfndgh6yljgm1cfvkgcayjxh07ljq14yijhmg86q00x2";
     };
     meta.homepage = "https://github.com/sainnhe/edge/";
   };
 
   editorconfig-vim = buildVimPluginFrom2Nix {
     pname = "editorconfig-vim";
-    version = "2022-01-22";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "editorconfig";
       repo = "editorconfig-vim";
-      rev = "a8e3e66deefb6122f476c27cee505aaae93f7109";
-      sha256 = "19k6nii3p6a4vfyf7xxrkhj7wfamjivdp22bn1mhx4zcw8h01lkn";
+      rev = "d354117b72b3b43b75a29b8e816c0f91af10efe9";
+      sha256 = "12qvximadgb9z2i0hgvj4p4nxaqk0aqbnaqpafpma73xyb23hx5v";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/editorconfig/editorconfig-vim/";
@@ -2675,12 +2675,12 @@ final: prev:
 
   everforest = buildVimPluginFrom2Nix {
     pname = "everforest";
-    version = "2022-05-31";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "everforest";
-      rev = "eca7c8c196215f687319295c81e6ba1d4e2f53a4";
-      sha256 = "10jfag6ngarq2gnwlz4w7b0ckm9j899lppznz4sbrhisv35l4mjf";
+      rev = "65ea4a8325d5d4f09bb76ddec7f2148314067eee";
+      sha256 = "1ma7iq103k4gij070wi0wa2s9c92vxrg0nkmslryvc2l8rwqc4id";
     };
     meta.homepage = "https://github.com/sainnhe/everforest/";
   };
@@ -2759,36 +2759,36 @@ final: prev:
 
   fern-vim = buildVimPluginFrom2Nix {
     pname = "fern.vim";
-    version = "2022-06-05";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "lambdalisue";
       repo = "fern.vim";
-      rev = "7ba49dd915c32ede51a6f6db3c4367748707a156";
-      sha256 = "042kdnki0k6fyp951r054wlwdfm3a2wm4m4q6as9x8dikb80yn00";
+      rev = "951a05d3f6ebc785db728ccfdf1759a2cf7c15ff";
+      sha256 = "1d0g3cylci2ph7crmw888jjjpindbmab5h4z9y7qsvl5633aclk4";
     };
     meta.homepage = "https://github.com/lambdalisue/fern.vim/";
   };
 
   ferret = buildVimPluginFrom2Nix {
     pname = "ferret";
-    version = "2022-04-17";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "wincent";
       repo = "ferret";
-      rev = "35757c7c9364d940efd8a46877acde04193819c2";
-      sha256 = "0b8y7qailjg2366dw03pbfsr7lq9js8jzfcpw8ljyfim94fcj650";
+      rev = "3d064304876941e4197db6b4264db6b72bd9f83d";
+      sha256 = "1lkznmavw2f4ckh3yjjvdhja313ia0aayn5pkf6ygjny1089gcih";
     };
     meta.homepage = "https://github.com/wincent/ferret/";
   };
 
   fidget-nvim = buildVimPluginFrom2Nix {
     pname = "fidget.nvim";
-    version = "2022-05-20";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "j-hui";
       repo = "fidget.nvim";
-      rev = "37d536bbbee47222ddfeca0e8186e8ee6884f9a2";
-      sha256 = "1y0b1x2kl7dmc6kzg1pi1rb16kx8ggi5ybfli1y38hw398h9z7fi";
+      rev = "46d1110435f1f023c22fa95bb10b3906aecd7bde";
+      sha256 = "0v0jnzj288swbp0w8xa7287sbql1rfgziqdk1gbcgvzs7zlvczbr";
     };
     meta.homepage = "https://github.com/j-hui/fidget.nvim/";
   };
@@ -2856,12 +2856,12 @@ final: prev:
 
   flutter-tools-nvim = buildVimPluginFrom2Nix {
     pname = "flutter-tools.nvim";
-    version = "2022-06-08";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "flutter-tools.nvim";
-      rev = "bd6cd6744528425cead90d796ad7a96ae4d58b33";
-      sha256 = "0b3fzsppilpjc33ql4b7rbxvh2ip5kbyhjvqmfmg0kvyvx8d2m3w";
+      rev = "b17546f502c23447f462340ee126b1ce0023e943";
+      sha256 = "1y8xgdflp0gpq97an6ichf5sl8w75hq363x697z3fdryfsa1ldfq";
     };
     meta.homepage = "https://github.com/akinsho/flutter-tools.nvim/";
   };
@@ -2988,24 +2988,24 @@ final: prev:
 
   fzf-lsp-nvim = buildVimPluginFrom2Nix {
     pname = "fzf-lsp.nvim";
-    version = "2022-05-16";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "gfanto";
       repo = "fzf-lsp.nvim";
-      rev = "0694c278f081958e48f3a6e136c130d15cf8576e";
-      sha256 = "03bg2ld2sh08zarjn5h4c4ypnr51k03qxpj8rk13vm6f6zfg9dnj";
+      rev = "f19d6902dfdecb3150a9dbe153599524ae080dd8";
+      sha256 = "0rii15z51gz97vc688w5si0jb9vdnzq8vvz3yx52rghm535yv46y";
     };
     meta.homepage = "https://github.com/gfanto/fzf-lsp.nvim/";
   };
 
   fzf-lua = buildVimPluginFrom2Nix {
     pname = "fzf-lua";
-    version = "2022-06-09";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "ibhagwan";
       repo = "fzf-lua";
-      rev = "343322108d2458994f64af3396efccd4875326b5";
-      sha256 = "0lq9dk2iglphjn8n8ai70spyz63cin987mnjn8415g258nyfis8x";
+      rev = "6a4392564b818061731c6a39fcc116ff9fc97dd0";
+      sha256 = "02pidn8w9gkglmsmjqy8lp8wq0s91rxpj96bgpwq6f09hci8mazg";
     };
     meta.homepage = "https://github.com/ibhagwan/fzf-lua/";
   };
@@ -3096,12 +3096,12 @@ final: prev:
 
   git-blame-nvim = buildVimPluginFrom2Nix {
     pname = "git-blame.nvim";
-    version = "2022-05-17";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "f-person";
       repo = "git-blame.nvim";
-      rev = "801570e3903b0aea86c7fcba44f680cc62dad077";
-      sha256 = "09xxzs7bixli5jmbxnigsbwafvz83k63v56drm7lpvvfhl39lbwf";
+      rev = "1bb73289929107309d2d90f7582ece5e9436bfd8";
+      sha256 = "02ybfv5pm7m8mbciccz0j9k21bjhf6kjpp527y6m4r2mdc4q808r";
     };
     meta.homepage = "https://github.com/f-person/git-blame.nvim/";
   };
@@ -3154,14 +3154,14 @@ final: prev:
     meta.homepage = "https://github.com/ruifm/gitlinker.nvim/";
   };
 
-  gitsigns-nvim = buildVimPluginFrom2Nix {
+  gitsigns-nvim = buildNeovimPluginFrom2Nix {
     pname = "gitsigns.nvim";
-    version = "2022-05-26";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "gitsigns.nvim";
-      rev = "27aeb2e715c32cbb99aa0b326b31739464b61644";
-      sha256 = "04m1767cndrx46xsa6frf77xv64hmr6w21dk2wh4s0sqjvqqm1r6";
+      rev = "3543443eb3856fbe4a9d70f3fe8dc73e007199a1";
+      sha256 = "00mrf5qwbzgh280lq2lc7xgqmgh8g18j2f46796lbwpcb4ciawh4";
     };
     meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
   };
@@ -3192,12 +3192,12 @@ final: prev:
 
   glow-nvim = buildVimPluginFrom2Nix {
     pname = "glow.nvim";
-    version = "2022-06-06";
+    version = "2022-06-10";
     src = fetchFromGitHub {
       owner = "ellisonleao";
       repo = "glow.nvim";
-      rev = "ef86fff7371974fd69aab1fd926bafb76893bb1b";
-      sha256 = "03i21lrcqi53swbjwfmh21fbwxw3nxb9rcislzys5078j86wicvn";
+      rev = "900042f7dda528cb980b7f1056ed7c21d4402826";
+      sha256 = "05dhbxclnn5fz9wapa6gvf7p9qk88ir6ix72sahv0vpjcccr6gk6";
     };
     meta.homepage = "https://github.com/ellisonleao/glow.nvim/";
   };
@@ -3300,24 +3300,24 @@ final: prev:
 
   gruvbox-material = buildVimPluginFrom2Nix {
     pname = "gruvbox-material";
-    version = "2022-06-02";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "gruvbox-material";
-      rev = "8aba3586fdefbdad3f758e24799245b799ae5a6f";
-      sha256 = "03hkgzirnjahi44xwbzmpcbzpj4lgydq07wva32cyyrv3h8qplar";
+      rev = "5d2cec690bfa56b863a7b9d482152d873da7ba7a";
+      sha256 = "0rhhxmpjml0w9rmvph1wn70yrybnai4w71x35gn8ig6dn446q4wb";
     };
     meta.homepage = "https://github.com/sainnhe/gruvbox-material/";
   };
 
   gruvbox-nvim = buildVimPluginFrom2Nix {
     pname = "gruvbox.nvim";
-    version = "2022-06-06";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "ellisonleao";
       repo = "gruvbox.nvim";
-      rev = "8135da3a90b257a2c902614e71d9cbbef8308cad";
-      sha256 = "1mcyamqxnbhqdg2skkyz6g229qa08a8c0ssbcjsbcy92d4qyx852";
+      rev = "3352c12c083d0ab6285a9738b7679e24e7602411";
+      sha256 = "044dvp03yw5r745qbs6kp2lni1psfn63807dsd6fw8k2z6m6sbx3";
     };
     meta.homepage = "https://github.com/ellisonleao/gruvbox.nvim/";
   };
@@ -3336,12 +3336,12 @@ final: prev:
 
   gv-vim = buildVimPluginFrom2Nix {
     pname = "gv.vim";
-    version = "2021-10-19";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "gv.vim";
-      rev = "386d770e916dd680d1d622e715b9eb3a77f21bd1";
-      sha256 = "184kvydzz9nyg0sv3crn38v04s24km0ma8vfg4i3agmffb1riibk";
+      rev = "1507838ee67f9b298def89cbfc404a0fee4a4b8c";
+      sha256 = "0fkwhyywjhh2r6c8534kvfn3shv3rjvcc53wm2pz3yqk73b6r2c9";
     };
     meta.homepage = "https://github.com/junegunn/gv.vim/";
   };
@@ -3408,11 +3408,11 @@ final: prev:
 
   hologram-nvim = buildVimPluginFrom2Nix {
     pname = "hologram.nvim";
-    version = "2022-03-13";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "edluffy";
       repo = "hologram.nvim";
-      rev = "7bd3ffb073dde94c8d86c1b49c47ef9d2f2bc605";
+      rev = "d6d3ebe931529681c99aff18bc4d4c2487867e06";
       sha256 = "0hld4cr09bd0y4k9yz1lls5dqdak605zf5rnv75zi5scbgwly19c";
     };
     meta.homepage = "https://github.com/edluffy/hologram.nvim/";
@@ -3432,24 +3432,24 @@ final: prev:
 
   hop-nvim = buildVimPluginFrom2Nix {
     pname = "hop.nvim";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "phaazon";
       repo = "hop.nvim";
-      rev = "03675eba34d416dd22ad49b2d0e52b6113b434ad";
-      sha256 = "1aaniq2qd59n126v6j11gsl39c9h7nq0x2hidwpdz81yhas97ix2";
+      rev = "a3cf6684bcb9fc974609ae81424f285f05280d90";
+      sha256 = "0inrri38bkxsi936z2xa8n9lvzm9b7vl2wajyp8i6wr4byhprml3";
     };
     meta.homepage = "https://github.com/phaazon/hop.nvim/";
   };
 
   hotpot-nvim = buildVimPluginFrom2Nix {
     pname = "hotpot.nvim";
-    version = "2022-05-31";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "rktjmp";
       repo = "hotpot.nvim";
-      rev = "21258d4194a606d8d53bf68d06cc25457b2e8449";
-      sha256 = "0ily343jzx9ra2mxp1flmshsl5bara0wx10fgyrrps1cfag383jm";
+      rev = "104aa65f9155d34629c9623d5dac39b5b2ad555c";
+      sha256 = "0m0w69mmy471c2axr8n15c8spd7w8zdb0ri2cnf571kpmb68szxr";
     };
     meta.homepage = "https://github.com/rktjmp/hotpot.nvim/";
   };
@@ -3504,12 +3504,12 @@ final: prev:
 
   impatient-nvim = buildVimPluginFrom2Nix {
     pname = "impatient.nvim";
-    version = "2022-06-09";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "impatient.nvim";
-      rev = "7821524b7fefb02af8b8e4c4745532b039ebc8de";
-      sha256 = "1nvx2b4qr55dxr9nf641flp7adcad3zp3dlwrb1zc7ay9m5ylg2w";
+      rev = "969f2c5c90457612c09cf2a13fee1adaa986d350";
+      sha256 = "10nlz4hq1bqjsnj9pkadi3xjj74wn36f2vr66hqp7wm2z7i5zbq3";
     };
     meta.homepage = "https://github.com/lewis6991/impatient.nvim/";
   };
@@ -3733,12 +3733,12 @@ final: prev:
 
   kanagawa-nvim = buildVimPluginFrom2Nix {
     pname = "kanagawa.nvim";
-    version = "2022-05-19";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "rebelot";
       repo = "kanagawa.nvim";
-      rev = "a6db77965a27ca893ea693d69cc3c152c000a627";
-      sha256 = "1asq6a2mia695gmwa81ix4ijna8p9z8mifnqksnlk1kslz68bmdp";
+      rev = "76df2251e813fdec244b2b593be62accea930119";
+      sha256 = "0cnrnf44gm51jpmkf8kx9zfk6qxcg7725aav31n2w81zm1rr8d2s";
     };
     meta.homepage = "https://github.com/rebelot/kanagawa.nvim/";
   };
@@ -3805,24 +3805,24 @@ final: prev:
 
   lazygit-nvim = buildVimPluginFrom2Nix {
     pname = "lazygit.nvim";
-    version = "2022-05-10";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "kdheepak";
       repo = "lazygit.nvim";
-      rev = "1f9f372b9fc137b8123d12a78c22a26c0fa78f0a";
-      sha256 = "1s4bpi7i86246p28pjk99rv1qj1gp7l7zwfch0f23nwnggm8s6pm";
+      rev = "9c73fd69a4c1cb3b3fc35b741ac968e331642600";
+      sha256 = "0mij8mrh7fmynhz7d3i11bbsvykf2pdp3ldk8w0sbi15cgfp8fr4";
     };
     meta.homepage = "https://github.com/kdheepak/lazygit.nvim/";
   };
 
   lean-nvim = buildVimPluginFrom2Nix {
     pname = "lean.nvim";
-    version = "2022-05-30";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "Julian";
       repo = "lean.nvim";
-      rev = "2be99e3fa33ab24beb035ed46c51b353fc373cd5";
-      sha256 = "0235cc6wcir4qgv9yksrj3ycd3w44w2gkb1zn0yljd5ygi3xp2mz";
+      rev = "9abfeae95ae8f51a21e384b97e006f139aeb4333";
+      sha256 = "0lcxjr3n5g55i5brw0skvy9m1kp64wggah5j97mcl0r9x4h508lv";
     };
     meta.homepage = "https://github.com/Julian/lean.nvim/";
   };
@@ -3865,12 +3865,12 @@ final: prev:
 
   lexima-vim = buildVimPluginFrom2Nix {
     pname = "lexima.vim";
-    version = "2022-06-09";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "cohama";
       repo = "lexima.vim";
-      rev = "905c14e9b701cea1f05db755398ef0060f2c1fcc";
-      sha256 = "0bv7fnbb4505ckfbd37h9gl1ss2jgargcf14b6kcx620xcw2adnn";
+      rev = "f06d2fa627c66689ec0ef68fe95765f0af0ded88";
+      sha256 = "00d27f9h4s83c1bsqskv48fhcyd2yf1fn7bpzqgqipbdsj7n04hn";
     };
     meta.homepage = "https://github.com/cohama/lexima.vim/";
   };
@@ -3973,12 +3973,12 @@ final: prev:
 
   lightspeed-nvim = buildVimPluginFrom2Nix {
     pname = "lightspeed.nvim";
-    version = "2022-05-13";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "ggandor";
       repo = "lightspeed.nvim";
-      rev = "c5b93fc1d76a708cb698417326e04f4786a38d90";
-      sha256 = "0lgk9i240mgzf7f3j3z93dkj00fi3rypn79zc60wqdyzhpg4r4lm";
+      rev = "8fb5ebb2c18db13bc17556376526068dce0803b5";
+      sha256 = "1mrj4x0bd68qp2g4hsmxnqr1dfv5d7c2kajkir8q78pq2csdci8j";
     };
     meta.homepage = "https://github.com/ggandor/lightspeed.nvim/";
   };
@@ -4045,12 +4045,12 @@ final: prev:
 
   litee-filetree-nvim = buildVimPluginFrom2Nix {
     pname = "litee-filetree.nvim";
-    version = "2022-05-21";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "ldelossa";
       repo = "litee-filetree.nvim";
-      rev = "92aa9f0f1fcda8cf1bca9f5ea296c4af74ba3928";
-      sha256 = "1j9sgsia0w8cmkhd1qm59f0d2abh7rxwkl0nlsqcg9b1k0naqiay";
+      rev = "3d3447816beea47ba93753afa7b717f5deb8a26c";
+      sha256 = "0p4wp53lpm9awkbf6cwzxzxjbvqf5r272hlygbiwhv048lbz26xk";
     };
     meta.homepage = "https://github.com/ldelossa/litee-filetree.nvim/";
   };
@@ -4140,24 +4140,24 @@ final: prev:
 
   lsp_signature-nvim = buildVimPluginFrom2Nix {
     pname = "lsp_signature.nvim";
-    version = "2022-05-26";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "lsp_signature.nvim";
-      rev = "9ccee20602a10843e3ea3ebc2536dfdcc6cee9a3";
-      sha256 = "1l5naxm1mx8l3xwiqrm60w0avsbhhpxnbr4sgqpnmigb9p2150ip";
+      rev = "49837977e210959c552bf357dc40ce18fadca501";
+      sha256 = "07rywxx31wqxnw8i4irl2mq8di5dwj12bv0vqwi80vxhpvjqn1jk";
     };
     meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/";
   };
 
   lspcontainers-nvim = buildVimPluginFrom2Nix {
     pname = "lspcontainers.nvim";
-    version = "2022-05-30";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "lspcontainers";
       repo = "lspcontainers.nvim";
-      rev = "3c9d2156a447eb111ec60f4358768eb7510c5d0d";
-      sha256 = "043ylgpzl1ahcf62s6m0y65ddwlxcw79qksqr2304c4vhzv5sv8w";
+      rev = "ed5ee65f7c71a7963b18cfd1644134f1a65b3d4b";
+      sha256 = "01sh8jawp8k73l17zvs374pmciyjqqgll89bb228jls9vhqvwkdr";
     };
     meta.homepage = "https://github.com/lspcontainers/lspcontainers.nvim/";
   };
@@ -4176,12 +4176,12 @@ final: prev:
 
   lspsaga-nvim = buildVimPluginFrom2Nix {
     pname = "lspsaga.nvim";
-    version = "2022-06-02";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "tami5";
       repo = "lspsaga.nvim";
-      rev = "e4beaeff66ae4f70d0b67fe045b70d78780bb947";
-      sha256 = "1in3yhbr535xrzgnm6n8623xgqm73djphv2xnd1q84psr1lrkzb7";
+      rev = "b4f345998fba6c894d5de3aa42cb71a71e6c6ee9";
+      sha256 = "0bxkrjmf56axdhzdnw58dv1i7yqsp57yj675lmmp2agnfifmfvm9";
     };
     meta.homepage = "https://github.com/tami5/lspsaga.nvim/";
   };
@@ -4212,24 +4212,24 @@ final: prev:
 
   lualine-nvim = buildVimPluginFrom2Nix {
     pname = "lualine.nvim";
-    version = "2022-05-30";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "nvim-lualine";
       repo = "lualine.nvim";
-      rev = "3362b28f917acc37538b1047f187ff1b5645ecdd";
-      sha256 = "0pfkh7zhnwhbfdcild5vayymw4vqzcfb31nq1y33pk1zlvpwxksv";
+      rev = "5113cdb32f9d9588a2b56de6d1df6e33b06a554a";
+      sha256 = "07npk6x4ljq7f3wfcs3liaxpn23x4gdxr5jq8vglhd1xj3l99mh5";
     };
     meta.homepage = "https://github.com/nvim-lualine/lualine.nvim/";
   };
 
   luasnip = buildVimPluginFrom2Nix {
     pname = "luasnip";
-    version = "2022-05-28";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "l3mon4d3";
       repo = "luasnip";
-      rev = "52f4aed58db32a3a03211d31d2b12c0495c45580";
-      sha256 = "0drc847m55xwiha1wa2ykd5cwynmvd5ik2sys9v727fb4fbqmpa0";
+      rev = "a12441e0598e93e67235eba67c8e6fbffc896f06";
+      sha256 = "055y9bm8npn8n1xysk83l7ghf0760f8037jm32zf9fc8zk1ki98d";
     };
     meta.homepage = "https://github.com/l3mon4d3/luasnip/";
   };
@@ -4248,12 +4248,12 @@ final: prev:
 
   lush-nvim = buildVimPluginFrom2Nix {
     pname = "lush.nvim";
-    version = "2022-05-30";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "rktjmp";
       repo = "lush.nvim";
-      rev = "aa4eea49179852376fb9e5716aa5d03d4707373b";
-      sha256 = "1xb6pc96jq9haa02h6zmp5gaqq95yxlqnniz5f31554vrhab51kd";
+      rev = "6923ccef17c5276bc5d3cca907082e19ee165d55";
+      sha256 = "0jyq8dszbncrqfbsajbwb3j59jj8gyngi2nmz0hg902kaif4cjib";
     };
     meta.homepage = "https://github.com/rktjmp/lush.nvim/";
   };
@@ -4308,12 +4308,12 @@ final: prev:
 
   material-nvim = buildVimPluginFrom2Nix {
     pname = "material.nvim";
-    version = "2022-05-26";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "marko-cerovac";
       repo = "material.nvim";
-      rev = "f24cc6cf1dcd34350769b9cb28254b3f28973cf7";
-      sha256 = "1sgpips6s2rxb2vnm6zbqmggra8qbb63nws1y1c60rqw249dw513";
+      rev = "33d764439816ad80ded0f60b4bd8c038c9f96f43";
+      sha256 = "154hhvh44408m8n7vy9js7xakqv62qh0m8ffnvb65w63k1fjmwhs";
     };
     meta.homepage = "https://github.com/marko-cerovac/material.nvim/";
   };
@@ -4332,24 +4332,24 @@ final: prev:
 
   mini-nvim = buildVimPluginFrom2Nix {
     pname = "mini.nvim";
-    version = "2022-06-02";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "echasnovski";
       repo = "mini.nvim";
-      rev = "6adaf4c42455c093f00d0df3882ab48838423a57";
-      sha256 = "0198f7818m58h2bxgdnfnx5nm7vxi2psssx105dn6ndg55yf2qsx";
+      rev = "cc8fb168b95620ec1611916a6d2a74e6a5cdcbdb";
+      sha256 = "1v7j8s19r20ljlyha9d10vpaarxlqsfn6ns4qc2p3z2ihbcaapq5";
     };
     meta.homepage = "https://github.com/echasnovski/mini.nvim/";
   };
 
   minimap-vim = buildVimPluginFrom2Nix {
     pname = "minimap.vim";
-    version = "2022-05-09";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "wfxr";
       repo = "minimap.vim";
-      rev = "5d44fe7a3a5f7041c4220a71e8fe83d8c8498042";
-      sha256 = "04rqv8c5g1fs8pymlf2fcbm09k64bvpiqmjilf59m843vkvgk1xf";
+      rev = "a9f47afe1032d119a1ceff2714d47e4055564d07";
+      sha256 = "1ihx2vhrwyj3zmhnzwdcq54kygm5zic14ccyld995s7vjc4d15ig";
     };
     meta.homepage = "https://github.com/wfxr/minimap.vim/";
   };
@@ -4692,12 +4692,12 @@ final: prev:
 
   neogit = buildVimPluginFrom2Nix {
     pname = "neogit";
-    version = "2022-06-01";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "TimUntersberger";
       repo = "neogit";
-      rev = "441c23d355b77f4067a1ad018c5dba64efd7ff7f";
-      sha256 = "0yay92x3jmvpgqhx0hv0w19fjisakmmdzd286m656v5g26hmfxj1";
+      rev = "2b33d2edba011799c496a2dc7c77ebbe1b3c5b76";
+      sha256 = "10si9k7ybf1spw5jf8iizisx5xivzljk12ixarjrx359d9nzbi46";
     };
     meta.homepage = "https://github.com/TimUntersberger/neogit/";
   };
@@ -4752,23 +4752,23 @@ final: prev:
 
   neorg = buildVimPluginFrom2Nix {
     pname = "neorg";
-    version = "2022-06-07";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "nvim-neorg";
       repo = "neorg";
-      rev = "c0ebefa516aa9e93431f0a55e033db0dec072857";
-      sha256 = "0x9qpybjj7h6b6l10bkfmwf3qn54fcbbb5spx8n1hkny40npvnn5";
+      rev = "efc10f915ec53bbc8179ae591397b61aecf8f393";
+      sha256 = "0cdrpmlx9riz1gkpgfnnk1hry19l2iggdkmf6c1zsdmbjs56c45s";
     };
     meta.homepage = "https://github.com/nvim-neorg/neorg/";
   };
 
   neoscroll-nvim = buildVimPluginFrom2Nix {
     pname = "neoscroll.nvim";
-    version = "2022-01-13";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "karb94";
       repo = "neoscroll.nvim";
-      rev = "07242b9c29eed0367cb305d41851b2e04de9052e";
+      rev = "71c8fadd60362383e5e817e95f64776f5e2737d8";
       sha256 = "1xcj3dmrcnqrk2dzzr137n0g0crfyg3zk3220202v6b4vylairnh";
     };
     meta.homepage = "https://github.com/karb94/neoscroll.nvim/";
@@ -4812,12 +4812,12 @@ final: prev:
 
   neovim-ayu = buildVimPluginFrom2Nix {
     pname = "neovim-ayu";
-    version = "2022-06-05";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "Shatur";
       repo = "neovim-ayu";
-      rev = "621b5eeaf9b5c1b7affb327df3889f869b3c2893";
-      sha256 = "172pxda6168a3b6xx2ba8njq72y3y5bybg5a983zncxvn00qpi9a";
+      rev = "ad1e6b8cc25062ee426cd8690d28f82cfe840f58";
+      sha256 = "1khn5kvmjh42i17hsvjs03bz4523kvshdw2mwa5g4jn7292lf4z8";
     };
     meta.homepage = "https://github.com/Shatur/neovim-ayu/";
   };
@@ -4872,12 +4872,12 @@ final: prev:
 
   nerdtree = buildVimPluginFrom2Nix {
     pname = "nerdtree";
-    version = "2021-10-29";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdtree";
-      rev = "eed488b1cd1867bd25f19f90e10440c5cc7d6424";
-      sha256 = "0hlyn2l9ppjn92zaiw51i6d15li15z5083m13m0710giqx05qrak";
+      rev = "fc85a6f07c2cd694be93496ffad75be126240068";
+      sha256 = "02z32hrh4ykv4waq22y9ng8hwxxm8s5f2kxqm57pkixyy6b8zvzi";
     };
     meta.homepage = "https://github.com/preservim/nerdtree/";
   };
@@ -5028,24 +5028,24 @@ final: prev:
 
   nui-nvim = buildVimPluginFrom2Nix {
     pname = "nui.nvim";
-    version = "2022-05-06";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "MunifTanjim";
       repo = "nui.nvim";
-      rev = "abdbfab89f307151db83b1a5147cd390ef27ff99";
-      sha256 = "0z49sfnsr7hmfr4vrd82f1m6kvswfqq31n4fsdmjy9h4qmjb0w5f";
+      rev = "0f590b762416bcf2c93621f77a21aa8b8e23d7d1";
+      sha256 = "16z5fqw606ngkbvscw2cpxwm3lki5igqkslyc0hxdagnwiqm1p7p";
     };
     meta.homepage = "https://github.com/MunifTanjim/nui.nvim/";
   };
 
   null-ls-nvim = buildVimPluginFrom2Nix {
     pname = "null-ls.nvim";
-    version = "2022-06-09";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "jose-elias-alvarez";
       repo = "null-ls.nvim";
-      rev = "5d5cba15594c1b093a2177b339f34b3e3468fb46";
-      sha256 = "0pr8xxcsv6aahgcfqls3sp5k58dsq8bgvdhh8b6zsmrpaxsh3rz3";
+      rev = "ff40739e5be6581899b43385997e39eecdbf9465";
+      sha256 = "1snnh6fsn89fx7l5bjbfg1kh3cbadg2qg1rin889f4xka1yqa4x6";
     };
     meta.homepage = "https://github.com/jose-elias-alvarez/null-ls.nvim/";
   };
@@ -5088,12 +5088,12 @@ final: prev:
 
   nvim-autopairs = buildVimPluginFrom2Nix {
     pname = "nvim-autopairs";
-    version = "2022-06-09";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "windwp";
       repo = "nvim-autopairs";
-      rev = "84cde3547e9a8b16db0bfe523e98e19b7be5148b";
-      sha256 = "0hkfa28lcldacsxfccp99wbp42qp3cxffh5rg5s2brkkr3xdp3yl";
+      rev = "4a95b3982be7397cd8e1370d1a09503f9b002dbf";
+      sha256 = "18vn3wy83nscd0znagq9gw7bzf9ljkqiny04xbk5p2l85w4xya7k";
     };
     meta.homepage = "https://github.com/windwp/nvim-autopairs/";
   };
@@ -5124,12 +5124,12 @@ final: prev:
 
   nvim-bqf = buildVimPluginFrom2Nix {
     pname = "nvim-bqf";
-    version = "2022-06-06";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-bqf";
-      rev = "1a58f72ac731a3cf17708301ddf094c2033ebc4e";
-      sha256 = "0iy4kfd7a5pmsr63gjaplpxgw4nsrhsric7r3dhl3zisdzpn9kzm";
+      rev = "d4bc26ce482bd980fb90b7171fe7dece7411b01b";
+      sha256 = "05m1607rycqfwd23gr92ds5bkvcr68cjdpqxzma5wrac0cssdx6x";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/";
   };
@@ -5160,12 +5160,12 @@ final: prev:
 
   nvim-cmp = buildVimPluginFrom2Nix {
     pname = "nvim-cmp";
-    version = "2022-06-09";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "nvim-cmp";
-      rev = "15c7bf7c0dfb7c75eb526c53f9574633c13dc22d";
-      sha256 = "0fncx8cr915p5wxjb2wqmc5l3p1mjy0vwmkik4alz422c9zh436z";
+      rev = "df6734aa018d6feb4d76ba6bda94b1aeac2b378a";
+      sha256 = "0i6icap7x0p8f6i0vgrnqz2rhwc05qgsiflwndmca5dxarmxysxx";
     };
     meta.homepage = "https://github.com/hrsh7th/nvim-cmp/";
   };
@@ -5256,24 +5256,24 @@ final: prev:
 
   nvim-dap = buildVimPluginFrom2Nix {
     pname = "nvim-dap";
-    version = "2022-06-09";
+    version = "2022-06-10";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "8092586db723beb41312f288e38a7d8edc6459d9";
-      sha256 = "01rf6jl4b9amhkdjw8ayyx55njmklrbyb98kf4ybbcsgdjj587y7";
+      rev = "014ebd53612cfd42ac8c131e6cec7c194572f21d";
+      sha256 = "0qp15ihgwxamnly9ng6qmf051rz6yjg86p00dz39ffy02f8fvr60";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
 
   nvim-dap-ui = buildVimPluginFrom2Nix {
     pname = "nvim-dap-ui";
-    version = "2022-06-06";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-dap-ui";
-      rev = "d76d6594374fb54abf2d94d6a320f3fd6e9bb2f7";
-      sha256 = "1yibykhd0kilzz67rmn392l27mmjmrcw62vmcilmyldnymxlqg85";
+      rev = "52f4840cb95e6638f18a74b71b536c3bd12e9fd8";
+      sha256 = "1vbhmz5hkgbb9z03g1552wbmzmnfgyr3x45qhrlnv50fkl2rrj8v";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-dap-ui/";
   };
@@ -5328,24 +5328,24 @@ final: prev:
 
   nvim-gdb = buildVimPluginFrom2Nix {
     pname = "nvim-gdb";
-    version = "2022-05-31";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "sakhnik";
       repo = "nvim-gdb";
-      rev = "713e333d3d5cecaaee20c1e4d55fb5a344b5ca2e";
-      sha256 = "19jm1i5z1y3bfyp92rwjmbxjalhp3anbmfafhrp10f7sd3mbcxhf";
+      rev = "c617a18561f710c22f521f7efd05c1374a1b8073";
+      sha256 = "1rk2z7ibrsh9gqrxisf13ybx846rxhlrx6s3piabhhr5x7m3h79n";
     };
     meta.homepage = "https://github.com/sakhnik/nvim-gdb/";
   };
 
   nvim-gps = buildVimPluginFrom2Nix {
     pname = "nvim-gps";
-    version = "2022-06-09";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "smiteshp";
       repo = "nvim-gps";
-      rev = "c1e561d2937048174916667af0349bc4b7b3d2e9";
-      sha256 = "0g2r45yx2vx2j7yx5n2gc4v36629vz0ngaz3q1hmwpcr15qxbb3v";
+      rev = "be4bb5b903af81f04b316425b8ba8142504d023f";
+      sha256 = "0n8a0lnf8jbfds29mk5xxk68cp7i4rb8xsfa1qk50i662l570knn";
     };
     meta.homepage = "https://github.com/smiteshp/nvim-gps/";
   };
@@ -5364,12 +5364,12 @@ final: prev:
 
   nvim-hlslens = buildVimPluginFrom2Nix {
     pname = "nvim-hlslens";
-    version = "2022-04-03";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-hlslens";
-      rev = "1944094111217db8d40aac697ffc71f16136d9ec";
-      sha256 = "0f0lqldrgzi72qrafzwqk3i71v74xvsrhgrfnidnbnvd3jc7sa0b";
+      rev = "6cd78e73b28af4618cf67a470e53e13d59899914";
+      sha256 = "0g2xvgw1bxz76hil5iiy37gpv69xjqy2s2q79lqc1pcr54c3392i";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-hlslens/";
   };
@@ -5388,12 +5388,12 @@ final: prev:
 
   nvim-jdtls = buildVimPluginFrom2Nix {
     pname = "nvim-jdtls";
-    version = "2022-06-02";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-jdtls";
-      rev = "72a40cdcde653df645644375307b4ea0cb658281";
-      sha256 = "180v9810bmnh9xf74sq7nrgv98iva5xpka9yyhqp7n9li7c7xp93";
+      rev = "3a148dac526396678f141a033270961d0d9ccb88";
+      sha256 = "1fbxgssd9s0vfa6w00hhvqzmc48dgk271z0rchnch0b317q88vr2";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/";
   };
@@ -5448,12 +5448,12 @@ final: prev:
 
   nvim-lint = buildVimPluginFrom2Nix {
     pname = "nvim-lint";
-    version = "2022-06-08";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-lint";
-      rev = "28a5f3e24ccc9f70026629e9b87670ab893a870f";
-      sha256 = "11dhxa18djf2rmbnrfm60z9pcmjnblha62yl6sc8d137fj87jppp";
+      rev = "14f12733599d8feb4b3c6b9fc9e945e0bede59c2";
+      sha256 = "1prhnjk78pl3cvaydv9i4jyz8j8y7za0lwkyhwax1n0qgv1m9kq6";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-lint/";
   };
@@ -5472,12 +5472,12 @@ final: prev:
 
   nvim-lspconfig = buildVimPluginFrom2Nix {
     pname = "nvim-lspconfig";
-    version = "2022-06-09";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "4eac16e87f24ad26738e632446e29766e87141ae";
-      sha256 = "0shpjy5p316yxs6d8028s93z1i7rv5fafpr8vk2zvgrhnvza6q1k";
+      rev = "c55e830aa18bd15f36f7534947ec7471f2b43af7";
+      sha256 = "0625rsaw5ba92fszk5bvkcg5misj7bacrlma9k8i09hbg81f3w28";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -5496,24 +5496,24 @@ final: prev:
 
   nvim-luapad = buildVimPluginFrom2Nix {
     pname = "nvim-luapad";
-    version = "2022-04-10";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "rafcamlet";
       repo = "nvim-luapad";
-      rev = "3f0d7453987c7bef87d55b8051f252578853399c";
-      sha256 = "0h97hqbx7kbwkqhbq76k5l6rcr2bmdm17g0dps2g82lizmyhpfk0";
+      rev = "171e204ed65dc9308833ff80026fc6b7cec22825";
+      sha256 = "1k7zly9xpdrxf6221w2x898fdapagzwjcf8sf6agis7flqhp3j8f";
     };
     meta.homepage = "https://github.com/rafcamlet/nvim-luapad/";
   };
 
   nvim-metals = buildVimPluginFrom2Nix {
     pname = "nvim-metals";
-    version = "2022-06-02";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "scalameta";
       repo = "nvim-metals";
-      rev = "6738fe3c0e2142de01c753f8b7c18281d11488ce";
-      sha256 = "19k330fv68z9icdlbf6bjn8ckwrjkdn9k9hl4r4ss95lm7sfgzd8";
+      rev = "58ecfb61e4617139d3954138ccccc4c0befa89e0";
+      sha256 = "0qcz1ijm62ys0d7gzbgq9h537pcfyzqmnmm3gv6gxzvfbqr4mcwq";
     };
     meta.homepage = "https://github.com/scalameta/nvim-metals/";
   };
@@ -5544,12 +5544,12 @@ final: prev:
 
   nvim-notify = buildVimPluginFrom2Nix {
     pname = "nvim-notify";
-    version = "2022-06-06";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-notify";
-      rev = "8252aaedfd57ad010d9fee2f620924eac063537d";
-      sha256 = "1p7hwqsxryqc25mazdxvl9q7b1w57qn1sfqg5p9ksln7zh9qs44l";
+      rev = "7caeaaef257ecbe95473ec79e5a82757b544f1fd";
+      sha256 = "1k4p358hasbcwihx4prm7arz3frvj0s17imqx865nm2bsh0gpf3j";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-notify/";
   };
@@ -5580,24 +5580,24 @@ final: prev:
 
   nvim-snippy = buildVimPluginFrom2Nix {
     pname = "nvim-snippy";
-    version = "2022-05-01";
+    version = "2022-05-29";
     src = fetchFromGitHub {
       owner = "dcampos";
       repo = "nvim-snippy";
-      rev = "a4512c9a9c0de83494fac66d02e04ff4f0805cae";
-      sha256 = "0vaabj2m84ba3ryl6n5s5rryjg06kjk571z6cmdgccff4lvq9d4v";
+      rev = "b13352f259c383cb1c921a1d5f2f98b072e53539";
+      sha256 = "0cs0ir8xhivkqij25y4gf6zddq3c4j0qcdmv81k8lr1awfbr3017";
     };
     meta.homepage = "https://github.com/dcampos/nvim-snippy/";
   };
 
   nvim-solarized-lua = buildVimPluginFrom2Nix {
     pname = "nvim-solarized-lua";
-    version = "2022-05-13";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "ishan9299";
       repo = "nvim-solarized-lua";
-      rev = "a6af3a33cfe78c97f3adb2d86d3165bb25fb0ec3";
-      sha256 = "1z7wi72dqrw0fgsnm0s7zmxb72cq564dqvvpl1cqgizf4ab2a42a";
+      rev = "faba49ba6b53759b89fc34d12ed7319f8c2e27e0";
+      sha256 = "1kfbad6v7azk8lhsjpsli2ba2x5wncjac35iazjhdx6dbv0gw90l";
     };
     meta.homepage = "https://github.com/ishan9299/nvim-solarized-lua/";
   };
@@ -5628,36 +5628,36 @@ final: prev:
 
   nvim-tree-lua = buildVimPluginFrom2Nix {
     pname = "nvim-tree.lua";
-    version = "2022-06-07";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-tree.lua";
-      rev = "1caca6285427ebd2b4f0eb10f4d1ae3956ff09c0";
-      sha256 = "13m893pjn816fp5b0s423vbgk5f6fdhbiqwbbxzz2311ijg72nhh";
+      rev = "79258f1d670277016523e13c0a88daa25070879f";
+      sha256 = "1wrq3g6n82lyxzgbkfgpsi908ghwzp773fslrfyxk3mwgvdj396s";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter";
-    version = "2022-06-09";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "a3cef7881ca8e2b8843a4500df44f94311bcc3df";
-      sha256 = "1yfhc1yhrnv7k0l1p38zydl2xrjfzbwixz0iawpmybw5vmnyl0vi";
+      rev = "8eccd820afb012df6ae22678aa01d4053ab84365";
+      sha256 = "0465y4c7i33rn5yq921viik1kmv22pii9fr7nm678hkmhwi2qhwx";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
 
   nvim-treesitter-context = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-context";
-    version = "2022-06-09";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-context";
-      rev = "81116dc03abf35ca99c7910f9f779961042dea12";
-      sha256 = "150r80ik8i11a5dxn71j55gmgpfivlfmnvkqdxjwz6c14asi4ycj";
+      rev = "b05cd9cbb972f48b583b581615a046f814ccaca0";
+      sha256 = "07pxlms3j4kcd7ybmyjjkvjkkjxz084g3lm6kfv015pnca78wjj2";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-context/";
   };
@@ -5724,12 +5724,12 @@ final: prev:
 
   nvim-ts-rainbow = buildVimPluginFrom2Nix {
     pname = "nvim-ts-rainbow";
-    version = "2022-05-28";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "p00f";
       repo = "nvim-ts-rainbow";
-      rev = "18cb3a45e0ff843d48e8637a36b9cc6cd89d71b0";
-      sha256 = "0w8gzxps0rn20cr92ib5zk3xw6l2i8032081r0v34rry1xahdam6";
+      rev = "837167f63445821c55e6eed9dbdac1b0b29afa92";
+      sha256 = "104rvha3bqsn5rnrii0z023x7a4ph3rljlmqjgaki27crfnxx8sj";
     };
     meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/";
   };
@@ -5820,12 +5820,12 @@ final: prev:
 
   octo-nvim = buildVimPluginFrom2Nix {
     pname = "octo.nvim";
-    version = "2022-06-08";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "pwntester";
       repo = "octo.nvim";
-      rev = "71d4dcfe56d4c45b7f1a1520d65ef5a86d2bc9bd";
-      sha256 = "020k4nni9kqq4sqh86rsca3vkf49b56pllxk81yriwyazn8m3y2r";
+      rev = "f56b3f81661925e6487c2483ca8350c7287c70d1";
+      sha256 = "005vxvy87hfmsvg0ksmc035md99b0qykgzlwj4nhcvv1pwpjbazx";
     };
     meta.homepage = "https://github.com/pwntester/octo.nvim/";
   };
@@ -5856,12 +5856,12 @@ final: prev:
 
   onedark-nvim = buildVimPluginFrom2Nix {
     pname = "onedark.nvim";
-    version = "2022-06-09";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "navarasu";
       repo = "onedark.nvim";
-      rev = "52b1ebd80831dd1232b396b82a77fba977fb6e2c";
-      sha256 = "173y7gwwwf7wdd07kgs95p5iznl202p022vyzzwc4zz41z50zzpa";
+      rev = "af5595a5bf2358ef8611ab98f5e3c058b321c38f";
+      sha256 = "0sd2isramda96kmb7inif3n3dn2p5qrccw0b3apj6pwxf3ridsf5";
     };
     meta.homepage = "https://github.com/navarasu/onedark.nvim/";
   };
@@ -5880,12 +5880,12 @@ final: prev:
 
   onedarkpro-nvim = buildVimPluginFrom2Nix {
     pname = "onedarkpro.nvim";
-    version = "2022-05-26";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "olimorris";
       repo = "onedarkpro.nvim";
-      rev = "06e9020c4b014a56547dbea53163cdd1c6c0c1ec";
-      sha256 = "1biylhq7n0l7kac26ibv0zqwvfynqa1g3pn3qf9yz7ndrfqfwddk";
+      rev = "5d13f02a8ba579d68be02f877a8c38bac9ff17ed";
+      sha256 = "1f9p7crgkq68ql2ri8mjfkp5r6dhq9pmsl3073pg2hzgirb08fgl";
     };
     meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/";
   };
@@ -5928,24 +5928,24 @@ final: prev:
 
   orgmode = buildVimPluginFrom2Nix {
     pname = "orgmode";
-    version = "2022-06-07";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "nvim-orgmode";
       repo = "orgmode";
-      rev = "d5907359eba50a9f0017043fb220d542e17c5e1f";
-      sha256 = "0wqwxh13vh1hxcajb6zw2js36264zab8mxjnr0bkxmk821h68rwb";
+      rev = "d3b95d2036d57f67a0f78ec975c7ef10e9134908";
+      sha256 = "0yfdfpqygk77rhbyi28makmghq58rzl5aah8lpqihr604j1l54z5";
     };
     meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
   };
 
   package-info-nvim = buildVimPluginFrom2Nix {
     pname = "package-info.nvim";
-    version = "2022-02-18";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "vuki656";
       repo = "package-info.nvim";
-      rev = "10de4d0d50ec1d4d26118c4aa067a9d09e370c9c";
-      sha256 = "1mhhff6knqqq6pgmd3w6vfljcig37yyxvmrvhb205y67igy3vcr2";
+      rev = "45e409c69063a057250833a747e52e2ff00dd722";
+      sha256 = "048rzckb35d4s96kmk6yhbv756yhhcv6kl7nc3y96w18qjjh5ymy";
     };
     meta.homepage = "https://github.com/vuki656/package-info.nvim/";
   };
@@ -6072,12 +6072,12 @@ final: prev:
 
   plenary-nvim = buildNeovimPluginFrom2Nix {
     pname = "plenary.nvim";
-    version = "2022-06-08";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "plenary.nvim";
-      rev = "9c3239bc5f99b85be1123107f7290d16a68f8e64";
-      sha256 = "1d948hq5aa8wbr1lvpi3c54mlgh8z6yk25bfn4ckbs1g1giar8ih";
+      rev = "968a4b9afec0c633bc369662e78f8c5db0eba249";
+      sha256 = "05x9hnz960ljcb2psqycxgdmh99j36y16vbb9l92wjv5szkz37x5";
     };
     meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
   };
@@ -6181,12 +6181,12 @@ final: prev:
 
   purescript-vim = buildVimPluginFrom2Nix {
     pname = "purescript-vim";
-    version = "2021-04-21";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "purescript-contrib";
       repo = "purescript-vim";
-      rev = "d493b57406d2742f6f6c6545de5a3492f2e5b888";
-      sha256 = "1qnf8lg4a6xxn335z57nqb4yp7ij62yr408nbc8m6xwnznck3wa7";
+      rev = "af5fae0b43241e9fc3e0442782272728844bec3f";
+      sha256 = "05v81i4ialja4wq3rp1fy09zjh7rvwb6pjhig7zg9pfddd015pki";
     };
     meta.homepage = "https://github.com/purescript-contrib/purescript-vim/";
   };
@@ -6350,12 +6350,12 @@ final: prev:
 
   refactoring-nvim = buildVimPluginFrom2Nix {
     pname = "refactoring.nvim";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "theprimeagen";
       repo = "refactoring.nvim";
-      rev = "21b47bda407194fbe1f603256e101c26c0dbe589";
-      sha256 = "0ggd17mmvxpym4ablhy3s46yw9a3xavn9rzvla3j83skpmqyhmmk";
+      rev = "7328413fdafeff52731e5f4961a574ad2fa0837d";
+      sha256 = "07jwjcys9h2sjnh7vlf3rjjl254b7qh0axwck66d5hk0i7xviqhm";
     };
     meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/";
   };
@@ -6518,12 +6518,12 @@ final: prev:
 
   scrollbar-nvim = buildVimPluginFrom2Nix {
     pname = "scrollbar.nvim";
-    version = "2021-11-16";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "Xuyuanp";
       repo = "scrollbar.nvim";
-      rev = "590b23af866a32277cf803aca0fd770d5b39c2e7";
-      sha256 = "1dvlmmxykf3vyhyvv5aiqbz8fd7zvpw4xq1nxnf3wyj371caawaq";
+      rev = "bc97c132e8367efecb2ecb937d385e7dc04eb5a1";
+      sha256 = "14g2q9nzdh9ffp2b8z3sdicrn4xq3ksq8mjxdi7cm44rlfyzfs04";
     };
     meta.homepage = "https://github.com/Xuyuanp/scrollbar.nvim/";
   };
@@ -6699,12 +6699,12 @@ final: prev:
 
   sonokai = buildVimPluginFrom2Nix {
     pname = "sonokai";
-    version = "2022-05-31";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "sonokai";
-      rev = "c2f8a7259e4b67fb4d0242afababbb1dda3285a3";
-      sha256 = "1ni8b2b3cqqmi8lr4dh2f5bwnxwcdwqdjfvvds4m8jq2s3kql4bh";
+      rev = "e72e59d3e2cad8af17a1e2a0f6772ea56af32e2c";
+      sha256 = "0yw98fj4b7vm5p5kvzvpgnmlgc3p54gdh1znlhpz5jkq4r59ggsa";
     };
     meta.homepage = "https://github.com/sainnhe/sonokai/";
   };
@@ -6723,12 +6723,12 @@ final: prev:
 
   space-vim = buildVimPluginFrom2Nix {
     pname = "space-vim";
-    version = "2022-05-22";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "space-vim";
-      rev = "79f8ddcfe1312e48595d2aed3eae8c021137db2f";
-      sha256 = "1diqpkaspjcqlnbwpawh4yhls56776mndbskkcf7x69m1kfwkzip";
+      rev = "b5bd319aa4c7bede97ec1eaf1dffaf7fbc9aa8a8";
+      sha256 = "0hbxqs548z9zjjzizcz0g7h894sg4jyw97qwg8fahy0pvi976694";
     };
     meta.homepage = "https://github.com/liuchengxu/space-vim/";
   };
@@ -6771,12 +6771,12 @@ final: prev:
 
   spellsitter-nvim = buildVimPluginFrom2Nix {
     pname = "spellsitter.nvim";
-    version = "2022-06-02";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "spellsitter.nvim";
-      rev = "430a25393abbf482bddf03c224cd5b8eeb27b5e1";
-      sha256 = "1cypvpyaarn9ckin2cgf2hpsq5qj517pz64imvyckzg22x9cf6yi";
+      rev = "c1b318f8b959e015f5cc7941624d1ca0f84705dd";
+      sha256 = "17v7scc6574afmjfhhzawpxhhh31fz118xzbjg1l8qnbdnb159bh";
     };
     meta.homepage = "https://github.com/lewis6991/spellsitter.nvim/";
   };
@@ -6832,12 +6832,12 @@ final: prev:
 
   sqlite-lua = buildVimPluginFrom2Nix {
     pname = "sqlite.lua";
-    version = "2022-06-07";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "tami5";
       repo = "sqlite.lua";
-      rev = "de2cc544127d6dfd7f6ff3d4960b21dd6db4f1dd";
-      sha256 = "1mj4m1fk9y4l6418zamiqln09dg2h4cw9k9bywv55gd735gwfapp";
+      rev = "1ed8bff0f7522bbcb79428f91a5cacacb3ae0331";
+      sha256 = "0ckvl97v1jhr7wrrmvvgbi23z5bl29ng7f0l7hvrmm5m6c4cpkny";
     };
     meta.homepage = "https://github.com/tami5/sqlite.lua/";
   };
@@ -6952,12 +6952,12 @@ final: prev:
 
   sved = buildVimPluginFrom2Nix {
     pname = "sved";
-    version = "2021-10-22";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "peterbjorgensen";
       repo = "sved";
-      rev = "2f98472720d0e0c7da5a93b4ab4574f75747f693";
-      sha256 = "070fzga0b039wjhfzb7s0s422kv3as7ifv94ma6vh62ml6zm6mpl";
+      rev = "7da91cb0eacdaae5e1a41722e95800c98d4ca675";
+      sha256 = "0rp5pklym8bnl1npgglh096i9ssrdbn2r99arh42sbdca71spbiw";
     };
     meta.homepage = "https://github.com/peterbjorgensen/sved/";
   };
@@ -7025,12 +7025,12 @@ final: prev:
 
   tabline-nvim = buildVimPluginFrom2Nix {
     pname = "tabline.nvim";
-    version = "2022-04-19";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "kdheepak";
       repo = "tabline.nvim";
-      rev = "2eb56826bf7b85b9090aff73a696e0e803bf89ae";
-      sha256 = "10fqssr8la7y54q7iz2kgx1axv2rwmv0mjvnz0yvadcfz80q2ksv";
+      rev = "5d76dc8616b4b7b892229cc05cd0f4cd0200077a";
+      sha256 = "0k9yk7drxbjfwjfqmg7iam2vaz05rk3shd5lap8qakwvayvas258";
     };
     meta.homepage = "https://github.com/kdheepak/tabline.nvim/";
   };
@@ -7303,12 +7303,12 @@ final: prev:
 
   telescope-project-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-project.nvim";
-    version = "2022-04-28";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-project.nvim";
-      rev = "4658d78523a5a005af80243f1d0b4e7e2a118dae";
-      sha256 = "0fpq6jfycl5hmz7ch5ris72qjabvhvbaj6wm9gwgl7ids99982p7";
+      rev = "8cd22b696e14b353fe8ea9648a03364cb56c39d4";
+      sha256 = "1qrk2i7yvvrqg4yjma1q6c26wdlapc60yriiqx5mhfam9xh28s24";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-project.nvim/";
   };
@@ -7387,12 +7387,12 @@ final: prev:
 
   telescope-nvim = buildVimPluginFrom2Nix {
     pname = "telescope.nvim";
-    version = "2022-06-06";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "e6b69b1488c598ff7b461c4d9cecad57ef708f9b";
-      sha256 = "060149lbhsbn0vfdivng5pc48lnfhpjwsdc0ppvvvl45b5in7k27";
+      rev = "d88b44ddf14670cffa9fdb1eaca7a0429a973653";
+      sha256 = "11ahi16nd21p9413d3rdw25bgzjkp3k83p6a1jwka3pk15c87nl0";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -7495,12 +7495,12 @@ final: prev:
 
   tlib_vim = buildVimPluginFrom2Nix {
     pname = "tlib_vim";
-    version = "2021-07-17";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "tomtom";
       repo = "tlib_vim";
-      rev = "70c4e222464020edc2809c932b488daaf891eeef";
-      sha256 = "1amx220nbh1s51z35pkhvl3110pbha5qj2rdgxvg8dbqha7py9fx";
+      rev = "223c696eab4a3a59a33352531e42c74c721510e7";
+      sha256 = "1x9s9ypk934lkqpcyvycij5803y1vz5i3q8p8di6d6jv04ylvgvl";
     };
     meta.homepage = "https://github.com/tomtom/tlib_vim/";
   };
@@ -7568,12 +7568,12 @@ final: prev:
 
   toggleterm-nvim = buildVimPluginFrom2Nix {
     pname = "toggleterm.nvim";
-    version = "2022-06-07";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "toggleterm.nvim";
-      rev = "50f88d316261bfe56854cb75b9d092061c38b21e";
-      sha256 = "1cf6vqjcn5nk2ymjpflpxr9ic2k0y4bnxzy24n0q8vp05dp69qv2";
+      rev = "8f2e78d0256eba4896c8514aa150e41e63f7d5b2";
+      sha256 = "0mrjha2vadxc8n0q4kqq8x8xf03b2k0yksi68j6r1lbkd1i0rwmx";
     };
     meta.homepage = "https://github.com/akinsho/toggleterm.nvim/";
   };
@@ -7808,12 +7808,12 @@ final: prev:
 
   vifm-vim = buildVimPluginFrom2Nix {
     pname = "vifm.vim";
-    version = "2022-06-04";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "vifm";
       repo = "vifm.vim";
-      rev = "d2e2a1fbed196e3bb273fe87bbd821a7e80be298";
-      sha256 = "00jvhicwa9wmf1pbd4fi4423jh02x5i7h5bgi21avfgyfxrvlaaj";
+      rev = "8f8fd1731c614a76a41fda43b5405b35ffdae3a6";
+      sha256 = "1gh5pa754mfnh5nsayq6gf6daz3ysbghd85drj35692x6jz8fpif";
     };
     meta.homepage = "https://github.com/vifm/vifm.vim/";
   };
@@ -8288,12 +8288,12 @@ final: prev:
 
   vim-autoformat = buildVimPluginFrom2Nix {
     pname = "vim-autoformat";
-    version = "2022-06-08";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "vim-autoformat";
       repo = "vim-autoformat";
-      rev = "fc8eb893db0c3c7eb204066d1954a59bc78819b9";
-      sha256 = "0c8d84pgg6rck6pxm12w46k1smsaw0d83hs899ws78zcamamp7y2";
+      rev = "00df1ac5df05247238cb2ae2a0770b62209e3aa7";
+      sha256 = "11k6s5qzwd6fcd2hjr6p3w08yqfh0mrnpl3nkyfz8lf8jpd6ps1b";
     };
     meta.homepage = "https://github.com/vim-autoformat/vim-autoformat/";
   };
@@ -8516,12 +8516,12 @@ final: prev:
 
   vim-clap = buildVimPluginFrom2Nix {
     pname = "vim-clap";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-clap";
-      rev = "181524923fe04c554e37fc5acab51545b2a4715e";
-      sha256 = "0355hn1v5k1j86k8bw61vjb84cbgsg214ax07l5jrfk5dzh1avcl";
+      rev = "48b7b60c6743f4bc82d3edf61978c1c593276cc2";
+      sha256 = "02sr55jqly1b8cllhaw124ig9q3p5m3v7s2vprfqrfyy3w681xfm";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-clap/";
   };
@@ -8576,12 +8576,12 @@ final: prev:
 
   vim-code-dark = buildVimPluginFrom2Nix {
     pname = "vim-code-dark";
-    version = "2022-05-27";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "tomasiser";
       repo = "vim-code-dark";
-      rev = "97ef6f96bd95c3dbd725946607e7290be0266153";
-      sha256 = "03f506y3gv1hx0y66xjpg1v0nli63fh1qrvp05dwjki2vdzxmz03";
+      rev = "caf254ffa59b91c41851024a58d1eaa806a81bc9";
+      sha256 = "0ympd38yf9wlm37sgamyxi8nal0k7imd173xxfp617sj7lrnnx5q";
     };
     meta.homepage = "https://github.com/tomasiser/vim-code-dark/";
   };
@@ -8780,36 +8780,36 @@ final: prev:
 
   vim-dadbod = buildVimPluginFrom2Nix {
     pname = "vim-dadbod";
-    version = "2022-06-03";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dadbod";
-      rev = "c2495b008f1adce6d21745b2c4c576eecc985959";
-      sha256 = "1zj1bab5ck9k9c11cmyszmlnfw3sis79kmlag2a0c0p035rzsl35";
+      rev = "136d82e1884f86b9f9bbbcc88bab6d199928a46e";
+      sha256 = "1chbvrpykswcmph3yjpv17j5j47azvb90i1a4j0pwc2mmak6gnjq";
     };
     meta.homepage = "https://github.com/tpope/vim-dadbod/";
   };
 
   vim-dadbod-completion = buildVimPluginFrom2Nix {
     pname = "vim-dadbod-completion";
-    version = "2022-03-06";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-dadbod-completion";
-      rev = "1c60988abf17f426b87a1ce2de6b6eabfd5d6b2b";
-      sha256 = "0b6mgmaak6vh2adkzdh9s5b5js362hv2hg14zwrb5846cjpbs21i";
+      rev = "22ef15e7103b78850473b57ef48233aaec8d9f64";
+      sha256 = "1ibr1db06b9bxa7jnspix6wmf1z8fl3g5rrxskgfhfpdb2blwihm";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-completion/";
   };
 
   vim-dadbod-ui = buildVimPluginFrom2Nix {
     pname = "vim-dadbod-ui";
-    version = "2022-05-02";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-dadbod-ui";
-      rev = "7bd114b88da4bf8115bd85d70fb531e4b6d72eb7";
-      sha256 = "0mb74z2kr85wd17kbhf8qx02iciq31aqg7y12k1isvmxkv4i0hhw";
+      rev = "50cbfc825bd58081f916f989d7ae78e5320e858b";
+      sha256 = "0y2cnafw3ahxfvjc5g39nrpiwn502hp3xarnp8c3pg85hzf13jrc";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-ui/";
   };
@@ -9224,12 +9224,12 @@ final: prev:
 
   vim-floaterm = buildVimPluginFrom2Nix {
     pname = "vim-floaterm";
-    version = "2022-06-03";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "voldikss";
       repo = "vim-floaterm";
-      rev = "875c404da92bb716fdfb33d4948277651ff345a9";
-      sha256 = "0gkbd8vvyiln3v1f0hgx34ixhbqda8ggivqfgpnb7vlx5j9za706";
+      rev = "e3f2d94d722603f8b65088ea1d7e0329951985bd";
+      sha256 = "0d7r5g1wrcbq6ahd3hbwpjw54qk8k471wm704cmpdlgfjbjxdfqf";
     };
     meta.homepage = "https://github.com/voldikss/vim-floaterm/";
   };
@@ -9296,12 +9296,12 @@ final: prev:
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2022-06-07";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "92c73bb0507338441733198d630a1fe5e7fdac3a";
-      sha256 = "0skxvlxnxcwj22qwh166i1kkn7iir3jndw1ixwvh3iipq46910zq";
+      rev = "8b39d29d947618913ba1db32de605a6335875b99";
+      sha256 = "0zmn09rh17zjq0pkf6nmmpwkchfvj8ycr2559ndjc5vdw8r10x70";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -9368,12 +9368,12 @@ final: prev:
 
   vim-git = buildVimPluginFrom2Nix {
     pname = "vim-git";
-    version = "2022-05-18";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-git";
-      rev = "0e571394d9c17026917235fc3df8f8d9184bc4d0";
-      sha256 = "11bifrm9b5i89yg94368npw0la57icw8v9074ry7rp5f5r3jg3k8";
+      rev = "5143bea9ed17bc32163dbe3ca706344d79507b9d";
+      sha256 = "02vk8lgl6zswg6bdg1qy4qrh47bwflil601z8i33yjx5q2qrq0ra";
     };
     meta.homepage = "https://github.com/tpope/vim-git/";
   };
@@ -10054,12 +10054,12 @@ final: prev:
 
   vim-ledger = buildVimPluginFrom2Nix {
     pname = "vim-ledger";
-    version = "2022-05-25";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "ledger";
       repo = "vim-ledger";
-      rev = "ca55491ce36f30263a56b0dbd2bcb4a26be34154";
-      sha256 = "0pamfqjxiqk7rs5cn8s81197f8rilr01ka11hpbzamflz9v2lz9c";
+      rev = "78fdcae8cab810892c82d555a63bdcd20b8e1397";
+      sha256 = "0wr56azflkjx4v7xw44c960byfcak7kjgkk9a482rj19iywk9141";
     };
     meta.homepage = "https://github.com/ledger/vim-ledger/";
   };
@@ -10162,12 +10162,12 @@ final: prev:
 
   vim-lsp = buildVimPluginFrom2Nix {
     pname = "vim-lsp";
-    version = "2022-05-27";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "vim-lsp";
-      rev = "9458f6e2d49112958499f0c82e1d6f18baa70248";
-      sha256 = "099rlqfw45gr4szi2f1zdzayrsw504ihqpn6a7byg5h89a617kwy";
+      rev = "74e458bc9c7532ff1959b2443a1d73494e3673b6";
+      sha256 = "15m00ihfka0nlvn86q6flmxcwxf64ahykh4g7x9gb030gr6miflp";
     };
     meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
   };
@@ -10198,12 +10198,12 @@ final: prev:
 
   vim-maktaba = buildVimPluginFrom2Nix {
     pname = "vim-maktaba";
-    version = "2022-04-22";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-maktaba";
-      rev = "fe631a85b0a1e1a709a55ef0947c9c0813f41edb";
-      sha256 = "166fgfxh6k4v2ypzjmn6hicr92xgcsi5bi930f74xv5fzm0gw9l8";
+      rev = "80b47c5f636c0ed0915af378b47428a83346a699";
+      sha256 = "1fmq4zcx8shrkw1p2sjhncy3g7j4zka4rvr97jplf8fv40yqql1i";
     };
     meta.homepage = "https://github.com/google/vim-maktaba/";
   };
@@ -10246,12 +10246,12 @@ final: prev:
 
   vim-markdown-composer = buildVimPluginFrom2Nix {
     pname = "vim-markdown-composer";
-    version = "2022-05-04";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "euclio";
       repo = "vim-markdown-composer";
-      rev = "5b79f425ebd28216d9aa472be3ba07cda41d9b24";
-      sha256 = "0i4m2x2cw604aczp1ijnrv0wvh1b9bxg9zh0zmf8kk7b00zc1k5c";
+      rev = "e6f99bc20cfcb277c63041b1f766e6d5940bcc76";
+      sha256 = "0ljv8cvca8nk91g67mnzip81say04b1wbj9bzcgzy8m6qkz1r2h3";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/euclio/vim-markdown-composer/";
@@ -10391,12 +10391,12 @@ final: prev:
 
   vim-mundo = buildVimPluginFrom2Nix {
     pname = "vim-mundo";
-    version = "2022-01-30";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "simnalamburt";
       repo = "vim-mundo";
-      rev = "595ee332719f397c2441d85f79608113957cc78f";
-      sha256 = "0kwiw877izpjqfj4gp4km8ivj6iy2c2jxyiqgxrvjqna62kic0ap";
+      rev = "b9a6adbcfacc1ffe42ef3aa888f7c828a0b63746";
+      sha256 = "0x0xjijadzk3z3f4bs0k3rbhb760qcdczvn0c8m9gx678wfjshyd";
     };
     meta.homepage = "https://github.com/simnalamburt/vim-mundo/";
   };
@@ -10655,12 +10655,12 @@ final: prev:
 
   vim-oscyank = buildVimPluginFrom2Nix {
     pname = "vim-oscyank";
-    version = "2022-05-21";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "ojroques";
       repo = "vim-oscyank";
-      rev = "ebcb47da66329d2c654e380d87879a935576c176";
-      sha256 = "17l3ghjicf0llf7341vkhgaxs53pj2fgrsli2rpkqnm2qd041gyv";
+      rev = "360ccdc01b18cd434588c34e15e5ea382b436de8";
+      sha256 = "14phavx432h16bdm7m99a21xz2gb1s47fd5g8v2b5ig12l4yss92";
     };
     meta.homepage = "https://github.com/ojroques/vim-oscyank/";
   };
@@ -11123,12 +11123,12 @@ final: prev:
 
   vim-rhubarb = buildVimPluginFrom2Nix {
     pname = "vim-rhubarb";
-    version = "2022-05-11";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-rhubarb";
-      rev = "ab0d42bb31b3317aa66dd1c0b506837cc6ca2835";
-      sha256 = "0qv2ppmxpy72gb8ivz5cx19b4y8si4v428d9mmlx9q7mv9q4wmhq";
+      rev = "f8b70f5ef3b315af1148ef9dcc2a9afb02bc8c79";
+      sha256 = "1cgxaaizx9l11s3gs7d1gvlq2c1l42548fmdkqgqnl8z777h065k";
     };
     meta.homepage = "https://github.com/tpope/vim-rhubarb/";
   };
@@ -11183,12 +11183,12 @@ final: prev:
 
   vim-sandwich = buildVimPluginFrom2Nix {
     pname = "vim-sandwich";
-    version = "2022-05-14";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "machakann";
       repo = "vim-sandwich";
-      rev = "17266bab12c4f2ca9ce871f706176d971613487e";
-      sha256 = "1zp7zkgphlavspyfha62rwhsxn0w4fp2ciylv3vq76j54xyxkqyj";
+      rev = "e114a5e0c90aefed3d2a48ca326eff9d39bc90a9";
+      sha256 = "0kqn9kzwhh1zhymvmpnbkrccj4nn5lda3fwj1hyd4z3iaffxxk9a";
     };
     meta.homepage = "https://github.com/machakann/vim-sandwich/";
   };
@@ -11363,12 +11363,12 @@ final: prev:
 
   vim-slime = buildVimPluginFrom2Nix {
     pname = "vim-slime";
-    version = "2022-05-11";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "jpalardy";
       repo = "vim-slime";
-      rev = "6e4b81303968f37346925d6907b96ef07788cc82";
-      sha256 = "1z0nmfmn7ijj3hih4dbi1iq3dc6gpprck3fmidhmkv6vms041nx4";
+      rev = "93d202278004fbc8eb3ec9d734916214e6c7f034";
+      sha256 = "1nnv2kkq06d72wfsyliqvyrp735j5kg7y9c1r9lypjw2y7548spf";
     };
     meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
@@ -11399,12 +11399,12 @@ final: prev:
 
   vim-smoothie = buildVimPluginFrom2Nix {
     pname = "vim-smoothie";
-    version = "2022-05-28";
+    version = "2022-06-10";
     src = fetchFromGitHub {
       owner = "psliwka";
       repo = "vim-smoothie";
-      rev = "4206594ee4d4c6689bd41f5ee8e3617642d3b295";
-      sha256 = "1fr7bvl22p021wpwaadfczpg16qh2r2apjwq9bkcwlsg5l80qfdn";
+      rev = "df1e324e9f3395c630c1c523d0555a01d2eb1b7e";
+      sha256 = "1c87zc954wk76h9klxyygv19jp729fms2f5m18gwzskars3px076";
     };
     meta.homepage = "https://github.com/psliwka/vim-smoothie/";
   };
@@ -11435,24 +11435,24 @@ final: prev:
 
   vim-snipmate = buildVimPluginFrom2Nix {
     pname = "vim-snipmate";
-    version = "2021-06-04";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "garbas";
       repo = "vim-snipmate";
-      rev = "ed3c5426a20bf1c06d7980946ada34fd9f93320e";
-      sha256 = "0bxaalza02sgm045cj4vciy3qhmj7pj1rp9bdwm5837ldq8paj1h";
+      rev = "525f331320427bf7aeb07651e2536b1f8a23df03";
+      sha256 = "0qfai0x9zg52n43ikgxx5x9y1nl3x420q8564csxirnbhnbn5xgx";
     };
     meta.homepage = "https://github.com/garbas/vim-snipmate/";
   };
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2022-05-29";
+    version = "2022-06-10";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "11c771065bfadcc0583b9711d3932c765f168bb4";
-      sha256 = "18x5y4cc1d4z5ciqhrb1554abv5ixz7jcvldjgsnlnvkx5b616s7";
+      rev = "222cf7b44bb569c9a046a9891000c898bd4c43c9";
+      sha256 = "0xksa854c8rjp9y2xvhk78z5ha9p8c3pvpzvddii2aay22cfkn8h";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -11531,12 +11531,12 @@ final: prev:
 
   vim-startuptime = buildVimPluginFrom2Nix {
     pname = "vim-startuptime";
-    version = "2022-05-30";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "vim-startuptime";
-      rev = "a8ab56f30c603f8022f5fb6a436f5183beeb7b27";
-      sha256 = "1xlb8q93ff9qdlk17b76sbrz2adixj7zxf8b9ccvafki8diaqkj9";
+      rev = "82c8a5491e13fa307fb2cb47182a30560f930377";
+      sha256 = "05bj0cs5m829bdcm9zgmla2ha2nwg5cn1qs9r75haway42dza3s6";
     };
     meta.homepage = "https://github.com/dstein64/vim-startuptime/";
   };
@@ -11868,12 +11868,12 @@ final: prev:
 
   vim-tpipeline = buildVimPluginFrom2Nix {
     pname = "vim-tpipeline";
-    version = "2022-05-16";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "vimpostor";
       repo = "vim-tpipeline";
-      rev = "b83d430697d268a690240ec932630b8aed211aba";
-      sha256 = "0wy31h8f7j433h4anrwi7658g8plaja4gjsykgsdsgvm1zanq0dw";
+      rev = "7945984fd56bd69506c73f68bb300aaceae72e82";
+      sha256 = "1w6ifhkjjdfksmywf9r6hnvljbki0vdj440zj3ihbp2jpmhyb09q";
     };
     meta.homepage = "https://github.com/vimpostor/vim-tpipeline/";
   };
@@ -11928,12 +11928,12 @@ final: prev:
 
   vim-ultest = buildVimPluginFrom2Nix {
     pname = "vim-ultest";
-    version = "2022-05-05";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "vim-ultest";
-      rev = "6978fd32e3ca2c1c5591884eea0d57a7ee43d212";
-      sha256 = "19dphm7xgfc0xvxrlys21zkp7ixbx62p11x6ms6xmwm8cjjh64pc";
+      rev = "c93eb128332f8245776b753407ab6c4432c4c556";
+      sha256 = "1y686xrcvkwqmc263syh84a396xanqka39axc460ibl9zav7z4nn";
     };
     meta.homepage = "https://github.com/rcarriga/vim-ultest/";
   };
@@ -12000,12 +12000,12 @@ final: prev:
 
   vim-visual-multi = buildVimPluginFrom2Nix {
     pname = "vim-visual-multi";
-    version = "2022-05-06";
+    version = "2022-06-10";
     src = fetchFromGitHub {
       owner = "mg979";
       repo = "vim-visual-multi";
-      rev = "046d0d5ac5fb2888447d1dd8b7e52fd0314f9766";
-      sha256 = "17masfjxrhjcfqmlgf1jpmmz18j8vb4n88dl34rry6c3abiraprj";
+      rev = "e23b98a8852255766e54bf7723a9d61fb5ab3143";
+      sha256 = "1zxdbcd4qsqdfrgvn76r0a187hs0krb7w4r39dr10wwgzq69d2vf";
     };
     meta.homepage = "https://github.com/mg979/vim-visual-multi/";
   };
@@ -12108,12 +12108,12 @@ final: prev:
 
   vim-which-key = buildVimPluginFrom2Nix {
     pname = "vim-which-key";
-    version = "2022-06-07";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-which-key";
-      rev = "d7d451daa66154031dd9fb24c1798b4d07a820d9";
-      sha256 = "0f7rcmlnp24zag9ypfwd0i6bsikm0ndd58jnpv008qq8hl80rps1";
+      rev = "931260e7816ff8eeb26843f859f86dac09912add";
+      sha256 = "030ljq24lxqac3hphr5phw06lgcjg7jsrc6yxbgxx2m28v54isi6";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-which-key/";
   };
@@ -12360,12 +12360,12 @@ final: prev:
 
   vimspector = buildVimPluginFrom2Nix {
     pname = "vimspector";
-    version = "2022-06-04";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "puremourning";
       repo = "vimspector";
-      rev = "44eeaebd8cf8514de2b503e8698f2f341b5f23ad";
-      sha256 = "197l41s256z6iyb1pym6h9m4046k7m0jiwlrgfbf60yy2fxka7f3";
+      rev = "541cedd19bc22b5c00648352f0afe604113db32a";
+      sha256 = "1ra6jr5qvgclazaj3332kiwlc5kvpvi2dj9g2vfgd84140036cas";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -12373,12 +12373,12 @@ final: prev:
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2022-06-05";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "754bf6c97272e9bf479057b44cc968c4dad34753";
-      sha256 = "1igkd96171rhw0xdqikjhg99527jkkg7i6ri10p83v1fx9a7bk5y";
+      rev = "fcdf28ae2c7f5e0aabeead8b78bd112141ef26f8";
+      sha256 = "0d9g9cdrjhs0zwr3mc8r4dr1sf6jjhx3gywl8vfzk7xbrlyn6vcs";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -12505,12 +12505,12 @@ final: prev:
 
   winshift-nvim = buildVimPluginFrom2Nix {
     pname = "winshift.nvim";
-    version = "2021-11-15";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "sindrets";
       repo = "winshift.nvim";
-      rev = "aaa04b97640165eb0877bfc04943f4282887470b";
-      sha256 = "0rg7ci0m1hm9jbhjwckvjnfl0w3bl2wfr7wq67k0wdj5vnlzz6w3";
+      rev = "7014fdac39082977f11a9bed4b5486a7c04e4202";
+      sha256 = "1q21fh3rzrcl598z406nfr3gnfayy3ry3av9g41z872hx8r49kjf";
     };
     meta.homepage = "https://github.com/sindrets/winshift.nvim/";
   };
@@ -12565,12 +12565,12 @@ final: prev:
 
   xptemplate = buildVimPluginFrom2Nix {
     pname = "xptemplate";
-    version = "2020-06-29";
+    version = "2022-06-10";
     src = fetchFromGitHub {
       owner = "drmingdrmer";
       repo = "xptemplate";
-      rev = "359ffe4d426bce2e95f5866b682856b25555396f";
-      sha256 = "1rj5k58n1ybcc7qxsxlh09p2v4cps5xyzxmvjfrixy1qm2f85kd5";
+      rev = "d8500403b35d5597441773074e3976238b5e8b2c";
+      sha256 = "0dpdzx46rrwq9i2rymn0if7ci9h2b5hmdxqfw0dmdiyn1byj2wph";
     };
     meta.homepage = "https://github.com/drmingdrmer/xptemplate/";
   };
@@ -12686,36 +12686,36 @@ final: prev:
 
   catppuccin-nvim = buildVimPluginFrom2Nix {
     pname = "catppuccin-nvim";
-    version = "2022-05-30";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "catppuccin";
       repo = "nvim";
-      rev = "773d339cbd307fe218cf7b3ea04eac26b345a3b7";
-      sha256 = "005r3nmjd3s0gbf319xwrvighjg391j3qh79sfc2568z53wxj8r0";
+      rev = "d46425163dad4cc74910c0c81eeedb00cadf8a61";
+      sha256 = "1iqjlvr9d1nlf5bpafd15zz0y9r6vrfgp5mwld7kwv9ipr3gw0sd";
     };
     meta.homepage = "https://github.com/catppuccin/nvim/";
   };
 
   catppuccin-vim = buildVimPluginFrom2Nix {
     pname = "catppuccin-vim";
-    version = "2022-06-06";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "catppuccin";
       repo = "vim";
-      rev = "eaac7edb19ff11ce049513ac184fff7493817c1f";
-      sha256 = "181jfbw3msf1pccykabnniqry28ikassj39rc36hyz1vii1dq1d0";
+      rev = "e2fdf27b0f28f7e285beb377d2fc6936957c2122";
+      sha256 = "098blx6c2mzh6ghlvm6cv62bi8cfiys9r867msfw2h7r01gqz2hf";
     };
     meta.homepage = "https://github.com/catppuccin/vim/";
   };
 
   chad = buildVimPluginFrom2Nix {
     pname = "chad";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "9565764a38a6ad352b6daaf40aaec1ec6aae67a4";
-      sha256 = "0frcfxnf6zzsslcpslsgpcb04ylxcf50lr3yg0gcap38gwwhna6p";
+      rev = "1efa6229ab08d4620a8aa546bfd5103bd98a74e0";
+      sha256 = "0mksvj0vswg6wbxfrr9rg6miv0kr700z3q8xcrria43rf06la32l";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -12782,12 +12782,12 @@ final: prev:
 
   rose-pine = buildVimPluginFrom2Nix {
     pname = "rose-pine";
-    version = "2022-06-02";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "rose-pine";
       repo = "neovim";
-      rev = "04fb9d3bf29755a0cd6e53373e5750ca78a8d37c";
-      sha256 = "14zdlm3rpfkkg0y94071i6qx4bk3vp2wd2f5v7503mdc3p684amq";
+      rev = "3f0a6c06da29c7b0f3fa49a313ae4d56f0dc58b8";
+      sha256 = "01r34bkfs8kvaw72852sfk5jr1ngg2qf6a3dlpsppkb8l4lwi1k3";
     };
     meta.homepage = "https://github.com/rose-pine/neovim/";
   };
diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix
index a9d89a4f1ed65..f7e1645d707fd 100644
--- a/pkgs/applications/editors/vim/plugins/overrides.nix
+++ b/pkgs/applications/editors/vim/plugins/overrides.nix
@@ -191,6 +191,10 @@ self: super: {
     dependencies = with self; [ nvim-cmp ];
   });
 
+  cmp-nvim-tags = super.cmp-nvim-tags.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp ];
+  });
+
   cmp-pandoc-nvim = super.cmp-pandoc-nvim.overrideAttrs (old: {
     dependencies = with self; [ nvim-cmp pandoc plenary-nvim ];
   });
@@ -212,22 +216,18 @@ self: super: {
     '';
   });
 
-  cmp-nvim-tags = super.cmp-nvim-tags.overrideAttrs (old: {
-    dependencies = with self; [ nvim-cmp ];
-  });
-
   cmp-tmux = super.cmp-tmux.overrideAttrs (old: {
     dependencies = with self; [ nvim-cmp tmux ];
   });
 
-  cmp-vimwiki-tags = super.cmp-vimwiki-tags.overrideAttrs (old: {
-    dependencies = with self; [ nvim-cmp vimwiki ];
-  });
-
   cmp-vim-lsp = super.cmp-vim-lsp.overrideAttrs (old: {
     dependencies = with self; [ nvim-cmp vim-lsp ];
   });
 
+  cmp-vimwiki-tags = super.cmp-vimwiki-tags.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp vimwiki ];
+  });
+
   cmp-zsh = super.cmp-zsh.overrideAttrs (old: {
     dependencies = with self; [ nvim-cmp zsh ];
   });
@@ -328,15 +328,15 @@ self: super: {
     };
   });
 
-  diffview-nvim = super.diffview-nvim.overrideAttrs (oa: {
+  diffview-nvim = super.diffview-nvim.overrideAttrs (old: {
     dependencies = with self; [ plenary-nvim ];
 
     doInstallCheck = true;
     nvimRequireCheck = "diffview";
   });
 
-  direnv-vim = super.direnv-vim.overrideAttrs (oa: {
-    preFixup = oa.preFixup or "" + ''
+  direnv-vim = super.direnv-vim.overrideAttrs (old: {
+    preFixup = old.preFixup or "" + ''
       substituteInPlace $out/autoload/direnv.vim \
         --replace "let s:direnv_cmd = get(g:, 'direnv_cmd', 'direnv')" \
           "let s:direnv_cmd = get(g:, 'direnv_cmd', '${lib.getBin direnv}/bin/direnv')"
@@ -376,7 +376,7 @@ self: super: {
       patches = [
         (substituteAll {
           src = ./patches/fruzzy/get_version.patch;
-          version = old.version;
+          inherit (old) version;
         })
       ];
       configurePhase = ''
@@ -445,31 +445,10 @@ self: super: {
     dependencies = with self; [ plenary-nvim ];
   });
 
-  # plenary-nvim = super.toVimPlugin(luaPackages.plenary-nvim);
-
-  plenary-nvim = super.plenary-nvim.overrideAttrs (old: {
-    postPatch = ''
-      sed -Ei lua/plenary/curl.lua \
-          -e 's@(command\s*=\s*")curl(")@\1${curl}/bin/curl\2@'
-    '';
-
-    doInstallCheck = true;
-    nvimRequireCheck = "plenary";
-  });
-
   gruvbox-nvim = super.gruvbox-nvim.overrideAttrs (old: {
     dependencies = with self; [ lush-nvim ];
   });
 
-  jedi-vim = super.jedi-vim.overrideAttrs (old: {
-    # checking for python3 support in vim would be neat, too, but nobody else seems to care
-    buildInputs = [ python3.pkgs.jedi ];
-    meta = {
-      description = "code-completion for python using python-jedi";
-      license = lib.licenses.mit;
-    };
-  });
-
   himalaya-vim = buildVimPluginFrom2Nix {
     pname = "himalaya-vim";
     inherit (himalaya) src version;
@@ -485,6 +464,15 @@ self: super: {
     '';
   };
 
+  jedi-vim = super.jedi-vim.overrideAttrs (old: {
+    # checking for python3 support in vim would be neat, too, but nobody else seems to care
+    buildInputs = [ python3.pkgs.jedi ];
+    meta = {
+      description = "code-completion for python using python-jedi";
+      license = lib.licenses.mit;
+    };
+  });
+
   LanguageClient-neovim =
     let
       version = "0.1.161";
@@ -659,7 +647,19 @@ self: super: {
     configurePhase = "cd vim";
   });
 
-  parinfer-rust = parinfer-rust;
+  inherit parinfer-rust;
+
+  # plenary-nvim = super.toVimPlugin(luaPackages.plenary-nvim);
+
+  plenary-nvim = super.plenary-nvim.overrideAttrs (old: {
+    postPatch = ''
+      sed -Ei lua/plenary/curl.lua \
+          -e 's@(command\s*=\s*")curl(")@\1${curl}/bin/curl\2@'
+    '';
+
+    doInstallCheck = true;
+    nvimRequireCheck = "plenary";
+  });
 
   range-highlight-nvim = super.range-highlight-nvim.overrideAttrs (old: {
     dependencies = with self; [ cmd-parser-nvim ];
@@ -676,7 +676,7 @@ self: super: {
 
   skim = buildVimPluginFrom2Nix {
     pname = "skim";
-    version = skim.version;
+    inherit (skim) version;
     src = skim.vim;
   };
 
@@ -789,16 +789,16 @@ self: super: {
     dependencies = with self; [ sqlite-lua telescope-nvim ];
   });
 
-  telescope-fzf-writer-nvim = super.telescope-fzf-writer-nvim.overrideAttrs (old: {
-    dependencies = with self; [ telescope-nvim ];
-  });
-
   telescope-fzf-native-nvim = super.telescope-fzf-native-nvim.overrideAttrs (old: {
     dependencies = with self; [ telescope-nvim ];
     buildPhase = "make";
     meta.platforms = lib.platforms.all;
   });
 
+  telescope-fzf-writer-nvim = super.telescope-fzf-writer-nvim.overrideAttrs (old: {
+    dependencies = with self; [ telescope-nvim ];
+  });
+
   telescope-fzy-native-nvim = super.telescope-fzy-native-nvim.overrideAttrs (old: {
     dependencies = with self; [ telescope-nvim ];
     preFixup =
@@ -974,7 +974,7 @@ self: super: {
             libiconv
           ];
 
-          cargoSha256 = "sha256-XmQTRmOO/tyA0F6FQQRxZPcVXCYZkEAiNIzU/ismjc0=";
+          cargoSha256 = "sha256-9Vr1gpggfAQlMgM/s8j6FTTYFppHql2PQ7cPtg1wNmo=";
         };
       in
       ''
@@ -1103,13 +1103,13 @@ self: super: {
 
   vim-markdown-composer =
     let
-      vim-markdown-composer-bin = rustPlatform.buildRustPackage rec {
+      vim-markdown-composer-bin = rustPlatform.buildRustPackage {
         pname = "vim-markdown-composer-bin";
         inherit (super.vim-markdown-composer) src version;
-        cargoSha256 = "0q0i6kyihswrjrfdj4p3z54b779sdg2wz38z943ypj6dqphhcklx";
+        cargoSha256 = "sha256-Vie8vLTplhaVU4E9IohvxERfz3eBpd62m8/1Ukzk8e4=";
       };
     in
-    super.vim-markdown-composer.overrideAttrs (oldAttrs: rec {
+    super.vim-markdown-composer.overrideAttrs (old: {
       preFixup = ''
         substituteInPlace "$out"/after/ftplugin/markdown/composer.vim \
           --replace "s:plugin_root . '/target/release/markdown-composer'" \
@@ -1287,9 +1287,9 @@ self: super: {
       "coc-smartf"
       "coc-snippets"
       "coc-solargraph"
+      "coc-sqlfluff"
       "coc-stylelint"
       "coc-sumneko-lua"
-      "coc-sqlfluff"
       "coc-tabnine"
       "coc-texlab"
       "coc-toml"
diff --git a/pkgs/applications/editors/vim/plugins/update.py b/pkgs/applications/editors/vim/plugins/update.py
index f63bd867f3682..1214e36372a62 100755
--- a/pkgs/applications/editors/vim/plugins/update.py
+++ b/pkgs/applications/editors/vim/plugins/update.py
@@ -116,13 +116,7 @@ class VimEditor(pluginupdate.Editor):
 def main():
 
     global luaPlugins
-
-    # whitelist
-    luaPlugins = run_nix_expr(GET_PLUGINS_LUA) + [
-        "diffview-nvim",
-        "marks-nvim",
-        "nvim-biscuits"
-    ]
+    luaPlugins = run_nix_expr(GET_PLUGINS_LUA)
 
     editor = VimEditor("vim", ROOT, GET_PLUGINS)
     parser = editor.create_parser()
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index abd8419c49ba8..d4a542bb99e4e 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -1041,6 +1041,22 @@ let
         };
       };
 
+      grapecity.gc-excelviewer = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "gc-excelviewer";
+          publisher = "grapecity";
+          version = "4.2.55";
+          sha256 = "sha256-yHl6ZTGIKOEsqmyeYtgDUhNAN9uRpoFApA7FKkPWW3E=";
+        };
+        meta = with lib; {
+          description = "Edit Excel spreadsheets and CSV files in Visual Studio Code and VS Code for the Web";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=grapecity.gc-excelviewer";
+          homepage = "https://github.com/jjuback/gc-excelviewer";
+          license = licenses.mit;
+          maintainers = with maintainers; [ kamadorueda ];
+        };
+      };
+
       humao.rest-client = buildVscodeMarketplaceExtension {
         mktplcRef = {
           publisher = "humao";
@@ -1286,8 +1302,8 @@ let
         mktplcRef = {
           name = "latex-workshop";
           publisher = "James-Yu";
-          version = "8.23.0";
-          sha256 = "sha256-IHLsAuTi+GBZViL2KozudebNY745RiOYNATzabQfnOY=";
+          version = "8.27.2";
+          sha256 = "sha256-scvT6cjlMrfG4yrhWlUwGM7ozu1E0xAryPRpV7FGCas=";
         };
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/James-Yu.latex-workshop/changelog";
@@ -1495,6 +1511,23 @@ let
         };
       };
 
+      mattn.lisp = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "lisp";
+          publisher = "mattn";
+          version = "0.1.12";
+          sha256 = "sha256-x6aFrcX0YElEFEr0qA669/LPlab15npmXd5Q585pIEw=";
+        };
+        meta = with lib; {
+          description = "Lisp syntax for vscode";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=mattn.lisp";
+          homepage = "https://github.com/mattn/vscode-lisp";
+          changelog = "https://marketplace.visualstudio.com/items/mattn.lisp/changelog";
+          license = licenses.mit;
+          maintainers = with maintainers; [ kamadorueda ];
+        };
+      };
+
       mhutchie.git-graph = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "git-graph";
@@ -2369,8 +2402,8 @@ let
         mktplcRef = {
           name = "vim";
           publisher = "vscodevim";
-          version = "1.21.5";
-          sha256 = "1v1xs1wcigisr6xip31i02cfryxrb157sla34y59pwlnhc5x1gny";
+          version = "1.22.2";
+          sha256 = "sha256-dtIlgODzRdoMKnG9050ZcCX3w15A/R3FaMc+ZylvBbU=";
         };
         meta = {
           license = lib.licenses.mit;
diff --git a/pkgs/applications/emulators/atari800/default.nix b/pkgs/applications/emulators/atari800/default.nix
index 37e0d83f14060..c1f685827047a 100644
--- a/pkgs/applications/emulators/atari800/default.nix
+++ b/pkgs/applications/emulators/atari800/default.nix
@@ -4,13 +4,13 @@
 with lib;
 stdenv.mkDerivation rec {
   pname = "atari800";
-  version = "4.2.0";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "atari800";
     repo = "atari800";
     rev = "ATARI800_${replaceChars ["."] ["_"] version}";
-    sha256 = "15l08clqqayi9izrgsz9achan6gl4x57wqsc8mad3yn0xayzz3qy";
+    sha256 = "sha256-+eJXhqPyU0GhmzF7DbteTXzEnn5klCor9Io/UgXQfQg=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/applications/emulators/kega-fusion/default.nix b/pkgs/applications/emulators/kega-fusion/default.nix
index e8feb1ea7ed50..1b95dec89face 100644
--- a/pkgs/applications/emulators/kega-fusion/default.nix
+++ b/pkgs/applications/emulators/kega-fusion/default.nix
@@ -72,6 +72,7 @@ in stdenv.mkDerivation {
     description = "Sega SG1000, SC3000, SF7000, Master System, Game Gear, Genesis/Megadrive, SVP, Pico, SegaCD/MegaCD and 32X emulator";
     homepage = "https://www.carpeludum.com/kega-fusion/";
     maintainers = with maintainers; [ abbradar ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     platforms = [ "i686-linux" ];
   };
diff --git a/pkgs/applications/emulators/wine/base.nix b/pkgs/applications/emulators/wine/base.nix
index 7788b13b4ecb5..e3875e130a189 100644
--- a/pkgs/applications/emulators/wine/base.nix
+++ b/pkgs/applications/emulators/wine/base.nix
@@ -191,6 +191,10 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
     inherit version;
     homepage = "https://www.winehq.org/";
     license = with lib.licenses; [ lgpl21Plus ];
+    sourceProvenance = with lib.sourceTypes; [
+      fromSource
+      binaryNativeCode  # mono, gecko
+    ];
     description = if supportFlags.waylandSupport then "An Open Source implementation of the Windows API on top of OpenGL and Unix (with experimental Wayland support)" else "An Open Source implementation of the Windows API on top of X, OpenGL, and Unix";
     platforms = if supportFlags.waylandSupport then (lib.remove "x86_64-darwin" prevPlatforms) else prevPlatforms;
     maintainers = with lib.maintainers; [ avnik raskin bendlas jmc-figueira ];
diff --git a/pkgs/applications/finance/cryptowatch/default.nix b/pkgs/applications/finance/cryptowatch/default.nix
index 09531e4650e8f..4bf7a1a0b4f35 100644
--- a/pkgs/applications/finance/cryptowatch/default.nix
+++ b/pkgs/applications/finance/cryptowatch/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
     homepage = "https://cryptowat.ch";
     description = "Application for visualising real-time cryptocurrency market data";
     platforms = platforms.linux;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ livnev ];
   };
diff --git a/pkgs/applications/gis/qgis/unwrapped-ltr.nix b/pkgs/applications/gis/qgis/unwrapped-ltr.nix
index e6bf2250b64a3..0ad11bc630bf9 100644
--- a/pkgs/applications/gis/qgis/unwrapped-ltr.nix
+++ b/pkgs/applications/gis/qgis/unwrapped-ltr.nix
@@ -69,14 +69,14 @@ let
     six
   ];
 in mkDerivation rec {
-  version = "3.22.6";
+  version = "3.22.8";
   pname = "qgis-ltr-unwrapped";
 
   src = fetchFromGitHub {
     owner = "qgis";
     repo = "QGIS";
     rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "sha256-ACNEIU+kYmOa+/1nbFPTSDgyvviXqKP9kvL6aRykueY=";
+    sha256 = "sha256-YxF7FzyNNt+bdk96g2sWWv9haqV0L6Ab96D0hV0BFrA=";
   };
 
   passthru = {
diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix
index 32ee893cbaa17..1c46cd81f65ab 100644
--- a/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/pkgs/applications/gis/qgis/unwrapped.nix
@@ -69,14 +69,14 @@ let
     six
   ];
 in mkDerivation rec {
-  version = "3.24.2";
+  version = "3.26.0";
   pname = "qgis-unwrapped";
 
   src = fetchFromGitHub {
     owner = "qgis";
     repo = "QGIS";
     rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "sha256-skoepsX9xREqN5SoA4eUN7LKa6KGvixPd5k0KKXzKJo=";
+    sha256 = "sha256-yHQi5ai7fdgznTf562Bj0QPE+SXg972O7+r01RY7itE=";
   };
 
   passthru = {
diff --git a/pkgs/applications/gis/udig/default.nix b/pkgs/applications/gis/udig/default.nix
index b939cf05e754a..808b70ed5ec93 100644
--- a/pkgs/applications/gis/udig/default.nix
+++ b/pkgs/applications/gis/udig/default.nix
@@ -18,6 +18,7 @@ let
   meta = with lib; {
     description = "User-friendly Desktop Internet GIS";
     homepage = "http://udig.refractions.net/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = with licenses; [ epl10 bsd3 ];
     maintainers = with maintainers; [ sikmir ];
     platforms = builtins.attrNames srcs;
diff --git a/pkgs/applications/graphics/avocode/default.nix b/pkgs/applications/graphics/avocode/default.nix
index 4d2db993b8d1f..a6a3563743b36 100644
--- a/pkgs/applications/graphics/avocode/default.nix
+++ b/pkgs/applications/graphics/avocode/default.nix
@@ -99,6 +99,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://avocode.com/";
     description = "The bridge between designers and developers";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ megheaiulian ];
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index 08cd0aad8156e..85d201f32dcd8 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -95,6 +95,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A desktop application for creating diagrams";
     homepage = "https://about.draw.io/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
     maintainers = with maintainers; [ darkonion0 ];
diff --git a/pkgs/applications/graphics/fiji/default.nix b/pkgs/applications/graphics/fiji/default.nix
index 270132eca940a..039eb45a29670 100644
--- a/pkgs/applications/graphics/fiji/default.nix
+++ b/pkgs/applications/graphics/fiji/default.nix
@@ -66,7 +66,10 @@ stdenv.mkDerivation rec {
     homepage = "https://imagej.net/software/fiji/";
     description = "batteries-included distribution of ImageJ2, bundling a lot of plugins which facilitate scientific image analysis";
     platforms = [ "x86_64-linux" ];
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = with lib.licenses; [ gpl2Plus gpl3Plus bsd2 publicDomain ];
     maintainers = with maintainers; [ zane ];
   };
diff --git a/pkgs/applications/graphics/freecad/default.nix b/pkgs/applications/graphics/freecad/default.nix
index 8f5404cf3ae92..c05f3502aec32 100644
--- a/pkgs/applications/graphics/freecad/default.nix
+++ b/pkgs/applications/graphics/freecad/default.nix
@@ -48,13 +48,13 @@
 
 mkDerivation rec {
   pname = "freecad";
-  version = "0.19.2";
+  version = "0.20";
 
   src = fetchFromGitHub {
     owner = "FreeCAD";
     repo = "FreeCAD";
     rev = version;
-    hash = "sha256-XZ+fRl3CPCIFu3nHeMTLibwwFBlG/cWpKJlI58hTAuU=";
+    hash = "sha256-Em4XVxDfvVG1Kf7q+6uHNA/VcMGLKMTv5TCh2XF/BtQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/kodelife/default.nix b/pkgs/applications/graphics/kodelife/default.nix
index 1c4609ac55b73..6286e64e3efe8 100644
--- a/pkgs/applications/graphics/kodelife/default.nix
+++ b/pkgs/applications/graphics/kodelife/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://hexler.net/products/kodelife";
     description = "Real-time GPU shader editor";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ prusnak ];
     platforms = [ "aarch64-linux" "armv7l-linux" "x86_64-linux" ];
diff --git a/pkgs/applications/graphics/lightburn/default.nix b/pkgs/applications/graphics/lightburn/default.nix
index 05a99527e5f71..50b1cb37ffaf2 100644
--- a/pkgs/applications/graphics/lightburn/default.nix
+++ b/pkgs/applications/graphics/lightburn/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Layout, editing, and control software for your laser cutter";
     homepage = "https://lightburnsoftware.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ q3k ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/graphics/lorien/default.nix b/pkgs/applications/graphics/lorien/default.nix
new file mode 100644
index 0000000000000..e3e8daf876622
--- /dev/null
+++ b/pkgs/applications/graphics/lorien/default.nix
@@ -0,0 +1,124 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+
+, copyDesktopItems
+, makeDesktopItem
+
+, godot-export-templates
+, godot-headless
+
+, alsa-lib
+, libGL
+, libGLU
+, libX11
+, libXcursor
+, libXext
+, libXfixes
+, libXi
+, libXinerama
+, libXrandr
+, libXrender
+, zlib
+, udev # for libudev
+}:
+
+let
+  preset =
+    if stdenv.isLinux then "Linux/X11"
+    else if stdenv.isDarwin then "Mac OSX"
+    else throw "unsupported platform";
+in
+stdenv.mkDerivation rec {
+  pname = "lorien";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "mbrlabs";
+    repo = "Lorien";
+    rev = "v${version}";
+    sha256 = "sha256-x81Obana2BEGrYSoJHDdCkL6UaULfQGQ94tlrH5+kdY=";
+  };
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    godot-headless
+  ];
+
+  buildInputs = [
+    alsa-lib
+    libGL
+    libGLU
+    libX11
+    libXcursor
+    libXext
+    libXfixes
+    libXi
+    libXinerama
+    libXrandr
+    libXrender
+    zlib
+    udev
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "lorien";
+      exec = "lorien";
+      icon = "lorien";
+      desktopName = "Lorien";
+      genericName = "Whiteboard";
+      comment = meta.description;
+      categories = [ "Graphics" "Office" ];
+      keywords = [ "whiteboard" ];
+    })
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    # Cannot create file '/homeless-shelter/.config/godot/projects/...'
+    export HOME=$TMPDIR
+
+    # Link the export-templates to the expected location. The --export commands
+    # expects the template-file at .../templates/{godot-version}.stable/linux_x11_64_release
+    mkdir -p $HOME/.local/share/godot
+    ln -s ${godot-export-templates}/share/godot/templates $HOME/.local/share/godot
+
+    mkdir -p $out/share/lorien
+
+    godot-headless --path lorien --export "${preset}" $out/share/lorien/lorien
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    ln -s $out/share/lorien/lorien $out/bin
+
+    # Patch binaries.
+    interpreter=$(cat $NIX_CC/nix-support/dynamic-linker)
+    patchelf \
+      --set-interpreter $interpreter \
+      --set-rpath ${lib.makeLibraryPath buildInputs} \
+      $out/share/lorien/lorien
+
+    install -Dm644 images/lorien.png $out/share/pixmaps/lorien.png
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/mbrlabs/Lorien";
+    description = "An infinite canvas drawing/note-taking app";
+    longDescription = ''
+      An infinite canvas drawing/note-taking app that is focused on performance,
+      small savefiles and simplicity
+    '';
+    license = licenses.mit;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ hqurve ];
+  };
+}
diff --git a/pkgs/applications/graphics/odafileconverter/default.nix b/pkgs/applications/graphics/odafileconverter/default.nix
index b99902954572a..3a089febc3df3 100644
--- a/pkgs/applications/graphics/odafileconverter/default.nix
+++ b/pkgs/applications/graphics/odafileconverter/default.nix
@@ -46,6 +46,7 @@ in mkDerivation {
   meta = with lib; {
     description = "For converting between different versions of .dwg and .dxf";
     homepage = "https://www.opendesign.com/guestfiles/oda_file_converter";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ nagisa ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/graphics/panotools/default.nix b/pkgs/applications/graphics/panotools/default.nix
index 52351fab4ce58..dbc5b973fe9c0 100644
--- a/pkgs/applications/graphics/panotools/default.nix
+++ b/pkgs/applications/graphics/panotools/default.nix
@@ -1,15 +1,16 @@
-{ fetchurl, lib, stdenv, libjpeg, libpng, libtiff, perl }:
+{ fetchurl, lib, stdenv, libjpeg, libpng, libtiff, perl, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "libpano13";
-  version = "2.9.20";
+  version = "2.9.21";
 
   src = fetchurl {
     url = "mirror://sourceforge/panotools/${pname}-${version}.tar.gz";
-    sha256 = "12cv4886l1czfjwy7k6ipgf3zjksgwhdjzr2s9fdg33vqcv2hlrv";
+    sha256 = "sha256-eeWhRSGZMF4pYUYnIO9ZQRUnecEnxblvw0DSSS5jNZA=";
   };
 
   buildInputs = [ perl libjpeg libpng libtiff ];
+  nativeBuildInputs = [ cmake ];
 
   # one of the tests succeeds on my machine but fails on Hydra (no idea why)
   #doCheck = true;
diff --git a/pkgs/applications/graphics/pencil/default.nix b/pkgs/applications/graphics/pencil/default.nix
index 5c5557d6d6016..ffd31bf7325ac 100644
--- a/pkgs/applications/graphics/pencil/default.nix
+++ b/pkgs/applications/graphics/pencil/default.nix
@@ -99,6 +99,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "GUI prototyping/mockup tool";
     homepage    = "https://pencil.evolus.vn/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.gpl2; # Commercial license is also available
     maintainers = with maintainers; [ bjornfor prikhi mrVanDalo ];
     platforms   = platforms.linux;
diff --git a/pkgs/applications/graphics/pixeluvo/default.nix b/pkgs/applications/graphics/pixeluvo/default.nix
index 0c90b786baca9..f3b40b515183a 100644
--- a/pkgs/applications/graphics/pixeluvo/default.nix
+++ b/pkgs/applications/graphics/pixeluvo/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A Beautifully Designed Image and Photo Editor for Windows and Linux";
     homepage = "http://www.pixeluvo.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ wolfangaukang ];
diff --git a/pkgs/applications/graphics/pixinsight/default.nix b/pkgs/applications/graphics/pixinsight/default.nix
index 6a59af40cc18e..f54aef75ac15a 100644
--- a/pkgs/applications/graphics/pixinsight/default.nix
+++ b/pkgs/applications/graphics/pixinsight/default.nix
@@ -124,6 +124,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Scientific image processing program for astrophotography";
     homepage = "https://pixinsight.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = [ maintainers.sheepforce ];
diff --git a/pkgs/applications/graphics/sane/backends/brscan4/default.nix b/pkgs/applications/graphics/sane/backends/brscan4/default.nix
index ea70224a932a0..ec8efcc27c2a6 100644
--- a/pkgs/applications/graphics/sane/backends/brscan4/default.nix
+++ b/pkgs/applications/graphics/sane/backends/brscan4/default.nix
@@ -89,6 +89,7 @@ stdenv.mkDerivation rec {
     description = "Brother brscan4 sane backend driver";
     homepage = "http://www.brother.com";
     platforms = [ "i686-linux" "x86_64-linux" ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ jraygauthier ];
   };
diff --git a/pkgs/applications/graphics/sane/backends/brscan5/default.nix b/pkgs/applications/graphics/sane/backends/brscan5/default.nix
index 4d276bd57bc3d..59daa9eb09ab8 100644
--- a/pkgs/applications/graphics/sane/backends/brscan5/default.nix
+++ b/pkgs/applications/graphics/sane/backends/brscan5/default.nix
@@ -102,6 +102,7 @@ stdenv.mkDerivation rec {
     description = "Brother brscan5 sane backend driver";
     homepage = "https://www.brother.com";
     platforms = [ "i686-linux" "x86_64-linux" ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ mattchrist ];
   };
diff --git a/pkgs/applications/graphics/sane/backends/dsseries/default.nix b/pkgs/applications/graphics/sane/backends/dsseries/default.nix
index 8a01f70c6b00f..93e179d867d93 100644
--- a/pkgs/applications/graphics/sane/backends/dsseries/default.nix
+++ b/pkgs/applications/graphics/sane/backends/dsseries/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
     description = "Brother DSSeries SANE backend driver";
     homepage = "http://www.brother.com";
     platforms = lib.platforms.linux;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ callahad ];
   };
diff --git a/pkgs/applications/graphics/solvespace/default.nix b/pkgs/applications/graphics/solvespace/default.nix
index 68744831538c4..e0605ad81e43f 100644
--- a/pkgs/applications/graphics/solvespace/default.nix
+++ b/pkgs/applications/graphics/solvespace/default.nix
@@ -7,6 +7,7 @@
 , at-spi2-core
 , cairo
 , dbus
+, eigen
 , freetype
 , fontconfig
 , glew
@@ -18,6 +19,7 @@
 , libpng
 , libselinux
 , libsepol
+, libspnav
 , libthai
 , libxkbcommon
 , pangomm
@@ -29,13 +31,13 @@
 
 stdenv.mkDerivation rec {
   pname = "solvespace";
-  version = "3.0";
+  version = "3.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-aaYqUZ0c1lCL91fmxtKFAAE2uUWrjnDB3WdcqdutXhE=";
+    hash = "sha256-sSDht8pBrOG1YpsWfC/CLTTWh2cI5pn2PXGH900Z0yA=";
     fetchSubmodules = true;
   };
 
@@ -49,6 +51,7 @@ stdenv.mkDerivation rec {
     at-spi2-core
     cairo
     dbus
+    eigen
     freetype
     fontconfig
     glew
@@ -60,6 +63,7 @@ stdenv.mkDerivation rec {
     libpng
     libselinux
     libsepol
+    libspnav
     libthai
     libxkbcommon
     pangomm
diff --git a/pkgs/applications/graphics/unigine-heaven/default.nix b/pkgs/applications/graphics/unigine-heaven/default.nix
index 2ce05a52812ef..1677e4d65eef4 100644
--- a/pkgs/applications/graphics/unigine-heaven/default.nix
+++ b/pkgs/applications/graphics/unigine-heaven/default.nix
@@ -100,6 +100,7 @@ stdenv.mkDerivation
     {
       description = "The Unigine Heaven GPU benchmarking tool";
       homepage = "https://benchmark.unigine.com/heaven";
+      sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
       license = lib.licenses.unfree;
       maintainers = [ lib.maintainers.BarinovMaxim ];
       platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/graphics/unigine-sanctuary/default.nix b/pkgs/applications/graphics/unigine-sanctuary/default.nix
index 25d10d6166783..4b3f3ab547c66 100644
--- a/pkgs/applications/graphics/unigine-sanctuary/default.nix
+++ b/pkgs/applications/graphics/unigine-sanctuary/default.nix
@@ -90,6 +90,7 @@ stdenv.mkDerivation rec{
   meta = {
     description = "The Unigine Heaven GPU benchmarking tool";
     homepage = "https://benchmark.unigine.com/sanctuary";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.BarinovMaxim ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/graphics/unigine-superposition/default.nix b/pkgs/applications/graphics/unigine-superposition/default.nix
index 768089d1a0c4f..b1261bb52f23f 100644
--- a/pkgs/applications/graphics/unigine-superposition/default.nix
+++ b/pkgs/applications/graphics/unigine-superposition/default.nix
@@ -139,6 +139,7 @@ buildFHSUserEnv {
   meta = {
     description = "The Unigine Superposition GPU benchmarking tool";
     homepage = "https://benchmark.unigine.com/superposition";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.BarinovMaxim ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/graphics/unigine-tropics/default.nix b/pkgs/applications/graphics/unigine-tropics/default.nix
index 1057c2fa6cad7..f0d5101b4be02 100644
--- a/pkgs/applications/graphics/unigine-tropics/default.nix
+++ b/pkgs/applications/graphics/unigine-tropics/default.nix
@@ -88,6 +88,7 @@ stdenv.mkDerivation {
   meta = {
     description = "The Unigine Heaven GPU benchmarking tool";
     homepage = "https://benchmark.unigine.com/tropics";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.BarinovMaxim ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/graphics/unigine-valley/default.nix b/pkgs/applications/graphics/unigine-valley/default.nix
index 9b51373178e44..ee1c9e6c15f89 100644
--- a/pkgs/applications/graphics/unigine-valley/default.nix
+++ b/pkgs/applications/graphics/unigine-valley/default.nix
@@ -128,6 +128,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "The Unigine Valley GPU benchmarking tool";
     homepage = "https://unigine.com/products/benchmarks/valley/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree; # see also: $out/$instPath/documentation/License.pdf
     maintainers = [ lib.maintainers.kierdavis ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/graphics/vengi-tools/default.nix b/pkgs/applications/graphics/vengi-tools/default.nix
index eb5033a4a97c4..fb44d36f62a6d 100644
--- a/pkgs/applications/graphics/vengi-tools/default.nix
+++ b/pkgs/applications/graphics/vengi-tools/default.nix
@@ -29,13 +29,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vengi-tools";
-  version = "0.0.18";
+  version = "0.0.20";
 
   src = fetchFromGitHub {
     owner = "mgerhardy";
     repo = "vengi";
     rev = "v${version}";
-    sha256 = "sha256-Ur1X5FhOa87jbjWBXievBfCHW+qP/8bqLiyKAC8+KU4=";
+    sha256 = "sha256-WsG6mjO90QQNsAarxdupZvXubdy06JjQmVYUzygl8l4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/write_stylus/default.nix b/pkgs/applications/graphics/write_stylus/default.nix
index ca8cebb2ec0c6..be20635c50018 100644
--- a/pkgs/applications/graphics/write_stylus/default.nix
+++ b/pkgs/applications/graphics/write_stylus/default.nix
@@ -54,6 +54,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.styluslabs.com/";
     description = "Write is a word processor for handwriting";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = platforms.linux;
     license = lib.licenses.unfree;
     maintainers = with maintainers; [ oyren ];
diff --git a/pkgs/applications/misc/1password-gui/beta.nix b/pkgs/applications/misc/1password-gui/beta.nix
index 306a914dc19eb..9f0d9d62e053b 100644
--- a/pkgs/applications/misc/1password-gui/beta.nix
+++ b/pkgs/applications/misc/1password-gui/beta.nix
@@ -129,6 +129,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Multi-platform password manager";
     homepage = "https://1password.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ timstott savannidgerinel maxeaubrey sebtm ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/1password-gui/default.nix b/pkgs/applications/misc/1password-gui/default.nix
index 7ffc4a5fc7fac..e39450e5bef07 100644
--- a/pkgs/applications/misc/1password-gui/default.nix
+++ b/pkgs/applications/misc/1password-gui/default.nix
@@ -131,6 +131,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Multi-platform password manager";
     homepage = "https://1password.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ timstott savannidgerinel maxeaubrey sebtm ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix
index 6231e62bc2dcb..0d18b3dd37a3e 100644
--- a/pkgs/applications/misc/1password/default.nix
+++ b/pkgs/applications/misc/1password/default.nix
@@ -12,12 +12,12 @@ let
     if extension == "zip" then fetchzip args else fetchurl args;
 
   pname = "1password-cli";
-  version = "2.4.1";
+  version = "2.5.1";
   sources = rec {
-    aarch64-linux = fetch "linux_arm64" "sha256-ANRYE1BoezrcDxZrQYp/OPdtn4J+FmC/PLSIP5Amm18=" "zip";
-    i686-linux = fetch "linux_386" "sha256-w3anr76uj/Z+ilZ+LUGOB1CoKkvxcD+v8c8lVADPwRY=" "zip";
-    x86_64-linux = fetch "linux_amd64" "sha256-axZ+XDIMJlAicnYTIXgcaoT+Zcg6xvHlchl/ng7V9GY=" "zip";
-    aarch64-darwin = fetch "apple_universal" "sha256-/DnrQ4fwbc2ELtsEClvzA9kTrse3pMgGLbhiKZ3gphA=" "pkg";
+    aarch64-linux = fetch "linux_arm64" "sha256-HZ6AVheJrw9ZR9HGWbB6/kCzbrfYcwApa2z18tDBo1k=" "zip";
+    i686-linux = fetch "linux_386" "sha256-aG6oW0epF+P9pSWMlTStSbBynBDkGX1B+0NHUnwLRhs=" "zip";
+    x86_64-linux = fetch "linux_amd64" "sha256-7GkBVcvXM/WZiXEiIbYh9lS0f4BS4Hc4RCVjr8FoW8A=" "zip";
+    aarch64-darwin = fetch "apple_universal" "sha256-XebD33fX15RsFUdbV+DvMRIi1MSyMfIRC3JOwcmi8kk=" "pkg";
     x86_64-darwin = aarch64-darwin;
   };
   platforms = builtins.attrNames sources;
@@ -48,6 +48,7 @@ stdenv.mkDerivation {
   '';
 
   postInstall = ''
+    HOME=$TMPDIR
     installShellCompletion --cmd ${mainProgram} \
       --bash <($out/bin/${mainProgram} completion bash) \
       --fish <($out/bin/${mainProgram} completion fish) \
@@ -67,6 +68,7 @@ stdenv.mkDerivation {
     homepage = "https://developer.1password.com/docs/cli/";
     downloadPage = "https://app-updates.agilebits.com/product_history/CLI2";
     maintainers = with maintainers; [ joelburget marsam ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     inherit mainProgram platforms;
   };
diff --git a/pkgs/applications/misc/ArchiSteamFarm/web-ui/default.nix b/pkgs/applications/misc/ArchiSteamFarm/web-ui/default.nix
index bbe37b5ed743b..fdd2970fdac7b 100644
--- a/pkgs/applications/misc/ArchiSteamFarm/web-ui/default.nix
+++ b/pkgs/applications/misc/ArchiSteamFarm/web-ui/default.nix
@@ -27,7 +27,8 @@ in
     postInstall = ''
       patchShebangs node_modules/
       npm run build
-      ln -s $out/lib/node_modules/asf-ui/dist $out/lib/dist
+      cp -r $out/lib/node_modules/asf-ui/dist $out/lib/dist
+      rm -rf $out/lib/node_modules/
     '';
 
     meta = with lib; {
diff --git a/pkgs/applications/misc/adobe-reader/default.nix b/pkgs/applications/misc/adobe-reader/default.nix
index 2bce30365f08c..1a164f578a016 100644
--- a/pkgs/applications/misc/adobe-reader/default.nix
+++ b/pkgs/applications/misc/adobe-reader/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Adobe Reader, a viewer for PDF documents";
     homepage = "http://www.adobe.com/products/reader";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     knownVulnerabilities = [
       "Numerous unresolved vulnerabilities"
diff --git a/pkgs/applications/misc/anytype/default.nix b/pkgs/applications/misc/anytype/default.nix
index 07cbee42694d9..6e28c58798e79 100644
--- a/pkgs/applications/misc/anytype/default.nix
+++ b/pkgs/applications/misc/anytype/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "anytype";
-  version = "0.25.4";
+  version = "0.26.1";
   name = "Anytype-${version}";
   nameExecutable = pname;
   src = fetchurl {
     url = "https://at9412003.fra1.digitaloceanspaces.com/Anytype-${version}.AppImage";
     name = "Anytype-${version}.AppImage";
-    sha256 = "sha256-v6Zecv/m1GvPJk/SmLlxHFyeYbNbIB+x17+AKCI45AM=";
+    sha256 = "sha256-lPzeYZzerFa0T77uaavvBQkMn4PUEfVj4SPlErqM9DI=";
   };
   appimageContents = appimageTools.extractType2 { inherit name src; };
 in
diff --git a/pkgs/applications/misc/authy/default.nix b/pkgs/applications/misc/authy/default.nix
index c448b86d0c4d0..ca243f4437071 100644
--- a/pkgs/applications/misc/authy/default.nix
+++ b/pkgs/applications/misc/authy/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.authy.com";
     description = "Twilio Authy two factor authentication desktop application";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ iammrinal0 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/azuredatastudio/default.nix b/pkgs/applications/misc/azuredatastudio/default.nix
index aa7150bb6b0b5..0261f983ac79d 100644
--- a/pkgs/applications/misc/azuredatastudio/default.nix
+++ b/pkgs/applications/misc/azuredatastudio/default.nix
@@ -166,6 +166,7 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ xavierzwirtz ];
     description = "A data management tool that enables working with SQL Server, Azure SQL DB and SQL DW";
     homepage = "https://docs.microsoft.com/en-us/sql/azure-data-studio/download-azure-data-studio";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfreeRedistributable;
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/misc/binance/default.nix b/pkgs/applications/misc/binance/default.nix
index d5d6f6b5358ea..15e3c51e9ad4c 100644
--- a/pkgs/applications/misc/binance/default.nix
+++ b/pkgs/applications/misc/binance/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "binance";
-  version = "1.35.0";
+  version = "1.36.0";
 
   src = fetchurl {
     url = "https://github.com/binance/desktop/releases/download/v${version}/${pname}-${version}-amd64-linux.deb";
-    sha256 = "sha256-6c7nrdViunnvPqqbt5/LQp2iS4EgZOCQ9PLcG+bY1YQ=";
+    sha256 = "sha256-Q1cvEQ/yxytzrPfiyeTZSCPecnmSdhy+ds/gtie4vwo=";
   };
 
   nativeBuildInputs = [
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Binance Cryptoexchange Official Desktop Client";
     homepage = "https://www.binance.com/en/desktop-download";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/confclerk/default.nix b/pkgs/applications/misc/confclerk/default.nix
index fb89d2a7e373d..84095c4165417 100644
--- a/pkgs/applications/misc/confclerk/default.nix
+++ b/pkgs/applications/misc/confclerk/default.nix
@@ -1,22 +1,20 @@
-{ lib, stdenv, fetchurl, qt4, qmake4Hook }:
+{ lib, mkDerivation, fetchurl, qtbase, qmake }:
 
-let version = "0.6.4"; in
-stdenv.mkDerivation {
+mkDerivation rec {
   pname = "confclerk";
-  inherit version;
+  version = "0.7.1";
 
   src = fetchurl {
     url = "https://www.toastfreeware.priv.at/tarballs/confclerk/confclerk-${version}.tar.gz";
-    sha256 = "10rhg44px4nvbkd3p341cmp2ds43jn8r4rvgladda9v8zmsgr2b3";
+    sha256 = "0l5i4d6lymh0k6gzihs41x4i8v1dz0mrwpga096af0vchpvlcarg";
   };
 
-  buildInputs = [ qt4 ];
+  buildInputs = [ qtbase ];
+  nativeBuildInputs = [ qmake ];
 
-  nativeBuildInputs = [ qmake4Hook ];
-
-  installPhase = ''
+  postInstall = ''
     mkdir -p $out/bin
-    cp src/bin/confclerk $out/bin
+    mv $out/confclerk $out/bin/
   '';
 
   meta = {
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index 3f54826fc52af..abde33b730c03 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -127,6 +127,10 @@
       PostgreSQL, MariaDB, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access,
       Teradata, Firebird, Derby, etc.
     '';
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryBytecode  # dependencies from maven
+    ];
     license = licenses.asl20;
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
     maintainers = with maintainers; [ jojosch mkg20001 ];
diff --git a/pkgs/applications/misc/debian-goodies/default.nix b/pkgs/applications/misc/debian-goodies/default.nix
index 20d47e204f7cc..560afe32b8a19 100644
--- a/pkgs/applications/misc/debian-goodies/default.nix
+++ b/pkgs/applications/misc/debian-goodies/default.nix
@@ -10,14 +10,14 @@
 
 stdenv.mkDerivation rec {
   pname = "debian-goodies";
-  version = "0.87";
+  version = "0.88";
 
   src = fetchFromGitLab {
     domain = "salsa.debian.org";
     owner = "debian";
     repo = "debian-goodies";
     rev = "debian/${version}";
-    sha256 = "sha256-7O2AY7tWYiOIy4ImFBxWu6S+ljc3VmqS/j4KyEzVVIA=";
+    sha256 = "sha256-SDGWRGwRuryCJSWjuYB+Cg/Pl8q4VP4zcisUOn/GhJY=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/misc/etesync-dav/default.nix b/pkgs/applications/misc/etesync-dav/default.nix
index 42d16c3eaf815..1c590451a9b86 100644
--- a/pkgs/applications/misc/etesync-dav/default.nix
+++ b/pkgs/applications/misc/etesync-dav/default.nix
@@ -46,12 +46,15 @@ in python.pkgs.buildPythonApplication rec {
   };
 
   propagatedBuildInputs = with python.pkgs; [
+    appdirs
     etebase
     etesync
     flask
     flask-wtf
+    msgpack
     (python.pkgs.toPythonModule (radicale3.override { python3 = python; }))
-  ];
+    requests
+  ] ++ requests.optional-dependencies.socks;
 
   doCheck = false;
 
diff --git a/pkgs/applications/misc/foxitreader/default.nix b/pkgs/applications/misc/foxitreader/default.nix
index b206d14323b1c..c6ed7bc1ad3ff 100644
--- a/pkgs/applications/misc/foxitreader/default.nix
+++ b/pkgs/applications/misc/foxitreader/default.nix
@@ -73,6 +73,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "A viewer for PDF documents";
     homepage = "https://www.foxitsoftware.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ p-h rhoriguchi ];
diff --git a/pkgs/applications/misc/gometer/default.nix b/pkgs/applications/misc/gometer/default.nix
index 9b335b1aedae4..8c68f8672c3b5 100644
--- a/pkgs/applications/misc/gometer/default.nix
+++ b/pkgs/applications/misc/gometer/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Analytic-Tracking tool for GoLance";
     homepage = "https://golance.com/download-gometer";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ wolfangaukang ];
   };
diff --git a/pkgs/applications/misc/googleearth-pro/default.nix b/pkgs/applications/misc/googleearth-pro/default.nix
index 950cb236ecbfa..dd6964318e77d 100644
--- a/pkgs/applications/misc/googleearth-pro/default.nix
+++ b/pkgs/applications/misc/googleearth-pro/default.nix
@@ -115,6 +115,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "A world sphere viewer";
     homepage = "https://www.google.com/earth/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ friedelino shamilton ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index fa85ad367ec26..7ce85dc6f7678 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, qmake, qttools, qttranslations, qtlocation, wrapQtAppsHook, substituteAll }:
+{ lib, stdenv, fetchFromGitHub, qmake, qttools, qttranslations, qtlocation, qtpbfimageplugin, wrapQtAppsHook, substituteAll }:
 
 stdenv.mkDerivation rec {
   pname = "gpxsee";
-  version = "11.0";
+  version = "11.1";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    sha256 = "sha256-UT3Q7pirEXvwQmqHHiSivX/VNZPVLwRJ/aiP7wpkhqQ=";
+    sha256 = "sha256-0n1XPrJ+gssIP/7k9CI8AWXs9ddKOg3Lo3DfrXGUl84=";
   };
 
   patches = (substituteAll {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     inherit qttranslations;
   });
 
-  buildInputs = [ qtlocation ];
+  buildInputs = [ qtlocation qtpbfimageplugin ];
 
   nativeBuildInputs = [ qmake qttools wrapQtAppsHook ];
 
diff --git a/pkgs/applications/misc/hubstaff/default.nix b/pkgs/applications/misc/hubstaff/default.nix
index 44169f6a539e2..390f756beb101 100644
--- a/pkgs/applications/misc/hubstaff/default.nix
+++ b/pkgs/applications/misc/hubstaff/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Time tracking software";
     homepage = "https://hubstaff.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ michalrus srghma ];
diff --git a/pkgs/applications/misc/icesl/default.nix b/pkgs/applications/misc/icesl/default.nix
index ae049699121ed..1a079ab8274c3 100644
--- a/pkgs/applications/misc/icesl/default.nix
+++ b/pkgs/applications/misc/icesl/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "GPU-accelerated procedural modeler and slicer for 3D printing";
     homepage = "https://icesl.loria.fr/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.inria-icesl;
     platforms = [ "i686-linux" "x86_64-linux" ];
     maintainers = with maintainers; [ mgttlinger ];
diff --git a/pkgs/applications/misc/ideamaker/default.nix b/pkgs/applications/misc/ideamaker/default.nix
index 1e20a0d6faf04..619a821a32c69 100644
--- a/pkgs/applications/misc/ideamaker/default.nix
+++ b/pkgs/applications/misc/ideamaker/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.raise3d.com/ideamaker/";
     description = "Raise3D's 3D slicer software";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/pkgs/applications/misc/ipmicfg/default.nix b/pkgs/applications/misc/ipmicfg/default.nix
index 120affb988c01..ecad4bd9821b0 100644
--- a/pkgs/applications/misc/ipmicfg/default.nix
+++ b/pkgs/applications/misc/ipmicfg/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
    meta = with lib; {
      description = "Supermicro IPMI configuration tool";
      homepage = "http://www.supermicro.com/products/nfo/ipmi.cfm";
+     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
      license = licenses.unfree;
      platforms = [ "x86_64-linux" ];
      maintainers = with maintainers; [ sorki ];
diff --git a/pkgs/applications/misc/ipmiview/default.nix b/pkgs/applications/misc/ipmiview/default.nix
index 579890c78ba3e..fbc436c882cfc 100644
--- a/pkgs/applications/misc/ipmiview/default.nix
+++ b/pkgs/applications/misc/ipmiview/default.nix
@@ -72,7 +72,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.unfree;
     maintainers = with maintainers; [ vlaci ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/misc/join-desktop/default.nix b/pkgs/applications/misc/join-desktop/default.nix
index 0b09911ddb24b..369aae0386336 100644
--- a/pkgs/applications/misc/join-desktop/default.nix
+++ b/pkgs/applications/misc/join-desktop/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/joaomgcd/JoinDesktop/";
     description = "Desktop app for Join";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     # on https://joaoapps.com/join/desktop/ "Join Desktop is an open source app" but no license
     license = licenses.free;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/jotta-cli/default.nix b/pkgs/applications/misc/jotta-cli/default.nix
index b50bc7e561147..64044693203e7 100644
--- a/pkgs/applications/misc/jotta-cli/default.nix
+++ b/pkgs/applications/misc/jotta-cli/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
     homepage     = "https://www.jottacloud.com/";
     downloadPage = "https://repo.jotta.us/archives/linux/";
     maintainers  = with maintainers; [ evenbrenden ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license      = licenses.unfree;
     platforms    = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/misc/kdbplus/default.nix b/pkgs/applications/misc/kdbplus/default.nix
index 8ee8337bea2a9..05d1c98e56ac8 100644
--- a/pkgs/applications/misc/kdbplus/default.nix
+++ b/pkgs/applications/misc/kdbplus/default.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Analytics and time-series database";
     homepage    = "http://www.kx.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license     = lib.licenses.unfree;
     platforms   = [ "i686-linux" ];
     maintainers = [ lib.maintainers.thoughtpolice ];
diff --git a/pkgs/applications/misc/koreader/default.nix b/pkgs/applications/misc/koreader/default.nix
index e2480dd18bded..b428690b7a403 100644
--- a/pkgs/applications/misc/koreader/default.nix
+++ b/pkgs/applications/misc/koreader/default.nix
@@ -56,6 +56,7 @@ in stdenv.mkDerivation rec {
     homepage = "https://github.com/koreader/koreader";
     description =
       "An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = intersectLists platforms.x86_64 platforms.linux;
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ contrun neonfuz];
diff --git a/pkgs/applications/misc/masterpdfeditor/default.nix b/pkgs/applications/misc/masterpdfeditor/default.nix
index 68453252ba539..de131b7ce63f0 100644
--- a/pkgs/applications/misc/masterpdfeditor/default.nix
+++ b/pkgs/applications/misc/masterpdfeditor/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Master PDF Editor";
     homepage = "https://code-industry.net/free-pdf-editor/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     platforms = with platforms; [ "x86_64-linux" ];
     maintainers = with maintainers; [ cmcdragonkai ];
diff --git a/pkgs/applications/misc/masterpdfeditor4/default.nix b/pkgs/applications/misc/masterpdfeditor4/default.nix
index b4b9a4d624469..befb11a0a48b3 100644
--- a/pkgs/applications/misc/masterpdfeditor4/default.nix
+++ b/pkgs/applications/misc/masterpdfeditor4/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Master PDF Editor - version 4, without watermark";
     homepage = "https://code-industry.net/free-pdf-editor/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     platforms = with platforms; [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/misc/megacmd/default.nix b/pkgs/applications/misc/megacmd/default.nix
index afdfc6c905e04..2d5b6ee8f2ae6 100644
--- a/pkgs/applications/misc/megacmd/default.nix
+++ b/pkgs/applications/misc/megacmd/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "megacmd";
-  version = "1.5.0c";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "meganz";
     repo = "MEGAcmd";
     rev = "${version}_Linux";
-    sha256 = "sha256-JHuGkf6TBOZMvoP7Izm5/T9AWxyjaqrxR99x4bm7tVE=";
+    sha256 = "sha256-qOXw/KGt3DyWQGBe/pbMujQITCMItHobxuK+1r00ZIs=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/mystem/default.nix b/pkgs/applications/misc/mystem/default.nix
index 62c1834d26ad7..198d170bd89ca 100644
--- a/pkgs/applications/misc/mystem/default.nix
+++ b/pkgs/applications/misc/mystem/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Morphological analysis of Russian text";
     homepage = "https://yandex.ru/dev/mystem/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ abbradar ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/organicmaps/default.nix b/pkgs/applications/misc/organicmaps/default.nix
index 0930edbd4158b..c44fc41a5c650 100644
--- a/pkgs/applications/misc/organicmaps/default.nix
+++ b/pkgs/applications/misc/organicmaps/default.nix
@@ -8,7 +8,6 @@
 , which
 , python3
 , rsync
-, makeWrapper
 , qtbase
 , qtsvg
 , libGLU
@@ -20,13 +19,13 @@
 
 mkDerivation rec {
   pname = "organicmaps";
-  version = "2022.05.31-10";
+  version = "2022.06.18-2";
 
   src = fetchFromGitHub {
     owner = "organicmaps";
     repo = "organicmaps";
     rev = "${version}-android";
-    sha256 = "sha256-2GeWa4CQoY7hi24q0/cZBbq1Ofl2Jane9BiZ0N+IsSc=";
+    sha256 = "sha256-FlytRGiqGr9L5ZwL1slbPjagJKsleOXM8+loPmtfccI=";
     fetchSubmodules = true;
   };
 
@@ -45,7 +44,6 @@ mkDerivation rec {
     which
     python3
     rsync
-    makeWrapper
   ];
 
   # Most dependencies are vendored
@@ -64,16 +62,6 @@ mkDerivation rec {
     bash ./configure.sh
   '';
 
-  # Tell the program that the read-only and the read-write data locations
-  # are different, and create the read-write one.
-  # https://github.com/organicmaps/organicmaps/issues/2387
-  postInstall = ''
-    wrapProgram $out/bin/OMaps \
-      --add-flags "-resources_path $out/share/organicmaps/data" \
-      --add-flags '-data_path "''${XDG_DATA_HOME:-''${HOME}/.local/share}/OMaps"' \
-      --run 'mkdir -p "''${XDG_DATA_HOME:-''${HOME}/.local/share}/OMaps"'
-  '';
-
   meta = with lib; {
     # darwin: "invalid application of 'sizeof' to a function type"
     broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
diff --git a/pkgs/applications/misc/pastel/default.nix b/pkgs/applications/misc/pastel/default.nix
index b894195cfa603..5e0f5fc9e0114 100644
--- a/pkgs/applications/misc/pastel/default.nix
+++ b/pkgs/applications/misc/pastel/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pastel";
-  version = "0.8.1";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "12n1a9j61r4spx0zi2kk85nslv11j1s510asxqvj92ggqhr2s3sq";
+    sha256 = "sha256-uK4HWC+uGiey+K0p8+Wi+Pi+U7b4k09b8iKF9BmTPcc=";
   };
 
-  cargoSha256 = "12zachbg78ajx1n1mqp53rd00dzcss5cqhsq0119lalzc8b5zkrn";
+  cargoSha256 = "sha256-5paHSrqU8tItD/CAbauj6KcW/mKsveOAfXjD/NUuFAc=";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/applications/misc/pdfsam-basic/default.nix b/pkgs/applications/misc/pdfsam-basic/default.nix
index 745796098e8cc..e4626ef3c947c 100644
--- a/pkgs/applications/misc/pdfsam-basic/default.nix
+++ b/pkgs/applications/misc/pdfsam-basic/default.nix
@@ -42,6 +42,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
       homepage = "https://github.com/torakiki/pdfsam";
       description = "Multi-platform software designed to extract pages, split, merge, mix and rotate PDF files";
+      sourceProvenance = with sourceTypes; [
+        binaryBytecode
+        binaryNativeCode
+      ];
       license = licenses.agpl3;
       platforms = platforms.all;
       maintainers = with maintainers; [ _1000101 ];
diff --git a/pkgs/applications/misc/pdfstudio/common.nix b/pkgs/applications/misc/pdfstudio/common.nix
index 8c034d6636b32..047d9e4190fcb 100644
--- a/pkgs/applications/misc/pdfstudio/common.nix
+++ b/pkgs/applications/misc/pdfstudio/common.nix
@@ -88,6 +88,10 @@ buildFHSUserEnv {
     homepage = "https://www.qoppa.com/${pname}/";
     description = "An easy to use, full-featured PDF editing software";
     longDescription = longDescription;
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.unfree;
     platforms = platforms.linux;
     mainProgram = pname;
diff --git a/pkgs/applications/misc/playonlinux/default.nix b/pkgs/applications/misc/playonlinux/default.nix
index 58d45d19bee58..669f25e1509eb 100644
--- a/pkgs/applications/misc/playonlinux/default.nix
+++ b/pkgs/applications/misc/playonlinux/default.nix
@@ -142,6 +142,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "GUI for managing Windows programs under linux";
     homepage = "https://www.playonlinux.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3;
     maintainers = [ maintainers.pasqui23 ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/misc/polar-bookshelf/default.nix b/pkgs/applications/misc/polar-bookshelf/default.nix
index 8fcd9e1a04fe9..1c286d611e6be 100644
--- a/pkgs/applications/misc/polar-bookshelf/default.nix
+++ b/pkgs/applications/misc/polar-bookshelf/default.nix
@@ -122,6 +122,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://getpolarized.io/";
     description = "Personal knowledge repository for PDF and web content supporting incremental reading and document annotation";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.gpl3Only;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.noneucat ];
diff --git a/pkgs/applications/misc/premid/default.nix b/pkgs/applications/misc/premid/default.nix
index d2b8663d24531..3fe8c64f20be5 100644
--- a/pkgs/applications/misc/premid/default.nix
+++ b/pkgs/applications/misc/premid/default.nix
@@ -85,6 +85,7 @@ stdenv.mkDerivation rec {
     description = "A simple, configurable utility to show your web activity as playing status on Discord";
     homepage = "https://premid.app";
     downloadPage = "https://premid.app/downloads";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mpl20;
     maintainers = with maintainers; [ natto1784 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix
index 1488538cc55ed..679b77157cd05 100644
--- a/pkgs/applications/misc/prusa-slicer/default.nix
+++ b/pkgs/applications/misc/prusa-slicer/default.nix
@@ -1,8 +1,39 @@
-{ stdenv, lib, fetchFromGitHub, cmake, copyDesktopItems, makeDesktopItem
-, pkg-config, wrapGAppsHook, boost, cereal, cgal_5, curl, dbus, eigen, expat
-, glew, glib, gmp, gtest, gtk3, hicolor-icon-theme, ilmbase, libpng, mpfr, nlopt
-, openvdb, pcre, qhull, systemd, tbb, wxGTK31-gtk3, xorg, fetchpatch
-, wxGTK31-gtk3-override ? null }:
+{ stdenv
+, lib
+, binutils
+, fetchFromGitHub
+, cmake
+, copyDesktopItems
+, makeDesktopItem
+, pkg-config
+, wrapGAppsHook
+, boost
+, cereal
+, cgal_5
+, curl
+, dbus
+, eigen
+, expat
+, glew
+, glib
+, gmp
+, gtest
+, gtk3
+, hicolor-icon-theme
+, ilmbase
+, libpng
+, mpfr
+, nlopt
+, openvdb
+, pcre
+, qhull
+, systemd
+, tbb
+, wxGTK31-gtk3
+, xorg
+, fetchpatch
+, wxGTK31-gtk3-override ? null
+}:
 let
   wxGTK31-gtk3-prusa = wxGTK31-gtk3.overrideAttrs (old: rec {
     pname = "wxwidgets-prusa3d-patched";
@@ -16,7 +47,8 @@ let
     };
   });
   wxGTK31-gtk3-override' = if wxGTK31-gtk3-override == null then wxGTK31-gtk3-prusa else wxGTK31-gtk3-override;
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "prusa-slicer";
   version = "2.4.2";
 
@@ -28,6 +60,7 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    binutils
     boost
     cereal
     cgal_5
@@ -58,6 +91,16 @@ in stdenv.mkDerivation rec {
       url = "https://github.com/prusa3d/PrusaSlicer/commit/76f4d6fa98bda633694b30a6e16d58665a634680.patch";
       sha256 = "1r806ycp704ckwzgrw1940hh1l6fpz0k1ww3p37jdk6mygv53nv6";
     })
+    # Fix compile error with boost 1.79. See https://github.com/prusa3d/PrusaSlicer/issues/8238
+    # Can be removed with the next version update
+    (fetchpatch {
+      url = "https://github.com/prusa3d/PrusaSlicer/commit/408e56f0390f20aaf793e0aa0c70c4d9544401d4.patch";
+      sha256 = "sha256-vzEPjLE3Yy5szawPn2Yp3i7MceWewpdnLUPVu9+H3W8=";
+    })
+    (fetchpatch {
+      url = "https://github.com/prusa3d/PrusaSlicer/commit/926ae0471800abd1e5335e251a5934570eb8f6ff.patch";
+      sha256 = "sha256-tAEgubeGGKFWY7r7p/6pmI2HXUGKi2TM1X5ILVZVT20=";
+    })
   ];
 
   doCheck = true;
diff --git a/pkgs/applications/misc/rescuetime/default.nix b/pkgs/applications/misc/rescuetime/default.nix
index 69f0b26b9ec41..273b2d6046ed8 100644
--- a/pkgs/applications/misc/rescuetime/default.nix
+++ b/pkgs/applications/misc/rescuetime/default.nix
@@ -53,6 +53,7 @@ in mkDerivation rec {
     description = "Helps you understand your daily habits so you can focus and be more productive";
     homepage    = "https://www.rescuetime.com";
     maintainers = with maintainers; [ cstrahan ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.unfree;
     platforms   = [ "i686-linux" "x86_64-linux" ];
   };
diff --git a/pkgs/applications/misc/robo3t/default.nix b/pkgs/applications/misc/robo3t/default.nix
index 81219fc752697..ae32aac267e17 100644
--- a/pkgs/applications/misc/robo3t/default.nix
+++ b/pkgs/applications/misc/robo3t/default.nix
@@ -91,6 +91,7 @@ stdenv.mkDerivation rec {
     homepage = "https://robomongo.org/";
     description = "Query GUI for mongodb. Formerly called Robomongo";
     platforms = [ "x86_64-linux" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ eperuffo ];
   };
diff --git a/pkgs/applications/misc/sidequest/default.nix b/pkgs/applications/misc/sidequest/default.nix
index e26a40667da9c..23684142a09b4 100644
--- a/pkgs/applications/misc/sidequest/default.nix
+++ b/pkgs/applications/misc/sidequest/default.nix
@@ -48,6 +48,7 @@
         description = "An open app store and side-loading tool for Android-based VR devices such as the Oculus Go, Oculus Quest or Moverio BT 300";
         homepage = "https://github.com/SideQuestVR/SideQuest";
         downloadPage = "https://github.com/SideQuestVR/SideQuest/releases";
+        sourceProvenance = with sourceTypes; [ binaryNativeCode ];
         license = licenses.mit;
         maintainers = with maintainers; [ joepie91 rvolosatovs ];
         platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/signumone-ks/default.nix b/pkgs/applications/misc/signumone-ks/default.nix
index eb0af95d58d59..f183fbed3d2e4 100644
--- a/pkgs/applications/misc/signumone-ks/default.nix
+++ b/pkgs/applications/misc/signumone-ks/default.nix
@@ -48,6 +48,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Digital signature tool for Costa Rican electronic invoicing";
     homepage = "https://signum.one/download.html";
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.unfree;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/simplenote/default.nix b/pkgs/applications/misc/simplenote/default.nix
index f723ba27beb8d..35f153393518c 100644
--- a/pkgs/applications/misc/simplenote/default.nix
+++ b/pkgs/applications/misc/simplenote/default.nix
@@ -27,6 +27,7 @@ let
     description = "The simplest way to keep notes";
     homepage = "https://github.com/Automattic/simplenote-electron";
     license = licenses.gpl2;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     maintainers = with maintainers; [
       kiwi
     ];
diff --git a/pkgs/applications/misc/skytemple/default.nix b/pkgs/applications/misc/skytemple/default.nix
index 0f331ef6e2ce4..2ec034e882e18 100644
--- a/pkgs/applications/misc/skytemple/default.nix
+++ b/pkgs/applications/misc/skytemple/default.nix
@@ -1,4 +1,12 @@
-{ lib, fetchFromGitHub, gobject-introspection, gtk3, gtksourceview3, webkitgtk, wrapGAppsHook, python3Packages }:
+{ lib
+, fetchFromGitHub
+, gobject-introspection
+, gtk3
+, gtksourceview3
+, webkitgtk
+, wrapGAppsHook
+, python3Packages
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "skytemple";
@@ -8,7 +16,7 @@ python3Packages.buildPythonApplication rec {
     owner = "SkyTemple";
     repo = pname;
     rev = version;
-    sha256 = "sha256-CyYGTXdQsGpDR/gpqViEQO1xUPHaXTES592nRJixa1o=";
+    hash = "sha256-CyYGTXdQsGpDR/gpqViEQO1xUPHaXTES592nRJixa1o=";
   };
 
   buildInputs = [
@@ -20,9 +28,16 @@ python3Packages.buildPythonApplication rec {
     # any Pokemon, and clicking Stats and Moves tab.
     webkitgtk
   ];
-  nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
+
+  nativeBuildInputs = [
+    gobject-introspection
+    wrapGAppsHook
+  ];
+
   propagatedBuildInputs = with python3Packages; [
+    cairosvg
     natsort
+    ndspy
     packaging
     pycairo
     pygal
@@ -36,6 +51,7 @@ python3Packages.buildPythonApplication rec {
     skytemple-files
     skytemple-icons
     skytemple-ssb-debugger
+    tilequant
   ];
 
   doCheck = false; # there are no tests
diff --git a/pkgs/applications/misc/snapmaker-luban/default.nix b/pkgs/applications/misc/snapmaker-luban/default.nix
index b5bcbabf8674b..6a9c8843c09a3 100644
--- a/pkgs/applications/misc/snapmaker-luban/default.nix
+++ b/pkgs/applications/misc/snapmaker-luban/default.nix
@@ -81,6 +81,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Snapmaker Luban is an easy-to-use 3-in-1 software tailor-made for Snapmaker machines";
     homepage = "https://github.com/Snapmaker/Luban";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3;
     maintainers = [ maintainers.simonkampe ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/snowsql/default.nix b/pkgs/applications/misc/snowsql/default.nix
index 85f4ffec5f16b..90aab7987b389 100644
--- a/pkgs/applications/misc/snowsql/default.nix
+++ b/pkgs/applications/misc/snowsql/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Command line client for the Snowflake database";
     homepage = "https://www.snowflake.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ andehen ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/thedesk/default.nix b/pkgs/applications/misc/thedesk/default.nix
index 42f4d36eea5d5..c9d845574ff0b 100644
--- a/pkgs/applications/misc/thedesk/default.nix
+++ b/pkgs/applications/misc/thedesk/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Mastodon/Misskey Client for PC";
     homepage = "https://thedesk.top";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/upwork/default.nix b/pkgs/applications/misc/upwork/default.nix
index 34cc97023989e..0b1bed6785755 100644
--- a/pkgs/applications/misc/upwork/default.nix
+++ b/pkgs/applications/misc/upwork/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Online freelancing platform desktop application for time tracking";
     homepage = "https://www.upwork.com/ab/downloads/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ zakkor wolfangaukang ];
diff --git a/pkgs/applications/misc/whalebird/default.nix b/pkgs/applications/misc/whalebird/default.nix
index f49b14e8fc48f..3972d7a17230c 100644
--- a/pkgs/applications/misc/whalebird/default.nix
+++ b/pkgs/applications/misc/whalebird/default.nix
@@ -82,6 +82,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Electron based Mastodon, Pleroma and Misskey client for Windows, Mac and Linux";
     homepage = "https://whalebird.social";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = with maintainers; [ wolfangaukang colinsane ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
diff --git a/pkgs/applications/misc/xkblayout-state/default.nix b/pkgs/applications/misc/xkblayout-state/default.nix
index 70543b5fa186c..539a0f7d1a1d8 100644
--- a/pkgs/applications/misc/xkblayout-state/default.nix
+++ b/pkgs/applications/misc/xkblayout-state/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, qt4 }:
+{ lib, stdenv, fetchFromGitHub, libX11 }:
 
 stdenv.mkDerivation rec {
   pname = "xkblayout-state";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-diorqwDEBdzcBteKvhRisQaY3bx5seaOaWSaPwBkWDo=";
   };
 
-  buildInputs = [ qt4 ];
+  buildInputs = [ libX11 ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/applications/misc/xmind/default.nix b/pkgs/applications/misc/xmind/default.nix
index a395ffd521f53..17134dcd3892b 100644
--- a/pkgs/applications/misc/xmind/default.nix
+++ b/pkgs/applications/misc/xmind/default.nix
@@ -85,7 +85,10 @@ stdenv.mkDerivation rec {
       and save to Evernote.
     '';
     homepage = "https://www.xmind.net/";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ michalrus ];
diff --git a/pkgs/applications/misc/xplr/default.nix b/pkgs/applications/misc/xplr/default.nix
index a2a6ae1f84b4f..d24345389cab1 100644
--- a/pkgs/applications/misc/xplr/default.nix
+++ b/pkgs/applications/misc/xplr/default.nix
@@ -2,23 +2,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "xplr";
-  version = "0.18.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "sayanarijit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-L9eJd1ivFhAmjKVm+HFq9fNiA/UA/x2akEfa1CrUSBo=";
+    sha256 = "sha256-rvqx0s56VozG8M0m3uZsHuugx0BXucSFqLbq0L1KhAM=";
   };
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
-  cargoSha256 = "sha256-niH8gj49Wr20Lpa6UAczQ+YHgJlkvZYKJGFH6Spk9Ho=";
+  cargoSha256 = "sha256-CyHkjXZVISkQJEQx5vNBGBf6zZrVv/cLWIYeOq9Ac5k=";
 
   meta = with lib; {
     description = "A hackable, minimal, fast TUI file explorer";
     homepage = "https://xplr.dev";
     license = licenses.mit;
-    maintainers = with maintainers; [ sayanarijit suryasr007 ];
+    maintainers = with maintainers; [ sayanarijit suryasr007 thehedgeh0g ];
   };
 }
diff --git a/pkgs/applications/networking/aether/default.nix b/pkgs/applications/networking/aether/default.nix
index 5f78b244ca412..62dbae082d9a1 100644
--- a/pkgs/applications/networking/aether/default.nix
+++ b/pkgs/applications/networking/aether/default.nix
@@ -103,6 +103,7 @@ stdenv.mkDerivation rec {
     description = "Peer-to-peer ephemeral public communities";
     homepage = "https://getaether.net/";
     downloadPage = "https://getaether.net/download/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ maxhille ];
     # other platforms could be supported by building from source
diff --git a/pkgs/applications/networking/apache-directory-studio/default.nix b/pkgs/applications/networking/apache-directory-studio/default.nix
index 8b20c1aac6b0c..4a9c0da726fa2 100644
--- a/pkgs/applications/networking/apache-directory-studio/default.nix
+++ b/pkgs/applications/networking/apache-directory-studio/default.nix
@@ -45,6 +45,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Eclipse-based LDAP browser and directory client";
     homepage = "https://directory.apache.org/studio/";
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.asl20;
     # Upstream supports macOS and Windows too.
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/appgate-sdp/default.nix b/pkgs/applications/networking/appgate-sdp/default.nix
index 7e4c5cfac888d..d6f21aa04237a 100644
--- a/pkgs/applications/networking/appgate-sdp/default.nix
+++ b/pkgs/applications/networking/appgate-sdp/default.nix
@@ -151,6 +151,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Appgate SDP (Software Defined Perimeter) desktop client";
     homepage = "https://www.appgate.com/support/software-defined-perimeter-support";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ymatsiuk ];
diff --git a/pkgs/applications/networking/blocky/default.nix b/pkgs/applications/networking/blocky/default.nix
index 2f2a708455e17..0f25fd0a8ec98 100644
--- a/pkgs/applications/networking/blocky/default.nix
+++ b/pkgs/applications/networking/blocky/default.nix
@@ -6,20 +6,20 @@
 
 buildGoModule rec {
   pname = "blocky";
-  version = "0.18";
+  version = "0.19";
 
   src = fetchFromGitHub {
     owner = "0xERR0R";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rFHDoNrEmMSNEc3RLdSeRk9mF05drUYfJFQKHAk5alE=";
+    sha256 = "sha256-jOOakRuiNbdCGmbaQFuHcLsHhV26jaQY+1GgDj9ocs0=";
   };
 
   # needs network connection and fails at
   # https://github.com/0xERR0R/blocky/blob/development/resolver/upstream_resolver_test.go
   doCheck = false;
 
-  vendorSha256 = "sha256-rrqDjh5e3KX5+saYjnMPG0bhr5YEOPfz0QCRf6omNZI=";
+  vendorSha256 = "sha256-fsMBL9qyhIrV6eAsqpSaNniibMdYRVBnl2KCzStvMGQ=";
 
   meta = with lib; {
     description = "Fast and lightweight DNS proxy as ad-blocker for local network with many features.";
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index 7833722c4d928..2d131b4279a6e 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -200,6 +200,7 @@ stdenv.mkDerivation rec {
       chew up your bandwidth, and invade your privacy. Brave lets you
       contribute to your favorite creators automatically.
     '';
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mpl20;
     maintainers = with maintainers; [ uskudnik rht jefflabonte nasirhm ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index cfd6b122d6cc7..1cfc90dd4f145 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -160,10 +160,6 @@ let
       ./patches/no-build-timestamps.patch
       # For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags:
       ./patches/widevine-79.patch
-    ] ++ optionals (versionRange "102" "103") [
-      # https://dawn-review.googlesource.com/c/dawn/+/88582
-      # Wrap get_gitHash in try-catch to prevent failures in tarball builds.
-      ./patches/m102-fix-dawn_version_generator-failure.patch
     ];
 
     postPatch = ''
diff --git a/pkgs/applications/networking/browsers/chromium/patches/m102-fix-dawn_version_generator-failure.patch b/pkgs/applications/networking/browsers/chromium/patches/m102-fix-dawn_version_generator-failure.patch
deleted file mode 100644
index e9391541e435c..0000000000000
--- a/pkgs/applications/networking/browsers/chromium/patches/m102-fix-dawn_version_generator-failure.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From e9ffd084ec1ff9f7bfc86879732953dc58256958 Mon Sep 17 00:00:00 2001
-From: Loko Kung <lokokung@google.com>
-Date: Tue, 3 May 2022 00:28:53 +0000
-Subject: [PATCH] Wrap get_gitHash in try-catch to prevent failures in tarball
- builds.
-
-Bug: chromium:1321370
-Change-Id: If39d2236d1b4d965f7bd189f6bd1cdc70436c41d
-Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/88582
-Commit-Queue: Loko Kung <lokokung@google.com>
-Reviewed-by: Austin Eng <enga@chromium.org>
-Kokoro: Kokoro <noreply+kokoro@google.com>
-(cherry picked from commit 03ddfbb81fb4127ca37ea53e70fcb34fe851e24e)
----
- third_party/dawn/generator/dawn_version_generator.py | 13 ++++++++-----
- 1 file changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/third_party/dawn/generator/dawn_version_generator.py b/third_party/dawn/generator/dawn_version_generator.py
-index 1907e88da..3c1927bee 100644
---- a/third_party/dawn/generator/dawn_version_generator.py
-+++ b/third_party/dawn/generator/dawn_version_generator.py
-@@ -23,11 +23,14 @@ def get_git():
-
-
- def get_gitHash(dawnDir):
--    result = subprocess.run([get_git(), 'rev-parse', 'HEAD'],
--                            stdout=subprocess.PIPE,
--                            cwd=dawnDir)
--    if result.returncode == 0:
--        return result.stdout.decode('utf-8').strip()
-+    try:
-+        result = subprocess.run([get_git(), "rev-parse", "HEAD"],
-+                                stdout=subprocess.PIPE,
-+                                cwd=dawnDir)
-+        if result.returncode == 0:
-+            return result.stdout.decode("utf-8").strip()
-+    except Exception:
-+        return ""
-     # No hash was available (possibly) because the directory was not a git checkout. Dawn should
-     # explicitly handle its absenece and disable features relying on the hash, i.e. caching.
-     return ''
---
-2.36.0
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index 0516b1d65bd39..f661e64bac7f8 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -45,19 +45,19 @@
     }
   },
   "ungoogled-chromium": {
-    "version": "102.0.5005.115",
-    "sha256": "1rj7vy824vn513hiivc90lnxvxyi2s0qkdmfqsdssv9v6zjl079h",
-    "sha256bin64": "0b32sscbjnvr98lk962i9k2srckv2s7fp9pifmsv5jlwndjhzm7y",
+    "version": "103.0.5060.53",
+    "sha256": "00di0nw6h3kb0qp2wp3ny3zsar1ayn1lyx5zr28dl1h5cwaaxjqf",
+    "sha256bin64": "19wxd4jl6fyjpcpy2331ckz6dgzrfj52wvdkp0kb18n0sym17fyn",
     "deps": {
       "gn": {
-        "version": "2022-04-14",
+        "version": "2022-05-11",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "fd9f2036f26d83f9fcfe93042fb952e5a7fe2167",
-        "sha256": "0b5xs0chcv3hfhy71rycsmgxnqbm375a333hwav8929k9cbi5p9h"
+        "rev": "578a7fe4c3c6b0bc2ae1fd2e37f14857d09895bf",
+        "sha256": "03dqfrdpf5xxl64dby3qmbwpzdq2gsa8g7xl438py3a629rgxg63"
       },
       "ungoogled-patches": {
-        "rev": "102.0.5005.115-1",
-        "sha256": "1z2xkxxviggyyksga74cqa4v73gynlgzi22ckg8yv84qxrklik6p"
+        "rev": "103.0.5060.53-1",
+        "sha256": "1g5ciwzrhg9g13gvhrwqf19djk9jhj1d6nx2f6a8d5ch1mhi2z8s"
       }
     }
   }
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix
index 153bd31a5e725..1b8e3c879676e 100644
--- a/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -97,12 +97,15 @@ let
 
       nameArray = builtins.map(a: a.name) (if usesNixExtensions then nixExtensions else []);
 
+      requiresSigning = browser ? MOZ_REQUIRE_SIGNING
+                     -> toString browser.MOZ_REQUIRE_SIGNING != "";
+
       # Check that every extension has a unqiue .name attribute
       # and an extid attribute
       extensions = if nameArray != (lib.unique nameArray) then
         throw "Firefox addon name needs to be unique"
-      else if ! (lib.hasSuffix "esr" browser.name) then
-        throw "Nix addons are only supported in Firefox ESR"
+      else if requiresSigning && !lib.hasSuffix "esr" browser.name then
+        throw "Nix addons are only supported without signature enforcement (eg. Firefox ESR)"
       else builtins.map (a:
         if ! (builtins.hasAttr "extid" a) then
         throw "nixExtensions has an invalid entry. Missing extid attribute. Please use fetchfirefoxaddon"
diff --git a/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix b/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
index 962113a2ace5d..26b408ffdecc0 100644
--- a/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Additional support for proprietary codecs for Vivaldi";
     homepage    = "https://ffmpeg.org/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.lgpl21;
     maintainers = with maintainers; [ betaboon cawilliamson lluchs ];
     platforms   = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/browsers/vivaldi/widevine.nix b/pkgs/applications/networking/browsers/vivaldi/widevine.nix
index 740e325fca4e9..65c58775874b1 100644
--- a/pkgs/applications/networking/browsers/vivaldi/widevine.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/widevine.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Widevine support for Vivaldi";
     homepage = "https://www.widevine.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ betaboon ];
     platforms   = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/cisco-packet-tracer/7.nix b/pkgs/applications/networking/cisco-packet-tracer/7.nix
index f7e7317131202..422ccd05cffcb 100644
--- a/pkgs/applications/networking/cisco-packet-tracer/7.nix
+++ b/pkgs/applications/networking/cisco-packet-tracer/7.nix
@@ -83,6 +83,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Network simulation tool from Cisco";
     homepage = "https://www.netacad.com/courses/packet-tracer";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ lucasew ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/cisco-packet-tracer/8.nix b/pkgs/applications/networking/cisco-packet-tracer/8.nix
index 9bc8900174547..0dd31aea0619d 100644
--- a/pkgs/applications/networking/cisco-packet-tracer/8.nix
+++ b/pkgs/applications/networking/cisco-packet-tracer/8.nix
@@ -125,6 +125,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Network simulation tool from Cisco";
     homepage = "https://www.netacad.com/courses/packet-tracer";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ lucasew ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index f0c81ab5ca5fb..212e024b98790 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "2.4.0";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = "v${version}";
-    sha256 = "sha256-U3i3shXsItQQlkFl/DrGdSHY2AAhaYV5WX3B+6TlOPw=";
+    sha256 = "sha256-zc99YKh5hNa4oRoKJcGWqNrDb3LqIwXWzYOsmGKVsL8=";
   };
 
   vendorSha256 = "sha256-j/35tvfUCcuFN8NGIjWgna1W0Q4CyhMLcOlepTAUl0w=";
diff --git a/pkgs/applications/networking/cluster/fluxcd/default.nix b/pkgs/applications/networking/cluster/fluxcd/default.nix
index 358803a3cf379..1afb2b7a5e1f3 100644
--- a/pkgs/applications/networking/cluster/fluxcd/default.nix
+++ b/pkgs/applications/networking/cluster/fluxcd/default.nix
@@ -1,9 +1,9 @@
 { lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
 
 let
-  version = "0.31.1";
-  sha256 = "1dhs96r9yi37i5q9wqg7198f6kl59jlj3g1q76r0snqyl16g2jwf";
-  manifestsSha256 = "0wwlwai1hhz69kgaccw3w8ad6bwdd46pm4ns8nqm04927b0b2dqb";
+  version = "0.31.2";
+  sha256 = "1w373gwxxvnqsfm5r63r1bcmlrii5wy6yhbs5li0bw2anhnb0iir";
+  manifestsSha256 = "0lqfrry1kg52ikyhzgwg57zqzq24aspp2d7whyzir3dglvf999lb";
 
   manifests = fetchzip {
     url =
@@ -23,7 +23,7 @@ in buildGoModule rec {
     inherit sha256;
   };
 
-  vendorSha256 = "sha256-sPyz6ISFLe+6CJoAcG17KSfo63vuTj30IWw+S2NCszY=";
+  vendorSha256 = "sha256-Z7O/ReEZwmK5KKAHzi4B3d31ynA51XzbTKsrzCXAFPo=";
 
   postUnpack = ''
     cp -r ${manifests} source/cmd/flux/manifests
diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix
index 8ed8cd5689136..5cbd307a3d73d 100644
--- a/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -1,11 +1,11 @@
-{ stdenv
-, lib
+{ lib
+, buildGoModule
 , fetchFromGitHub
 , which
-, go
 , makeWrapper
 , rsync
 , installShellFiles
+, runtimeShell
 , kubectl
 , nixosTests
 
@@ -19,7 +19,7 @@
   ]
 }:
 
-stdenv.mkDerivation rec {
+buildGoModule rec {
   pname = "kubernetes";
   version = "1.23.8";
 
@@ -30,23 +30,27 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-mu+jBSypoMNxOugLbS3foH4C4AqSZnlic4Bf1v9dYc8=";
   };
 
-  nativeBuildInputs = [ makeWrapper which go rsync installShellFiles ];
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  nativeBuildInputs = [ makeWrapper which rsync installShellFiles ];
 
   outputs = [ "out" "man" "pause" ];
 
   patches = [ ./fixup-addonmanager-lib-path.patch ];
 
-  postPatch = ''
-    substituteInPlace "hack/update-generated-docs.sh" --replace "make" "make SHELL=${stdenv.shell}"
-    patchShebangs ./hack
-  '';
-
   WHAT = lib.concatStringsSep " " ([
     "cmd/kubeadm"
   ] ++ components);
 
-  postBuild = ''
+  buildPhase = ''
+    runHook preBuild
+    substituteInPlace "hack/update-generated-docs.sh" --replace "make" "make SHELL=${runtimeShell}"
+    patchShebangs ./hack ./cluster/addons/addon-manager
+    make "SHELL=${runtimeShell}" "WHAT=$WHAT"
     ./hack/update-generated-docs.sh
+    runHook postBuild
   '';
 
   installPhase = ''
@@ -69,7 +73,6 @@ stdenv.mkDerivation rec {
       --subst-var out
 
     chmod +x $out/bin/kube-addons
-    patchShebangs $out/bin/kube-addons
     wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl"
 
     cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons-lib.sh
@@ -80,10 +83,6 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  disallowedReferences = [ go ];
-
-  GOFLAGS = [ "-trimpath" ];
-
   meta = with lib; {
     description = "Production-Grade Container Scheduling and Management";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubernetes/kubectl.nix b/pkgs/applications/networking/cluster/kubernetes/kubectl.nix
index 6a6f9042124b8..754bca32511c1 100644
--- a/pkgs/applications/networking/cluster/kubernetes/kubectl.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/kubectl.nix
@@ -1,15 +1,14 @@
-{ lib, stdenv, kubernetes }:
+{ lib, buildGoModule, kubernetes }:
 
-stdenv.mkDerivation rec {
+buildGoModule rec {
   pname = "kubectl";
 
   inherit (kubernetes)
-    disallowedReferences
-    GOFLAGS
+    buildPhase
+    doCheck
     nativeBuildInputs
-    postBuild
-    postPatch
     src
+    vendorSha256
     version
     ;
 
@@ -18,7 +17,7 @@ stdenv.mkDerivation rec {
   WHAT = lib.concatStringsSep " " [
     "cmd/kubectl"
     "cmd/kubectl-convert"
-    ];
+  ];
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/applications/networking/cluster/ocm/default.nix b/pkgs/applications/networking/cluster/ocm/default.nix
index 73a5d964f34bb..a63979d5a8bd0 100644
--- a/pkgs/applications/networking/cluster/ocm/default.nix
+++ b/pkgs/applications/networking/cluster/ocm/default.nix
@@ -1,23 +1,29 @@
-{ lib, buildGoModule, fetchFromGitHub, testers, ocm }:
+{ lib, buildGoModule, fetchFromGitHub, stdenv, testers, ocm }:
 
 buildGoModule rec {
   pname = "ocm";
-  version = "0.1.62";
+  version = "0.1.63";
 
   src = fetchFromGitHub {
     owner = "openshift-online";
     repo = "ocm-cli";
     rev = "v${version}";
-    sha256 = "0kv0zcx6wdlyid37ygzg05xyyk77ybd2qcdgbswjv6crcjh1xdrd";
+    sha256 = "sha256-wBKW2WS1+JmWOFCArmrlVfUTEqFYF7aq1OBrUo7e4ac=";
   };
 
-  vendorSha256 = "sha256-nXUrbF9mcHy8G7c+ktQixBmmf6x066gpuaZ0eUsJQwc=";
+  vendorSha256 = "sha256-LyQ/F+E0y1gQtpGSyPEB2z2ImorA7mjY3QjrRORakIo=";
+
+  # Strip the final binary.
+  ldflags = [ "-s" "-w" ];
 
   # Tests expect the binary to be located in the root directory.
   preCheck = ''
     ln -s $GOPATH/bin/ocm ocm
   '';
 
+  # Tests fail in Darwin sandbox.
+  doCheck = !stdenv.isDarwin;
+
   passthru.tests.version = testers.testVersion {
     package = ocm;
     command = "ocm version";
diff --git a/pkgs/applications/networking/cluster/octant/default.nix b/pkgs/applications/networking/cluster/octant/default.nix
index 70c255790790d..733e4c04a9cca 100644
--- a/pkgs/applications/networking/cluster/octant/default.nix
+++ b/pkgs/applications/networking/cluster/octant/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
       introspective tooling, cluster navigation, and object management along
       with a plugin system to further extend its capabilities.
     '';
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
diff --git a/pkgs/applications/networking/cluster/roxctl/default.nix b/pkgs/applications/networking/cluster/roxctl/default.nix
index 9014ce5202572..bbd3d646fdfab 100644
--- a/pkgs/applications/networking/cluster/roxctl/default.nix
+++ b/pkgs/applications/networking/cluster/roxctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "roxctl";
-  version = "3.70.0";
+  version = "3.70.1";
 
   src = fetchFromGitHub {
     owner = "stackrox";
     repo = "stackrox";
     rev = version;
-    sha256 = "sha256-VnnMD2tRixCswO/9nrP3PgXmev6O8QUTbkwmFIpPUyE=";
+    sha256 = "sha256-T06VldyPBIpYWs8+N4OWmaCwXCcb37F7lLD4jHcm1uc=";
   };
 
   vendorSha256 = "sha256-xh2bgLSWjQHOjHrgDpQri78LvCL4CDbMteQYARyGLgg=";
diff --git a/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix b/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
index a3c8bc706613e..7350a8bd460b4 100644
--- a/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
+++ b/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
       "https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html";
     description = "Amazon SSM Session Manager Plugin";
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ mbaillie ];
   };
diff --git a/pkgs/applications/networking/cluster/talosctl/default.nix b/pkgs/applications/networking/cluster/talosctl/default.nix
index da240b337bfc2..42d451bd44db4 100644
--- a/pkgs/applications/networking/cluster/talosctl/default.nix
+++ b/pkgs/applications/networking/cluster/talosctl/default.nix
@@ -1,42 +1,21 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
-let
-  # look for GO_LDFLAGS getting set in the Makefile
-  version = "1.0.6";
-  sha256 = "sha256-4cUaQWqVndp06eFgqInOMMGITbTdZO5BOqXW2XEpuWU=";
-  vendorSha256 = "sha256-7q35d+jbIDe7fAy6nL5FWdSovBb/f64HYLHGL+zE6bI=";
-  pkgsVersion = "v1.0.0-25-gcf9709e";
-  extrasVersion = "v1.0.0-4-g05b0920";
-in
+{ lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
+
 buildGoModule rec {
   pname = "talosctl";
-  inherit version vendorSha256;
-  # nixpkgs-update: no auto update
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "siderolabs";
     repo = "talos";
     rev = "v${version}";
-    inherit sha256;
+    sha256 = "sha256-52WzQ5LWgIX/XBJPNvWV0tAPnw1AiINDL/7D3UYvvn4=";
   };
 
-  ldflags =
-    let
-      versionPkg = "github.com/talos-systems/talos/pkg/version"; # VERSION_PKG
-      imagesPkgs = "github.com/talos-systems/talos/pkg/images"; # IMAGES_PKGS
-      mgmtHelpersPkg = "github.com/talos-systems/talos/cmd/talosctl/pkg/mgmt/helpers"; #MGMT_HELPERS_PKG
-    in
-    [
-      "-X ${versionPkg}.Name=Client"
-      "-X ${versionPkg}.SHA=${src.rev}" # should be the hash, but as we build from tags, this needs to do
-      "-X ${versionPkg}.Tag=${src.rev}"
-      "-X ${versionPkg}.PkgsVersion=${pkgsVersion}" # PKGS
-      "-X ${versionPkg}.ExtrasVersion=${extrasVersion}" # EXTRAS
-      "-X ${imagesPkgs}.Username=siderolabs" # USERNAME
-      "-X ${imagesPkgs}.Registry=ghcr.io" # REGISTRY
-      "-X ${mgmtHelpersPkg}.ArtifactsPath=_out" # ARTIFACTS
-      "-s"
-      "-w"
-    ];
+  vendorSha256 = "sha256-iluI4UGw5cZ70wmC9jDiGttvxZ7xFyqcL9IZX4ubJqs=";
+
+  ldflags = [ "-s" "-w" ];
+
+  GOWORK = "off";
 
   subPackages = [ "cmd/talosctl" ];
 
@@ -56,5 +35,8 @@ buildGoModule rec {
     homepage = "https://www.talos.dev/";
     license = licenses.mpl20;
     maintainers = with maintainers; [ flokli ];
+    # requires >= 10.14 SDK https://github.com/NixOS/nixpkgs/issues/101229
+    # Undefined symbols for architecture x86_64: "_SecTrustEvaluateWithError"
+    broken = stdenv.isDarwin && stdenv.isx86_64;
   };
 }
diff --git a/pkgs/applications/networking/cluster/temporal-cli/default.nix b/pkgs/applications/networking/cluster/temporal-cli/default.nix
index 49d64283ca0f0..0d326d5ad458a 100644
--- a/pkgs/applications/networking/cluster/temporal-cli/default.nix
+++ b/pkgs/applications/networking/cluster/temporal-cli/default.nix
@@ -1,26 +1,17 @@
-{ lib, fetchFromGitHub, fetchpatch, buildGoModule, testers, temporal-cli }:
+{ lib, fetchFromGitHub, buildGoModule, testers, temporal-cli }:
 
 buildGoModule rec {
   pname = "temporal-cli";
-  version = "1.16.1";
+  version = "1.16.2";
 
   src = fetchFromGitHub {
     owner = "temporalio";
     repo = "tctl";
     rev = "v${version}";
-    sha256 = "sha256-WNdu/62/VmxTmzAvzx3zIlcAAlEmpN0yKzQOSUtrL8s=";
+    sha256 = "sha256-KLcCFQJlFeioIhqrbkhgoNPcbAYvy1ESG8x9Y/I7+nw=";
   };
 
-  patches = [
-    # Fix tests
-    (fetchpatch {
-      name = "fix-tests.patch";
-      url = "https://github.com/temporalio/tctl/pull/203/commits/2b113da137a3a925e8fbd7c18bdaaefc31397db4.patch";
-      sha256 = "sha256-HFPwbmLZ2uPHzaHvYoB4MTZvMVyzvUKggA76/bh50DQ=";
-    })
-  ];
-
-  vendorSha256 = "sha256-WF3T+HNisfR0JoKkHCC77kmHmsGZ9NfQ7UCwOmpCG/o=";
+  vendorSha256 = "sha256-kczmoP32/V0HHeC3Mr+giuMB+McVTNeC2F+t1ohY4/U=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/applications/networking/cluster/tfswitch/default.nix b/pkgs/applications/networking/cluster/tfswitch/default.nix
index d069367f7334b..a57128907eee3 100644
--- a/pkgs/applications/networking/cluster/tfswitch/default.nix
+++ b/pkgs/applications/networking/cluster/tfswitch/default.nix
@@ -1,13 +1,13 @@
 { buildGoModule, lib, fetchFromGitHub }:
 buildGoModule rec {
   pname = "tfswitch";
-  version = "0.13.1250";
+  version = "0.13.1275";
 
   src = fetchFromGitHub {
     owner = "warrensbox";
     repo = "terraform-switcher";
     rev = version;
-    sha256 = "sha256-OfQUwAv7PgjcDLE4Wm6I8pAHeLV9sHlLHRVqTB13B4c=";
+    sha256 = "sha256-yuoJkVztLtlr4xOa4muWKquwAb8lo2IQpD7PLxEQfpg=";
   };
 
   vendorSha256 = "sha256-jM9xYwBshBpaT4duBTvVwYUOapQfUbq9kL7EaRIGfQY=";
diff --git a/pkgs/applications/networking/cluster/velero/default.nix b/pkgs/applications/networking/cluster/velero/default.nix
index 88c3a31fd2d77..5685b0b65072c 100644
--- a/pkgs/applications/networking/cluster/velero/default.nix
+++ b/pkgs/applications/networking/cluster/velero/default.nix
@@ -2,23 +2,25 @@
 
 buildGoModule rec {
   pname = "velero";
-  version = "1.8.1";
+  version = "1.9.0";
 
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "velero";
     rev = "v${version}";
-    sha256 = "sha256-oiYr9JQlJVxjZxGhZyOIUy934KedBmDhzK+71qmaD58=";
+    sha256 = "sha256-zoHMyOhHEunJ8LirUxOT1qNY3jB28BEiQ+3GdqriTtQ=";
   };
 
   ldflags = [
     "-s" "-w"
     "-X github.com/vmware-tanzu/velero/pkg/buildinfo.Version=${version}"
+    "-X github.com/vmware-tanzu/velero/pkg/buildinfo.ImageRegistry=velero"
     "-X github.com/vmware-tanzu/velero/pkg/buildinfo.GitTreeState=clean"
+    "-X github.com/vmware-tanzu/velero/pkg/buildinfo.GitSHA=none"
   ];
 
-  vendorSha256 = "sha256-DyQ+MHRNZFg80Yz/SCxhnF4NVbIsyhz4mApx0+kgHoA=";
+  vendorSha256 = "sha256-PDXufnddHEA0qCfzJ0O+h3u50gWNkQAnWMZjSVQ0oHc=";
 
   excludedPackages = [ "issue-template-gen" "release-tools" "v1" "velero-restic-restore-helper" ];
 
diff --git a/pkgs/applications/networking/cluster/werf/default.nix b/pkgs/applications/networking/cluster/werf/default.nix
index bcd43d71fc8a7..d677b2d96dfdd 100644
--- a/pkgs/applications/networking/cluster/werf/default.nix
+++ b/pkgs/applications/networking/cluster/werf/default.nix
@@ -9,16 +9,16 @@
 
 buildGoModule rec {
   pname = "werf";
-  version = "1.2.114";
+  version = "1.2.117";
 
   src = fetchFromGitHub {
     owner = "werf";
     repo = "werf";
     rev = "v${version}";
-    sha256 = "sha256-+QCKVXuROd7QB6P5tSSINWtdw5OvVnmE1+ttoBnCO1g=";
+    sha256 = "sha256-bh+4Z4+BU1exOv113ScIw9VsGM+jRireyb9lArg/Zg4=";
   };
 
-  vendorSha256 = "sha256-VuburDiYqePFvS7/aTM+krkK2UhTHhfbvGOLY3I3DN8=";
+  vendorSha256 = "sha256-cW9sjMRLslEhgyI5Z7ypUtGgzCDASQ4m9yr6DoQKoz8=";
 
   proxyVendor = true;
 
diff --git a/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix b/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix
index 9bb34ffbbd709..22bd33b87717f 100644
--- a/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix
+++ b/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "IndieWeb app with extensions for sharing to/reading from micropub endpoints";
     homepage = "https://indigenous.realize.be/indigenous-desktop";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index 0a4cea6288152..071ac5b7aa273 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -5,14 +5,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "flexget";
-  version = "3.3.17";
+  version = "3.3.18";
 
   # Fetch from GitHub in order to use `requirements.in`
   src = fetchFromGitHub {
     owner = "flexget";
     repo = "flexget";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xVHk6fQBY8EQsZJDZYoQ+WXDpLGJrRTVR6xhF1DWv0I=";
+    hash = "sha256-vZOeWxCcrTRT28Bn2r/I7/ojQ6uUV3xZlAZLbrAH5tc=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/hpmyroom/default.nix b/pkgs/applications/networking/hpmyroom/default.nix
index 64a237480c651..5417cc6fda145 100644
--- a/pkgs/applications/networking/hpmyroom/default.nix
+++ b/pkgs/applications/networking/hpmyroom/default.nix
@@ -50,6 +50,7 @@ mkDerivation rec {
   meta = {
     description = "Client for HPE's MyRoom web conferencing solution";
     maintainers = with lib.maintainers; [ johnazoidberg ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     homepage = "https://myroom.hpe.com";
     # TODO: A Darwin binary is available upstream
diff --git a/pkgs/applications/networking/instant-messengers/alfaview/default.nix b/pkgs/applications/networking/instant-messengers/alfaview/default.nix
index 51279394df5c8..ff97cb55a5563 100644
--- a/pkgs/applications/networking/instant-messengers/alfaview/default.nix
+++ b/pkgs/applications/networking/instant-messengers/alfaview/default.nix
@@ -73,6 +73,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Video-conferencing application, specialized in virtual online meetings, seminars, training sessions and conferences";
     homepage = "https://alfaview.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ wolfangaukang hexchen ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
index c902a7e67c57e..ddecac0735268 100644
--- a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -127,6 +127,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Video, audio, and web conferencing that works together with the collaboration tools you use every day";
     homepage = "https://www.bluejeans.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/chatty/default.nix b/pkgs/applications/networking/instant-messengers/chatty/default.nix
index 35266eff90092..a6e31573ae816 100644
--- a/pkgs/applications/networking/instant-messengers/chatty/default.nix
+++ b/pkgs/applications/networking/instant-messengers/chatty/default.nix
@@ -29,7 +29,7 @@
 
 stdenv.mkDerivation rec {
   pname = "chatty";
-  version = "0.6.4";
+  version = "0.6.6";
 
   src = fetchFromGitLab {
     domain = "source.puri.sm";
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     repo = "chatty";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-uDuSx+tWv6DV93/99QUcUKZaWA9kNW8phHZhetYlG/M=";
+    hash = "sha256-vwgXfoyZOCSMnRAB6bFSrtYlSrpMa9OOcmxYTqhU+lA=";
   };
 
   postPatch = ''
@@ -83,6 +83,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "XMPP and SMS messaging via libpurple and ModemManager";
     homepage = "https://source.puri.sm/Librem5/chatty";
+    changelog = "https://source.puri.sm/Librem5/chatty/-/blob/${src.rev}/NEWS";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda tomfitzhenry ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/instant-messengers/discord/darwin.nix b/pkgs/applications/networking/instant-messengers/discord/darwin.nix
index 4bc9ac98df1f6..494a7e6a44283 100644
--- a/pkgs/applications/networking/instant-messengers/discord/darwin.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/darwin.nix
@@ -1,4 +1,4 @@
-{ pname, version, src, meta, stdenv, binaryName, desktopName, undmg }:
+{ pname, version, src, openasar, meta, stdenv, binaryName, desktopName, lib, undmg }:
 
 stdenv.mkDerivation {
   inherit pname version src meta;
@@ -8,7 +8,15 @@ stdenv.mkDerivation {
   sourceRoot = ".";
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/Applications
     cp -r "${desktopName}.app" $out/Applications
+
+    runHook postInstall
+  '';
+
+  postInstall = lib.strings.optionalString (openasar != null) ''
+    cp -f ${openasar} $out/Applications/${desktopName}.app/Contents/Resources/app.asar
   '';
 }
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index ab471ef47fb78..71606f2dcaddb 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -1,6 +1,5 @@
-{ branch ? "stable", pkgs, lib, stdenv }:
+{ branch ? "stable", callPackage, fetchurl, lib, stdenv, withOpenASAR ? false }:
 let
-  inherit (pkgs) callPackage fetchurl;
   versions = if stdenv.isLinux then {
     stable = "0.0.18";
     ptb = "0.0.29";
@@ -55,14 +54,18 @@ let
     description = "All-in-one cross-platform voice and text chat for gamers";
     homepage = "https://discordapp.com/";
     downloadPage = "https://discordapp.com/download";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ ldesgoui MP2E devins2518 ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ]
       ++ lib.optionals (branch == "ptb") [ "aarch64-darwin" ];
   };
   package = if stdenv.isLinux then ./linux.nix else ./darwin.nix;
+
+  openasar = if withOpenASAR then callPackage ./openasar.nix { } else null;
+
   packages = (builtins.mapAttrs
-    (_: value: callPackage package (value // { inherit src version; meta = meta // { mainProgram = value.binaryName; }; }))
+    (_: value: callPackage package (value // { inherit src version openasar; meta = meta // { mainProgram = value.binaryName; }; }))
     {
       stable = rec {
         pname = "discord";
diff --git a/pkgs/applications/networking/instant-messengers/discord/linux.nix b/pkgs/applications/networking/instant-messengers/discord/linux.nix
index 74e424aaf1dfa..28c1d353ff610 100644
--- a/pkgs/applications/networking/instant-messengers/discord/linux.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/linux.nix
@@ -1,4 +1,4 @@
-{ pname, version, src, meta, binaryName, desktopName, autoPatchelfHook
+{ pname, version, src, openasar, meta, binaryName, desktopName, autoPatchelfHook
 , makeDesktopItem, lib, stdenv, wrapGAppsHook, makeShellWrapper, alsa-lib, at-spi2-atk
 , at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf
 , glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid, libX11
@@ -72,6 +72,8 @@ stdenv.mkDerivation rec {
   ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/{bin,opt/${binaryName},share/pixmaps,share/icons/hicolor/256x256/apps}
     mv * $out/opt/${binaryName}
 
@@ -95,6 +97,12 @@ stdenv.mkDerivation rec {
     ln -s $out/opt/${binaryName}/discord.png $out/share/icons/hicolor/256x256/apps/${pname}.png
 
     ln -s "${desktopItem}/share/applications" $out/share/
+
+    runHook postInstall
+  '';
+
+  postInstall = lib.strings.optionalString (openasar != null) ''
+    cp -f ${openasar} $out/opt/${binaryName}/resources/app.asar
   '';
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/applications/networking/instant-messengers/discord/openasar.nix b/pkgs/applications/networking/instant-messengers/discord/openasar.nix
new file mode 100644
index 0000000000000..e378f490c0f45
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/discord/openasar.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchFromGitHub, nodejs, bash, nodePackages }:
+
+stdenv.mkDerivation rec {
+  version = "unstable-2022-06-10";
+  pname = "openasar";
+
+  src = fetchFromGitHub {
+    owner = "GooseMod";
+    repo = "OpenAsar";
+    rev = "c6f2f5eb7827fea14cb4c54345af8ff6858c633a";
+    sha256 = "m6e/WKGgkR8vjKcHSNdWE25MmDQM1Z3kgB24OJgbw/w=";
+  };
+
+  buildPhase = ''
+    runHook preBuild
+
+    bash scripts/injectPolyfills.sh
+    substituteInPlace src/index.js --replace 'nightly' '${version}'
+    ${nodejs}/bin/node scripts/strip.js
+    ${nodePackages.asar}/bin/asar pack src app.asar
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install app.asar $out
+
+    runHook postInstall
+  '';
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Open-source alternative of Discord desktop's \"app.asar\".";
+    homepage = "https://openasar.dev";
+    license = licenses.mit;
+    maintainers = with maintainers; [ pedrohlc ];
+    platforms = nodejs.meta.platforms;
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/pkgs/applications/networking/instant-messengers/ferdi/default.nix
index 90ab331426a09..edd05a83ad639 100644
--- a/pkgs/applications/networking/instant-messengers/ferdi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ferdi/default.nix
@@ -26,6 +26,7 @@ mkFranzDerivation' rec {
   meta = with lib; {
     description = "Combine your favorite messaging services into one application";
     homepage = "https://getferdi.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ davidtwco ma27 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/franz/default.nix b/pkgs/applications/networking/instant-messengers/franz/default.nix
index b3d9194c6fe4b..a910105fde808 100644
--- a/pkgs/applications/networking/instant-messengers/franz/default.nix
+++ b/pkgs/applications/networking/instant-messengers/franz/default.nix
@@ -11,6 +11,7 @@ mkFranzDerivation rec {
   meta = with lib; {
     description = "A free messaging app that combines chat & messaging services into one application";
     homepage = "https://meetfranz.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.free;
     maintainers = [ maintainers.davidtwco ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/gitter/default.nix b/pkgs/applications/networking/instant-messengers/gitter/default.nix
index 8ed85cba8546f..04d8909f3d892 100644
--- a/pkgs/applications/networking/instant-messengers/gitter/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gitter/default.nix
@@ -94,6 +94,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Where developers come to talk";
     downloadPage = "https://gitter.im/apps";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = [ maintainers.imalison ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/pkgs/applications/networking/instant-messengers/hipchat/default.nix
index 6a677c9e0d612..8debefa0c11c4 100644
--- a/pkgs/applications/networking/instant-messengers/hipchat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/hipchat/default.nix
@@ -81,6 +81,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Desktop client for HipChat services";
     homepage = "http://www.hipchat.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ puffnfresh ];
diff --git a/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/pkgs/applications/networking/instant-messengers/jitsi/default.nix
index 9646738780802..0ef6b2e74d7b8 100644
--- a/pkgs/applications/networking/instant-messengers/jitsi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jitsi/default.nix
@@ -65,7 +65,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://jitsi.org/";
     description = "Open Source Video Calls and Chat";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = teams.jitsi.members;
diff --git a/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
index ba806409e05c6..bb900654d1e8a 100644
--- a/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
@@ -84,6 +84,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Mattermost Desktop client";
     homepage = "https://about.mattermost.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = [ maintainers.joko ];
diff --git a/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix b/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix
index ef9dad66b5d65..39403ba774fa3 100644
--- a/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix
+++ b/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix
@@ -25,6 +25,7 @@ stdenvNoCC.mkDerivation rec {
   meta = with lib; {
     description = "Desktop chat client for Slack and Discord";
     homepage = "https://cancel.fm/ripcord/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     # See: https://cancel.fm/ripcord/shareware-redistribution/
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ mikroskeem ];
diff --git a/pkgs/applications/networking/instant-messengers/ripcord/default.nix b/pkgs/applications/networking/instant-messengers/ripcord/default.nix
index 7379d769288bd..7fd0bd9bb1d34 100644
--- a/pkgs/applications/networking/instant-messengers/ripcord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ripcord/default.nix
@@ -60,6 +60,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "Desktop chat client for Slack and Discord";
     homepage = "https://cancel.fm/ripcord/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     # See: https://cancel.fm/ripcord/shareware-redistribution/
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ infinisil ];
diff --git a/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix b/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
index 71379039de6f2..d854414a36b63 100644
--- a/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
@@ -89,6 +89,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Official Desktop client for Rocket.Chat";
     homepage = "https://github.com/RocketChat/Rocket.Chat.Electron";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = with maintainers; [ gbtb ];
     platforms = platforms.x86_64;
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index c8f57d20ec11a..7d18a8d29252f 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -24,7 +24,7 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "5.46.0"; # Please backport all updates to the stable channel.
+  version = "5.47.0"; # Please backport all updates to the stable channel.
   # All releases have a limited lifetime and "expire" 90 days after the release.
   # When releases "expire" the application becomes unusable until an update is
   # applied. The expiration date for the current release can be extracted with:
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "sha256-zy9nETD82KguML0MXe8hlB4m+fBCMmJ1z/2Neq6QvEU=";
+    sha256 = "sha256-aQpylo4/pbHP2an1w6DEhRmU3uvntN/tnYhvaWtNGGg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/sky/default.nix b/pkgs/applications/networking/instant-messengers/sky/default.nix
index 464d4d77f9461..e949625875e58 100644
--- a/pkgs/applications/networking/instant-messengers/sky/default.nix
+++ b/pkgs/applications/networking/instant-messengers/sky/default.nix
@@ -59,6 +59,7 @@ mkDerivation rec {
   meta = {
     description = "Lync & Skype for Business on Linux";
     homepage = "https://tel.red/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.wucke13 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index 024ac9a143182..515290ab91559 100644
--- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -120,6 +120,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Linux client for skype";
     homepage = "https://www.skype.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ panaeon jraygauthier ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix
index 86ed37e54dc00..953d5134377be 100644
--- a/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -80,6 +80,7 @@ let
   meta = with lib; {
     description = "Desktop client for Slack";
     homepage = "https://slack.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ mmahut maxeaubrey ];
     platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-darwin" ];
diff --git a/pkgs/applications/networking/instant-messengers/teams/default.nix b/pkgs/applications/networking/instant-messengers/teams/default.nix
index 07462b4cc26f8..d7831d3fd5386 100644
--- a/pkgs/applications/networking/instant-messengers/teams/default.nix
+++ b/pkgs/applications/networking/instant-messengers/teams/default.nix
@@ -28,6 +28,7 @@ let
     description = "Microsoft Teams";
     homepage = "https://teams.microsoft.com";
     downloadPage = "https://teams.microsoft.com/downloads";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ liff tricktron ];
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
index 80d04eabc824c..e3273b8ddc59d 100644
--- a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
+++ b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
@@ -102,6 +102,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "The TeamSpeak voice communication tool";
     homepage = "https://teamspeak.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = {
       fullName = "Teamspeak client license";
       url = "https://www.teamspeak.com/en/privacy-and-terms/";
diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/server.nix b/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
index 44430ef62e2d3..577589f6a40b0 100644
--- a/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
+++ b/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
@@ -4,13 +4,13 @@ let
   arch = if stdenv.is64bit then "amd64" else "x86";
 in stdenv.mkDerivation rec {
   pname = "teamspeak-server";
-  version = "3.13.6";
+  version = "3.13.7";
 
   src = fetchurl {
     url = "https://files.teamspeak-services.com/releases/server/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2";
     sha256 = if stdenv.is64bit
-      then "sha256-U3BNJ4Jjhd39gD7iMsHT8CGtm/GFQDE2kYQa2btyK+w="
-      else "sha256-8UKiFedv6w5bmqNvo3AXwQnUROwbZnU0ZTh9V17zmxQ=";
+      then "sha256-d1pXMamAmAHkyPkGbNm8ViobNoVTE5wSSfKgdA1QBB4="
+      else "sha256-aMEDOnvBeKfzG8lDFhU8I5DYgG53IsCDBMV2MUyJi2g=";
   };
 
   buildInputs = [ stdenv.cc.cc postgresql.lib ];
@@ -58,6 +58,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "TeamSpeak voice communication server";
     homepage = "https://teamspeak.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     platforms = platforms.linux;
     maintainers = with maintainers; [ arobyn gerschtli ];
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 0ee0bef5e233e..212092d8a1ff1 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -71,7 +71,7 @@ let
 in
 env.mkDerivation rec {
   pname = "telegram-desktop";
-  version = "4.0.0";
+  version = "4.0.2";
   # Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
 
   # Telegram-Desktop with submodules
@@ -80,7 +80,7 @@ env.mkDerivation rec {
     repo = "tdesktop";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "16j5rvlqr2bb1dkc7cc920ylhw3sp4qnqvm1aznnnjzcimqb8xf0";
+    sha256 = "07fhm36394171w0rvay1x9x1br3z36z4dlpi57bkq23dvi331pxj";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix b/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
index 0951f1d3d8e7d..852abe8e6dc45 100644
--- a/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "threema-desktop";
-  version = "1.2.0";
+  version = "1.2.13";
 
   src = fetchurl {
     # As Threema only offers a Latest Release url, the plan is to upload each
     # new release url to web.archive.org until their Github releases page gets populated.
-    url = "https://web.archive.org/web/20220408213031if_/https://releases.threema.ch/web-electron/v1/release/Threema-Latest.deb";
-    sha256 = "7c8e1e76ad82a0cf776eb8b0a683a41a00dc8752bb79a24b0ae9d795fdedcde6";
+    url = "https://web.archive.org/web/20220621152620id_/https://releases.threema.ch/web-electron/v1/release/Threema-Latest.deb";
+    sha256 = "sha256-X16GMxUIKUloj0FxhzWQKUBf4zwfSBVg0cwLgGxHPHE=";
   };
 
   nativeBuildInputs = [
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Desktop client for Threema, a privacy-focused end-to-end encrypted mobile messenger";
     homepage = "https://threema.ch";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/viber/default.nix b/pkgs/applications/networking/instant-messengers/viber/default.nix
index f8e048edc4b02..be19ec257424b 100644
--- a/pkgs/applications/networking/instant-messengers/viber/default.nix
+++ b/pkgs/applications/networking/instant-messengers/viber/default.nix
@@ -101,6 +101,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "https://www.viber.com";
     description = "An instant messaging and Voice over IP (VoIP) app";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with lib.maintainers; [ jagajaga ];
diff --git a/pkgs/applications/networking/instant-messengers/vk-cli/default.nix b/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
index bb34fd7534c95..a22437bf8da00 100644
--- a/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
+++ b/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A console (ncurses) client for vk.com written in D";
     homepage = "https://github.com/vk-cli/vk";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix b/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
index 5fb0f14f36a04..1d249794d4431 100644
--- a/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
+++ b/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
@@ -24,6 +24,7 @@ let
   meta = with lib; {
     description = "Simple and Convenient Messaging App for VK";
     homepage = "https://vk.com/messenger";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [ ];
     platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
diff --git a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
index 4d7a2218e7dfa..304d1bf4255c8 100644
--- a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -47,6 +47,7 @@ let
     '';
     homepage = "https://wire.com/";
     downloadPage = "https://wire.com/download/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [
       arianvp
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index 06f9a2d3e8ee7..37f3c99251067 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -183,6 +183,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://zoom.us/";
     description = "zoom.us video conferencing application";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = builtins.attrNames srcs;
     maintainers = with maintainers; [ danbst tadfisher doronbehar ];
diff --git a/pkgs/applications/networking/insync/default.nix b/pkgs/applications/networking/insync/default.nix
index 380aad6c32914..5992453975d94 100644
--- a/pkgs/applications/networking/insync/default.nix
+++ b/pkgs/applications/networking/insync/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     platforms = ["x86_64-linux"];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.benley ];
     homepage = "https://www.insynchq.com";
diff --git a/pkgs/applications/networking/insync/v3.nix b/pkgs/applications/networking/insync/v3.nix
index 49a5b892111e5..5efffab51c6cd 100644
--- a/pkgs/applications/networking/insync/v3.nix
+++ b/pkgs/applications/networking/insync/v3.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     platforms = ["x86_64-linux"];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ benley ];
     homepage = "https://www.insynchq.com";
diff --git a/pkgs/applications/networking/mailreaders/mailspring/default.nix b/pkgs/applications/networking/mailreaders/mailspring/default.nix
index 4bc80b84b8470..539e69069f35d 100644
--- a/pkgs/applications/networking/mailreaders/mailspring/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailspring/default.nix
@@ -91,6 +91,7 @@ stdenv.mkDerivation rec {
       Mailspring is an open-source mail client forked from Nylas Mail and built with Electron.
       Mailspring's sync engine runs locally, but its source is not open.
     '';
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ toschmidt doronbehar ];
     homepage = "https://getmailspring.com";
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index e4e5332e07f33..ba4edfd916f46 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -206,6 +206,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Mozilla Thunderbird, a full-featured email client (binary package)";
     homepage = "http://www.mozilla.org/thunderbird/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mpl20;
     maintainers = with lib.maintainers; [ lovesegfault ];
     platforms = builtins.attrNames mozillaPlatforms;
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index e400592733abb..6f33b95339dc0 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,655 +1,655 @@
 {
-  version = "91.9.1";
+  version = "91.10.0";
   sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/af/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/af/thunderbird-91.10.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "f06c5e87bc9dcbb0d4aa374e262a8bd4b7bb94d5b2aa71e1ba5a61794a07af4d";
+      sha256 = "86d7447a74caaa2433a031cc4ce31aefdaf70ea19f67480f3ff9672d71bf8dc5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ar/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ar/thunderbird-91.10.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "67178dac2f315ba13806c8056f041f083952b4ebab1054a8eb66d97b4d1c5fd2";
+      sha256 = "5871ad2ee0098dad26941876fbfa2140c9f5165bcc71a8e2d2a145cb6a4ce687";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ast/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ast/thunderbird-91.10.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "2858ddc2d594d12a1def62c05bb23c3f91633a866004a9a184b4ad06e294c761";
+      sha256 = "92ef0552c72d35209d7999d6f12a6eee4e332cee5886552b080a03120540a863";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/be/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/be/thunderbird-91.10.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "e5fbb0bcc2066dabf1a6d1dcfbf92d1ad4af606aaddce00c2820d84b2bb2005b";
+      sha256 = "2c591361e6ef9a279c0d1738a48b247c9c1b13e73fbd944b87ba892c2ab76a61";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/bg/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/bg/thunderbird-91.10.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "de456b442aac187d49573572c45609b0e0b5f17e9e30a253ff803f9691c4fcc8";
+      sha256 = "e1f6c339ab6d1e9aaa93dbcfb7ad39191d605bb667fc99bbcc2b0f37ddfd7475";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/br/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/br/thunderbird-91.10.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "9139317b57b529a3151571274aa37c72790b68c2e310c302b87a490f6e6a2512";
+      sha256 = "198668968f53016ebbde1f7f3b6b5696a60e187b155c1491c3006a923b92f555";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ca/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ca/thunderbird-91.10.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "bfdef191af0ab0622847a751be29449e3ed5b3ad5abd801aa466370a621fa457";
+      sha256 = "bde4c61858491d29281f9d87628dac1916e309a33133bb75c44c33dcbd7622c1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/cak/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/cak/thunderbird-91.10.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "59fbda2666b1fca61f222fc5394742ce1b712390a6452bd6bd4317254a83ee90";
+      sha256 = "cc0dd9f0b655ac4e6ea3f363e90ff857ac80ab51b98cd6e45876f12b353700d9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/cs/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/cs/thunderbird-91.10.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "cec215709a2ebc17b25658a640c119a3475409ab4c89d1eae92f24d612bfd07c";
+      sha256 = "c9d6ce6ae9c3bee3a7f9850056f0345f30e0928e30ae58c59be012b453d2c54b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/cy/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/cy/thunderbird-91.10.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "7685a6e54ec1b9f79c92230da7c6f9b102fda697e833d465c212fe53008c20e3";
+      sha256 = "7ff9bb16796f4cc7d2ba9865ca1a1562a5eaa49a2fb233a72706eda6b0f9f566";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/da/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/da/thunderbird-91.10.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "dc8ebeb29651025c19ae876b3a500ccd35e137b0ddc862467ba667bac2417426";
+      sha256 = "74c7f9d0791e97638b512c30c6929decb907611744df6db057865fce14193ee0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/de/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/de/thunderbird-91.10.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "3750041376f16133da7c8452427acd8d4414eab1f0af84b7349dd2341f679493";
+      sha256 = "327dbe16e4a1a792c05d0767d9d6d7791ded392a51cbcaf7dff0cff05baba8a1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/dsb/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/dsb/thunderbird-91.10.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "b052464be29215c315ade6793233b2f16bb5874f34890e0a93002c0dc389a677";
+      sha256 = "8095e43e65d728255fc0839969a22f575084195f2c69871748876e7f2d900ce7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/el/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/el/thunderbird-91.10.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "cd7a84a8d8c3f11d121abe46174fc5c49328007a27397b945549bf942a54fdce";
+      sha256 = "e95d6fa3a138cbea36ad7ee7f58096f4f9c51ab1a1b13623b99347e32eaad07d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/en-CA/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/en-CA/thunderbird-91.10.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "087fa8164027256f86f162205292004e9e4f15dc87f35e49d23876e8b8ce23ad";
+      sha256 = "6a4fbb9c78f124f9bbf03f7e84059c2e9d054568737194d82b14793a6ef5919b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/en-GB/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/en-GB/thunderbird-91.10.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "83bf95ac23c269e00dcbd5f4322bdf9adcb2b83bb4ab10e18e4bae435f36878d";
+      sha256 = "2f738301d4234ec319d7f1d473134eb4b762f381585818b0265e63ddea7839cd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/en-US/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/en-US/thunderbird-91.10.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "de2fa8b336e485205f578442fb64fa37c45e6f7d6263648b9dea1556de696df8";
+      sha256 = "99dc59e06b49b1ae01237a5e015760786941c1e4da36a5db580196db3bf42279";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/es-AR/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/es-AR/thunderbird-91.10.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "178bf7bafe1f1f2056a5d301107bad4f69fb6e82417544d6ac4afaa541c6b6ac";
+      sha256 = "aa3b2efccf6ce590ecb249cc7fc9790ba4c2577152d5c2c51ffce001b757b020";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/es-ES/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/es-ES/thunderbird-91.10.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "269fe6cde594cb429c69e8a7209874b973259feb954856b30193fab0eb6b9cbf";
+      sha256 = "fc30454fc947469f270306ccdb3884db07b36eda9e14eebc9c7cadf6da722812";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/et/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/et/thunderbird-91.10.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "05bc8d02b11bafa75dffb15e14636bd8ec7080be71b0e94d1106bc2802cc571d";
+      sha256 = "feab9b4e3d962e02fceb4d48071755e5d13ff4c7ef5765b3dfa23125017e3932";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/eu/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/eu/thunderbird-91.10.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "b6e26cf5fa4b02f6559f1e631b88118a422fd6d957742e2a29269a6a7c5a439a";
+      sha256 = "93a4148dadf6c5f387e8de12211144ba89a088a1d29a69b7ab9965507ab87af2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/fi/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/fi/thunderbird-91.10.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "b4e63104dacef2de6bb1e3fd81765aab27d2c14c0f22a6fa25e7566251fe2a86";
+      sha256 = "58a7afa5afbf9dee4eedfcdc133b26af7eb9f00a44306131bb8e6fea890b002e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/fr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/fr/thunderbird-91.10.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "60aa0128fcd364f1c2aa9b5523a47a97fbdd0786dd530ae47a1c2524e105e2f4";
+      sha256 = "052bd175e1feec2036e7c517422eda6ee5a3a9a8315c6286c70ac0252dd3aa5d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/fy-NL/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/fy-NL/thunderbird-91.10.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "fe0e864e069dd2a3839bd57aa12fe6bdede11413d0c6d3427682b778d656384a";
+      sha256 = "186a5ffb03c6613e0be9e0800eb45d1c64d7ecc6feedb36ccb457294c9bd6bcc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ga-IE/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ga-IE/thunderbird-91.10.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "f7732439d4f11dc6b04a8b6c49677cb00b02cb1d5ee3029d494b101f8d8854c5";
+      sha256 = "8c7d0d746284b3523eb425d636d409c36073c90bf4717411b753782334911d31";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/gd/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/gd/thunderbird-91.10.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "e7350fe4363bc840bf2cb782838951eb26809fbfce1ff7d79bf62e5b227b6229";
+      sha256 = "f6553283642c0a723d3a6dfea8713e11e60b4f87fded88881c194623215dcc0b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/gl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/gl/thunderbird-91.10.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "e17f22daf65a19fa89e98f6af699339deb3f908c475e15c6dfc20bc23d6054d8";
+      sha256 = "9e5beac36fe4e6935ce8f67fb657e1bd11cf02884d3937c91ee76508c5386c71";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/he/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/he/thunderbird-91.10.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "1a3896d479ff72a68af9a03349bf34bd4fec68e643888f5546c87406e4939d74";
+      sha256 = "23d9fdb0a421a6e430e789e08d4bbc1f62a63ce2d9b6447850a9cad75d7df911";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/hr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/hr/thunderbird-91.10.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "8bcd244d7d51495b794d65617be5dfb372c7736f484aa3172465d2c88d670b48";
+      sha256 = "370b0951dec22b302959b7b86b50341e2750cbe30b79947323f7c57aca43a3f5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/hsb/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/hsb/thunderbird-91.10.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "d79b7265f0f43116f716d0e0038fee6260179edd9c3dc638ba749a719958c876";
+      sha256 = "742280c04ef3164dea8a09a862bf35e6b7f514ae45c4eca77e3c9f5db29cc9c3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/hu/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/hu/thunderbird-91.10.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "c7834d0c25dc031b5e6fdda930779eeb022c048f66982c1fc389f5857da2d16e";
+      sha256 = "1961a0529954ccf3002185496c99cfb57fbb789760b063f6150ff60fd0327ffe";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/hy-AM/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/hy-AM/thunderbird-91.10.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "4b40f15014d95cf48ec88a9023d9b265b3b8718cbaebff19fc502d79219e2511";
+      sha256 = "ed321afebf73524d712c9ff1ab17c26dac84a62bc964258100f8f9dea508f814";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/id/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/id/thunderbird-91.10.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "71d5a4f1f97f99b3d6237bec1fe1d22506e30322b9afed3f0a57a285c93ce0f6";
+      sha256 = "187ee986f458ab4a4d1bd27f97060630debe457b1cbf6ad1393972cb06f5b62e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/is/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/is/thunderbird-91.10.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "dd041da805c3ad9b64ac99a18170b48b2cbee88eeafc4317f3675732699193a5";
+      sha256 = "c40a74a64af69bf5c783e54e425923075b755cfd71b2a504d1f53ef18e4fc82b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/it/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/it/thunderbird-91.10.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "2d7ec87d3cc0bb5a37d989c54770d7faeeb3c142bc108c86e222b2e61883be88";
+      sha256 = "e87bbc257496f09673e622241acd49709fc7d3f0a2a930f602fe58d28c6aa280";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ja/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ja/thunderbird-91.10.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "06fa0ec26eee35b483e056e94f851f052ebec7b8bce7768ced573a4e74c19032";
+      sha256 = "4b2d8bdfab34211addf176941098f05e134511437107dea26318d9d768161be0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ka/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ka/thunderbird-91.10.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "af56172d4f9cab608e286e5955a6faeda694a9bb27206c527dd07e3ce0f0c1ff";
+      sha256 = "eaa402f1a1e06dc8dd2e71454d0d166c3b8e9438d677470c52ee2ccda71b6b23";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/kab/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/kab/thunderbird-91.10.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "98ab11719e9830691fb258174b73bfb3ef496f7654ab87115718326b451187f3";
+      sha256 = "0a24dd8d09cdd938239f1b85b4b2fec04a85358b67895c5002eb990941b719c4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/kk/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/kk/thunderbird-91.10.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "75b98581fdbbb0d5292e1d9658b84652702d973d57fd0aa262a60741a60b489d";
+      sha256 = "100e08e5f7e8be506cdd43cf9e60834c539a855811b4e485f4eee4e336cb27d2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ko/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ko/thunderbird-91.10.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "79a7d5557420e452e605283766aebb1c474e171f8890c1606a94364f422bff2f";
+      sha256 = "0f8492d5067a9c5fdd6a01401b70b38e716d9aa479a99c303f6befad567ec267";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/lt/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/lt/thunderbird-91.10.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "e8b544082d722ed2913264d7f19508e3ba4cf4f3af801fea74f75e790e558d9c";
+      sha256 = "8718bd515c8ea10c67d868bf561ec24f55d32aad1661407e5acbecd8cd05b4b5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/lv/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/lv/thunderbird-91.10.0.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "210ac6d6a4cc603aad294a81821c160051b81cf5078e1db637c908f4b1d326a8";
+      sha256 = "66a5bb836ef7fb15354cdf3feeef049a78a3a3794a796174991208204e23ff6c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ms/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ms/thunderbird-91.10.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "8f068734975c03df942cf9d77e9e6479ab8a4e05f1520fcd377eb7579fec9e3d";
+      sha256 = "b6e14895eb778e3ee279be8a6f318bd339ce20b37478bdf9c8237223b608da95";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/nb-NO/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/nb-NO/thunderbird-91.10.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "d8dd4e72ace1ec1ee377e845a51d6621da8f79ba231c8de9c1b5c0adc2f00e8c";
+      sha256 = "96ac00744122db7c472c956b45df68625bb9816e1739ef6534edeed6e9811b78";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/nl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/nl/thunderbird-91.10.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "e31679930f2e74c70d9d474481976f6d633dba8265c368bb1bcea9cbdfa2a674";
+      sha256 = "7b2e84d918c045fdf5f8d72035af4801ffce0f7f772fbba4809811fc02b31d7e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/nn-NO/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/nn-NO/thunderbird-91.10.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "cfcaf1584954c3c8b97c8a18905129273c6dd028fffb168f9f614bc519d724d7";
+      sha256 = "2b15e70be7d260a3f55206a4847c2ffe89a220e8dd343e45b0359d14d050c60b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/pa-IN/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/pa-IN/thunderbird-91.10.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "b5ebabb96c4cc6df5f7804b62540b9a823089c65e13f3475e16e2e75582dbfe4";
+      sha256 = "79050c2bb8995a1cfe9fe3ca08ad242786e1ffe05821b117023fd8337abe3ef3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/pl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/pl/thunderbird-91.10.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "d8ec7636ade35f3128e5076d95a49ff194fe749d8eb8705669894fa91c3743ca";
+      sha256 = "5d1dcc1f3fde8f9e1fe3c8cae3add1faf029b59356c5f18912971210ac682541";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/pt-BR/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/pt-BR/thunderbird-91.10.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "92ed3cd78c2845116dc04d06a4bb1b5f3eb41c01256fdbbe0db83ad51c3fe617";
+      sha256 = "25b933d1c8b8785e0d873041c8cb0938564e3968c78de5dfe2aa70a3f1ff43bc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/pt-PT/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/pt-PT/thunderbird-91.10.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "010cd55542a6564e7df0d720deb1f3fea2094ca6cb0a202448145b25c166b2e7";
+      sha256 = "c31f5696dcb1d5fcddadbf176a2931ba8d16ee865ac661852e3c90365d085fa7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/rm/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/rm/thunderbird-91.10.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "c4e6c659a9668c88f049cbe2c47bf9f70604a23ad40f4b6b52d6b8891ad09a2c";
+      sha256 = "886ff441a250e96f10536e45059870dd8be28c9ae354b6730be395952c87531f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ro/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ro/thunderbird-91.10.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "09a9a803b6a25dc429bef4f9f1e81cc7500b8493307c8462b855c0045fd32ef1";
+      sha256 = "ce5d720d6e5fe4108eda58c4066b5d654dbe5f4e378900edd4670a85425fc0a0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ru/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ru/thunderbird-91.10.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "332ee8695f3fa74ae952ce55a4d91e26c789e8f95d13d05a5eadfff149d2e36c";
+      sha256 = "43f6cc08a90d47163c7fb7dfd50705f1c48578d72ef84692bbb5185874a0dc85";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/sk/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/sk/thunderbird-91.10.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "788a802d157cba9957b6724431143e69519b7d02ef1537c89b9a32220a35045c";
+      sha256 = "28dbf8390ea807e3cf02a0e6a5cafe983c7dfb589b29e68db92fee18c9e29d66";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/sl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/sl/thunderbird-91.10.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "4a2d9398e4944cb658d2b5ef16b4521123e6a0146b5eb70ebd45c20edb53edfc";
+      sha256 = "a7d8c3f8d16d26cbd1e9e63a0a15dd7db67090d4add02dcef6a642f11b20d591";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/sq/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/sq/thunderbird-91.10.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "a587c265f6ccde0e1acfef1f196a1a0a81041c9ef58dd829f189508af167727c";
+      sha256 = "3ec2ab4f55478e1d51597c5807786907f6b1c47fa711cffb7c6f4c0fb1ec53ce";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/sr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/sr/thunderbird-91.10.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "e9f7dd607472504762f568d544b6a34a0e1ffe58c012f7116214fcdeb9c350e6";
+      sha256 = "682c33ed9729ca234cbd15324d915556f586dbaf53ddc5bed2250933eefbdbe9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/sv-SE/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/sv-SE/thunderbird-91.10.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "c8fe1447f93e4eed8c3da48efc53de313b86558b4fe6f83f8fc49a87da15385a";
+      sha256 = "7837ab2c244790519c68c915ebf93e4f406aabbd9f6fbd85b9467f5af1d58f4b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/th/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/th/thunderbird-91.10.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "cde4dfc3593003fb4c2e10bb9b8b532079766a19b21598f48be55c1e374b12bd";
+      sha256 = "5289586845d249cf8a83c210e5b94b42f2223655d66df84d435654be8c26cf11";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/tr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/tr/thunderbird-91.10.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "f8279a10c110e85f2ad5da42a0fb7597261137fffe1a6b3fc885cd7b9b4fb7f9";
+      sha256 = "ede82641f1c64daea53ee90b00522b62e9d64dd91649be3d4f837947a0428edf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/uk/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/uk/thunderbird-91.10.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "13f6d38d8e12d031988e01affc8bacff6e9b747ea0b84c7b3cecff0a981f2d25";
+      sha256 = "a9dde2af7fcc82ad75c44e749ffc33ee3a9d99e488e741c4835b336280d83520";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/uz/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/uz/thunderbird-91.10.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "c0f39cf07b4f7ba6c327a1d00d28c2f67d7b84311ee8e7d95f9c69c7040e9b7f";
+      sha256 = "51e9159b8ec1ddb0f8b6230e5e2dd5b927acce15c2e44dce757719a3c8a62bed";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/vi/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/vi/thunderbird-91.10.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "faf7e817bcea9415b7e4ab90d0db710c83524db188dd61e46c8d9698fd2b66ad";
+      sha256 = "1223164bca2d7a81e547d0561b2cb5a1c8eaac736216633ac4953f9d4cd1c854";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/zh-CN/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/zh-CN/thunderbird-91.10.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "0ac8f96c7f47c64019e2b3df1c0eadfbc91e4ad118bf758498918225638a8563";
+      sha256 = "b84098c0548b9fad545605945385df3459808c4bb33fbdcf3d0211e91a43951c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/zh-TW/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/zh-TW/thunderbird-91.10.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "9a91601a9dd0bae489dd8f8654413cdc2cbd5655ed19bb7f8c73082ea00274ff";
+      sha256 = "f40a600316380294b7b1acbd87c38d1bac76a41630defa59be76af77a0e41649";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/af/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/af/thunderbird-91.10.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "bb9fdc595c8744910d5f15a1a15b5428adf33b50ccccb60286267497b435bbdf";
+      sha256 = "de39f9bc269c0dead5d5ebd4799cc0f59a82e1b62f5a623043ee044b2aabbeb9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ar/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ar/thunderbird-91.10.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "3e368cd81a31f381c1297ee795589a0965b411b7244342f77a528defa68aa38d";
+      sha256 = "70112b9fee721fe60765b641ea3a21d5aa3ad88ac9a2e7acec3a1904c5bd6a95";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ast/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ast/thunderbird-91.10.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "475b32d53927258e065fde96aba88eda57f5a24c55fa1ed5b5a95e3f8cad0fbe";
+      sha256 = "638557c111943db57909176692472865cd670acad2b0b14065b111eb1d7509a4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/be/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/be/thunderbird-91.10.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "7b5e4571043d3118147f52db032d123be071528e80742bf2b8ce55879df83e9c";
+      sha256 = "7124ed0fe0c983945873fc5d8ac558b2422e7247236466ebadf85140d57059ef";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/bg/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/bg/thunderbird-91.10.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "2b6ac5a76ff80a09a7888150c9a99e2844c5b88bcace220a0422799774e90bab";
+      sha256 = "32d24a735f32b681c191ef8c9d39fd3db8ddb2db7b2c6197abf5eebae074bc2a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/br/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/br/thunderbird-91.10.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "16ed5fbe1963ce35d8c81e47509cc57b8ca9dae57203bc951563e1b56d8ff50a";
+      sha256 = "080820b97c383efdf6a2c93e6ecc0883b17e12cd1d48c7813658fc163632be2f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ca/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ca/thunderbird-91.10.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "e9e3dea7f36ceb031f0cc3aa200c1dd5c0ef1794b52744ab67ba620b1b547d8b";
+      sha256 = "4e456b2a6750b4cec328c2dceb2cb100b0e5e2baa8df08aa1b980cf7ff01a721";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/cak/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/cak/thunderbird-91.10.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "c149d046e0170c81a206664117fe3c6b80c33a8f1197077fc7509f14abc9cfb4";
+      sha256 = "a073806875ee0bb3e733f222291a2778828d3376d988fa42797a3f49f3431389";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/cs/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/cs/thunderbird-91.10.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "459cc60f8154379365f5cf5c7404bbc05336fe896306c4449a96867f4a75632d";
+      sha256 = "5d87e3348a3f38cb771c2b634f751a4ad9e1a8a558323a8c2b2e9c5d63f28ab1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/cy/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/cy/thunderbird-91.10.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "275c63bb06a93328b5463c57d1c58d58bf6c44b8b8eccac6721a16151081862f";
+      sha256 = "739c051f43ddd4caff2a1cfa5c0a474bd7a119418f85e3aedbdd6a67f7af4cc6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/da/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/da/thunderbird-91.10.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "81ed21119de61e828bfec4edebfb01033d650710318bb06f82d873c647a1f692";
+      sha256 = "b69e4beda5462775fddaba2c417552e9979b3861148ffe16457a00453ac183f7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/de/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/de/thunderbird-91.10.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "9bd615839704aade1dc694d83884ef5b30ba55245bb2d3a4be6117684652da95";
+      sha256 = "50fc6716fa6cee435406b44c44adc1fa50a55bee7897b6ffae100504163a802d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/dsb/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/dsb/thunderbird-91.10.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "a308bfba61442aa857dbe118e202fba0b8087af7835e61b8913ad31dce53d9db";
+      sha256 = "1575302de0bc2ecad105e5354ffb6ce3c7bc5e8e391956a67b697c7b6102f961";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/el/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/el/thunderbird-91.10.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "052c90e718185132c939453e397344b6e3c096cca136d12e8b2d9f93055ca8f2";
+      sha256 = "5c085c4777b5aa09d45ee8dd256edef0f6f0dac5eecea3797ddf02b6a370b2e9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/en-CA/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/en-CA/thunderbird-91.10.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "000b5958418f22cf0daf32b67842f8a0f05ba679e502b4b8df2dba08cbe51319";
+      sha256 = "dff03c9e38c33b42acd404968b70a00fc89bf1f3b2ac49d4f8675a613d8dcf4c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/en-GB/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/en-GB/thunderbird-91.10.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "c39adcf0ad4eb94d95b703b1fd369ee0d6d0037492c0ad9441b2c07190ce6bec";
+      sha256 = "f9fd4455c5c4754aec95e1b00a6e23949e35487480a500b36dbda975e77cdd89";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/en-US/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/en-US/thunderbird-91.10.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "7f7658da73a125074822bf560bbc17220adc7d5e0f636e55f62aab48332bdc64";
+      sha256 = "8f9b14194079a4ae7527268e7bb734da50e6b467b81dfb43f959af946dcdc798";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/es-AR/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/es-AR/thunderbird-91.10.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "f4ce57dc193ceca6b5b37686e1b2584555b9a9ebb44ac9120434fc424ea7e94f";
+      sha256 = "2d0f59719874d3177cfaf001cc9bb1fb2e04477eba5320de991d3e0d9837112b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/es-ES/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/es-ES/thunderbird-91.10.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "bcf930f5a54abd8b0776bfdf435ec7ed680c15ecce5196eea22abdbdb80db88e";
+      sha256 = "ab259fed2e73489db33d7774c6fc799042d576d82f9e3b08fb05937a35e2b272";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/et/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/et/thunderbird-91.10.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "f1ea30df791704f46ccbac71eba1c78004ad7e2a334bfd730519f046b3a5d7cb";
+      sha256 = "30b7fef94e9bb13b7e4271d41f43c8f7c413c5ebbc3129d2dd9ebb4daf5e859c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/eu/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/eu/thunderbird-91.10.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "e97be105f43e7489ba439a8b32c0e27756270a6a2b8cb1961fc153050163b76e";
+      sha256 = "913ee5425f34fa5f45ac56a94724bc84975ac3a849a45484535edeb3477fda10";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/fi/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/fi/thunderbird-91.10.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "ddaaee356e7ae031f6727eba22b3d5d2773133a5e5bdac18a4bcc98277a2b729";
+      sha256 = "19be3051972f397b1c2ef7c1aa6a40e030fb81f0ad1287f7cfdf6554c1f5e556";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/fr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/fr/thunderbird-91.10.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "ff68f1262723449204431790abbc287112457aa44c5cd7eb8364c067fdc74f60";
+      sha256 = "00845284cb8e1a8ab917484bb0249035c40d4077cb8d6cbb7a5ea7e5aef67d54";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/fy-NL/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/fy-NL/thunderbird-91.10.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "01cabd0e2f9d342781104d7621f8d40ee66abe1c6f1068c47af6cc8915a39c69";
+      sha256 = "658a6061c730a526ac1cc71c13717d3f8d823cd04409784aec6f0a456e764af8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ga-IE/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ga-IE/thunderbird-91.10.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "c456e890575932351e0a62279c3e4bf512968963251ed653569db42d6ef1db88";
+      sha256 = "4fc23cd0b4fecaaf68ed2f8adbd5b39aa33304485f86a9616a2315fe3d168a40";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/gd/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/gd/thunderbird-91.10.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "eedc9c0f3787504e93e0c38527f47784ee088bc2d9fcc7ed804b52138bc3d774";
+      sha256 = "f7a43db3c12d4f211564fb0799170799a5f4964b4e88507e33081075e5a338eb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/gl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/gl/thunderbird-91.10.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "ce75d1222c1050820c7a43c930c58a71cc8bf8123a5868fb6dd438f23eb1a9a7";
+      sha256 = "d83ffe2851500e7a9d3ccf365781b2b846ac69949a240fe693379e91ae78779f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/he/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/he/thunderbird-91.10.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "645cd8cd584a2c3d610ca2659a1ae320352d296f2cfe55fd8d612cbeb38abe9a";
+      sha256 = "c5eedb0104bcb9ddaf18ea8eb1fa7b9166d8eaa091113fa9bbff95726d068c96";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/hr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/hr/thunderbird-91.10.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "17191b00917692eba111da1a01284c52e28cfe22690f6632616b8e304db81e5a";
+      sha256 = "a6842151bda61775795383998dd41de2eae6eeb20231fc3472a651bf917c8e1d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/hsb/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/hsb/thunderbird-91.10.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "f402328a7e331760de91f1eb7acaa7a445cbc50e7f5e00b6c0f02497fc571e4d";
+      sha256 = "7e54059a97e6a9a0e32ee5b27fd997bf1c6e4d597901e0fcbfc193f6dbee2ec1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/hu/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/hu/thunderbird-91.10.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "ce8b189d0afd1f9a1276cdc1c54b4ff0fbaf0ea14645538a39a40eb6c5a26baa";
+      sha256 = "05cdaf5d5fe3c551423004a14db8108fd8a0b318d9b543b5c92e5b96dae2b799";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/hy-AM/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/hy-AM/thunderbird-91.10.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "3dba03a75431f7f054a46a610337518e93a7cfb9a8bde7bfe0f3c2aef0df46fe";
+      sha256 = "9b90223b7acdc109de8c13a9dbf170239b97568aea2f2868540f2e4fe35976b6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/id/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/id/thunderbird-91.10.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "e3269270781a76ff3ccb013d40e4b18f22a733048016ca9dfd7b82bd6e98e39d";
+      sha256 = "3d8dd56a253ae7f145ced1af66ea97ee3aa3eede126144249f1ee468bb91cfd7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/is/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/is/thunderbird-91.10.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "0db05ecd5d192868743fdc534f76b3d96e1484bf4d196ee459ba2d53fd5ac4a3";
+      sha256 = "99a89bd7a07ecc7aa9e51e6dc95c779f4b7d74139e1ea2fd66b57a34292b4732";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/it/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/it/thunderbird-91.10.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "99acc3cd6a1c81885a565ea09c6668aea1a946b0fced9db475655fba7d0473c4";
+      sha256 = "5a571b40ab772564692420f3a3566693a62ba380076dc230bfbd5e3eded175ec";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ja/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ja/thunderbird-91.10.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "5ca41905a895b8ad236fc667a5bb01d1ddde37381a65374feb2549f2f21f501d";
+      sha256 = "db77d4d436487b995297edf2cce7adc61d326475d0b24467b3ae8896fba322d9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ka/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ka/thunderbird-91.10.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "460434b2096ddbcd58abccdde445a8e06963e5bddc45bb88442781fbcd7b92ae";
+      sha256 = "0d842867562016c2f77f3de42c837c23b360096e7166b363211de3fd0645717c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/kab/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/kab/thunderbird-91.10.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "8d3877852ebbf78bf637dccc29c9e075757376cc0f0eac8109d0909a7a84531b";
+      sha256 = "b5645eb26f8c2f6b974cdc8f890fc393c037081c557f74934cecc1ba751598a2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/kk/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/kk/thunderbird-91.10.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "7d51c30a43e3b56ae467fb81704323902d852e2ec98d0551aec500ddfe79829a";
+      sha256 = "b91daa27503bf1a958838aa2ada1f42f6c764fd23bdebbd8074b8038ee43b28d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ko/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ko/thunderbird-91.10.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "a61eaaeb6fab5a40b7a3ec25c9aef82364c3de7b6132bf1a0201afca7279ff79";
+      sha256 = "1b1ea7b3b2102cd0010be29e9ae45b1022403c335a29fb54d71bb40812a42cef";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/lt/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/lt/thunderbird-91.10.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "c09b1b265f0c214eaaa864e09584c8b18270b3e1c22101dfaaf8ff0bca930f04";
+      sha256 = "a8b74f238c88e377b889aa97ca126015441bc27086e2b3f2f40481c430d94803";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/lv/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/lv/thunderbird-91.10.0.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "7579ec4f5a58f716bc94eb3333672350361d1a3ac11e2434eb7a2026f13d90e5";
+      sha256 = "2f8e62ef1c8d565e85e7adce3142cfc9e86d7eedf305c880da8c660cd63721ef";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ms/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ms/thunderbird-91.10.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "e5dc0ae6d2d0c99a14fa811030b11b90b5b53b6b9b329d6d642d5c4ab18e550a";
+      sha256 = "06e8c979c877f48c30ac540cf6ef26aabea52f30447b30f2acb4f08693644c45";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/nb-NO/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/nb-NO/thunderbird-91.10.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "dc4838ccdfe5c59ac7438fbeea01ff675801b14c216c6f1342206f7826bfa846";
+      sha256 = "e9efcaede89fae1bcbc5bc717edb6fb05243a78446f0160cda2eaaf8022c343e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/nl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/nl/thunderbird-91.10.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "d82604da582c5d3980eda14c488575810ccf20713024e0e0845dbf224cc6e61b";
+      sha256 = "56e697342120540b1c0d53d6a261a5bf8fa2db8e9c7ce4ab88651859fd3b9cc8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/nn-NO/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/nn-NO/thunderbird-91.10.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "d47e71a9c2ee42d9f379aa44100a403d89929c1b668a286aa189a5a087898f58";
+      sha256 = "3ee2a8769ad9d8c1d2899350329715e08264769d64bd04a43e0de1fab309f124";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/pa-IN/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/pa-IN/thunderbird-91.10.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "5aa634d92d4937f628e50ab796ffb65123db63b2392918481eb8a63d14ca5bc5";
+      sha256 = "9d54b69857b27ac6e95362c1f357f42e45a34a7ee8be69de2bf47ab1899498fc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/pl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/pl/thunderbird-91.10.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "56b80fc669ed97371706a1eb13e151362f0b312df531d9832835fb12611e9310";
+      sha256 = "9a54943e207116235c7a28e629b83bf3ecbf583df72bb92dc2b776b260e7ce31";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/pt-BR/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/pt-BR/thunderbird-91.10.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "801d998fc5544c1cdf68b5b7269638dcd8cf0a7c2d4c8e9fc2cd5f78fa19a9b1";
+      sha256 = "2a19f03062aefa4190e497b9affe77e2d8fadcef170dcdf6af70132eee534352";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/pt-PT/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/pt-PT/thunderbird-91.10.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "35839a406cb8656ed4625f74e9711419ac91c76952975892fab99b8d175dd768";
+      sha256 = "46ad75c05caf1c6b69e790271c25a00817589665a015005c2cbdf50a7ed6e11f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/rm/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/rm/thunderbird-91.10.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "86fc3237284821f4f9ca16b7d8aeca3b843b5c9269e42422dd451e39cec6ceef";
+      sha256 = "15dfdc82675221cc29556a6449476b589353d36672c667ff79df1371b8258ea7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ro/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ro/thunderbird-91.10.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "ad3dcceec9d00c964b6b5529eb049c8130fdc8c945eced774e6cbf49c6cd2702";
+      sha256 = "8482499c876f7b2b20fcfada58edc20d5b415509cae1872d9c9fe96931cea69b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ru/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ru/thunderbird-91.10.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "21d61b1b417263236134a8c666103dd1a0dbcf9db23af2ca0fede2710541fc30";
+      sha256 = "0067b61d350821a1b5d15ad1116e3f2b7328a4b3643dd82cf58e7fb03b868475";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/sk/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/sk/thunderbird-91.10.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "c0c9ce86af798fa0693a382b9df0c3b5d9067c917af16afc46c7e85ee8e96a24";
+      sha256 = "9341b83c530caa540932395ab36c08b74a8691bdd48bc26bd113ebd5a3c29a1f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/sl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/sl/thunderbird-91.10.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "df974a11f9b1cbcec5252443c53cc653080b1ed5dec80e76461585ee355302de";
+      sha256 = "069325ad5d0e91692ae7c6dadae55c82e43b84e4a83fcfb61d2ae758440d34d1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/sq/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/sq/thunderbird-91.10.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "9c837fec2ad71217761eaa90ab009230eb32a45f8e7eda46a98df57dc623e4f8";
+      sha256 = "6f4d85b148513012025397b768d023c2c635816d7d0d3a30e04b6ea447fdf30a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/sr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/sr/thunderbird-91.10.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "9c952da9ffed908873231c34048eac64f1213cbf7ba322da7cff3dddc33d8859";
+      sha256 = "6eaedef85eec97dbfa2ff587830297a7c355a67d5eb0bb8be2db3d35dd09a5b4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/sv-SE/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/sv-SE/thunderbird-91.10.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "3ebdbe94b678e306e84967d6ab627eb0a5256dd4eb0b80b0c1ead10663679c7a";
+      sha256 = "b04c856357f0786f96ff0d49c26e2d83d5d4e11391e44999bf20843c32aecf31";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/th/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/th/thunderbird-91.10.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "96651e467785e0a56662b98aff11b08db1a1ff4ac93af52b797e2617b286db06";
+      sha256 = "9b3b2906819660403d77a26d55c1799518b2cab7e38c49a268727d4384a2dbbd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/tr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/tr/thunderbird-91.10.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "5b5df531ca83c13f317ec88a1cdb643c915dc5d14ef5e7b03c7dd68c1f21ad0d";
+      sha256 = "ec1120ac2ac10abb3a0806198e4edecd214a09d6ffa6ef91d6787780dcdabab5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/uk/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/uk/thunderbird-91.10.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "058fc28badd07216bc892c3318c021871d8d7937e2bda126a3f390a7ddca7bb0";
+      sha256 = "1250e53554a6c211ce8717645d5902d72937fe3d25a28c3902cca406270c607c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/uz/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/uz/thunderbird-91.10.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "0bb4706398f75ec0704da00c0a9d8e0cff6e7d8105927799898d04b2a7d3b53f";
+      sha256 = "0d507bce1a4c06e601156db34bd4530a408046093d6e8ec46b67021a50d52311";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/vi/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/vi/thunderbird-91.10.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "8e10bd3577f736c41823203fbbb7738c2f1c9849ba0437a3bf58c06c168abc52";
+      sha256 = "d1e586d8de7eaf779af61a1015f3d3b77bb45e2675d6538d706405f3d184f666";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/zh-CN/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/zh-CN/thunderbird-91.10.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "94c9f500b85b9276057cfa24bf9f3650b461c002d083e87b5ab0b567cf7a292e";
+      sha256 = "eff56e5044ee73ca0ec1152fb69bcff3e42978284d18ae95c106af93945ef949";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/zh-TW/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/zh-TW/thunderbird-91.10.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "1d5e6bd0689e51af1a162d4a599d560631df32f867d34ea451e39348b89ec4cd";
+      sha256 = "1a1fbced83939a71fff43f00ed1b4b94c9c47c5b87370609df9d810d4a72fbaa";
     }
     ];
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index 363b5863569a7..ba52b66ef7276 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -3,13 +3,13 @@
 rec {
   thunderbird = (buildMozillaMach rec {
     pname = "thunderbird";
-    version = "91.9.1";
+    version = "91.10.0";
     application = "comm/mail";
     applicationName = "Mozilla Thunderbird";
     binaryName = pname;
     src = fetchurl {
       url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-      sha512 = "997751056ad44367a128aef13ddd55f80798f262644253f814e6e607b3bfc3e33070ed072fa7062586378234cabc7ad106efa26befc3ecb843c5dd02c1498f0f";
+      sha512 = "335d47e93d5fce4ff6e1ec0305cdaa86031f28289cc06f30ab3782bae484ad10ac4b9aa70911787627744277715edffd8ec8c3a2008f00b8b90ea02b0d79fcc8";
     };
     extraPatches = [
       # The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
diff --git a/pkgs/applications/networking/mullvad-vpn/default.nix b/pkgs/applications/networking/mullvad-vpn/default.nix
index cf22d8804068d..97dc48f6e0d06 100644
--- a/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -89,6 +89,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/mullvad/mullvadvpn-app";
     description = "Client for Mullvad VPN";
     changelog = "https://github.com/mullvad/mullvadvpn-app/blob/${version}/CHANGELOG.md";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ Br1ght0ne ymarkus flexagoon ];
diff --git a/pkgs/applications/networking/onionshare/default.nix b/pkgs/applications/networking/onionshare/default.nix
index e7b661ae6ae74..8452d3c26f651 100644
--- a/pkgs/applications/networking/onionshare/default.nix
+++ b/pkgs/applications/networking/onionshare/default.nix
@@ -14,6 +14,7 @@
 , pycrypto
 , pynacl
 , pyside2
+, pysocks
 , pytestCheckHook
 , qrcode
 , qt5
@@ -132,6 +133,7 @@ rec {
       pyside2
       psutil
       qrcode
+      pysocks
     ];
 
     nativeBuildInputs = [ qt5.wrapQtAppsHook ];
diff --git a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
index 8de78c580aaee..fd5424cee3424 100644
--- a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
+++ b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "6.9.7";
+  version = "6.9.8";
   pname = "frostwire";
 
   src = fetchurl {
     url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.amd64.tar.gz";
-    sha256 = "sha256-LsmDfNAj10x+txJ4PugyF3Irj/N1reb3ChTvFFIucdc=";
+    sha256 = "sha256-gslNdvxA4rGKg0bjf2KWw7w9NMp3zqrii144AfKsV4s=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -35,7 +35,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.frostwire.com/";
     description = "BitTorrent Client and Cloud File Downloader";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ gavin ];
     platforms = [ "x86_64-linux"];
diff --git a/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix b/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix
index a760a0f96c35c..df314b6591c20 100644
--- a/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix
+++ b/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix
@@ -21,6 +21,10 @@ stdenv.mkDerivation rec {
     hash = "sha256-i7c1jSawHshj1kaXl8tdpelIKU24okeg9K5/+ht6t2k=";
   };
 
+  passthru = {
+    inherit libtorrent;
+  };
+
   nativeBuildInputs = [
     cmake
   ];
diff --git a/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix b/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix
index f166f6d0e29f2..fa459137f1994 100644
--- a/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix
+++ b/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix
@@ -27,6 +27,10 @@ stdenv.mkDerivation rec {
     hash = "sha256-HTwAs8dfZVXfLRNiT6QpjKGnuahHfoMfYWqdKkedUL0=";
   };
 
+  passthru = {
+    inherit libtorrent;
+  };
+
   nativeBuildInputs = [
     autoconf-archive
     autoreconfHook
diff --git a/pkgs/applications/networking/p2p/soulseekqt/default.nix b/pkgs/applications/networking/p2p/soulseekqt/default.nix
index 0d2fc0fd833cd..c281756bed357 100644
--- a/pkgs/applications/networking/p2p/soulseekqt/default.nix
+++ b/pkgs/applications/networking/p2p/soulseekqt/default.nix
@@ -52,6 +52,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "Official Qt SoulSeek client";
     homepage = "https://www.slsknet.org";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [ ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/p2p/tixati/default.nix b/pkgs/applications/networking/p2p/tixati/default.nix
index 9a0cc70c1999e..bafbb443458aa 100644
--- a/pkgs/applications/networking/p2p/tixati/default.nix
+++ b/pkgs/applications/networking/p2p/tixati/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Torrent client";
     homepage = "http://www.tixati.com";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ volth ];
diff --git a/pkgs/applications/networking/pcloud/default.nix b/pkgs/applications/networking/pcloud/default.nix
index 50a26ef50f6a3..4cb3a43640cca 100644
--- a/pkgs/applications/networking/pcloud/default.nix
+++ b/pkgs/applications/networking/pcloud/default.nix
@@ -104,6 +104,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Secure and simple to use cloud storage for your files; pCloud Drive, Electron Edition";
     homepage = "https://www.pcloud.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ patryk27 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/remote/anydesk/default.nix b/pkgs/applications/networking/remote/anydesk/default.nix
index 54d7c5c6813aa..69276c229b3c2 100644
--- a/pkgs/applications/networking/remote/anydesk/default.nix
+++ b/pkgs/applications/networking/remote/anydesk/default.nix
@@ -18,14 +18,14 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "anydesk";
-  version = "6.1.1";
+  version = "6.2.0";
 
   src = fetchurl {
     urls = [
       "https://download.anydesk.com/linux/${pname}-${version}-amd64.tar.gz"
       "https://download.anydesk.com/linux/generic-linux/${pname}-${version}-amd64.tar.gz"
     ];
-    sha256 = "1ai58fsivb8al1279bayl800qavy0kfj40rjhf87g902ap3p4bhh";
+    sha256 = "k85nQH2FWyEXDgB+Pd4yStfNCjkiIGE2vA/YTXLaK4o=";
   };
 
   passthru = {
@@ -85,6 +85,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     inherit description;
     homepage = "https://www.anydesk.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ shyim ];
diff --git a/pkgs/applications/networking/remote/aws-workspaces/default.nix b/pkgs/applications/networking/remote/aws-workspaces/default.nix
index 48b44656ff0af..4eea552810b51 100644
--- a/pkgs/applications/networking/remote/aws-workspaces/default.nix
+++ b/pkgs/applications/networking/remote/aws-workspaces/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Client for Amazon WorkSpaces, a managed, secure Desktop-as-a-Service (DaaS) solution";
     homepage = "https://clients.amazonworkspaces.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ]; # TODO Mac support
     maintainers = [ maintainers.mausch ];
diff --git a/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
index 1ecf805944e25..5051d2308f02c 100644
--- a/pkgs/applications/networking/remote/citrix-workspace/generic.nix
+++ b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
@@ -206,6 +206,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     license = licenses.unfree;
     description = "Citrix Workspace";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ pmenke michaeladler ];
     inherit homepage;
diff --git a/pkgs/applications/networking/remote/nice-dcv-client/default.nix b/pkgs/applications/networking/remote/nice-dcv-client/default.nix
index 20b850328875b..23b2727d695d6 100644
--- a/pkgs/applications/networking/remote/nice-dcv-client/default.nix
+++ b/pkgs/applications/networking/remote/nice-dcv-client/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "High-performance remote display protocol";
     homepage = "https://aws.amazon.com/hpc/dcv/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ rmcgibbo ];
diff --git a/pkgs/applications/networking/remote/teamviewer/default.nix b/pkgs/applications/networking/remote/teamviewer/default.nix
index ba6d3d3c0f854..5aa6d62209579 100644
--- a/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -96,6 +96,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.teamviewer.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     description = "Desktop sharing application, providing remote support and online meetings";
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/resilio-sync/default.nix b/pkgs/applications/networking/resilio-sync/default.nix
index bbce0e1d350e3..35b4fa3aef43a 100644
--- a/pkgs/applications/networking/resilio-sync/default.nix
+++ b/pkgs/applications/networking/resilio-sync/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Automatically sync files via secure, distributed technology";
     homepage    = "https://www.resilio.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.unfreeRedistributable;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ domenkozar thoughtpolice cwoac ];
diff --git a/pkgs/applications/networking/scaleft/default.nix b/pkgs/applications/networking/scaleft/default.nix
index 6dca196948d7a..1f340a703611b 100644
--- a/pkgs/applications/networking/scaleft/default.nix
+++ b/pkgs/applications/networking/scaleft/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "ScaleFT provides Zero Trust software which you can use to secure your internal servers and services";
     homepage = "https://www.scaleft.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ jloyet ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/sniffers/sngrep/default.nix b/pkgs/applications/networking/sniffers/sngrep/default.nix
index 401d6dfa32cdb..558c7ef864611 100644
--- a/pkgs/applications/networking/sniffers/sngrep/default.nix
+++ b/pkgs/applications/networking/sniffers/sngrep/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sngrep";
-  version = "1.4.10";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "irontec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-P618QLk85W0oPisAGiRfpCgHCddKutUkGjwdfgsV4Es=";
+    sha256 = "sha256-GxC9+O72GHE8Tc6FReO7EdpZTSaqn9mBpZCYaKybJls=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/spideroak/default.nix b/pkgs/applications/networking/spideroak/default.nix
index 8c0fdfa3b9a7d..0bfc62ccfbb2b 100644
--- a/pkgs/applications/networking/spideroak/default.nix
+++ b/pkgs/applications/networking/spideroak/default.nix
@@ -53,6 +53,7 @@ in stdenv.mkDerivation {
   meta = {
     homepage = "https://spideroak.com";
     description = "Secure online backup and sychronization";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ amorsillo ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/networking/sync/onedrive/default.nix b/pkgs/applications/networking/sync/onedrive/default.nix
index a76be3d318c3c..7b6316631e89c 100644
--- a/pkgs/applications/networking/sync/onedrive/default.nix
+++ b/pkgs/applications/networking/sync/onedrive/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "onedrive";
-  version = "2.4.17";
+  version = "2.4.19";
 
   src = fetchFromGitHub {
     owner = "abraunegg";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-+ADAPxAZNDqLKLz6rAProqSDINDiTZhc2trxJFFMQeA=";
+    hash = "sha256-7kX7gC/1jSZGgV3ZhfebMIn/Y5gXkz22GDP2zpiwUZ4=";
   };
 
   nativeBuildInputs = [ autoreconfHook ldc installShellFiles pkg-config ];
diff --git a/pkgs/applications/networking/syncthing-gtk/paths.patch b/pkgs/applications/networking/syncthing-gtk/paths.patch
deleted file mode 100644
index 0ba5a4f2db84e..0000000000000
--- a/pkgs/applications/networking/syncthing-gtk/paths.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/syncthing_gtk/configuration.py
-+++ b/syncthing_gtk/configuration.py
-@@ -30,7 +30,7 @@
- 		"autokill_daemon"			: (int, 2),	# 0 - never kill, 1 - always kill, 2 - ask
- 		"daemon_priority"			: (int, 0), # uses nice values
- 		"max_cpus"					: (int, 0), # 0 for all cpus
--		"syncthing_binary"			: (str, "/usr/bin/syncthing"),
-+		"syncthing_binary"			: (str, "@syncthing@"),
- 		"syncthing_arguments"		: (str, ""),
- 		"minimize_on_start"			: (bool, False),
- 		"folder_as_path"			: (bool, True),
---- a/syncthing_gtk/tools.py
-+++ b/syncthing_gtk/tools.py
-@@ -303,7 +303,7 @@
- 			return False
- 		# signal 0 doesn't kill anything, but killall exits with 1 if
- 		# named process is not found
--		p = Popen(["killall", "-u", os.environ["USER"], "-q", "-s", "0", "syncthing"])
-+		p = Popen(["@killall@", "-u", os.environ["USER"], "-q", "-s", "0", "syncthing"])
- 		p.communicate()
- 		return p.returncode == 0
- 	else:
diff --git a/pkgs/applications/networking/synology-drive-client/default.nix b/pkgs/applications/networking/synology-drive-client/default.nix
index 3184c192b127f..69468c0a4df0d 100644
--- a/pkgs/applications/networking/synology-drive-client/default.nix
+++ b/pkgs/applications/networking/synology-drive-client/default.nix
@@ -7,6 +7,7 @@ let
   meta = with lib; {
     description = "Desktop application to synchronize files and folders between the computer and the Synology Drive server.";
     homepage = "https://www.synology.com/en-global/dsm/feature/drive";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ jcouyang MoritzBoehme ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
diff --git a/pkgs/applications/networking/termius/default.nix b/pkgs/applications/networking/termius/default.nix
index 0d4824fb55875..6a8960367be76 100644
--- a/pkgs/applications/networking/termius/default.nix
+++ b/pkgs/applications/networking/termius/default.nix
@@ -75,6 +75,7 @@ stdenv.mkDerivation rec {
     description = "A cross-platform SSH client with cloud data sync and more";
     homepage = "https://termius.com/";
     downloadPage = "https://termius.com/linux/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ Br1ght0ne th0rgal ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/tetrd/default.nix b/pkgs/applications/networking/tetrd/default.nix
index 937992a63d718..a9ccf1d2774ff 100644
--- a/pkgs/applications/networking/tetrd/default.nix
+++ b/pkgs/applications/networking/tetrd/default.nix
@@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Share your internet connection from your device to your PC and vice versa through a USB cable";
     homepage = "https://tetrd.app";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ Madouura ];
diff --git a/pkgs/applications/office/appflowy/default.nix b/pkgs/applications/office/appflowy/default.nix
index 821447fdfa265..82ae850065d89 100644
--- a/pkgs/applications/office/appflowy/default.nix
+++ b/pkgs/applications/office/appflowy/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "An open-source alternative to Notion";
     homepage = "https://www.appflowy.io/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
     changelog = "https://github.com/AppFlowy-IO/appflowy/releases/tag/${version}";
     maintainers = with maintainers; [ darkonion0 ];
diff --git a/pkgs/applications/office/jabref/default.nix b/pkgs/applications/office/jabref/default.nix
index 4ebfd7965954a..8d1f639622da9 100644
--- a/pkgs/applications/office/jabref/default.nix
+++ b/pkgs/applications/office/jabref/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "Open source bibliography reference manager";
     homepage = "https://www.jabref.org";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = [ maintainers.gebner ];
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index 6244b0fbc8cd4..a75c094521352 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -121,7 +121,7 @@ let
     optional optionals optionalString;
 
   jre' = jre_minimal.override {
-    modules = [ "java.base" "java.desktop" "java.logging" ];
+    modules = [ "java.base" "java.desktop" "java.logging" "java.sql" ];
   };
 
   importVariant = f: import (./. + "/src-${variant}/${f}");
diff --git a/pkgs/applications/office/mendeley/default.nix b/pkgs/applications/office/mendeley/default.nix
index 3b9963d8dbc7d..e204e04008ca8 100644
--- a/pkgs/applications/office/mendeley/default.nix
+++ b/pkgs/applications/office/mendeley/default.nix
@@ -139,6 +139,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://www.mendeley.com";
     description = "A reference manager and academic social network";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers  = with maintainers; [ dtzWill ];
diff --git a/pkgs/applications/office/moneyplex/default.nix b/pkgs/applications/office/moneyplex/default.nix
index 4038f5fd435a0..742e4dc9e2930 100644
--- a/pkgs/applications/office/moneyplex/default.nix
+++ b/pkgs/applications/office/moneyplex/default.nix
@@ -114,6 +114,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Moneyplex online banking software";
     maintainers = with maintainers; [ tstrobel ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = platforms.linux;
     license = licenses.unfree;
     downloadPage = "http://matrica.de/download/download.html";
diff --git a/pkgs/applications/office/morgen/default.nix b/pkgs/applications/office/morgen/default.nix
index e3390e54ee397..0e5332b953e59 100644
--- a/pkgs/applications/office/morgen/default.nix
+++ b/pkgs/applications/office/morgen/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "All-in-one Calendars, Tasks and Scheduler";
     homepage = "https://morgen.so/download";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/office/onlyoffice-bin/default.nix b/pkgs/applications/office/onlyoffice-bin/default.nix
index 214b8376d8d6b..8e1b7eb790204 100644
--- a/pkgs/applications/office/onlyoffice-bin/default.nix
+++ b/pkgs/applications/office/onlyoffice-bin/default.nix
@@ -171,6 +171,7 @@ stdenv.mkDerivation rec {
     downloadPage = "https://github.com/ONLYOFFICE/DesktopEditors/releases";
     changelog = "https://github.com/ONLYOFFICE/DesktopEditors/blob/master/CHANGELOG.md";
     platforms = [ "x86_64-linux" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ nh2 gtrunsec ];
   };
diff --git a/pkgs/applications/office/portfolio/default.nix b/pkgs/applications/office/portfolio/default.nix
index 12d7dc0dcbf30..30da3b3520459 100644
--- a/pkgs/applications/office/portfolio/default.nix
+++ b/pkgs/applications/office/portfolio/default.nix
@@ -25,11 +25,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "PortfolioPerformance";
-  version = "0.58.4";
+  version = "0.58.5";
 
   src = fetchurl {
     url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "sha256-Png9OcO5dzoeKp826FwdM7zkovuOnSYMnGw5weT2eJU=";
+    sha256 = "sha256-7olUx0JmztNb6uFsxKwOkBqkbMEiy2vb+iHqBe5I1PM=";
   };
 
   nativeBuildInputs = [
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A simple tool to calculate the overall performance of an investment portfolio";
     homepage = "https://www.portfolio-performance.info/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.epl10;
     maintainers = with maintainers; [ elohmeier oyren shawn8901 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index 3fd9c3410693a..7df8a607f4dfa 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "qownnotes";
-  version = "22.5.0";
+  version = "22.6.1";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
     # Fetch the checksum of current version with curl:
     # curl https://download.tuxfamily.org/qownnotes/src/qownnotes-<version>.tar.xz.sha256
-    sha256 = "52a81401a4a03c77e28f37f56c3ebdc6696ff43c75cc9330d10ba7e801f48ccd";
+    sha256 = "c5b2075d42298d28f901ad2df8eb65f5a61aa59727fae9eeb1f92dac1b63d8ba";
   };
 
   nativeBuildInputs = [ qmake qttools ];
diff --git a/pkgs/applications/office/softmaker/generic.nix b/pkgs/applications/office/softmaker/generic.nix
index 3c139e1eead73..6162aa2326062 100644
--- a/pkgs/applications/office/softmaker/generic.nix
+++ b/pkgs/applications/office/softmaker/generic.nix
@@ -122,6 +122,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "An office suite with a word processor, spreadsheet and presentation program";
     homepage = "https://www.softmaker.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix
index 46f2569b13ab2..d909b26526a90 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.wps.com/";
     platforms = [ "x86_64-linux" ];
     hydraPlatforms = [];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ mlatus th0rgal ];
   };
diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix
index b39fe00f2e091..b5c1467f69182 100644
--- a/pkgs/applications/office/zotero/default.nix
+++ b/pkgs/applications/office/zotero/default.nix
@@ -149,6 +149,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.zotero.org";
     description = "Collect, organize, cite, and share your research sources";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ i077 ];
diff --git a/pkgs/applications/radio/gnuradio/3.9.nix b/pkgs/applications/radio/gnuradio/3.9.nix
index 989722fdc3ecd..d607823bfeec4 100644
--- a/pkgs/applications/radio/gnuradio/3.9.nix
+++ b/pkgs/applications/radio/gnuradio/3.9.nix
@@ -46,13 +46,13 @@
 , pname ? "gnuradio"
 , versionAttr ? {
   major = "3.9";
-  minor = "6";
+  minor = "7";
   patch = "0";
 }
 }:
 
 let
-  sourceSha256 = "sha256-0JODgv9MNOkHDQYTVCZMzjr/G542+NvGP9wlH9iwLeg=";
+  sourceSha256 = "sha256-6HEvQsV2JCkgNvBYsy1jfSTUIwEnrKJTzXNIVcPeWFQ=";
   featuresInfo = {
     # Needed always
     basic = {
diff --git a/pkgs/applications/radio/gnuradio/default.nix b/pkgs/applications/radio/gnuradio/default.nix
index 14a4763259fa9..8a9ca156ec1a8 100644
--- a/pkgs/applications/radio/gnuradio/default.nix
+++ b/pkgs/applications/radio/gnuradio/default.nix
@@ -48,13 +48,13 @@
 , pname ? "gnuradio"
 , versionAttr ? {
   major = "3.10";
-  minor = "2";
+  minor = "3";
   patch = "0";
 }
 }:
 
 let
-  sourceSha256 = "sha256-WcfmW39wHhFdpbdBSjOfuDkxL8/fuMjjJoLUyCUud/o=";
+  sourceSha256 = "sha256-pH0nvZBUto9jXSN6fXD5vP1lIBwCMuFAvF2qT5dYsHU=";
   featuresInfo = {
     # Needed always
     basic = {
diff --git a/pkgs/applications/radio/js8call/cmake.patch b/pkgs/applications/radio/js8call/cmake.patch
new file mode 100644
index 0000000000000..04552eac40ecc
--- /dev/null
+++ b/pkgs/applications/radio/js8call/cmake.patch
@@ -0,0 +1,69 @@
+diff --git a/CMake/Modules/Findhamlib.cmake b/CMake/Modules/Findhamlib.cmake
+index 1590f05..e797851 100644
+--- a/CMake/Modules/Findhamlib.cmake
++++ b/CMake/Modules/Findhamlib.cmake
+@@ -47,7 +47,7 @@ if (NOT PC_HAMLIB_FOUND)
+ 
+   # libusb-1.0 has no pkg-config file on Windows so we have to find it
+   # ourselves
+-  find_library (LIBUSB NAMES usb-1.0 PATH_SUFFIXES MinGW32/dll)
++  find_library (LIBUSB NAMES libusb-1.0 usb-1.0 PATH_SUFFIXES MinGW32/dll)
+   if (LIBUSB)
+     set (hamlib_EXTRA_LIBRARIES ${LIBUSB} ${hamlib_EXTRA_LIBRARIES})
+     get_filename_component (hamlib_libusb_path ${LIBUSB} PATH)
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 75b80b3..7c04265 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -558,7 +558,6 @@ find_package (FFTW3 COMPONENTS double single threads REQUIRED)
+ #
+ # libhamlib setup
+ #
+-set (hamlib_STATIC 1)
+ find_package (hamlib 3 REQUIRED)
+ find_program (RIGCTL_EXE rigctl)
+ find_program (RIGCTLD_EXE rigctld)
+@@ -576,6 +576,7 @@ message (STATUS "hamlib_LIBRARY_DIRS: ${hamlib_LIBRARY_DIRS}")
+ find_package (Qt5Widgets 5 REQUIRED)
+ find_package (Qt5Multimedia 5 REQUIRED)
+ find_package (Qt5PrintSupport 5 REQUIRED)
++find_package (Qt5SerialPort 5 REQUIRED)
+ 
+ if (WIN32)
+   add_definitions (-DQT_NEEDS_QTMAIN)
+@@ -849,7 +850,7 @@ target_link_libraries (qcp Qt5::Widgets Qt5::PrintSupport)
+ add_library (wsjt_qt STATIC ${wsjt_qt_CXXSRCS} ${wsjt_qt_GENUISRCS} ${GENAXSRCS})
+ # set wsjtx_udp exports to static variants
+ target_compile_definitions (wsjt_qt PUBLIC UDP_STATIC_DEFINE)
+-target_link_libraries (wsjt_qt qcp Qt5::Widgets Qt5::Network)
++target_link_libraries (wsjt_qt qcp Qt5::Widgets Qt5::Network Qt5::SerialPort)
+ target_include_directories (wsjt_qt BEFORE PRIVATE ${hamlib_INCLUDE_DIRS})
+ if (WIN32)
+   target_link_libraries (wsjt_qt Qt5::AxContainer Qt5::AxBase)
+@@ -959,7 +960,6 @@ else ()
+       )
+   endif ()
+ endif ()
+-qt5_use_modules (js8call SerialPort) # not sure why the interface link library syntax above doesn't work
+ 
+ # if (UNIX)
+ #   if (NOT WSJT_SKIP_MANPAGES)
+@@ -1292,3 +1292,5 @@ configure_file ("${PROJECT_SOURCE_DIR}/CMakeCPackOptions.cmake.in"
+ set (CPACK_PROJECT_CONFIG_FILE "${PROJECT_BINARY_DIR}/CMakeCPackOptions.cmake")
+ 
+ include (CPack)
++
++add_definitions (-DJS8_USE_HAMLIB_THREE)
+diff --git a/Configuration.cpp b/Configuration.cpp
+index 8258f97..63a29bb 100644
+--- a/Configuration.cpp
++++ b/Configuration.cpp
+@@ -160,7 +160,7 @@
+ #include <QFont>
+ #include <QFontDialog>
+ #include <QColorDialog>
+-#include <QSerialPortInfo>
++#include <QtSerialPort/QSerialPortInfo>
+ #include <QScopedPointer>
+ #include <QDateTimeEdit>
+ #include <QProcess>
diff --git a/pkgs/applications/radio/js8call/default.nix b/pkgs/applications/radio/js8call/default.nix
new file mode 100644
index 0000000000000..e89d3445697f4
--- /dev/null
+++ b/pkgs/applications/radio/js8call/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchFromBitbucket
+, wrapQtAppsHook
+, pkg-config
+, hamlib
+, libusb1
+, cmake
+, gfortran
+, fftw
+, fftwFloat
+, qtbase
+, qtmultimedia
+, qtserialport
+}:
+
+stdenv.mkDerivation rec {
+  pname = "js8call";
+  version = "2.2.0";
+
+  src = fetchFromBitbucket {
+    owner = "widefido";
+    repo = pname;
+    rev = "v${version}-ga";
+    sha256 = "sha256-mFPhiAAibCiAkLrysAmIQalVCGd9ips2lqbAsowYprY=";
+  };
+
+  nativeBuildInputs = [
+    wrapQtAppsHook
+    gfortran
+    pkg-config
+    cmake
+  ];
+
+  buildInputs = [
+    hamlib
+    libusb1
+    fftw
+    fftwFloat
+    qtbase
+    qtmultimedia
+    qtserialport
+  ];
+
+  prePatch = ''
+    substituteInPlace CMakeLists.txt \
+        --replace "/usr/share/applications" "$out/share/applications" \
+        --replace "/usr/share/pixmaps" "$out/share/pixmaps" \
+        --replace "/usr/bin/" "$out/bin"
+  '';
+
+  patches = [ ./cmake.patch ];
+
+  meta = with lib; {
+    description = "Weak-signal keyboard messaging for amateur radio";
+    longDescription = ''
+      JS8Call is software using the JS8 Digital Mode providing weak signal
+      keyboard to keyboard messaging to Amateur Radio Operators.
+    '';
+    homepage = "http://js8call.com/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ melling ];
+  };
+}
diff --git a/pkgs/applications/radio/sdrplay/default.nix b/pkgs/applications/radio/sdrplay/default.nix
index 441ff1cf0f3d3..699389dd2d34b 100644
--- a/pkgs/applications/radio/sdrplay/default.nix
+++ b/pkgs/applications/radio/sdrplay/default.nix
@@ -44,6 +44,7 @@ in stdenv.mkDerivation rec {
       https://www.sdrplay.com/docs/SDRplay_API_Specification_v${lib.concatStringsSep "." (lib.take 2 (builtins.splitVersion version))}.pdf
     '';
     homepage = "https://www.sdrplay.com/downloads/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [ maintainers.pmenke ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/science/biology/flywheel-cli/default.nix b/pkgs/applications/science/biology/flywheel-cli/default.nix
index 7db8b0066263a..7d74b51f6066f 100644
--- a/pkgs/applications/science/biology/flywheel-cli/default.nix
+++ b/pkgs/applications/science/biology/flywheel-cli/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Library and command line interface for interacting with a Flywheel site";
     homepage = "https://gitlab.com/flywheel-io/public/python-cli";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = with maintainers; [ rbreslow ];
     platforms = [ "x86_64-darwin" "x86_64-linux" ];
diff --git a/pkgs/applications/science/biology/quast/default.nix b/pkgs/applications/science/biology/quast/default.nix
index ed3fc116ddaba..0a33c97673196 100644
--- a/pkgs/applications/science/biology/quast/default.nix
+++ b/pkgs/applications/science/biology/quast/default.nix
@@ -49,6 +49,10 @@ pythonPackages.buildPythonApplication rec {
   meta = with lib ; {
     description = "Evaluates genome assemblies by computing various metrics";
     homepage = "https://github.com/ablab/quast";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryNativeCode  # source bundles binary dependencies
+    ];
     license = licenses.gpl2;
     maintainers = [ maintainers.bzizou ];
     platforms = platforms.all;
diff --git a/pkgs/applications/science/electronics/bitscope/common.nix b/pkgs/applications/science/electronics/bitscope/common.nix
index 49415ea048413..2018878773ef0 100644
--- a/pkgs/applications/science/electronics/bitscope/common.nix
+++ b/pkgs/applications/science/electronics/bitscope/common.nix
@@ -24,6 +24,7 @@ let
 
     meta = with lib; {
       homepage = "http://bitscope.com/software/";
+      sourceProvenance = with sourceTypes; [ binaryNativeCode ];
       license = licenses.unfree;
       platforms = [ "x86_64-linux" ];
       maintainers = with maintainers; [
diff --git a/pkgs/applications/science/electronics/eagle/eagle.nix b/pkgs/applications/science/electronics/eagle/eagle.nix
index 5b4c8eb790fe6..6302c2dbfa384 100644
--- a/pkgs/applications/science/electronics/eagle/eagle.nix
+++ b/pkgs/applications/science/electronics/eagle/eagle.nix
@@ -73,6 +73,7 @@ let
     meta = with lib; {
       description = "Schematic editor and PCB layout tool from Autodesk (formerly CadSoft)";
       homepage = "https://www.autodesk.com/products/eagle/overview";
+      sourceProvenance = with sourceTypes; [ binaryNativeCode ];
       license = licenses.unfree;
       platforms = [ "x86_64-linux" ];
       maintainers = [ ];
diff --git a/pkgs/applications/science/electronics/picoscope/default.nix b/pkgs/applications/science/electronics/picoscope/default.nix
index 7db5cceebbaf6..596f220242bb2 100644
--- a/pkgs/applications/science/electronics/picoscope/default.nix
+++ b/pkgs/applications/science/electronics/picoscope/default.nix
@@ -41,6 +41,7 @@ let
       '';
       meta = with lib;
         shared_meta lib // {
+          sourceProvenance = with sourceTypes; [ binaryNativeCode ];
           description = "library for picotech oscilloscope software";
         };
     }) { };
@@ -132,6 +133,7 @@ in stdenv.mkDerivation rec {
         PicoScope for Linux, PicoScope for macOS and PicoScope for Windows
         users, or exported in text, CSV and MathWorks MATLAB 4 formats.
       '';
+      sourceProvenance = with sourceTypes; [ binaryBytecode ];
     };
 }
 
diff --git a/pkgs/applications/science/logic/isabelle/default.nix b/pkgs/applications/science/logic/isabelle/default.nix
index 9e5d40be2c6d5..009af3463a25a 100644
--- a/pkgs/applications/science/logic/isabelle/default.nix
+++ b/pkgs/applications/science/logic/isabelle/default.nix
@@ -47,10 +47,15 @@ in stdenv.mkDerivation rec {
         sha256 = "0jfaqckhg388jh9b4msrpkv6wrd6xzlw18m0bngbby8k8ywalp9i";
       };
 
-  buildInputs = [ polyml z3 veriT vampire eprover-ho ]
-    ++ lib.optionals (!stdenv.isDarwin) [ nettools java ];
+  buildInputs = [ polyml z3 veriT vampire eprover-ho nettools ]
+    ++ lib.optionals (!stdenv.isDarwin) [ java ];
 
-  sourceRoot = dirname;
+  sourceRoot = "${dirname}${lib.optionalString stdenv.isDarwin ".app"}";
+
+  postUnpack = if stdenv.isDarwin then ''
+    mv $sourceRoot ${dirname}
+    sourceRoot=${dirname}
+  '' else null;
 
   postPatch = ''
     patchShebangs .
@@ -112,6 +117,9 @@ in stdenv.mkDerivation rec {
       --replace '"$ML_HOME/" ^ (if ML_System.platform_is_windows then "sha1.dll" else "libsha1.so")' '"${sha1}/lib/libsha1.so"'
 
     rm -r heaps
+  '' + lib.optionalString (stdenv.hostPlatform.system == "x86_64-darwin") ''
+    substituteInPlace lib/scripts/isabelle-platform \
+      --replace 'ISABELLE_APPLE_PLATFORM64=arm64-darwin' ""
   '' + (if ! stdenv.isLinux then "" else ''
     arch=${if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64-linux" else "x86-linux"}
     for f in contrib/*/$arch/{bash_process,epclextract,nunchaku,SPASS,zipperposition}; do
@@ -178,9 +186,13 @@ in stdenv.mkDerivation rec {
       formulas in a logical calculus.
     '';
     homepage = "https://isabelle.in.tum.de/";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryNativeCode  # source bundles binary dependencies
+    ];
     license = licenses.bsd3;
     maintainers = [ maintainers.jwiegley maintainers.jvanbruegge ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 } // {
   withComponents = f:
diff --git a/pkgs/applications/science/logic/nuXmv/default.nix b/pkgs/applications/science/logic/nuXmv/default.nix
index 710cfdad39a8d..ad40902e92808 100644
--- a/pkgs/applications/science/logic/nuXmv/default.nix
+++ b/pkgs/applications/science/logic/nuXmv/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Symbolic model checker for analysis of finite and infinite state systems";
     homepage = "https://nuxmv.fbk.eu/pmwiki.php";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ siraben ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
diff --git a/pkgs/applications/science/logic/saw-tools/default.nix b/pkgs/applications/science/logic/saw-tools/default.nix
index df99d067f08c8..b6291bfae3698 100644
--- a/pkgs/applications/science/logic/saw-tools/default.nix
+++ b/pkgs/applications/science/logic/saw-tools/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation {
   meta = {
     description = "Tools for software verification and analysis";
     homepage    = "https://saw.galois.com";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license     = lib.licenses.bsd3;
     platforms   = lib.platforms.linux;
     maintainers = [ lib.maintainers.thoughtpolice ];
diff --git a/pkgs/applications/science/logic/tlaplus/toolbox.nix b/pkgs/applications/science/logic/tlaplus/toolbox.nix
index 3c53e66c8bd9f..86c3db9942a1e 100644
--- a/pkgs/applications/science/logic/tlaplus/toolbox.nix
+++ b/pkgs/applications/science/logic/tlaplus/toolbox.nix
@@ -97,6 +97,7 @@ stdenv.mkDerivation rec {
     '';
     # http://lamport.azurewebsites.net/tla/license.html
     license = with lib.licenses; [ mit ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     platforms = [ "x86_64-linux" ];
     maintainers = [ ];
   };
diff --git a/pkgs/applications/science/logic/tptp/default.nix b/pkgs/applications/science/logic/tptp/default.nix
index 9c91eaddfc47e..5df511ebaa8e7 100644
--- a/pkgs/applications/science/logic/tptp/default.nix
+++ b/pkgs/applications/science/logic/tptp/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
     # Also, it is unclear what is covered by "verbatim" - we will edit configs
     hydraPlatforms = [];
     platforms = platforms.all;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
   };
 }
diff --git a/pkgs/applications/science/logic/verifast/default.nix b/pkgs/applications/science/logic/verifast/default.nix
index c610256ccaef8..a1f5ec65a3be3 100644
--- a/pkgs/applications/science/logic/verifast/default.nix
+++ b/pkgs/applications/science/logic/verifast/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Verification for C and Java programs via separation logic";
     homepage    = "https://people.cs.kuleuven.be/~bart.jacobs/verifast/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license     = lib.licenses.mit;
     platforms   = [ "x86_64-linux" ];
     maintainers = [ lib.maintainers.thoughtpolice ];
diff --git a/pkgs/applications/science/logic/verit/default.nix b/pkgs/applications/science/logic/verit/default.nix
index 8c9bb7f2005af..6c0d1061dcab9 100644
--- a/pkgs/applications/science/logic/verit/default.nix
+++ b/pkgs/applications/science/logic/verit/default.nix
@@ -22,7 +22,6 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "An open, trustable and efficient SMT-solver";
     homepage = "https://verit.loria.fr/";
     license = licenses.bsd3;
diff --git a/pkgs/applications/science/logic/z3/4.4.0.nix b/pkgs/applications/science/logic/z3/4.4.0.nix
index a3d6c16fb7df2..857bbbdee5d00 100644
--- a/pkgs/applications/science/logic/z3/4.4.0.nix
+++ b/pkgs/applications/science/logic/z3/4.4.0.nix
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ python ];
   enableParallelBuilding = true;
 
+  CXXFLAGS = if stdenv.isDarwin then "-std=gnu++98" else null;
+
   configurePhase = "python scripts/mk_make.py --prefix=$out && cd build";
 
   # z3's install phase is stupid because it tries to calculate the
diff --git a/pkgs/applications/science/machine-learning/sc2-headless/default.nix b/pkgs/applications/science/machine-learning/sc2-headless/default.nix
index 9438cd972f95b..97cad175ac17f 100644
--- a/pkgs/applications/science/machine-learning/sc2-headless/default.nix
+++ b/pkgs/applications/science/machine-learning/sc2-headless/default.nix
@@ -51,6 +51,7 @@ in stdenv.mkDerivation rec {
   meta = {
     platforms = lib.platforms.linux;
     description = "Starcraft II headless linux client for machine learning research";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = {
       fullName = "BLIZZARD® STARCRAFT® II AI AND MACHINE LEARNING LICENSE";
       url = "https://blzdistsc2-a.akamaihd.net/AI_AND_MACHINE_LEARNING_LICENSE.html";
diff --git a/pkgs/applications/science/math/cplex/default.nix b/pkgs/applications/science/math/cplex/default.nix
index a570e7e9c6d1e..ddc950b30664b 100644
--- a/pkgs/applications/science/math/cplex/default.nix
+++ b/pkgs/applications/science/math/cplex/default.nix
@@ -80,6 +80,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Optimization solver for mathematical programming";
     homepage = "https://www.ibm.com/be-en/marketplace/ibm-ilog-cplex";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ bfortz ];
diff --git a/pkgs/applications/science/math/geogebra/default.nix b/pkgs/applications/science/math/geogebra/default.nix
index b7eb8b11ecdc8..43d1a3e2068b9 100644
--- a/pkgs/applications/science/math/geogebra/default.nix
+++ b/pkgs/applications/science/math/geogebra/default.nix
@@ -29,6 +29,10 @@ let
     homepage = "https://www.geogebra.org/";
     maintainers = with maintainers; [ sikmir imsofi ];
     license = with licenses; [ gpl3 cc-by-nc-sa-30 geogebra ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode  # some jars include native binaries
+    ];
     platforms = with platforms; linux ++ darwin;
     hydraPlatforms = [];
   };
diff --git a/pkgs/applications/science/math/geogebra/geogebra6.nix b/pkgs/applications/science/math/geogebra/geogebra6.nix
index 76d178b7e490d..e1b5bbaedc2b1 100644
--- a/pkgs/applications/science/math/geogebra/geogebra6.nix
+++ b/pkgs/applications/science/math/geogebra/geogebra6.nix
@@ -48,7 +48,7 @@ let
   };
 
   darwinPkg = stdenv.mkDerivation {
-    inherit pname version meta;
+    inherit pname version;
 
     src = fetchurl {
       urls = [
@@ -66,6 +66,10 @@ let
       install -dm755 $out/Applications
       unzip $src -d $out/Applications
     '';
+
+    meta = meta // {
+      sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    };
   };
 in
 if stdenv.isDarwin
diff --git a/pkgs/applications/science/math/gurobi/default.nix b/pkgs/applications/science/math/gurobi/default.nix
index 574d849d955c2..536d520058a2d 100644
--- a/pkgs/applications/science/math/gurobi/default.nix
+++ b/pkgs/applications/science/math/gurobi/default.nix
@@ -46,7 +46,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Optimization solver for mathematical programming";
     homepage = "https://www.gurobi.com";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ jfrankenau ];
diff --git a/pkgs/applications/science/math/hmetis/default.nix b/pkgs/applications/science/math/hmetis/default.nix
index 762216a97a444..1c0152b7bfc77 100644
--- a/pkgs/applications/science/math/hmetis/default.nix
+++ b/pkgs/applications/science/math/hmetis/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "hMETIS is a set of programs for partitioning hypergraphs";
     homepage = "http://glaros.dtc.umn.edu/gkhome/metis/hmetis/overview";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "i686-linux" "x86_64-linux" ];
   };
diff --git a/pkgs/applications/science/math/scilab-bin/default.nix b/pkgs/applications/science/math/scilab-bin/default.nix
index 65d8c145bef6f..327472e88c752 100644
--- a/pkgs/applications/science/math/scilab-bin/default.nix
+++ b/pkgs/applications/science/math/scilab-bin/default.nix
@@ -93,6 +93,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.scilab.org/";
     description = "Scientific software package for numerical computations (Matlab lookalike)";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     # see http://www.scilab.org/legal_notice
     license = "Scilab";
   };
diff --git a/pkgs/applications/science/math/wolfram-engine/default.nix b/pkgs/applications/science/math/wolfram-engine/default.nix
index cf9364ffac174..acb92766910d0 100644
--- a/pkgs/applications/science/math/wolfram-engine/default.nix
+++ b/pkgs/applications/science/math/wolfram-engine/default.nix
@@ -140,6 +140,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Wolfram Engine computational software system";
     homepage = "https://www.wolfram.com/engine/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ fbeffa ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/science/medicine/aliza/default.nix b/pkgs/applications/science/medicine/aliza/default.nix
index 0eb89b63e475f..b08acc77c640c 100644
--- a/pkgs/applications/science/medicine/aliza/default.nix
+++ b/pkgs/applications/science/medicine/aliza/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation {
   meta = {
     description = "Medical imaging software with 2D, 3D and 4D capabilities";
     homepage = "https://www.aliza-dicom-viewer.com";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ mounium ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/science/misc/boinc/default.nix b/pkgs/applications/science/misc/boinc/default.nix
index d0955a4d70c45..702dd3242e649 100644
--- a/pkgs/applications/science/misc/boinc/default.nix
+++ b/pkgs/applications/science/misc/boinc/default.nix
@@ -3,8 +3,8 @@ libGLU, libGL, libXmu, libXi, freeglut, libjpeg, libtool, wxGTK30, xcbutil,
 sqlite, gtk2, patchelf, libXScrnSaver, libnotify, libX11, libxcb }:
 
 let
-  majorVersion = "7.18";
-  minorVersion = "1";
+  majorVersion = "7.20";
+  minorVersion = "0";
 in
 
 stdenv.mkDerivation rec {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     owner = "BOINC";
     repo = "boinc";
     rev = "client_release/${majorVersion}/${version}";
-    sha256 = "sha256-ijkfWTFwwJXvh6f0P5hkzWODxU+Ugz6iQUK+5jEpWXQ=";
+    sha256 = "sha256-W8+ALVO2OHxxBi80ZFgc8RxXneGINCHYNeMXimp9TIw=";
   };
 
   nativeBuildInputs = [ libtool automake autoconf m4 pkg-config ];
diff --git a/pkgs/applications/science/misc/foldingathome/client.nix b/pkgs/applications/science/misc/foldingathome/client.nix
index cc3d5445b594d..6ebc72cc7da41 100644
--- a/pkgs/applications/science/misc/foldingathome/client.nix
+++ b/pkgs/applications/science/misc/foldingathome/client.nix
@@ -52,6 +52,7 @@ buildFHSUserEnv {
   meta = {
     description = "Folding@home client";
     homepage = "https://foldingathome.org/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.zimbatm ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/science/misc/foldingathome/control.nix b/pkgs/applications/science/misc/foldingathome/control.nix
index e5cc02edcfbe6..a64c973914c66 100644
--- a/pkgs/applications/science/misc/foldingathome/control.nix
+++ b/pkgs/applications/science/misc/foldingathome/control.nix
@@ -1,5 +1,4 @@
 { lib, stdenv
-, autoPatchelfHook
 , dpkg
 , fahviewer
 , fetchurl
diff --git a/pkgs/applications/science/misc/foldingathome/viewer.nix b/pkgs/applications/science/misc/foldingathome/viewer.nix
index 75e900a0a72c5..7f28c8d1b1463 100644
--- a/pkgs/applications/science/misc/foldingathome/viewer.nix
+++ b/pkgs/applications/science/misc/foldingathome/viewer.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Folding@home viewer";
     homepage = "https://foldingathome.org/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.zimbatm ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/science/programming/fdr/default.nix b/pkgs/applications/science/programming/fdr/default.nix
index bc67c30aa61cf..f7b12342a6659 100644
--- a/pkgs/applications/science/programming/fdr/default.nix
+++ b/pkgs/applications/science/programming/fdr/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation {
     homepage = "https://cocotec.io/fdr/";
     description = "The CSP refinement checker";
     license = licenses.unfreeRedistributable;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ nickhu ];
   };
diff --git a/pkgs/applications/science/robotics/betaflight-configurator/default.nix b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
index 5065723995245..271274126b754 100644
--- a/pkgs/applications/science/robotics/betaflight-configurator/default.nix
+++ b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
@@ -13,10 +13,10 @@ let
 in
 stdenv.mkDerivation rec {
   inherit pname;
-  version = "10.7.2";
+  version = "10.8.0";
   src = fetchurl {
-    url = "https://github.com/betaflight/${pname}/releases/download/${version}/${pname}_${version}_linux64.zip";
-    sha256 = "sha256-FDmtFRUupPKiHeF3Xvh/VagqMo+FJi8I7mhTz0VDs3o=";
+    url = "https://github.com/betaflight/${pname}/releases/download/${version}/${pname}_${version}_linux64-portable.zip";
+    sha256 = "sha256-Xn0ga2Z1UKd++TriL47ulV6idVTNBR8uiSW7FnL7r1g=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook unzip ];
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
       quadcopters, hexacopters, octocopters and fixed-wing aircraft.
     '';
     homepage    = "https://github.com/betaflight/betaflight/wiki";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.gpl3;
     maintainers = with maintainers; [ wucke13 ];
     platforms   = platforms.linux;
diff --git a/pkgs/applications/science/robotics/emuflight-configurator/default.nix b/pkgs/applications/science/robotics/emuflight-configurator/default.nix
index ca486006fecba..112049d7c0169 100644
--- a/pkgs/applications/science/robotics/emuflight-configurator/default.nix
+++ b/pkgs/applications/science/robotics/emuflight-configurator/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
       The application allows you to configure the Emuflight software running on any supported Emuflight target.
     '';
     homepage    = "https://github.com/emuflight/EmuConfigurator";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.gpl3Only;
     maintainers = with maintainers; [ beezow ];
     platforms   = platforms.linux;
diff --git a/pkgs/applications/science/robotics/inav-configurator/default.nix b/pkgs/applications/science/robotics/inav-configurator/default.nix
index ec605a3a97e95..a0b694f295415 100644
--- a/pkgs/applications/science/robotics/inav-configurator/default.nix
+++ b/pkgs/applications/science/robotics/inav-configurator/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
       quadcopters, hexacopters, octocopters and fixed-wing aircraft.
     '';
     homepage = "https://github.com/iNavFlight/inav/wiki";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ tilcreator wucke13 ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/terminal-emulators/dterm/default.nix b/pkgs/applications/terminal-emulators/dterm/default.nix
new file mode 100644
index 0000000000000..69b1f67d629a9
--- /dev/null
+++ b/pkgs/applications/terminal-emulators/dterm/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchurl
+, readline
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dterm";
+  version = "0.5";
+
+  src = fetchurl {
+    url = "http://www.knossos.net.nz/downloads/dterm-${version}.tgz";
+    hash = "sha256-lFM7558e7JZeWYhtXwCjXLZ1xdsdiUGfJTu3LxQKvds=";
+  };
+
+  buildInputs = [ readline ];
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace 'gcc' '${stdenv.cc.targetPrefix}cc'
+  '';
+
+  preInstall = "mkdir -p $out/bin";
+
+  installFlags = [ "BIN=$(out)/bin/" ];
+
+  meta = with lib; {
+    homepage = "http://www.knossos.net.nz/resources/free-software/dterm/";
+    description = "A simple terminal program";
+    longDescription = ''
+      dterm is a simple terminal emulator, which doesn’t actually emulate any
+      particular terminal. Mainly, it is designed for use with xterm and
+      friends, which already do a perfectly good emulation, and therefore don’t
+      need any special help; dterm simply provides a means by which keystrokes
+      are forwarded to the serial line, and data forwarded from the serial line
+      appears on the terminal.
+    '';
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ auchter ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/terminal-emulators/hyper/default.nix b/pkgs/applications/terminal-emulators/hyper/default.nix
index 2266e884454b2..031d49d2458d9 100644
--- a/pkgs/applications/terminal-emulators/hyper/default.nix
+++ b/pkgs/applications/terminal-emulators/hyper/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
     description = "A terminal built on web technologies";
     homepage    = "https://hyper.is/";
     maintainers = with maintainers; [ puffnfresh fabiangd ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.mit;
     platforms   = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/version-management/bcompare/default.nix b/pkgs/applications/version-management/bcompare/default.nix
index 57adae69db037..bed85a37f544d 100644
--- a/pkgs/applications/version-management/bcompare/default.nix
+++ b/pkgs/applications/version-management/bcompare/default.nix
@@ -86,6 +86,7 @@ let
       You can then merge the changes, synchronize your files, and generate reports for your records.
     '';
     homepage = "https://www.scootersoftware.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ ktor arkivm ];
     platforms = builtins.attrNames srcs;
diff --git a/pkgs/applications/version-management/git-and-tools/gh/default.nix b/pkgs/applications/version-management/git-and-tools/gh/default.nix
index 9d794eccac268..37ceaaff514c2 100644
--- a/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "2.12.1";
+  version = "2.13.0";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-zKEHrnMTz+gPU1A9tjqUO5FLD1zQcnbU7pwVQnYI6uA=";
+    sha256 = "sha256-9FWmEujTUWexyqNQVagU/U9AyOZJdWL5y4Q0ZHRBxcc=";
   };
 
-  vendorSha256 = "sha256-sHRahwavPgowKE0EtDU4UNxIJU22edqlY0nOKkaQLPg=";
+  vendorSha256 = "sha256-a/+Dj66zT/W8rxvvXnJSdoyYhajMY1T3kEbrpC24tMU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
index 265e9b48181ba..1e2af3023c2fc 100644
--- a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonApplication rec {
   pname = "git-machete";
-  version = "3.10.1";
+  version = "3.11.1";
 
   src = fetchFromGitHub {
     owner = "virtuslab";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ofadxKWhfeC2Sx1IJKXOTmukK5m1TOU5244e4kEGM90=";
+    sha256 = "sha256-BhR1dE6+K7UKaCbLmWPtLMyq0oIj/xYenXp5s7kRINc=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix b/pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix
index b8743b7ea9022..4b4319f8cd7cc 100644
--- a/pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix
@@ -10,15 +10,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-quickfix";
-  version = "0.0.5";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
     owner = "siedentop";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LDA94pH5Oodf80mEENoURh+MJSg122SVWFVo9i1TEQg=";
+    sha256 = "sha256-IAjet/bDG/Hf/whS+yrEQSquj8s5DEmFis+5ysLLuxs=";
   };
 
+  doCheck = false;
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
     Security
@@ -26,7 +28,7 @@ rustPlatform.buildRustPackage rec {
     libiconv
   ];
 
-  cargoSha256 = "sha256-QTPy0w45AawEU4fHf2FMGpL3YM+iTNnyiI4+mDJzWaE=";
+  cargoSha256 = "sha256-eTAEf2nRrJ7i2Dw5BBZlLLu8mK2G/wUk40ivtfxk1pI=";
 
   meta = with lib; {
     description = "Quickfix allows you to commit changes in your git repository to a new branch without leaving the current branch";
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index fbf0138ce5aa7..2cddeea816204 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -12,8 +12,6 @@
 , nixosTests
 }:
 
-with lib;
-
 buildGoPackage rec {
   pname = "gitea";
   version = "1.16.8";
@@ -36,19 +34,18 @@ buildGoPackage rec {
   ];
 
   postPatch = ''
-    patchShebangs .
     substituteInPlace modules/setting/setting.go --subst-var data
   '';
 
   nativeBuildInputs = [ makeWrapper ];
 
-  buildInputs = optional pamSupport pam;
+  buildInputs = lib.optional pamSupport pam;
 
   preBuild =
     let
-      tags = optional pamSupport "pam"
-        ++ optional sqliteSupport "sqlite sqlite_unlock_notify";
-      tagsString = concatStringsSep " " tags;
+      tags = lib.optional pamSupport "pam"
+        ++ lib.optional sqliteSupport "sqlite sqlite_unlock_notify";
+      tagsString = lib.concatStringsSep " " tags;
     in
     ''
       export buildFlagsArray=(
@@ -66,14 +63,14 @@ buildGoPackage rec {
     cp -R ./go/src/${goPackagePath}/options/locale $out/locale
 
     wrapProgram $out/bin/gitea \
-      --prefix PATH : ${makeBinPath [ bash git gzip openssh ]}
+      --prefix PATH : ${lib.makeBinPath [ bash git gzip openssh ]}
   '';
 
   goPackagePath = "code.gitea.io/gitea";
 
   passthru.tests.gitea = nixosTests.gitea;
 
-  meta = {
+  meta = with lib; {
     description = "Git with a cup of tea";
     homepage = "https://gitea.io";
     license = licenses.mit;
diff --git a/pkgs/applications/version-management/github-desktop/default.nix b/pkgs/applications/version-management/github-desktop/default.nix
index 6017d105fed71..7c07dc17c2ee9 100644
--- a/pkgs/applications/version-management/github-desktop/default.nix
+++ b/pkgs/applications/version-management/github-desktop/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "GUI for managing Git and GitHub.";
     homepage = "https://desktop.github.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index a0bc7477c6110..c8ca224a952b1 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -36,6 +36,7 @@ let
   meta = {
     homepage = "https://www.gitkraken.com/";
     description = "The downright luxurious and most popular Git client for Windows, Mac & Linux";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = builtins.attrNames srcs;
     maintainers = with maintainers; [ xnwdd evanjs arkivm ];
diff --git a/pkgs/applications/version-management/meld/default.nix b/pkgs/applications/version-management/meld/default.nix
index f8f58cdcaba29..88af6b0ceae5e 100644
--- a/pkgs/applications/version-management/meld/default.nix
+++ b/pkgs/applications/version-management/meld/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchurl
-, fetchpatch
 , gettext
 , itstool
 , python3
@@ -19,32 +18,15 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "meld";
-  version = "3.21.1";
+  version = "3.21.2";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "cP6Y65Ms4h1nFw47D2pzF+gT6GLemJM+pROYLpoDMgI=";
+    sha256 = "IV+odABTZ5TFllddE6nIfijxjdNyW43/mG2y4pM6cU4=";
   };
 
-  patches = [
-    # Pull upstream fix for meson-0.60:
-    #  https://gitlab.gnome.org/GNOME/meld/-/merge_requests/78
-    (fetchpatch {
-      name = "meson-0.60.patch";
-      url  = "https://gitlab.gnome.org/GNOME/meld/-/commit/cc7746c141d976a4779cf868774fae1fe7627a6d.patch";
-      sha256 = "sha256-4uJZyF00Z6svzrOebByZV1hutCZRkIQYC4rUxQr5fdQ=";
-    })
-
-    # Fix view not rendering with adwaita-icon-theme 42 due to removed icons.
-    # https://gitlab.gnome.org/GNOME/meld/-/merge_requests/83
-    (fetchpatch {
-      url  = "https://gitlab.gnome.org/GNOME/meld/-/commit/f850cdf3eaf0f08abea003d5fae118a5e92a3d61.patch";
-      sha256 = "PaK8Rpv79UwMUligm9pIY16JW/dm7eVXntAwTV4hnbE=";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
diff --git a/pkgs/applications/version-management/p4/default.nix b/pkgs/applications/version-management/p4/default.nix
index 7091f0fbc6f9c..4f61be6669aa1 100644
--- a/pkgs/applications/version-management/p4/default.nix
+++ b/pkgs/applications/version-management/p4/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Perforce Command-Line Client";
     homepage = "https://www.perforce.com";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with lib.maintainers; [ corngood ];
diff --git a/pkgs/applications/version-management/p4v/default.nix b/pkgs/applications/version-management/p4v/default.nix
index 2e0e01e5c9862..9c804a7459b49 100644
--- a/pkgs/applications/version-management/p4v/default.nix
+++ b/pkgs/applications/version-management/p4v/default.nix
@@ -76,6 +76,7 @@ in stdenv.mkDerivation rec {
   meta = {
     description = "Perforce Visual Client";
     homepage = "https://www.perforce.com";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfreeRedistributable;
     platforms = [ "x86_64-linux" ];
     maintainers = with lib.maintainers; [ nathyong nioncode ];
diff --git a/pkgs/applications/version-management/sublime-merge/common.nix b/pkgs/applications/version-management/sublime-merge/common.nix
index 28c7350ae39b5..17f36ab4161b4 100644
--- a/pkgs/applications/version-management/sublime-merge/common.nix
+++ b/pkgs/applications/version-management/sublime-merge/common.nix
@@ -121,6 +121,7 @@ in stdenv.mkDerivation (rec {
     description = "Git client from the makers of Sublime Text";
     homepage = "https://www.sublimemerge.com";
     maintainers = with maintainers; [ zookatron ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/video/filebot/default.nix b/pkgs/applications/video/filebot/default.nix
index 8bf1bf7b3ba58..45f7d099056d5 100644
--- a/pkgs/applications/video/filebot/default.nix
+++ b/pkgs/applications/video/filebot/default.nix
@@ -41,7 +41,10 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://filebot.net";
     changelog = "https://www.filebot.net/forums/viewforum.php?f=7";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ gleber felschr ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/video/flirc/default.nix b/pkgs/applications/video/flirc/default.nix
index 6285094c461a4..58de5ceab099a 100644
--- a/pkgs/applications/video/flirc/default.nix
+++ b/pkgs/applications/video/flirc/default.nix
@@ -39,6 +39,7 @@ mkDerivation rec {
     homepage = "https://flirc.tv/more/flirc-usb";
     description = "Use any Remote with your Media Center";
     maintainers = with maintainers; [ aanderse ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/video/jellyfin-mpv-shim/default.nix b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
index 9642556ad1320..da75adab7b51c 100644
--- a/pkgs/applications/video/jellyfin-mpv-shim/default.nix
+++ b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonApplication rec {
   pname = "jellyfin-mpv-shim";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "Nh2bSmzxInZgZmmelsXih6lRartDKjbC0/CB1gYiLcQ=";
+    sha256 = "sha256-JiSC6WjrLsWk3/m/EHq7KNXaJ6rqT2fG9TT1jPvYlK0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/video/lightworks/default.nix b/pkgs/applications/video/lightworks/default.nix
index 6bec6e25533f1..b01af67cd68e6 100644
--- a/pkgs/applications/video/lightworks/default.nix
+++ b/pkgs/applications/video/lightworks/default.nix
@@ -85,6 +85,7 @@ in buildFHSUserEnv {
   meta = {
     description = "Professional Non-Linear Video Editor";
     homepage = "https://www.lwks.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ antonxy vojta001 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/video/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix
index 2c15513d4d65e..c3d758268917c 100644
--- a/pkgs/applications/video/makemkv/default.nix
+++ b/pkgs/applications/video/makemkv/default.nix
@@ -79,6 +79,7 @@ in mkDerivation {
       can always download the latest version from makemkv.com that will reset the
       expiration date.
     '';
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     homepage = "http://makemkv.com";
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/video/streamlink-twitch-gui/bin.nix b/pkgs/applications/video/streamlink-twitch-gui/bin.nix
index 395da881ea9f5..7459d08d59531 100644
--- a/pkgs/applications/video/streamlink-twitch-gui/bin.nix
+++ b/pkgs/applications/video/streamlink-twitch-gui/bin.nix
@@ -124,6 +124,7 @@ stdenv.mkDerivation rec {
     longDescription = "Browse Twitch.tv and watch streams in your videoplayer of choice";
     homepage = "https://streamlink.github.io/streamlink-twitch-gui/";
     downloadPage = "https://github.com/streamlink/streamlink-twitch-gui/releases";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = with maintainers; [ rileyinman ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/virtualization/conmon/default.nix b/pkgs/applications/virtualization/conmon/default.nix
index 1236775ac67df..2a9f1a27c3d5a 100644
--- a/pkgs/applications/virtualization/conmon/default.nix
+++ b/pkgs/applications/virtualization/conmon/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-WxRMY43Z9OytY1kc91VVmqLn5cl0UC/0Zj8x3vpsaBQ=";
+    sha256 = "sha256-KDAm+Djk1AaA3zXhxywT6HknT0tVCEZLS27nO9j/WgM=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix
index 2d35b1c4a039a..1a49d76888657 100644
--- a/pkgs/applications/virtualization/crun/default.nix
+++ b/pkgs/applications/virtualization/crun/default.nix
@@ -11,6 +11,7 @@
 , yajl
 , nixosTests
 , criu
+, fetchpatch
 }:
 
 let
@@ -48,6 +49,15 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  patches = [
+    # Should dropped in next release after 1.4.5
+    (fetchpatch {
+      name = "usrbin-paths.patch";
+      url = "https://github.com/containers/crun/commit/dd29f7f7f713c49784ac30f7cdca33b2ef94d5b8.patch";
+      sha256 = "sha256-kHHix8CUL+c8HbOe5qx4PeF1P19113U4bRZyleMUjqk=";
+    })
+  ];
+
   nativeBuildInputs = [ autoreconfHook go-md2man pkg-config python3 ];
 
   buildInputs = [ libcap libseccomp systemd yajl ]
diff --git a/pkgs/applications/virtualization/docker/compose.nix b/pkgs/applications/virtualization/docker/compose.nix
index 98af8ebf7fb53..583a3e50a1f59 100644
--- a/pkgs/applications/virtualization/docker/compose.nix
+++ b/pkgs/applications/virtualization/docker/compose.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "docker-compose";
-  version = "2.6.0";
+  version = "2.6.1";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "compose";
     rev = "v${version}";
-    sha256 = "sha256-Fg99ugaqH/jL3KUZ5Vh/SJnqzEyOaR/KuPFwt2oqXxM=";
+    sha256 = "sha256-D3+qDWxg3e5/3UIMz8FZDuxmQHmTv0NJVT/otGYedtw=";
   };
 
-  vendorSha256 = "sha256-7uNQNO+EI90J2Btz2tnumKqd+AtVWON+Csh6tkTNKNA=";
+  vendorSha256 = "sha256-WxLQfu65Gr+ao/pM8B2uiS88sNT72Klhz7ZIrEadW5g=";
 
   ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ];
 
diff --git a/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix b/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix
index ef8ec062e4d88..8ba02d940216c 100644
--- a/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix
+++ b/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation {
     '';
     homepage = "http://wiki.univention.de/index.php?title=Installing-signed-GPLPV-drivers";
     maintainers = [ maintainers.tstrobel ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = platforms.linux;
     license = licenses.gpl2;
   };
diff --git a/pkgs/applications/virtualization/driver/win-spice/default.nix b/pkgs/applications/virtualization/driver/win-spice/default.nix
index 2c2cd90f1c26f..0cf8e06c3115b 100644
--- a/pkgs/applications/virtualization/driver/win-spice/default.nix
+++ b/pkgs/applications/virtualization/driver/win-spice/default.nix
@@ -72,6 +72,7 @@ stdenv.mkDerivation  {
     description = "Windows SPICE Drivers";
     homepage = "https://www.spice-space.org/";
     license = [ licenses.asl20 ]; # See https://github.com/vrozenfe/qxl-dod
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     maintainers = [ maintainers.tstrobel ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 642c4b1390f46..4e07d92d661d4 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -230,6 +230,10 @@ in stdenv.mkDerivation {
 
   meta = {
     description = "PC emulator";
+    sourceProvenance = with lib.sourceTypes; [
+      fromSource
+      binaryNativeCode
+    ];
     license = licenses.gpl2;
     homepage = "https://www.virtualbox.org/";
     maintainers = with maintainers; [ sander ];
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index 9c012750bf10c..da9f32b9c6856 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -155,6 +155,7 @@ in stdenv.mkDerivation rec {
       This add-on provides support for dynamic resizing of the X Display, shared
       host/guest clipboard support and guest OpenGL support.
     '';
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = "GPL";
     maintainers = [ lib.maintainers.sander ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/virtualization/vmware-workstation/default.nix b/pkgs/applications/virtualization/vmware-workstation/default.nix
index 58cd4092a95d5..247fb3bd6eac2 100755
--- a/pkgs/applications/virtualization/vmware-workstation/default.nix
+++ b/pkgs/applications/virtualization/vmware-workstation/default.nix
@@ -334,6 +334,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Industry standard desktop hypervisor for x86-64 architecture";
     homepage = "https://www.vmware.com/products/workstation-pro.html";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ deinferno ];
diff --git a/pkgs/applications/window-managers/i3/i3-resurrect.nix b/pkgs/applications/window-managers/i3/i3-resurrect.nix
index a765d2e298ed2..a84d97504bbb1 100644
--- a/pkgs/applications/window-managers/i3/i3-resurrect.nix
+++ b/pkgs/applications/window-managers/i3/i3-resurrect.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "i3-resurrect";
-  version = "1.4.3";
+  version = "1.4.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0h181frdwpqfj9agw43qgicdvzv1i7xwky0vs0ksd8h18qxqp4hr";
+    sha256 = "sha256-13FKRvEE4vHq5G51G1UyBnfNiWeS9Q/SYCG16E1Sn4c=";
   };
 
   propagatedBuildInputs = [ click psutil xprop natsort i3ipc xdotool importlib-metadata ];
diff --git a/pkgs/applications/window-managers/i3/status-rust.nix b/pkgs/applications/window-managers/i3/status-rust.nix
index c3d8d96bba4e1..ddc4383fbd73c 100644
--- a/pkgs/applications/window-managers/i3/status-rust.nix
+++ b/pkgs/applications/window-managers/i3/status-rust.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "i3status-rust";
-  version = "0.21.10";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "greshake";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-HtPgl52ysE/CVX706YeKBFc6CgGpHzvHwZoS+DzHADY=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-9Fp5k14QkV1CwLSL1nUUu6NYIpjfvI9vNJRYNqvyr3M=";
   };
 
-  cargoSha256 = "sha256-ini0AIYwvTskNFMSC+Gy23ohL75PTET95e1mjpjCsWE=";
+  cargoSha256 = "sha256-MzosatZ4yPHAdANqOBPVW2wpjnojLo9B9N9o4DtU0Iw=";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix
index 9b9a21a1469c0..f0535f59dfcc0 100644
--- a/pkgs/build-support/docker/examples.nix
+++ b/pkgs/build-support/docker/examples.nix
@@ -9,6 +9,16 @@
 
 { pkgs, buildImage, buildLayeredImage, fakeNss, pullImage, shadowSetup, buildImageWithNixDb, pkgsCross }:
 
+let
+  nixosLib = import ../../../nixos/lib {
+    # Experimental features need testing too, but there's no point in warning
+    # about it, so we enable the feature flag.
+    featureFlags.minimalModules = {};
+  };
+  evalMinimalConfig = module: nixosLib.evalModules { modules = [ module ]; };
+
+in
+
 rec {
   # 1. basic example
   bash = buildImage {
@@ -582,6 +592,37 @@ rec {
     includeStorePaths = false;
   };
 
+  etc =
+    let
+      inherit (pkgs) lib;
+      nixosCore = (evalMinimalConfig ({ config, ... }: {
+        imports = [
+          pkgs.pkgsModule
+          ../../../nixos/modules/system/etc/etc.nix
+        ];
+        environment.etc."some-config-file" = {
+          text = ''
+            127.0.0.1 localhost
+            ::1 localhost
+          '';
+          # For executables:
+          # mode = "0755";
+        };
+      }));
+    in pkgs.dockerTools.streamLayeredImage {
+      name = "etc";
+      tag = "latest";
+      enableFakechroot = true;
+      fakeRootCommands = ''
+        mkdir -p /etc
+        ${nixosCore.config.system.build.etcActivationCommands}
+      '';
+      config.Cmd = pkgs.writeScript "etc-cmd" ''
+        #!${pkgs.busybox}/bin/sh
+        ${pkgs.busybox}/bin/cat /etc/some-config-file
+      '';
+    };
+
   # Example export of the bash image
   exportBash = pkgs.dockerTools.exportImage { fromImage = bash; };
 
diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix
index 2ae1714e4af02..84f2278db2996 100644
--- a/pkgs/build-support/fetchgit/default.nix
+++ b/pkgs/build-support/fetchgit/default.nix
@@ -28,6 +28,7 @@ in
   # needed for netrcPhase
   netrcImpureEnvVars ? []
 , meta ? {}
+, allowedRequisites ? null
 }:
 
 /* NOTE:
@@ -91,7 +92,8 @@ stdenvNoCC.mkDerivation {
     "GIT_PROXY_COMMAND" "NIX_GIT_SSL_CAINFO" "SOCKS_SERVER"
   ];
 
-  inherit preferLocalBuild meta;
+
+  inherit preferLocalBuild meta allowedRequisites;
 
   passthru = {
     gitRepoUrl = url;
diff --git a/pkgs/data/misc/hackage/pin.json b/pkgs/data/misc/hackage/pin.json
index 6d478f56f20da..3828c6d45e73d 100644
--- a/pkgs/data/misc/hackage/pin.json
+++ b/pkgs/data/misc/hackage/pin.json
@@ -1,6 +1,6 @@
 {
-  "commit": "e55c7aa130b33bcfe416a246d9e8a108c63022f9",
-  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/e55c7aa130b33bcfe416a246d9e8a108c63022f9.tar.gz",
-  "sha256": "1nmqxlj9c76xpyz1js47bk7m05mr229c8y5k7gnnjwh4gspr0p0r",
-  "msg": "Update from Hackage at 2022-06-07T15:13:17Z"
+  "commit": "3871a68d11673db568acc232f35f8ffd28b63832",
+  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/3871a68d11673db568acc232f35f8ffd28b63832.tar.gz",
+  "sha256": "0fbj5353ni22b7vbfn5b9k5lq78i3aanx2njj6kac7qyiazrdck2",
+  "msg": "Update from Hackage at 2022-06-17T13:13:15Z"
 }
diff --git a/pkgs/data/misc/v2ray-domain-list-community/default.nix b/pkgs/data/misc/v2ray-domain-list-community/default.nix
index 5e84f479d21bf..a5bbb2b5c013b 100644
--- a/pkgs/data/misc/v2ray-domain-list-community/default.nix
+++ b/pkgs/data/misc/v2ray-domain-list-community/default.nix
@@ -3,12 +3,12 @@
 let
   generator = pkgsBuildBuild.buildGoModule rec {
     pname = "v2ray-domain-list-community";
-    version = "20220528180904";
+    version = "20220624025859";
     src = fetchFromGitHub {
       owner = "v2fly";
       repo = "domain-list-community";
       rev = version;
-      sha256 = "sha256-j1Q7B/U0OADOcgJRJ269Jx9Z5dmmT4T2eaOHeGmUjmc=";
+      sha256 = "sha256-/4wfTtRsBzOCbx3I3H28tB935xDZPPwHOFFmjiV7kEI=";
     };
     vendorSha256 = "sha256-Igx8yGWWVmVEogvbrosaK13LVs+ZZuYLBNji7iSfzdo=";
     meta = with lib; {
diff --git a/pkgs/data/misc/v2ray-geoip/default.nix b/pkgs/data/misc/v2ray-geoip/default.nix
index a6954100d547d..e4ab5df758421 100644
--- a/pkgs/data/misc/v2ray-geoip/default.nix
+++ b/pkgs/data/misc/v2ray-geoip/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "v2ray-geoip";
-  version = "202205260055";
+  version = "202206230045";
 
   src = fetchFromGitHub {
     owner = "v2fly";
     repo = "geoip";
-    rev = "96f4639373709f7560ccaf374d1ff008781aa324";
-    sha256 = "sha256-aFTLeYr+JishhJ2AhGMrD02fKxci2rREkh8HN9HtXLs=";
+    rev = "2e2aba7f3dfb4139e8a882f85350045f2ef522d1";
+    sha256 = "sha256-WFvS51RmkAWivYj0HFAT6S3euJk+GSYLDTN3cmkcCNs=";
   };
 
   installPhase = ''
diff --git a/pkgs/data/themes/nordic/default.nix b/pkgs/data/themes/nordic/default.nix
index d250de15ca9a0..c29bb69bf7b10 100644
--- a/pkgs/data/themes/nordic/default.nix
+++ b/pkgs/data/themes/nordic/default.nix
@@ -7,70 +7,70 @@
 
 stdenv.mkDerivation rec {
   pname = "nordic";
-  version = "unstable-2022-02-26";
+  version = "unstable-2022-06-21";
 
   srcs = [
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "0da58e462e8ba6c71245d13fbddac950b72018ae";
-      sha256 = "sha256-w7e3DqQV4L/OvntKHJA4+3Dj6dRnlH73SxvW770QIyU=";
+      rev = "bb5e31ec1488b1fd5641aa10f65f36d8714b5dba";
+      sha256 = "sha256-wTWHdao/1RLqUmqh/9gEyhERGymFWHqiC97JD28LSgk=";
       name = "Nordic";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "9daf11acf3419e2f23d0993ce862a1c944fb8519";
-      sha256 = "sha256-zGgw6THLX7q19BDsllPUrWqQcL6FYAewcyqjQdXzLzg=";
+      rev = "e1fb044a14b5c7fe1f6c2de42bfb5fdfb1448415";
+      sha256 = "sha256-oWwc+bzeAf0NoYfA2r2oGpeciVUWFC7yJzlUAYfpdTY=";
       name = "Nordic-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "a40819bd00160f987cdf254ce8c34eabebecf0eb";
-      sha256 = "sha256-rSNLdxTfvzTFzI5723WIGRS+NZ8iqUOUliDpkznZrwE=";
+      rev = "4c7c9f2d670a6f0c9cff1ec31fab67c826fdcc0f";
+      sha256 = "sha256-txKClsygX2IUGF8oOG6gDY6Y3v28kJthjdPrPEOZarQ=";
       name = "Nordic-darker";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "4e69cf6e1798938ab7c5795940c663d866ce8201";
-      sha256 = "sha256-p8VaKeKxEiYX4oVqWoyschAq0j/LvPq9yD/awaHKRZw=";
+      rev = "8abe28ff07c190b8c343aacb6a0ce58e62abbd74";
+      sha256 = "sha256-tk9VZtwpIuBcWu1ERJLnlhM71pkrNEUzu8PDb+IEnpw=";
       name = "Nordic-darker-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "866629583187b914725f05683125fde7f6c280f1";
-      sha256 = "sha256-TQ4G5W87zpTrLU+f+eb5VHwaWuKSbItXCgXSL33U8As=";
+      rev = "9764e0f1af100731f77bf7f15792639d0032e5ed";
+      sha256 = "sha256-3vxrbxUhPj6PKWpjyCruhFxYz9nPfo1DHferYUD7enU=";
       name = "Nordic-bluish-accent";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "f3702ae02e3caaf74eab0ef9156af9f2a476021b";
-      sha256 = "sha256-drXRfZxCrH2vAXjZSAjWEHcQrehxnM0WLkgbh+cFJhI=";
+      rev = "407316a3fd5e07d183474aea4cae28bb958afa6c";
+      sha256 = "sha256-SvLTqDXjy8c4rZo0cZ83kfuiGd2+hyGvwILxVCz65jQ=";
       name = "Nordic-bluish-accent-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = "${pname}-polar";
-      rev = "4cf3e5c30ebd17a3d53ab0337c191e304feff7b5";
-      sha256 = "sha256-LTCJ7AyABQDTDkjuqcXaKXePFwOpmXeKaW2mWYah4ao=";
+      rev = "1ffa167c4807e4b22e0934aee41403721877bc56";
+      sha256 = "sha256-Xat5YWnxTBnvnUfs1o5EhdmDezmOXtqry97Yc8O+WYM=";
       name = "Nordic-Polar";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = "${pname}-polar";
-      rev = "72cbd567212b21ea20769fe244c148f799435536";
-      sha256 = "sha256-qNIyr+Eo0dzPVh9PxDCHv0e6pswACbf9nLhAG75YEYc=";
+      rev = "9bc68223edf7ad9dc83032d7d51ccc53f9440337";
+      sha256 = "sha256-XjGjijBky/iPcoUGDRrwwoZ5f2gbLchmQizkQN+Opjg=";
       name = "Nordic-Polar-standard-buttons";
     })
   ];
diff --git a/pkgs/desktops/gnome/games/aisleriot/default.nix b/pkgs/desktops/gnome/games/aisleriot/default.nix
index efbb9451d7c2d..d06761e66c5ee 100644
--- a/pkgs/desktops/gnome/games/aisleriot/default.nix
+++ b/pkgs/desktops/gnome/games/aisleriot/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "GNOME";
     repo = pname;
     rev = version;
-    sha256 = "sha256-3pZYmYCqPULFP5Vi4anY4bnx6QMPstAOKgM1a5Kw/cc=";
+    sha256 = "sha256-G3JSqrHc2ca32RZOO6gFY8iVlEFX+kukZDcTb8O5UHk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index b3d0f8d5d502e..571d0b023124c 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -154,7 +154,10 @@ stdenv.mkDerivation ({
 
   hardeningDisable = [ "format" "pie" ];
 
-  outputs = if langJava || langGo then ["out" "man" "info"]
+  # When targetting darwin, libgcc_ext.10.{4,5}.dylib are created as
+  # MH_DYLIB_STUB files, which install_name_tool can't change, so we
+  # get a cycle between $out and $lib.
+  outputs = if langJava || langGo || targetPlatform.isDarwin then ["out" "man" "info"]
     else [ "out" "lib" "man" "info" ];
   setOutputFlags = false;
   NIX_NO_SELF_RPATH = true;
@@ -328,7 +331,6 @@ stdenv.mkDerivation ({
     maintainers = with lib.maintainers; [ veprbl ];
 
     platforms = lib.platforms.unix;
-    badPlatforms = lib.platforms.darwin;
   };
 }
 
diff --git a/pkgs/development/compilers/gcc/common/pre-configure.nix b/pkgs/development/compilers/gcc/common/pre-configure.nix
index d9977e0ba2f9e..310e7f8b574bd 100644
--- a/pkgs/development/compilers/gcc/common/pre-configure.nix
+++ b/pkgs/development/compilers/gcc/common/pre-configure.nix
@@ -6,14 +6,16 @@
 , langGo }:
 
 assert langJava -> lib.versionOlder version "7";
-assert langAda -> gnatboot != null;
-
-lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
+assert langAda -> gnatboot != null; let
+  needsLib
+    =  (lib.versionOlder version "7" && (langJava || langGo))
+    || (lib.versions.major version == "4" && lib.versions.minor version == "9" && targetPlatform.isDarwin);
+in lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
   export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g`
   export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET"
   export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET"
   export CFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CFLAGS_FOR_TARGET"
-'' + lib.optionalString (lib.versionOlder version "7" && (langJava || langGo)) ''
+'' + lib.optionalString needsLib ''
   export lib=$out;
 '' + lib.optionalString langAda ''
   export PATH=${gnatboot}/bin:$PATH
diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix
index 981dfee88b863..e2cd496640f1a 100644
--- a/pkgs/development/compilers/ghc/8.10.7.nix
+++ b/pkgs/development/compilers/ghc/8.10.7.nix
@@ -96,6 +96,9 @@ let
   # build the haddock program (removing the `enableHaddockProgram` option).
   ''
     HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"}
+    # Build haddocks for boot packages with hyperlinking
+    EXTRA_HADDOCK_OPTS += --hyperlinked-source --quickjump
+
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
     INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
   '' + lib.optionalString (targetPlatform != hostPlatform) ''
diff --git a/pkgs/development/compilers/ghc/9.0.2.nix b/pkgs/development/compilers/ghc/9.0.2.nix
index 7b3f213ed333b..b998176af9749 100644
--- a/pkgs/development/compilers/ghc/9.0.2.nix
+++ b/pkgs/development/compilers/ghc/9.0.2.nix
@@ -99,6 +99,9 @@ let
   # build the haddock program (removing the `enableHaddockProgram` option).
   ''
     HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"}
+    # Build haddocks for boot packages with hyperlinking
+    EXTRA_HADDOCK_OPTS += --hyperlinked-source --quickjump
+
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
     BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"}
   '' + lib.optionalString (targetPlatform != hostPlatform) ''
diff --git a/pkgs/development/compilers/ghc/9.2.3.nix b/pkgs/development/compilers/ghc/9.2.3.nix
index 016b7df90ce13..7803a50525590 100644
--- a/pkgs/development/compilers/ghc/9.2.3.nix
+++ b/pkgs/development/compilers/ghc/9.2.3.nix
@@ -101,6 +101,9 @@ let
   # build the haddock program (removing the `enableHaddockProgram` option).
   ''
     HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"}
+    # Build haddocks for boot packages with hyperlinking
+    EXTRA_HADDOCK_OPTS += --hyperlinked-source --quickjump
+
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
     BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"}
   '' + lib.optionalString (targetPlatform != hostPlatform) ''
diff --git a/pkgs/development/compilers/hare/disable-failing-test-cases.patch b/pkgs/development/compilers/hare/disable-failing-test-cases.patch
new file mode 100644
index 0000000000000..4f8ba6056046d
--- /dev/null
+++ b/pkgs/development/compilers/hare/disable-failing-test-cases.patch
@@ -0,0 +1,37 @@
+diff --git a/math/complex/+test.ha b/math/complex/+test.ha
+index a1cc0916..705a0a41 100644
+--- a/math/complex/+test.ha
++++ b/math/complex/+test.ha
+@@ -567,8 +567,8 @@ const TEST_COSSC: [](c128, c128) = [
+ 		(math::INF, math::NAN)), // real sign unspecified
+ 	((math::INF, math::NAN),
+ 		(math::NAN, math::NAN)),
+-	((math::NAN, 0f64),
+-		(math::NAN, -0f64)), // imaginary sign unspecified
++//	((math::NAN, 0f64),
++//		(math::NAN, -0f64)), // imaginary sign unspecified
+ 	((math::NAN, 1f64),
+ 		(math::NAN, math::NAN)),
+ 	((math::NAN, math::INF),
+@@ -583,8 +583,8 @@ const TEST_COSHSC: [](c128, c128) = [
+ 		(1f64, 0f64)),
+ 	((0f64, math::INF),
+ 		(math::NAN, 0f64)), // imaginary sign unspecified
+-	((0f64, math::NAN),
+-		(math::NAN, 0f64)), // imaginary sign unspecified
++//	((0f64, math::NAN),
++//		(math::NAN, 0f64)), // imaginary sign unspecified
+ 	((1f64, math::INF),
+ 		(math::NAN, math::NAN)),
+ 	((1f64, math::NAN),
+@@ -627,8 +627,8 @@ const TEST_EXPSC: [](c128, c128) = [
+ 		(0f64, 0f64)), // real and imaginary sign unspecified
+ 	((math::INF, math::INF),
+ 		(math::INF, math::NAN)), // real sign unspecified
+-	((-math::INF, math::NAN),
+-		(0f64, 0f64)), // real and imaginary sign unspecified
++//	((-math::INF, math::NAN),
++//		(0f64, 0f64)), // real and imaginary sign unspecified
+ 	((math::INF, math::NAN),
+ 		(math::INF, math::NAN)), // real sign unspecified
+ 	((math::NAN, 0f64),
diff --git a/pkgs/development/compilers/hare/hare.nix b/pkgs/development/compilers/hare/hare.nix
index f5c0cd8e405f5..e24fc68ab4228 100644
--- a/pkgs/development/compilers/hare/hare.nix
+++ b/pkgs/development/compilers/hare/hare.nix
@@ -11,16 +11,18 @@
 
 stdenv.mkDerivation rec {
   pname = "hare";
-  version = "0.pre+date=2022-04-27";
+  version = "unstable-2022-06-18";
 
   src = fetchFromSourcehut {
     name = pname + "-src";
     owner = "~sircmpwn";
     repo = pname;
-    rev = "1bfb2e6dee850c675a8831b41420800d3c62c2a0";
-    hash = "sha256-1b7U5u3PM3jmnH/OnY9O++GTPyVOdFkJ0fwJBoDZgSU=";
+    rev = "ac9b2c35c09d555e09dbd81c5ed95bdfa14313ba";
+    hash = "sha256-eeS14LGkbi9IamvKzK+HF0Rvk9NFp4QVYcrHwNSNBx4=";
   };
 
+  patches = [ ./disable-failing-test-cases.patch ];
+
   nativeBuildInputs = [
     binutils-unwrapped
     harec
@@ -35,6 +37,7 @@ stdenv.mkDerivation rec {
     qbe
   ];
 
+  setupHook = ./setup-hook.sh;
   strictDeps = true;
 
   configurePhase =
@@ -59,6 +62,7 @@ stdenv.mkDerivation rec {
         runHook preConfigure
 
         export HARECACHE="$NIX_BUILD_TOP/.harecache"
+        export BINOUT="$NIX_BUILD_TOP/.bin"
         cat ${config-file} > config.mk
 
         runHook postConfigure
diff --git a/pkgs/development/compilers/hare/harec.nix b/pkgs/development/compilers/hare/harec.nix
index a3ad53350b094..4c77a77bd0d1a 100644
--- a/pkgs/development/compilers/hare/harec.nix
+++ b/pkgs/development/compilers/hare/harec.nix
@@ -6,14 +6,14 @@
 
 stdenv.mkDerivation rec {
   pname = "harec";
-  version = "0.pre+date=2022-04-26";
+  version = "unstable-2022-06-20";
 
   src = fetchFromSourcehut {
     name = pname + "-src";
     owner = "~sircmpwn";
     repo = pname;
-    rev = "e5fb5176ba629e98ace5fcb3aa427b2c25d8fdf0";
-    hash = "sha256-sqt3q6sarzrpyJ/1QYM1WTukrZpflAmAYq6pQwAwe18=";
+    rev = "2eccbc4b959a590dda91143c8487edda841106d9";
+    hash = "sha256-pwy7cNxAqIbhx9kpcjfgk7sCEns9oA6zhKSQJdHLZCM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/compilers/hare/setup-hook.sh b/pkgs/development/compilers/hare/setup-hook.sh
new file mode 100644
index 0000000000000..999b91df122fa
--- /dev/null
+++ b/pkgs/development/compilers/hare/setup-hook.sh
@@ -0,0 +1,11 @@
+export HARECACHE="$NIX_BUILD_TOP/.harecache"
+
+addHarepath () {
+    for haredir in third-party stdlib; do
+        if [[ -d "$1/src/hare/$haredir" ]]; then
+            addToSearchPath HAREPATH "$1/src/hare/$haredir"
+        fi
+    done
+}
+
+addEnvHooks "$hostOffset" addHarepath
diff --git a/pkgs/development/compilers/llvm/14/compiler-rt/armv7l.patch b/pkgs/development/compilers/llvm/14/compiler-rt/armv7l.patch
deleted file mode 100644
index 120cfe6feb2a6..0000000000000
--- a/pkgs/development/compilers/llvm/14/compiler-rt/armv7l.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -ur compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake
---- compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake	2020-03-24 00:01:02.000000000 +0900
-+++ compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake	2020-05-10 03:42:00.883450706 +0900
-@@ -24,7 +24,7 @@
- 
- 
- set(ARM64 aarch64)
--set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
-+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l)
- set(HEXAGON hexagon)
- set(X86 i386)
- set(X86_64 x86_64)
-diff -ur compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt
---- compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt	2020-03-24 00:01:02.000000000 +0900
-+++ compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt	2020-05-10 03:44:49.468579650 +0900
-@@ -474,6 +474,7 @@
- set(armv7_SOURCES ${arm_SOURCES})
- set(armv7s_SOURCES ${arm_SOURCES})
- set(armv7k_SOURCES ${arm_SOURCES})
-+set(armv7l_SOURCES ${arm_SOURCES})
- set(arm64_SOURCES ${aarch64_SOURCES})
- 
- # macho_embedded archs
-@@ -595,7 +596,7 @@
-   foreach (arch ${BUILTIN_SUPPORTED_ARCH})
-     if (CAN_TARGET_${arch})
-       # For ARM archs, exclude any VFP builtins if VFP is not supported
--      if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
-+      if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em)$")
-         string(REPLACE ";" " " _TARGET_${arch}_CFLAGS "${TARGET_${arch}_CFLAGS}")
-         check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_${arch}_CFLAGS}" COMPILER_RT_HAS_${arch}_VFP)
-         if(NOT COMPILER_RT_HAS_${arch}_VFP)
diff --git a/pkgs/development/compilers/llvm/14/compiler-rt/default.nix b/pkgs/development/compilers/llvm/14/compiler-rt/default.nix
index 59ca5348fed44..cddfd5c23806b 100644
--- a/pkgs/development/compilers/llvm/14/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/14/compiler-rt/default.nix
@@ -73,8 +73,7 @@ stdenv.mkDerivation {
     # extra `/`.
     ./normalize-var.patch
   ] # Prevent a compilation error on darwin
-    ++ lib.optional stdenv.hostPlatform.isDarwin ./darwin-targetconditionals.patch
-    ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch;
+    ++ lib.optional stdenv.hostPlatform.isDarwin ./darwin-targetconditionals.patch;
 
   # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
   # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
diff --git a/pkgs/development/compilers/vyper/default.nix b/pkgs/development/compilers/vyper/default.nix
index ee24cc646e492..00d39d6f93e6a 100644
--- a/pkgs/development/compilers/vyper/default.nix
+++ b/pkgs/development/compilers/vyper/default.nix
@@ -69,5 +69,8 @@ buildPythonPackage rec {
     homepage = "https://github.com/vyperlang/vyper";
     license = licenses.asl20;
     maintainers = with maintainers; [ siraben ];
+    knownVulnerabilities = [
+      "CVE-2022-29255"
+    ];
   };
 }
diff --git a/pkgs/development/coq-modules/paramcoq/default.nix b/pkgs/development/coq-modules/paramcoq/default.nix
index 7f65e6643c55e..e03f44320cf9c 100644
--- a/pkgs/development/coq-modules/paramcoq/default.nix
+++ b/pkgs/development/coq-modules/paramcoq/default.nix
@@ -4,10 +4,11 @@ with lib; mkCoqDerivation {
   pname = "paramcoq";
   inherit version;
   defaultVersion = with versions; switch coq.version [
-    { case = range "8.10" "8.15"; out = "1.1.3+coq${coq.coq-version}"; }
+    { case = range "8.10" "8.16"; out = "1.1.3+coq${coq.coq-version}"; }
     { case = range "8.7"  "8.13"; out = "1.1.2+coq${coq.coq-version}"; }
   ] null;
   displayVersion = { paramcoq = "..."; };
+  release."1.1.3+coq8.16".sha256 = "sha256-K7/8hXH6DwiW7Gw41sgQF8UDAO3c32xBGWQQapzG8Mo=";
   release."1.1.3+coq8.15".sha256 = "0sl7ihznwz05d2x2v78w1zd4q55c1sgy06vxasbcls4v2pkw53hl";
   release."1.1.3+coq8.14".sha256 = "00zqq9dc2p5v0ib1jgizl25xkwxrs9mrlylvy0zvb96dpridjc71";
   release."1.1.3+coq8.13".sha256 = "06ndly736k4pmdn4baqa7fblp6lx7a9pxm9gvz1vzd6ic51825wp";
diff --git a/pkgs/development/haskell-modules/cabal2nix-unstable.nix b/pkgs/development/haskell-modules/cabal2nix-unstable.nix
index a12c20c63c52c..8e9ec97be0c8d 100644
--- a/pkgs/development/haskell-modules/cabal2nix-unstable.nix
+++ b/pkgs/development/haskell-modules/cabal2nix-unstable.nix
@@ -8,10 +8,10 @@
 }:
 mkDerivation {
   pname = "cabal2nix";
-  version = "unstable-2022-04-27";
+  version = "unstable-2022-06-20";
   src = fetchzip {
-    url = "https://github.com/NixOS/cabal2nix/archive/40823c793b4b8588fcfedc8fb147c1a92cfa577d.tar.gz";
-    sha256 = "0gr8hafa282m4qw5y5wrqiwm1a3fl3b7xicnzixss6nlmxmi2skp";
+    url = "https://github.com/NixOS/cabal2nix/archive/9d18320d76e3f29f1787a8377125812150c59021.tar.gz";
+    sha256 = "1gykznb1fl9d9cqksbxc4qsyspp9xazamv57hmv3jpljzl8lq2aq";
   };
   isLibrary = true;
   isExecutable = true;
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 397fbde6cbcb8..c162e3feec355 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -678,9 +678,6 @@ self: super: {
   # https://github.com/pxqr/base32-bytestring/issues/4
   base32-bytestring = dontCheck super.base32-bytestring;
 
-  # 2022-03-24: Strict aeson bound:
-  arch-web = throwIfNot (super.arch-web.version == "0.1.0") "arch-web: remove jailbreak after update"  doJailbreak super.arch-web;
-
   # Djinn's last release was 2014, incompatible with Semigroup-Monoid Proposal
   # https://github.com/augustss/djinn/pull/8
   djinn = appendPatch (fetchpatch {
@@ -1164,17 +1161,6 @@ self: super: {
   # https://github.com/elliottt/hsopenid/issues/15
   openid = markBroken super.openid;
 
-  # Version constraints on test dependency tasty-golden need to be relaxed:
-  # https://github.com/nomeata/arbtt/pull/146
-  arbtt = doJailbreak (overrideCabal (drv: {
-    # The test suite needs the packages's executables in $PATH to succeed.
-    preCheck = ''
-      for i in $PWD/dist/build/*; do
-        export PATH="$i:$PATH"
-      done
-    '';
-  }) super.arbtt);
-
   # https://github.com/erikd/hjsmin/issues/32
   hjsmin = dontCheck super.hjsmin;
 
@@ -1328,19 +1314,6 @@ self: super: {
   x509-validation = dontCheck super.x509-validation;
   tls = dontCheck super.tls;
 
-  patch = appendPatches [
-    # 2022-02-27: https://github.com/reflex-frp/patch/pull/40 for bump bounds
-    (fetchpatch {
-      url = "https://github.com/reflex-frp/patch/commit/15ea4956e04264b9be2fe4644119a709b196708f.patch";
-      sha256 = "sha256-la97DCjeVu82AaQv2my+UhmB/jBmMyxxpRAwhEB1RGc=";
-    })
-    # 2022-03-13: https://github.com/reflex-frp/patch/pull/41 for ghc 9.0 compat
-    (fetchpatch {
-      url = "https://github.com/reflex-frp/patch/commit/fee3addcfc982c7b70489a8a64f208ab2360bdb7.patch";
-      sha256 = "sha256-/CTiHSs+Z4dyL5EJx949XD0zzSAy5s4hzchmNkb0YOk=";
-    })
-  ] super.patch;
-
   # 2022-03-16: lens bound can be loosened https://github.com/ghcjs/jsaddle-dom/issues/19
   jsaddle-dom = overrideCabal (old: {
     postPatch = old.postPatch or "" + ''
@@ -1640,20 +1613,8 @@ self: super: {
 
   reflex-dom-pandoc = super.reflex-dom-pandoc.override { clay = dontCheck self.clay_0_13_3; };
 
-  # 2022-03-16: Pull request for ghc 9 compat: https://github.com/reflex-frp/reflex/pull/467
-  reflex = overrideCabal (drv: {
-    patches = drv.patches or [] ++ [
-      (fetchpatch {
-        url = "https://github.com/reflex-frp/reflex/compare/469b4ab4a755cad76b8d4d6c9ad482d02686b4ae.patch";
-        sha256 = "04sxzxpx7xhr6p4n76rg1ci8zjfzs19lr21ziwsfig8zmdg22i7q";
-      })
-    ];
-    doCheck = false;
-    # hackage revision seems to have DOS newlines
-    prePatch = drv.prePatch or "" + ''
-      ${pkgs.buildPackages.dos2unix}/bin/dos2unix reflex.cabal
-    '';
-  }) super.reflex;
+  # 2022-06-19: Disable checks because of https://github.com/reflex-frp/reflex/issues/475
+  reflex = dontCheck super.reflex;
 
   # 2020-11-19: jailbreaking because of pretty-simple bound out of date
   # https://github.com/kowainik/stan/issues/408
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
index bd51b46abdd2e..aa4a3fc2790c3 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
@@ -493,6 +493,7 @@ broken-packages:
   - buster
   - Buster
   - butter
+  - buttplug-hs-core
   - bv-little
   - byline
   - bytearray-parsing
@@ -2065,6 +2066,7 @@ broken-packages:
   - hasql-explain-tests
   - hasql-generic
   - hasql-implicits
+  - hasql-resource-pool
   - hasql-simple
   - hasql-streams-example
   - hasql-url
@@ -2556,6 +2558,7 @@ broken-packages:
   - hweblib
   - hw-fingertree-strict
   - hwhile
+  - hw-lazy
   - hw-mquery
   - hworker
   - hw-playground-linear
@@ -2664,6 +2667,7 @@ broken-packages:
   - interruptible
   - interval
   - interval-algebra
+  - interval-patterns
   - IntFormats
   - int-multimap
   - intricacy
@@ -2816,6 +2820,7 @@ broken-packages:
   - kawaii
   - Kawaii-Parser
   - kawhi
+  - kazura-queue
   - kdesrc-build-extra
   - kdt
   - kd-tree
@@ -3951,6 +3956,7 @@ broken-packages:
   - polynom
   - polynomial-algebra
   - polysemy-check
+  - polysemy-http
   - polysemy-keyed-state
   - polysemy-kvstore-jsonfile
   - polysemy-managed
@@ -4230,6 +4236,7 @@ broken-packages:
   - reason-export
   - record
   - record-encode
+  - record-impl
   - records
   - record-wrangler
   - recursion-schemes-ext
@@ -5625,6 +5632,7 @@ broken-packages:
   - winery
   - wires
   - wiring
+  - witness
   - witty
   - wkt
   - wkt-geom
@@ -5733,6 +5741,7 @@ broken-packages:
   - YamlReference
   - yaml-rpc
   - yaml-union
+  - yaml-unscrambler
   - yampa2048
   - yampa-glfw
   - yampa-gloss
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
index b5cf7285977a1..d61854cf5bcc1 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
@@ -406,151 +406,159 @@ package-maintainers:
     - nix-tree
 
 unsupported-platforms:
-  Allure:                                       [ x86_64-darwin, aarch64-darwin ]
-  alsa-mixer:                                   [ x86_64-darwin, aarch64-darwin ]
-  alsa-pcm:                                     [ x86_64-darwin, aarch64-darwin ]
-  alsa-seq:                                     [ x86_64-darwin, aarch64-darwin ]
-  AWin32Console:                                [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  barbly:                                       [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
-  bdcs-api:                                     [ x86_64-darwin, aarch64-darwin ]
-  bindings-directfb:                            [ x86_64-darwin, aarch64-darwin ]
-  bindings-parport:                             [ x86_64-darwin, aarch64-darwin ] # parport is a linux kernel component
-  bindings-sane:                                [ x86_64-darwin, aarch64-darwin ]
-  btrfs:                                        [ x86_64-darwin, aarch64-darwin ] # depends on linux
-  bustle:                                       [ x86_64-darwin, aarch64-darwin ] # uses glibc-specific ptsname_r
+  Allure:                                       [ platforms.darwin ]
+  bdcs-api:                                     [ platforms.darwin ]
+  bindings-directfb:                            [ platforms.darwin ]
+  bindings-sane:                                [ platforms.darwin ]
+  bustle:                                       [ platforms.darwin ] # uses glibc-specific ptsname_r
   camfort:                                      [ aarch64-linux ]
   charsetdetect:                                [ aarch64-linux ] # not supported by vendored lib / not configured properly https://github.com/batterseapower/libcharsetdetect/issues/3
-  cut-the-crap:                                 [ x86_64-darwin, aarch64-darwin ]
-  d3d11binding:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  DirectSound:                                  [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  dx9base:                                      [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  dx9d3d:                                       [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  dx9d3dx:                                      [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Euterpea:                                     [ x86_64-darwin, aarch64-darwin ]
-  essence-of-live-coding-PortMidi:              [ x86_64-darwin, aarch64-darwin ]
-  follow-file:                                  [ x86_64-darwin, aarch64-darwin ]
-  freenect:                                     [ x86_64-darwin, aarch64-darwin ]
-  FTGL:                                         [ x86_64-darwin, aarch64-darwin ]
-  fuzzytime:                                    [ x86_64-darwin, aarch64-darwin ] # https://github.com/kamwitsta/fuzzytime/issues/2
-  ghcjs-dom-hello:                              [ x86_64-darwin, aarch64-darwin ]
-  gi-adwaita:                                   [ x86_64-darwin, aarch64-darwin ]
-  gi-dbusmenugtk3:                              [ x86_64-darwin, aarch64-darwin ]
-  gi-dbusmenu:                                  [ x86_64-darwin, aarch64-darwin ]
-  gi-ggit:                                      [ x86_64-darwin, aarch64-darwin ]
-  gi-gtkosxapplication:                         [ x86_64-linux, aarch64-linux ]
-  gi-ibus:                                      [ x86_64-darwin, aarch64-darwin ]
-  gi-javascriptcore:                            [ x86_64-darwin, aarch64-darwin ] # webkitgtk marked broken on darwin
-  gi-ostree:                                    [ x86_64-darwin, aarch64-darwin ]
-  gi-vte:                                       [ x86_64-darwin, aarch64-darwin ]
-  gi-webkit2webextension:                       [ x86_64-darwin, aarch64-darwin ] # webkitgtk marked broken on darwin
-  gi-webkit2:                                   [ x86_64-darwin, aarch64-darwin ] # webkitgtk marked broken on darwin
-  gi-wnck:                                      [ x86_64-darwin, aarch64-darwin ]
-  gnome-keyring:                                [ x86_64-darwin, aarch64-darwin ]
-  grid-proto:                                   [ x86_64-darwin, aarch64-darwin ]
-  gtk3-mac-integration:                         [ x86_64-linux, aarch64-linux ]
-  gtk-mac-integration:                          [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
-  gtk-sni-tray:                                 [ x86_64-darwin, aarch64-darwin ]
-  haskell-snake:                                [ x86_64-darwin, aarch64-darwin ]
-  hbro-contrib:                                 [ x86_64-darwin, aarch64-darwin ] # webkitgtk marked broken on darwin
-  hbro:                                         [ x86_64-darwin, aarch64-darwin ] # webkitgtk marked broken on darwin
-  hcwiid:                                       [ x86_64-darwin, aarch64-darwin ]
-  HDRUtils:                                     [ x86_64-darwin, aarch64-darwin ]
-  HFuse:                                        [ x86_64-darwin, aarch64-darwin ]
-  hidapi:                                       [ x86_64-darwin, aarch64-darwin ]
-  hinotify-bytestring:                          [ x86_64-darwin, aarch64-darwin ]
-  hommage-ds:                                   [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  honk:                                         [ x86_64-darwin, aarch64-darwin ]
-  hpapi:                                        [ x86_64-darwin, aarch64-darwin ]
+  cut-the-crap:                                 [ platforms.darwin ]
+  essence-of-live-coding-PortMidi:              [ platforms.darwin ]
+  Euterpea:                                     [ platforms.darwin ]
+  follow-file:                                  [ platforms.darwin ]
+  freenect:                                     [ platforms.darwin ]
+  FTGL:                                         [ platforms.darwin ]
+  fuzzytime:                                    [ platforms.darwin ] # https://github.com/kamwitsta/fuzzytime/issues/2
+  ghcjs-dom-hello:                              [ platforms.darwin ]
+  gi-adwaita:                                   [ platforms.darwin ]
+  gi-dbusmenugtk3:                              [ platforms.darwin ]
+  gi-dbusmenu:                                  [ platforms.darwin ]
+  gi-ggit:                                      [ platforms.darwin ]
+  gi-ibus:                                      [ platforms.darwin ]
+  gi-javascriptcore:                            [ platforms.darwin ] # webkitgtk marked broken on darwin
+  gi-ostree:                                    [ platforms.darwin ]
+  gi-vte:                                       [ platforms.darwin ]
+  gi-webkit2webextension:                       [ platforms.darwin ] # webkitgtk marked broken on darwin
+  gi-webkit2:                                   [ platforms.darwin ] # webkitgtk marked broken on darwin
+  gi-wnck:                                      [ platforms.darwin ]
+  gnome-keyring:                                [ platforms.darwin ]
+  grid-proto:                                   [ platforms.darwin ]
+  gtk-sni-tray:                                 [ platforms.darwin ]
+  haskell-snake:                                [ platforms.darwin ]
+  hcwiid:                                       [ platforms.darwin ]
+  HDRUtils:                                     [ platforms.darwin ]
+  hidapi:                                       [ platforms.darwin ]
+  hinotify-bytestring:                          [ platforms.darwin ]
+  honk:                                         [ platforms.darwin ]
   HQu:                                          [ aarch64-linux, armv7l-linux ] # unsupported by vendored C++ library, TODO: explicitly list supported platforms
-  HSoM:                                         [ x86_64-darwin, aarch64-darwin ]
-  iwlib:                                        [ x86_64-darwin, aarch64-darwin ]
-  Jazzkell:                                     [ x86_64-darwin, aarch64-darwin ] # depends on Euterpea
-  jsaddle-hello:                                [ x86_64-darwin, aarch64-darwin ] # depends on jsaddle-webkit2gtk
-  jsaddle-webkit2gtk:                           [ x86_64-darwin, aarch64-darwin ]
+  HSoM:                                         [ platforms.darwin ]
+  iwlib:                                        [ platforms.darwin ]
+  Jazzkell:                                     [ platforms.darwin ] # depends on Euterpea
+  jsaddle-hello:                                [ platforms.darwin ] # depends on jsaddle-webkit2gtk
+  jsaddle-webkit2gtk:                           [ platforms.darwin ]
   keid-core:                                    [ aarch64-linux ]
   keid-geometry:                                [ aarch64-linux ]
   keid-render-basic:                            [ aarch64-linux ]
   keid-sound-openal:                            [ aarch64-linux ]
   keid-ui-dearimgui:                            [ aarch64-linux ]
-  kqueue:                                       [ x86_64-linux, aarch64-linux, i686-linux, armv7l-linux ] # BSD / Darwin only API
-  Kulitta:                                      [ x86_64-darwin, aarch64-darwin ] # depends on Euterpea
-  LambdaHack:                                   [ x86_64-darwin, aarch64-darwin ]
+  Kulitta:                                      [ platforms.darwin ] # depends on Euterpea
+  LambdaHack:                                   [ platforms.darwin ]
   large-hashable:                               [ aarch64-linux ] # https://github.com/factisresearch/large-hashable/issues/17
-  libmodbus:                                    [ x86_64-darwin, aarch64-darwin ]
-  libsystemd-journal:                           [ x86_64-darwin, aarch64-darwin ]
-  libtelnet:                                    [ x86_64-darwin, aarch64-darwin ]
-  libvirt-hs:                                   [ x86_64-darwin ] # spidermonkey is not supported on darwin
-  libzfs:                                       [ x86_64-darwin, aarch64-darwin ]
+  libmodbus:                                    [ platforms.darwin ]
+  libsystemd-journal:                           [ platforms.darwin ]
+  libtelnet:                                    [ platforms.darwin ]
+  libvirt-hs:                                   [ platforms.darwin ] # spidermonkey is not supported on darwin
+  libzfs:                                       [ platforms.darwin ]
   linearEqSolver:                               [ aarch64-linux ]
-  linux-evdev:                                  [ x86_64-darwin, aarch64-darwin ]
-  linux-file-extents:                           [ x86_64-darwin, aarch64-darwin ]
-  linux-inotify:                                [ x86_64-darwin, aarch64-darwin ]
-  linux-mount:                                  [ x86_64-darwin, aarch64-darwin ]
-  linux-namespaces:                             [ x86_64-darwin, aarch64-darwin ]
-  lio-fs:                                       [ x86_64-darwin, aarch64-darwin ]
-  logging-facade-journald:                      [ x86_64-darwin, aarch64-darwin ]
+  lio-fs:                                       [ platforms.darwin ]
+  logging-facade-journald:                      [ platforms.darwin ]
   longshot:                                     [ aarch64-linux ]
-  lxc:                                          [ x86_64-darwin, aarch64-darwin ]
-  midi-alsa:                                    [ x86_64-darwin, aarch64-darwin ]
-  mpi-hs:                                       [ aarch64-linux, x86_64-darwin, aarch64-darwin ]
-  mpi-hs-binary:                                [ aarch64-linux, x86_64-darwin, aarch64-darwin ]
-  mpi-hs-cereal:                                [ aarch64-linux, x86_64-darwin, aarch64-darwin ]
-  mpi-hs-store:                                 [ aarch64-linux, x86_64-darwin, aarch64-darwin ]
+  mpi-hs:                                       [ aarch64-linux, platforms.darwin ]
+  mpi-hs-binary:                                [ aarch64-linux, platforms.darwin ]
+  mpi-hs-cereal:                                [ aarch64-linux, platforms.darwin ]
+  mpi-hs-store:                                 [ aarch64-linux, platforms.darwin ]
   mplayer-spot:                                 [ aarch64-linux ]
-  mptcp-pm:                                     [ x86_64-darwin, aarch64-darwin ]
-  netlink:                                      [ x86_64-darwin, aarch64-darwin ]
-  notifications-tray-icon:                      [ x86_64-darwin, aarch64-darwin ] # depends on gi-dbusmenu
-  oculus:                                       [ x86_64-darwin, aarch64-darwin ]
-  pam:                                          [ x86_64-darwin, aarch64-darwin ]
-  parport:                                      [ x86_64-darwin, aarch64-darwin ]
+  mptcp-pm:                                     [ platforms.darwin ]
+  netlink:                                      [ platforms.darwin ]
+  notifications-tray-icon:                      [ platforms.darwin ] # depends on gi-dbusmenu
+  oculus:                                       [ platforms.darwin ]
+  pam:                                          [ platforms.darwin ]
+  parport:                                      [ platforms.darwin ]
   password:                                     [ aarch64-linux, armv7l-linux ] # uses scrypt, which requries x86
   password-instances:                           [ aarch64-linux, armv7l-linux ] # uses scrypt, which requries x86
   persist-state:                                [ aarch64-linux, armv7l-linux ] # https://github.com/minad/persist-state/blob/6fd68c0b8b93dec78218f6d5a1f4fa06ced4e896/src/Data/PersistState.hs#L122-L128
-  piyo:                                         [ x86_64-darwin, aarch64-darwin ]
-  PortMidi-simple:                              [ x86_64-darwin, aarch64-darwin ]
-  PortMidi:                                     [ x86_64-darwin, aarch64-darwin ]
-  posix-api:                                    [ x86_64-darwin, aarch64-darwin ]
-  Raincat:                                      [ x86_64-darwin, aarch64-darwin ]
-  reactive-balsa:                               [ x86_64-darwin, aarch64-darwin ] # depends on alsa-core
-  reactivity:                                   [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  reflex-dom-fragment-shader-canvas:            [ x86_64-darwin, aarch64-darwin, aarch64-linux ]
-  reflex-dom:                                   [ x86_64-darwin, aarch64-darwin, aarch64-linux ]
-  reflex-localize-dom:                          [ x86_64-darwin, aarch64-darwin, aarch64-linux ]
-  rtlsdr:                                       [ x86_64-darwin, aarch64-darwin ]
-  rubberband:                                   [ x86_64-darwin, aarch64-darwin ]
+  piyo:                                         [ platforms.darwin ]
+  PortMidi-simple:                              [ platforms.darwin ]
+  PortMidi:                                     [ platforms.darwin ]
+  posix-api:                                    [ platforms.darwin ]
+  Raincat:                                      [ platforms.darwin ]
+  reactive-balsa:                               [ platforms.darwin ] # depends on alsa-core
+  reflex-dom-fragment-shader-canvas:            [ platforms.darwin, aarch64-linux ]
+  reflex-dom:                                   [ platforms.darwin, aarch64-linux ]
+  reflex-localize-dom:                          [ platforms.darwin, aarch64-linux ]
+  rtlsdr:                                       [ platforms.darwin ]
+  rubberband:                                   [ platforms.darwin ]
   scat:                                         [ aarch64-linux, armv7l-linux ] # uses scrypt, which requries x86
   scrypt:                                       [ aarch64-linux, armv7l-linux ] # https://github.com/informatikr/scrypt/issues/8
-  sdl2-mixer:                                   [ x86_64-darwin, aarch64-darwin ]
-  sdl2-ttf:                                     [ x86_64-darwin, aarch64-darwin ]
-  sensei:                                       [ x86_64-darwin ]
-  synthesizer-alsa:                             [ x86_64-darwin, aarch64-darwin ]
-  taffybar:                                     [ x86_64-darwin, aarch64-darwin ]
-  termonad:                                     [ x86_64-darwin, aarch64-darwin ]
-  tokyotyrant-haskell:                          [ x86_64-darwin, aarch64-darwin ]
-  udev:                                         [ x86_64-darwin, aarch64-darwin ]
-  Unixutils-shadow:                             [ x86_64-darwin, aarch64-darwin ]
+  sdl2-mixer:                                   [ platforms.darwin ]
+  sdl2-ttf:                                     [ platforms.darwin ]
+  sensei:                                       [ platforms.darwin ]
+  synthesizer-alsa:                             [ platforms.darwin ]
+  taffybar:                                     [ platforms.darwin ]
+  termonad:                                     [ platforms.darwin ]
+  tokyotyrant-haskell:                          [ platforms.darwin ]
+  Unixutils-shadow:                             [ platforms.darwin ]
   verifiable-expressions:                       [ aarch64-linux ]
-  vrpn:                                         [ x86_64-darwin, aarch64-darwin ]
-  vulkan:                                       [ i686-linux, armv7l-linux, x86_64-darwin, aarch64-darwin ]
-  VulkanMemoryAllocator:                        [ i686-linux, armv7l-linux, x86_64-darwin, aarch64-darwin ]
-  vulkan-utils:                                 [ x86_64-darwin, aarch64-darwin ]
-  webkit2gtk3-javascriptcore:                   [ x86_64-darwin, aarch64-darwin ]
-  Win32-console:                                [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-dhcp-server:                            [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-errors:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-extras:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32:                                        [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-junction-point:                         [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-notify:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-security:                               [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-services:                               [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-services-wrapper:                       [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  xattr:                                        [ x86_64-darwin, aarch64-darwin ]
+  vrpn:                                         [ platforms.darwin ]
+  vulkan:                                       [ i686-linux, armv7l-linux, platforms.darwin ]
+  VulkanMemoryAllocator:                        [ i686-linux, armv7l-linux, platforms.darwin ]
+  vulkan-utils:                                 [ platforms.darwin ]
+  webkit2gtk3-javascriptcore:                   [ platforms.darwin ]
+  xattr:                                        [ platforms.darwin ]
   xgboost-haskell:                              [ aarch64-linux, armv7l-linux ]
-  XInput:                                       [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  xmobar:                                       [ x86_64-darwin, aarch64-darwin ]
-  xmonad-extras:                                [ x86_64-darwin, aarch64-darwin ]
-  xmonad-volume:                                [ x86_64-darwin, aarch64-darwin ]
+  xmobar:                                       [ platforms.darwin ]
+  xmonad-extras:                                [ platforms.darwin ]
+  xmonad-volume:                                [ platforms.darwin ]
+
+supported-platforms:
+  AWin32Console:                                [ platforms.windows ]
+  alsa-mixer:                                   [ platforms.linux ]
+  alsa-pcm:                                     [ platforms.linux ]
+  alsa-seq:                                     [ platforms.linux ]
+  barbly:                                       [ platforms.darwin ]
+  bindings-parport:                             [ platforms.linux ] # parport is a linux kernel component
+  blake3:                                       [ platforms.x86 ] # uses x86 intrinsics
+  btrfs:                                        [ platforms.linux ] # depends on linux
+  cpuid:                                        [ platforms.x86 ] # needs to be i386 compatible (IA-32)
+  crc32c:                                       [ platforms.x86 ] # uses x86 intrinsics
+  d3d11binding:                                 [ platforms.windows ]
+  DirectSound:                                  [ platforms.windows ]
+  dx9base:                                      [ platforms.windows ]
+  dx9d3d:                                       [ platforms.windows ]
+  dx9d3dx:                                      [ platforms.windows ]
+  geomancy:                                     [ platforms.x86 ] # x86 intrinsics
+  gi-gtkosxapplication:                         [ platforms.darwin ]
+  gtk-mac-integration:                          [ platforms.darwin ]
+  gtk3-mac-integration:                         [ platforms.darwin ]
+  hommage-ds:                                   [ platforms.windows ]
+  hpapi:                                        [ platforms.linux ] # limited by pkgs.papi
+  hsignal:                                      [ platforms.x86 ] # -msse2
+  HFuse:                                        [ platforms.linux ]
+  hw-prim-bits:                                 [ platforms.x86 ] # x86 assembler
+  inline-asm:                                   [ platforms.x86 ] # x86 assembler
+  kqueue:                                       [ platforms.netbsd, platforms.freebsd, platforms.openbsd, platforms.darwin ]
+  linux-evdev:                                  [ platforms.linux ]
+  linux-file-extents:                           [ platforms.linux ]
+  linux-inotify:                                [ platforms.linux ]
+  linux-mount:                                  [ platforms.linux ]
+  linux-namespaces:                             [ platforms.linux ]
+  lxc:                                          [ platforms.linux ]
+  midi-alsa:                                    [ platforms.linux ]
+  reactivity:                                   [ platforms.windows ]
+  seqalign:                                     [ platforms.x86 ] # x86 intrinsics
+  udev:                                         [ platforms.linux ]
+  Win32-console:                                [ platforms.windows ]
+  Win32-dhcp-server:                            [ platforms.windows ]
+  Win32-errors:                                 [ platforms.windows ]
+  Win32-extras:                                 [ platforms.windows ]
+  Win32-junction-point:                         [ platforms.windows ]
+  Win32-notify:                                 [ platforms.windows ]
+  Win32:                                        [ platforms.windows ]
+  Win32-security:                               [ platforms.windows ]
+  Win32-services:                               [ platforms.windows ]
+  Win32-services-wrapper:                       [ platforms.windows ]
+  XInput:                                       [ platforms.windows ]
 
 dont-distribute-packages:
   # Depends on shine, which is a ghcjs project.
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
index 902df7335c3e7..8c460af7e375f 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
@@ -1,4 +1,4 @@
-# Stackage LTS 19.10
+# Stackage LTS 19.11
 # This file is auto-generated by
 # maintainers/scripts/haskell/update-stackage.sh
 default-package-overrides:
@@ -231,7 +231,7 @@ default-package-overrides:
   - brick ==0.68.1
   - brittany ==0.14.0.2
   - broadcast-chan ==0.2.1.2
-  - brotli ==0.0.0.0
+  - brotli ==0.0.0.1
   - brotli-streams ==0.0.0.0
   - bsb-http-chunked ==0.0.0.4
   - bson ==0.4.0.1
@@ -241,7 +241,7 @@ default-package-overrides:
   - bugsnag-haskell ==0.0.4.4
   - bugsnag-hs ==0.2.0.8
   - bugzilla-redhat ==1.0.0
-  - burrito ==2.0.1.0
+  - burrito ==2.0.1.1
   - butcher ==1.3.3.2
   - buttplug-hs-core ==0.1.0.1
   - bv ==0.5
@@ -279,7 +279,7 @@ default-package-overrides:
   - cached-json-file ==0.1.1
   - cacophony ==0.10.1
   - calendar-recycling ==0.0.0.1
-  - call-alloy ==0.3
+  - call-alloy ==0.3.0.1
   - call-stack ==0.4.0
   - can-i-haz ==0.3.1.0
   - capability ==0.5.0.1
@@ -429,9 +429,9 @@ default-package-overrides:
   - convertible ==1.1.1.1
   - cookie ==0.4.5
   - copr-api ==0.1.0
-  - core-data ==0.3.2.2
+  - core-data ==0.3.3.1
   - core-program ==0.4.6.4
-  - core-text ==0.3.7.1
+  - core-text ==0.3.7.2
   - countable ==1.0
   - covariance ==0.1.0.6
   - cpphs ==1.20.9.1
@@ -645,6 +645,7 @@ default-package-overrides:
   - either ==5.0.2
   - either-both ==0.1.1.1
   - either-unwrap ==1.1
+  - ekg-core ==0.1.1.7
   - elerea ==2.9.0
   - elf ==0.31
   - eliminators ==0.8
@@ -1325,7 +1326,7 @@ default-package-overrides:
   - js-flot ==0.8.3
   - js-jquery ==3.3.1
   - json ==0.10
-  - json-feed ==2.0.0.1
+  - json-feed ==2.0.0.2
   - jsonifier ==0.2.1.1
   - jsonpath ==0.2.1.0
   - json-stream ==0.4.4.1
@@ -1340,7 +1341,7 @@ default-package-overrides:
   - kanji ==3.5.0
   - katip ==0.8.7.2
   - katip-logstash ==0.1.0.2
-  - katip-wai ==0.1.1.0
+  - katip-wai ==0.1.2.0
   - kazura-queue ==0.1.0.4
   - keep-alive ==0.2.0.0
   - keycode ==0.2.2
@@ -1355,7 +1356,7 @@ default-package-overrides:
   - krank ==0.2.3
   - l10n ==0.1.0.1
   - labels ==0.3.3
-  - lackey ==2.0.0.1
+  - lackey ==2.0.0.2
   - LambdaHack ==0.11.0.0
   - lame ==0.2.0
   - language-bash ==0.9.2
@@ -1512,6 +1513,7 @@ default-package-overrides:
   - messagepack ==0.5.5
   - metrics ==0.4.1.1
   - mfsolve ==0.3.2.1
+  - microaeson ==0.1.0.1
   - microlens ==0.4.12.0
   - microlens-aeson ==2.4.1
   - microlens-contra ==0.1.0.2
@@ -1531,6 +1533,7 @@ default-package-overrides:
   - mime-types ==0.1.0.9
   - minimal-configuration ==0.1.4
   - minimorph ==0.3.0.0
+  - minio-hs ==1.6.0
   - miniutter ==0.5.1.1
   - min-max-pqueue ==0.1.0.2
   - mintty ==0.1.3
@@ -1689,7 +1692,7 @@ default-package-overrides:
   - NumInstances ==1.4
   - numtype-dk ==0.5.0.3
   - nuxeo ==0.3.2
-  - nvim-hs ==2.2.0.1
+  - nvim-hs ==2.2.0.2
   - ObjectName ==1.1.0.2
   - ochintin-daicho ==0.3.4.2
   - o-clock ==1.2.1.1
@@ -1746,7 +1749,7 @@ default-package-overrides:
   - pandoc ==2.17.1.1
   - pandoc-csv2table ==1.0.9
   - pandoc-dhall-decoder ==0.1.0.1
-  - pandoc-lua-marshal ==0.1.6
+  - pandoc-lua-marshal ==0.1.6.1
   - pandoc-plot ==1.4.1
   - pandoc-throw ==0.1.0.0
   - pandoc-types ==1.22.2
@@ -1979,7 +1982,7 @@ default-package-overrides:
   - rainbow ==0.34.2.2
   - rainbox ==0.26.0.0
   - ral ==0.2.1
-  - rampart ==2.0.0.0
+  - rampart ==2.0.0.1
   - ramus ==0.1.2
   - rando ==0.0.0.4
   - random ==1.2.1.1
@@ -1995,7 +1998,7 @@ default-package-overrides:
   - rank2classes ==1.4.4
   - Rasterific ==0.7.5.4
   - rasterific-svg ==0.3.3.2
-  - ratel ==2.0.0.0
+  - ratel ==2.0.0.2
   - rate-limit ==1.4.2
   - ratel-wai ==2.0.0.0
   - rattle ==0.2
@@ -2444,7 +2447,7 @@ default-package-overrides:
   - tdigest ==0.2.1.1
   - teardown ==0.5.0.1
   - telegram-bot-simple ==0.4.5
-  - template-haskell-compat-v0208 ==0.1.7
+  - template-haskell-compat-v0208 ==0.1.9
   - temporary ==1.3
   - temporary-rc ==1.2.0.3
   - temporary-resourcet ==0.1.0.1
@@ -2544,7 +2547,7 @@ default-package-overrides:
   - topograph ==1.0.0.1
   - torsor ==0.1
   - tostring ==0.2.1.1
-  - tracing ==0.0.7.2
+  - tracing ==0.0.7.3
   - tracing-control ==0.0.7.3
   - transaction ==0.1.1.3
   - transformers-base ==0.4.6
@@ -2765,6 +2768,7 @@ default-package-overrides:
   - windns ==0.1.0.1
   - wire-streams ==0.1.1.0
   - witch ==1.0.0.2
+with-compiler: ghc-9.0.2
   - withdependencies ==0.3.0
   - witherable ==0.4.2
   - within ==0.2.0.1
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
index 53eb14c1f41be..bfbf505795508 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
@@ -1275,6 +1275,9 @@ dont-distribute-packages:
  - dobutokO4
  - doc-review
  - dom-parser
+ - domain
+ - domain-aeson
+ - domain-cereal
  - dormouse-client
  - dotparse
  - doublezip
@@ -1939,6 +1942,8 @@ dont-distribute-packages:
  - haskades
  - haskdeep
  - haskeem
+ - haskell-admin
+ - haskell-admin-managed-functions
  - haskell-aliyun
  - haskell-bitmex-client
  - haskell-docs
@@ -2169,6 +2174,7 @@ dont-distribute-packages:
  - hranker
  - hreq-client
  - hreq-conduit
+ - hriemann
  - hs
  - hs-blake2
  - hs-ffmpeg
@@ -2490,7 +2496,6 @@ dont-distribute-packages:
  - labyrinth
  - labyrinth-server
  - laika
- - lambda-calculator
  - lambda-devs
  - lambda-options
  - lambdaFeed
@@ -3316,6 +3321,7 @@ dont-distribute-packages:
  - regions-monadsfd
  - regions-monadstf
  - regions-mtl
+ - registry-aeson
  - registry-hedgehog
  - registry-hedgehog-aeson
  - registry-messagepack
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index f1396fd0dd78a..ba5d70682a8c3 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -99,6 +99,19 @@ self: super: builtins.intersectAttrs super {
   ormolu = enableSeparateBinOutput super.ormolu;
   ghcid = enableSeparateBinOutput super.ghcid;
 
+  arbtt = overrideCabal (drv: {
+    # The test suite needs the packages's executables in $PATH to succeed.
+    preCheck = ''
+      for i in $PWD/dist/build/*; do
+        export PATH="$i:$PATH"
+      done
+    '';
+    # One test uses timezone data
+    testToolDepends = drv.testToolDepends or [] ++ [
+      pkgs.tzdata
+    ];
+  }) super.arbtt;
+
   hzk = overrideCabal (drv: {
     preConfigure = "sed -i -e /include-dirs/d hzk.cabal";
     configureFlags = [ "--extra-include-dirs=${pkgs.zookeeper_mt}/include/zookeeper" ];
@@ -759,40 +772,9 @@ self: super: builtins.intersectAttrs super {
     })
     (generateOptparseApplicativeCompletion "pnbackup" super.pinboard-notes-backup);
 
-  # set more accurate set of platforms instead of maintaining
-  # an ever growing list of platforms to exclude via unsupported-platforms
-  cpuid = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.cpuid;
-
   # Pass the correct libarchive into the package.
   streamly-archive = super.streamly-archive.override { archive = pkgs.libarchive; };
 
-  # passes the -msse2 flag which only works on x86 platforms
-  hsignal = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.hsignal;
-
-  # uses x86 intrinsics
-  blake3 = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.blake3;
-
-  # uses x86 intrinsics, see also https://github.com/NixOS/nixpkgs/issues/122014
-  crc32c = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.crc32c;
-
-  # uses x86 intrinsics
-  seqalign = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.seqalign;
-
-  # uses x86 intrinsics
-  geomancy = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.geomancy;
-
   hlint = overrideCabal (drv: {
     postInstall = ''
       install -Dm644 data/hlint.1 -t "$out/share/man/man1"
@@ -811,16 +793,6 @@ self: super: builtins.intersectAttrs super {
     ] ++ (drv.librarySystemDepends or []);
   }) super.taglib;
 
-  # uses x86 assembler
-  inline-asm = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.inline-asm;
-
-  # uses x86 assembler in C bits
-  hw-prim-bits = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.hw-prim-bits;
-
   # random 1.2.0 has tests that indirectly depend on
   # itself causing an infinite recursion at evaluation
   # time
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index cae5f5c657df2..914a9c6337e92 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -66,6 +66,7 @@ self: {
        description = "A tetris-like game (works with GHC 6.8.3 and Gtk2hs 0.9.13)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "4Blocks";
      }) {};
 
   "AAI" = callPackage
@@ -382,6 +383,7 @@ self: {
        description = "foundational type classes for approximating exact real numbers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "toolAERN-bench-csv-to-gnuplot";
        broken = true;
      }) {};
 
@@ -616,7 +618,7 @@ self: {
        libraryHaskellDepends = [ base regex-compat Win32 ];
        description = "A binding to a part of the ANSI escape code for the console";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "AbortT-monadstf" = callPackage
@@ -684,6 +686,7 @@ self: {
        description = "An easy-to-use video game framework for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "actionkid";
        broken = true;
      }) {};
 
@@ -701,6 +704,7 @@ self: {
        description = "Library for incremental computing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spreadsheet";
        broken = true;
      }) {};
 
@@ -717,6 +721,7 @@ self: {
        description = "Library for incremental computing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spreadsheet";
        broken = true;
      }) {};
 
@@ -732,6 +737,7 @@ self: {
        description = "Lisperati's adventure game in Lisp translated to Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "advgame";
      }) {};
 
   "Advise-me" = callPackage
@@ -817,6 +823,8 @@ self: {
        pname = "Agda";
        version = "2.6.2.2";
        sha256 = "0yjjbhc593ylrm4mq4j01nkdvh7xqsg5in30wxj4y53vf5hkggp5";
+       revision = "1";
+       editedCabalFile = "0ahdsyrcrj0qm4zwsmcjrpq3a8w2yxp2hgpsjfl9b7a2b7k05pz2";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -835,7 +843,7 @@ self: {
        executableToolDepends = [ emacs ];
        description = "A dependently typed functional programming language and proof assistant";
        license = "unknown";
-       maintainers = with lib.maintainers; [ abbradar turion ];
+       maintainers = [ lib.maintainers.abbradar lib.maintainers.turion ];
      }) {inherit (pkgs) emacs;};
 
   "Agda-executable" = callPackage
@@ -850,6 +858,7 @@ self: {
        description = "Command-line program for type-checking and compiling Agda programs";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "agda";
        broken = true;
      }) {};
 
@@ -919,6 +928,7 @@ self: {
        description = "Algorithmic music composition";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "music-exe";
      }) {};
 
   "AlgorithmW" = callPackage
@@ -933,6 +943,7 @@ self: {
        description = "Example implementation of Algorithm W for Hindley-Milner type inference";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "AlgorithmW";
        broken = true;
      }) {};
 
@@ -978,10 +989,9 @@ self: {
        ];
        description = "Near-future Sci-Fi roguelike and tactical squad combat game";
        license = lib.licenses.agpl3Plus;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Allure";
      }) {};
 
   "AndroidViewHierarchyImporter" = callPackage
@@ -1002,6 +1012,7 @@ self: {
        description = "Android view hierarchy importer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "AndroidViewHierarchyImporter";
      }) {};
 
   "Animas" = callPackage
@@ -1041,6 +1052,7 @@ self: {
        executableHaskellDepends = [ base mtl parsec xhtml ];
        description = "Convert ANSI Terminal Sequences to nice HTML markup";
        license = lib.licenses.bsd3;
+       mainProgram = "ansi2html";
      }) {};
 
   "Aoide" = callPackage
@@ -1076,6 +1088,7 @@ self: {
        description = "Library for Apple Push Notification Service";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "applepushtest";
      }) {};
 
   "AppleScript" = callPackage
@@ -1202,6 +1215,7 @@ self: {
        description = "Visualisation of Strange Attractors in 3-Dimensions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Attrac";
        broken = true;
      }) {};
 
@@ -1217,6 +1231,7 @@ self: {
        description = "Yet another parser generator for C/C++";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Aurochs";
        broken = true;
      }) {};
 
@@ -1285,6 +1300,7 @@ self: {
        description = "Big Contact Map Tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bcmtools";
        broken = true;
      }) {};
 
@@ -1314,6 +1330,7 @@ self: {
        testToolDepends = [ alex happy hspec-discover ];
        description = "A compiler front-end generator";
        license = lib.licenses.bsd3;
+       mainProgram = "bnfc";
      }) {};
 
   "BNFC-meta" = callPackage
@@ -1359,6 +1376,7 @@ self: {
        description = "Translations of classic Truth Maintenance Systems";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hbps";
        broken = true;
      }) {};
 
@@ -1421,6 +1439,7 @@ self: {
        description = "An ad-hoc P2P chat program";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Barracuda";
      }) {};
 
   "Befunge93" = callPackage
@@ -1435,6 +1454,7 @@ self: {
        description = "An interpreter for the Befunge-93 Programming Language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Befunge93";
        broken = true;
      }) {};
 
@@ -1525,6 +1545,7 @@ self: {
        executableHaskellDepends = [ array base bmp bytestring gloss ];
        description = "Image editor for pixel art";
        license = lib.licenses.bsd3;
+       mainProgram = "BigPixel";
      }) {};
 
   "BinderAnn" = callPackage
@@ -1722,6 +1743,7 @@ self: {
        ];
        description = "streaming FASTA parser";
        license = lib.licenses.bsd3;
+       mainProgram = "fastaextract";
      }) {};
 
   "BiobaseHTTP" = callPackage
@@ -1800,6 +1822,7 @@ self: {
        description = "Infernal data structures and tools";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cmsearchFilter";
      }) {};
 
   "BiobaseMAF" = callPackage
@@ -1840,6 +1863,7 @@ self: {
        description = "Newick file format parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TestForestStructure";
        broken = true;
      }) {};
 
@@ -1861,6 +1885,7 @@ self: {
        description = "RNA folding training data";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "MkTrainingData";
      }) {};
 
   "BiobaseTurner" = callPackage
@@ -1970,6 +1995,7 @@ self: {
        ];
        description = "Efficient RNA/DNA/Protein Primary/Secondary Structure";
        license = lib.licenses.bsd3;
+       mainProgram = "SubOptDistance";
      }) {};
 
   "BirdPP" = callPackage
@@ -1984,6 +2010,7 @@ self: {
        description = "A preprocessor for Bird-style Literate Haskell comments with Haddock markup";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "BirdPP";
      }) {};
 
   "BitStringRandomMonad" = callPackage
@@ -2034,6 +2061,27 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "Blammo" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, case-insensitive, clock
+     , containers, envparse, exceptions, fast-logger, hspec, http-types
+     , lens, markdown-unlit, monad-logger-aeson, text, time
+     , unliftio-core, unordered-containers, vector, wai
+     }:
+     mkDerivation {
+       pname = "Blammo";
+       version = "1.0.1.1";
+       sha256 = "1ysfy8crdm6j3l80hw9rdr4rqsxyhywp3rf8m9yjygmhrndx38ih";
+       libraryHaskellDepends = [
+         aeson base bytestring case-insensitive clock containers envparse
+         exceptions fast-logger http-types lens monad-logger-aeson text time
+         unliftio-core unordered-containers vector wai
+       ];
+       testHaskellDepends = [ aeson base hspec markdown-unlit text ];
+       testToolDepends = [ markdown-unlit ];
+       description = "Batteries-included Structured Logging library";
+       license = lib.licenses.mit;
+     }) {};
+
   "BlastHTTP" = callPackage
     ({ mkDerivation, base, BiobaseBlast, BiobaseFasta, bytestring
      , conduit, either-unwrap, HTTP, http-conduit, hxt, mtl, network
@@ -2072,6 +2120,7 @@ self: {
        description = "Diagram editor";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blobs";
      }) {};
 
   "BlogLiterately" = callPackage
@@ -2096,6 +2145,7 @@ self: {
        executableHaskellDepends = [ base cmdargs ];
        description = "A tool for posting Haskelly articles to blogs";
        license = lib.licenses.gpl3Only;
+       mainProgram = "BlogLiterately";
      }) {};
 
   "BlogLiterately-diagrams" = callPackage
@@ -2118,6 +2168,7 @@ self: {
        description = "Include images in blog posts with inline diagrams code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "BlogLiteratelyD";
      }) {};
 
   "Blogdown" = callPackage
@@ -2147,6 +2198,7 @@ self: {
        description = "A markdown-like markup language designed for blog posts";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Blogdown";
        broken = true;
      }) {};
 
@@ -2193,6 +2245,7 @@ self: {
        description = "A simple document organizer with some wiki functionality";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bookshelf";
      }) {};
 
   "Boolean" = callPackage
@@ -2271,6 +2324,7 @@ self: {
        description = "Hits a set of urls periodically to bust caches";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "buster";
        broken = true;
      }) {};
 
@@ -2412,6 +2466,7 @@ self: {
        description = "preprocessor and library for Causal Commutative Arrows (CCA)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ccap";
        broken = true;
      }) {};
 
@@ -2477,6 +2532,7 @@ self: {
        description = "Infernal covariance model comparison";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "CMCompare";
      }) {};
 
   "CMQ" = callPackage
@@ -2522,6 +2578,7 @@ self: {
        description = "A simple Brainfuck interpretter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bf";
      }) {};
 
   "CPL" = callPackage
@@ -2537,6 +2594,7 @@ self: {
        ];
        description = "An interpreter of Hagino's Categorical Programming Language (CPL)";
        license = lib.licenses.bsd3;
+       mainProgram = "cpl";
      }) {};
 
   "CSPM-CoreLanguage" = callPackage
@@ -2642,6 +2700,7 @@ self: {
        description = "cspm command line tool for analyzing CSPM specifications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cspm";
      }) {};
 
   "CTRex" = callPackage
@@ -2891,6 +2950,7 @@ self: {
        description = "Search cabal packages by name";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabalsearch";
        broken = true;
      }) {};
 
@@ -2945,6 +3005,7 @@ self: {
        description = "A translation from the Carneades argumentation model into Dung's AFs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "caell";
      }) {};
 
   "Cartesian" = callPackage
@@ -3173,6 +3234,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Tests of the Charts library";
        license = lib.licenses.bsd3;
+       mainProgram = "chart-harness";
      }) {};
 
   "ChasingBottoms" = callPackage
@@ -3205,6 +3267,7 @@ self: {
        executableHaskellDepends = [ base containers directory ];
        description = "A Haskell cheat sheet in PDF and literate formats";
        license = lib.licenses.bsd3;
+       mainProgram = "cheatsheet";
      }) {};
 
   "Checked" = callPackage
@@ -3232,6 +3295,7 @@ self: {
        description = "A platform independent mechanism to render graphics using vnc";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Chitra";
        broken = true;
      }) {};
 
@@ -3356,6 +3420,7 @@ self: {
        description = "Libary for parsing Clustal tools output";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ClustalParserTest";
      }) {};
 
   "Coadjute" = callPackage
@@ -3443,6 +3508,7 @@ self: {
        description = "A concurrent bittorrent client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Combinatorrent";
      }) {};
 
   "Command" = callPackage
@@ -3479,6 +3545,7 @@ self: {
        description = "Watch some files; Rerun a command";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "commando";
        broken = true;
      }) {};
 
@@ -3533,6 +3600,7 @@ self: {
        ];
        description = "Cluster algorithms, PCA, and chemical conformere analysis";
        license = lib.licenses.agpl3Only;
+       mainProgram = "conclusion";
      }) {};
 
   "Concurrent-Cache" = callPackage
@@ -3581,6 +3649,7 @@ self: {
        description = "Information retrieval library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "condor";
      }) {};
 
   "ConfigFile" = callPackage
@@ -3661,6 +3730,7 @@ self: {
        description = "Restart a command on STDIN activity";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "conscript";
        broken = true;
      }) {};
 
@@ -3719,6 +3789,7 @@ self: {
        description = "Implementation of the context algebra";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ContextAlgebra";
        broken = true;
      }) {};
 
@@ -3955,6 +4026,7 @@ self: {
        description = "Real-Time Game Tournament Evaluator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DAG-Tournament";
        broken = true;
      }) {};
 
@@ -3985,6 +4057,7 @@ self: {
        ];
        description = "RFC 4918 WebDAV support";
        license = lib.licenses.gpl3Only;
+       mainProgram = "hdav";
      }) {};
 
   "DBFunctor" = callPackage
@@ -4012,6 +4085,7 @@ self: {
        ];
        description = "DBFunctor - Functional Data Management => ETL/ELT Data Processing in Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "dbfunctor-example";
      }) {};
 
   "DBlimited" = callPackage
@@ -4026,6 +4100,7 @@ self: {
        description = "A command-line SQL interface for flat files (tdf,csv,etc.)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBlimited";
        broken = true;
      }) {};
 
@@ -4065,6 +4140,7 @@ self: {
        description = "Distributed Mutation Analysis framework for MuCheck";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dummy";
      }) {};
 
   "DOH" = callPackage
@@ -4144,6 +4220,7 @@ self: {
        description = "Darcs Patch Manager";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dpm";
        broken = true;
      }) {};
 
@@ -4257,6 +4334,7 @@ self: {
        description = "Database Supported Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vldot";
      }) {};
 
   "DSTM" = callPackage
@@ -4335,6 +4413,7 @@ self: {
        description = "Dao is meta programming language with its own built-in interpreted language, designed with artificial intelligence applications in mind";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dao";
        broken = true;
      }) {};
 
@@ -4404,6 +4483,7 @@ self: {
        description = "A package for adding index column to data files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DataIndex";
        broken = true;
      }) {};
 
@@ -4468,6 +4548,7 @@ self: {
        description = "Write clients for Meteor's DDP Protocol";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "deadpan";
        broken = true;
      }) {};
 
@@ -4583,6 +4664,7 @@ self: {
        description = "A demonstration interpreter for type system delta-lambda (of N.G. De-bruijn)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Delta-Lambda";
        broken = true;
      }) {};
 
@@ -4752,7 +4834,7 @@ self: {
        librarySystemDepends = [ dsound ];
        description = "Partial binding to the Microsoft DirectSound API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {dsound = null;};
 
   "DisTract" = callPackage
@@ -4807,6 +4889,7 @@ self: {
        description = "Hash modules (currently Murmur3)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Dish";
        broken = true;
      }) {};
 
@@ -4876,6 +4959,7 @@ self: {
        description = "Frameshift-aware alignment of protein sequences with DNA sequences";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DnaProteinAlignment";
      }) {};
 
   "DocTest" = callPackage
@@ -4894,6 +4978,7 @@ self: {
        description = "Test interactive Haskell examples";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doctest";
      }) {};
 
   "Docs" = callPackage
@@ -4924,6 +5009,7 @@ self: {
        description = "A tool for deriving hylomorphisms";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DrHylo";
      }) {};
 
   "DrIFT" = callPackage
@@ -4973,6 +5059,7 @@ self: {
        description = "An implementation of the Dung argumentation frameworks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dungell";
        broken = true;
      }) {};
 
@@ -5206,6 +5293,7 @@ self: {
        executableToolDepends = [ happy ];
        description = "Peter's Syntax Diagram Drawing Tool";
        license = lib.licenses.bsd3;
+       mainProgram = "ebnf2ps";
      }) {};
 
   "EdisonAPI" = callPackage
@@ -5257,6 +5345,7 @@ self: {
        description = "Query language and report generator for edit logs";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "report";
      }) {};
 
   "Eight-Ball-Pool-Hack-Cheats" = callPackage
@@ -5356,6 +5445,7 @@ self: {
        description = "derives heuristic rules from nominal data";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "emping";
        broken = true;
      }) {};
 
@@ -5458,6 +5548,7 @@ self: {
        description = "Render math formula in ASCII, and perform some simplifications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "eq";
        broken = true;
      }) {};
 
@@ -5532,6 +5623,7 @@ self: {
        description = "A new implementation of the LambdaMOO server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "etamoo";
      }) {inherit (pkgs) pcre;};
 
   "Etage" = callPackage
@@ -5568,6 +5660,7 @@ self: {
        description = "Data-flow based graph algorithms";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "etage-graph-test";
      }) {};
 
   "Eternal10Seconds" = callPackage
@@ -5583,6 +5676,7 @@ self: {
        description = "A 2-D shooting game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Eternal10Seconds";
      }) {};
 
   "Etherbunny" = callPackage
@@ -5605,6 +5699,7 @@ self: {
        description = "A network analysis toolkit for Haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "etherbunny";
      }) {inherit (pkgs) libpcap;};
 
   "EuroIT" = callPackage
@@ -5632,9 +5727,7 @@ self: {
        ];
        description = "Library for computer music research and education";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "EventSocket" = callPackage
@@ -5710,6 +5803,7 @@ self: {
        description = "Compose music";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fcomp";
      }) {};
 
   "FM-SBLEX" = callPackage
@@ -5776,9 +5870,7 @@ self: {
        librarySystemDepends = [ ftgl ];
        description = "Portable TrueType font rendering for OpenGL using the Freetype2 library";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) ftgl;};
 
   "FTGL-bytestring" = callPackage
@@ -5816,6 +5908,7 @@ self: {
        description = "A command-line FTP client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "FTPLine";
      }) {};
 
   "Facebook-Password-Hacker-Online-Latest-Version" = callPackage
@@ -5934,6 +6027,7 @@ self: {
        description = "Annotate ps and pdf documents";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flm";
      }) {};
 
   "FerryCore" = callPackage
@@ -5966,6 +6060,7 @@ self: {
        description = "Evaluation using F-Algebras";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Feval";
        broken = true;
      }) {};
 
@@ -6069,6 +6164,7 @@ self: {
        description = "File content extraction/rearrangement";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Files";
        broken = true;
      }) {};
 
@@ -6208,6 +6304,7 @@ self: {
        description = "Wiki";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flippi";
      }) {};
 
   "FloatingHex" = callPackage
@@ -6413,6 +6510,7 @@ self: {
        description = "Utilities to generate and solve puzzles";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "foster";
      }) {};
 
   "FpMLv53" = callPackage
@@ -6443,6 +6541,7 @@ self: {
        executableSystemDepends = [ libX11 ];
        description = "Generates colorful wallpapers";
        license = lib.licenses.mit;
+       mainProgram = "FractalArt";
      }) {inherit (pkgs.xorg) libX11;};
 
   "Fractaler" = callPackage
@@ -6460,6 +6559,7 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Fractaler";
        broken = true;
      }) {};
 
@@ -6588,6 +6688,7 @@ self: {
        description = "An experimental programming language with typed algebraic effects";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "frank";
      }) {};
 
   "FreeTypeGL" = callPackage
@@ -6641,6 +6742,7 @@ self: {
        description = "Funge-98 interpreter written in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fungi";
        broken = true;
      }) {};
 
@@ -6667,6 +6769,7 @@ self: {
        description = "GGg cipher";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "GGg";
        broken = true;
      }) {};
 
@@ -6746,6 +6849,7 @@ self: {
        description = "GLFW-b demo";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "GLFW-b-demo";
        broken = true;
      }) {};
 
@@ -6995,6 +7099,7 @@ self: {
        description = "GLFW OpenGL context creation for GPipe";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "playground";
        broken = true;
      }) {};
 
@@ -7068,6 +7173,7 @@ self: {
        description = "An Io interpreter in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ganymede";
        broken = true;
      }) {};
 
@@ -7097,6 +7203,7 @@ self: {
        description = "Several games";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gebop";
      }) {};
 
   "GenI" = callPackage
@@ -7131,6 +7238,7 @@ self: {
        description = "A natural language generator (specifically, an FB-LTAG surface realiser)";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "geni";
      }) {};
 
   "GenSmsPdu" = callPackage
@@ -7145,6 +7253,7 @@ self: {
        description = "Automatic SMS message generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gensmspdu";
      }) {};
 
   "Genbank" = callPackage
@@ -7164,6 +7273,7 @@ self: {
        description = "Libary for processing the NCBI genbank format";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "GenbankTest";
      }) {};
 
   "Gene-CluEDO" = callPackage
@@ -7190,6 +7300,7 @@ self: {
        description = "Hox gene clustering";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "GeneCluEDO";
      }) {};
 
   "GeneralTicTacToe" = callPackage
@@ -7204,6 +7315,7 @@ self: {
        description = "A general TicTacToe game implementation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "GeneralTicTacToe";
        broken = true;
      }) {};
 
@@ -7244,6 +7356,7 @@ self: {
        description = "MCFGs for Genus-1 RNA Pseudoknots";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "GenussFold";
      }) {};
 
   "GeoIp" = callPackage
@@ -7451,6 +7564,7 @@ self: {
        description = "SDL Frontend for Glome ray tracer";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Glome";
      }) {};
 
   "GoogleChart" = callPackage
@@ -7607,6 +7721,7 @@ self: {
        description = "Graph500 benchmark-related definitions and data set generator";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "graph500gen";
        broken = true;
      }) {};
 
@@ -7641,6 +7756,7 @@ self: {
        description = "Test harness for TriangleCount analysis";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TriangleCountTest";
      }) {};
 
   "GraphSCC" = callPackage
@@ -7749,6 +7865,7 @@ self: {
        description = "Notification utility for Growl";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "growlnotify";
      }) {};
 
   "Gtk2hsGenerics" = callPackage
@@ -7813,6 +7930,7 @@ self: {
        description = "A graphical REPL and development environment for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "guihaskell";
      }) {};
 
   "GuiTV" = callPackage
@@ -7846,6 +7964,7 @@ self: {
        description = "The Haskell/R mixed programming environment";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "H";
      }) {};
 
   "HABQT" = callPackage
@@ -7871,6 +7990,7 @@ self: {
        description = "Hierarchical adaptive Bayesian quantum tomography for quantum bits";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HABQT-simulation";
        broken = true;
      }) {};
 
@@ -8012,6 +8132,7 @@ self: {
        ];
        description = "High-level library for building command line interfaces";
        license = lib.licenses.bsd3;
+       mainProgram = "hangman";
      }) {};
 
   "HCard" = callPackage
@@ -8172,9 +8293,7 @@ self: {
        librarySystemDepends = [ pfstools ];
        description = "Utilities for reading, manipulating, and writing HDR images";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) pfstools;};
@@ -8230,6 +8349,7 @@ self: {
        description = "The library for generating a graphical interface on the web";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HFitUI-exe";
        broken = true;
      }) {};
 
@@ -8261,9 +8381,7 @@ self: {
        '';
        description = "HFuse is a binding for the Linux FUSE library";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {inherit (pkgs) fuse;};
 
   "HGE2D" = callPackage
@@ -8846,6 +8964,7 @@ self: {
        executableHaskellDepends = [ base regex-applicative ];
        description = "A preprocessor for HList labelable labels";
        license = lib.licenses.bsd3;
+       mainProgram = "HListPP";
      }) {};
 
   "HLogger" = callPackage
@@ -8861,6 +8980,7 @@ self: {
        description = "Simple, concurrent and easy-to-use logging library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "logger-0.0.1.0-test";
        broken = true;
      }) {};
 
@@ -8956,6 +9076,7 @@ self: {
        description = "Happy Network Manager";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HNM";
      }) {};
 
   "HNumeric" = callPackage
@@ -9005,6 +9126,7 @@ self: {
        description = "A binding for the OpenCV computer vision library";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cannyVideo";
        broken = true;
      }) {inherit (pkgs) opencv;};
 
@@ -9030,6 +9152,7 @@ self: {
        testHaskellDepends = [ base HTF ];
        description = "Generation of PDF documents";
        license = lib.licenses.bsd3;
+       mainProgram = "HPDF-Demo";
      }) {};
 
   "HPath" = callPackage
@@ -9053,6 +9176,7 @@ self: {
        description = "Extract Haskell declarations by name";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpath";
        broken = true;
      }) {};
 
@@ -9103,6 +9227,7 @@ self: {
        description = "A minimal monadic PLplot interface for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Example";
      }) {plplotd-gnome2 = null;};
 
   "HPong" = callPackage
@@ -9122,6 +9247,7 @@ self: {
        description = "A simple OpenGL Pong game based on GLFW";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpong";
      }) {};
 
   "HQu" = callPackage
@@ -9148,9 +9274,7 @@ self: {
        benchmarkHaskellDepends = [ base gauge ];
        description = "quantitative finance library";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-darwin" "i686-linux" "x86_64-darwin" "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" "armv7l-linux" ];
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) gsl;};
@@ -9280,6 +9404,7 @@ self: {
        description = "Haskell raytracer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HRay";
      }) {};
 
   "HSFFIG" = callPackage
@@ -9321,6 +9446,7 @@ self: {
        description = "Gene Expression Programming evolutionary algorithm in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HSGEP_Regression";
      }) {};
 
   "HSH" = callPackage
@@ -9419,9 +9545,7 @@ self: {
        ];
        description = "Library for computer music education";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "HSoundFile" = callPackage
@@ -9523,6 +9647,7 @@ self: {
        ];
        description = "The Haskell Test Framework";
        license = lib.licenses.lgpl21Only;
+       mainProgram = "htfpp";
      }) {};
 
   "HTTP" = callPackage
@@ -9598,6 +9723,7 @@ self: {
        description = "Tableau based theorem prover for hybrid logics";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "htab";
      }) {};
 
   "HTicTacToe" = callPackage
@@ -9616,6 +9742,7 @@ self: {
        description = "An SDL tic-tac-toe game";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HTicTacToe";
        broken = true;
      }) {};
 
@@ -9704,6 +9831,7 @@ self: {
        description = "A (prototyped) easy to use XMPP library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hxmpp-0.0.1.0-test";
      }) {};
 
   "HXQ" = callPackage
@@ -9738,6 +9866,7 @@ self: {
        description = "HaLeX enables modelling, manipulation and visualization of regular languages";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "halex";
        broken = true;
      }) {};
 
@@ -9799,6 +9928,7 @@ self: {
        description = "the Haskell Refactorer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-hare";
      }) {};
 
   "HaTeX" = callPackage
@@ -9838,6 +9968,7 @@ self: {
        description = "This package is deprecated. From version 3, HaTeX does not need this anymore.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "metahatex";
      }) {};
 
   "HaTeX-qq" = callPackage
@@ -9874,6 +10005,7 @@ self: {
        description = "An implementation of the Version Space Algebra learning framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tests";
      }) {};
 
   "HaXml" = callPackage
@@ -9930,6 +10062,7 @@ self: {
        description = "A Procmail Replacement as Haskell EDSL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackmail";
        broken = true;
      }) {};
 
@@ -9997,6 +10130,7 @@ self: {
        description = "The classic game of Hangman";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Hangman";
        broken = true;
      }) {};
 
@@ -10016,6 +10150,7 @@ self: {
        description = "Yet another Hangman game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hangman-ascii";
        broken = true;
      }) {};
 
@@ -10060,6 +10195,7 @@ self: {
        description = "Harmony Analysis and Retrieval of Music";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "harmtrace";
      }) {};
 
   "HarmTrace-Base" = callPackage
@@ -10149,6 +10285,7 @@ self: {
        description = "Minimalist R5RS Scheme interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haschoo";
      }) {};
 
   "Hashell" = callPackage
@@ -10168,6 +10305,7 @@ self: {
        description = "Simple shell written in Haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hashell";
      }) {};
 
   "HaskRel" = callPackage
@@ -10210,6 +10348,7 @@ self: {
        description = "Haskell source code analysis program";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HaskellAnalysisProgram";
        broken = true;
      }) {};
 
@@ -10310,6 +10449,7 @@ self: {
        description = "A concurrent bittorrent client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HaskellTorrent";
        broken = true;
      }) {};
 
@@ -10325,6 +10465,7 @@ self: {
        description = "Haskell Tutorials by Evgeny Ukhanov";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Haskell.Tutorials";
        broken = true;
      }) {};
 
@@ -10344,6 +10485,7 @@ self: {
        description = "A reproduction of the Atari 1979 classic \"Asteroids\"";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Haskelloids";
        broken = true;
      }) {};
 
@@ -10469,6 +10611,7 @@ self: {
        description = "Line oriented editor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hedi";
      }) {};
 
   "HerbiePlugin" = callPackage
@@ -10590,6 +10733,7 @@ self: {
        description = "A playground for testing Hipmunk";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HipmunkPlayground";
      }) {};
 
   "Hish" = callPackage
@@ -10610,6 +10754,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hish";
        broken = true;
      }) {};
 
@@ -10639,6 +10784,7 @@ self: {
        description = "An MPD client designed for a Home Theatre PC";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hmpf";
        broken = true;
      }) {};
 
@@ -10817,6 +10963,7 @@ self: {
        description = "A Cricket scoring application";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hricket";
        broken = true;
      }) {};
 
@@ -11073,8 +11220,8 @@ self: {
        pname = "HsYAML-aeson";
        version = "0.2.0.1";
        sha256 = "139hqd07hkr8ykvrgmcshh9f3vp9dnrj6ks5nl8hgrpi990jsy5r";
-       revision = "2";
-       editedCabalFile = "15j9w4ay9j2yzb14fywljrv8vsv91lhlxf2z3xvmmgmgj6wpf2n4";
+       revision = "3";
+       editedCabalFile = "0gs1gw5wmp7hqh2d0rwkhwzm71gjnivfqd3nd5gzc4yvqqzxplwg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -11107,6 +11254,7 @@ self: {
        description = "Stream Editor in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Hsed";
      }) {};
 
   "Hsmtlib" = callPackage
@@ -11161,6 +11309,7 @@ self: {
        description = "Easily bulk import CSV data to SQL Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HulkImport-exe";
        broken = true;
      }) {};
 
@@ -11200,6 +11349,7 @@ self: {
        description = "The library for generating a WebGL scene for the web";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Hydrogen-exe";
      }) {};
 
   "I1M" = callPackage
@@ -11245,6 +11395,7 @@ self: {
        description = "Iterated Function System generation for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "IFS";
        broken = true;
      }) {};
 
@@ -11266,6 +11417,7 @@ self: {
        description = "Editor and interpreter for Interaction Nets";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "INblobs";
      }) {};
 
   "IOR" = callPackage
@@ -11357,6 +11509,7 @@ self: {
        description = "A RESTful microService for IPv6-related data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ipv6db";
        broken = true;
      }) {};
 
@@ -11702,6 +11855,7 @@ self: {
        description = "A utility to print the SourceFile attribute of one or more Java class files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "javasf";
      }) {};
 
   "Javav" = callPackage
@@ -11716,6 +11870,7 @@ self: {
        description = "A utility to print the target version of Java class files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "javav";
        broken = true;
      }) {};
 
@@ -11728,9 +11883,7 @@ self: {
        libraryHaskellDepends = [ base Euterpea random ];
        description = "Library for modeling jazz improvisation";
        license = "unknown";
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "Jdh" = callPackage
@@ -11775,6 +11928,7 @@ self: {
        description = "A transpiler from Python to C++ for competitive programming";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jikka";
        broken = true;
      }) {};
 
@@ -11799,6 +11953,7 @@ self: {
        description = "Design-by-contract for JavaScript";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jscc";
      }) {};
 
   "JsonGrammar" = callPackage
@@ -11838,6 +11993,7 @@ self: {
        description = "JuPyTer notebook parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jupyter-extract";
      }) {};
 
   "JuicyPixels" = callPackage
@@ -11878,6 +12034,7 @@ self: {
        description = "BLP format decoder/encoder over JuicyPixels library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blp2any";
        broken = true;
      }) {};
 
@@ -11908,6 +12065,7 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Blurhash is a very compact represenation of a placeholder for an image";
        license = lib.licenses.bsd3;
+       mainProgram = "JuicyPixels-blurhash-exe";
      }) {};
 
   "JuicyPixels-canvas" = callPackage
@@ -12187,6 +12345,7 @@ self: {
        description = "debug features for kics";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mkstrict";
      }) {};
 
   "KiCS-prophecy" = callPackage
@@ -12203,6 +12362,7 @@ self: {
        description = "a transformation used by the kics debugger";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "prophecy";
      }) {};
 
   "Kleislify" = callPackage
@@ -12255,9 +12415,7 @@ self: {
        ];
        description = "Library for automated composition and musical learning";
        license = "unknown";
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "KyotoCabinet" = callPackage
@@ -12327,6 +12485,7 @@ self: {
        description = "LC-3 virtual machine";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "LC3";
        broken = true;
      }) {};
 
@@ -12414,6 +12573,7 @@ self: {
        description = "LTS: Labelled Transition System";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "LTS";
        broken = true;
      }) {};
 
@@ -12443,6 +12603,7 @@ self: {
        ];
        description = "A basic lambda calculator with beta reduction and a REPL";
        license = lib.licenses.bsd3;
+       mainProgram = "LambdaCalculator";
      }) {};
 
   "LambdaDB" = callPackage
@@ -12458,6 +12619,7 @@ self: {
        testHaskellDepends = [ base QuickCheck ];
        description = "On-memory Database using Lambda Function environment";
        license = lib.licenses.bsd3;
+       mainProgram = "LambdaDB-exe";
      }) {};
 
   "LambdaDesigner" = callPackage
@@ -12513,10 +12675,9 @@ self: {
        ];
        description = "A game engine library for tactical squad ASCII roguelike dungeon crawlers";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "LambdaHack";
      }) {};
 
   "LambdaINet" = callPackage
@@ -12537,6 +12698,7 @@ self: {
        description = "Graphical Interaction Net Evaluator for Optimal Evaluation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "LambdaINet";
      }) {};
 
   "LambdaNet" = callPackage
@@ -12597,6 +12759,7 @@ self: {
        description = "Simple shell for evaluating lambda expressions";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambdaShell";
      }) {};
 
   "Lambdajudge" = callPackage
@@ -12710,6 +12873,7 @@ self: {
        description = "A simple sandboxing tool for Haskell packages";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "LazyVault";
        broken = true;
      }) {};
 
@@ -12753,6 +12917,7 @@ self: {
        description = "A Snake II clone written using SDL";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Level0";
        broken = true;
      }) {};
 
@@ -12868,6 +13033,7 @@ self: {
        description = "Check a bunch of local html files for broken links";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "linkchecker";
      }) {};
 
   "Liquorice" = callPackage
@@ -12989,6 +13155,7 @@ self: {
        description = "Converter to convert from .lhs to .md and vice versa.";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lhsc";
        broken = true;
      }) {};
 
@@ -13136,6 +13303,7 @@ self: {
        description = "An execution and testing framework for the Linden Scripting Language (LSL)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "LslPlus";
      }) {};
 
   "Lucu" = callPackage
@@ -13157,6 +13325,7 @@ self: {
        description = "HTTP Daemonic Library";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lucu-implant-file";
      }) {};
 
   "Lykah" = callPackage
@@ -13186,6 +13355,7 @@ self: {
        description = "A static website and blog generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lykah";
      }) {};
 
   "MASMGen" = callPackage
@@ -13232,6 +13402,7 @@ self: {
        description = "Folding algorithm based on nucleotide cyclic motifs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "MCFoldDP";
      }) {};
 
   "MFlow" = callPackage
@@ -13351,6 +13522,7 @@ self: {
        description = "Builds decks out of a meta";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mtg-builder";
        broken = true;
      }) {};
 
@@ -13508,6 +13680,7 @@ self: {
        description = "Console-based Role Playing Game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mazesofmonad";
        broken = true;
      }) {};
 
@@ -13634,6 +13807,7 @@ self: {
        description = "Haskell mailing list manager";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mhailist";
      }) {};
 
   "Michelangelo" = callPackage
@@ -13690,6 +13864,7 @@ self: {
        description = "A toy dependently typed programming language with type-based termination";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "miniagda";
        broken = true;
      }) {};
 
@@ -13805,6 +13980,7 @@ self: {
        description = "A FRP library based on signal functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "MoeExample";
        broken = true;
      }) {};
 
@@ -13914,6 +14090,7 @@ self: {
        description = "Automatically generate layered monads";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mlab";
      }) {};
 
   "MonadPrompt" = callPackage
@@ -13981,6 +14158,7 @@ self: {
        description = "2-D arcade scroller";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "monadius";
        broken = true;
      }) {};
 
@@ -14001,6 +14179,7 @@ self: {
        ];
        description = "A minimalistic CLI Pomodoro timer";
        license = lib.licenses.mit;
+       mainProgram = "monadoro";
      }) {};
 
   "Monaris" = callPackage
@@ -14020,6 +14199,7 @@ self: {
        description = "A simple tetris clone";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Monaris";
      }) {};
 
   "Monatron" = callPackage
@@ -14105,6 +14285,7 @@ self: {
        description = "Automated Mutation Testing for HUnit tests";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mucheck-hunit";
      }) {};
 
   "MuCheck-Hspec" = callPackage
@@ -14120,6 +14301,7 @@ self: {
        description = "Automated Mutation Testing for Hspec tests";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mucheck-hspec";
      }) {};
 
   "MuCheck-QuickCheck" = callPackage
@@ -14135,6 +14317,7 @@ self: {
        description = "Automated Mutation Testing for QuickCheck tests";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mucheck-quickcheck";
      }) {};
 
   "MuCheck-SmallCheck" = callPackage
@@ -14150,6 +14333,7 @@ self: {
        description = "Automated Mutation Testing for SmallCheck tests";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mucheck-smallcheck";
      }) {};
 
   "Munkres" = callPackage
@@ -14241,6 +14425,7 @@ self: {
        description = "Most likely order of mutation events in RNA";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "MutationOrder";
      }) {};
 
   "MyPrimes" = callPackage
@@ -14257,6 +14442,7 @@ self: {
        description = "Generate all primes";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "PrimesList";
        broken = true;
      }) {};
 
@@ -14278,8 +14464,8 @@ self: {
      }:
      mkDerivation {
        pname = "NGLess";
-       version = "1.4.1";
-       sha256 = "1vnf13zc8as8p98rb3zbi1y68ymf65gpshzx2w9mfk4ibd1xwhry";
+       version = "1.4.1.1";
+       sha256 = "0d2xkm6cw4g563d687bb6c3b971h72i0bf50k0arjkv9n7cp9sh9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -14341,6 +14527,7 @@ self: {
        ];
        description = "NGLess implements ngless, a DSL for processing sequencing data";
        license = lib.licenses.mit;
+       mainProgram = "ngless";
      }) {};
 
   "NGrams" = callPackage
@@ -14355,6 +14542,7 @@ self: {
        description = "Simple application for calculating n-grams using Google";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ngrams";
        broken = true;
      }) {};
 
@@ -14429,6 +14617,7 @@ self: {
        description = "Generate NXC Code from DSL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "legoDSL";
        broken = true;
      }) {};
 
@@ -14484,6 +14673,7 @@ self: {
        ];
        description = "NanoID generator";
        license = lib.licenses.bsd3;
+       mainProgram = "nanoid";
      }) {};
 
   "NanoProlog" = callPackage
@@ -14499,6 +14689,7 @@ self: {
        description = "Very small interpreter for a Prolog-like language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nano-prolog";
        broken = true;
      }) {};
 
@@ -14530,6 +14721,7 @@ self: {
        description = "Instances of NcStore for hypercuboids";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Main";
      }) {};
 
   "NaturalLanguageAlphabets" = callPackage
@@ -14594,6 +14786,7 @@ self: {
        description = "Context Algebra of near";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "NearContextAlgebra";
      }) {};
 
   "Neks" = callPackage
@@ -14720,6 +14913,7 @@ self: {
        description = "Ninja game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Ninjas";
      }) {};
 
   "NoHoed" = callPackage
@@ -14796,6 +14990,7 @@ self: {
        description = "A Nomic game in haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Nomyx";
      }) {};
 
   "Nomyx-Core" = callPackage
@@ -14994,6 +15189,7 @@ self: {
        description = "Nussinov78 using the ADPfusion library";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Nussinov78";
      }) {};
 
   "Nutri" = callPackage
@@ -15045,6 +15241,7 @@ self: {
        description = "ONC RPC (aka Sun RPC) and XDR library";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsrpcgen";
        broken = true;
      }) {};
 
@@ -15576,6 +15773,7 @@ self: {
        description = "A Programming Language in Construction";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Ordinary-exe";
        broken = true;
      }) {};
 
@@ -15593,6 +15791,7 @@ self: {
        description = "spam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test1";
        broken = true;
      }) {};
 
@@ -15761,6 +15960,7 @@ self: {
        description = "Page-oriented extraction and composition library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pio";
      }) {};
 
   "Paillier" = callPackage
@@ -15801,6 +16001,7 @@ self: {
        description = "Pandoc support for literate Agda";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "agdapandoc";
        broken = true;
      }) {};
 
@@ -15994,6 +16195,7 @@ self: {
        executableHaskellDepends = [ base cmdargs ];
        description = "CLI for pasting to lpaste.net";
        license = lib.licenses.gpl3Only;
+       mainProgram = "pastepipe";
      }) {};
 
   "PathTree" = callPackage
@@ -16125,6 +16327,7 @@ self: {
        description = "Personal Happstack Server Utils";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Phsu";
        broken = true;
      }) {};
 
@@ -16170,6 +16373,7 @@ self: {
        ];
        description = "Play Hangman Game";
        license = lib.licenses.bsd3;
+       mainProgram = "playHangmanGame";
      }) {};
 
   "PlayingCards" = callPackage
@@ -16229,6 +16433,7 @@ self: {
        description = "So far just a lint like program for PL/SQL. Diff and refactoring tools are planned";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "PlslLint";
      }) {};
 
   "Plural" = callPackage
@@ -16254,6 +16459,7 @@ self: {
        description = "An imaginary world";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Pollutocracy";
        broken = true;
      }) {};
 
@@ -16269,6 +16475,7 @@ self: {
        description = "high-performance distributed reverse / forward proxy & tunneling for TCP";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "PortFusion";
        broken = true;
      }) {};
 
@@ -16284,9 +16491,7 @@ self: {
        librarySystemDepends = [ alsa-lib ];
        description = "A binding for PortMedia/PortMidi";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) alsa-lib;};
 
   "PortMidi-simple" = callPackage
@@ -16300,9 +16505,7 @@ self: {
        libraryHaskellDepends = [ base PortMidi ];
        description = "Simplified PortMidi wrapper";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "PostgreSQL" = callPackage
@@ -16453,6 +16656,7 @@ self: {
        executableHaskellDepends = [ base old-time random ];
        description = "Propositional Logic";
        license = lib.licenses.bsd3;
+       mainProgram = "program";
      }) {};
 
   "Proper" = callPackage
@@ -16505,6 +16709,7 @@ self: {
        description = "A Perl 6 Implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pugs";
      }) {};
 
   "Pup-Events" = callPackage
@@ -16525,6 +16730,7 @@ self: {
        description = "A networked event handling framework for hooking into other programs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pupevents-all";
      }) {};
 
   "Pup-Events-Client" = callPackage
@@ -16711,6 +16917,7 @@ self: {
        description = "Annotation Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qapp";
        broken = true;
      }) {};
 
@@ -16825,6 +17032,7 @@ self: {
        executableHaskellDepends = [ base pandoc-types ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "R-pandoc";
        broken = true;
      }) {};
 
@@ -17006,6 +17214,7 @@ self: {
        description = "Multi-target RNA sequence design";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "RNAdesign";
      }) {};
 
   "RNAdraw" = callPackage
@@ -17026,6 +17235,7 @@ self: {
        description = "Draw RNA secondary structures";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "RNAdotplot";
        broken = true;
      }) {};
 
@@ -17115,6 +17325,7 @@ self: {
        executableHaskellDepends = [ base containers lens mtl ];
        testHaskellDepends = [ base containers lens mtl ];
        license = lib.licenses.mit;
+       mainProgram = "RSolve-exe";
      }) {};
 
   "RabbitMQ" = callPackage
@@ -17156,9 +17367,8 @@ self: {
        ];
        description = "A puzzle game written in Haskell with a cat in lead role";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "raincat";
      }) {};
 
   "Random123" = callPackage
@@ -17205,6 +17415,7 @@ self: {
        description = "Randomness intuition trainer";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "randometer";
        broken = true;
      }) {};
 
@@ -17250,6 +17461,7 @@ self: {
        description = "HTTP to XMPP omegle chats gate";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Ranka";
      }) {};
 
   "Rasenschach" = callPackage
@@ -17271,6 +17483,7 @@ self: {
        description = "Soccer simulation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Rasenschach";
        broken = true;
      }) {};
 
@@ -17321,6 +17534,7 @@ self: {
        testHaskellDepends = [ base hspec system-filepath text ];
        description = "Simple command line argument parsing";
        license = lib.licenses.bsd3;
+       mainProgram = "ReadArgsEx";
      }) {};
 
   "Redmine" = callPackage
@@ -17395,6 +17609,7 @@ self: {
        description = "A utility for computing distributions of material to review among reviewers";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "referees";
        broken = true;
      }) {};
 
@@ -17488,6 +17703,7 @@ self: {
        description = "Parallel implementation of Ritt-Wu's algorithm";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Ritt-Wu-exe";
        broken = true;
      }) {};
 
@@ -17539,6 +17755,7 @@ self: {
        description = "Limits the size of a directory's contents";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "RollingDirectory";
      }) {};
 
   "RoyalMonad" = callPackage
@@ -17642,6 +17859,7 @@ self: {
        description = "ESCRIPT: a human friendly language for programming Bitcoin scripts";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "SCRIPTWriter-exe";
      }) {};
 
   "SCalendar" = callPackage
@@ -17830,6 +18048,7 @@ self: {
        description = "An example of using the SG and OpenGL libraries";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sgdemo";
      }) {};
 
   "SGplus" = callPackage
@@ -17899,6 +18118,7 @@ self: {
        description = "The Simple Javascript Wrench";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sjw";
        broken = true;
      }) {};
 
@@ -17967,6 +18187,7 @@ self: {
        description = "STG Symbolic Execution";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "SSTG-exe";
        broken = true;
      }) {};
 
@@ -18077,6 +18298,7 @@ self: {
        description = "Code generation tool for Quartz code from a SVG";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "svg2q";
      }) {};
 
   "SVGFonts" = callPackage
@@ -18146,6 +18368,7 @@ self: {
        description = "Generate a parser (in Haskell) with the SableCC parser generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sable2hs";
        broken = true;
      }) {};
 
@@ -18210,6 +18433,7 @@ self: {
        description = "Saturnin CI / Job System";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "saturnin";
        broken = true;
      }) {};
 
@@ -18298,6 +18522,7 @@ self: {
        description = "Size limited temp filesystem based on fuse";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ScratchFs";
        broken = true;
      }) {};
 
@@ -18318,6 +18543,7 @@ self: {
        description = "A cross platform P2P VPN application built using Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scurry";
      }) {};
 
   "SecureHash-SHA3" = callPackage
@@ -18371,6 +18597,7 @@ self: {
        description = "Selects a representative subset of sequences from multiple sequence alignment";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "SelectSequencesFromMSA";
      }) {};
 
   "Semantique" = callPackage
@@ -18390,6 +18617,7 @@ self: {
        description = "Command-line tool for maintaining the Semantique database";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "semantique";
        broken = true;
      }) {};
 
@@ -18479,6 +18707,7 @@ self: {
        description = "Shell script analysis tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shellcheck";
      }) {};
 
   "ShellCheck" = callPackage
@@ -18508,6 +18737,7 @@ self: {
        ];
        description = "Shell script analysis tool";
        license = lib.licenses.gpl3Only;
+       mainProgram = "shellcheck";
      }) {};
 
   "Shellac" = callPackage
@@ -18726,6 +18956,7 @@ self: {
        description = "Chrome extension to aide in development";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "devtools";
      }) {};
 
   "Shpadoinkle-disembodied" = callPackage
@@ -18822,6 +19053,7 @@ self: {
        description = "Isreal Swan will make a snowman for you!";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "isreal";
        broken = true;
      }) {};
 
@@ -18940,6 +19172,7 @@ self: {
        executableHaskellDepends = [ base GLUT ];
        description = "A vector shooter game";
        license = lib.licenses.bsd3;
+       mainProgram = "shu-thing";
      }) {};
 
   "SimpleAES" = callPackage
@@ -19038,6 +19271,7 @@ self: {
        description = "A simple static file server, for when apache is overkill";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "simpleserver";
      }) {};
 
   "SimpleTableGenerator" = callPackage
@@ -19071,6 +19305,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Prototypical type checker for Type Theory with Sized Natural Numbers";
        license = "unknown";
+       mainProgram = "Sit.bin";
      }) {};
 
   "SizeCompare" = callPackage
@@ -19201,6 +19436,7 @@ self: {
        description = "Football simulation framework for teaching functional programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sfRecord";
      }) {};
 
   "SoccerFunGL" = callPackage
@@ -19254,6 +19490,7 @@ self: {
        description = "Static code analysis using graph-theoretic techniques";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "SourceGraph";
      }) {};
 
   "Southpaw" = callPackage
@@ -19288,6 +19525,7 @@ self: {
        ];
        description = "Video game";
        license = lib.licenses.bsd3;
+       mainProgram = "spaceInvaders";
      }) {};
 
   "SpacePrivateers" = callPackage
@@ -19310,6 +19548,7 @@ self: {
        description = "Simple space pirate roguelike";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "SpacePrivateers";
      }) {};
 
   "SpinCounter" = callPackage
@@ -19536,6 +19775,7 @@ self: {
        description = "A simple MVCC like library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Stasis";
        broken = true;
      }) {};
 
@@ -19637,6 +19877,7 @@ self: {
        description = "Converts SDF to Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Sdf2Haskell";
      }) {};
 
   "Strafunski-StrategyLib" = callPackage
@@ -19766,6 +20007,7 @@ self: {
        description = "Suffix array construction";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mkesa";
        broken = true;
      }) {};
 
@@ -19843,6 +20085,7 @@ self: {
        description = "Testing By Convention";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tbc";
        broken = true;
      }) {};
 
@@ -19914,6 +20157,7 @@ self: {
        ];
        description = "Testing in monads and transformers without explicit specs";
        license = lib.licenses.lgpl3Only;
+       mainProgram = "TLT-exe";
      }) {};
 
   "TORCS" = callPackage
@@ -19936,6 +20180,7 @@ self: {
        description = "Bindings to the TORCS vehicle simulator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Simple";
        broken = true;
      }) {};
 
@@ -20005,6 +20250,7 @@ self: {
        description = "A client for Quill databases";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Tables";
        broken = true;
      }) {};
 
@@ -20020,6 +20266,7 @@ self: {
        description = "Tool to render CSV into tables of various formats";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tablify";
        broken = true;
      }) {};
 
@@ -20040,6 +20287,7 @@ self: {
        ];
        description = "Tahin Password Generator";
        license = lib.licenses.bsd3;
+       mainProgram = "tahin";
      }) {};
 
   "Tainted" = callPackage
@@ -20125,6 +20373,7 @@ self: {
        ];
        description = "Run TLT tests from Tasty";
        license = lib.licenses.lgpl3Only;
+       mainProgram = "TLT-exe";
      }) {};
 
   "Taxonomy" = callPackage
@@ -20188,6 +20437,7 @@ self: {
        description = "Render general Haskell math to LaTeX. Or: math typesetting with high signal-to-noise–ratio.";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TeXmyMath-example";
      }) {};
 
   "TeaHS" = callPackage
@@ -20229,6 +20479,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Efficient pure ternary tree Sets and Maps";
        license = lib.licenses.bsd3;
+       mainProgram = "tdict";
      }) {};
 
   "TestExplode" = callPackage
@@ -20315,6 +20566,7 @@ self: {
        executableHaskellDepends = [ base safe ];
        description = "Tic Tac Toe in your command line!";
        license = lib.licenses.asl20;
+       mainProgram = "Tic-Tac-Toe";
      }) {};
 
   "TicTacToe" = callPackage
@@ -20368,6 +20620,7 @@ self: {
        description = "A simple tile-based digital clock screen saver";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TimePiece";
        broken = true;
      }) {};
 
@@ -20409,6 +20662,7 @@ self: {
        description = "Game for Lounge Marmelade";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "titim";
        broken = true;
      }) {};
 
@@ -20425,6 +20679,7 @@ self: {
        description = "Constraint solving framework employed by the Helium Compiler";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "topsolver";
        broken = true;
      }) {};
 
@@ -20495,6 +20750,7 @@ self: {
        description = "eDSL in R for Safe Variable Transformarion";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TransformeR-exe";
        broken = true;
      }) {};
 
@@ -20510,6 +20766,7 @@ self: {
        description = "Tutorial on monad transformers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TransformersStepByStep";
        broken = true;
      }) {};
 
@@ -20645,6 +20902,7 @@ self: {
        description = "Typing speed game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TypeClass";
      }) {};
 
   "TypeCompose" = callPackage
@@ -20672,6 +20930,7 @@ self: {
        description = "TypeIlluminator is a prototype tool exploring debugging of type errors/";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "typeilluminator";
      }) {};
 
   "TypeNat" = callPackage
@@ -20698,6 +20957,7 @@ self: {
        executableHaskellDepends = [ base containers directory time ];
        description = "Command Line Typing speed tester";
        license = lib.licenses.gpl3Only;
+       mainProgram = "typingtester";
      }) {};
 
   "UISF" = callPackage
@@ -20731,6 +20991,7 @@ self: {
        description = "A small command-line accounting tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "umm";
      }) {};
 
   "URLT" = callPackage
@@ -20786,6 +21047,7 @@ self: {
        description = "Processing popular picture formats into .c or .raw format in RGB565";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "UTFTConverter";
        broken = true;
      }) {};
 
@@ -20807,7 +21069,7 @@ self: {
        ];
        description = "It provides the functionality like unix \"uniq\" utility";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ kiwi ];
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "Unixutils" = callPackage
@@ -20837,9 +21099,7 @@ self: {
        libraryHaskellDepends = [ base unix ];
        description = "A simple interface to shadow passwords (aka, shadow.h)";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "Updater" = callPackage
@@ -20918,6 +21178,7 @@ self: {
        description = "Provides access to Vkontakte social network via public API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vkq";
        broken = true;
      }) {};
 
@@ -21046,6 +21307,7 @@ self: {
        description = "A solver for the WordBrain game";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Verba";
        broken = true;
      }) {};
 
@@ -21138,6 +21400,7 @@ self: {
        description = "Villefort is a task manager and time tracker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Villefort";
      }) {};
 
   "Vulkan" = callPackage
@@ -21162,8 +21425,10 @@ self: {
        ];
        description = "Bindings to the VulkanMemoryAllocator library";
        license = lib.licenses.bsd3;
-       platforms = [ "aarch64-linux" "x86_64-linux" ];
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       badPlatforms = [
+         "i686-linux" "armv7l-linux"
+       ] ++ lib.platforms.darwin;
+       maintainers = [ lib.maintainers.expipiplus1 ];
      }) {};
 
   "WAVE" = callPackage
@@ -21181,6 +21446,7 @@ self: {
        description = "WAVE audio file IO library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sinewave";
      }) {};
 
   "WEditor" = callPackage
@@ -21211,6 +21477,7 @@ self: {
        description = "Text-editor widget with dynamic line-wrapping for use with Brick";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "brick-example";
      }) {};
 
   "WEditorHyphen" = callPackage
@@ -21256,6 +21523,7 @@ self: {
        description = "A simple library to access to the WL 500gP router from the Haskell code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
        broken = true;
      }) {};
 
@@ -21436,6 +21704,7 @@ self: {
        description = "Logic interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "WeberLogic";
        broken = true;
      }) {};
 
@@ -21464,6 +21733,7 @@ self: {
        description = "Regexp-like engine to scrap web data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "webrexp";
        broken = true;
      }) {};
 
@@ -21514,7 +21784,7 @@ self: {
        sha256 = "1nivdwjp9x9i64xg8gf3xj8khm9dfq6n5m8kvvlhz7i7ypl4mv72";
        description = "A binding to Windows Win32 API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "Win32_2_13_2_0" = callPackage
@@ -21525,7 +21795,8 @@ self: {
        sha256 = "1gmhqb0v3ds7csrmzw211jqjjp955akgp7ykngwnpqb6kpbvpcf4";
        description = "A binding to Windows Win32 API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Win32-console" = callPackage
@@ -21537,7 +21808,7 @@ self: {
        libraryHaskellDepends = [ base Win32 ];
        description = "Binding to the Win32 console API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "Win32-dhcp-server" = callPackage
@@ -21549,7 +21820,7 @@ self: {
        libraryHaskellDepends = [ base text Win32 Win32-errors ];
        description = "Win32 DHCP Server Management API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "Win32-errors" = callPackage
@@ -21566,7 +21837,7 @@ self: {
        testHaskellDepends = [ base hspec QuickCheck Win32 ];
        description = "Alternative error handling for Win32 foreign calls";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "Win32-extras" = callPackage
@@ -21581,7 +21852,7 @@ self: {
        librarySystemDepends = [ imm32 msimg32 ];
        description = "Provides missing Win32 API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {imm32 = null; msimg32 = null;};
 
   "Win32-junction-point" = callPackage
@@ -21593,7 +21864,7 @@ self: {
        libraryHaskellDepends = [ base text Win32 Win32-errors ];
        description = "Support for manipulating NTFS junction points";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "Win32-notify" = callPackage
@@ -21607,7 +21878,7 @@ self: {
        libraryHaskellDepends = [ base containers directory Win32 ];
        description = "A binding to part of the Win32 library for file notification";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "Win32-security" = callPackage
@@ -21621,7 +21892,7 @@ self: {
        libraryHaskellDepends = [ base text Win32 Win32-errors ];
        description = "Haskell bindings to a security-related functions of the Windows API";
        license = lib.licenses.mit;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "Win32-services" = callPackage
@@ -21634,7 +21905,7 @@ self: {
        librarySystemDepends = [ Advapi32 ];
        description = "Windows service applications";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {Advapi32 = null;};
 
   "Win32-services-wrapper" = callPackage
@@ -21650,7 +21921,7 @@ self: {
        ];
        description = "Wrapper code for making a Win32 service";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "Win32-shortcut" = callPackage
@@ -21665,7 +21936,7 @@ self: {
        librarySystemDepends = [ libossp_uuid ole32 ];
        description = "Support for manipulating shortcuts (.lnk files) on Windows";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {inherit (pkgs) libossp_uuid; ole32 = null;};
 
   "Wired" = callPackage
@@ -21723,6 +21994,7 @@ self: {
        description = "Bigram word pair alignments";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "WordAlign";
      }) {};
 
   "WordNet" = callPackage
@@ -21768,6 +22040,7 @@ self: {
        description = "Plaintext prose redundancy linter";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wordlint";
        broken = true;
      }) {};
 
@@ -21943,7 +22216,7 @@ self: {
        librarySystemDepends = [ xinput ];
        description = "Bindings for the DirectX XInput library";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {inherit (pkgs.xorg) xinput;};
 
   "XML" = callPackage
@@ -22034,6 +22307,7 @@ self: {
        description = "An implementation of a polynomial-time top-down parser suitable for NLP";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "solarman.cgi";
      }) {};
 
   "Xauth" = callPackage
@@ -22065,6 +22339,7 @@ self: {
        description = "Gtk command launcher with identicon";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Xec";
        broken = true;
      }) {};
 
@@ -22113,6 +22388,7 @@ self: {
        description = "Yet Another Pong Clone using SDL";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "YACPong";
      }) {};
 
   "YFrob" = callPackage
@@ -22161,6 +22437,7 @@ self: {
        description = "A simple blog engine powered by Yesod";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Yablog";
      }) {};
 
   "YamlReference" = callPackage
@@ -22189,6 +22466,7 @@ self: {
        description = "YAML reference implementation";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yaml2yeast";
        broken = true;
      }) {};
 
@@ -22237,6 +22515,7 @@ self: {
        description = "Software synthesizer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yampasynth-wav";
        broken = true;
      }) {};
 
@@ -22287,6 +22566,7 @@ self: {
        description = "A functional MUD client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yogurt";
      }) {inherit (pkgs) readline;};
 
   "Z-Botan" = callPackage
@@ -22457,6 +22737,7 @@ self: {
        description = "A Z-machine interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zmachine";
        broken = true;
      }) {};
 
@@ -22529,6 +22810,7 @@ self: {
        description = "Compare genome assemblies";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "a50";
      }) {};
 
   "abacate" = callPackage
@@ -22559,6 +22841,7 @@ self: {
        ];
        description = "Generate instances of the ABC Logic Puzzle";
        license = lib.licenses.bsd3;
+       mainProgram = "abc-puzzle";
      }) {};
 
   "abcBridge" = callPackage
@@ -22908,6 +23191,7 @@ self: {
        description = "Basic Linear Algebra using native CUBLAS library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "accelerate-cublas-demo";
      }) {};
 
   "accelerate-cuda" = callPackage
@@ -23079,6 +23363,7 @@ self: {
        description = "Compare different implementations of the Fast Fourier Transform";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "accelerate-fourier-benchmark";
      }) {};
 
   "accelerate-io" = callPackage
@@ -23490,6 +23775,7 @@ self: {
        ];
        description = "Add ACID guarantees to any serializable Haskell data structure";
        license = lib.licenses.publicDomain;
+       mainProgram = "acid-state-repair";
      }) {};
 
   "acid-state-dist" = callPackage
@@ -23573,6 +23859,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "A full featured empty project";
        license = lib.licenses.bsd3;
+       mainProgram = "acme-box";
      }) {};
 
   "acme-cadre" = callPackage
@@ -23651,6 +23938,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Maybe gives you a cute boy";
        license = lib.licenses.publicDomain;
+       mainProgram = "CuteBoy";
      }) {};
 
   "acme-cutegirl" = callPackage
@@ -23665,6 +23953,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Maybe gives you a cute girl";
        license = lib.licenses.gpl3Only;
+       mainProgram = "CuteGirl";
      }) {};
 
   "acme-default" = callPackage
@@ -23772,6 +24061,7 @@ self: {
        description = "Evil inventions in the Tri-State area";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "evilplan";
        broken = true;
      }) {};
 
@@ -24249,6 +24539,7 @@ self: {
        description = "Haskell code presentation tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "activehs";
      }) {};
 
   "activehs-base" = callPackage
@@ -24415,6 +24706,7 @@ self: {
        ];
        description = "Convert adblock config files to privoxy format";
        license = lib.licenses.gpl3Only;
+       mainProgram = "adblock2privoxy";
      }) {};
 
   "addLicenseInfo" = callPackage
@@ -24428,6 +24720,7 @@ self: {
        executableHaskellDepends = [ base process ];
        description = "Adds license info to the top of a file";
        license = lib.licenses.bsd3;
+       mainProgram = "addLicenseInfo";
      }) {};
 
   "addy" = callPackage
@@ -24671,6 +24964,7 @@ self: {
        description = "Parse Advent of Code ASCII art letters";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "advent-of-code-ocr";
        broken = true;
      }) {};
 
@@ -24785,6 +25079,43 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "aeson_2_1_0_0" = callPackage
+    ({ mkDerivation, attoparsec, base, base-compat
+     , base-compat-batteries, base-orphans, base16-bytestring
+     , bytestring, containers, data-fix, deepseq, Diff, directory, dlist
+     , filepath, generic-deriving, generically, ghc-prim, hashable
+     , indexed-traversable, integer-logarithms, OneTuple, primitive
+     , QuickCheck, quickcheck-instances, scientific, semialign, strict
+     , tagged, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
+     , template-haskell, text, text-short, th-abstraction, these, time
+     , time-compat, unordered-containers, uuid-types, vector, witherable
+     }:
+     mkDerivation {
+       pname = "aeson";
+       version = "2.1.0.0";
+       sha256 = "151wyyw0ip0f2w4mfxcs58c26rsvhaac7s0yba76gnhnzbskwxha";
+       libraryHaskellDepends = [
+         attoparsec base base-compat-batteries bytestring containers
+         data-fix deepseq dlist generically ghc-prim hashable
+         indexed-traversable OneTuple primitive QuickCheck scientific
+         semialign strict tagged template-haskell text text-short
+         th-abstraction these time time-compat unordered-containers
+         uuid-types vector witherable
+       ];
+       testHaskellDepends = [
+         attoparsec base base-compat base-orphans base16-bytestring
+         bytestring containers data-fix Diff directory dlist filepath
+         generic-deriving generically ghc-prim hashable indexed-traversable
+         integer-logarithms OneTuple primitive QuickCheck
+         quickcheck-instances scientific strict tagged tasty tasty-golden
+         tasty-hunit tasty-quickcheck template-haskell text text-short these
+         time time-compat unordered-containers uuid-types vector
+       ];
+       description = "Fast JSON parsing and encoding";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "aeson-applicative" = callPackage
     ({ mkDerivation, aeson, base, text, unordered-containers }:
      mkDerivation {
@@ -24909,13 +25240,13 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "aeson-commit_1_5" = callPackage
+  "aeson-commit_1_6_0" = callPackage
     ({ mkDerivation, aeson, aeson-qq, base, hspec, text, transformers
      }:
      mkDerivation {
        pname = "aeson-commit";
-       version = "1.5";
-       sha256 = "1xblprnxnx7q1mf7qp47ilkd6i8s36ixdlb75dqr297izn0sxp39";
+       version = "1.6.0";
+       sha256 = "1z0fp6ip6i67gb06cjdmd3gd20wl64964kfkir35hh6mpi9wpln6";
        libraryHaskellDepends = [ aeson base text transformers ];
        testHaskellDepends = [ aeson aeson-qq base hspec text ];
        description = "Parse Aeson data with commitment";
@@ -24934,8 +25265,8 @@ self: {
        pname = "aeson-compat";
        version = "0.3.10";
        sha256 = "0ia3qfdpbrzhwwg4ywpdwca0z1m85k081pcz6jh1sx8qjsvcr71w";
-       revision = "2";
-       editedCabalFile = "0x0i17094nkmhzfh5rl758y21kpgv1fw2qicll5rx51fj6a77rr2";
+       revision = "3";
+       editedCabalFile = "0a4mvv7j18a4wiv6sssb6v4z2xn3kbrfw34842nq0hbygxqn05ri";
        libraryHaskellDepends = [
          aeson attoparsec attoparsec-iso8601 base base-compat bytestring
          containers exceptions hashable scientific tagged text time
@@ -25081,6 +25412,32 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "aeson-extra_0_5_1_1" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, base-compat-batteries
+     , bytestring, containers, deepseq, quickcheck-instances
+     , recursion-schemes, scientific, semialign, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, these, time-parsers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "aeson-extra";
+       version = "0.5.1.1";
+       sha256 = "1fzri1h2wica3grnp8ag8izakqmsb2lh0nld7xnpxk0p766wg9r7";
+       libraryHaskellDepends = [
+         aeson attoparsec base base-compat-batteries bytestring deepseq
+         recursion-schemes scientific semialign template-haskell text these
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base base-compat-batteries containers quickcheck-instances
+         tasty tasty-hunit tasty-quickcheck time-parsers
+         unordered-containers vector
+       ];
+       description = "Extra goodies for aeson";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "aeson-filthy" = callPackage
     ({ mkDerivation, aeson, base, bytestring, doctest, text, time
      , unordered-containers
@@ -25181,6 +25538,7 @@ self: {
        ];
        description = "Derivation of Aeson instances for GADTs";
        license = lib.licenses.bsd3;
+       mainProgram = "readme";
      }) {};
 
   "aeson-generic-compat" = callPackage
@@ -25361,6 +25719,8 @@ self: {
        pname = "aeson-optics";
        version = "1.2";
        sha256 = "0p852w0ns9mkmydbhj1p3szvkw7pl83c0xaqhvn5jwdrpqj6ma74";
+       revision = "1";
+       editedCabalFile = "0d8f0sx4qqiqws70b1gm6ks4gw5hwl0qjh7mdjzr1yf3r4zyk5hq";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring optics-core optics-extra
          scientific text text-short unordered-containers vector
@@ -25455,6 +25815,7 @@ self: {
        ];
        description = "JSON pretty-printing library and command-line tool";
        license = lib.licenses.bsd3;
+       mainProgram = "aeson-pretty";
      }) {};
 
   "aeson-qq" = callPackage
@@ -25562,6 +25923,8 @@ self: {
        pname = "aeson-schemas";
        version = "1.3.5.1";
        sha256 = "1cp6q92z0zkz9kdkaialcx2v9plvmkcghrg54jv841iqxjwcbj3r";
+       revision = "1";
+       editedCabalFile = "1yllgsypwpk627x29bjcv49y4m4g8q2xgkj34z6nyib6w1bbjmna";
        libraryHaskellDepends = [
          aeson base first-class-families hashable megaparsec
          template-haskell text unordered-containers
@@ -25594,6 +25957,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "aeson-single-field" = callPackage
+    ({ mkDerivation, aeson, base, HUnit, markdown-unlit }:
+     mkDerivation {
+       pname = "aeson-single-field";
+       version = "0.1.0.0";
+       sha256 = "1n76hllrhl0bvx79ak9dmwngj11bgajjgspr8lkvjsm3xdy0yxsw";
+       libraryHaskellDepends = [ aeson base ];
+       testHaskellDepends = [ aeson base HUnit markdown-unlit ];
+       testToolDepends = [ markdown-unlit ];
+       description = "Conveniently wrap a single value in a record when encoding to and from JSON";
+       license = lib.licenses.mit;
+     }) {};
+
   "aeson-smart" = callPackage
     ({ mkDerivation, aeson, base, data-default, template-haskell, text
      , unordered-containers, vector
@@ -25940,6 +26316,7 @@ self: {
        description = "Infinite state model checking of iterative C programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "afv";
      }) {};
 
   "ag-pictgen" = callPackage
@@ -25954,6 +26331,7 @@ self: {
        description = "Attribute Grammar picture generation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ag-pictgen";
        broken = true;
      }) {};
 
@@ -25984,6 +26362,7 @@ self: {
        description = "An implementation of language server protocal (LSP) for Agda 2";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "als";
        broken = true;
      }) {};
 
@@ -26006,6 +26385,7 @@ self: {
        description = "Http server for Agda (prototype)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "agda-server";
      }) {};
 
   "agda-snippets" = callPackage
@@ -26027,6 +26407,7 @@ self: {
        description = "Render just the Agda snippets of a literate Agda file to HTML";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "agda-snippets";
        broken = true;
      }) {};
 
@@ -26068,6 +26449,7 @@ self: {
        description = "Check for unused code in an Agda project";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "agda-unused";
        broken = true;
      }) {};
 
@@ -26088,6 +26470,7 @@ self: {
        testToolDepends = [ goldplate ];
        description = "Translate .agda files into .lagda.tex files.";
        license = lib.licenses.publicDomain;
+       mainProgram = "agda2lagda";
      }) {};
 
   "agentx" = callPackage
@@ -26124,6 +26507,7 @@ self: {
        executableHaskellDepends = [ base containers ];
        description = "Unification and Matching in an Abelian Group";
        license = "GPL";
+       mainProgram = "agum";
      }) {};
 
   "aig" = callPackage
@@ -26173,6 +26557,7 @@ self: {
        description = "Aeronautical Information Package (AIP)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "aip";
      }) {};
 
   "air" = callPackage
@@ -26554,6 +26939,7 @@ self: {
        ];
        description = "a diceware passphrase generator";
        license = lib.licenses.mit;
+       mainProgram = "alea";
      }) {};
 
   "alerta" = callPackage
@@ -26602,6 +26988,7 @@ self: {
        testHaskellDepends = [ base process ];
        description = "Alex is a tool for generating lexical analysers in Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "alex";
      }) {};
 
   "alex-meta" = callPackage
@@ -26693,6 +27080,7 @@ self: {
        description = "Fast Aho-Corasick string searching";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dump-automaton";
        broken = true;
      }) {};
 
@@ -26741,6 +27129,7 @@ self: {
        description = "Algorithmic automation for various DAWs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "alga";
        broken = true;
      }) {};
 
@@ -26891,6 +27280,26 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "algebraic-graphs_0_6_1" = callPackage
+    ({ mkDerivation, array, base, containers, deepseq, extra
+     , inspection-testing, QuickCheck, transformers
+     }:
+     mkDerivation {
+       pname = "algebraic-graphs";
+       version = "0.6.1";
+       sha256 = "168aqkm7mfd4is95qwpyf9k0k95qf5rfnkhq5ydbr74jj4jrhr1d";
+       libraryHaskellDepends = [
+         array base containers deepseq transformers
+       ];
+       testHaskellDepends = [
+         array base containers deepseq extra inspection-testing QuickCheck
+         transformers
+       ];
+       description = "A library for algebraic graph construction and transformation";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "algebraic-graphs-io" = callPackage
     ({ mkDerivation, algebraic-graphs, attoparsec, base, binary
      , binary-conduit, bytestring, conduit, conduit-extra, containers
@@ -26958,6 +27367,7 @@ self: {
        description = "An implementation of Knuth's algorithm S";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sample";
        broken = true;
      }) {};
 
@@ -27014,6 +27424,7 @@ self: {
        description = "Helps to create experimental music from a file (or its part) and a Ukrainian text";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "acb";
      }) {};
 
   "algorithmic-composition-basic" = callPackage
@@ -27127,6 +27538,7 @@ self: {
        ];
        description = "Find relative time displacement of two recordings of the same music";
        license = lib.licenses.bsd3;
+       mainProgram = "align-audio";
      }) {};
 
   "align-text" = callPackage
@@ -27141,6 +27553,7 @@ self: {
        description = "A simple unix filter to align text on specified substrings";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "align";
        broken = true;
      }) {};
 
@@ -27266,6 +27679,7 @@ self: {
        description = "a practical affine language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "alms";
      }) {};
 
   "alpaca-netcode" = callPackage
@@ -27304,6 +27718,7 @@ self: {
        description = "A compiler for the Alpha language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "alpha";
      }) {};
 
   "alphachar" = callPackage
@@ -27380,9 +27795,7 @@ self: {
        libraryPkgconfigDepends = [ alsa-lib ];
        description = "Binding to the ALSA Library API (Exceptions)";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {inherit (pkgs) alsa-lib;};
 
   "alsa-gui" = callPackage
@@ -27436,9 +27849,7 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Bindings to the ALSA simple mixer API";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {inherit (pkgs) alsa-lib;};
 
   "alsa-pcm" = callPackage
@@ -27458,9 +27869,7 @@ self: {
        libraryPkgconfigDepends = [ alsa-lib ];
        description = "Binding to the ALSA Library API (PCM audio)";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {inherit (pkgs) alsa-lib;};
 
   "alsa-pcm-tests" = callPackage
@@ -27497,9 +27906,7 @@ self: {
        libraryPkgconfigDepends = [ alsa-lib ];
        description = "Binding to the ALSA Library API (MIDI sequencer)";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {inherit (pkgs) alsa-lib;};
 
   "alsa-seq-tests" = callPackage
@@ -27623,6 +28030,7 @@ self: {
        description = "Implement a menu experience fit for web users";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "alto";
      }) {};
 
   "altsvc" = callPackage
@@ -27725,6 +28133,7 @@ self: {
        description = "Connector for Amazon Products API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "repl";
        broken = true;
      }) {};
 
@@ -28402,6 +28811,7 @@ self: {
        description = "A Haskell equivalent of \"aws rds generate-db-auth-token\"";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "generate-db-auth-token";
      }) {};
 
   "amazonka-core" = callPackage
@@ -30376,6 +30786,7 @@ self: {
        description = "Toolsuite for automated design of business processes";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ampersand";
      }) {};
 
   "amqp" = callPackage
@@ -30403,6 +30814,7 @@ self: {
        ];
        description = "Client library for AMQP servers (currently only RabbitMQ)";
        license = lib.licenses.bsd3;
+       mainProgram = "amqp-builder";
      }) {};
 
   "amqp-conduit" = callPackage
@@ -30433,8 +30845,8 @@ self: {
      }:
      mkDerivation {
        pname = "amqp-streamly";
-       version = "0.2.0";
-       sha256 = "0f6w574pq9nl4iq6di99cip4sxn62yrwpjqc22nwlvbqr6bgl79f";
+       version = "0.2.1";
+       sha256 = "17qh1f05byyysmmyyz6lsqgkkn3bhxw6jpg4pm53ii1m6myfnqw9";
        libraryHaskellDepends = [ amqp base streamly text ];
        testHaskellDepends = [
          amqp base bytestring hspec process streamly testcontainers text
@@ -30490,6 +30902,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {server = null;};
 
@@ -30504,6 +30917,7 @@ self: {
        executableHaskellDepends = [ base deepseq parsec ];
        description = "Interpreter for AM";
        license = "GPL";
+       mainProgram = "amrun";
      }) {};
 
   "anagrep" = callPackage
@@ -30526,6 +30940,7 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion ];
        description = "Find strings with permutations (anagrams) that match a regular expression";
        license = lib.licenses.bsd3;
+       mainProgram = "anagrep";
      }) {};
 
   "analyze" = callPackage
@@ -30589,6 +31004,7 @@ self: {
        ];
        description = "Simple literate programming preprocessor";
        license = lib.licenses.gpl3Only;
+       mainProgram = "anansi";
      }) {};
 
   "anansi-hscolour" = callPackage
@@ -30648,6 +31064,7 @@ self: {
        description = "Anatomy: Atomo documentation system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "anatomy";
      }) {};
 
   "android" = callPackage
@@ -30701,6 +31118,7 @@ self: {
        description = "A pretty printer for Android Lint errors";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "android-lint-summary";
        broken = true;
      }) {};
 
@@ -30730,6 +31148,7 @@ self: {
        description = "Process management and supervision daemon";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "angel";
        broken = true;
      }) {};
 
@@ -30760,6 +31179,7 @@ self: {
        description = "A small, general-purpose programming language";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "angle";
        broken = true;
      }) {};
 
@@ -30794,6 +31214,7 @@ self: {
        description = "text-file based ASCII animator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "animascii";
        broken = true;
      }) {};
 
@@ -30832,6 +31253,7 @@ self: {
        description = "Animation for sprites";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "animate-example";
      }) {};
 
   "animate-frames" = callPackage
@@ -30854,6 +31276,7 @@ self: {
        description = "Convert sprite frames to animate files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "animate-frames";
      }) {};
 
   "animate-preview" = callPackage
@@ -30880,6 +31303,7 @@ self: {
        description = "Preview tool for sprite animation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "animate-preview";
      }) {};
 
   "animate-sdl2" = callPackage
@@ -30913,6 +31337,7 @@ self: {
        description = "Tools for interacting with Anki database";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "anki-tools-test";
        broken = true;
      }) {};
 
@@ -30938,7 +31363,8 @@ self: {
        description = "Medium-level language that desugars to Morte";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "annah";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "annihilator" = callPackage
@@ -31148,6 +31574,7 @@ self: {
        description = "A web interface to Antisplice dungeons";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ironforge-yesod";
      }) {};
 
   "antfarm" = callPackage
@@ -31171,6 +31598,7 @@ self: {
        description = "Referring expressions for definitions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "antfarm";
        broken = true;
      }) {};
 
@@ -31198,6 +31626,7 @@ self: {
        description = "This is an IRC bot for Mafia and Resistance";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "anticiv";
      }) {};
 
   "antigate" = callPackage
@@ -31232,6 +31661,7 @@ self: {
        description = "Define the language containment (=subtyping) relation on regulare expressions";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
        broken = true;
      }) {};
 
@@ -31602,6 +32032,7 @@ self: {
        description = "Haskell binding to the ANTLR parser generator C runtime library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "antlrcmkenums";
      }) {antlr3c = null;};
 
   "anydbm" = callPackage
@@ -31748,6 +32179,7 @@ self: {
        description = "Get all your structure and rip it apart";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -31846,6 +32278,7 @@ self: {
        description = "Server and community browser for the game Tremulous";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "apelsin";
      }) {};
 
   "api-builder" = callPackage
@@ -31931,6 +32364,7 @@ self: {
        testHaskellDepends = [ base bytestring hs-coindesk-api ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mnb-app";
        broken = true;
      }) {hs-coindesk-api = null;};
 
@@ -31973,6 +32407,7 @@ self: {
        description = "JSON-RPC API client for Accumulate blockchain";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "acme-app";
      }) {};
 
   "api-rpc-factom" = callPackage
@@ -31999,6 +32434,7 @@ self: {
        description = "RPC API client for Factom";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "factom-app";
      }) {};
 
   "api-rpc-pegnet" = callPackage
@@ -32408,6 +32844,7 @@ self: {
        description = "Apple Push Notification service HTTP/2 integration";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "apns-http2-example";
        broken = true;
      }) {};
 
@@ -32439,6 +32876,7 @@ self: {
        description = "a faster debian repository";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "apotiki";
      }) {};
 
   "app-lens" = callPackage
@@ -32510,6 +32948,7 @@ self: {
        description = "app container types and tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "appc";
        broken = true;
      }) {};
 
@@ -32685,6 +33124,7 @@ self: {
        ];
        description = "Perform refactorings specified by the refact library";
        license = lib.licenses.bsd3;
+       mainProgram = "refactor";
      }) {};
 
   "apply-refact_0_10_0_0" = callPackage
@@ -32719,6 +33159,7 @@ self: {
        description = "Perform refactorings specified by the refact library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "refactor";
      }) {};
 
   "apply-unordered" = callPackage
@@ -32821,6 +33262,7 @@ self: {
        description = "Easy-to-use emulation of approximate, ranges and tolerances in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "approx-exe";
        broken = true;
      }) {};
 
@@ -32895,6 +33337,7 @@ self: {
        executableHaskellDepends = [ base bytestring ];
        description = "Wipes time stamps from .a files (like ar -D)";
        license = lib.licenses.mit;
+       mainProgram = "ar-timestamp-wiper";
      }) {};
 
   "arb-fft" = callPackage
@@ -32919,6 +33362,7 @@ self: {
        description = "Pure Haskell arbitrary length FFT library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "profile-256";
        broken = true;
      }) {};
 
@@ -33028,6 +33472,7 @@ self: {
        description = "Simple logging library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "arbor-monad-logger-example";
        broken = true;
      }) {};
 
@@ -33107,29 +33552,29 @@ self: {
      , bytestring-progress, conduit, containers, deepseq, directory
      , exceptions, filepath, mtl, parsec, pcre-light, process-extras
      , resourcet, strict, tasty, tasty-golden, tasty-hunit
-     , terminal-progress-bar, text, time, transformers, unix
+     , terminal-progress-bar, text, time, transformers, tz, unix
      , unliftio-core, utf8-string, X11
      }:
      mkDerivation {
        pname = "arbtt";
-       version = "0.11.1";
-       sha256 = "0xlwphjq36wbdzbzl39m163jhrcxnhnrx0lsvmbq4y2gf20r0bbq";
+       version = "0.12";
+       sha256 = "0amgkbycbpr8zhpn7l1a68ddhrvz1rcr74gi0znhx0y3vspns7v8";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          aeson array attoparsec base binary bytestring bytestring-progress
          conduit containers deepseq directory exceptions filepath mtl parsec
          pcre-light resourcet strict terminal-progress-bar text time
-         transformers unix unliftio-core utf8-string X11
+         transformers tz unix unliftio-core utf8-string X11
        ];
        testHaskellDepends = [
          base binary bytestring containers deepseq directory mtl parsec
          pcre-light process-extras tasty tasty-golden tasty-hunit time
-         transformers unix utf8-string
+         transformers tz unix utf8-string
        ];
        description = "Automatic Rule-Based Time Tracker";
        license = lib.licenses.gpl2Only;
-       maintainers = with lib.maintainers; [ rvl ];
+       maintainers = [ lib.maintainers.rvl ];
      }) {};
 
   "arcgrid" = callPackage
@@ -33144,6 +33589,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Parse ESRI/ArcInfo (ArcGrid) raster GIS files";
        license = lib.licenses.bsd3;
+       mainProgram = "arcgrid-dump";
      }) {};
 
   "arcgrid-viewer" = callPackage
@@ -33159,6 +33605,7 @@ self: {
        ];
        description = "Simple viewer for ESRI/ArcInfo (ArcGrid) geospatial data";
        license = lib.licenses.bsd3;
+       mainProgram = "arcgrid-viewer";
      }) {};
 
   "arch-hs" = callPackage
@@ -33172,8 +33619,8 @@ self: {
      }:
      mkDerivation {
        pname = "arch-hs";
-       version = "0.10.1.0";
-       sha256 = "1lkhw3v7gmzgnv4y6p9l3m7qgpdahjiivx12w50kn35crkscscry";
+       version = "0.10.2.0";
+       sha256 = "0z0ralwh0z1zx5nf83j7cli9fdf9c9gpl99r7kiqv167kb2wiw9x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -33205,10 +33652,10 @@ self: {
      }:
      mkDerivation {
        pname = "arch-web";
-       version = "0.1.0";
-       sha256 = "1wiy4swpi3ca8sri2drycfr6i674da2kgiplfng7jcjlxr5nmdpz";
+       version = "0.1.1";
+       sha256 = "1qlx1md7hzxv5cxv3jsiyc0rrbrg2m38b0w27i7bdyd1dlpnyy0d";
        revision = "1";
-       editedCabalFile = "0g6mngy0b18n0w247ff2fyqxhdb6pxz6jywzypiq54w3f4vdqxr9";
+       editedCabalFile = "1342nvrxz8g6q96swxvvbvs1g34s82lhrx02xq371cv70svyq2bk";
        libraryHaskellDepends = [
          aeson base deriving-aeson exceptions http-client http-client-tls
          http-types lens mtl servant servant-client servant-client-core text
@@ -33221,7 +33668,7 @@ self: {
        ];
        description = "Arch Linux official and AUR web interface binding";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ berberman ];
+       maintainers = [ lib.maintainers.berberman ];
      }) {};
 
   "archive" = callPackage
@@ -33244,6 +33691,7 @@ self: {
        description = "A library and programs for creating hardlinked incremental archives or backups";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "archive";
        broken = true;
      }) {debian-mirror = null; help = null;};
 
@@ -33327,6 +33775,7 @@ self: {
        description = "Archive supplied URLs in WebCite & Internet Archive";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "archiver";
        broken = true;
      }) {};
 
@@ -33387,6 +33836,7 @@ self: {
        description = "Convert Arch Linux package updates in RSS to pretty markdown";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "archnews";
        broken = true;
      }) {};
 
@@ -33465,6 +33915,7 @@ self: {
        description = "An interpreter for the Argh! programming language in wxHaskell";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "argh";
      }) {};
 
   "argo" = callPackage
@@ -33496,6 +33947,7 @@ self: {
        ];
        description = "Parse and render JSON";
        license = lib.licenses.mit;
+       mainProgram = "argo";
      }) {};
 
   "argon" = callPackage
@@ -33523,6 +33975,7 @@ self: {
        description = "Measure your code's complexity";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "argon";
      }) {};
 
   "argon2" = callPackage
@@ -33575,6 +34028,7 @@ self: {
        description = "A computer assisted argumentation transcription and editing software";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ArguEdit.bin";
        broken = true;
      }) {};
 
@@ -33604,6 +34058,7 @@ self: {
        description = "Go-to-definition for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ariadne-server";
      }) {};
 
   "arion" = callPackage
@@ -33628,6 +34083,7 @@ self: {
        description = "Watcher and runner for Hspec";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "arion";
        broken = true;
      }) {};
 
@@ -33659,7 +34115,8 @@ self: {
        ];
        description = "Run docker-compose with help from Nix/NixOS";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ roberth ];
+       mainProgram = "arion";
+       maintainers = [ lib.maintainers.roberth ];
      }) {};
 
   "arith-encode" = callPackage
@@ -33721,6 +34178,7 @@ self: {
        ];
        description = "Natural number arithmetic";
        license = lib.licenses.mit;
+       mainProgram = "arithmetic";
      }) {};
 
   "arithmetic-circuits" = callPackage
@@ -33816,6 +34274,7 @@ self: {
        description = "Space-based real time strategy game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "armada";
        broken = true;
      }) {};
 
@@ -33852,6 +34311,7 @@ self: {
        description = "Library for reading ARPA n-gram models";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "arpa";
        broken = true;
      }) {};
 
@@ -33949,6 +34409,7 @@ self: {
        description = "A simple interpreter for arrayForth, the language used on GreenArrays chips";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "array-forth";
      }) {};
 
   "array-list" = callPackage
@@ -34133,6 +34594,7 @@ self: {
        description = "preprocessor translating arrow notation into Haskell 98";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "arrowp";
        broken = true;
      }) {};
 
@@ -34155,6 +34617,7 @@ self: {
        description = "A preprocessor and quasiquoter for translating arrow notation";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "arrowp";
        broken = true;
      }) {};
 
@@ -34220,6 +34683,7 @@ self: {
        ];
        description = "Archive execution tool";
        license = lib.licenses.bsd3;
+       mainProgram = "arx";
      }) {};
 
   "arxiv" = callPackage
@@ -34233,6 +34697,25 @@ self: {
        license = "LGPL";
      }) {};
 
+  "asana" = callPackage
+    ({ mkDerivation, aeson, aeson-casing, base, bytestring, hashable
+     , http-conduit, iso8601-time, microlens, microlens-mtl
+     , monad-logger, mtl, scientific, text, time, unliftio
+     , unliftio-core, unordered-containers
+     }:
+     mkDerivation {
+       pname = "asana";
+       version = "1.0.0.0";
+       sha256 = "0iz1zzisx2ap89p0wdfxpdcbv7zgf00g1lfa00s1ndrkgpxn9ivr";
+       libraryHaskellDepends = [
+         aeson aeson-casing base bytestring hashable http-conduit
+         iso8601-time microlens microlens-mtl monad-logger mtl scientific
+         text time unliftio unliftio-core unordered-containers
+       ];
+       description = "Asana API Client";
+       license = lib.licenses.mit;
+     }) {};
+
   "asap" = callPackage
     ({ mkDerivation, base, bytestring, hedgehog, jwt, lens, mtl
      , semigroups, text, time, uuid
@@ -34315,6 +34798,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "ASCII Art to Unicode Box Drawing converter";
        license = lib.licenses.bsd3;
+       mainProgram = "aa2u";
      }) {};
 
   "ascii-case" = callPackage
@@ -34366,6 +34850,7 @@ self: {
        description = "Flattens European non-ASCII characaters into ASCII";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ascii-flatten";
        broken = true;
      }) {};
 
@@ -34394,6 +34879,7 @@ self: {
        ];
        description = "ASCII animations for the holidays!";
        license = lib.licenses.gpl3Only;
+       mainProgram = "ascii-holidays";
      }) {};
 
   "ascii-numbers" = callPackage
@@ -34580,6 +35066,7 @@ self: {
        description = "Process Ascii Vectors for Advantest 93k";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "SelectSigs";
        broken = true;
      }) {};
 
@@ -34634,6 +35121,7 @@ self: {
        ];
        description = "Pretty rendering of Ascii diagram into svg or png";
        license = lib.licenses.bsd3;
+       mainProgram = "asciidiagram";
      }) {};
 
   "asic" = callPackage
@@ -34648,6 +35136,7 @@ self: {
        description = "Action Script Instrumentation Compiler";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "asic";
      }) {};
 
   "asif" = callPackage
@@ -34691,6 +35180,7 @@ self: {
        description = "Library for creating and querying segmented feeds";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "asif";
      }) {};
 
   "asil" = callPackage
@@ -34828,6 +35318,7 @@ self: {
        ];
        description = "Dump ASN1 structure";
        license = lib.licenses.bsd3;
+       mainProgram = "asn1dump";
      }) {};
 
   "aspell-pipe" = callPackage
@@ -34854,6 +35345,7 @@ self: {
        description = "Haskell Assembler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "has";
        broken = true;
      }) {ghc-binary = null;};
 
@@ -35174,6 +35666,7 @@ self: {
        description = "an incomplete 2d space game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "astrds";
        broken = true;
      }) {};
 
@@ -35213,6 +35706,7 @@ self: {
        description = "A GTK-based abstract syntax tree viewer for custom languages and parsers";
        license = lib.licenses.bsdOriginal;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "astview";
      }) {};
 
   "astview-utils" = callPackage
@@ -35349,6 +35843,7 @@ self: {
        description = "A thread manager for async";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "thread-clean-up-test";
        broken = true;
      }) {};
 
@@ -35477,6 +35972,7 @@ self: {
        description = "Utility functions for working with aterms as generated by Minitermite";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ppaterm";
      }) {};
 
   "atl" = callPackage
@@ -35801,6 +36297,7 @@ self: {
        description = "A highly dynamic, extremely simple, very fun programming language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "atomo";
        broken = true;
      }) {};
 
@@ -35872,6 +36369,7 @@ self: {
        description = "A source-code formatter for ATS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "atsfmt";
      }) {};
 
   "ats-pkg" = callPackage
@@ -35907,6 +36405,7 @@ self: {
        description = "A build tool for ATS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "atspkg";
      }) {};
 
   "ats-setup" = callPackage
@@ -36007,6 +36506,7 @@ self: {
        description = "A script I use to run \"attic\" for my backups";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "attic-schedule";
        broken = true;
      }) {};
 
@@ -36056,6 +36556,7 @@ self: {
        description = "Minimal mail delivery agent (MDA) for local mail with maildir support";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "attomail";
        broken = true;
      }) {};
 
@@ -36254,6 +36755,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "attoparsec-iso8601_1_1_0_0" = callPackage
+    ({ mkDerivation, attoparsec, base, base-compat-batteries, text
+     , time, time-compat
+     }:
+     mkDerivation {
+       pname = "attoparsec-iso8601";
+       version = "1.1.0.0";
+       sha256 = "0ji6rcz49caqpj85dg8gs90cnc15500qyyh4b3n598a8qhbsh28i";
+       libraryHaskellDepends = [
+         attoparsec base base-compat-batteries text time time-compat
+       ];
+       description = "Parsing of ISO 8601 dates, originally from aeson";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "attoparsec-iteratee" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, iteratee
      , transformers
@@ -36421,6 +36938,7 @@ self: {
        description = "Embedded Turtle language compiler in Haskell, with Epic output";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "atuin";
      }) {};
 
   "audacity" = callPackage
@@ -36483,6 +37001,7 @@ self: {
        description = "A Haskell FFI wrapper for the Augeas API";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test-haskell-augeas";
        broken = true;
      }) {inherit (pkgs) augeas;};
 
@@ -36503,6 +37022,7 @@ self: {
        description = "Renaming media collections in a breeze";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "augur";
        broken = true;
      }) {};
 
@@ -36577,6 +37097,7 @@ self: {
        description = "A secure package manager for Arch Linux and the AUR";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "aura";
      }) {};
 
   "authenticate" = callPackage
@@ -36719,7 +37240,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Template Haskell to automatically pass values to functions";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       maintainers = [ lib.maintainers.expipiplus1 ];
      }) {};
 
   "autodocodec" = callPackage
@@ -36820,6 +37341,7 @@ self: {
        executableHaskellDepends = [ base Cabal directory filepath ];
        description = "Automatically re-export modules";
        license = lib.licenses.mit;
+       mainProgram = "autoexporter";
      }) {};
 
   "autom" = callPackage
@@ -36946,6 +37468,7 @@ self: {
        description = "Generate dependencies for KDE 5 Nix expressions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kf5-deps";
      }) {};
 
   "autopack" = callPackage
@@ -36973,6 +37496,7 @@ self: {
        libraryHaskellDepends = [ base directory mtl process unix ];
        description = "EDSL for Procmail scripts";
        license = lib.licenses.bsd3;
+       mainProgram = "autoproc";
      }) {};
 
   "avahi" = callPackage
@@ -36987,6 +37511,7 @@ self: {
        executableHaskellDepends = [ base bytestring dbus text ];
        description = "Minimal DBus bindings for Avahi daemon (http://avahi.org)";
        license = lib.licenses.bsd3;
+       mainProgram = "avahi-browse";
      }) {};
 
   "avatar-generator" = callPackage
@@ -37001,6 +37526,7 @@ self: {
        description = "A simple random avatar icon generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "avatar-generator";
        broken = true;
      }) {};
 
@@ -37161,6 +37687,7 @@ self: {
        description = "Aviation Navigation functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wind-correction";
      }) {};
 
   "aviation-units" = callPackage
@@ -37290,6 +37817,7 @@ self: {
        description = "Tool for decoding avro";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "avro-decode";
        broken = true;
      }) {};
 
@@ -37311,6 +37839,7 @@ self: {
        description = "Parse aviation weather reports";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "metar";
        broken = true;
      }) {};
 
@@ -37453,6 +37982,7 @@ self: {
        testHaskellDepends = [ base hedgehog neat-interpolation ];
        description = "Generate signed cookies for AWS CloudFront";
        license = lib.licenses.mit;
+       mainProgram = "aws-cloudfront-signed-cookies";
      }) {};
 
   "aws-cloudfront-signed-cookies_0_2_0_11" = callPackage
@@ -37477,6 +38007,7 @@ self: {
        description = "Generate signed cookies for AWS CloudFront";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "aws-cloudfront-signed-cookies";
      }) {};
 
   "aws-cloudfront-signer" = callPackage
@@ -37580,6 +38111,7 @@ self: {
        description = "Helper function and types for working with amazonka";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "aws-easy-demo";
      }) {};
 
   "aws-ec2" = callPackage
@@ -37745,6 +38277,7 @@ self: {
        description = "A producer & consumer client library for AWS Kinesis";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kinesis-cli";
      }) {};
 
   "aws-kinesis-reshard" = callPackage
@@ -37774,6 +38307,7 @@ self: {
        description = "Reshard AWS Kinesis streams in response to Cloud Watch metrics";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kinesis-reshard";
      }) {};
 
   "aws-lambda" = callPackage
@@ -37865,6 +38399,7 @@ self: {
        description = "Haskell on AWS Lambda Runtime API";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-lambda";
        broken = true;
      }) {};
 
@@ -37905,6 +38440,7 @@ self: {
        description = "Keep your AWS credentials file up to date with MFA-carrying credentials";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "aws-mfa-credentials";
      }) {};
 
   "aws-performance-tests" = callPackage
@@ -37931,6 +38467,7 @@ self: {
        description = "Performance Tests for the Haskell bindings for Amazon Web Services (AWS)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dynamodb-performance";
        broken = true;
      }) {};
 
@@ -38267,6 +38804,7 @@ self: {
        description = "The Axel programming language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "axel";
        broken = true;
      }) {};
 
@@ -38479,6 +39017,7 @@ self: {
        description = "A simple library for accessing Azure blob storage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "azurify";
        broken = true;
      }) {};
 
@@ -38548,6 +39087,7 @@ self: {
        description = "A tool and library for building virtual machine images";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "b9c";
        broken = true;
      }) {};
 
@@ -38579,6 +39119,7 @@ self: {
        description = "An implementation of a simple 2-player board game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "babylon";
      }) {};
 
   "backblaze-b2-hs" = callPackage
@@ -38612,6 +39153,7 @@ self: {
        description = "A client library to access Backblaze B2 cloud storage in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "backblaze-b2-hs";
      }) {};
 
   "backdropper" = callPackage
@@ -38630,6 +39172,7 @@ self: {
        description = "Rotates backdrops for X11 displays using Imagemagic";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "backdropper_consol";
      }) {};
 
   "backprop" = callPackage
@@ -38677,6 +39220,7 @@ self: {
        description = "Backstop a target directory by source directories";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "backstop";
        broken = true;
      }) {};
 
@@ -38737,6 +39281,7 @@ self: {
        executableHaskellDepends = [ base gd X11 ];
        description = "braindead utility to compose Xinerama backgrounds";
        license = "unknown";
+       mainProgram = "bacteria";
      }) {};
 
   "bag" = callPackage
@@ -38784,6 +39329,7 @@ self: {
        description = "Continuous integration system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bake-test";
        broken = true;
      }) {};
 
@@ -38851,6 +39397,7 @@ self: {
        description = "bamboo-launcher";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bamboo";
      }) {};
 
   "bamboo-plugin-highlight" = callPackage
@@ -38948,6 +39495,7 @@ self: {
        description = "A Windows Installer (MSI) generator framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsDotnetGen";
      }) {};
 
   "bamstats" = callPackage
@@ -38962,6 +39510,7 @@ self: {
        description = "A program to extract various information from BAM alignmnet files";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bam";
      }) {};
 
   "ban-instance" = callPackage
@@ -39086,7 +39635,8 @@ self: {
        ];
        description = "Create status bar menus for macOS from executables";
        license = lib.licenses.bsd3;
-       platforms = [ "aarch64-darwin" "x86_64-darwin" ];
+       platforms = lib.platforms.darwin;
+       mainProgram = "barbly";
      }) {};
 
   "barchart" = callPackage
@@ -39102,6 +39652,7 @@ self: {
        description = "Creating Bar Charts in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "barchart";
        broken = true;
      }) {};
 
@@ -39150,6 +39701,7 @@ self: {
        description = "A web based environment for learning and tinkering with Haskell";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "barley";
      }) {};
 
   "barrie" = callPackage
@@ -39706,8 +40258,8 @@ self: {
        pname = "base64-bytestring-type";
        version = "1.0.1";
        sha256 = "03kq4rjj6by02rf3hg815jfdqpdk0xygm5f46r2pn8mb99yd01zn";
-       revision = "12";
-       editedCabalFile = "09ap4z85k3lncf27b2qzfks4lnjm8rzldmzvbik7il3ycc60dk5i";
+       revision = "14";
+       editedCabalFile = "0pfj807231v2jn5067yhn13f6qq3d77fqnglmzh5wp445ikd5q0s";
        libraryHaskellDepends = [
          aeson base base-compat base64-bytestring binary bytestring cereal
          deepseq hashable http-api-data QuickCheck serialise text
@@ -39787,6 +40339,7 @@ self: {
        ];
        description = "A Generic Base91 Encoder & Decoder";
        license = lib.licenses.mit;
+       mainProgram = "base91";
      }) {};
 
   "basement" = callPackage
@@ -39869,6 +40422,7 @@ self: {
        description = "Baserock Definitions Schema";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "baserock";
      }) {};
 
   "basex-client" = callPackage
@@ -39985,6 +40539,7 @@ self: {
        description = "An interpreter for a small functional language";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "baskell";
        broken = true;
      }) {};
 
@@ -40016,6 +40571,7 @@ self: {
        executableHaskellDepends = [ base directory filepath Glob ];
        description = "Make Linux or MacOS do things like \"rename *.mp3 *.mp4\"";
        license = lib.licenses.publicDomain;
+       mainProgram = "batch_rename";
      }) {};
 
   "batchd" = callPackage
@@ -40215,6 +40771,7 @@ self: {
        testHaskellDepends = [ base QuickCheck ];
        description = "Compute number of possible arrangements in the battleship game";
        license = lib.licenses.bsd3;
+       mainProgram = "battleship-combinatorics";
      }) {};
 
   "battleships" = callPackage
@@ -40286,6 +40843,7 @@ self: {
        description = "HTML Coverage Reports for Rules_Haskell";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bazel-coverage-report-renderer";
        broken = true;
      }) {};
 
@@ -40301,6 +40859,7 @@ self: {
        executableHaskellDepends = [ base filepath ];
        description = "Locate Bazel runfiles location";
        license = lib.licenses.asl20;
+       mainProgram = "bazel-runfiles-exe";
      }) {};
 
   "bbdb" = callPackage
@@ -40469,10 +41028,9 @@ self: {
        ];
        description = "BDCS API Server";
        license = lib.licenses.gpl3Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bdcs-api-server";
      }) {inherit (pkgs) libgit2-glib;};
 
   "bdd" = callPackage
@@ -40521,6 +41079,7 @@ self: {
        description = "Update CSS in the browser without reloading the page";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bdo";
        broken = true;
      }) {};
 
@@ -40786,6 +41345,7 @@ self: {
        description = "A pretty-printer for higher-order logic";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "beautifHOL";
      }) {};
 
   "bech32" = callPackage
@@ -40814,6 +41374,7 @@ self: {
        description = "Implementation of the Bech32 cryptocurrency address format (BIP 0173)";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bech32";
        broken = true;
      }) {};
 
@@ -40945,7 +41506,8 @@ self: {
        ];
        description = "Command-line benchmark tool";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "bench";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "bench-graph" = callPackage
@@ -40985,6 +41547,7 @@ self: {
        testHaskellDepends = [ base split text ];
        description = "Show, plot and compare benchmark results";
        license = lib.licenses.bsd3;
+       mainProgram = "bench-show";
      }) {};
 
   "benchmark-function" = callPackage
@@ -41010,6 +41573,7 @@ self: {
        executableHaskellDepends = [ base bytestring time ];
        description = "Micro-benchmarking with detailed statistics";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "bencode" = callPackage
@@ -41146,6 +41710,7 @@ self: {
        description = "An implementation of Python 3";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "berp";
      }) {};
 
   "bert" = callPackage
@@ -41252,6 +41817,7 @@ self: {
        description = "A horizontal version of tetris for braille users";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "betris";
        broken = true;
      }) {};
 
@@ -41326,6 +41892,7 @@ self: {
        description = "Implementation of the BGAPI serial protocol";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bglibtest";
      }) {};
 
   "bgmax" = callPackage
@@ -41378,6 +41945,7 @@ self: {
        description = "Simple terminal GUI for local hoogle";
        license = "(BSD-3-Clause OR Apache-2.0)";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bhoogle";
        broken = true;
      }) {};
 
@@ -41402,6 +41970,7 @@ self: {
        description = "A database based bibliography manager for BibTeX";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bibdb";
        broken = true;
      }) {};
 
@@ -41573,6 +42142,7 @@ self: {
        description = "A parser for the Billboard chord dataset";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "billboard-parser";
      }) {};
 
   "billeksah-forms" = callPackage
@@ -41610,6 +42180,7 @@ self: {
        description = "Leksah plugin base";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "billeksah-main";
      }) {};
 
   "billeksah-main-static" = callPackage
@@ -41632,6 +42203,7 @@ self: {
        description = "Leksah plugin base";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "billeksah-main-static";
        broken = true;
      }) {leksah-dummy = null; leksah-main = null; 
          leksah-plugin-pane = null;};
@@ -41787,6 +42359,7 @@ self: {
        ];
        description = "Generate CSV Exports of your Binance Trade History";
        license = lib.licenses.bsd3;
+       mainProgram = "binance-exports";
      }) {};
 
   "binary_0_8_9_0" = callPackage
@@ -42002,8 +42575,8 @@ self: {
        pname = "binary-instances";
        version = "1.0.2";
        sha256 = "10z29k35clq74ma2f0yrkbyf14wdax1zzgb6mn26ja4vp9f5wc14";
-       revision = "2";
-       editedCabalFile = "1f9db18466pbnn8hxhbwqb7pf5qmbmc7szpcdhy77n825pvhjyi8";
+       revision = "3";
+       editedCabalFile = "1jfhn6nqqg8hz3d2j7zyhpqv74165jf69dycjr6vzbxmvvn03wil";
        libraryHaskellDepends = [
          aeson base binary binary-orphans case-insensitive hashable
          scientific tagged text text-binary time-compat unordered-containers
@@ -42599,6 +43172,7 @@ self: {
        executableHaskellDepends = [ base binary bytestring split ];
        description = "Very low-level FFI bindings for Codec2";
        license = lib.licenses.gpl2Only;
+       mainProgram = "bindings-codec2-demo";
      }) {inherit (pkgs) codec2;};
 
   "bindings-common" = callPackage
@@ -42637,9 +43211,7 @@ self: {
        libraryPkgconfigDepends = [ directfb ];
        description = "Low level bindings to DirectFB";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) directfb;};
 
   "bindings-eskit" = callPackage
@@ -42777,6 +43349,7 @@ self: {
        description = "Hamlib bindings for Haskell";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hamlib-hs-demo";
        broken = true;
      }) {inherit (pkgs) hamlib;};
 
@@ -42964,9 +43537,7 @@ self: {
        librarySystemDepends = [ lxc ];
        description = "Direct Haskell bindings to LXC (Linux containers) C API";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {inherit (pkgs) lxc;};
 
   "bindings-mmap" = callPackage
@@ -43033,9 +43604,7 @@ self: {
        libraryHaskellDepends = [ base bindings-DSL ];
        description = "parport bindings";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "bindings-portaudio" = callPackage
@@ -43115,9 +43684,7 @@ self: {
        libraryPkgconfigDepends = [ sane-backends ];
        description = "FFI bindings to libsane";
        license = lib.licenses.lgpl3Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) sane-backends;};
 
   "bindings-sc3" = callPackage
@@ -43256,6 +43823,7 @@ self: {
        description = "Embed data into object files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "binembed";
        broken = true;
      }) {};
 
@@ -43274,6 +43842,7 @@ self: {
        description = "Example project using binembed to embed data in object files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "binembed-example";
      }) {};
 
   "bini" = callPackage
@@ -43341,6 +43910,7 @@ self: {
        description = "binary files splitter and merger";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "binsm";
        broken = true;
      }) {};
 
@@ -43637,6 +44207,7 @@ self: {
        description = "Plot a colorful tree";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "birch-beer";
      }) {};
 
   "bird" = callPackage
@@ -43658,6 +44229,7 @@ self: {
        description = "A simple, sinatra-inspired web framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bird";
      }) {};
 
   "birds-of-paradise" = callPackage
@@ -43690,6 +44262,7 @@ self: {
        ];
        description = "A small tool that clears cookies (and more)";
        license = lib.licenses.gpl3Only;
+       mainProgram = "bisc";
      }) {};
 
   "biscuit-haskell" = callPackage
@@ -43762,6 +44335,7 @@ self: {
        description = "Determine relevant parts of binary data";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bisect-binary";
        broken = true;
      }) {};
 
@@ -44228,6 +44802,7 @@ self: {
        description = "A library for working with bitcoin-core regtest networks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bitcoind-rpc-explorer";
      }) {};
 
   "bitcoind-rpc" = callPackage
@@ -44266,6 +44841,7 @@ self: {
        description = "A command line tool to access bit.ly URL shortener.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bitly";
      }) {};
 
   "bitmap" = callPackage
@@ -44487,6 +45063,7 @@ self: {
        description = "Proof-of-concept tool for writing using binary choices";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bitspeak";
        broken = true;
      }) {inherit (pkgs) gtk2; inherit (pkgs) pango;};
 
@@ -44570,6 +45147,7 @@ self: {
        executableHaskellDepends = [ base text turtle ];
        description = "Bindings for the Bittrex API";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "bitvec" = callPackage
@@ -44721,6 +45299,7 @@ self: {
        description = "Backup utility for backing up to cloud storage services (S3 only right now)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bkr";
        broken = true;
      }) {};
 
@@ -44748,6 +45327,7 @@ self: {
        description = "a stupid cron";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bla";
      }) {};
 
   "black-jewel" = callPackage
@@ -44768,6 +45348,7 @@ self: {
        testHaskellDepends = [ base QuickCheck ];
        description = "The pirate bay client";
        license = lib.licenses.gpl3Only;
+       mainProgram = "black-jewel";
      }) {};
 
   "blacktip" = callPackage
@@ -44814,6 +45395,7 @@ self: {
        ];
        description = "Shake frontend for Agda blogging";
        license = lib.licenses.agpl3Only;
+       mainProgram = "blagda";
      }) {};
 
   "blake2" = callPackage
@@ -44844,6 +45426,7 @@ self: {
        testHaskellDepends = [ base memory tasty tasty-hunit ];
        description = "BLAKE3 hashing algorithm";
        license = lib.licenses.asl20;
+       platforms = lib.platforms.x86;
      }) {};
 
   "blakesum" = callPackage
@@ -44875,6 +45458,7 @@ self: {
        description = "The BLAKE SHA-3 candidate hashes, in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blakesum";
      }) {};
 
   "blank-canvas" = callPackage
@@ -44888,8 +45472,8 @@ self: {
        pname = "blank-canvas";
        version = "0.7.3";
        sha256 = "1g10959ly5nv2xfhax4pamzxnxkqbniahplc5za8k5r4nq1vjrm2";
-       revision = "7";
-       editedCabalFile = "1vy43yvz382fd3d78w3inzly19pshszgwv3bsy4rzmiic0ip3l99";
+       revision = "8";
+       editedCabalFile = "1l5aj1p7db93qq1jxndv77csizwr6pbfm0g98d1mv7zgqanks3dd";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base base-compat-batteries base64-bytestring bytestring
@@ -45022,6 +45606,7 @@ self: {
        description = "Blog in LaTeX";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blatex";
      }) {};
 
   "blaze" = callPackage
@@ -45129,6 +45714,7 @@ self: {
        ];
        description = "Tool to convert HTML to BlazeHtml code";
        license = lib.licenses.bsd3;
+       mainProgram = "blaze-from-html";
      }) {};
 
   "blaze-html" = callPackage
@@ -45398,6 +45984,7 @@ self: {
        description = "Password entry tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blindpass";
        broken = true;
      }) {};
 
@@ -45418,6 +46005,7 @@ self: {
        description = "Control library for blink(1) LED from ThingM";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blink1";
      }) {};
 
   "blip" = callPackage
@@ -45437,6 +46025,7 @@ self: {
        description = "Python to bytecode compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blip";
      }) {};
 
   "bliplib" = callPackage
@@ -45545,7 +46134,7 @@ self: {
        description = "blockfrost.io basic client";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ sorki ];
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "blockfrost-client-core" = callPackage
@@ -45608,6 +46197,7 @@ self: {
        description = "Blockhash perceptual image hash algorithm";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blockhash";
        broken = true;
      }) {};
 
@@ -45642,6 +46232,7 @@ self: {
        description = "Very simple static blog software";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blogination";
      }) {};
 
   "bloodhound" = callPackage
@@ -45757,6 +46348,7 @@ self: {
        description = "BLOSUM generator";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blosum";
      }) {};
 
   "bloxorz" = callPackage
@@ -45772,6 +46364,7 @@ self: {
        description = "OpenGL Logic Game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bloxorz";
      }) {};
 
   "blubber" = callPackage
@@ -45790,6 +46383,7 @@ self: {
        description = "The blubber client; connects to the blubber server";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blubber";
      }) {};
 
   "blubber-server" = callPackage
@@ -45812,6 +46406,7 @@ self: {
        description = "The blubber server, serves blubber clients";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blubber-server";
        broken = true;
      }) {};
 
@@ -45839,6 +46434,7 @@ self: {
        ];
        description = "Configurable blue light filter";
        license = lib.licenses.bsd3;
+       mainProgram = "blucontrol";
      }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXrandr;};
 
   "bludigon" = callPackage
@@ -45866,6 +46462,7 @@ self: {
        description = "Configurable blue light filter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bludigon";
        broken = true;
      }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXrandr;};
 
@@ -45919,6 +46516,7 @@ self: {
        description = "Utilities for Bluetile";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bluetilemockwin-obsolete";
        broken = true;
      }) {};
 
@@ -45936,6 +46534,7 @@ self: {
        description = "spam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test1";
        broken = true;
      }) {};
 
@@ -45959,6 +46558,7 @@ self: {
        description = "Convert between pointfree and pointful expressions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blunt";
      }) {};
 
   "bm" = callPackage
@@ -45970,8 +46570,8 @@ self: {
        pname = "bm";
        version = "0.1.0.2";
        sha256 = "1rpwlbhn5fkndw19ryksm9x2fcg7z7xscigi4zfs9v4w16skn7zj";
-       revision = "1";
-       editedCabalFile = "0jkl79smdm144qz074zshzl22cjhfr8mnddgwlj1hfn8anksv3yd";
+       revision = "2";
+       editedCabalFile = "00n49679ib14lkv1ji988rcjpsp42v213bahiga6xgqfdpf486zx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -45984,6 +46584,7 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit vector ];
        description = "open bookmarks and queries from the command line";
        license = lib.licenses.mit;
+       mainProgram = "bm";
      }) {};
 
   "bmp" = callPackage
@@ -46020,6 +46621,7 @@ self: {
        ];
        description = "Generate CSV Exports of Your BNB Staking Rewards";
        license = lib.licenses.bsd3;
+       mainProgram = "bnb-staking-csvs";
      }) {};
 
   "bno055-haskell" = callPackage
@@ -46067,6 +46669,7 @@ self: {
        ];
        description = "Three games for inclusion in a web server";
        license = "GPL";
+       mainProgram = "board-games";
      }) {};
 
   "boardgame" = callPackage
@@ -46082,6 +46685,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Modeling boardgames";
        license = lib.licenses.mit;
+       mainProgram = "boardgame";
      }) {};
 
   "bodhi" = callPackage
@@ -46114,6 +46718,7 @@ self: {
        description = "Copy a directory tree, making zero-size sparse copies of big files";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bogocopy";
        broken = true;
      }) {};
 
@@ -46133,6 +46738,7 @@ self: {
        executableHaskellDepends = [ base hogre hois random ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bogre-banana-snake";
      }) {};
 
   "boilerplate" = callPackage
@@ -46162,6 +46768,7 @@ self: {
        description = "Generate Haskell boilerplate";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "boilerplate";
      }) {};
 
   "bolt" = callPackage
@@ -46213,6 +46820,7 @@ self: {
        description = "Analytic sampler compiler for combinatorial systems";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bb";
        broken = true;
      }) {};
 
@@ -46265,6 +46873,7 @@ self: {
        description = "Bond schema compiler and code generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gbc";
      }) {};
 
   "bond-haskell" = callPackage
@@ -46316,14 +46925,15 @@ self: {
        description = "Bond code generator for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hbc";
      }) {};
 
   "bookhound" = callPackage
     ({ mkDerivation, base, containers, time }:
      mkDerivation {
        pname = "bookhound";
-       version = "0.1.8.0";
-       sha256 = "1rmfhi12p0i6zsw7rlcyb6qdg1asda3n9gxhyh773hh3v99v5qd0";
+       version = "0.1.9.0";
+       sha256 = "0iv1iscz9p9z53x4v1xcplyc6j7cclgmhk5yn7ryc8jxz2ds1ic4";
        libraryHaskellDepends = [ base containers time ];
        description = "Simple Parser Combinators & Parsers";
        license = "LGPL";
@@ -46355,6 +46965,7 @@ self: {
        description = "Anonymous records and overloaded labels";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme";
        broken = true;
      }) {};
 
@@ -46541,6 +47152,7 @@ self: {
        ];
        description = "A bookmarks manager with an HTML generator";
        license = lib.licenses.gpl3Only;
+       mainProgram = "boomange";
      }) {};
 
   "boombox" = callPackage
@@ -46593,6 +47205,7 @@ self: {
        description = "Boomshine clone";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "boomslang";
      }) {};
 
   "boop" = callPackage
@@ -46629,6 +47242,7 @@ self: {
        description = "Mathematically sound sound synthesis";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "perfprof";
      }) {};
 
   "boots" = callPackage
@@ -46666,6 +47280,7 @@ self: {
        description = "Factory for quickly building an application";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "demo-app";
        broken = true;
      }) {};
 
@@ -46788,6 +47403,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "An educational game";
        license = lib.licenses.bsd3;
+       mainProgram = "boring-game-exe";
      }) {};
 
   "boring-window-switcher" = callPackage
@@ -46803,6 +47419,7 @@ self: {
        description = "A boring window switcher";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "boring-window-switcher";
        broken = true;
      }) {};
 
@@ -46842,6 +47459,7 @@ self: {
        description = "Build tool for Lambdabot";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "BotPP";
        broken = true;
      }) {};
 
@@ -46868,6 +47486,7 @@ self: {
        description = "Encoding and decoding for the Bottom spec";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bottom";
        broken = true;
      }) {};
 
@@ -47040,6 +47659,7 @@ self: {
        description = "audio-visual pseudo-physical simulation of colliding circles";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bowntz";
        broken = true;
      }) {};
 
@@ -47089,6 +47709,7 @@ self: {
        executableHaskellDepends = [ base optparse-generic ];
        description = "Box websockets";
        license = lib.licenses.bsd3;
+       mainProgram = "box-socket";
      }) {};
 
   "box-tuples" = callPackage
@@ -47165,6 +47786,7 @@ self: {
        description = "Types and functions to work with braids and Khovanov homology";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "KappaView";
        broken = true;
      }) {};
 
@@ -47180,6 +47802,7 @@ self: {
        description = "primitive imperative language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "brain-bleep";
        broken = true;
      }) {};
 
@@ -47195,6 +47818,7 @@ self: {
        executableHaskellDepends = [ array base mtl unix ];
        description = "Brainfuck interpreter";
        license = "GPL";
+       mainProgram = "bf";
      }) {};
 
   "brainfuck-monad" = callPackage
@@ -47220,6 +47844,7 @@ self: {
        executableHaskellDepends = [ array base ];
        description = "A simple BF interpreter";
        license = lib.licenses.bsd3;
+       mainProgram = "bfh";
      }) {};
 
   "brainheck" = callPackage
@@ -47239,6 +47864,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion text ];
        description = "Brainh*ck interpreter in haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "brainheck";
      }) {};
 
   "break" = callPackage
@@ -47252,7 +47878,7 @@ self: {
        libraryHaskellDepends = [ base mtl transformers ];
        description = "Break from a loop";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "breakout" = callPackage
@@ -47267,6 +47893,7 @@ self: {
        description = "A simple Breakout game implementation";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "breakout";
      }) {};
 
   "breve" = callPackage
@@ -47290,6 +47917,7 @@ self: {
        ];
        description = "a url shortener";
        license = lib.licenses.gpl3Only;
+       mainProgram = "breve";
      }) {};
 
   "brians-brain" = callPackage
@@ -47304,6 +47932,7 @@ self: {
        description = "A Haskell implementation of the Brian's Brain cellular automaton";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "brians-brain";
        broken = true;
      }) {};
 
@@ -47558,6 +48187,7 @@ self: {
        description = "Simple part of speech tagger";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "brillig";
        broken = true;
      }) {};
 
@@ -47594,6 +48224,7 @@ self: {
        ];
        description = "Haskell source code formatter";
        license = lib.licenses.agpl3Only;
+       mainProgram = "brittany";
      }) {};
 
   "broadcast-chan" = callPackage
@@ -47707,6 +48338,7 @@ self: {
        description = "Finds broken links in text files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "brok";
        broken = true;
      }) {};
 
@@ -47771,10 +48403,8 @@ self: {
      }:
      mkDerivation {
        pname = "brotli";
-       version = "0.0.0.0";
-       sha256 = "1l9qiw5cl0k1rcnqnj9pb7vgj1b06wckkk5i73nqr15ixgcjmr9j";
-       revision = "4";
-       editedCabalFile = "0ih5mmpmhk5qnqc25dn6363xmq20z5k2x5458jp2yxbw1g367nwi";
+       version = "0.0.0.1";
+       sha256 = "0fp8vhqzl6i1vvb4fw4zya6cgkzmj0yaaw94jdf2kggm3gn8zwfc";
        libraryHaskellDepends = [ base bytestring transformers ];
        libraryPkgconfigDepends = [ brotli ];
        testHaskellDepends = [
@@ -47815,8 +48445,8 @@ self: {
        pname = "brotli-streams";
        version = "0.0.0.0";
        sha256 = "14jc1nhm50razsl99d95amdf4njf75dnzx8vqkihgrgp7qisyz3z";
-       revision = "4";
-       editedCabalFile = "1mpp08l1vwvgl1gvki0wlndlf0kza2kwnx5qdcl7slanw7waa1fb";
+       revision = "5";
+       editedCabalFile = "0fp2ysmldmq8c1jlbprky1b7dxls3vgj4n1prnd84k2d01g7ff9m";
        libraryHaskellDepends = [ base brotli bytestring io-streams ];
        testHaskellDepends = [
          base bytestring HUnit io-streams QuickCheck test-framework
@@ -48042,9 +48672,7 @@ self: {
        libraryHaskellDepends = [ base bytestring time unix ];
        description = "Bindings to the btrfs API";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -48086,6 +48714,7 @@ self: {
        description = "Automates most of your plain text accounting data entry in ledger format";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "buchhaltung";
      }) {};
 
   "buffer" = callPackage
@@ -48174,6 +48803,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Read from stdin and write to stdout in large blocks";
        license = lib.licenses.bsd3;
+       mainProgram = "buffer-pipe";
      }) {};
 
   "buffet" = callPackage
@@ -48204,6 +48834,7 @@ self: {
        description = "Assembles many Dockerfiles in one";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "buffet";
        broken = true;
      }) {};
 
@@ -48315,6 +48946,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "bugsnag-hs_0_2_0_9" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, hedgehog, http-client
+     , text, time, unordered-containers
+     }:
+     mkDerivation {
+       pname = "bugsnag-hs";
+       version = "0.2.0.9";
+       sha256 = "0af7xgjcgv5wly2hq0n82paa4qi35xv726y3f44zcvipjh8c4zvq";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring http-client text time unordered-containers
+       ];
+       testHaskellDepends = [ aeson base bytestring hedgehog ];
+       description = "A Bugsnag client for Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "bugsnag-wai" = callPackage
     ({ mkDerivation, base, bugsnag, bytestring, case-insensitive, hspec
      , http-types, iproute, network, text, unordered-containers, wai
@@ -48383,8 +49032,8 @@ self: {
        pname = "bugzilla-redhat";
        version = "1.0.0";
        sha256 = "1g95j03y2sg1fwdf48a05nijqllkd0m7scn1wbfyzvb57q716hlx";
-       revision = "1";
-       editedCabalFile = "1rsn401pzj0vz3fqg0zsc79jmpanjp61caplnb5i0kl1c9glsxz4";
+       revision = "2";
+       editedCabalFile = "1x4vkr7wxwdvzdcam9zawmbc1ssl8ifpyaczimw2h63l47vv4y8b";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -48459,6 +49108,7 @@ self: {
        description = "Tools for working with buildbox benchmark result files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "buildbox-results";
      }) {};
 
   "builder" = callPackage
@@ -48513,6 +49163,7 @@ self: {
        description = "A library and an executable that provide an easy API for a Haskell IDE";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "buildwrapper";
      }) {};
 
   "bullet" = callPackage
@@ -48566,6 +49217,7 @@ self: {
        description = "Bulletproofs are short zero-knowledge proofs without a trusted setup";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bulletproofs-example";
      }) {};
 
   "bulmex" = callPackage
@@ -48611,6 +49263,7 @@ self: {
        description = "Automatically bump package versions, also transitively";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bumper";
        broken = true;
      }) {};
 
@@ -48628,6 +49281,7 @@ self: {
        description = "CLI tool to beautify JSON string";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bunz";
        broken = true;
      }) {};
 
@@ -48647,6 +49301,7 @@ self: {
        description = "List OP_RETURN cryptocurrency transaction outputs";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "burnt-explorer";
      }) {};
 
   "burrito" = callPackage
@@ -48655,8 +49310,8 @@ self: {
      }:
      mkDerivation {
        pname = "burrito";
-       version = "2.0.1.0";
-       sha256 = "1b8c4sdk60sj20rrrhra4hx0f1y1injih4xcg4q19fgaf04chr91";
+       version = "2.0.1.1";
+       sha256 = "01p0sqlhbmwjp4hwi002jaj1kvrkbnycqv0ab36a8n4w2cxs0cip";
        libraryHaskellDepends = [
          base bytestring containers parsec template-haskell text
          transformers
@@ -48783,9 +49438,8 @@ self: {
        testPkgconfigDepends = [ gio-unix ];
        description = "Draw sequence diagrams of D-Bus traffic";
        license = lib.licenses.lgpl21Plus;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "bustle";
      }) {gio-unix = null; inherit (pkgs) libpcap; 
          system-glib = pkgs.glib;};
 
@@ -48855,6 +49509,7 @@ self: {
        description = "butterfly tilings";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "butterflies-flat";
      }) {};
 
   "buttplug-hs-core" = callPackage
@@ -48885,6 +49540,9 @@ self: {
        ];
        description = "Client library for buttplug.io";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "buttplug-example";
+       broken = true;
      }) {};
 
   "bv" = callPackage
@@ -49187,6 +49845,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Patch byte-representable data in a bytestream";
        license = lib.licenses.mit;
+       mainProgram = "bytepatch";
      }) {};
 
   "bytes" = callPackage
@@ -49644,6 +50303,26 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "bytestring-strict-builder_0_4_5_6" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, QuickCheck
+     , quickcheck-instances, rerebase, tasty, tasty-hunit
+     , tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "bytestring-strict-builder";
+       version = "0.4.5.6";
+       sha256 = "0zqi65jpf6f3gyhcg11hfn7b457c3zsmgsyqx8gi9sqh5pzn34kw";
+       libraryHaskellDepends = [ base bytestring ];
+       testHaskellDepends = [
+         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
+         tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ criterion rerebase ];
+       description = "An efficient strict bytestring builder";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "bytestring-substring" = callPackage
     ({ mkDerivation, base, bytestring, pipes, primitive }:
      mkDerivation {
@@ -49965,6 +50644,7 @@ self: {
        description = "Simpe mosquito MQTT binding able to work with the Amazons IoT";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "c-mosquitto";
        broken = true;
      }) {inherit (pkgs) mosquitto;};
 
@@ -50014,6 +50694,7 @@ self: {
        executableHaskellDepends = [ base c0parser ];
        description = "Simple C0 Syntax Check";
        license = "GPL";
+       mainProgram = "c0check";
      }) {};
 
   "c0parser" = callPackage
@@ -50074,6 +50755,7 @@ self: {
        description = "Translate C code into ATS";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "c2ats";
        broken = true;
      }) {};
 
@@ -50101,6 +50783,7 @@ self: {
        ];
        description = "C->Haskell FFI tool that gives some cross-language type safety";
        license = lib.licenses.gpl2Only;
+       mainProgram = "c2hs";
      }) {};
 
   "c2hs-extra" = callPackage
@@ -50138,6 +50821,7 @@ self: {
        testHaskellDepends = [ base here hspec logging monad-logger text ];
        description = "Convert C API header files to .hsc and .hsc.helper.c files";
        license = lib.licenses.bsd3;
+       mainProgram = "c2hsc";
      }) {};
 
   "ca" = callPackage
@@ -50204,6 +50888,7 @@ self: {
        description = "A maintenance command of Haskell cabal packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cab";
        broken = true;
      }) {};
 
@@ -50250,6 +50935,7 @@ self: {
        description = "Check how up-to-date your .cabal dependencies are.";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-audit";
        broken = true;
      }) {};
 
@@ -50289,6 +50975,7 @@ self: {
        description = "A command line program for managing the dependency versions in a cabal file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-bounds";
      }) {};
 
   "cabal-build-programs" = callPackage
@@ -50359,6 +51046,7 @@ self: {
        description = "CI Assistant for Haskell projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-cache";
      }) {};
 
   "cabal-cargs" = callPackage
@@ -50382,6 +51070,7 @@ self: {
        description = "A command line program for extracting compiler arguments from a cabal file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-cargs";
      }) {};
 
   "cabal-clean" = callPackage
@@ -50400,6 +51089,7 @@ self: {
        ];
        description = "Remove outdated cabal build artefacts from `dist-newstyle`";
        license = lib.licenses.bsd3;
+       mainProgram = "cabal-clean";
      }) {};
 
   "cabal-constraints" = callPackage
@@ -50414,6 +51104,7 @@ self: {
        description = "Repeatable builds for cabalized Haskell projects";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-constraints";
        broken = true;
      }) {};
 
@@ -50437,6 +51128,7 @@ self: {
        description = "query tools for the local cabal database";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-db";
        broken = true;
      }) {};
 
@@ -50463,6 +51155,7 @@ self: {
        description = "Create a Debianization for a Cabal package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-debian";
        broken = true;
      }) {};
 
@@ -50480,6 +51173,7 @@ self: {
        description = "Compose a list of a project's transitive dependencies with their licenses";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-dependency-licenses";
        broken = true;
      }) {};
 
@@ -50532,6 +51226,7 @@ self: {
        description = "show dist dir of 'cabal copy/install'";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-dir";
        broken = true;
      }) {};
 
@@ -50568,6 +51263,7 @@ self: {
        description = "Cabal utility";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-edit";
        broken = true;
      }) {};
 
@@ -50592,6 +51288,7 @@ self: {
        ];
        description = "Cabal file access";
        license = lib.licenses.bsd3;
+       mainProgram = "cblfile";
      }) {};
 
   "cabal-file-th" = callPackage
@@ -50633,6 +51330,7 @@ self: {
        ];
        description = "Generate a FlatPak manifest from a Cabal package description";
        license = lib.licenses.bsd3;
+       mainProgram = "cabal-flatpak";
      }) {};
 
   "cabal-fmt" = callPackage
@@ -50660,7 +51358,8 @@ self: {
        doHaddock = false;
        description = "Format .cabal files";
        license = "GPL-3.0-or-later AND BSD-3-Clause";
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "cabal-fmt";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "cabal-ghc-dynflags" = callPackage
@@ -50691,6 +51390,7 @@ self: {
        description = "Set up ghci with options taken from a .cabal file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-ghci";
        broken = true;
      }) {};
 
@@ -50710,6 +51410,7 @@ self: {
        description = "Generate graphs of install-time Cabal dependencies";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-graphdeps";
        broken = true;
      }) {};
 
@@ -50766,6 +51467,7 @@ self: {
        description = "Read information from cabal files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-info";
        broken = true;
      }) {};
 
@@ -50799,7 +51501,8 @@ self: {
        '';
        description = "The command-line interface for Cabal and Hackage";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "cabal";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "cabal-install-bundle" = callPackage
@@ -50820,6 +51523,7 @@ self: {
        description = "The (bundled) command-line interface for Cabal and Hackage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal";
        broken = true;
      }) {inherit (pkgs) zlib;};
 
@@ -50841,6 +51545,7 @@ self: {
        description = "Temporary version of cabal-install for ghc-7.2";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal";
        broken = true;
      }) {};
 
@@ -50862,6 +51567,7 @@ self: {
        description = "Temporary version of cabal-install for ghc-7.4";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal";
        broken = true;
      }) {};
 
@@ -50935,6 +51641,7 @@ self: {
        ];
        description = "Cabal support for creating Mac OSX application bundles";
        license = lib.licenses.bsd3;
+       mainProgram = "macosx-app";
      }) {};
 
   "cabal-meta" = callPackage
@@ -50957,6 +51664,7 @@ self: {
        description = "build multiple packages at once";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-meta";
        broken = true;
      }) {};
 
@@ -50976,6 +51684,7 @@ self: {
        description = "A monitor for cabal builds";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-mon";
        broken = true;
      }) {};
 
@@ -50995,6 +51704,7 @@ self: {
        description = "Avoid Cabal dependency hell by constraining to known good versions. (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-nirvana";
        broken = true;
      }) {};
 
@@ -51007,7 +51717,7 @@ self: {
        libraryHaskellDepends = [ base Cabal lens process ];
        description = "Make Cabal aware of pkg-config package versions";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {};
 
   "cabal-plan" = callPackage
@@ -51037,6 +51747,7 @@ self: {
        ];
        description = "Library and utility for processing cabal's plan.json file";
        license = lib.licenses.gpl2Plus;
+       mainProgram = "cabal-plan";
      }) {};
 
   "cabal-progdeps" = callPackage
@@ -51051,6 +51762,7 @@ self: {
        description = "Show dependencies of program being built in current directory";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-progdeps";
        broken = true;
      }) {};
 
@@ -51090,6 +51802,7 @@ self: {
        ];
        description = "RPM packaging tool for Haskell Cabal-based packages";
        license = lib.licenses.gpl3Only;
+       mainProgram = "cabal-rpm";
      }) {};
 
   "cabal-scripts" = callPackage
@@ -51117,6 +51830,7 @@ self: {
        description = "The user interface for building and installing Cabal packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-setup";
        broken = true;
      }) {};
 
@@ -51135,6 +51849,7 @@ self: {
        ];
        description = "Sign and verify Cabal packages";
        license = lib.licenses.bsd3;
+       mainProgram = "cabal-sign";
      }) {};
 
   "cabal-sort" = callPackage
@@ -51195,6 +51910,7 @@ self: {
        description = "Automated test tool for cabal projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-test";
      }) {};
 
   "cabal-test-bin" = callPackage
@@ -51212,6 +51928,7 @@ self: {
        testHaskellDepends = [ base hspec process regex-posix ];
        description = "A program for finding temporary build file during cabal-test";
        license = lib.licenses.bsd3;
+       mainProgram = "cabal-test-bin";
      }) {};
 
   "cabal-test-compat" = callPackage
@@ -51268,6 +51985,7 @@ self: {
        executableHaskellDepends = [ base directory filepath mtl process ];
        description = "Uninstall cabal packages";
        license = lib.licenses.bsd3;
+       mainProgram = "cabal-uninstall";
      }) {};
 
   "cabal-upload" = callPackage
@@ -51282,6 +52000,7 @@ self: {
        description = "Command-line tool for uploading packages to Hackage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-upload";
        broken = true;
      }) {};
 
@@ -51303,6 +52022,7 @@ self: {
        description = "Create Arch Linux packages from Cabal packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal2arch";
      }) {};
 
   "cabal2doap" = callPackage
@@ -51319,6 +52039,7 @@ self: {
        description = "Cabal to Description-of-a-Project (DOAP)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal2doap";
        broken = true;
      }) {};
 
@@ -51355,6 +52076,7 @@ self: {
        description = "A tool to generate .ghci file from .cabal";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal2ghci";
        broken = true;
      }) {};
 
@@ -51383,6 +52105,7 @@ self: {
        description = "Turn a .cabal file into a .json file";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal2json";
        broken = true;
      }) {};
 
@@ -51422,7 +52145,7 @@ self: {
        '';
        description = "Convert Cabal files into Nix build instructions";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "cabal2spec" = callPackage
@@ -51444,7 +52167,8 @@ self: {
        testHaskellDepends = [ base Cabal filepath tasty tasty-golden ];
        description = "Convert Cabal files into rpm spec files";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "cabal2spec";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "cabal2spec_2_6_3" = callPackage
@@ -51467,7 +52191,8 @@ self: {
        description = "Convert Cabal files into rpm spec files";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "cabal2spec";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "cabalQuery" = callPackage
@@ -51487,6 +52212,7 @@ self: {
        description = "A simple tool to query cabal files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabalQuery";
        broken = true;
      }) {};
 
@@ -51503,6 +52229,7 @@ self: {
        testHaskellDepends = [ base directory doctest filepath process ];
        description = "alias for cabal install from given git repo";
        license = lib.licenses.mit;
+       mainProgram = "cabalg";
      }) {};
 
   "cabalgraph" = callPackage
@@ -51523,6 +52250,7 @@ self: {
        description = "Generate pretty graphs of module trees from cabal files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabalgraph";
        broken = true;
      }) {};
 
@@ -51543,6 +52271,7 @@ self: {
        description = "Provides access to the cabal file data for shell scripts";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabalish";
        broken = true;
      }) {};
 
@@ -51559,6 +52288,7 @@ self: {
        description = "Create mandriva rpm from cabal package";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabalmdvspec";
      }) {};
 
   "cabalrpmdeps" = callPackage
@@ -51588,6 +52318,7 @@ self: {
        description = "Verify installed package version against user-specified constraints";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabalvchk";
        broken = true;
      }) {};
 
@@ -51608,6 +52339,7 @@ self: {
        description = "Cabal binary sandboxes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabin";
        broken = true;
      }) {};
 
@@ -51691,6 +52423,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "A simple library to cache a single IO action with timeout";
        license = lib.licenses.asl20;
+       mainProgram = "test-cachedIO";
      }) {};
 
   "cached-json-file" = callPackage
@@ -51801,7 +52534,8 @@ self: {
        ];
        description = "Command line client for Nix binary cache hosting https://cachix.org";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ domenkozar ];
+       mainProgram = "cachix";
+       maintainers = [ lib.maintainers.domenkozar ];
      }) {inherit (pkgs) nix;};
 
   "cachix-api" = callPackage
@@ -51833,7 +52567,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Servant HTTP API specification for https://cachix.org";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ domenkozar ];
+       maintainers = [ lib.maintainers.domenkozar ];
      }) {};
 
   "cacophony" = callPackage
@@ -51955,6 +52689,7 @@ self: {
        executableHaskellDepends = [ base cairo glib gtk ];
        description = "A template for building new GUI applications using GTK and Cairo";
        license = lib.licenses.bsd3;
+       mainProgram = "cairo-appbase";
      }) {};
 
   "cairo-canvas" = callPackage
@@ -52013,6 +52748,7 @@ self: {
        description = "A build-system library and driver";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cake";
      }) {};
 
   "cake3" = callPackage
@@ -52061,6 +52797,7 @@ self: {
        description = "run turtle like LOGO with lojban";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cakyrespa";
      }) {};
 
   "cal-layout" = callPackage
@@ -52076,6 +52813,7 @@ self: {
        description = "Calendar Layout Algorithm";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bookings-test";
        broken = true;
      }) {};
 
@@ -52133,8 +52871,8 @@ self: {
      }:
      mkDerivation {
        pname = "calamity";
-       version = "0.5.0.0";
-       sha256 = "1sx4dxvk5xcl5x3rnknl5syg65mzrr8shg75yajixsbhimg226zy";
+       version = "0.6.0.0";
+       sha256 = "19m6nz9753hbm1ar6269qrlcxgf90j3x2lxqhq05qhssjg76hrxf";
        libraryHaskellDepends = [
          aeson aeson-optics async base bytestring calamity-commands colour
          concurrent-extra connection containers data-default-class
@@ -52179,6 +52917,7 @@ self: {
        description = "A small compiler for arithmetic expressions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "calc";
      }) {};
 
   "calculator" = callPackage
@@ -52201,6 +52940,7 @@ self: {
        description = "A calculator repl, with variables, functions & Mathematica like dynamic plots";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "calculator";
      }) {};
 
   "caldims" = callPackage
@@ -52222,6 +52962,7 @@ self: {
        description = "Calculation tool and library supporting units";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "caldims";
      }) {};
 
   "caledon" = callPackage
@@ -52240,6 +52981,7 @@ self: {
        description = "a logic programming language based on the calculus of constructions";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "caledon";
        broken = true;
      }) {};
 
@@ -52256,6 +52998,7 @@ self: {
        ];
        description = "List years with the same calendars";
        license = lib.licenses.bsd3;
+       mainProgram = "calendar-recycling";
      }) {};
 
   "calenderweek" = callPackage
@@ -52272,6 +53015,7 @@ self: {
        description = "Commandline tool to get week of the year";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kw";
        broken = true;
      }) {};
 
@@ -52308,10 +53052,8 @@ self: {
      }:
      mkDerivation {
        pname = "call-alloy";
-       version = "0.3";
-       sha256 = "0pf6zdx201pkdzj3iccwj9k3bi0qabpmsn0sfn27mcwdgksn2q7p";
-       revision = "1";
-       editedCabalFile = "0p0y03cw8g2ikh8cx9gn3998viiy30576nkxf77zv84d7qa6d23c";
+       version = "0.3.0.1";
+       sha256 = "1a8fgbaxmvjrp82qjyfgkhv9qi0n7l94zfx3c80c0bd5q758spmp";
        libraryHaskellDepends = [
          base bytestring containers directory extra file-embed filepath
          hashable mtl process split trifecta unix
@@ -52343,6 +53085,7 @@ self: {
        description = "Call Haskell functions from other languages via serialization and dynamic libraries";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "call-haskell-from-anything.so";
        broken = true;
      }) {};
 
@@ -52392,6 +53135,7 @@ self: {
        testHaskellDepends = [ base containers hspec HUnit QuickCheck ];
        description = "HIE-based Haskell call graph and source code visualizer";
        license = lib.licenses.bsd3;
+       mainProgram = "calligraphy";
      }) {};
 
   "camfort" = callPackage
@@ -52429,11 +53173,9 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "CamFort - Cambridge Fortran infrastructure";
        license = lib.licenses.asl20;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "camfort";
        broken = true;
      }) {inherit (pkgs) flint;};
 
@@ -52449,6 +53191,7 @@ self: {
        executableHaskellDepends = [ base bytestring Imlib terminfo ];
        description = "write image files onto 256(or 24bit) color terminals";
        license = lib.licenses.bsd3;
+       mainProgram = "camh";
      }) {};
 
   "campfire" = callPackage
@@ -52514,7 +53257,8 @@ self: {
        ];
        description = "Candid integration";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ nomeata ];
+       mainProgram = "hcandid";
+       maintainers = [ lib.maintainers.nomeata ];
      }) {};
 
   "canon" = callPackage
@@ -52685,6 +53429,7 @@ self: {
        description = "Application for analysis of java source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cantor";
        broken = true;
      }) {};
 
@@ -52727,6 +53472,7 @@ self: {
        description = "CAO Compiler";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cao";
      }) {};
 
   "cap" = callPackage
@@ -52742,6 +53488,7 @@ self: {
        description = "Interprets and debug the cap language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cap";
      }) {};
 
   "capability" = callPackage
@@ -52832,6 +53579,7 @@ self: {
        description = "Cap'n Proto for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "capnpc-haskell";
      }) {};
 
   "capped-list" = callPackage
@@ -52861,6 +53609,7 @@ self: {
        description = "A simple wrapper over cabal-install to operate in project-private mode";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "capri";
        broken = true;
      }) {};
 
@@ -52972,6 +53721,7 @@ self: {
        description = "Simple web-server for organizing car-pooling for an event";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "car-pool";
      }) {};
 
   "caramia" = callPackage
@@ -53032,6 +53782,7 @@ self: {
        description = "Drop emails from threads being watched into special CC folder";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "carboncopy";
      }) {};
 
   "cardano-coin-selection" = callPackage
@@ -53086,6 +53837,7 @@ self: {
        description = "Library utilities for constructing and signing Cardano transactions";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cardano-tx";
        broken = true;
      }) {cardano-binary = null; cardano-crypto = null; 
          cardano-crypto-wrapper = null; cardano-ledger = null; 
@@ -53149,6 +53901,7 @@ self: {
        description = "Carte: A commandline pastebin server";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "carte";
        broken = true;
      }) {};
 
@@ -53179,6 +53932,7 @@ self: {
        description = "Specify Cabal files in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cartel-init";
      }) {};
 
   "cas-hashable" = callPackage
@@ -53442,6 +54196,7 @@ self: {
        testHaskellDepends = [ base HUnit ];
        description = "Convert between different cases";
        license = lib.licenses.bsd3;
+       mainProgram = "case-converter";
      }) {};
 
   "case-insensitive" = callPackage
@@ -53480,6 +54235,7 @@ self: {
        ];
        description = "A simplified, faster way to do case-insensitive matching";
        license = lib.licenses.bsd3;
+       mainProgram = "readme-example";
      }) {};
 
   "cased" = callPackage
@@ -53491,7 +54247,7 @@ self: {
        libraryHaskellDepends = [ base text ];
        description = "Track string casing in its type";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ jb55 ];
+       maintainers = [ lib.maintainers.jb55 ];
      }) {};
 
   "caseof" = callPackage
@@ -54019,6 +54775,7 @@ self: {
        description = "A tool to manage shared cabal-install sandboxes";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "castle";
        broken = true;
      }) {};
 
@@ -54035,6 +54792,7 @@ self: {
        description = "Equation Manipulator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "casui";
      }) {};
 
   "catalyst" = callPackage
@@ -54184,6 +54942,7 @@ self: {
        description = "Simple tool to display text files with line numbers and paging";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "catnplus";
        broken = true;
      }) {};
 
@@ -54269,7 +55028,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Cayenne Low Power Payload";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sorki ];
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "cayley-client" = callPackage
@@ -54347,6 +55106,7 @@ self: {
        description = "Tool to maintain a database of CABAL packages and their dependencies";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cblrepo";
        broken = true;
      }) {};
 
@@ -54369,6 +55129,7 @@ self: {
        ];
        description = "A tool for manipulating CBOR";
        license = lib.licenses.bsd3;
+       mainProgram = "cbor-tool";
      }) {};
 
   "cborg" = callPackage
@@ -54525,6 +55286,7 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion ];
        description = "Extract dependencies from C code";
        license = lib.licenses.bsd3;
+       mainProgram = "cdeps";
      }) {};
 
   "cedict" = callPackage
@@ -54543,6 +55305,7 @@ self: {
        description = "Convenient Chinese phrase & character lookup";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zi4pu3";
        broken = true;
      }) {};
 
@@ -54651,6 +55414,7 @@ self: {
        description = "A tool to build a novel";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "celtchar";
      }) {};
 
   "cerberus" = callPackage
@@ -54679,6 +55443,7 @@ self: {
        description = "Protect and control API access with cerberus";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cerberus";
      }) {};
 
   "cereal" = callPackage
@@ -54976,6 +55741,7 @@ self: {
        description = "cfipu processor for toy brainfuck-like language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cfipu";
      }) {};
 
   "cflp" = callPackage
@@ -55035,6 +55801,7 @@ self: {
        description = "cfopu processor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cfopu";
      }) {};
 
   "cg" = callPackage
@@ -55056,6 +55823,7 @@ self: {
        description = "Parser for categorial grammars";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "CG";
        broken = true;
      }) {};
 
@@ -55147,6 +55915,7 @@ self: {
        ];
        description = "Command line tool";
        license = lib.licenses.gpl2Only;
+       mainProgram = "cgrep";
      }) {};
 
   "cgroup-rts-threads" = callPackage
@@ -55204,6 +55973,7 @@ self: {
        description = "Mining Client for Kadena Chainweb";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chainweb-mining-client";
      }) {};
 
   "chakra" = callPackage
@@ -55244,6 +56014,7 @@ self: {
        ];
        description = "A REST Web Api server template for building (micro)services";
        license = lib.licenses.mit;
+       mainProgram = "chakra-exe";
      }) {};
 
   "chalk" = callPackage
@@ -55274,6 +56045,7 @@ self: {
        description = "Combinators for building and processing 2D images";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chalkboard-server-1_9_0_16";
        broken = true;
      }) {};
 
@@ -55338,6 +56110,7 @@ self: {
        executableHaskellDepends = [ directory ];
        description = "Parse VCS changelogs into ChangeLogs";
        license = lib.licenses.bsd3;
+       mainProgram = "change-monger";
      }) {};
 
   "changelogged" = callPackage
@@ -55367,6 +56140,7 @@ self: {
        ];
        description = "Changelog manager for Git projects";
        license = lib.licenses.bsd3;
+       mainProgram = "changelogged";
      }) {};
 
   "chapelure" = callPackage
@@ -55458,6 +56232,7 @@ self: {
        description = "Rapid prototyping websites with Snap and Heist";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "charade";
      }) {};
 
   "charset" = callPackage
@@ -55484,10 +56259,7 @@ self: {
        libraryHaskellDepends = [ base bytestring ];
        description = "Character set detection using Mozilla's Universal Character Set Detector";
        license = "LGPL";
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
      }) {};
 
   "charsetdetect-ae" = callPackage
@@ -55519,6 +56291,7 @@ self: {
        description = "Command-line utility to draw charts from input data easily";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chart";
      }) {};
 
   "chart-histogram" = callPackage
@@ -55578,6 +56351,7 @@ self: {
        description = "See readme.md";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chart-svg-various";
      }) {};
 
   "chart-unit" = callPackage
@@ -55631,6 +56405,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "charter-exe";
        broken = true;
      }) {};
 
@@ -55707,7 +56482,7 @@ self: {
        ];
        description = "A library of simple NLP algorithms";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "chatty" = callPackage
@@ -55780,6 +56555,7 @@ self: {
        description = "The ChatWork API in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sample-exe";
        broken = true;
      }) {};
 
@@ -55802,6 +56578,7 @@ self: {
        executableHaskellDepends = [ base blaze-html bytestring text ];
        description = "Experimental markdown processor";
        license = lib.licenses.bsd3;
+       mainProgram = "cheapskate";
      }) {};
 
   "cheapskate-highlight" = callPackage
@@ -55859,6 +56636,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cheapskate-terminal";
      }) {};
 
   "check-cfg-ambiguity" = callPackage
@@ -55961,6 +56739,7 @@ self: {
        description = "Generate checklists relevant to a given patch";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "checkmate";
        broken = true;
      }) {};
 
@@ -56144,6 +56923,7 @@ self: {
        description = "Parse and scrape recipe blogs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chez-grater";
        broken = true;
      }) {};
 
@@ -56241,6 +57021,7 @@ self: {
        description = "Helper for the Major System";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chitauri";
      }) {};
 
   "choice" = callPackage
@@ -56282,6 +57063,7 @@ self: {
        description = "Command-line program to choose random element from a stream";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "choose";
      }) {};
 
   "chorale" = callPackage
@@ -56451,6 +57233,7 @@ self: {
        description = "AST + surface language around chr";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chr-term";
      }) {};
 
   "chr-parse" = callPackage
@@ -56515,6 +57298,7 @@ self: {
        description = "neovim package manager";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chromatin";
      }) {};
 
   "chronograph" = callPackage
@@ -56594,6 +57378,7 @@ self: {
        benchmarkHaskellDepends = [ base ];
        description = "Benchmarking tool with focus on comparing results";
        license = lib.licenses.bsd3;
+       mainProgram = "chronos";
      }) {};
 
   "chs-cabal" = callPackage
@@ -56703,6 +57488,7 @@ self: {
        description = "Human-readable storage of text/binary objects";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chunky-test";
        broken = true;
      }) {};
 
@@ -57042,6 +57828,7 @@ self: {
        description = "Implementation of CipherSaber2 RC4 cryptography";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cs2";
      }) {};
 
   "circ" = callPackage
@@ -57113,6 +57900,7 @@ self: {
        ];
        description = "An implementation of the \"circuit breaker\" pattern to disable repeated calls to a failing system";
        license = lib.licenses.bsd3;
+       mainProgram = "circuit-breaker-exe";
      }) {};
 
   "circular" = callPackage
@@ -57130,7 +57918,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion vector ];
        description = "Circular fixed-sized mutable vectors";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "circus" = callPackage
@@ -57185,6 +57973,7 @@ self: {
        ];
        description = "DEPRECATED in favor of webex-teams-api";
        license = lib.licenses.mit;
+       mainProgram = "cisco-spark-api-exe";
      }) {};
 
   "citation-resolve" = callPackage
@@ -57303,6 +58092,7 @@ self: {
        description = "A Pandoc filter for processing bibliographic references with citeproc-hs";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "citeproc-hs";
      }) {};
 
   "cityhash" = callPackage
@@ -57343,6 +58133,7 @@ self: {
        description = "A new Haskeleton package";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cj-token";
        broken = true;
      }) {};
 
@@ -57425,6 +58216,7 @@ self: {
        description = "Simple CLI RPN calculator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clac";
      }) {};
 
   "clafer" = callPackage
@@ -57460,6 +58252,7 @@ self: {
        description = "Compiles Clafer models to other formats: Alloy, JavaScript, JSON, HTML, Dot";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clafer";
      }) {};
 
   "claferIG" = callPackage
@@ -57493,6 +58286,7 @@ self: {
        description = "claferIG is an interactive tool that generates instances of Clafer models";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "claferIG";
      }) {};
 
   "claferwiki" = callPackage
@@ -57567,6 +58361,7 @@ self: {
        description = "Command-line spaced-repetition software";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clanki";
        broken = true;
      }) {};
 
@@ -57685,6 +58480,7 @@ self: {
        description = "Clash: a functional hardware description language - As a library";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "v16-upgrade-primitives";
      }) {};
 
   "clash-lib-hedgehog" = callPackage
@@ -57886,6 +58682,7 @@ self: {
        description = "Automated Clash to Verilator bridge";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clashilator";
      }) {};
 
   "classify" = callPackage
@@ -57929,6 +58726,7 @@ self: {
        description = "Classify sounds produced by Xenopus laevis";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "classify-frog";
      }) {};
 
   "classy-influxdb-simple" = callPackage
@@ -57968,6 +58766,7 @@ self: {
        description = "Typeclass based support for Miso, the Tasty Web Framework for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "classy-miso-demo";
      }) {};
 
   "classy-parallel" = callPackage
@@ -58149,6 +58948,7 @@ self: {
        description = "a command-line interface for adminstrating some aspects of clckwrks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clckwrks-cli";
      }) {};
 
   "clckwrks-dot-com" = callPackage
@@ -58171,6 +58971,7 @@ self: {
        description = "clckwrks.com";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clckwrks-dot-com-server";
      }) {};
 
   "clckwrks-plugin-bugs" = callPackage
@@ -58399,6 +59200,7 @@ self: {
        ];
        description = "Keep your home dir clean by finding old conf files";
        license = lib.licenses.bsd3;
+       mainProgram = "clean-home";
      }) {};
 
   "clean-unions" = callPackage
@@ -58471,6 +59273,7 @@ self: {
        description = "Colorized LESS";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cless";
      }) {};
 
   "cleveland" = callPackage
@@ -58522,6 +59325,7 @@ self: {
        description = "A CSS preprocessor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clevercss";
        broken = true;
      }) {};
 
@@ -58552,6 +59356,7 @@ self: {
        executableHaskellDepends = [ base basement foundation ];
        description = "CLI";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "cli-arguments" = callPackage
@@ -58677,6 +59482,7 @@ self: {
        description = "Toy game (tetris on billiard board). Hipmunk in action.";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "click-clack";
      }) {};
 
   "clickhouse-haskell" = callPackage
@@ -58739,6 +59545,7 @@ self: {
        ];
        description = "Securely store session data in a client-side cookie";
        license = lib.licenses.mit;
+       mainProgram = "clientsession-generate";
      }) {};
 
   "clif" = callPackage
@@ -58791,6 +59598,7 @@ self: {
        description = "A Clifford algebra library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pendulum";
      }) {};
 
   "clifm" = callPackage
@@ -58811,6 +59619,7 @@ self: {
        description = "Command Line Interface File Manager";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clifm";
        broken = true;
      }) {};
 
@@ -58834,6 +59643,7 @@ self: {
        ];
        description = "Building blocks for a GHCi-like REPL with colon-commands";
        license = lib.licenses.bsd3;
+       mainProgram = "climb-demo";
      }) {};
 
   "clingo" = callPackage
@@ -58907,6 +59717,7 @@ self: {
        description = "A parser/generator for Kindle-format clipping files (`My Clippings.txt`),";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clippings2tsv";
      }) {};
 
   "clisparkline" = callPackage
@@ -58955,6 +59766,7 @@ self: {
        description = "Post tweets from stdin";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tweet";
        broken = true;
      }) {};
 
@@ -58973,6 +59785,7 @@ self: {
        ];
        description = "Clone and benchmark Haskell cabal projects";
        license = lib.licenses.bsd3;
+       mainProgram = "cloben";
      }) {};
 
   "clock" = callPackage
@@ -59055,6 +59868,7 @@ self: {
        description = "Clone all github repositories from a given user";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clone-all";
        broken = true;
      }) {};
 
@@ -59222,6 +60036,7 @@ self: {
        description = "A cloud in the file system";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cloudyfs";
      }) {};
 
   "clr-bindings" = callPackage
@@ -59327,6 +60142,7 @@ self: {
        ];
        description = "A GHC linker wrapper tool to workaround a GHC >8.2 bug";
        license = lib.licenses.bsd3;
+       mainProgram = "clr-win-linker";
      }) {};
 
   "cltw" = callPackage
@@ -59340,6 +60156,7 @@ self: {
        executableHaskellDepends = [ base curl mtl random tagsoup ];
        description = "Command line Twitter utility";
        license = lib.licenses.bsd3;
+       mainProgram = "cltw";
      }) {};
 
   "clua" = callPackage
@@ -59358,6 +60175,7 @@ self: {
        description = "C to Lua data wrapper generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clua";
      }) {};
 
   "clumpiness" = callPackage
@@ -59610,6 +60428,7 @@ self: {
        description = "Data model, parser, serialiser and transformations for Content MathML 3";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mathtest";
      }) {};
 
   "cmd-item" = callPackage
@@ -59665,6 +60484,7 @@ self: {
        ];
        description = "Helper to enter cmdargs command lines using a web browser";
        license = lib.licenses.bsd3;
+       mainProgram = "cmdargs-browser";
      }) {};
 
   "cmdlib" = callPackage
@@ -59805,6 +60625,7 @@ self: {
        description = "Write consistent git commit messages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cmt";
        broken = true;
      }) {};
 
@@ -59820,6 +60641,7 @@ self: {
        executableHaskellDepends = [ array base containers ];
        description = "Unification in a Commutative Monoid";
        license = "GPL";
+       mainProgram = "cmu";
      }) {};
 
   "cmv" = callPackage
@@ -59871,6 +60693,7 @@ self: {
        description = "Compiler/Translator for CnC Specification Files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cnc";
      }) {};
 
   "cndict" = callPackage
@@ -59986,6 +60809,7 @@ self: {
        executableHaskellDepends = [ base co-log-core polysemy ];
        description = "Composable Contravariant Comonadic Logging Library";
        license = lib.licenses.mpl20;
+       mainProgram = "play-colog-poly";
      }) {};
 
   "co-log-polysemy-formatting" = callPackage
@@ -60010,6 +60834,7 @@ self: {
        description = "A Polysemy logging effect for high quality (unstructured) logs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -60233,6 +61058,7 @@ self: {
        description = "Cross-platform structure serialisation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "codec-libevent-generate";
        broken = true;
      }) {};
 
@@ -60323,6 +61149,7 @@ self: {
        description = "Command line interface to interact with Codeforces";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cf";
        broken = true;
      }) {};
 
@@ -60343,6 +61170,7 @@ self: {
        description = "Tool that automatically runs arbitrary commands when files change on disk";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "codemonitor";
      }) {};
 
   "codepad" = callPackage
@@ -60415,6 +61243,7 @@ self: {
        description = "A ctags file generator for cabal project dependencies";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "codex";
        broken = true;
      }) {};
 
@@ -60533,6 +61362,7 @@ self: {
        description = "Generate clang-format config based on some existing code base";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "coformat-exe";
      }) {};
 
   "cofunctor" = callPackage
@@ -60571,6 +61401,7 @@ self: {
        description = "Utilities for Cognimeta products (such as perdure). API may change often.";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cognimeta-utils";
      }) {};
 
   "coin" = callPackage
@@ -60595,6 +61426,7 @@ self: {
        description = "Simple account manager";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "coin";
        broken = true;
      }) {};
 
@@ -60635,6 +61467,7 @@ self: {
        description = "Connector library for the coinbase exchange";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sandbox";
      }) {};
 
   "coinbase-pro" = callPackage
@@ -60747,6 +61580,7 @@ self: {
        description = "Colada implements incremental word class class induction using online LDA";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "colada";
      }) {};
 
   "colchis" = callPackage
@@ -60798,6 +61632,7 @@ self: {
        description = "Generate animated 3d objects in COLLADA";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Examples";
        broken = true;
      }) {};
 
@@ -60833,6 +61668,7 @@ self: {
        description = "Collapse the duplication output into clones and return their frequencies";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "collapse-duplication";
      }) {};
 
   "collapse-util" = callPackage
@@ -60847,6 +61683,7 @@ self: {
        description = "utility for collapsing adjacent writes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "collapse";
        broken = true;
      }) {};
 
@@ -61008,6 +61845,7 @@ self: {
        description = "Count colors in images";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "color-counter";
      }) {};
 
   "colorful-monoids" = callPackage
@@ -61034,6 +61872,7 @@ self: {
        executableHaskellDepends = [ ansi-terminal base haskell-lexer ];
        description = "Highligt Haskell source";
        license = lib.licenses.bsd3;
+       mainProgram = "hscolor";
      }) {};
 
   "colorless" = callPackage
@@ -61262,6 +62101,7 @@ self: {
        description = "Commonmark processing in pure haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "comark-hs";
      }) {};
 
   "comark-html" = callPackage
@@ -61405,6 +62245,7 @@ self: {
        description = "SKI Combinator interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lazyi";
        broken = true;
      }) {};
 
@@ -61624,6 +62465,7 @@ self: {
        description = "pattern matching against string based commands";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example1";
        broken = true;
      }) {};
 
@@ -61646,6 +62488,7 @@ self: {
        testHaskellDepends = [ base commandert text unordered-containers ];
        description = "A command line argument/option parser library";
        license = lib.licenses.mit;
+       mainProgram = "task-manager";
      }) {};
 
   "commandert" = callPackage
@@ -61724,6 +62567,7 @@ self: {
        ];
        description = "Command-line commonmark converter and highlighter";
        license = lib.licenses.bsd3;
+       mainProgram = "commonmark";
      }) {};
 
   "commonmark-extensions" = callPackage
@@ -61837,8 +62681,10 @@ self: {
     ({ mkDerivation, base, containers }:
      mkDerivation {
        pname = "commutative-semigroups";
-       version = "0.0.2.0";
-       sha256 = "05nkma7rjxj2l31pzj3sd1lgyswf2jn8a25qnp6k7hcq67x3rhqm";
+       version = "0.1.0.0";
+       sha256 = "06063ayahakj0wdwwzqwbb61cxjrrkpayzmvbvf7pcdsgyn427b6";
+       revision = "1";
+       editedCabalFile = "107qs0srrd88n5hz1v2fwapsr36zr5lnz04lxsicj1mq7ss54zm3";
        libraryHaskellDepends = [ base containers ];
        description = "Commutative semigroups";
        license = lib.licenses.bsd3;
@@ -63193,6 +64039,7 @@ self: {
        description = "Part-of-speech tagger for Croatian";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "concraft-hr";
      }) {};
 
   "concraft-pl" = callPackage
@@ -63222,6 +64069,7 @@ self: {
        description = "Morphological tagger for Polish";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "concraft-pl";
      }) {};
 
   "concrete-haskell" = callPackage
@@ -63303,6 +64151,7 @@ self: {
        description = "A parser driven by a standard RELAX NG schema with concrete syntax extensions";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parse-concrete";
        broken = true;
      }) {};
 
@@ -63380,6 +64229,7 @@ self: {
        ];
        description = "Benchmarks to compare concurrency APIs";
        license = lib.licenses.mit;
+       mainProgram = "makecharts";
      }) {};
 
   "concurrent-barrier" = callPackage
@@ -63447,6 +64297,7 @@ self: {
        testHaskellDepends = [ async base dns hspec ];
        description = "Concurrent DNS cache";
        license = lib.licenses.bsd3;
+       mainProgram = "main";
      }) {};
 
   "concurrent-extra" = callPackage
@@ -63673,6 +64524,7 @@ self: {
        description = "Information retrieval library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "condor";
      }) {};
 
   "condorcet" = callPackage
@@ -64022,6 +64874,7 @@ self: {
        description = "A file-finding conduit that allows user control over traversals";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "find-hs";
        broken = true;
      }) {};
 
@@ -64157,6 +65010,7 @@ self: {
        description = "Conduits for tokenizing streams";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "conduit-tokenize-attoparsec-example";
        broken = true;
      }) {};
 
@@ -64299,6 +65153,7 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "confcrypt";
      }) {};
 
   "conferer" = callPackage
@@ -64583,6 +65438,7 @@ self: {
        ];
        description = "A simple config file swapping tool";
        license = lib.licenses.mit;
+       mainProgram = "confetti";
      }) {};
 
   "conffmt" = callPackage
@@ -64601,6 +65457,7 @@ self: {
        description = "A .conf file formatter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "conffmt";
      }) {};
 
   "confide" = callPackage
@@ -64691,7 +65548,7 @@ self: {
        testHaskellDepends = [ base config-value text ];
        description = "Schema definitions for the config-value package";
        license = lib.licenses.isc;
-       maintainers = with lib.maintainers; [ kiwi ];
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "config-select" = callPackage
@@ -64708,6 +65565,7 @@ self: {
        description = "A small program for swapping out dot files";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "config-select";
      }) {};
 
   "config-value" = callPackage
@@ -64722,7 +65580,7 @@ self: {
        testHaskellDepends = [ base text ];
        description = "Simple, layout-based value language similar to YAML or JSON";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ kiwi ];
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "config-value-getopt" = callPackage
@@ -64813,6 +65671,7 @@ self: {
        ];
        description = "Tools for specifying and parsing configurations";
        license = lib.licenses.mit;
+       mainProgram = "example";
      }) {};
 
   "configurator" = callPackage
@@ -64917,6 +65776,7 @@ self: {
        description = "A command line tool for resolving conflicts of file synchronizers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "confsolve";
        broken = true;
      }) {};
 
@@ -64979,6 +65839,7 @@ self: {
        description = "A BitTorrent client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "conjure";
        broken = true;
      }) {};
 
@@ -65014,6 +65875,7 @@ self: {
        description = "A logger for a concurrent program";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -65087,6 +65949,7 @@ self: {
        description = "Orders, Galois connections, and lattices";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doctest";
        broken = true;
      }) {};
 
@@ -65441,6 +66304,7 @@ self: {
        executableHaskellDepends = [ aeson base constraints ];
        description = "Utility package for constraints";
        license = lib.licenses.bsd3;
+       mainProgram = "readme";
      }) {};
 
   "constrictor" = callPackage
@@ -65645,6 +66509,7 @@ self: {
        description = "Extensive benchmark suite for containers package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "benchmark";
        broken = true;
      }) {};
 
@@ -65756,6 +66621,7 @@ self: {
        ];
        description = "Generate art from context-free grammars";
        license = lib.licenses.bsd3;
+       mainProgram = "examples";
      }) {};
 
   "context-free-grammar" = callPackage
@@ -66442,6 +67308,7 @@ self: {
        description = "Convert the annotation of a gene to another in a delimited file using a variety of different databases";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "convert-annotation";
      }) {};
 
   "convertible" = callPackage
@@ -66782,6 +67649,7 @@ self: {
        description = "Yet another shell monad";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme";
        broken = true;
      }) {};
 
@@ -66815,27 +67683,11 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "compile your own mini functional language with Core";
        license = lib.licenses.mit;
+       mainProgram = "core-compiler-exe";
      }) {};
 
   "core-data" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, core-text
-     , hashable, prettyprinter, scientific, text, unordered-containers
-     , vector
-     }:
-     mkDerivation {
-       pname = "core-data";
-       version = "0.3.2.2";
-       sha256 = "000ffh2lrv5yl9gybx3i8gp66f1vd1w6mhih8bipxf7fzgsn6pik";
-       libraryHaskellDepends = [
-         aeson base bytestring containers core-text hashable prettyprinter
-         scientific text unordered-containers vector
-       ];
-       description = "Convenience wrappers around common data structures and encodings";
-       license = lib.licenses.mit;
-     }) {};
-
-  "core-data_0_3_3_1" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, core-text
      , hashable, hourglass, prettyprinter, scientific, text, time
      , unordered-containers, vector
      }:
@@ -66849,7 +67701,6 @@ self: {
        ];
        description = "Convenience wrappers around common data structures and encodings";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "core-haskell" = callPackage
@@ -66866,6 +67717,7 @@ self: {
        description = "A subset of Haskell using in UCC for teaching purpose";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "core-haskell";
        broken = true;
      }) {};
 
@@ -66890,7 +67742,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "core-program_0_5_0_1" = callPackage
+  "core-program_0_5_0_4" = callPackage
     ({ mkDerivation, async, base, bytestring, core-data, core-text
      , directory, exceptions, filepath, fsnotify, hashable, hourglass
      , mtl, prettyprinter, safe-exceptions, stm, template-haskell
@@ -66899,8 +67751,8 @@ self: {
      }:
      mkDerivation {
        pname = "core-program";
-       version = "0.5.0.1";
-       sha256 = "04bh24maxwa2f082k3x4ixwcdzdc0pxcy0lws7myyl9xd45kdigw";
+       version = "0.5.0.4";
+       sha256 = "1s3b80hx4fzpibh79l42hhpw8lf01s85s5l3xa8jgnv32lisllby";
        libraryHaskellDepends = [
          async base bytestring core-data core-text directory exceptions
          filepath fsnotify hashable hourglass mtl prettyprinter
@@ -66916,16 +67768,16 @@ self: {
     ({ mkDerivation, async, base, bytestring, core-data, core-program
      , core-text, exceptions, http-streams, io-streams, mtl
      , network-info, random, safe-exceptions, scientific, stm
-     , template-haskell, text, unix
+     , template-haskell, text, unix, zlib
      }:
      mkDerivation {
        pname = "core-telemetry";
-       version = "0.2.3.2";
-       sha256 = "08p2ci15sbznz828sbfid8ziqjkv49als1k3s65czyz3q22qf8ar";
+       version = "0.2.3.5";
+       sha256 = "11r1cnxfal8k8ya2qrkr1ywrpcx3f23rh3s1c1agv6q47qxi1kd9";
        libraryHaskellDepends = [
          async base bytestring core-data core-program core-text exceptions
          http-streams io-streams mtl network-info random safe-exceptions
-         scientific stm template-haskell text unix
+         scientific stm template-haskell text unix zlib
        ];
        description = "Advanced telemetry";
        license = lib.licenses.mit;
@@ -66940,23 +67792,6 @@ self: {
      }:
      mkDerivation {
        pname = "core-text";
-       version = "0.3.7.1";
-       sha256 = "11l89p9fn05l8h7dx6mpw4mhwhcxhdl2879lj628bxjal3f2fys3";
-       libraryHaskellDepends = [
-         ansi-terminal base bytestring colour deepseq fingertree hashable
-         prettyprinter template-haskell text text-short
-       ];
-       description = "A rope type based on a finger tree over UTF-8 fragments";
-       license = lib.licenses.mit;
-     }) {};
-
-  "core-text_0_3_7_2" = callPackage
-    ({ mkDerivation, ansi-terminal, base, bytestring, colour, deepseq
-     , fingertree, hashable, prettyprinter, template-haskell, text
-     , text-short
-     }:
-     mkDerivation {
-       pname = "core-text";
        version = "0.3.7.2";
        sha256 = "0ybac107psr558fqyfmc1x8ssfd8mk1cf3v220svi6k6i8qaxi7x";
        libraryHaskellDepends = [
@@ -66965,7 +67800,6 @@ self: {
        ];
        description = "A rope type based on a finger tree over UTF-8 fragments";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "core-warn" = callPackage
@@ -67045,6 +67879,7 @@ self: {
        description = "A bliki written using yesod. Uses pandoc to process files stored in git.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "corebot-bliki";
        broken = true;
      }) {};
 
@@ -67063,6 +67898,7 @@ self: {
        testHaskellDepends = [ base process ];
        description = "Write your main like it can call itself back";
        license = lib.licenses.bsd3;
+       mainProgram = "corecursive-main-exe";
      }) {};
 
   "corenlp-parser" = callPackage
@@ -67160,6 +67996,7 @@ self: {
        description = "A CouchDB view server for Haskell";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "couch-hs";
        broken = true;
      }) {};
 
@@ -67426,7 +68263,7 @@ self: {
        testHaskellDepends = [ base hmatrix tasty tasty-hunit ];
        description = "Well-conditioned estimation of large-dimensional covariance matrices";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "covariance_0_2_0_0" = callPackage
@@ -67442,7 +68279,7 @@ self: {
        description = "Well-conditioned estimation of large-dimensional covariance matrices";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "coverage" = callPackage
@@ -67540,6 +68377,7 @@ self: {
        description = "Build tool for C";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cpkg";
      }) {};
 
   "cplex-hs" = callPackage
@@ -67605,6 +68443,7 @@ self: {
        executableHaskellDepends = [ base directory polyparse time ];
        description = "A liberalised re-implementation of cpp, the C pre-processor";
        license = "LGPL";
+       mainProgram = "cpphs";
      }) {};
 
   "cprng-aes" = callPackage
@@ -67660,8 +68499,8 @@ self: {
     ({ mkDerivation, base, containers, directory, parallel }:
      mkDerivation {
        pname = "cpsa";
-       version = "3.6.10";
-       sha256 = "1fxysn5ag27dzkbw95hdzzgz4nmm38spl96d2xv14lfnrafv6q06";
+       version = "3.6.11";
+       sha256 = "1kqsr0vb9sxg2c5y14k66d381gx6779bns6ybjymgabw98asmm3k";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -67697,6 +68536,7 @@ self: {
        libraryHaskellDepends = [ base data-accessor enumset ];
        description = "Binding for the cpuid machine instruction on x86 compatible processors";
        license = "GPL";
+       platforms = lib.platforms.x86;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -67724,6 +68564,7 @@ self: {
        description = "Modify the cpu frequency on OpenBSD systems";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cpuperf";
        broken = true;
      }) {};
 
@@ -67857,6 +68698,7 @@ self: {
        description = "Example for cqrs package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cqrs-example";
      }) {};
 
   "cqrs-memory" = callPackage
@@ -67985,6 +68827,7 @@ self: {
        description = "Code review tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cr";
        broken = true;
      }) {};
 
@@ -68015,6 +68858,7 @@ self: {
        description = "Crack various integer, floating-point data formats";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "crackNum";
      }) {};
 
   "crackNum" = callPackage
@@ -68032,6 +68876,7 @@ self: {
        ];
        description = "Crack various integer and floating-point data formats";
        license = lib.licenses.bsd3;
+       mainProgram = "crackNum";
      }) {};
 
   "craft" = callPackage
@@ -68164,6 +69009,7 @@ self: {
        description = "HTTP Racing Library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "craze-example";
      }) {};
 
   "crc" = callPackage
@@ -68222,6 +69068,7 @@ self: {
        ];
        description = "Haskell bindings for crc32c";
        license = lib.licenses.bsd3;
+       platforms = lib.platforms.x86;
      }) {};
 
   "crdt" = callPackage
@@ -68308,6 +69155,7 @@ self: {
        description = "Library to access secure credential storage providers";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "credential-store-exe";
        broken = true;
      }) {};
 
@@ -68355,6 +69203,7 @@ self: {
        description = "Secure Credentials Administration";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "credentials";
      }) {};
 
   "crf-chain1" = callPackage
@@ -68476,8 +69325,8 @@ self: {
        pname = "criterion";
        version = "1.5.13.0";
        sha256 = "19vrlldgw2kz5426j0iwsvvhxkbnrnan859vr6ryqh13nrg59a72";
-       revision = "1";
-       editedCabalFile = "1xpbvax71yrnilq4iixjfi3by2n8wz5r5nb2r4v9wn85xz0r8dwh";
+       revision = "2";
+       editedCabalFile = "09s70kqkp1j78idaqrpnz8v870vy6xyclnpz9g4x70cr4r67lqkd";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -68499,6 +69348,7 @@ self: {
        ];
        description = "Robust, reliable performance measurement and analysis";
        license = lib.licenses.bsd3;
+       mainProgram = "criterion-report";
      }) {};
 
   "criterion-cmp" = callPackage
@@ -68518,6 +69368,7 @@ self: {
        description = "A simple tool for comparing in Criterion benchmark results";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "criterion-cmp";
        broken = true;
      }) {};
 
@@ -68541,6 +69392,7 @@ self: {
        description = "A simple tool for visualising differences in Criterion benchmark results";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "criterion-compare";
        broken = true;
      }) {};
 
@@ -68605,6 +69457,7 @@ self: {
        description = "Convert criterion output to HTML reports";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "criterion-to-html";
        broken = true;
      }) {};
 
@@ -68686,6 +69539,7 @@ self: {
        description = "An offline renderer supporting ray tracing and photon mapping";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "crocodile";
        broken = true;
      }) {};
 
@@ -68797,6 +69651,7 @@ self: {
        description = "A runghc replacement with transparent caching";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "crunghc";
        broken = true;
      }) {};
 
@@ -68968,6 +69823,7 @@ self: {
        testHaskellDepends = [ base HUnit QuickCheck ];
        description = "An Enigma machine simulator with display";
        license = lib.licenses.bsd3;
+       mainProgram = "enigma";
      }) {};
 
   "crypto-keys-ssh" = callPackage
@@ -69004,6 +69860,7 @@ self: {
        description = "Multihash library on top of cryptonite crypto library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mh";
        broken = true;
      }) {};
 
@@ -69729,6 +70586,7 @@ self: {
        description = "Analytical CSG (Constructive Solid Geometry) library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "csg-raycaster";
        broken = true;
      }) {};
 
@@ -70100,6 +70958,7 @@ self: {
        ];
        description = "A small program that will read csv files and create qif files";
        license = lib.licenses.bsd3;
+       mainProgram = "csv-to-qif";
      }) {};
 
   "ctemplate" = callPackage
@@ -70203,6 +71062,7 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "Implementation of Univalence in Cubical Sets";
        license = lib.licenses.mit;
+       mainProgram = "cubical";
      }) {};
 
   "cubicbezier" = callPackage
@@ -70266,6 +71126,7 @@ self: {
        description = "3D Yampa/GLUT Puzzle Game";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cuboid";
        broken = true;
      }) {};
 
@@ -70318,6 +71179,7 @@ self: {
        description = "Pure and impure Cuckoo Filter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "benchmarks";
        broken = true;
      }) {};
 
@@ -70340,6 +71202,7 @@ self: {
        description = "FFI binding to the CUDA interface for programming NVIDIA GPUs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nvidia-device-query";
      }) {};
 
   "cudd" = callPackage
@@ -70468,6 +71331,7 @@ self: {
        description = "A framework for declaratively writing curl based API tests";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "curl-runnings";
        broken = true;
      }) {};
 
@@ -70625,6 +71489,7 @@ self: {
        description = "Compile the functional logic language Curry to several intermediate formats";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "curry-frontend";
        broken = true;
      }) {};
 
@@ -70646,6 +71511,7 @@ self: {
        description = "A package for simple, fast radiocarbon calibration";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "currycarbon";
        broken = true;
      }) {};
 
@@ -70730,6 +71596,7 @@ self: {
        description = "Terminal tool for viewing tabular data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cursedcsv";
      }) {};
 
   "cursor" = callPackage
@@ -70942,10 +71809,9 @@ self: {
        testToolDepends = [ c2hs ];
        description = "Cuts out uninteresting parts of videos by detecting silences";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cut-the-crap";
        broken = true;
      }) {pocketsphinx = null; sphinxbase = null;};
 
@@ -70964,6 +71830,7 @@ self: {
        ];
        description = "Cut files according to a position list";
        license = lib.licenses.bsd3;
+       mainProgram = "cutter";
      }) {};
 
   "cv-combinators" = callPackage
@@ -70984,6 +71851,7 @@ self: {
        description = "Functional Combinators for Computer Vision";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test-cv-combinators";
      }) {};
 
   "cve" = callPackage
@@ -71024,6 +71892,7 @@ self: {
        ];
        description = "multi-dimensional arrays";
        license = lib.licenses.bsd3;
+       mainProgram = "cybus-exe";
      }) {};
 
   "cyclotomic" = callPackage
@@ -71142,7 +72011,7 @@ self: {
        executableHaskellDepends = [ base c-storable-deriving vect Win32 ];
        description = "A raw binding for the directX 11";
        license = lib.licenses.mit;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {D3DCompiler = null; d3d11 = null; d3dx11 = null; 
          d3dxof = null; dxgi = null; dxguid = null;};
 
@@ -71258,6 +72127,7 @@ self: {
        description = "Basic Slack bot framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "danibot";
        broken = true;
      }) {};
 
@@ -71290,6 +72160,7 @@ self: {
        description = "Dao is meta programming language with its own built-in interpreted language, designed with artificial intelligence applications in mind";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dao";
        broken = true;
      }) {};
 
@@ -71310,6 +72181,7 @@ self: {
        description = "Prints a series of dates";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dapi";
      }) {};
 
   "darcs" = callPackage
@@ -71359,6 +72231,7 @@ self: {
        '';
        description = "a distributed, interactive, smart revision control system";
        license = lib.licenses.gpl2Plus;
+       mainProgram = "darcs";
      }) {};
 
   "darcs-benchmark" = callPackage
@@ -71382,6 +72255,7 @@ self: {
        description = "Comparative benchmark suite for darcs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "darcs-benchmark";
      }) {};
 
   "darcs-beta" = callPackage
@@ -71414,6 +72288,7 @@ self: {
        description = "a distributed, interactive, smart revision control system";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "darcs";
      }) {inherit (pkgs) curl;};
 
   "darcs-buildpackage" = callPackage
@@ -71456,6 +72331,7 @@ self: {
        description = "David's Advanced Version Control System";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "darcs";
        broken = true;
      }) {inherit (pkgs) curl; inherit (pkgs) ncurses; 
          inherit (pkgs) zlib;};
@@ -71478,6 +72354,7 @@ self: {
        description = "Import/export git fast-import streams to/from darcs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "darcs-fastconvert";
      }) {};
 
   "darcs-graph" = callPackage
@@ -71497,6 +72374,7 @@ self: {
        description = "Generate graphs of darcs repository activity";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "darcs-graph";
        broken = true;
      }) {};
 
@@ -71516,6 +72394,7 @@ self: {
        description = "Darcs repository monitor (sends email)";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "darcs-monitor";
        broken = true;
      }) {};
 
@@ -71548,6 +72427,7 @@ self: {
        description = "Outputs dependencies of darcs patches in dot format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "darcs2dot";
        broken = true;
      }) {};
 
@@ -71628,6 +72508,7 @@ self: {
        description = "Utility and parser for DarkPlaces demo files";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "demoinfo";
      }) {};
 
   "darkplaces-rcon" = callPackage
@@ -71676,6 +72557,7 @@ self: {
        description = "Darplaces rcon utility";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "drcon";
      }) {};
 
   "darkplaces-text" = callPackage
@@ -71716,6 +72598,7 @@ self: {
        description = "Convert package Haddock to Dash docsets (IDE docs)";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dash-haskell";
      }) {};
 
   "data-accessor" = callPackage
@@ -72395,6 +73278,7 @@ self: {
        description = "Embed files and other binary blobs inside executables without Template Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "embedtool";
        broken = true;
      }) {};
 
@@ -72481,6 +73365,7 @@ self: {
        testHaskellDepends = [ base containers data-default hspec ];
        description = "Generate data-files Cabal file field from existing files";
        license = lib.licenses.bsd3;
+       mainProgram = "data-files-gen";
      }) {};
 
   "data-filter" = callPackage
@@ -72744,6 +73629,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Json Token datatype";
        license = lib.licenses.bsd3;
+       mainProgram = "data-json-token-exe";
      }) {};
 
   "data-kiln" = callPackage
@@ -72839,7 +73725,7 @@ self: {
        libraryHaskellDepends = [ base mtl template-haskell ];
        description = "Simple lenses, minimum dependencies";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ sorki ];
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "data-lens-template" = callPackage
@@ -72924,6 +73810,7 @@ self: {
        ];
        description = "A Haskell implementation of MessagePack";
        license = lib.licenses.bsd3;
+       mainProgram = "msgpack-parser";
      }) {};
 
   "data-msgpack-types" = callPackage
@@ -73070,6 +73957,7 @@ self: {
        description = "Read PDF form fields";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pdfreader";
        broken = true;
      }) {};
 
@@ -73351,7 +74239,7 @@ self: {
        ];
        description = "ARM SVD and CubeMX XML parser and pretty printer for STM32 family";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sorki ];
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "data-store" = callPackage
@@ -73421,6 +74309,7 @@ self: {
        description = "Program that infers the fastest data structure available for your program";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dsinf";
      }) {};
 
   "data-sword" = callPackage
@@ -73718,6 +74607,7 @@ self: {
        description = "Datadog tracing client and mock agent";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "datadog-agent";
      }) {};
 
   "dataenc" = callPackage
@@ -73764,6 +74654,7 @@ self: {
        description = "Fixing data-flow problems";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "firstfollow-example";
      }) {};
 
   "dataflow" = callPackage
@@ -73788,6 +74679,7 @@ self: {
        description = "Generate Graphviz documents from a Haskell representation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dataflow";
      }) {};
 
   "dataflower" = callPackage
@@ -73833,6 +74725,7 @@ self: {
        description = "An implementation of datalog in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "datalog-repl";
        broken = true;
      }) {};
 
@@ -73852,6 +74745,7 @@ self: {
        description = "Tool to help pack files into the minimum number of CDs/DVDs/etc";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "datapacker";
        broken = true;
      }) {};
 
@@ -74022,6 +74916,7 @@ self: {
        description = "Generates DDL suggestions based on a CSV file";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dawdle";
        broken = true;
      }) {};
 
@@ -74110,6 +75005,7 @@ self: {
        description = "Decompiler Bytecode Java";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dbjava";
      }) {};
 
   "dbm" = callPackage
@@ -74129,6 +75025,7 @@ self: {
        description = "A *simple* database migration tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dbm";
        broken = true;
      }) {};
 
@@ -74159,6 +75056,7 @@ self: {
        description = "An implementation of relational database \"migrations\"";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "moo";
        broken = true;
      }) {};
 
@@ -74182,6 +75080,7 @@ self: {
        description = "The dbmigrations tool built for MySQL databases";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "moo-mysql";
        broken = true;
      }) {};
 
@@ -74202,6 +75101,7 @@ self: {
        description = "The dbmigrations tool built for PostgreSQL databases";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "moo-postgresql";
        broken = true;
      }) {};
 
@@ -74218,6 +75118,7 @@ self: {
        description = "The dbmigrations tool built for SQLite databases";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "moo-sqlite";
        broken = true;
      }) {};
 
@@ -74325,6 +75226,7 @@ self: {
        ];
        description = "Expose a dbus server to control hslogger";
        license = lib.licenses.bsd3;
+       mainProgram = "dbus-hslogger-client";
      }) {};
 
   "dbus-qq" = callPackage
@@ -74378,6 +75280,7 @@ self: {
        ];
        description = "Generate bindings for DBus calls by using DBus introspection and dbus-th";
        license = lib.licenses.bsd3;
+       mainProgram = "dbus-introspect-hs";
      }) {};
 
   "dclabel" = callPackage
@@ -74435,6 +75338,7 @@ self: {
        description = "DCPU-16 Emulator & Assembler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dcpu16-exe";
        broken = true;
      }) {};
 
@@ -74721,6 +75625,7 @@ self: {
        description = "Disciplined Disciple Compiler test driver and buildbot";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ddc-war";
      }) {};
 
   "ddci-core" = callPackage
@@ -74740,6 +75645,7 @@ self: {
        description = "Disciple Core language interactive interpreter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ddci-core";
      }) {};
 
   "dde" = callPackage
@@ -74792,6 +75698,7 @@ self: {
        description = "detect dead code in haskell projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dead-code-detection";
        broken = true;
      }) {};
 
@@ -74894,6 +75801,7 @@ self: {
        executableHaskellDepends = [ base filepath transformers ];
        description = "Debian package build sequence tools";
        license = lib.licenses.bsd3;
+       mainProgram = "odebuild";
      }) {};
 
   "debug" = callPackage
@@ -74923,6 +75831,7 @@ self: {
        description = "Simple trace-based debugger";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "debug-pp";
      }) {};
 
   "debug-diff" = callPackage
@@ -74974,6 +75883,7 @@ self: {
        description = "secure remote debugging";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "debug-me";
        broken = true;
      }) {};
 
@@ -74992,6 +75902,7 @@ self: {
        description = "A preprocessor for the debug package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "debug-pp";
        broken = true;
      }) {debug-hoed = null;};
 
@@ -75031,6 +75942,7 @@ self: {
        description = "More useful trace functions for investigating bugs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
        broken = true;
      }) {};
 
@@ -75191,6 +76103,7 @@ self: {
        ];
        description = "Decode a UTF-8 byte stream on standard input";
        license = lib.licenses.mit;
+       mainProgram = "decode-utf8";
      }) {};
 
   "decoder-conduit" = callPackage
@@ -75227,6 +76140,7 @@ self: {
        description = "A type-checker for the λΠ-modulo calculus";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dedukti";
      }) {};
 
   "deep-map" = callPackage
@@ -75304,6 +76218,7 @@ self: {
        ];
        description = "Call DeepL to translate you files";
        license = lib.licenses.bsd3;
+       mainProgram = "deepl";
      }) {};
 
   "deeplearning-hs" = callPackage
@@ -75332,6 +76247,7 @@ self: {
        description = "Deep Learning in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "deeplearning_demonstration";
      }) {};
 
   "deepseq_1_4_7_0" = callPackage
@@ -75659,6 +76575,7 @@ self: {
        description = "Tests for deka, decimal floating point arithmetic";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "deka-dectest";
      }) {};
 
   "delaunay" = callPackage
@@ -75782,6 +76699,7 @@ self: {
        description = "Online entropy-based model of lexical category acquisition";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "delta-h";
      }) {};
 
   "delude" = callPackage
@@ -75824,6 +76742,7 @@ self: {
        description = "Functions supporting bulk file and directory name normalization";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "denominate";
        broken = true;
      }) {};
 
@@ -76200,6 +77119,7 @@ self: {
        description = "A simple configuration management tool for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "depends";
      }) {};
 
   "dephd" = callPackage
@@ -76362,6 +77282,7 @@ self: {
        description = "A program and library to derive instances for data types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "derive";
        broken = true;
      }) {};
 
@@ -76440,6 +77361,7 @@ self: {
        description = "derive Semigroup/Monoid/IsList";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-derive-monoid";
        broken = true;
      }) {};
 
@@ -76527,6 +77449,8 @@ self: {
        pname = "deriving-aeson";
        version = "0.2.8";
        sha256 = "0f59ar4cax7g0h6wrk8ckni7i4gw5wls5ybzbrji2a0qpd7q5lrd";
+       revision = "1";
+       editedCabalFile = "0pwx7lmdhpipg9ksqkz6xpjzh1aw2hip8y3jsk20ndl4wdzvxak5";
        libraryHaskellDepends = [ aeson base ];
        testHaskellDepends = [ aeson base bytestring ];
        description = "Type driven generic aeson instance customisation";
@@ -76631,6 +77555,7 @@ self: {
        testHaskellDepends = [ base HUnit ];
        description = "Parse and render JSON simply";
        license = lib.licenses.mit;
+       mainProgram = "derulo";
      }) {};
 
   "describe" = callPackage
@@ -76700,6 +77625,7 @@ self: {
        description = "Library, interpreter, and CLI for Descript programming language";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "descript-cli";
      }) {};
 
   "descriptive" = callPackage
@@ -76739,6 +77665,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "a simple build tool for OCaml projects";
        license = lib.licenses.bsd3;
+       mainProgram = "desert";
      }) {};
 
   "despair" = callPackage
@@ -76827,6 +77754,7 @@ self: {
        description = "Markov chain text generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "detrospector";
        broken = true;
      }) {};
 
@@ -76842,6 +77770,7 @@ self: {
        description = "Get rid of unicode (utf-8) symbols in Haskell sources";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "deunicode";
        broken = true;
      }) {};
 
@@ -76862,6 +77791,7 @@ self: {
        description = "A small tool to make it easier to update program managed by Angel";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "devil";
        broken = true;
      }) {};
 
@@ -76974,6 +77904,7 @@ self: {
        description = "A generic data integrity layer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dfinity-radix-tree-example";
      }) {inherit (pkgs) leveldb;};
 
   "dfrac" = callPackage
@@ -77005,6 +77936,7 @@ self: {
        description = "Build Debian From Scratch CD/DVD images";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dfsbuild";
        broken = true;
      }) {};
 
@@ -77085,7 +78017,8 @@ self: {
        description = "A configuration language guaranteed to terminate";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall_1_38_1" = callPackage
@@ -77143,7 +78076,8 @@ self: {
        description = "A configuration language guaranteed to terminate";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall" = callPackage
@@ -77200,7 +78134,8 @@ self: {
        doCheck = false;
        description = "A configuration language guaranteed to terminate";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall_1_41_1" = callPackage
@@ -77283,7 +78218,8 @@ self: {
        description = "A configuration language guaranteed to terminate";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-bash" = callPackage
@@ -77307,7 +78243,8 @@ self: {
        ];
        description = "Compile Dhall to Bash";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-to-bash";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-bash_1_0_40" = callPackage
@@ -77330,7 +78267,8 @@ self: {
        description = "Compile Dhall to Bash";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-to-bash";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-check" = callPackage
@@ -77349,6 +78287,7 @@ self: {
        description = "Check all dhall files in a project";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dhall-check";
        broken = true;
      }) {};
 
@@ -77412,7 +78351,8 @@ self: {
        ];
        description = "Generate HTML docs from a dhall package";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-docs";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-fly" = callPackage
@@ -77446,6 +78386,7 @@ self: {
        description = "Translate concourse config from Dhall to YAML";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dhall-fly";
        broken = true;
      }) {};
 
@@ -77478,7 +78419,7 @@ self: {
        ];
        description = "Convert between Dhall and JSON or YAML";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-json_1_7_10" = callPackage
@@ -77509,7 +78450,7 @@ self: {
        description = "Convert between Dhall and JSON or YAML";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-lex" = callPackage
@@ -77560,7 +78501,8 @@ self: {
        ];
        description = "Language Server Protocol (LSP) server for Dhall";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-lsp-server";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-nix" = callPackage
@@ -77584,7 +78526,8 @@ self: {
        ];
        description = "Dhall to Nix compiler";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-to-nix";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-nix_1_1_24" = callPackage
@@ -77607,7 +78550,8 @@ self: {
        description = "Dhall to Nix compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-to-nix";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-nixpkgs" = callPackage
@@ -77630,7 +78574,8 @@ self: {
        ];
        description = "Convert Dhall projects to Nix packages";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-to-nixpkgs";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-openapi" = callPackage
@@ -77655,7 +78600,8 @@ self: {
        ];
        description = "Convert an OpenAPI specification to a Dhall package";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "openapi-to-dhall";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-recursive-adt" = callPackage
@@ -77694,7 +78640,8 @@ self: {
        description = "Template text using Dhall";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-to-text";
+       maintainers = [ lib.maintainers.Gabriel439 ];
        broken = true;
      }) {};
 
@@ -77716,6 +78663,7 @@ self: {
        ];
        description = "Render dhall text with shell commands as function arguments";
        license = lib.licenses.mit;
+       mainProgram = "dhall-text-shell";
      }) {};
 
   "dhall-to-cabal" = callPackage
@@ -77798,7 +78746,7 @@ self: {
        ];
        description = "Convert between Dhall and YAML";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhcp-lease-parser" = callPackage
@@ -77852,6 +78800,7 @@ self: {
        description = "Dhall/YAML configurable concurrent integration test executor";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dhrun";
        broken = true;
      }) {};
 
@@ -78016,7 +78965,7 @@ self: {
        doHaddock = false;
        description = "Embedded domain-specific language for declarative vector graphics";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "diagrams-boolean" = callPackage
@@ -78057,6 +79006,7 @@ self: {
        ];
        description = "Braille diagrams with plain text";
        license = lib.licenses.bsd3;
+       mainProgram = "brldia";
      }) {};
 
   "diagrams-builder" = callPackage
@@ -78243,6 +79193,7 @@ self: {
        description = "Preprocessor for embedding diagrams in Haddock documentation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "diagrams-haddock";
      }) {};
 
   "diagrams-hsqml" = callPackage
@@ -78362,6 +79313,7 @@ self: {
        description = "A Pandoc filter to express diagrams inline using the Haskell EDSL _Diagrams_";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "diagrams-pandoc";
      }) {};
 
   "diagrams-pdf" = callPackage
@@ -78621,6 +79573,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "I/O in Haskell Report 1.2";
        license = lib.licenses.bsd3;
+       mainProgram = "examples";
      }) {};
 
   "dib" = callPackage
@@ -78645,6 +79598,7 @@ self: {
        description = "A simple, forward build system";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dib";
        broken = true;
      }) {};
 
@@ -78661,6 +79615,7 @@ self: {
        libraryHaskellDepends = [ base parsec random-fu transformers ];
        description = "Simplistic D&D style dice-rolling system";
        license = lib.licenses.publicDomain;
+       mainProgram = "dice";
      }) {};
 
   "dice-entropy-conduit" = callPackage
@@ -78694,6 +79649,7 @@ self: {
        description = "Convert a Diceware wordlist into a printer-ready LaTeX file";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dice2tex";
        broken = true;
      }) {};
 
@@ -78739,6 +79695,7 @@ self: {
        description = "Tools to handle StarDict dictionaries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bench";
        broken = true;
      }) {};
 
@@ -78769,6 +79726,7 @@ self: {
        description = "Parsec parsers for the DICT format produced by dictfmt -t";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dictparser";
        broken = true;
      }) {};
 
@@ -78876,6 +79834,7 @@ self: {
        description = "Diff two .cabal files syntactically";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "diffcabal";
        broken = true;
      }) {};
 
@@ -78942,6 +79901,7 @@ self: {
        description = "Finds out whether an entity comes from different distributions (statuses)";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "differential";
      }) {};
 
   "diffmap" = callPackage
@@ -79310,6 +80270,7 @@ self: {
        ];
        description = "ASCII based Diagram drawing in Haskell (Idea based on ditaa)";
        license = lib.licenses.gpl2Only;
+       mainProgram = "dihaa";
      }) {};
 
   "dijkstra-simple" = callPackage
@@ -79428,6 +80389,7 @@ self: {
        description = "Dingo Example";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dingo-example";
      }) {};
 
   "dingo-widgets" = callPackage
@@ -79495,6 +80457,7 @@ self: {
        ];
        description = "Gemini client";
        license = lib.licenses.gpl3Only;
+       mainProgram = "diohsc";
      }) {};
 
   "diophantine" = callPackage
@@ -79549,6 +80512,7 @@ self: {
        description = "Play Diplomacy over HTTP";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "diplomacy-server";
      }) {};
 
   "dir-traverse" = callPackage
@@ -79741,6 +80705,7 @@ self: {
        description = "Recursively build, navigate, and operate on a tree of directory contents";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme";
      }) {};
 
   "directory-layout" = callPackage
@@ -79805,6 +80770,7 @@ self: {
        description = "Deletes a directory and retains its contents in the parent directory";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "direm";
        broken = true;
      }) {};
 
@@ -79838,7 +80804,7 @@ self: {
        testHaskellDepends = [ base hspec log-domain mwc-random vector ];
        description = "Multivariate Dirichlet distribution";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "dirstream" = callPackage
@@ -79856,7 +80822,7 @@ self: {
        ];
        description = "Easily stream directory contents in constant memory";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dirtree" = callPackage
@@ -79928,6 +80894,7 @@ self: {
        description = "Functional programming language for teaching discrete math";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "disco";
      }) {};
 
   "discogs-haskell" = callPackage
@@ -80004,6 +80971,7 @@ self: {
        executableHaskellDepends = [ base text unliftio ];
        description = "Write bots for Discord in Haskell";
        license = lib.licenses.mit;
+       mainProgram = "ping-pong";
      }) {};
 
   "discord-haskell-voice" = callPackage
@@ -80081,6 +81049,7 @@ self: {
        description = "Discord verification bot";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "discord-register-exe";
      }) {};
 
   "discord-rest" = callPackage
@@ -80234,6 +81203,35 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "discrimination_0_5" = callPackage
+    ({ mkDerivation, array, base, containers, contravariant, criterion
+     , deepseq, ghc-bignum, ghc-prim, hashable, primitive, promises
+     , QuickCheck, quickcheck-instances, splitmix, tasty
+     , tasty-quickcheck, transformers, unordered-containers, vector
+     , vector-algorithms
+     }:
+     mkDerivation {
+       pname = "discrimination";
+       version = "0.5";
+       sha256 = "1qq7fs1dsfqgf4969gksqcp3swcx0wbzdh66a89fv78k6y94g0pc";
+       libraryHaskellDepends = [
+         array base containers contravariant deepseq ghc-bignum ghc-prim
+         hashable primitive promises transformers
+       ];
+       testHaskellDepends = [
+         base containers criterion deepseq hashable QuickCheck
+         quickcheck-instances splitmix tasty tasty-quickcheck
+         unordered-containers vector vector-algorithms
+       ];
+       benchmarkHaskellDepends = [
+         base containers criterion deepseq ghc-prim hashable primitive
+         splitmix unordered-containers vector vector-algorithms
+       ];
+       description = "Fast generic linear-time sorting, joins and container construction";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "disjoint-containers" = callPackage
     ({ mkDerivation, aeson, base, containers, doctest, enum-types
      , QuickCheck, quickcheck-classes, quickcheck-enum-instances
@@ -80376,6 +81374,7 @@ self: {
        description = "Generate/Upload cabal package to Hackage";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dist-upload";
        broken = true;
      }) {};
 
@@ -80424,6 +81423,7 @@ self: {
        description = "Serializable closures for distributed programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-client-server";
        broken = true;
      }) {};
 
@@ -80757,6 +81757,7 @@ self: {
        description = "Peer-to-peer node discovery for Cloud Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jollycloud";
      }) {};
 
   "distributed-process-platform" = callPackage
@@ -81035,7 +82036,7 @@ self: {
        testHaskellDepends = [ base deepseq hspec lens ];
        description = "Types and functions to manipulate the Nixpkgs distribution";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "distribution-nixpkgs_1_7_0" = callPackage
@@ -81057,7 +82058,7 @@ self: {
        description = "Types and functions to manipulate the Nixpkgs distribution";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "distribution-opensuse" = callPackage
@@ -81079,6 +82080,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Types, functions, and tools to manipulate the openSUSE distribution";
        license = lib.licenses.bsd3;
+       mainProgram = "guess-changelog";
      }) {};
 
   "distribution-plot" = callPackage
@@ -81160,6 +82162,7 @@ self: {
        description = "Quantify the diversity of a population";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "diversity";
      }) {};
 
   "dixi" = callPackage
@@ -81198,6 +82201,7 @@ self: {
        description = "A wiki implemented with a firm theoretical foundation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dixi";
      }) {};
 
   "djembe" = callPackage
@@ -81230,6 +82234,7 @@ self: {
        ];
        description = "Generate Haskell code from a type";
        license = lib.licenses.bsd3;
+       mainProgram = "djinn";
      }) {};
 
   "djinn-ghc" = callPackage
@@ -81283,8 +82288,8 @@ self: {
      }:
      mkDerivation {
        pname = "dl-fedora";
-       version = "0.9.2";
-       sha256 = "1x48nrgz34a3kyfkv126jscbjv5yra8h0csrb6sw8f9jw5x3spss";
+       version = "0.9.3";
+       sha256 = "17b9l6xshndy57i55bl6dnljh395mmcwlmjr3nygl30blrlmyz9y";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -81296,6 +82301,7 @@ self: {
        description = "Fedora image download tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dl-fedora";
      }) {};
 
   "dlist" = callPackage
@@ -81384,6 +82390,7 @@ self: {
        description = "AVAYA DMCC API bindings and WebSockets server for AVAYA";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dmcc-ws";
        broken = true;
      }) {};
 
@@ -81420,6 +82427,7 @@ self: {
        description = "dmenu script for killing applications. Sortable by process id or CPU/MEM usage.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dmenu-pkill";
      }) {};
 
   "dmenu-pmount" = callPackage
@@ -81438,6 +82446,7 @@ self: {
        description = "Mounting and unmounting linux devices as user with dmenu and pmount";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dmenu-pmount";
      }) {};
 
   "dmenu-search" = callPackage
@@ -81456,6 +82465,7 @@ self: {
        description = "dmenu script for searching the web with customizable search engines";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dmenu-search";
      }) {};
 
   "dns" = callPackage
@@ -81515,6 +82525,7 @@ self: {
        description = "Caching DNS resolver library and mass DNS resolver utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "massdns";
      }) {};
 
   "dnsrbl" = callPackage
@@ -81692,6 +82703,7 @@ self: {
        description = "Helps to order the 7 or less Ukrainian words to obtain somewhat suitable for poetry or music text";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dobutokO-poetry";
      }) {};
 
   "dobutokO-poetry-general" = callPackage
@@ -81745,6 +82757,7 @@ self: {
        description = "Helps to create experimental music from a file (or its part) and a Ukrainian text";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dobutokO2";
      }) {};
 
   "dobutokO3" = callPackage
@@ -81805,6 +82818,7 @@ self: {
        description = "Document review Web application, like http://book.realworldhaskell.org/";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doc-review";
      }) {};
 
   "doccheck" = callPackage
@@ -81824,6 +82838,7 @@ self: {
        description = "Checks Haddock comments for pitfalls and version changes";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doccheck";
        broken = true;
      }) {};
 
@@ -81844,6 +82859,7 @@ self: {
        description = "Generate an HTML index of installed Haskell packages and their documentation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "docidx";
        broken = true;
      }) {};
 
@@ -81903,6 +82919,7 @@ self: {
        description = "Builds a docker image and caches all of its intermediate stages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "docker-build-cacher";
        broken = true;
      }) {};
 
@@ -81938,6 +82955,7 @@ self: {
        description = "A build tool for multiple docker image layers";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dockercook";
        broken = true;
      }) {};
 
@@ -82154,6 +83172,7 @@ self: {
        ];
        description = "Test interactive Haskell examples";
        license = lib.licenses.mit;
+       mainProgram = "doctest";
      }) {};
 
   "doctest_0_20_0" = callPackage
@@ -82187,6 +83206,7 @@ self: {
        description = "Test interactive Haskell examples";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doctest";
      }) {};
 
   "doctest-discover" = callPackage
@@ -82209,6 +83229,7 @@ self: {
        doHaddock = false;
        description = "Easy way to run doctests via cabal";
        license = lib.licenses.publicDomain;
+       mainProgram = "doctest-discover";
      }) {};
 
   "doctest-discover-configurator" = callPackage
@@ -82234,6 +83255,7 @@ self: {
        description = "Easy way to run doctests via cabal (no aeson dependency, uses configurator instead)";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doctest-discover";
        broken = true;
      }) {};
 
@@ -82250,6 +83272,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Generate driver file for doctest's cabal integration";
        license = lib.licenses.bsd3;
+       mainProgram = "doctest-driver-gen";
      }) {};
 
   "doctest-exitcode-stdio" = callPackage
@@ -82287,6 +83310,7 @@ self: {
        ];
        description = "Alternative doctest implementation that extracts comments to modules";
        license = lib.licenses.bsd3;
+       mainProgram = "doctest-extract-0.1";
      }) {};
 
   "doctest-lib" = callPackage
@@ -82412,6 +83436,7 @@ self: {
        description = "DocuSign examples";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "docusign-example";
        broken = true;
      }) {};
 
@@ -82440,6 +83465,7 @@ self: {
        description = "Documentation generator for Vim plug-ins";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "docvim";
        broken = true;
      }) {};
 
@@ -82470,6 +83496,7 @@ self: {
        description = "Automatic Bibtex and fulltext of scientific articles";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doi";
        broken = true;
      }) {};
 
@@ -82597,6 +83624,7 @@ self: {
        ];
        description = "Codegen helping you define domain models";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "domain-aeson" = callPackage
@@ -82616,6 +83644,7 @@ self: {
        testHaskellDepends = [ domain rerebase ];
        description = "Integration of domain with aeson";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "domain-auth" = callPackage
@@ -82652,6 +83681,7 @@ self: {
        testHaskellDepends = [ cereal cereal-text domain rerebase ];
        description = "Integration of domain with cereal";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "domain-core" = callPackage
@@ -82703,6 +83733,7 @@ self: {
        testHaskellDepends = [ base containers hspec lens mtl random ];
        description = "A simulator for the board game Dominion";
        license = lib.licenses.bsd3;
+       mainProgram = "dominion";
      }) {};
 
   "domplate" = callPackage
@@ -82817,6 +83848,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dot-linker";
        broken = true;
      }) {};
 
@@ -82831,6 +83863,7 @@ self: {
        executableHaskellDepends = [ base containers graphviz hxt text ];
        description = "Converter from GraphViz .dot format to yEd GraphML";
        license = lib.licenses.bsd3;
+       mainProgram = "dot2graphml";
      }) {};
 
   "dotenv" = callPackage
@@ -82859,6 +83892,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Loads environment variables from dotenv files";
        license = lib.licenses.mit;
+       mainProgram = "dotenv";
      }) {};
 
   "dotfs" = callPackage
@@ -82891,6 +83925,7 @@ self: {
        description = "Filesystem to manage and parse dotfiles";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dotfs";
        broken = true;
      }) {};
 
@@ -83084,6 +84119,7 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "A proof assistant for Magic: The Gathering puzzles";
        license = lib.licenses.bsd3;
+       mainProgram = "dovin";
      }) {};
 
   "dow" = callPackage
@@ -83103,6 +84139,7 @@ self: {
        description = "Dungeons of Wor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dow";
      }) {};
 
   "downhill" = callPackage
@@ -83168,6 +84205,7 @@ self: {
        description = "Simple tool to download images from RSS feeds (e.g. Flickr, Picasa)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "download-media-content";
      }) {};
 
   "downloader" = callPackage
@@ -83433,6 +84471,7 @@ self: {
        ];
        description = "a lightweight DNS proxy server";
        license = lib.licenses.bsd3;
+       mainProgram = "dprox";
      }) {};
 
   "drClickOn" = callPackage
@@ -83538,6 +84577,7 @@ self: {
        description = "Library and program for querying DVB (Dresdner Verkehrsbetriebe AG)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dresdner-verkehrsbetriebe";
        broken = true;
      }) {};
 
@@ -83685,6 +84725,7 @@ self: {
        description = "Dropbox API client";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "exe";
        broken = true;
      }) {};
 
@@ -83727,6 +84768,7 @@ self: {
        description = "A command line tool for resolving dropbox conflicts. Deprecated! Please use confsolve.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dropsolve";
      }) {};
 
   "drunken-bishop" = callPackage
@@ -83807,6 +84849,7 @@ self: {
        description = "SQL backend for Database Supported Haskell (DSH)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sqltests";
      }) {};
 
   "dsmc" = callPackage
@@ -83942,6 +84985,7 @@ self: {
        executableHaskellDepends = [ base bytestring ];
        description = "Harmonix (Guitar Hero, Rock Band) DTA/DTB metadata library";
        license = lib.licenses.bsd3;
+       mainProgram = "dtab";
      }) {};
 
   "dtd" = callPackage
@@ -84054,6 +85098,7 @@ self: {
        description = "Network multiplayer 2D shooting game";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dual";
        broken = true;
      }) {};
 
@@ -84180,6 +85225,7 @@ self: {
        description = "A tiny language, a subset of Haskell (with type classes) aimed at aiding teachers to teach Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "duet";
        broken = true;
      }) {};
 
@@ -84256,7 +85302,7 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit transformers ];
        description = "Generalised reactive framework supporting classic, arrowized and monadic FRP";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "dunai-core" = callPackage
@@ -84323,6 +85369,7 @@ self: {
        description = "Frontend development build tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "duplo";
      }) {};
 
   "dura" = callPackage
@@ -84376,6 +85423,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
+       mainProgram = "dustme";
      }) {};
 
   "dvault" = callPackage
@@ -84395,6 +85443,7 @@ self: {
        description = "Dead simple password manager";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dvault";
        broken = true;
      }) {};
 
@@ -84536,7 +85585,7 @@ self: {
        libraryHaskellDepends = [ base Win32 ];
        description = "Backend for a binding to the Microsoft DirectX 9 API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "dx9d3d" = callPackage
@@ -84549,7 +85598,7 @@ self: {
        librarySystemDepends = [ d3d9 ];
        description = "A binding to the Microsoft DirectX 9 API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {d3d9 = null;};
 
   "dx9d3dx" = callPackage
@@ -84562,7 +85611,7 @@ self: {
        librarySystemDepends = [ d3dx9 ];
        description = "A binding to the Microsoft DirectX 9 D3DX API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {d3dx9 = null;};
 
   "dyckword" = callPackage
@@ -84845,6 +85894,7 @@ self: {
        description = "Library Type Safe implementation of Dynamic Pipeline Paradigm (DPP)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "examples";
        broken = true;
      }) {};
 
@@ -85047,6 +86097,7 @@ self: {
        description = "Configure dzen2 bars in Dhall language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dzen-dhall";
        broken = true;
      }) {};
 
@@ -85124,6 +86175,7 @@ self: {
        description = "Ear Clipping Triangulation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "earclipper";
        broken = true;
      }) {};
 
@@ -85160,6 +86212,7 @@ self: {
        description = "Early return syntax in do-notation (GHC plugin)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "early";
        broken = true;
      }) {};
 
@@ -85381,6 +86434,7 @@ self: {
        description = "Parser combinators & EBNF, BFFs!";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ebnf-parse";
        broken = true;
      }) {};
 
@@ -85421,6 +86475,7 @@ self: {
        description = "A handy tool for uploading unikernels to Amazon's EC2";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ec2-unikernel";
      }) {};
 
   "eccrypto" = callPackage
@@ -85501,6 +86556,7 @@ self: {
        description = "A ECMA-262 interpreter library";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ecma262";
        broken = true;
      }) {};
 
@@ -85585,6 +86641,7 @@ self: {
        description = "Command line file filtering with haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "eddie";
        broken = true;
      }) {};
 
@@ -85618,6 +86675,7 @@ self: {
        description = "Templating language with similar syntax and features to Liquid or Jinja2";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ede";
        broken = true;
      }) {};
 
@@ -85665,6 +86723,7 @@ self: {
        description = "A Tool to Visualize Parallel Functional Program Executions";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "edentv";
      }) {};
 
   "edf" = callPackage
@@ -85695,6 +86754,7 @@ self: {
        description = "Top view space combat arcade game";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "edge";
      }) {};
 
   "edges" = callPackage
@@ -85844,6 +86904,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Programs demoing the use of symmetric, stateful edit lenses";
        license = lib.licenses.bsd3;
+       mainProgram = "lens-editor";
      }) {};
 
   "editable" = callPackage
@@ -85908,6 +86969,7 @@ self: {
        ];
        description = "Edit stdin using an editor before sending to stdout";
        license = lib.licenses.bsd3;
+       mainProgram = "editpipe";
      }) {};
 
   "effect-handlers" = callPackage
@@ -86235,6 +87297,7 @@ self: {
        description = "A tutorial program for the Egison programming language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "egison-tutorial";
      }) {};
 
   "egyptian-fractions" = callPackage
@@ -86265,6 +87328,7 @@ self: {
        description = "like eruby, ehaskell is embedded haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ehs";
        broken = true;
      }) {};
 
@@ -86344,6 +87408,7 @@ self: {
        executableToolDepends = [ markdown-unlit ];
        description = "IO with Exceptions tracked on the type-level";
        license = lib.licenses.mpl20;
+       mainProgram = "readme";
      }) {};
 
   "either" = callPackage
@@ -86878,6 +87943,7 @@ self: {
        description = "Arrows with holes";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -87028,7 +88094,7 @@ self: {
        description = "elm-export persistent entities";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ jb55 ];
+       maintainers = [ lib.maintainers.jb55 ];
        broken = true;
      }) {};
 
@@ -87055,6 +88121,7 @@ self: {
        ];
        description = "Tool for sharing and using Elm libraries";
        license = lib.licenses.bsd3;
+       mainProgram = "elm-get";
      }) {};
 
   "elm-hybrid" = callPackage
@@ -87089,6 +88156,7 @@ self: {
        ];
        description = "Set up basic structure for an elm project";
        license = lib.licenses.mit;
+       mainProgram = "elm-init";
      }) {};
 
   "elm-make" = callPackage
@@ -87109,6 +88177,7 @@ self: {
        ];
        description = "A build tool for Elm projects";
        license = lib.licenses.bsd3;
+       mainProgram = "elm-make";
      }) {};
 
   "elm-package" = callPackage
@@ -87138,6 +88207,7 @@ self: {
        ];
        description = "Package manager for Elm libraries";
        license = lib.licenses.bsd3;
+       mainProgram = "elm-package";
      }) {};
 
   "elm-reactor" = callPackage
@@ -87162,6 +88232,7 @@ self: {
        ];
        description = "Interactive development tool for Elm programs";
        license = lib.licenses.bsd3;
+       mainProgram = "elm-reactor";
      }) {};
 
   "elm-repl" = callPackage
@@ -87187,6 +88258,7 @@ self: {
        ];
        description = "a REPL for Elm";
        license = lib.licenses.bsd3;
+       mainProgram = "elm-repl";
      }) {};
 
   "elm-server" = callPackage
@@ -87206,6 +88278,7 @@ self: {
        ];
        description = "Server for developing Elm projects";
        license = lib.licenses.bsd3;
+       mainProgram = "elm-server";
      }) {};
 
   "elm-street" = callPackage
@@ -87322,6 +88395,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Turn your Elm project into buildable Nix project";
        license = lib.licenses.bsd3;
+       mainProgram = "elm2nix";
      }) {};
 
   "elminator" = callPackage
@@ -87377,6 +88451,7 @@ self: {
        description = "Generate easy-to-remember, hard-to-guess passwords";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "elocrypt";
        broken = true;
      }) {};
 
@@ -87400,6 +88475,7 @@ self: {
        description = "A tiny language for understanding the lambda-calculus";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "elsa";
      }) {};
 
   "elynx" = callPackage
@@ -87417,7 +88493,8 @@ self: {
        ];
        description = "Validate and (optionally) redo ELynx analyses";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       mainProgram = "elynx";
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "elynx-markov" = callPackage
@@ -87439,7 +88516,7 @@ self: {
        benchmarkHaskellDepends = [ base ];
        description = "Simulate molecular sequences along trees";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "elynx-nexus" = callPackage
@@ -87452,7 +88529,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Import and export Nexus files";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "elynx-seq" = callPackage
@@ -87473,7 +88550,7 @@ self: {
        ];
        description = "Handle molecular sequences";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "elynx-tools" = callPackage
@@ -87493,7 +88570,7 @@ self: {
        ];
        description = "Tools for ELynx";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "elynx-tree" = callPackage
@@ -87521,7 +88598,7 @@ self: {
        ];
        description = "Handle phylogenetic trees";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "ema" = callPackage
@@ -87545,7 +88622,7 @@ self: {
        ];
        description = "Static site generator library with hot reload";
        license = lib.licenses.agpl3Only;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "emacs-keys" = callPackage
@@ -87695,6 +88772,7 @@ self: {
        ];
        description = "Perform basic syntax and deliverability checks on email addresses";
        license = lib.licenses.agpl3Only;
+       mainProgram = "email-validator";
      }) {};
 
   "emailaddress" = callPackage
@@ -87756,6 +88834,7 @@ self: {
        ];
        description = "Embed the values in scope in the haddock documentation of the module";
        license = lib.licenses.bsd3;
+       mainProgram = "embeddock";
      }) {};
 
   "embeddock-example" = callPackage
@@ -87799,6 +88878,7 @@ self: {
        description = "support for embroidery formats in haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "emd" = callPackage
@@ -87861,6 +88941,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "emoji utility";
        license = lib.licenses.bsd3;
+       mainProgram = "emoji-example";
      }) {};
 
   "emojis" = callPackage
@@ -87960,8 +89041,8 @@ self: {
      }:
      mkDerivation {
        pname = "encoding";
-       version = "0.8.6";
-       sha256 = "0m68a4q98q4hf0sy0s9b3cmi2pl5s00xxchnjqqs3lb6b8xzg4fz";
+       version = "0.8.7";
+       sha256 = "1srnambj9zfr7z33a0dsf6ryl5lxmvpzkqgq60rrqh6n47dz3cwa";
        setupHaskellDepends = [
          base Cabal containers filepath ghc-prim HaXml
        ];
@@ -88050,6 +89131,7 @@ self: {
        ];
        description = "An English language stemmer (Porter2)";
        license = lib.licenses.bsd3;
+       mainProgram = "eng-stemmer-example";
      }) {};
 
   "engine-io" = callPackage
@@ -88170,6 +89252,7 @@ self: {
        description = "An application (and library) to convert quipper circuits into Qpmc models";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "entangle";
      }) {};
 
   "entropy" = callPackage
@@ -88273,6 +89356,7 @@ self: {
        description = "Making fmt available with rio";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "demo-enum-text-rio";
      }) {};
 
   "enum-types" = callPackage
@@ -88333,6 +89417,7 @@ self: {
        description = "enumerate all the values in a finite type (automatically)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-enumerate";
      }) {};
 
   "enumerate-function" = callPackage
@@ -88354,6 +89439,7 @@ self: {
        description = "simple package for inverting functions and testing totality, via brute enumeration of the domain";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-enumerate-function";
      }) {};
 
   "enumeration" = callPackage
@@ -88592,6 +89678,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "envparse_0_5_0" = callPackage
+    ({ mkDerivation, base, containers, hspec, text }:
+     mkDerivation {
+       pname = "envparse";
+       version = "0.5.0";
+       sha256 = "07fvq07x4i6swcryv3i0vj197zrj8rvvy2vp9q9cvj28xzj4mddd";
+       libraryHaskellDepends = [ base containers ];
+       testHaskellDepends = [ base containers hspec text ];
+       description = "Parse environment variables";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "envstatus" = callPackage
     ({ mkDerivation, base, ConfigFile, mtl, parsec, process, PyF, tasty
      , tasty-hspec, unix
@@ -88612,6 +89711,7 @@ self: {
        description = "Display efficiently the state of the local environment";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "envstatus";
        broken = true;
      }) {};
 
@@ -88634,7 +89734,7 @@ self: {
        ];
        description = "An environmentally friendly way to deal with environment variables";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "envy-extensible" = callPackage
@@ -88739,6 +89839,7 @@ self: {
        description = "Compiler for a simple functional language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "epic";
        broken = true;
      }) {};
 
@@ -88786,6 +89887,7 @@ self: {
        ];
        description = "EPUB E-Book construction support library";
        license = lib.licenses.bsd3;
+       mainProgram = "xhtml2epub";
      }) {};
 
   "epub-metadata" = callPackage
@@ -88809,6 +89911,7 @@ self: {
        ];
        description = "Library for parsing epub document metadata";
        license = lib.licenses.bsd3;
+       mainProgram = "epub-metadata-example";
      }) {};
 
   "epub-tools" = callPackage
@@ -88847,6 +89950,7 @@ self: {
        description = "Rename epub ebook files based on meta information";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "epubname";
        broken = true;
      }) {};
 
@@ -88877,6 +89981,7 @@ self: {
        ];
        description = "Shell command for finding equal files";
        license = "GPL";
+       mainProgram = "equal-files";
      }) {};
 
   "equational-reasoning" = callPackage
@@ -88973,6 +90078,7 @@ self: {
        description = "An entity-relationship diagram generator from a plain text description";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "erd";
        broken = true;
      }) {};
 
@@ -89067,6 +90173,7 @@ self: {
        description = "DEPRECATED in favor of eros-http";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "erosc";
      }) {};
 
   "eros-http" = callPackage
@@ -89087,6 +90194,7 @@ self: {
        description = "JSON HTTP interface to Eros";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "eros-http";
      }) {};
 
   "errata" = callPackage
@@ -89105,6 +90213,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Source code error pretty printing";
        license = lib.licenses.mit;
+       mainProgram = "errata-example";
      }) {};
 
   "errno" = callPackage
@@ -89250,11 +90359,25 @@ self: {
        pname = "error-or";
        version = "0.2.0.0";
        sha256 = "0wpw8ms1rxc8zhdcr078bang10jl2wkd0ji944knzcvspfnx9hib";
+       revision = "1";
+       editedCabalFile = "16zplgyfdqcqfnrf4w67fl993akn7dpysgsjl8n3w6cw7ki6a2a8";
        libraryHaskellDepends = [ base containers mtl text ];
        description = "Composable, hierarchical errors";
        license = lib.licenses.bsd3;
      }) {};
 
+  "error-or_0_3_0" = callPackage
+    ({ mkDerivation, base, containers, mtl, text }:
+     mkDerivation {
+       pname = "error-or";
+       version = "0.3.0";
+       sha256 = "14493vzrwf4w0x1y6bml5z4k3m5y413hw650vfv3b63iynzz7l3x";
+       libraryHaskellDepends = [ base containers mtl text ];
+       description = "Composable, hierarchical errors";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "error-or-utils" = callPackage
     ({ mkDerivation, base, containers, error-or, text }:
      mkDerivation {
@@ -89306,7 +90429,7 @@ self: {
        ];
        description = "Simplified error-handling";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "errors-ext" = callPackage
@@ -89351,6 +90474,7 @@ self: {
        description = "A script to concatenate AIP ERSA";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ersaconcat";
        broken = true;
      }) {};
 
@@ -89420,6 +90544,7 @@ self: {
        description = "Easy Runtime Templates";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ert";
        broken = true;
      }) {};
 
@@ -89460,6 +90585,7 @@ self: {
        ];
        description = "Produce Text with terminal escape sequences";
        license = lib.licenses.mit;
+       mainProgram = "escaped-example";
      }) {};
 
   "escoger" = callPackage
@@ -89487,6 +90613,7 @@ self: {
        description = "Terminal fuzzy selector";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "escoger";
        broken = true;
      }) {};
 
@@ -89512,6 +90639,7 @@ self: {
        description = "Esotericbot is a sophisticated, lightweight IRC bot";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "esotericbot";
      }) {};
 
   "espial" = callPackage
@@ -89681,7 +90809,7 @@ self: {
        ];
        description = "General purpose live coding framework";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "essence-of-live-coding-PortMidi" = callPackage
@@ -89697,9 +90825,7 @@ self: {
        ];
        description = "General purpose live coding framework - PortMidi backend";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "essence-of-live-coding-gloss" = callPackage
@@ -89715,7 +90841,7 @@ self: {
        ];
        description = "General purpose live coding framework - Gloss backend";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "essence-of-live-coding-gloss-example" = callPackage
@@ -89735,6 +90861,7 @@ self: {
        description = "General purpose live coding framework - Gloss example";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "essence-of-live-coding-gloss-example";
        broken = true;
      }) {};
 
@@ -89751,7 +90878,7 @@ self: {
        ];
        description = "General purpose live coding framework - pulse backend";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "essence-of-live-coding-pulse-example" = callPackage
@@ -89771,6 +90898,7 @@ self: {
        description = "General purpose live coding framework - pulse backend example";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "essence-of-live-coding-pulse-example";
        broken = true;
      }) {};
 
@@ -89788,7 +90916,7 @@ self: {
        ];
        description = "General purpose live coding framework - QuickCheck integration";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "essence-of-live-coding-vivid" = callPackage
@@ -90087,6 +91215,7 @@ self: {
        description = "A web frontend for ethereum-analyzer";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ethereum-analyzer-webui";
      }) {};
 
   "ethereum-client-haskell" = callPackage
@@ -90197,6 +91326,7 @@ self: {
        ];
        description = "Random etymology online entry";
        license = lib.licenses.bsd3;
+       mainProgram = "ety";
      }) {};
 
   "euler" = callPackage
@@ -90359,6 +91489,7 @@ self: {
        testHaskellDepends = [ base bytestring eve lens mtl text vty ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "eve-cli-exe";
      }) {};
 
   "eved" = callPackage
@@ -90479,6 +91610,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
+       mainProgram = "event-transformer-exe";
      }) {};
 
   "eventful-core" = callPackage
@@ -90650,6 +91782,7 @@ self: {
        executableHaskellDepends = [ aeson base filepath text ];
        description = "Visualise an eventlog";
        license = lib.licenses.bsd3;
+       mainProgram = "eventlog2html";
      }) {};
 
   "eventloop" = callPackage
@@ -90775,6 +91908,7 @@ self: {
        ];
        description = "Server-Sent Events the UNIX way";
        license = lib.licenses.mit;
+       mainProgram = "eventsourced";
      }) {};
 
   "eventsourcing" = callPackage
@@ -90846,7 +91980,7 @@ self: {
        ];
        description = "EventStore TCP Client";
        license = lib.licenses.bsd3;
-       platforms = [ "x86_64-darwin" "x86_64-linux" ];
+       platforms = lib.platforms.x86_64;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -90935,6 +92069,7 @@ self: {
        description = "An interpreter for EWE programming language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ewe";
        broken = true;
      }) {};
 
@@ -91014,7 +92149,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Exact real arithmetic";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       maintainers = [ lib.maintainers.expipiplus1 ];
      }) {};
 
   "exact-real-positional" = callPackage
@@ -91042,6 +92177,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Example Haskell Project";
        license = lib.licenses.bsd3;
+       mainProgram = "example-haskell-project";
      }) {};
 
   "except-exceptions" = callPackage
@@ -91263,6 +92399,7 @@ self: {
        description = "Tool to run stack exec prj-exe more easy";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "execs";
        broken = true;
      }) {};
 
@@ -91288,6 +92425,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Provides the SHA1 hash of the program executable";
        license = lib.licenses.mit;
+       mainProgram = "inject-executable-hash";
      }) {};
 
   "executable-path" = callPackage
@@ -91344,6 +92482,7 @@ self: {
        description = "Tool to search/generate (haskell) expressions with a given type";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "exference";
      }) {};
 
   "exh" = callPackage
@@ -91412,6 +92551,7 @@ self: {
        description = "Exheres generator for cabal packages";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "exherbo-cabal";
        broken = true;
      }) {};
 
@@ -91720,8 +92860,8 @@ self: {
      }:
      mkDerivation {
        pname = "exon";
-       version = "0.3.0.0";
-       sha256 = "0ysrn78h9z143jpgbw0z5ng6kv79h69v42h4cgywfv2vss9hd96h";
+       version = "0.4.0.0";
+       sha256 = "17hzyfh4wcv5x1446qk448mdlcr63z50nkicf67k8618szf2sqdl";
        libraryHaskellDepends = [
          base flatparse haskell-src-exts haskell-src-meta incipit-base
          template-haskell text
@@ -91770,6 +92910,7 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "exp-cache-benchmarks";
        broken = true;
      }) {};
 
@@ -91939,6 +93080,7 @@ self: {
        description = "Show how expressions are parsed";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "explain";
        broken = true;
      }) {};
 
@@ -92067,6 +93209,7 @@ self: {
        description = "Experimental Plot data Reconstructor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "explore";
      }) {};
 
   "exploring-interpreters" = callPackage
@@ -92201,6 +93344,7 @@ self: {
        description = "A simple expressions language based on row types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "expresso";
        broken = true;
      }) {};
 
@@ -92244,6 +93388,7 @@ self: {
        description = "automated printing for extemp speakers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "extemp";
      }) {};
 
   "extend-record-data-th" = callPackage
@@ -92327,6 +93472,8 @@ self: {
        pname = "extensible";
        version = "0.9";
        sha256 = "06zmc71r4cqglkv3av38djbkakvw9zxc3901xi2h65fwxn4npvnc";
+       revision = "1";
+       editedCabalFile = "1k8z4dnwkjisba6w5qjxyxvh7ibp6nvl82d6l8apjh7hriapwfx9";
        libraryHaskellDepends = [
          aeson base bytestring cassava comonad constraints deepseq ghc-prim
          hashable incremental membership prettyprinter primitive profunctors
@@ -92472,6 +93619,7 @@ self: {
        ];
        description = "Inspect extensions in cabal and hpack files";
        license = lib.licenses.mit;
+       mainProgram = "extensioneer";
      }) {};
 
   "extensions" = callPackage
@@ -92500,6 +93648,7 @@ self: {
        description = "Parse Haskell Language Extensions";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "extensions";
        broken = true;
      }) {};
 
@@ -92554,6 +93703,7 @@ self: {
        description = "Given a hackage package outputs the list of its dependencies";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "extract-dependencies";
      }) {};
 
   "extractable-singleton" = callPackage
@@ -92584,6 +93734,7 @@ self: {
        description = "Extract an ELF's metadata and sections into files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "extractelf";
        broken = true;
      }) {};
 
@@ -92685,6 +93836,7 @@ self: {
        description = "Spam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test1";
        broken = true;
      }) {};
 
@@ -92707,8 +93859,8 @@ self: {
      }:
      mkDerivation {
        pname = "factor";
-       version = "1.5";
-       sha256 = "0fn7dlyaxa2pwf3xakszs75j0fvc7lsdzp4x2cm4hsnyyn1x5v9z";
+       version = "1.6";
+       sha256 = "14dc217d2901h4z8lhf901ih2kg2brrlwpf8wawrmz0nf8np6zfd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -92723,6 +93875,7 @@ self: {
        description = "Factoring integers and polynomials";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "factor";
        broken = true;
      }) {};
 
@@ -92749,6 +93902,7 @@ self: {
        ];
        description = "Rational arithmetic in an irrational world";
        license = lib.licenses.gpl3Plus;
+       mainProgram = "factory";
      }) {};
 
   "facts" = callPackage
@@ -93135,6 +94289,7 @@ self: {
        description = "Falling sand game/cellular automata simulation using regular parallel arrays";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "falling-turnip";
        broken = true;
      }) {};
 
@@ -93155,6 +94310,7 @@ self: {
        description = "A fun falling blocks game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fallingblocks";
      }) {};
 
   "familiar-reflection" = callPackage
@@ -93329,7 +94485,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A fast logging system";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "fast-math" = callPackage
@@ -93376,6 +94532,8 @@ self: {
        pname = "fast-tags";
        version = "2.0.1";
        sha256 = "1v60jrcpbd86np5265grd61x6rla1fy85jphcnknffy4zf0sswrf";
+       revision = "1";
+       editedCabalFile = "120prvsdwkil1wq5y72ym4h5gzafdpm3cy4kchgfjcdlyf8jf619";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -93391,6 +94549,7 @@ self: {
        ];
        description = "Fast incremental vi and emacs tags";
        license = lib.licenses.bsd3;
+       mainProgram = "fast-tags";
      }) {};
 
   "fast-tagsoup" = callPackage
@@ -93652,6 +94811,7 @@ self: {
        description = "A compiler for Fay, a Haskell subset that compiles to JavaScript";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fay";
      }) {};
 
   "fay-base" = callPackage
@@ -93873,6 +95033,7 @@ self: {
        description = "High-level bindings to Facebook Messenger Platform API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -93902,6 +95063,7 @@ self: {
        description = "Fedora packager tool to build package branches";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fbrnch";
      }) {};
 
   "fca" = callPackage
@@ -93958,6 +95120,7 @@ self: {
        description = "A faster way to navigate directories using the command line";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fcd";
      }) {};
 
   "fcf-composite" = callPackage
@@ -94045,6 +95208,7 @@ self: {
        description = "TBA";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fcg";
        broken = true;
      }) {};
 
@@ -94125,6 +95289,7 @@ self: {
        description = "Admin API for Firebase Cloud Messaging";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fcm-client";
        broken = true;
      }) {};
 
@@ -94158,6 +95323,7 @@ self: {
        description = "Utilities related to freedesktop Trash standard";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fdo-trash";
        broken = true;
      }) {};
 
@@ -94303,6 +95469,7 @@ self: {
        description = "Fedora image download tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fedora-img-dl";
      }) {};
 
   "fedora-packages" = callPackage
@@ -94342,6 +95509,7 @@ self: {
        testHaskellDepends = [ base QuickCheck ];
        description = "Short description of your package";
        license = lib.licenses.bsd3;
+       mainProgram = "fee-estimate-exe";
      }) {};
 
   "feed" = callPackage
@@ -94385,6 +95553,7 @@ self: {
        description = "A simple command line interface for creating and updating feeds like RSS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "feed-cli";
        broken = true;
      }) {};
 
@@ -94462,6 +95631,7 @@ self: {
        description = "CI service around gipeda";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "feed-gipeda";
      }) {};
 
   "feed-translator" = callPackage
@@ -94484,6 +95654,7 @@ self: {
        description = "Translate syndication feeds";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "feed-translator";
      }) {};
 
   "feed2lj" = callPackage
@@ -94503,6 +95674,7 @@ self: {
        description = "(unsupported)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "feed2lj";
      }) {};
 
   "feed2twitter" = callPackage
@@ -94520,6 +95692,7 @@ self: {
        description = "Send posts from a feed to Twitter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "feed2twitter";
      }) {};
 
   "feedback" = callPackage
@@ -94572,6 +95745,7 @@ self: {
        description = "FFI to MXNet";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mxnet-op-gen";
      }) {inherit (pkgs) mxnet;};
 
   "fei-cocoapi" = callPackage
@@ -94600,6 +95774,7 @@ self: {
        description = "Cocodataset with cocoapi";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imageutils";
        broken = true;
      }) {};
 
@@ -94628,6 +95803,7 @@ self: {
        description = "mxnet dataiters";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mxnet-dataiter-gen";
      }) {inherit (pkgs) mxnet;};
 
   "fei-datasets" = callPackage
@@ -94812,6 +95988,7 @@ self: {
        ];
        description = "Converting a chess position from FEN notation to text";
        license = lib.licenses.mit;
+       mainProgram = "fen2s";
      }) {};
 
   "fences" = callPackage
@@ -94870,6 +96047,7 @@ self: {
        description = "Generate and verify HMAC-based authentication tokens";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fernet";
        broken = true;
      }) {};
 
@@ -94902,6 +96080,7 @@ self: {
        description = "Remote multi-db SQLCipher server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "festung";
      }) {};
 
   "fez-conf" = callPackage
@@ -95192,6 +96371,7 @@ self: {
        description = "update statically hosted file in a push stule through socketed";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ficketed";
      }) {};
 
   "fields" = callPackage
@@ -95378,6 +96558,7 @@ self: {
        ];
        description = "Takes a Haskell source-code file and outputs its modules";
        license = lib.licenses.mit;
+       mainProgram = "file-modules";
      }) {};
 
   "file-path-th" = callPackage
@@ -95414,6 +96595,7 @@ self: {
        description = "Use templates for files and directories";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "new";
        broken = true;
      }) {};
 
@@ -95865,6 +97047,7 @@ self: {
        description = "Find the clumpiness of labels in a tree";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "find-clumpiness";
      }) {};
 
   "find-conduit" = callPackage
@@ -95900,6 +97083,7 @@ self: {
        description = "A file-finding conduit that allows user control over traversals";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "find-hs";
        broken = true;
      }) {};
 
@@ -95933,6 +97117,7 @@ self: {
        description = "List http/html files";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "findhttp";
      }) {};
 
   "fingertree" = callPackage
@@ -96143,7 +97328,7 @@ self: {
        libraryHaskellDepends = [ base deepseq ];
        description = "A type inhabited by finitely many values, indexed by type-level naturals";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "finito" = callPackage
@@ -96224,6 +97409,7 @@ self: {
        description = "A simple example using Firefly";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "firefly-example-exe";
        broken = true;
      }) {};
 
@@ -96326,6 +97512,7 @@ self: {
        description = "Defunctionalisation for Yhc Core";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "firstify";
      }) {};
 
   "fishfood" = callPackage
@@ -96349,6 +97536,7 @@ self: {
        ];
        description = "Calculates file-size frequency-distribution";
        license = "GPL";
+       mainProgram = "fishfood";
      }) {};
 
   "fit" = callPackage
@@ -96394,6 +97582,7 @@ self: {
        description = "Parse FITS files";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "omnibus";
        broken = true;
      }) {};
 
@@ -96448,6 +97637,7 @@ self: {
        ];
        description = "Program to manage the imports of a haskell module";
        license = lib.licenses.bsd3;
+       mainProgram = "fix-imports";
      }) {};
 
   "fix-parser-simple" = callPackage
@@ -96492,6 +97682,7 @@ self: {
        ];
        description = "Fixes whitespace issues";
        license = "unknown";
+       mainProgram = "fix-whitespace";
      }) {};
 
   "fixed" = callPackage
@@ -96721,6 +97912,7 @@ self: {
        ];
        description = "Quick parsing of fixed-width data formats";
        license = lib.licenses.mit;
+       mainProgram = "fixedwidth-hs";
      }) {};
 
   "fixer" = callPackage
@@ -96799,6 +97991,7 @@ self: {
        description = "FIX (co)parser";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fix-generator";
      }) {};
 
   "fixie" = callPackage
@@ -96902,6 +98095,7 @@ self: {
        description = "FizzBuzz as a service";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fizzbuzz-server";
        broken = true;
      }) {};
 
@@ -96970,6 +98164,7 @@ self: {
        description = "Verify FLAC files ripped form CD using AccurateRipâ„¢";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flaccuraterip";
        broken = true;
      }) {};
 
@@ -97017,6 +98212,7 @@ self: {
        description = "FlameGraphs of profiling";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flamingra";
        broken = true;
      }) {};
 
@@ -97063,6 +98259,7 @@ self: {
        description = "Generate language learning flashcards from video";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flashblast";
      }) {};
 
   "flat" = callPackage
@@ -97091,7 +98288,7 @@ self: {
        ];
        description = "Principled and efficient bit-oriented binary serialization";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "flat-maybe" = callPackage
@@ -97137,6 +98334,7 @@ self: {
        description = "flatten a latex multi-file latex document and remove all comments";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flat-tex";
        broken = true;
      }) {};
 
@@ -97272,6 +98470,7 @@ self: {
        executableHaskellDepends = [ base bytestring text ];
        description = "A configurable reimplementation of unlit";
        license = lib.licenses.bsd3;
+       mainProgram = "funlit";
      }) {};
 
   "flexiwrap" = callPackage
@@ -97401,6 +98600,7 @@ self: {
        executableHaskellDepends = [ base process safe-exceptions ];
        description = "e.g. `flip systemctl foo.service start` does `systemctl start foo.service`";
        license = lib.licenses.mit;
+       mainProgram = "flip";
      }) {};
 
   "flippers" = callPackage
@@ -97431,6 +98631,7 @@ self: {
        description = "f-lite compiler, interpreter and libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flite";
      }) {};
 
   "flo" = callPackage
@@ -97451,6 +98652,7 @@ self: {
        ];
        description = "Generate flow charts from your code base";
        license = lib.licenses.bsd3;
+       mainProgram = "flo";
      }) {};
 
   "float-binstring" = callPackage
@@ -97560,6 +98762,7 @@ self: {
        ];
        description = "A flexible Haskell source code pretty printer";
        license = lib.licenses.bsd3;
+       mainProgram = "floskell";
      }) {};
 
   "flow" = callPackage
@@ -97604,6 +98807,7 @@ self: {
        ];
        description = "Library and binary to generate sequence/flow diagrams from plain text source";
        license = lib.licenses.bsd3;
+       mainProgram = "flow2dot";
      }) {};
 
   "flowdock" = callPackage
@@ -97662,6 +98866,7 @@ self: {
        description = "API integration with Flowdock";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flowdock";
      }) {};
 
   "flowdock-rest" = callPackage
@@ -97862,6 +99067,7 @@ self: {
        description = "Fltkhs template project";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fltkhs-hello-world";
      }) {};
 
   "fltkhs-themes" = callPackage
@@ -97942,6 +99148,7 @@ self: {
        ];
        description = "A simple web application as a online practice website for XDU SE 2017 fall SPM";
        license = lib.licenses.gpl3Only;
+       mainProgram = "fluffy";
      }) {};
 
   "fluffy-parser" = callPackage
@@ -98074,6 +99281,7 @@ self: {
        description = "A Friendly Markup language without syntax";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fmark";
        broken = true;
      }) {};
 
@@ -98316,7 +99524,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Composable, streaming, and efficient left folds";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "foldl-exceptions" = callPackage
@@ -98478,6 +99686,7 @@ self: {
        ];
        description = "Toolset for Folger Shakespeare Library's XML annotated plays";
        license = lib.licenses.gpl3Only;
+       mainProgram = "folgerhs";
      }) {};
 
   "follow" = callPackage
@@ -98507,6 +99716,7 @@ self: {
        description = "Haskell library to follow content published on any subject";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "follow_pocket_auth";
        broken = true;
      }) {};
 
@@ -98532,9 +99742,8 @@ self: {
        ];
        description = "Be notified when a file gets appended, solely with what was added. Warning - only works on linux and for files that are strictly appended, like log files.";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "follow-file";
      }) {};
 
   "follower" = callPackage
@@ -98554,6 +99763,7 @@ self: {
        description = "Follow Tweets anonymously";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "follower";
      }) {};
 
   "foma" = callPackage
@@ -98592,6 +99802,7 @@ self: {
        description = "Basic4x6 font for OpenGL";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "show-font-basic4x6";
        broken = true;
      }) {};
 
@@ -98609,6 +99820,7 @@ self: {
        description = "Paper soccer, an OpenGL game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "foo";
      }) {};
 
   "foobar" = callPackage
@@ -98624,6 +99836,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
+       mainProgram = "foobar-exe";
      }) {};
 
   "for-free" = callPackage
@@ -98694,6 +99907,7 @@ self: {
        description = "Run a command on files with magic substituion support (sequencing and regexp)";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fordo";
        broken = true;
      }) {};
 
@@ -98784,6 +99998,7 @@ self: {
        description = "Recursively delete CloudFormation stacks and their dependants";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "forest-fire";
        broken = true;
      }) {};
 
@@ -98813,6 +100028,7 @@ self: {
        description = "Print Forex quotes in Ledger format";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "forex2ledger";
        broken = true;
      }) {};
 
@@ -98829,6 +100045,7 @@ self: {
        description = "Library for generating fake placeholder data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "forger";
        broken = true;
      }) {};
 
@@ -98878,6 +100095,7 @@ self: {
        description = "A statically typed, functional programming language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "formal";
      }) {};
 
   "format" = callPackage
@@ -98921,6 +100139,7 @@ self: {
        description = "A utility for writing the date to dzen2";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "format-status";
      }) {};
 
   "formatn" = callPackage
@@ -99002,6 +100221,7 @@ self: {
        description = "A statically typed, functional programming language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "forml";
      }) {};
 
   "formlets" = callPackage
@@ -99146,6 +100366,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Parsers and analyses for Fortran standards 66, 77, 90, 95 and 2003 (partial)";
        license = lib.licenses.asl20;
+       mainProgram = "fortran-src";
      }) {};
 
   "fortran-src-extras" = callPackage
@@ -99198,6 +100419,7 @@ self: {
        description = "Fortran memory model and other static analysis tools";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fortran-vars";
      }) {};
 
   "fortytwo" = callPackage
@@ -99291,6 +100513,7 @@ self: {
        description = "Foscam File format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "foscam-sort";
      }) {};
 
   "foundation" = callPackage
@@ -99359,6 +100582,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
+       mainProgram = "fourmolu";
      }) {};
 
   "fourmolu_0_6_0_0" = callPackage
@@ -99391,6 +100615,7 @@ self: {
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fourmolu";
      }) {};
 
   "fourmolu_0_7_0_1" = callPackage
@@ -99425,6 +100650,7 @@ self: {
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fourmolu";
      }) {};
 
   "fp-ieee" = callPackage
@@ -99479,6 +100705,7 @@ self: {
        description = "Simple interface to the FP Complete IDE API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fpco-api";
      }) {};
 
   "fpe" = callPackage
@@ -99606,6 +100833,7 @@ self: {
        description = "Installed package query tool for Gentoo Linux";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fquery";
        broken = true;
      }) {};
 
@@ -99620,6 +100848,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Draw Newton, Julia and Mandelbrot fractals";
        license = lib.licenses.bsd3;
+       mainProgram = "fractal";
      }) {};
 
   "fractals" = callPackage
@@ -99662,6 +100891,7 @@ self: {
        description = "A 3-D First Person Shooter Game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "frag";
        broken = true;
      }) {};
 
@@ -99687,6 +100917,7 @@ self: {
        description = "A simple web framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "frame-shell";
        broken = true;
      }) {ghc-binary = null;};
 
@@ -99779,44 +101010,45 @@ self: {
        ];
        description = "CLI frecency history";
        license = lib.licenses.bsd3;
+       mainProgram = "frecently";
      }) {};
 
   "freckle-app" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, base, bugsnag, bytestring
-     , case-insensitive, conduit, containers, data-default, datadog
-     , directory, doctest, ekg-core, errors, exceptions, fast-logger
-     , filepath, Glob, hashable, hspec, hspec-core
-     , hspec-expectations-lifted, hspec-junit-formatter, http-client
-     , http-conduit, http-link-header, http-types, immortal, iproute
-     , lens, lens-aeson, load-env, memcache, monad-control, monad-logger
-     , MonadRandom, mtl, network, network-uri, persistent
-     , persistent-postgresql, postgresql-simple, primitive, process
-     , resource-pool, retry, rio, safe, scientist, semigroupoids
-     , template-haskell, temporary, text, time, transformers
-     , transformers-base, unliftio, unliftio-core, unordered-containers
-     , vector, wai, wai-extra, yaml, yesod, yesod-core
+    ({ mkDerivation, aeson, base, Blammo, bugsnag, bytestring
+     , case-insensitive, conduit, containers, datadog, directory, dlist
+     , doctest, ekg-core, envparse, errors, exceptions, filepath, Glob
+     , hashable, hspec, hspec-core, hspec-expectations-lifted
+     , hspec-junit-formatter, http-client, http-conduit
+     , http-link-header, http-types, immortal, lens, lens-aeson
+     , load-env, memcache, monad-control, monad-logger, MonadRandom, mtl
+     , network-uri, persistent, persistent-postgresql, postgresql-simple
+     , primitive, process, resource-pool, retry, safe, scientist
+     , semigroupoids, template-haskell, temporary, text, time
+     , transformers, transformers-base, typed-process, unliftio
+     , unliftio-core, unordered-containers, vector, wai, wai-extra, yaml
+     , yesod-core
      }:
      mkDerivation {
        pname = "freckle-app";
-       version = "1.0.4.0";
-       sha256 = "0snlgizlbi7izqv66izcf2s3ns5yj8h75jmh1f0ialkppzz1bh07";
+       version = "1.2.0.2";
+       sha256 = "0wwzyg695h63azfdxd2i0clvjwkj4shj0rgrlvr6c830yn94i8q5";
        libraryHaskellDepends = [
-         aeson ansi-terminal base bugsnag bytestring case-insensitive
-         conduit containers data-default datadog doctest ekg-core errors
-         exceptions fast-logger filepath Glob hashable hspec hspec-core
+         aeson base Blammo bugsnag bytestring case-insensitive conduit
+         containers datadog dlist doctest ekg-core envparse errors
+         exceptions filepath Glob hashable hspec hspec-core
          hspec-expectations-lifted hspec-junit-formatter http-client
-         http-conduit http-link-header http-types immortal iproute lens
-         load-env memcache monad-control monad-logger MonadRandom mtl
-         network network-uri persistent persistent-postgresql
-         postgresql-simple primitive process resource-pool retry rio safe
-         scientist semigroupoids template-haskell text time transformers
-         transformers-base unliftio unordered-containers vector wai
-         wai-extra yaml yesod yesod-core
+         http-conduit http-link-header http-types immortal lens load-env
+         memcache monad-control monad-logger MonadRandom mtl network-uri
+         persistent persistent-postgresql postgresql-simple primitive
+         resource-pool retry safe scientist semigroupoids template-haskell
+         text time transformers transformers-base typed-process unliftio
+         unliftio-core unordered-containers vector wai wai-extra yaml
+         yesod-core
        ];
        testHaskellDepends = [
          aeson base bytestring directory errors hspec http-types lens
-         lens-aeson memcache monad-logger mtl postgresql-simple process
-         temporary text time unliftio-core wai wai-extra
+         lens-aeson memcache mtl postgresql-simple process temporary text
+         time wai wai-extra
        ];
        description = "Haskell application toolkit used at Freckle";
        license = lib.licenses.mit;
@@ -99935,6 +101167,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "An extensible effects library";
        license = lib.licenses.bsd3;
+       mainProgram = "free-er-examples";
      }) {};
 
   "free-functors" = callPackage
@@ -100045,6 +101278,7 @@ self: {
        description = "Automatically Generating Counterexamples to Naive Free Theorems";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "counterexamples.cgi";
      }) {};
 
   "free-theorems-seq" = callPackage
@@ -100082,6 +101316,7 @@ self: {
        description = "Taming Selective Strictness";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "free-theorems-seq-webui.cgi";
      }) {};
 
   "free-theorems-webui" = callPackage
@@ -100118,6 +101353,7 @@ self: {
        description = "Spam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test1";
        broken = true;
      }) {};
 
@@ -100135,6 +101371,7 @@ self: {
        description = "Spam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test1";
        broken = true;
      }) {};
 
@@ -100169,6 +101406,7 @@ self: {
        testHaskellDepends = [ base containers mtl tasty tasty-hunit ];
        description = "van Laarhoven encoded Free Monad with Extensible Effects";
        license = lib.licenses.bsd3;
+       mainProgram = "examples";
      }) {};
 
   "freekick2" = callPackage
@@ -100225,9 +101463,7 @@ self: {
        libraryPkgconfigDepends = [ libfreenect ];
        description = "Interface to the Kinect device";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) freenect; freenect_sync = null; 
          libfreenect = null;};
 
@@ -100249,6 +101485,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion free mtl ];
        description = "Implementation of the Freer Monad";
        license = lib.licenses.bsd3;
+       mainProgram = "freer-examples";
      }) {};
 
   "freer-converse" = callPackage
@@ -100287,6 +101524,7 @@ self: {
        description = "Implementation of effect system for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "freer-examples";
        broken = true;
      }) {};
 
@@ -100324,6 +101562,7 @@ self: {
        ];
        description = "A friendly effect system for Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "freer-simple-examples";
      }) {};
 
   "freer-simple-catching" = callPackage
@@ -100420,6 +101659,7 @@ self: {
        description = "A Haskell syntax extension for generalised sections";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "freesect";
        broken = true;
      }) {};
 
@@ -100645,6 +101885,8 @@ self: {
        pname = "friendly";
        version = "0.1.0.3";
        sha256 = "1djmj4nmn4g36iab0z7npgc34vvfspvafr5a4bblnv41glx1wpc1";
+       revision = "1";
+       editedCabalFile = "0phh2lim39ldrrp9qp41mmmjgzxjmv9ijxc0lhar1lbznn56hni5";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -100652,6 +101894,7 @@ self: {
        ];
        description = "Attempt to pretty-print any input";
        license = lib.licenses.bsd3;
+       mainProgram = "friendly";
      }) {};
 
   "friendly-time" = callPackage
@@ -100705,6 +101948,7 @@ self: {
        executableHaskellDepends = [ base bytestring process-extras text ];
        description = "Simple adapter for transformation of HTML to other formats";
        license = lib.licenses.mit;
+       mainProgram = "fromhtml";
      }) {};
 
   "front" = callPackage
@@ -100755,6 +101999,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Advanced rotation of backups and other things";
        license = lib.licenses.publicDomain;
+       mainProgram = "frotate";
      }) {};
 
   "frown" = callPackage
@@ -100769,6 +102014,7 @@ self: {
        description = "LALR(k) parser generator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "frown";
        broken = true;
      }) {};
 
@@ -100861,6 +102107,7 @@ self: {
        description = "Program terminal applications with vty and frpnow!";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "frpnow-vty-demo";
      }) {};
 
   "frquotes" = callPackage
@@ -100875,6 +102122,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Lexical extension for Quasi-Quotations using French-Quotes";
        license = lib.licenses.bsd3;
+       mainProgram = "frquotes";
      }) {};
 
   "fs-events" = callPackage
@@ -100991,6 +102239,7 @@ self: {
        description = "Finite state transducers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fststudio";
        broken = true;
      }) {};
 
@@ -101025,6 +102274,7 @@ self: {
        description = "Wait and observe events on the filesystem for a path, with a timeout";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fswait";
        broken = true;
      }) {};
 
@@ -101047,6 +102297,7 @@ self: {
        description = "File System watching tool with cli and slave functionalities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hfswatch";
        broken = true;
      }) {};
 
@@ -101066,6 +102317,7 @@ self: {
        ];
        description = "Watch a file/directory and run a command when it's modified";
        license = lib.licenses.bsd3;
+       mainProgram = "fswatcher";
      }) {};
 
   "ft-generator" = callPackage
@@ -101080,6 +102332,7 @@ self: {
        description = "implementation accompanying a WFLP'19 paper";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ft-generator";
        broken = true;
      }) {};
 
@@ -101209,6 +102462,7 @@ self: {
        description = "Shell interface to the FreeTheorems library";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ftshell";
      }) {};
 
   "fudgets" = callPackage
@@ -101291,6 +102545,7 @@ self: {
        ];
        description = "Simple sentence segmenter";
        license = lib.licenses.bsd3;
+       mainProgram = "fullstop";
      }) {};
 
   "funbot" = callPackage
@@ -101320,6 +102575,7 @@ self: {
        description = "IRC bot for fun, learning, creativity and collaboration";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "funbot";
      }) {};
 
   "funbot-client" = callPackage
@@ -101371,6 +102627,7 @@ self: {
        description = "Git hook which sends events to FunBot";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "funbot-client-post-receive";
      }) {};
 
   "funcmp" = callPackage
@@ -101383,7 +102640,7 @@ self: {
        libraryHaskellDepends = [ base filepath pretty process ];
        description = "Functional MetaPost is a Haskell frontend to the MetaPost language";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "funcons-intgen" = callPackage
@@ -101404,6 +102661,7 @@ self: {
        description = "Generate Funcons interpreters from CBS description files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cbsc";
        broken = true;
      }) {iml-tools = null;};
 
@@ -101423,6 +102681,7 @@ self: {
        description = "call-by-value lambda-calculus with meta-programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambda-cbv";
      }) {};
 
   "funcons-simple" = callPackage
@@ -101439,6 +102698,7 @@ self: {
        description = "A modular interpreter for executing SIMPLE funcons";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "runfct-SIMPLE";
      }) {};
 
   "funcons-tools" = callPackage
@@ -101466,6 +102726,7 @@ self: {
        description = "A modular interpreter for executing funcons";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "funcons-repl";
      }) {};
 
   "funcons-values" = callPackage
@@ -101755,6 +103016,7 @@ self: {
        description = "Workflows with arrows";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ffexecutord";
      }) {};
 
   "funflow-nix" = callPackage
@@ -101811,6 +103073,7 @@ self: {
        description = "A unioning file-system using HFuse";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "funion";
      }) {};
 
   "funnyprint" = callPackage
@@ -101862,6 +103125,7 @@ self: {
        description = "A modern DPLL-style SAT solver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "funsat";
      }) {};
 
   "funspection" = callPackage
@@ -102120,6 +103384,7 @@ self: {
        ];
        description = "An optimising compiler for a functional, array-oriented language";
        license = lib.licenses.isc;
+       mainProgram = "futhark";
      }) {};
 
   "futhark-data" = callPackage
@@ -102190,6 +103455,7 @@ self: {
        description = "Generate Haskell wrappers for Futhark libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "futhask";
        broken = true;
      }) {};
 
@@ -102205,6 +103471,7 @@ self: {
        description = "Simple IP-over-UDP tunnel using TUNTAP";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "futun";
        broken = true;
      }) {};
 
@@ -102380,6 +103647,7 @@ self: {
        description = "Fuzzy text matching";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bench";
        broken = true;
      }) {};
 
@@ -102416,9 +103684,8 @@ self: {
        ];
        description = "A 'ten past six' style clock";
        license = "GPL";
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "fuzzytime";
      }) {};
 
   "fvars" = callPackage
@@ -102522,6 +103789,7 @@ self: {
        description = "Generate Gentoo ebuilds from NodeJS/npm packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "g-npm";
        broken = true;
      }) {};
 
@@ -102599,6 +103867,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Theorem prover for intuitionistic propositional logic using G4ip";
        license = lib.licenses.mit;
+       mainProgram = "g4ip-prover";
      }) {};
 
   "gact" = callPackage
@@ -102617,6 +103886,7 @@ self: {
        description = "General Alignment Clustering Tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gact";
      }) {};
 
   "galois-fft" = callPackage
@@ -102687,6 +103957,7 @@ self: {
        testHaskellDepends = [ array base hspec ];
        description = "Conway's Game of Life";
        license = lib.licenses.mit;
+       mainProgram = "game-of-life";
      }) {};
 
   "game-probability" = callPackage
@@ -102725,6 +103996,7 @@ self: {
        description = "Game clock that shows two analog clock faces";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gameclock";
        broken = true;
      }) {};
 
@@ -102757,6 +104029,7 @@ self: {
        description = "Tool for generating TOTP MFA tokens";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gamgee";
        broken = true;
      }) {};
 
@@ -103053,7 +104326,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "GCode processor";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sorki ];
+       mainProgram = "gcodehs";
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "gconf" = callPackage
@@ -103126,6 +104400,7 @@ self: {
        description = "API Wrapping for Coinbase's GDAX exchange";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sandbox";
      }) {};
 
   "gdelt" = callPackage
@@ -103205,6 +104480,7 @@ self: {
        ];
        description = "recursive atomic build system";
        license = lib.licenses.gpl3Only;
+       mainProgram = "gdo";
      }) {};
 
   "gdp" = callPackage
@@ -103219,6 +104495,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Reason about invariants and preconditions with ghosts of departed proofs";
        license = lib.licenses.bsd3;
+       mainProgram = "gdp";
      }) {};
 
   "gearbox" = callPackage
@@ -103232,6 +104509,7 @@ self: {
        executableHaskellDepends = [ base GLUT OpenGLRaw Vec ];
        description = "zooming rotating fractal gears graphics demo";
        license = lib.licenses.gpl3Only;
+       mainProgram = "gearbox";
      }) {};
 
   "gedcom" = callPackage
@@ -103295,6 +104573,7 @@ self: {
        description = "Geek blog engine server";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "geek";
      }) {};
 
   "gegl" = callPackage
@@ -103336,6 +104615,7 @@ self: {
        description = "A graphics description language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -103389,6 +104669,7 @@ self: {
        description = "OpenGL rendering routines for the gelatin-picture graphics EDSL";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gelatin-gl-example";
      }) {};
 
   "gelatin-sdl2" = callPackage
@@ -103407,6 +104688,7 @@ self: {
        description = "An SDL2 backend for the gelatin renderer";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gelatin-sdl2-example";
      }) {};
 
   "gelatin-shaders" = callPackage
@@ -103468,6 +104750,7 @@ self: {
        description = "Generate CSV Exports of Your Gemini Trades, Transfers, & Earn Transactions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gemini-exports";
        broken = true;
      }) {};
 
@@ -103523,6 +104806,7 @@ self: {
        description = "A barebones textboard for the Gemini protocol";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gemini-textboard";
      }) {};
 
   "gemstone" = callPackage
@@ -103577,6 +104861,7 @@ self: {
        description = "Create wordlist-based passwords easily";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gen-passwd";
        broken = true;
      }) {};
 
@@ -103612,6 +104897,7 @@ self: {
        description = "Identify a persons gender by their first name";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gender";
        broken = true;
      }) {};
 
@@ -103744,6 +105030,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "generic-aeson_0_2_0_14" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, generic-deriving, mtl
+     , tagged, text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "generic-aeson";
+       version = "0.2.0.14";
+       sha256 = "0ssras2db9fqgyfhhw2pk827xf4dd4g9s9vwj8g85vaqxyvzyd8x";
+       libraryHaskellDepends = [
+         aeson attoparsec base generic-deriving mtl tagged text
+         unordered-containers vector
+       ];
+       description = "Derivation of Aeson instances using GHC generics";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "generic-arbitrary" = callPackage
     ({ mkDerivation, base, QuickCheck }:
      mkDerivation {
@@ -104073,7 +105376,7 @@ self: {
        ];
        description = "Generically derive traversals, lenses and prisms";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "generic-optics-lite" = callPackage
@@ -104246,6 +105549,17 @@ self: {
        broken = true;
      }) {};
 
+  "generically" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "generically";
+       version = "0.1";
+       sha256 = "0w9b7yynq0gk44jvdp1c8760lqpa1c38v5r1qav282yhw602idym";
+       libraryHaskellDepends = [ base ];
+       description = "Generically newtype to use with DerivingVia";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "generics-eot" = callPackage
     ({ mkDerivation, base, directory, doctest, filepath, hspec
      , interpolate, markdown-unlit, mockery, QuickCheck, shake, silently
@@ -104402,6 +105716,7 @@ self: {
        description = "A Genetic Algorithm library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hellogenetics";
        broken = true;
      }) {};
 
@@ -104427,6 +105742,7 @@ self: {
        description = "GenI graphical user interface";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "geni-gui";
      }) {};
 
   "geni-util" = callPackage
@@ -104451,6 +105767,7 @@ self: {
        description = "Companion tools for use with the GenI surface realiser";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "geni-util";
      }) {};
 
   "geniconvert" = callPackage
@@ -104471,6 +105788,7 @@ self: {
        description = "Conversion utility for the GenI generator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "geniconvert";
      }) {};
 
   "genifunctors" = callPackage
@@ -104531,6 +105849,7 @@ self: {
        description = "Simple HTTP server for GenI results";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "geniserver";
      }) {};
 
   "genprog" = callPackage
@@ -105444,6 +106763,7 @@ self: {
        ];
        description = "Geometry and matrix manipulation";
        license = lib.licenses.bsd3;
+       platforms = lib.platforms.x86;
      }) {};
 
   "geos" = callPackage
@@ -105505,6 +106825,7 @@ self: {
        description = "Fetch from emusic using .emx files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "getemx";
      }) {};
 
   "getflag" = callPackage
@@ -105583,6 +106904,7 @@ self: {
        description = "Grammatical Framework";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gf";
        broken = true;
      }) {};
 
@@ -105599,6 +106921,7 @@ self: {
        description = "A type checker and runtime system of rCOS/g (impl. of ggts-FCS).";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TC";
        broken = true;
      }) {};
 
@@ -105618,6 +106941,7 @@ self: {
        description = "Github Standard Labeler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gh-labeler";
        broken = true;
      }) {};
 
@@ -105638,6 +106962,7 @@ self: {
        testHaskellDepends = [ base hspec QuickCheck ];
        description = "Script helpers for interacting with GitHub";
        license = lib.licenses.bsd3;
+       mainProgram = "gh-pocket-knife";
      }) {};
 
   "ghc_9_2_2" = callPackage
@@ -105841,6 +107166,7 @@ self: {
        ];
        description = "Display GHC's core and assembly output in a pager";
        license = lib.licenses.bsd3;
+       mainProgram = "ghc-core";
      }) {};
 
   "ghc-core-html" = callPackage
@@ -105859,6 +107185,7 @@ self: {
        ];
        description = "Core to HTML display";
        license = lib.licenses.bsd3;
+       mainProgram = "ghc-core-html";
      }) {};
 
   "ghc-core-smallstep" = callPackage
@@ -105879,8 +107206,8 @@ self: {
     ({ mkDerivation, base, ghc, ghc-tcplugins-extra }:
      mkDerivation {
        pname = "ghc-corroborate";
-       version = "0.1.0";
-       sha256 = "0p7vnn0hyyk5d1bm10hxckzh8dga9b39n4cmcbfdb6h5schgcjdy";
+       version = "1.0.0";
+       sha256 = "0ai1xv3x8ls7cmgmd3bs7bnd5r3m10sys25gwwwaiimdgfhs3fd3";
        libraryHaskellDepends = [ base ghc ghc-tcplugins-extra ];
        description = "An flatter API for GHC typechecker plugins";
        license = lib.licenses.mpl20;
@@ -105919,6 +107246,7 @@ self: {
        description = "A simple TUI using ghc-debug";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-heap-view";
      }) {};
 
   "ghc-debug-client" = callPackage
@@ -106042,6 +107370,7 @@ self: {
        description = "Dump GHC's parsed, renamed, and type checked ASTs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-dump-tree";
        broken = true;
      }) {};
 
@@ -106068,6 +107397,7 @@ self: {
        description = "Handy tools for working with ghc-dump dumps";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-dump";
      }) {};
 
   "ghc-dup" = callPackage
@@ -106100,6 +107430,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Library and tool for parsing .eventlog files from GHC";
        license = lib.licenses.bsd3;
+       mainProgram = "ghc-events";
      }) {};
 
   "ghc-events-analyze" = callPackage
@@ -106124,6 +107455,7 @@ self: {
        description = "Analyze and visualize event logs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-events-analyze";
        broken = true;
      }) {};
 
@@ -106149,6 +107481,7 @@ self: {
        description = "Library and tool for parsing .eventlog files from parallel GHC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-events";
        broken = true;
      }) {};
 
@@ -106215,6 +107548,7 @@ self: {
        executableHaskellDepends = [ base directory filepath process ];
        description = "Graph performance of Haskell programs with different GC flags";
        license = lib.licenses.bsd3;
+       mainProgram = "ghc-gc-tune";
      }) {};
 
   "ghc-generic-instances" = callPackage
@@ -106563,6 +107897,7 @@ self: {
        ];
        description = "Accelerated version of ghc --make";
        license = lib.licenses.bsd3;
+       mainProgram = "ghc-make";
      }) {};
 
   "ghc-man-completion" = callPackage
@@ -106577,6 +107912,7 @@ self: {
        description = "Generate a bash completion from the GHC manpage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-man-completion";
        broken = true;
      }) {};
 
@@ -106664,6 +108000,7 @@ self: {
        description = "Utilities for extracting GHC options needed to compile a given Haskell target";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghcopts";
        broken = true;
      }) {bin-package-db = null;};
 
@@ -106691,6 +108028,7 @@ self: {
        description = "A parallel wrapper for 'ghc --make'";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-parmake";
        broken = true;
      }) {};
 
@@ -106736,6 +108074,7 @@ self: {
        description = "Simple utility to fix BROKEN package dependencies for cabal-install";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-pkg-autofix";
        broken = true;
      }) {};
 
@@ -106756,14 +108095,14 @@ self: {
      }) {};
 
   "ghc-plugs-out" = callPackage
-    ({ mkDerivation, base, ghc, th-printf }:
+    ({ mkDerivation, base, ghc, ghc-corroborate, th-printf }:
      mkDerivation {
        pname = "ghc-plugs-out";
-       version = "1.0.0.0";
-       sha256 = "0a6zqqwpsz38x07qj8jafjhp1pinb9xh1qs5ld56ms329aml2ymw";
+       version = "2.0.0.0";
+       sha256 = "1z2ifkxrdyl7jkqbn8y96w2vvx8hqh3sbflq1fvzqh4n61zm1xfs";
        isLibrary = false;
        isExecutable = false;
-       libraryHaskellDepends = [ base ghc th-printf ];
+       libraryHaskellDepends = [ base ghc ghc-corroborate th-printf ];
        testHaskellDepends = [ base ];
        doHaddock = false;
        description = "Type checker plugins without the type checking";
@@ -106837,6 +108176,7 @@ self: {
        ];
        description = "Turn GHC `-pj` profiling output into FlameGraph format";
        license = lib.licenses.bsd3;
+       mainProgram = "ghc-prof-aeson-flamegraph";
      }) {};
 
   "ghc-prof-flamegraph" = callPackage
@@ -106853,6 +108193,7 @@ self: {
        ];
        description = "Generates flamegraphs from GHC .prof files.";
        license = lib.licenses.mit;
+       mainProgram = "ghc-prof-flamegraph";
      }) {};
 
   "ghc-proofs" = callPackage
@@ -106898,6 +108239,7 @@ self: {
        description = "Simplified GHC API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-test";
      }) {};
 
   "ghc-simple" = callPackage
@@ -107023,6 +108365,7 @@ self: {
        description = "Utility for generating ctags and etags with GHC API";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-tags";
        broken = true;
      }) {};
 
@@ -107244,6 +108587,7 @@ self: {
        description = "Print minimal export lists";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-usage";
        broken = true;
      }) {};
 
@@ -107264,7 +108608,7 @@ self: {
        ];
        description = "Live visualization of data structures in GHCi";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ dalpd ];
+       maintainers = [ lib.maintainers.dalpd ];
      }) {};
 
   "ghcflags" = callPackage
@@ -107322,6 +108666,7 @@ self: {
        ];
        description = "ghci-dap is a GHCi having DAP interface";
        license = lib.licenses.bsd3;
+       mainProgram = "ghci-dap";
      }) {};
 
   "ghci-diagrams" = callPackage
@@ -107354,6 +108699,7 @@ self: {
        description = "An implementation of ghci using the Haskeline line-input library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghci-haskeline";
        broken = true;
      }) {};
 
@@ -107416,6 +108762,7 @@ self: {
        description = "Next generation GHCi";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghci-ng";
        broken = true;
      }) {};
 
@@ -107471,7 +108818,8 @@ self: {
        ];
        description = "GHCi based bare bones IDE";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "ghcid";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "ghcide" = callPackage
@@ -107545,7 +108893,7 @@ self: {
        benchmarkToolDepends = [ hp2pretty implicit-hie ];
        description = "The core of an IDE";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "ghcjs-ajax" = callPackage
@@ -107635,9 +108983,7 @@ self: {
        ];
        description = "GHCJS DOM Hello World, an example package";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "ghcjs-dom-jsaddle" = callPackage
@@ -107813,6 +109159,7 @@ self: {
        description = "Interactive Haskell interpreter in a browser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghclive";
        broken = true;
      }) {};
 
@@ -107833,6 +109180,7 @@ self: {
        description = "GHC .prof files viewer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghcprofview";
      }) {};
 
   "ghcup" = callPackage
@@ -107884,6 +109232,7 @@ self: {
        description = "ghc toolchain installer";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghcup";
        broken = true;
      }) {};
 
@@ -107898,6 +109247,7 @@ self: {
        executableHaskellDepends = [ base zenc ];
        description = "Decode Z-encoded strings from GHC";
        license = lib.licenses.bsd3;
+       mainProgram = "ghczdecode";
      }) {};
 
   "ghost-buster" = callPackage
@@ -107934,6 +109284,7 @@ self: {
        description = "Trivial routines for inspecting git repositories";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ght";
      }) {};
 
   "gi-adwaita" = callPackage
@@ -107955,9 +109306,7 @@ self: {
        libraryPkgconfigDepends = [ libadwaita ];
        description = "Adwaita bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) libadwaita;};
@@ -108139,9 +109488,7 @@ self: {
        libraryPkgconfigDepends = [ libdbusmenu ];
        description = "Dbusmenu bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) libdbusmenu;};
 
   "gi-dbusmenugtk3" = callPackage
@@ -108166,9 +109513,7 @@ self: {
        libraryPkgconfigDepends = [ gtk3 libdbusmenu-gtk3 ];
        description = "DbusmenuGtk bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) gtk3; inherit (pkgs) libdbusmenu-gtk3;};
 
   "gi-gdk" = callPackage
@@ -108305,9 +109650,7 @@ self: {
        libraryPkgconfigDepends = [ libgit2-glib ];
        description = "libgit2-glib bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) libgit2-glib;};
 
   "gi-gio" = callPackage
@@ -108749,9 +110092,7 @@ self: {
        libraryPkgconfigDepends = [ gtk-mac-integration-gtk3 ];
        description = "GtkosxApplication bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-       ];
+       platforms = lib.platforms.darwin;
      }) {inherit (pkgs) gtk-mac-integration-gtk3;};
 
   "gi-gtksheet" = callPackage
@@ -108868,9 +110209,7 @@ self: {
        libraryPkgconfigDepends = [ ibus ];
        description = "IBus bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) ibus;};
 
   "gi-javascriptcore" = callPackage
@@ -108890,9 +110229,7 @@ self: {
        libraryPkgconfigDepends = [ webkitgtk ];
        description = "JavaScriptCore bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) webkitgtk;};
 
   "gi-json" = callPackage
@@ -108956,9 +110293,7 @@ self: {
        libraryPkgconfigDepends = [ ostree ];
        description = "OSTree bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) ostree;};
 
   "gi-pango" = callPackage
@@ -109142,9 +110477,7 @@ self: {
        libraryPkgconfigDepends = [ vte_291 ];
        description = "Vte bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {vte_291 = pkgs.vte;};
 
   "gi-webkit" = callPackage
@@ -109192,9 +110525,7 @@ self: {
        libraryPkgconfigDepends = [ webkitgtk ];
        description = "WebKit2 bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) webkitgtk;};
 
   "gi-webkit2webextension" = callPackage
@@ -109219,9 +110550,7 @@ self: {
        libraryPkgconfigDepends = [ webkitgtk ];
        description = "WebKit2-WebExtension bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) webkitgtk;};
 
   "gi-wnck" = callPackage
@@ -109245,9 +110574,7 @@ self: {
        libraryPkgconfigDepends = [ libwnck ];
        description = "Wnck bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) libwnck;};
 
   "gi-xlib" = callPackage
@@ -109287,6 +110614,7 @@ self: {
        description = "Fuzzy finder for cabal executables";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "giak";
        broken = true;
      }) {};
 
@@ -109301,6 +110629,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "A compiler for operating on serialized trees";
        license = lib.licenses.bsd3;
+       mainProgram = "gibbon";
      }) {};
 
   "gimlh" = callPackage
@@ -109345,6 +110674,7 @@ self: {
        description = "An implementation of the Jinja2 template language in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ginger";
        broken = true;
      }) {};
 
@@ -109393,6 +110723,7 @@ self: {
        description = "Ginsu Gale Client";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ginsu";
        broken = true;
      }) {inherit (pkgs) openssl;};
 
@@ -109435,6 +110766,7 @@ self: {
        description = "Git Performance Dashboard";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gipeda";
      }) {};
 
   "giphy-api" = callPackage
@@ -109480,6 +110812,7 @@ self: {
        description = "A reliable command-line client for gist.github.com";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gist";
        broken = true;
      }) {};
 
@@ -109526,6 +110859,7 @@ self: {
        description = "Determine which Git repositories need actions to be taken";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-all";
        broken = true;
      }) {};
 
@@ -109599,7 +110933,8 @@ self: {
        enableSharedExecutables = false;
        description = "manage files with git, without checking their contents into git";
        license = lib.licenses.agpl3Only;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "git-annex";
+       maintainers = [ lib.maintainers.peti ];
      }) {inherit (pkgs) bup; inherit (pkgs) curl; inherit (pkgs) git; 
          inherit (pkgs) gnupg; inherit (pkgs) lsof; inherit (pkgs) openssh; 
          inherit (pkgs) perl; inherit (pkgs) rsync; inherit (pkgs) wget; 
@@ -109623,6 +110958,7 @@ self: {
        ];
        description = "git checkout command-line tool";
        license = lib.licenses.bsd3;
+       mainProgram = "git-brunch";
      }) {};
 
   "git-checklist" = callPackage
@@ -109642,6 +110978,7 @@ self: {
        description = "Maintain per-branch checklists in Git";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-checklist";
        broken = true;
      }) {};
 
@@ -109685,6 +111022,7 @@ self: {
        description = "Haskell Git Helper Tool";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cuk";
        broken = true;
      }) {};
 
@@ -109746,6 +111084,7 @@ self: {
        description = "Custom git command for formatting code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-fmt";
      }) {};
 
   "git-freq" = callPackage
@@ -109768,6 +111107,7 @@ self: {
        ];
        description = "A Git subcommand to show total addition, deletion per file";
        license = lib.licenses.bsd3;
+       mainProgram = "git-freq";
      }) {};
 
   "git-gpush" = callPackage
@@ -109789,6 +111129,7 @@ self: {
        description = "More intelligent push-to-GitHub utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-gpush";
      }) {};
 
   "git-jump" = callPackage
@@ -109803,6 +111144,7 @@ self: {
        description = "Move a git branch";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-jump";
        broken = true;
      }) {};
 
@@ -109838,6 +111180,7 @@ self: {
        ];
        description = "Tool to help resolving git conflicts";
        license = lib.licenses.gpl2Only;
+       mainProgram = "git-mediate";
      }) {};
 
   "git-monitor" = callPackage
@@ -109862,6 +111205,7 @@ self: {
        description = "Passively snapshots working tree changes efficiently";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-monitor";
      }) {};
 
   "git-object" = callPackage
@@ -109911,6 +111255,7 @@ self: {
        description = "Git remote helper to store git objects on IPFS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-remote-ipfs";
      }) {};
 
   "git-repair" = callPackage
@@ -109940,6 +111285,7 @@ self: {
        description = "repairs a damaged git repository";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-repair";
        broken = true;
      }) {};
 
@@ -109961,6 +111307,7 @@ self: {
        description = "A sanity checker for your git history";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-sanity";
      }) {};
 
   "git-vogue" = callPackage
@@ -110011,6 +111358,7 @@ self: {
        ];
        description = "More efficient replacement to the great git-radar";
        license = lib.licenses.bsd3;
+       mainProgram = "gitHUD";
      }) {};
 
   "gitcache" = callPackage
@@ -110028,6 +111376,7 @@ self: {
        ];
        description = "Simple git utility to use and manage clone cache";
        license = lib.licenses.bsd3;
+       mainProgram = "gitcache";
      }) {};
 
   "gitdo" = callPackage
@@ -110048,6 +111397,7 @@ self: {
        description = "Create Github issues out of TODO comments in code";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gitdo";
      }) {};
 
   "githash" = callPackage
@@ -110115,8 +111465,8 @@ self: {
        pname = "github";
        version = "0.28";
        sha256 = "142l0zff852606hkpvkhvagp6h3ziq2z2x7x2pa77q5ymyq48089";
-       revision = "3";
-       editedCabalFile = "03cn567jgkgd8a78ymm9zws8fp8881kmpj6jkb7cj3kbq05062jv";
+       revision = "4";
+       editedCabalFile = "063plc1v50fww3kar571czk2brqdb82zm33jsfnbcfal5i2w1v73";
        libraryHaskellDepends = [
          aeson base base-compat base16-bytestring binary binary-instances
          bytestring containers cryptohash-sha1 deepseq deepseq-generics
@@ -110230,6 +111580,7 @@ self: {
        ];
        description = "Upload files to GitHub releases";
        license = lib.licenses.mit;
+       mainProgram = "github-release";
      }) {};
 
   "github-rest" = callPackage
@@ -110242,6 +111593,8 @@ self: {
        pname = "github-rest";
        version = "1.1.2";
        sha256 = "139ysq1m1ndy6z1znfd1np25ynxankkfm6xmwabhdr7yiqzi2v1b";
+       revision = "1";
+       editedCabalFile = "09vinl6l5jy8bz504bhw3g2baj9fc0fym2vnh8q76xzmz2s0b686";
        libraryHaskellDepends = [
          aeson base bytestring http-client http-client-tls http-types jwt
          mtl scientific text time transformers unliftio unliftio-core
@@ -110427,6 +111780,7 @@ self: {
        description = "Apply GitHub .gitignore templates to already existing repositories.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gitignore";
        broken = true;
      }) {};
 
@@ -110464,7 +111818,7 @@ self: {
        ];
        description = "Wiki using happstack, git or darcs, and pandoc";
        license = "GPL";
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "gitlab-api" = callPackage
@@ -110767,6 +112121,7 @@ self: {
        description = "CLI Giphy search tool with previews in iTerm 2";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "givegif";
      }) {};
 
   "gjk" = callPackage
@@ -110903,6 +112258,7 @@ self: {
        ];
        description = "A simply typed lambda calculus interpreter, written with GADTs";
        license = lib.licenses.bsd3;
+       mainProgram = "glam";
      }) {};
 
   "glapp" = callPackage
@@ -110920,6 +112276,7 @@ self: {
        description = "An OpenGL micro framework";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -110934,7 +112291,7 @@ self: {
        libraryHaskellDepends = [ base vector ];
        description = "Graphical Lasso algorithm";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "glaze" = callPackage
@@ -111031,6 +112388,7 @@ self: {
        description = "Examples of using glazier-react";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "glazier-react-todo";
      }) {};
 
   "glazier-react-widget" = callPackage
@@ -111076,6 +112434,7 @@ self: {
        description = "Tiny cli to fetch PR info from gitlab";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gli";
        broken = true;
      }) {};
 
@@ -111140,6 +112499,7 @@ self: {
        executableHaskellDepends = [ base ppm split ];
        description = "A simple ray tracer in an early stage of development";
        license = lib.licenses.bsd3;
+       mainProgram = "glintcollider";
      }) {};
 
   "glirc" = callPackage
@@ -111169,7 +112529,8 @@ self: {
        testHaskellDepends = [ base HUnit ];
        description = "Console IRC client";
        license = lib.licenses.isc;
-       maintainers = with lib.maintainers; [ kiwi ];
+       mainProgram = "glirc";
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "gll" = callPackage
@@ -111293,6 +112654,7 @@ self: {
        description = "ray tracer";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Glome";
      }) {};
 
   "gloss" = callPackage
@@ -111417,6 +112779,7 @@ self: {
        description = "Export Gloss pictures to png, bmp, tga, tiff, gif and juicy-pixels-image";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gloss-export-exe";
        broken = true;
      }) {};
 
@@ -111452,6 +112815,7 @@ self: {
        ];
        description = "Load any image supported by Juicy.Pixels in your gloss application";
        license = lib.licenses.bsd3;
+       mainProgram = "gloss-juicy-viewer";
      }) {};
 
   "gloss-raster" = callPackage
@@ -111562,6 +112926,7 @@ self: {
        ];
        description = "Comprehensive GLPK linear programming bindings";
        license = lib.licenses.bsd3;
+       mainProgram = "glpk-hs-example";
      }) {inherit (pkgs) glpk;};
 
   "glsl" = callPackage
@@ -111588,6 +112953,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Parser and optimizer for a small subset of GLSL";
        license = lib.licenses.bsd3;
+       mainProgram = "optshader";
      }) {};
 
   "gltf-codec" = callPackage
@@ -111638,6 +113004,7 @@ self: {
        description = "Make better services";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "glue-example";
        broken = true;
      }) {};
 
@@ -111731,6 +113098,7 @@ self: {
        ];
        description = "Make better services and clients";
        license = lib.licenses.bsd3;
+       mainProgram = "glue-example";
      }) {};
 
   "gluturtle" = callPackage
@@ -111799,6 +113167,7 @@ self: {
        description = "Mandelbrot Set explorer using GTK";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gmndl";
      }) {};
 
   "gmpint" = callPackage
@@ -111827,6 +113196,7 @@ self: {
        description = "Randomly set a picture as the GNOME desktop background";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gnome-desktop";
      }) {};
 
   "gnome-keyring" = callPackage
@@ -111843,9 +113213,7 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Bindings for libgnome-keyring";
        license = lib.licenses.gpl3Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs.gnome) gnome-keyring; 
          inherit (pkgs) libgnome-keyring;};
 
@@ -112139,6 +113507,7 @@ self: {
        description = "A monadic take on a 2,500-year-old board game - GTK+ UI";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "goatee-gtk";
      }) {};
 
   "gochan" = callPackage
@@ -112204,6 +113573,7 @@ self: {
        executableHaskellDepends = [ base criterion megaparsec text ];
        description = "Megaparsec parser for Godot `tscn` and `gdns` files";
        license = lib.licenses.bsd3;
+       mainProgram = "bench";
      }) {};
 
   "gofer-prelude" = callPackage
@@ -114488,8 +115858,8 @@ self: {
        pname = "goldplate";
        version = "0.2.0";
        sha256 = "1f2n981676ykrv08fgdj87mj5r4841a18ywvgpc2hgapsgwbgma1";
-       revision = "2";
-       editedCabalFile = "1wnpg7147k48nca58lp3xg8dv38jnj8k2hdbv0312d9ndqpiws8b";
+       revision = "3";
+       editedCabalFile = "0h1ayys29md2nbiqshdrhr8kz06dikiwkb4ikcg3wfzb4k1lpzvl";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -114499,6 +115869,7 @@ self: {
        ];
        description = "A lightweight golden test runner";
        license = lib.licenses.asl20;
+       mainProgram = "goldplate";
      }) {};
 
   "gooey" = callPackage
@@ -114589,6 +115960,7 @@ self: {
        description = "Google HTML5 Slide generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "google-html5-slide";
        broken = true;
      }) {};
 
@@ -114847,7 +116219,8 @@ self: {
        ];
        description = "proxy gopher over http";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       mainProgram = "gopher-proxy";
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "gopherbot" = callPackage
@@ -114866,6 +116239,7 @@ self: {
        description = "Spidering robot to download files from Gopherspace";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gopherbot";
        broken = true;
      }) {};
 
@@ -115140,6 +116514,7 @@ self: {
        ];
        description = "A command line utility for practicing typing";
        license = lib.licenses.bsd3;
+       mainProgram = "gotta-go-fast";
      }) {};
 
   "gotyno-hs" = callPackage
@@ -115164,6 +116539,7 @@ self: {
        ];
        description = "A type definition compiler supporting multiple output languages";
        license = lib.licenses.bsd2;
+       mainProgram = "gotyno-hs";
      }) {};
 
   "gpah" = callPackage
@@ -115185,6 +116561,7 @@ self: {
        description = "Generic Programming Use in Hackage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gpah";
        broken = true;
      }) {};
 
@@ -115219,6 +116596,7 @@ self: {
        ];
        description = "Haskell GPIO interface, designed specifically for the RaspberryPi";
        license = lib.licenses.bsd3;
+       mainProgram = "gpio";
      }) {};
 
   "gpmf" = callPackage
@@ -115248,6 +116626,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gpmf";
        broken = true;
      }) {};
 
@@ -115302,6 +116681,7 @@ self: {
        description = "GPS to HTML Summary Report";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gps2htmlReport";
      }) {};
 
   "gpx-conduit" = callPackage
@@ -115402,6 +116782,7 @@ self: {
        ];
        description = "Configure grafana dashboards from Dhall expression";
        license = lib.licenses.asl20;
+       mainProgram = "grafdhall";
      }) {};
 
   "graflog" = callPackage
@@ -115645,6 +117026,7 @@ self: {
        ];
        description = "Functions for generating structured or random FGL graphs";
        license = lib.licenses.asl20;
+       mainProgram = "TestGen";
      }) {};
 
   "graph-matchings" = callPackage
@@ -115693,6 +117075,7 @@ self: {
        description = "Interactive graph rewriting system implementing various well-known combinators";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cl";
      }) {};
 
   "graph-rewriting-gl" = callPackage
@@ -115732,6 +117115,7 @@ self: {
        description = "Lambdascope, an optimal evaluator of the lambda calculus, as an interactive graph-rewriting system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambdascope";
      }) {};
 
   "graph-rewriting-layout" = callPackage
@@ -115806,6 +117190,7 @@ self: {
        description = "Evaluate first-order applicative term rewrite systems interactively using graph reduction";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trs";
      }) {};
 
   "graph-rewriting-ww" = callPackage
@@ -115827,6 +117212,7 @@ self: {
        description = "Evaluator of the lambda-calculus in an interactive graph rewriting system with explicit sharing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ww";
      }) {};
 
   "graph-serialize" = callPackage
@@ -115877,6 +117263,7 @@ self: {
        ];
        description = "Converts a graph-trace log into a DOT file for use with Graphviz";
        license = lib.licenses.mit;
+       mainProgram = "graph-trace-dot";
      }) {};
 
   "graph-trace-viz" = callPackage
@@ -115894,6 +117281,7 @@ self: {
        ];
        description = "Converts a graph-trace log into an HTML document";
        license = lib.licenses.mit;
+       mainProgram = "graph-trace-viz";
      }) {};
 
   "graph-utils" = callPackage
@@ -116047,6 +117435,7 @@ self: {
        description = "Tools for creating graphical UIs, based on wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cvexample";
      }) {};
 
   "graphite" = callPackage
@@ -116085,6 +117474,7 @@ self: {
        ];
        description = "Present the module dependencies of a program as a \"dot\" graph";
        license = lib.licenses.bsd3;
+       mainProgram = "graphmod";
      }) {};
 
   "graphmod-plugin" = callPackage
@@ -116104,6 +117494,7 @@ self: {
        description = "A reimplementation of graphmod as a source plugin";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "graphmod-plugin";
        broken = true;
      }) {};
 
@@ -116172,8 +117563,8 @@ self: {
        pname = "graphql-client";
        version = "1.1.1";
        sha256 = "1d00ib9c8ps8vv1qgrkjfzrjbgbsdnp1jiz7779bwm76j88vggb4";
-       revision = "4";
-       editedCabalFile = "0aiwn7pwv67nwfgg6ga4lr60i9gq9n402dsdyfw88i66fllhgmkc";
+       revision = "5";
+       editedCabalFile = "0kbpsca7iybc1ra1fm04c8axmbd18czgn1rq93j0ak9979yw79gd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -116192,6 +117583,7 @@ self: {
        description = "A client for Haskell programs to query a GraphQL API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "graphql-codegen";
      }) {};
 
   "graphql-spice" = callPackage
@@ -116289,6 +117681,7 @@ self: {
        description = "A simple tool to illustrate dependencies between Haskell types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "graphtype";
      }) {};
 
   "graphula" = callPackage
@@ -116414,6 +117807,7 @@ self: {
        description = "GRASP implementation for the AMMM project";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "grasp-exe";
        broken = true;
      }) {};
 
@@ -116499,6 +117893,7 @@ self: {
        description = "GreenCard, a foreign function pre-processor for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "greencard";
        broken = true;
      }) {};
 
@@ -116536,6 +117931,7 @@ self: {
        ];
        description = "Simple clipboard manager to be integrated with rofi";
        license = lib.licenses.bsd3;
+       mainProgram = "greenclip";
      }) {inherit (pkgs.xorg) libXScrnSaver; inherit (pkgs.xorg) libXau; 
          xcb = null; xdmcp = null; inherit (pkgs) xlibsWrapper;};
 
@@ -116578,6 +117974,7 @@ self: {
        description = "Graph database client for TinkerPop3 Gremlin Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gremlin-haskell-examples";
        broken = true;
      }) {};
 
@@ -116725,9 +118122,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Game engine for Prototyping on a Grid";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "gridbounds" = callPackage
@@ -116837,6 +118232,7 @@ self: {
        description = "grm grammar converter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "grm";
        broken = true;
      }) {};
 
@@ -116852,6 +118248,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Pretty printing for well-behaved Show instances";
        license = lib.licenses.bsd3;
+       mainProgram = "groom";
      }) {};
 
   "groot" = callPackage
@@ -116902,6 +118299,7 @@ self: {
        description = "Command line utility to manage AWS ECS resources";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "groot";
      }) {};
 
   "gross" = callPackage
@@ -116917,6 +118315,7 @@ self: {
        description = "A spoof on gloss for terminal animation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "groundhog" = callPackage
@@ -116979,6 +118378,7 @@ self: {
        description = "Type-safe datatype-database mapping library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "groundhog_inspector";
      }) {};
 
   "groundhog-mysql" = callPackage
@@ -117071,6 +118471,7 @@ self: {
        ];
        description = "Shell command for grouping files by dates into folders";
        license = lib.licenses.bsd3;
+       mainProgram = "group-by-date";
      }) {};
 
   "group-theory" = callPackage
@@ -117332,6 +118733,7 @@ self: {
        description = "fractal explorer GUI using the ruff library";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gruff";
      }) {};
 
   "gruff-examples" = callPackage
@@ -117397,6 +118799,7 @@ self: {
        description = "scrapes google scholar, provides RSS feed";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gscholar-rss";
      }) {};
 
   "gsl-random" = callPackage
@@ -117441,6 +118844,7 @@ self: {
        description = "A visual generic menu";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gsmenu";
      }) {};
 
   "gssapi" = callPackage
@@ -117528,6 +118932,7 @@ self: {
        ];
        description = "Console and GUI interface for Google Translate service";
        license = "GPL";
+       mainProgram = "gtc";
      }) {};
 
   "gtfs" = callPackage
@@ -117638,7 +119043,7 @@ self: {
        libraryPkgconfigDepends = [ gtk-mac-integration-gtk2 ];
        description = "Bindings for the Gtk/OS X integration library";
        license = lib.licenses.lgpl21Only;
-       platforms = [ "aarch64-darwin" "x86_64-darwin" ];
+       platforms = lib.platforms.darwin;
      }) {inherit (pkgs) gtk-mac-integration-gtk2;};
 
   "gtk-serialized-event" = callPackage
@@ -117698,9 +119103,8 @@ self: {
        ];
        description = "A standalone StatusNotifierItem/AppIndicator tray";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "gtk-sni-tray-standalone";
      }) {inherit (pkgs) gtk3;};
 
   "gtk-strut" = callPackage
@@ -117888,6 +119292,7 @@ self: {
        description = "Gtk2Hs Hello World, an example package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gtk2hs-hello";
        broken = true;
      }) {};
 
@@ -117955,9 +119360,7 @@ self: {
        libraryPkgconfigDepends = [ gtk-mac-integration-gtk3 ];
        description = "Bindings for the Gtk/OS X integration library";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-       ];
+       platforms = lib.platforms.darwin;
      }) {inherit (pkgs) gtk-mac-integration-gtk3;};
 
   "gtkglext" = callPackage
@@ -118124,6 +119527,7 @@ self: {
        description = "graphical untyped lambda calculus interactive interpreter";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gulcii";
        broken = true;
      }) {};
 
@@ -118150,6 +119554,7 @@ self: {
        description = "ghcWithPackages cmdline util";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gw";
        broken = true;
      }) {};
 
@@ -118165,6 +119570,7 @@ self: {
        description = "A binary version of GiveYouAHead";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gyah";
        broken = true;
      }) {};
 
@@ -118188,6 +119594,7 @@ self: {
        description = "REST client to the gym-http-api project";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -118213,6 +119620,7 @@ self: {
        description = "Haskell library for retrieving data from various booru image sites";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "h-booru";
        broken = true;
      }) {};
 
@@ -118263,6 +119671,7 @@ self: {
        description = "Reversi game in haskell/blank-canvas";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "h-reversi";
        broken = true;
      }) {};
 
@@ -118382,6 +119791,7 @@ self: {
        testHaskellDepends = [ base hashable ];
        description = "Conceptual modelling support for Haskell";
        license = lib.licenses.mit;
+       mainProgram = "hCM";
      }) {};
 
   "hCsound" = callPackage
@@ -118468,6 +119878,7 @@ self: {
        description = "A library for analyzing and transforming LLVM (3.5) assembly codes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "llvm-test";
        broken = true;
      }) {hooplext = null;};
 
@@ -118503,6 +119914,7 @@ self: {
        description = "The tool to transform the OFF to other image format";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hOff-display-gl";
      }) {};
 
   "hOff-parser" = callPackage
@@ -118529,8 +119941,8 @@ self: {
      }:
      mkDerivation {
        pname = "hOpenPGP";
-       version = "2.9.7";
-       sha256 = "1fix387wi8fqdav4zzczc3dyzcwrnb4zvpq72prs5cs7sc609w3z";
+       version = "2.9.8";
+       sha256 = "1ibd9hah5y2qqpmfv5dk9iys3fnixw9blp855mjhfwpikgn3xypq";
        libraryHaskellDepends = [
          aeson asn1-encoding attoparsec base base16-bytestring bifunctors
          binary binary-conduit bytestring bz2 conduit conduit-extra
@@ -118668,6 +120080,7 @@ self: {
        ];
        description = "Interface to Amazon's Simple Storage Service (S3)";
        license = lib.licenses.bsd3;
+       mainProgram = "hs3";
      }) {};
 
   "hScraper" = callPackage
@@ -118748,6 +120161,7 @@ self: {
        description = "Optimal variable selection in chain graphical model";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hVOIDP";
        broken = true;
      }) {inherit (pkgs) blas; inherit (pkgs) liblapack;};
 
@@ -118766,6 +120180,7 @@ self: {
        ];
        description = "A Gtk mixer GUI application for FreeBSD";
        license = lib.licenses.bsd3;
+       mainProgram = "hxmixer";
      }) {};
 
   "haar" = callPackage
@@ -118809,6 +120224,7 @@ self: {
        description = "Haskell message bot framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hello-bot";
      }) {};
 
   "hable" = callPackage
@@ -118845,6 +120261,7 @@ self: {
        description = "A minimalist static blog generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hablo";
      }) {};
 
   "hablog" = callPackage
@@ -118868,6 +120285,7 @@ self: {
        description = "A blog system";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hablog";
      }) {};
 
   "hacanon-light" = callPackage
@@ -119318,6 +120736,8 @@ self: {
        pname = "hackage-cli";
        version = "0.0.3.6";
        sha256 = "1wnh3571mgwyl9c5bfkwvr4rvsnw41qb9mlz1nda1ya53qfdjl4p";
+       revision = "1";
+       editedCabalFile = "06225nrw6icdlkcxp0wnh006fxsnyfpl55i9qm7pgybxb3qgf8l0";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -119335,6 +120755,7 @@ self: {
        doHaddock = false;
        description = "CLI tool for Hackage";
        license = lib.licenses.gpl3Plus;
+       mainProgram = "hackage-cli";
      }) {};
 
   "hackage-db" = callPackage
@@ -119353,7 +120774,7 @@ self: {
        ];
        description = "Access cabal-install's Hackage database via Data.Map";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hackage-diff" = callPackage
@@ -119374,6 +120795,7 @@ self: {
        description = "Compare the public API of different versions of a Hackage library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage-diff";
        broken = true;
      }) {};
 
@@ -119405,6 +120827,7 @@ self: {
        description = "Simple mirroring utility for Hackage";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage-mirror";
      }) {};
 
   "hackage-plot" = callPackage
@@ -119423,6 +120846,7 @@ self: {
        ];
        description = "Generate cumulative graphs of hackage uploads";
        license = lib.licenses.bsd3;
+       mainProgram = "hackage-plot";
      }) {};
 
   "hackage-processing" = callPackage
@@ -119437,6 +120861,7 @@ self: {
        description = "Process 00-index.tar.gz from Hackage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage-find-contribution";
        broken = true;
      }) {};
 
@@ -119462,6 +120887,7 @@ self: {
        description = "Provide a proxy for Hackage which modifies responses in some way. (deprecated)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage-proxy";
        broken = true;
      }) {};
 
@@ -119486,6 +120912,7 @@ self: {
        description = "Manage secure file-based package repositories";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage-repo-tool";
        broken = true;
      }) {};
 
@@ -119591,6 +121018,7 @@ self: {
        ];
        description = "Generate sparkline graphs of hackage statistics";
        license = lib.licenses.bsd3;
+       mainProgram = "hackagesparks";
      }) {};
 
   "hackage-whatsnew" = callPackage
@@ -119610,6 +121038,7 @@ self: {
        description = "Check for differences between working directory and hackage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage-whatsnew";
        broken = true;
      }) {};
 
@@ -119625,6 +121054,7 @@ self: {
        description = "Convert Hackage RSS feeds to wiki format for publishing on Haskell.org";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage2hwn";
        broken = true;
      }) {};
 
@@ -119640,6 +121070,7 @@ self: {
        description = "Send new Hackage releases to Twitter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage2twitter";
      }) {};
 
   "hackager" = callPackage
@@ -119658,6 +121089,7 @@ self: {
        description = "Hackage testing tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackager";
        broken = true;
      }) {};
 
@@ -119684,6 +121116,7 @@ self: {
        description = "API for Hacker News";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackernews-example";
        broken = true;
      }) {};
 
@@ -119701,6 +121134,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "\"Hack\" like a programmer in movies and games!";
        license = lib.licenses.mit;
+       mainProgram = "hackertyper";
      }) {};
 
   "hackmanager" = callPackage
@@ -119722,6 +121156,7 @@ self: {
        description = "Generate useful files for Haskell projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackmanager";
      }) {};
 
   "hackport" = callPackage
@@ -119757,6 +121192,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Hackage and Portage integration tool";
        license = lib.licenses.gpl3Plus;
+       mainProgram = "hackport";
      }) {};
 
   "hactor" = callPackage
@@ -119805,6 +121241,7 @@ self: {
        description = "A documentation-generation tool for Haskell libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haddock";
      }) {};
 
   "haddock" = callPackage
@@ -119822,6 +121259,7 @@ self: {
        description = "A documentation-generation tool for Haskell libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haddock";
      }) {};
 
   "haddock-api_2_23_1" = callPackage
@@ -119908,6 +121346,7 @@ self: {
        description = "A documentation-generation tool for Haskell libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haddock";
        broken = true;
      }) {};
 
@@ -119993,6 +121432,7 @@ self: {
        description = "Generate docset of Dash by Haddock haskell documentation tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haddocset";
      }) {};
 
   "hadolint" = callPackage
@@ -120027,6 +121467,7 @@ self: {
        ];
        description = "Dockerfile Linter JavaScript API";
        license = lib.licenses.gpl3Only;
+       mainProgram = "hadolint";
      }) {};
 
   "hadoop-formats" = callPackage
@@ -120110,6 +121551,7 @@ self: {
        description = "Fast command line tools for working with Hadoop";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hh";
      }) {};
 
   "haeredes" = callPackage
@@ -120128,6 +121570,7 @@ self: {
        testHaskellDepends = [ base doctest filemanip process ];
        description = "Confirm delegation of NS and MX records";
        license = lib.licenses.agpl3Only;
+       mainProgram = "haeredes";
      }) {};
 
   "hafar" = callPackage
@@ -120169,6 +121612,7 @@ self: {
        description = "A static site generator with blogging/comments support";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haggis";
      }) {};
 
   "haggle" = callPackage
@@ -120205,6 +121649,7 @@ self: {
        executableHaskellDepends = [ base containers time ];
        description = "A simple library for creating animated ascii art on ANSI terminals";
        license = lib.licenses.bsd3;
+       mainProgram = "rotating-lambda";
      }) {};
 
   "hahp" = callPackage
@@ -120223,6 +121668,7 @@ self: {
        description = "Analytic Hierarchy Process";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hahp-example";
        broken = true;
      }) {};
 
@@ -120269,6 +121715,7 @@ self: {
        description = "A service for pull-based continuous deployment based on hydra";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hail";
        broken = true;
      }) {};
 
@@ -120306,6 +121753,7 @@ self: {
        description = "A program to send emails throught the Mailgun api";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hailgun-send";
      }) {};
 
   "hailgun-simple" = callPackage
@@ -120364,6 +121812,7 @@ self: {
        description = "Multi-app web platform framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hails";
        broken = true;
      }) {quickcheck-lio-instances = null;};
 
@@ -120384,6 +121833,7 @@ self: {
        description = "Dynamic launcher of Hails applications";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hails";
      }) {};
 
   "hairy" = callPackage
@@ -120413,6 +121863,7 @@ self: {
        description = "A JSON REST API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hairy";
        broken = true;
      }) {};
 
@@ -120461,6 +121912,7 @@ self: {
        executableHaskellDepends = [ directory process regexpr yjtools ];
        description = "make tool. ruby : rake = haskell : hake";
        license = "GPL";
+       mainProgram = "hake";
      }) {};
 
   "hakismet" = callPackage
@@ -120489,6 +121941,7 @@ self: {
        description = "Minimal akka-inspired actor library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hakka-example";
        broken = true;
      }) {};
 
@@ -120525,8 +121978,8 @@ self: {
        pname = "hakyll";
        version = "4.15.1.1";
        sha256 = "0b3bw275q1xbx8qs9a6gzzs3c9z3qdj7skqhpp09jkchi5kdvhvi";
-       revision = "3";
-       editedCabalFile = "1h9cy5yp98f2wi0yk6l0qpy3zpg1kb7yizh8dkmss0nzq242nz4s";
+       revision = "4";
+       editedCabalFile = "0bvyn8mw6gy95liznjad0gjbj7130dsb0va40xmmfdy97dcp5jql";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -120548,7 +122001,8 @@ self: {
        testToolDepends = [ util-linux ];
        description = "A static website compiler library";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ erictapen ];
+       mainProgram = "hakyll-init";
+       maintainers = [ lib.maintainers.erictapen ];
      }) {inherit (pkgs) util-linux;};
 
   "hakyll-R" = callPackage
@@ -120628,6 +122082,7 @@ self: {
        description = "Extra modules for the hakyll website compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hakyll-contrib";
        broken = true;
      }) {};
 
@@ -120666,6 +122121,7 @@ self: {
        description = "Compile Elm code for inclusion in Hakyll static site";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hakyll-contrib-elm-example";
        broken = true;
      }) {};
 
@@ -120678,7 +122134,7 @@ self: {
        libraryHaskellDepends = [ base hakyll hyphenation split tagsoup ];
        description = "automatic hyphenation for Hakyll";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ erictapen ];
+       maintainers = [ lib.maintainers.erictapen ];
      }) {};
 
   "hakyll-contrib-i18n" = callPackage
@@ -120704,6 +122160,7 @@ self: {
        description = "A Hakyll library for internationalization";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haki18nll";
        broken = true;
      }) {};
 
@@ -120756,6 +122213,7 @@ self: {
        ];
        description = "Convert from other blog engines to Hakyll";
        license = lib.licenses.bsd3;
+       mainProgram = "hakyll-convert";
      }) {};
 
   "hakyll-dhall" = callPackage
@@ -120777,6 +122235,7 @@ self: {
        description = "Dhall compiler for Hakyll";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hakyll-dhall-test-app";
        broken = true;
      }) {};
 
@@ -120823,6 +122282,7 @@ self: {
        executableHaskellDepends = [ base hakyll ];
        testHaskellDepends = [ base ];
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "hakyll-filestore" = callPackage
@@ -121068,6 +122528,7 @@ self: {
        description = "A tool to generate missing import statements for Haskell modules";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "halberd";
      }) {};
 
   "half" = callPackage
@@ -121172,6 +122633,7 @@ self: {
        description = "A live recompiler";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "halive";
        broken = true;
      }) {};
 
@@ -121231,6 +122693,7 @@ self: {
        description = "GTK application for playing Halma";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "halma-gui";
      }) {};
 
   "halma-telegram-bot" = callPackage
@@ -121256,6 +122719,7 @@ self: {
        description = "Telegram bot for playing Halma";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "halma-telegram-bot";
      }) {};
 
   "haltavista" = callPackage
@@ -121269,6 +122733,7 @@ self: {
        executableHaskellDepends = [ base hint process ];
        description = "looks for functions given a set of example input/outputs";
        license = lib.licenses.gpl2Only;
+       mainProgram = "haltavista";
      }) {};
 
   "halves" = callPackage
@@ -121303,6 +122768,7 @@ self: {
        description = "A simple, static HaLVM web server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "halvm-web";
        broken = true;
      }) {HALVMCore = null; XenDevice = null;};
 
@@ -121330,6 +122796,7 @@ self: {
        testHaskellDepends = [ base bytestring ];
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hamlog";
      }) {};
 
   "hamid" = callPackage
@@ -121366,6 +122833,7 @@ self: {
        ];
        description = "Physics on generalized coordinate systems using Hamiltonian Mechanics and AD";
        license = lib.licenses.bsd3;
+       mainProgram = "hamilton-examples";
      }) {};
 
   "hamlet" = callPackage
@@ -121397,6 +122865,7 @@ self: {
        description = "Haskell macro preprocessor";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hampp";
        broken = true;
      }) {};
 
@@ -121422,6 +122891,7 @@ self: {
        description = "Interpreter for SQL-structure definitions in YAML (YamSql)";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hamsql";
        broken = true;
      }) {};
 
@@ -121459,6 +122929,7 @@ self: {
        ];
        description = "Intel AMT serial-over-lan (SOL) client";
        license = lib.licenses.bsd3;
+       mainProgram = "hamtsolo";
      }) {};
 
   "hamusic" = callPackage
@@ -121547,6 +123018,7 @@ self: {
        description = "Library and command-line utility for accessing Google services and APIs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgdata";
        broken = true;
      }) {};
 
@@ -121641,6 +123113,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "API Client for the handwriting.io API.";
        license = lib.licenses.bsd3;
+       mainProgram = "handwriting";
      }) {};
 
   "hangman" = callPackage
@@ -121655,6 +123128,7 @@ self: {
        executableHaskellDepends = [ base mtl random utility-ht ];
        description = "Hangman implementation in Haskell written in two hours";
        license = lib.licenses.mit;
+       mainProgram = "hangman";
      }) {};
 
   "hannahci" = callPackage
@@ -121677,6 +123151,7 @@ self: {
        description = "Simple Continuous Integration/Deployment System";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hannahci";
        broken = true;
      }) {};
 
@@ -121760,6 +123235,7 @@ self: {
        description = "Korean spell checker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hanspell";
        broken = true;
      }) {};
 
@@ -121811,6 +123287,7 @@ self: {
        description = "A deployment library for Haskell applications";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hap";
        broken = true;
      }) {};
 
@@ -121903,6 +123380,7 @@ self: {
        description = "A small program for counting the comments in haskell source";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "happraise";
        broken = true;
      }) {};
 
@@ -121960,6 +123438,7 @@ self: {
        description = "A Happstack Tutorial that is its own web 2.0-type demo.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "happs-tutorial";
      }) {};
 
   "happstack" = callPackage
@@ -122536,6 +124015,7 @@ self: {
        description = "Happy is a parser generator for Haskell";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "happy";
      }) {};
 
   "happy" = callPackage
@@ -122553,6 +124033,7 @@ self: {
        testHaskellDepends = [ base process ];
        description = "Happy is a parser generator for Haskell";
        license = lib.licenses.bsd2;
+       mainProgram = "happy";
      }) {};
 
   "happy-dot" = callPackage
@@ -122780,6 +124261,7 @@ self: {
        executableHaskellDepends = [ base bytestring parallel ];
        description = "Pure-functional Harfbuzz language bindings";
        license = lib.licenses.mit;
+       mainProgram = "shape-text";
      }) {inherit (pkgs) harfbuzz;};
 
   "harg" = callPackage
@@ -122817,6 +124299,7 @@ self: {
        description = "A Gentoo package query tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hark";
      }) {};
 
   "harmony" = callPackage
@@ -122843,6 +124326,7 @@ self: {
        description = "A web service specification compiler that generates implementation and tests";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "harmony";
      }) {};
 
   "haroonga" = callPackage
@@ -122880,6 +124364,7 @@ self: {
        description = "Yet another Groonga http server";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haroonga-httpd";
      }) {};
 
   "harp" = callPackage
@@ -123025,6 +124510,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Extras for hasbolt library";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "hascal" = callPackage
@@ -123039,6 +124525,7 @@ self: {
        executableHaskellDepends = [ base data-default split ];
        description = "tiny calculator library and command-line program";
        license = "GPL";
+       mainProgram = "hascal";
      }) {};
 
   "hascar" = callPackage
@@ -123067,6 +124554,7 @@ self: {
        description = "Decompress SAPCAR archives";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hascar";
        broken = true;
      }) {};
 
@@ -123104,6 +124592,7 @@ self: {
        description = "A TUI for reviewing notes using 'flashcards' written with markdown-like syntax";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hascard";
        broken = true;
      }) {};
 
@@ -123147,6 +124636,7 @@ self: {
        description = "Hascat Web Server";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hascat";
      }) {};
 
   "hascat-lib" = callPackage
@@ -123187,6 +124677,7 @@ self: {
        description = "Hascat Installation helper";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hascat-setup";
      }) {};
 
   "hascat-system" = callPackage
@@ -123490,6 +124981,7 @@ self: {
        ];
        description = "A pure haskell library implements several hash algorithms";
        license = lib.licenses.mit;
+       mainProgram = "hashing-exe";
      }) {};
 
   "hashmap" = callPackage
@@ -123539,6 +125031,7 @@ self: {
        ];
        description = "Rename every file in a directory with his SHA1 hash";
        license = lib.licenses.gpl3Only;
+       mainProgram = "hashrename";
      }) {};
 
   "hashring" = callPackage
@@ -123575,6 +125068,7 @@ self: {
        ];
        description = "Benchmark of hash table implementations";
        license = lib.licenses.bsd3;
+       mainProgram = "hashtable-benchmark";
      }) {};
 
   "hashtables" = callPackage
@@ -123710,6 +125204,7 @@ self: {
        description = "Utility to generate bindings for BlackBerry Cascades";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskades";
      }) {};
 
   "haskakafka" = callPackage
@@ -123754,6 +125249,7 @@ self: {
        description = "A breakout game written in Yampa using SDL";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskanoid";
        broken = true;
      }) {};
 
@@ -123773,6 +125269,7 @@ self: {
        description = "A dialect of haskell with order of execution based on dependency resolution";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskarrowPrecompiler";
        broken = true;
      }) {};
 
@@ -123821,6 +125318,7 @@ self: {
        description = "Computes and audits file hashes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskdeep";
      }) {};
 
   "haskdogs" = callPackage
@@ -123839,6 +125337,7 @@ self: {
        ];
        description = "Generate tags file for Haskell project and its nearest deps";
        license = lib.licenses.bsd3;
+       mainProgram = "haskdogs";
      }) {};
 
   "haskeem" = callPackage
@@ -123858,6 +125357,7 @@ self: {
        description = "A small scheme interpreter";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskeem";
      }) {};
 
   "haskeline_0_8_2" = callPackage
@@ -123885,6 +125385,7 @@ self: {
        description = "A command-line interface for user input, written in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskeline-examples-Test";
      }) {};
 
   "haskeline-class" = callPackage
@@ -123949,9 +125450,89 @@ self: {
        description = "Haskell Application BlockChain Interface (ABCI) Server Library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-abci-counter";
        broken = true;
      }) {};
 
+  "haskell-admin" = callPackage
+    ({ mkDerivation, base, bytestring, haskell-admin-core
+     , haskell-admin-health, haskell-admin-managed-functions, wai
+     }:
+     mkDerivation {
+       pname = "haskell-admin";
+       version = "1.0.0.0";
+       sha256 = "0h23kl9hjh5szmy8s8fr9zm9v2znzww1yfjiiij7n4n1zcm04nsf";
+       libraryHaskellDepends = [
+         base bytestring haskell-admin-core haskell-admin-health
+         haskell-admin-managed-functions wai
+       ];
+       description = "Remote Management Platform for Haskell Applications";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "haskell-admin-core" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, hspec, hspec-wai
+     , http-types, servant, servant-server, wai, wai-cors, wai-extra
+     , wai-middleware-bearer, word8
+     }:
+     mkDerivation {
+       pname = "haskell-admin-core";
+       version = "1.0.0.0";
+       sha256 = "1jnarccd8inb13njng3wa0gyd1n4nnipvl0b4kn3fadb14pdmvb3";
+       libraryHaskellDepends = [
+         aeson base bytestring http-types servant servant-server wai
+         wai-cors wai-middleware-bearer word8
+       ];
+       testHaskellDepends = [
+         aeson base bytestring hspec hspec-wai http-types servant
+         servant-server wai wai-cors wai-extra wai-middleware-bearer word8
+       ];
+       description = "Core Modules of Haskell Admin";
+       license = lib.licenses.mit;
+     }) {};
+
+  "haskell-admin-health" = callPackage
+    ({ mkDerivation, aeson, async, base, haskell-admin-core, hspec
+     , hspec-wai, servant, servant-server
+     }:
+     mkDerivation {
+       pname = "haskell-admin-health";
+       version = "1.0.0.0";
+       sha256 = "0fbkpzzc6zphyc9200lcxvc25iln1frd7wgi53hzpglj2mbmr25l";
+       libraryHaskellDepends = [
+         aeson async base haskell-admin-core servant servant-server
+       ];
+       testHaskellDepends = [
+         aeson async base haskell-admin-core hspec hspec-wai servant
+         servant-server
+       ];
+       description = "Application Health Component for Haskell Admin";
+       license = lib.licenses.mit;
+     }) {};
+
+  "haskell-admin-managed-functions" = callPackage
+    ({ mkDerivation, base, haskell-admin-core, hspec, hspec-wai
+     , managed-functions, managed-functions-http-connector
+     , servant-server
+     }:
+     mkDerivation {
+       pname = "haskell-admin-managed-functions";
+       version = "1.0.0.0";
+       sha256 = "1s1ldfqkm8il7zipsh82fgamdcw6j8cz1kcil4p2pb003ycnz8pa";
+       libraryHaskellDepends = [
+         base haskell-admin-core managed-functions
+         managed-functions-http-connector servant-server
+       ];
+       testHaskellDepends = [
+         base haskell-admin-core hspec hspec-wai managed-functions
+         managed-functions-http-connector servant-server
+       ];
+       description = "Managed Functions integration for Haskell Admin";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "haskell-aliyun" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, basic-prelude
      , blaze-builder, bytestring, case-insensitive, conduit, Crypto
@@ -124007,6 +125588,7 @@ self: {
        description = "Transform text from the command-line using Haskell expressions";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hawk";
        broken = true;
      }) {};
 
@@ -124047,6 +125629,7 @@ self: {
        description = "Complete BitMEX Client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "haskell-bitmex-rest" = callPackage
@@ -124096,6 +125679,7 @@ self: {
        description = "BrainFuck interpreter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "brainfuck";
        broken = true;
      }) {};
 
@@ -124131,7 +125715,8 @@ self: {
        doHaddock = false;
        description = "Cabal package script generator for Travis-CI";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       mainProgram = "haskell-ci";
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "haskell-cnc" = callPackage
@@ -124153,6 +125738,7 @@ self: {
        description = "Library for parallel programming in the Intel Concurrent Collections paradigm";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-cnc-runTests";
        broken = true;
      }) {};
 
@@ -124187,6 +125773,7 @@ self: {
        description = "compress files";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-compress";
        broken = true;
      }) {};
 
@@ -124264,6 +125851,7 @@ self: {
        ];
        description = "Haskell Debug Adapter";
        license = lib.licenses.bsd3;
+       mainProgram = "haskell-debug-adapter";
      }) {};
 
   "haskell-disque" = callPackage
@@ -124305,6 +125893,7 @@ self: {
        description = "A program to find and display the docs and type of a name";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-docs";
      }) {};
 
   "haskell-eigen-util" = callPackage
@@ -124371,6 +125960,7 @@ self: {
        description = "Haskell source code formatter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-formatter";
        broken = true;
      }) {};
 
@@ -124399,6 +125989,7 @@ self: {
        description = "A Haskell ftp server with configurable backend";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "simple-ftp-server";
      }) {};
 
   "haskell-generate" = callPackage
@@ -124438,6 +126029,7 @@ self: {
        ];
        description = "GetText runtime library implementation in pure Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "hgettext";
      }) {};
 
   "haskell-gi" = callPackage
@@ -124497,6 +126089,7 @@ self: {
        description = "Go and Checkers game in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-go-checkers";
        broken = true;
      }) {};
 
@@ -124573,6 +126166,7 @@ self: {
        description = "create haskell import graph for graphviz";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-import-graph";
        broken = true;
      }) {};
 
@@ -124669,7 +126263,7 @@ self: {
        testToolDepends = [ ghcide ];
        description = "LSP server for GHC";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "haskell-lexer" = callPackage
@@ -124735,6 +126329,7 @@ self: {
        description = "A haskell package to build your own Language Server client";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-client";
      }) {};
 
   "haskell-lsp-types" = callPackage
@@ -124785,6 +126380,7 @@ self: {
        description = "Machine learning in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "iris";
        broken = true;
      }) {};
 
@@ -124926,6 +126522,7 @@ self: {
        description = "Manage nix overrides for haskell packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-overridez";
        broken = true;
      }) {};
 
@@ -124967,6 +126564,7 @@ self: {
        description = "Tool for presenting PDF-based presentations";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpdfp";
      }) {};
 
   "haskell-platform-test" = callPackage
@@ -124996,6 +126594,7 @@ self: {
        description = "A test system for the Haskell Platform environment";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-platform-test";
      }) {};
 
   "haskell-player" = callPackage
@@ -125018,6 +126617,7 @@ self: {
        description = "A terminal music player based on afplay";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-player";
        broken = true;
      }) {};
 
@@ -125167,6 +126767,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Let the Haskell logo talk to your users!";
        license = lib.licenses.bsd3;
+       mainProgram = "haskell-say-exe";
      }) {};
 
   "haskell-snake" = callPackage
@@ -125187,10 +126788,9 @@ self: {
        ];
        description = "Snake game implemetation in Haskell using SDL2";
        license = lib.licenses.gpl3Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-snake";
        broken = true;
      }) {};
 
@@ -125411,6 +127011,7 @@ self: {
        description = "haskell-stack-trace-plugin";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -125660,6 +127261,7 @@ self: {
        description = "Background process for Haskell-tools that editors can connect to";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ht-daemon";
      }) {};
 
   "haskell-tools-debug" = callPackage
@@ -125685,6 +127287,7 @@ self: {
        description = "Debugging Tools for Haskell-tools";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ht-debug";
      }) {};
 
   "haskell-tools-demo" = callPackage
@@ -125716,6 +127319,7 @@ self: {
        description = "A web-based demo for Haskell-tools Refactor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ht-demo";
      }) {};
 
   "haskell-tools-experimental-refactorings" = callPackage
@@ -125850,6 +127454,7 @@ self: {
        description = "A Haskell Tor Node";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-tor";
      }) {};
 
   "haskell-type-exts" = callPackage
@@ -125908,6 +127513,7 @@ self: {
        ];
        description = "Rebuild Haskell dependencies in Gentoo";
        license = "GPL";
+       mainProgram = "haskell-updater";
      }) {};
 
   "haskell-xmpp" = callPackage
@@ -125934,6 +127540,7 @@ self: {
        description = "Haskell XMPP (eXtensible Message Passing Protocol, a.k.a. Jabber) library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-xmpp-io-test";
        broken = true;
      }) {};
 
@@ -126106,6 +127713,7 @@ self: {
        description = "HaskellDB support for the dynamically loaded drivers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-dynamic";
      }) {};
 
   "haskelldb-flat" = callPackage
@@ -126124,6 +127732,7 @@ self: {
        description = "An experimental HaskellDB back-end in pure Haskell (no SQL)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-flat";
      }) {};
 
   "haskelldb-hdbc" = callPackage
@@ -126158,6 +127767,7 @@ self: {
        description = "HaskellDB support for the HDBC MySQL driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hdbc-mysql";
      }) {};
 
   "haskelldb-hdbc-odbc" = callPackage
@@ -126176,6 +127786,7 @@ self: {
        description = "HaskellDB support for the HDBC ODBC driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hdbc-odbc";
      }) {};
 
   "haskelldb-hdbc-postgresql" = callPackage
@@ -126195,6 +127806,7 @@ self: {
        description = "HaskellDB support for the HDBC PostgreSQL driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hdbc-postgresql";
      }) {inherit (pkgs) postgresql;};
 
   "haskelldb-hdbc-sqlite3" = callPackage
@@ -126213,6 +127825,7 @@ self: {
        description = "HaskellDB support for the HDBC SQLite driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hdbc-sqlite3";
      }) {};
 
   "haskelldb-hsql" = callPackage
@@ -126243,6 +127856,7 @@ self: {
        description = "HaskellDB support for the HSQL MySQL driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hsql-mysql";
      }) {};
 
   "haskelldb-hsql-odbc" = callPackage
@@ -126261,6 +127875,7 @@ self: {
        description = "HaskellDB support for the HSQL ODBC driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hsql-odbc";
      }) {};
 
   "haskelldb-hsql-oracle" = callPackage
@@ -126279,6 +127894,7 @@ self: {
        description = "HaskellDB support for the HSQL Oracle driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hsql-oracle";
        broken = true;
      }) {hsql-oracle = null;};
 
@@ -126298,6 +127914,7 @@ self: {
        description = "HaskellDB support for the HSQL PostgreSQL driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hsql-postgresql";
      }) {};
 
   "haskelldb-hsql-sqlite" = callPackage
@@ -126316,6 +127933,7 @@ self: {
        description = "HaskellDB support for the HSQL SQLite driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hsql-sqlite";
        broken = true;
      }) {hsql-sqlite = null;};
 
@@ -126335,6 +127953,7 @@ self: {
        description = "HaskellDB support for the HSQL SQLite3 driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hsql-sqlite3";
      }) {};
 
   "haskelldb-th" = callPackage
@@ -126419,6 +128038,7 @@ self: {
        description = "Command line tool for running Haskell scripts with a hashbang";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskellscript";
        broken = true;
      }) {};
 
@@ -126453,6 +128073,7 @@ self: {
        description = "Elm to Haskell translation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskelm";
      }) {};
 
   "haskelzinc" = callPackage
@@ -126486,6 +128107,7 @@ self: {
        description = "Compiler from I- to S-Expressions for the Scheme Programming Language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskeme";
        broken = true;
      }) {};
 
@@ -126631,6 +128253,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Haskell Evaluation inside of LaTeX code";
        license = lib.licenses.bsd3;
+       mainProgram = "haskintex";
      }) {};
 
   "hasklepias" = callPackage
@@ -126917,6 +128540,7 @@ self: {
        description = "Storage and index for Bitcoin and Bitcoin Cash";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskoin-store";
      }) {};
 
   "haskoin-store-data" = callPackage
@@ -127133,6 +128757,7 @@ self: {
        description = "Haskore back-end for SuperCollider";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "song-air";
      }) {};
 
   "haskore-synthesizer" = callPackage
@@ -127191,6 +128816,7 @@ self: {
        ];
        description = "Simple unsupervised segmentation model";
        license = lib.licenses.bsd3;
+       mainProgram = "haskseg";
      }) {};
 
   "hasktags" = callPackage
@@ -127219,6 +128845,7 @@ self: {
        ];
        description = "Produces ctags \"tags\" and etags \"TAGS\" files for Haskell programs";
        license = lib.licenses.bsd3;
+       mainProgram = "hasktags";
      }) {};
 
   "hasktorch" = callPackage
@@ -127279,6 +128906,7 @@ self: {
        description = "Code generation tools for Hasktorch";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ht-codegen";
        broken = true;
      }) {};
 
@@ -127535,6 +129163,7 @@ self: {
        ];
        description = "Haskus system build tool";
        license = lib.licenses.bsd3;
+       mainProgram = "haskus-system-build";
      }) {};
 
   "haskus-utils" = callPackage
@@ -127674,6 +129303,7 @@ self: {
        description = "HTTP server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskyapi";
        broken = true;
      }) {};
 
@@ -127709,6 +129339,7 @@ self: {
        description = "Loan calculator Gtk GUI. Based on haslo (Haskell Loan) library.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HasloGUI";
      }) {};
 
   "hasmin" = callPackage
@@ -127740,26 +129371,26 @@ self: {
        description = "CSS Minifier";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hasmin";
        broken = true;
      }) {};
 
   "haspara" = callPackage
-    ({ mkDerivation, aeson, base, containers, deriving-aeson, doctest
-     , exceptions, hashable, megaparsec, mtl, refined, safe-decimal
-     , scientific, template-haskell, text, time
+    ({ mkDerivation, aeson, base, containers, doctest, exceptions
+     , hashable, megaparsec, mtl, refined, safe-decimal, scientific
+     , template-haskell, text, time
      }:
      mkDerivation {
        pname = "haspara";
-       version = "0.0.0.2";
-       sha256 = "05jllc97mx15lvj83bmixpkzg7l7hbf058f8kfjiky1w3y7mf6fz";
+       version = "0.0.0.3";
+       sha256 = "1gfrqabmnv4fqfq9w03s6aj1rg5ba54nfrjcmbg9msy7sclsrx5i";
        libraryHaskellDepends = [
-         aeson base containers deriving-aeson exceptions hashable megaparsec
-         mtl refined safe-decimal scientific template-haskell text time
+         aeson base containers exceptions hashable megaparsec mtl refined
+         safe-decimal scientific template-haskell text time
        ];
        testHaskellDepends = [
-         aeson base containers deriving-aeson doctest exceptions hashable
-         megaparsec mtl refined safe-decimal scientific template-haskell
-         text time
+         aeson base containers doctest exceptions hashable megaparsec mtl
+         refined safe-decimal scientific template-haskell text time
        ];
        description = "A library providing definitions to work with monetary values";
        license = lib.licenses.mit;
@@ -128037,6 +129668,7 @@ self: {
        testHaskellDepends = [ base bytestring hasql hspec QuickCheck ];
        description = "LISTEN/NOTIFY support for Hasql";
        license = lib.licenses.bsd3;
+       mainProgram = "hasql-notifications";
      }) {};
 
   "hasql-optparse-applicative" = callPackage
@@ -128097,14 +129729,14 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hasql-pool_0_7_1_3" = callPackage
+  "hasql-pool_0_7_2" = callPackage
     ({ mkDerivation, base, hasql, hspec, rerebase, stm, time
      , transformers
      }:
      mkDerivation {
        pname = "hasql-pool";
-       version = "0.7.1.3";
-       sha256 = "0li8cbpzka85qlrgad5gy0pil9c4i0zvj961i3anmldd9n4f7m3m";
+       version = "0.7.2";
+       sha256 = "068bbsybbjgdpq2vyzjfh6h1ayjcyws1flmdarb1bdq80nbdq2m9";
        libraryHaskellDepends = [ base hasql stm time transformers ];
        testHaskellDepends = [ hasql hspec rerebase stm ];
        description = "A pool of connections for Hasql";
@@ -128197,6 +129829,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hasql-resource-pool" = callPackage
+    ({ mkDerivation, base-prelude, clock, hasql, hspec
+     , resource-pool-fork-avanov, time
+     }:
+     mkDerivation {
+       pname = "hasql-resource-pool";
+       version = "0.5.3.2";
+       sha256 = "07j293mivq4gfqaaclb80kbr413nwb8f18jf683pjj66d4ql5j01";
+       libraryHaskellDepends = [
+         base-prelude clock hasql resource-pool-fork-avanov time
+       ];
+       testHaskellDepends = [ base-prelude hasql hspec ];
+       description = "A pool of connections for Hasql based on resource-pool";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hasql-simple" = callPackage
     ({ mkDerivation, aeson, base, bytestring, contravariant, hasql
      , text, time, unordered-containers, vector
@@ -128265,6 +129915,7 @@ self: {
        description = "An example program that shows how to use Hasql streams with Rel8";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hasql-streaming";
        broken = true;
      }) {};
 
@@ -128449,6 +130100,7 @@ self: {
        description = "Haskell implementation of Mustache templates";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mkReadme";
        broken = true;
      }) {};
 
@@ -128481,6 +130133,7 @@ self: {
        description = "A universal pastebin tool, written in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haste";
        broken = true;
      }) {};
 
@@ -128630,6 +130283,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "A program to download subtitle files";
        license = lib.licenses.bsd3;
+       mainProgram = "hastily";
      }) {};
 
   "hasty-hamiltonian" = callPackage
@@ -128713,6 +130367,7 @@ self: {
        description = "XMPP client with 9P and (optionally) GTK interfaces";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hatexmpp";
      }) {};
 
   "hath" = callPackage
@@ -128733,6 +130388,7 @@ self: {
        ];
        description = "Hath manipulates network blocks in CIDR notation";
        license = lib.licenses.agpl3Only;
+       mainProgram = "hath";
      }) {};
 
   "hats" = callPackage
@@ -128764,6 +130420,7 @@ self: {
        description = "Haskell client for the NATS messaging system";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hats-examples";
        broken = true;
      }) {};
 
@@ -128788,6 +130445,7 @@ self: {
        description = "A truth table generator for classical propositional logic";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hatt";
        broken = true;
      }) {};
 
@@ -128812,6 +130470,7 @@ self: {
        description = "Library for checking for weak/compromised passwords";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme";
        broken = true;
      }) {};
 
@@ -128833,6 +130492,7 @@ self: {
        description = "Recursively retrieve maven dependencies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haven";
        broken = true;
      }) {};
 
@@ -128859,6 +130519,7 @@ self: {
        description = "Implementation of the rules of Love Letter";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haverer";
        broken = true;
      }) {};
 
@@ -128882,6 +130543,7 @@ self: {
        description = "A twitter client for GTK+. Beta version.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hawitter";
      }) {};
 
   "hax" = callPackage
@@ -128908,6 +130570,7 @@ self: {
        description = "Haskell cash-flow and tax simulation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hax";
        broken = true;
      }) {};
 
@@ -129002,6 +130665,7 @@ self: {
        description = "Readable HaxBall replays";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haxparse";
        broken = true;
      }) {};
 
@@ -129076,6 +130740,7 @@ self: {
        description = "Haskell bindings for the C Wayland library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wayland-list-globals";
        broken = true;
      }) {inherit (pkgs) libGL; inherit (pkgs) wayland;};
 
@@ -129096,6 +130761,7 @@ self: {
        description = "Hayoo CLI";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hayoo";
        broken = true;
      }) {};
 
@@ -129116,6 +130782,7 @@ self: {
        description = "N-back memory game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hback";
      }) {};
 
   "hbayes" = callPackage
@@ -129163,6 +130830,7 @@ self: {
        description = "Haskell Busy Bee, a backend for text editors";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hbb";
      }) {};
 
   "hbcd" = callPackage
@@ -129211,6 +130879,7 @@ self: {
        description = "A simple step sequencer GUI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hbeat";
        broken = true;
      }) {inherit (pkgs) SDL_mixer;};
 
@@ -129322,10 +130991,8 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Minimal extensible web-browser";
        license = "unknown";
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hbro";
      }) {};
 
   "hbro-contrib" = callPackage
@@ -129358,10 +131025,8 @@ self: {
        ];
        description = "Third-party extensions to hbro";
        license = "unknown";
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "hburg" = callPackage
@@ -129383,6 +131048,7 @@ self: {
        description = "Haskell Bottom Up Rewrite Generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hburg";
        broken = true;
      }) {};
 
@@ -129411,6 +131077,7 @@ self: {
        description = "A toy C compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hcc";
        broken = true;
      }) {};
 
@@ -129489,6 +131156,7 @@ self: {
        description = "Implementation of checkers (\"draughts\") board game - server application";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hcheckersd";
      }) {};
 
   "hchesslib" = callPackage
@@ -129608,6 +131276,7 @@ self: {
        testHaskellDepends = [ base data-default HUnit ieee754 mtl ];
        description = "Easily convert between latitude/longitude, UTM and OSGB";
        license = lib.licenses.bsd3;
+       mainProgram = "hcoord-exe";
      }) {};
 
   "hcount" = callPackage
@@ -129629,6 +131298,7 @@ self: {
        description = "Haskell name counts";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hcount";
      }) {};
 
   "hcron" = callPackage
@@ -129668,6 +131338,7 @@ self: {
        description = "Virtual Rubik's cube of arbitrary size";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hcube";
      }) {};
 
   "hcwiid" = callPackage
@@ -129680,9 +131351,7 @@ self: {
        librarySystemDepends = [ bluetooth cwiid ];
        description = "Library to interface with the wiimote";
        license = lib.licenses.gpl2Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {bluetooth = null; inherit (pkgs) cwiid;};
 
   "hdaemonize" = callPackage
@@ -129894,6 +131563,7 @@ self: {
        description = "Persistent GHC powered background server for FAST haskell development tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hdevtools";
        broken = true;
      }) {};
 
@@ -129967,6 +131637,7 @@ self: {
        description = "Pattern-Expression-based differencing of arbitrary types";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hdiff";
      }) {};
 
   "hdigest" = callPackage
@@ -130002,6 +131673,7 @@ self: {
        description = "An IDL compiler for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hdirect";
      }) {};
 
   "hdis86" = callPackage
@@ -130043,6 +131715,7 @@ self: {
        description = "a small display manager";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hdm";
        broken = true;
      }) {};
 
@@ -130072,6 +131745,7 @@ self: {
        description = "A Digital Ocean client in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "docean";
        broken = true;
      }) {};
 
@@ -130098,6 +131772,7 @@ self: {
        description = "Haskell docs tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hdocs";
      }) {};
 
   "hdph" = callPackage
@@ -130198,6 +131873,7 @@ self: {
        description = "Creates a header for a haskell source file";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "headergen";
        broken = true;
      }) {};
 
@@ -130230,6 +131906,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "License Header Manager";
        license = lib.licenses.bsd3;
+       mainProgram = "headroom";
      }) {};
 
   "heap" = callPackage
@@ -130305,6 +131982,7 @@ self: {
        description = "Heapsort of MArrays as a demo of imperative programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "heapsort-example";
        broken = true;
      }) {};
 
@@ -130384,6 +132062,7 @@ self: {
        description = "Find and annotate ITDs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "heatitup";
      }) {};
 
   "heatitup-complete" = callPackage
@@ -130408,6 +132087,7 @@ self: {
        description = "Find and annotate ITDs with assembly or read pair joining";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "heatitup-complete";
      }) {};
 
   "heatshrink" = callPackage
@@ -130560,6 +132240,7 @@ self: {
        description = "Jekyll in Haskell (feat. LaTeX)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "heckle";
        broken = true;
      }) {};
 
@@ -130619,7 +132300,7 @@ self: {
        ];
        description = "Release with confidence";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "hedgehog_1_1_1" = callPackage
@@ -130648,7 +132329,7 @@ self: {
        description = "Release with confidence";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "hedgehog-checkers" = callPackage
@@ -130958,6 +132639,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hedis-namespace-exe";
        broken = true;
      }) {};
 
@@ -131069,6 +132751,7 @@ self: {
        description = "A small library and executable for generating dice rolls";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hedra";
        broken = true;
      }) {};
 
@@ -131095,6 +132778,7 @@ self: {
        description = "Tidy data in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "app";
        broken = true;
      }) {};
 
@@ -131115,6 +132799,7 @@ self: {
        description = "An extensible build helper for haskell, in the vein of leiningen";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hein";
        broken = true;
      }) {};
 
@@ -131252,6 +132937,7 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "Typechecking terms of the Edinburgh Logical Framework (LF)";
        license = lib.licenses.mit;
+       mainProgram = "helf";
      }) {};
 
   "helic" = callPackage
@@ -131291,6 +132977,7 @@ self: {
        description = "Clipboard Manager";
        license = "BSD-2-Clause-Patent";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hel";
        broken = true;
      }) {};
 
@@ -131349,6 +133036,7 @@ self: {
        description = "An incomplete Elisp compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "helisp";
        broken = true;
      }) {};
 
@@ -131439,6 +133127,7 @@ self: {
        description = "A Haskell shell based on shell-conduit";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hell";
        broken = true;
      }) {};
 
@@ -131498,6 +133187,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Hello World, an example package";
        license = lib.licenses.bsd3;
+       mainProgram = "hello";
      }) {};
 
   "helm" = callPackage
@@ -131521,6 +133211,7 @@ self: {
        description = "A functionally reactive game engine";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "helm-example-flappy";
        broken = true;
      }) {};
 
@@ -131558,6 +133249,7 @@ self: {
        description = "A module music mixer and player";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hemkay";
        broken = true;
      }) {};
 
@@ -131690,6 +133382,7 @@ self: {
        description = "HAML to ERB translator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "herbalizer";
        broken = true;
      }) {};
 
@@ -131754,7 +133447,7 @@ self: {
        ];
        description = "Runs Continuous Integration tasks on your machines";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {inherit (pkgs) boost; inherit (pkgs) nix;};
 
   "hercules-ci-api" = callPackage
@@ -131785,7 +133478,8 @@ self: {
        ];
        description = "Hercules CI API definition with Servant";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ roberth ];
+       mainProgram = "hercules-gen-swagger";
+       maintainers = [ lib.maintainers.roberth ];
      }) {};
 
   "hercules-ci-api-agent" = callPackage
@@ -131814,7 +133508,7 @@ self: {
        ];
        description = "API definition for Hercules CI Agent to talk to hercules-ci.com or Hercules CI Enterprise";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {};
 
   "hercules-ci-api-core" = callPackage
@@ -131837,7 +133531,7 @@ self: {
        ];
        description = "Types and convenience modules use across Hercules CI API packages";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {};
 
   "hercules-ci-cli" = callPackage
@@ -131881,7 +133575,8 @@ self: {
        description = "The hci command for working with Hercules CI";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ roberth ];
+       mainProgram = "hci";
+       maintainers = [ lib.maintainers.roberth ];
        broken = true;
      }) {hercules-ci-optparse-applicative = null;};
 
@@ -131914,7 +133609,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Bindings for the Nix evaluator";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {inherit (pkgs) boost; inherit (pkgs) nix;};
 
   "hercules-ci-cnix-store" = callPackage
@@ -131941,7 +133636,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell bindings for Nix's libstore";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {inherit (pkgs) boost; inherit (pkgs) nix;};
 
   "here" = callPackage
@@ -132051,6 +133746,7 @@ self: {
        description = "Haskell Equational Reasoning Model-to-Implementation Tunnel";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hermit";
      }) {};
 
   "hermit-syb" = callPackage
@@ -132088,6 +133784,7 @@ self: {
        description = "A command-line manager for delicious kitchen recipes";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "herms";
        broken = true;
      }) {};
 
@@ -132103,6 +133800,7 @@ self: {
        executableHaskellDepends = [ base random text ];
        description = "Think back of the five tenets of hero club";
        license = lib.licenses.bsd3;
+       mainProgram = "fivetenets";
      }) {};
 
   "heroku" = callPackage
@@ -132212,6 +133910,7 @@ self: {
        description = "the Haskell Extensible Shell: Haskell for Bash-style scripts";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hesh";
      }) {};
 
   "hesql" = callPackage
@@ -132230,6 +133929,7 @@ self: {
        description = "Haskell's embedded SQL";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hesql";
      }) {};
 
   "hetero-dict" = callPackage
@@ -132331,6 +134031,7 @@ self: {
        description = "Text Tetris";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hetris";
        broken = true;
      }) {inherit (pkgs) ncurses;};
 
@@ -132396,6 +134097,7 @@ self: {
        description = "Ethereum virtual machine evaluator";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hevm";
      }) {inherit (pkgs) libff; inherit (pkgs) secp256k1;};
 
   "hevolisa" = callPackage
@@ -132413,6 +134115,7 @@ self: {
        description = "Genetic Mona Lisa problem in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hevolisa";
      }) {};
 
   "hevolisa-dph" = callPackage
@@ -132432,6 +134135,7 @@ self: {
        description = "Genetic Mona Lisa problem in Haskell - using Data Parallel Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hevolisa";
      }) {};
 
   "hex" = callPackage
@@ -132512,6 +134216,7 @@ self: {
        description = "A small game based on domino-like hexagonal tiles";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hexmino";
        broken = true;
      }) {};
 
@@ -132767,6 +134472,7 @@ self: {
        description = "a text classification library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hext-exe";
        broken = true;
      }) {};
 
@@ -132836,6 +134542,7 @@ self: {
        description = "A server for Eye-Fi SD cards";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "heyefi";
        broken = true;
      }) {};
 
@@ -132894,6 +134601,7 @@ self: {
        description = "Flash debugger";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hfd";
      }) {};
 
   "hfiar" = callPackage
@@ -132910,6 +134618,7 @@ self: {
        description = "Four in a Row in Haskell!!";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hfiar";
      }) {};
 
   "hflags" = callPackage
@@ -132956,6 +134665,7 @@ self: {
        description = "Haskell source code formatter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hfmt";
        broken = true;
      }) {};
 
@@ -132977,6 +134687,7 @@ self: {
        description = "Hess-Smith panel code for inviscid 2-d airfoil analysis";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hfoil";
        broken = true;
      }) {};
 
@@ -133026,6 +134737,7 @@ self: {
        description = "OpenGL fractal renderer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hfractal";
      }) {};
 
   "hfsevents" = callPackage
@@ -133041,7 +134753,7 @@ self: {
        libraryToolDepends = [ CoreServices ];
        description = "File/folder watching for OS X";
        license = lib.licenses.bsd3;
-       platforms = [ "aarch64-darwin" "x86_64-darwin" ];
+       platforms = lib.platforms.darwin;
      }) {inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa; 
          inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;};
 
@@ -133156,6 +134868,7 @@ self: {
        description = "Random generation of modal and hybrid logic formulas";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgen";
      }) {};
 
   "hgeometric" = callPackage
@@ -133333,6 +135046,7 @@ self: {
        description = "Bindings to libintl.h (gettext, bindtextdomain)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgettext";
        broken = true;
      }) {};
 
@@ -133380,6 +135094,7 @@ self: {
        description = "Haskell bindings to the GitHub API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgithub";
      }) {};
 
   "hgl-example" = callPackage
@@ -133396,6 +135111,7 @@ self: {
        description = "Various animations generated using HGL";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgl-example";
        broken = true;
      }) {HTam = null;};
 
@@ -133405,6 +135121,8 @@ self: {
        pname = "hgmp";
        version = "0.1.2";
        sha256 = "1sqnywh4h1nklcpci60n427m1kahkza1vy1j60jmq3lnlrbgzfzk";
+       revision = "1";
+       editedCabalFile = "0h9nrcrjbzjygcy1f4ws2gpjqqsy4l2zpv1fkxxi4flqj9yjl4i5";
        libraryHaskellDepends = [ base ghc-bignum ghc-prim ];
        testHaskellDepends = [ base QuickCheck ];
        description = "Haskell interface to GMP";
@@ -133430,6 +135148,7 @@ self: {
        description = "An haskell port of the java version of gom";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgom";
        broken = true;
      }) {};
 
@@ -133465,6 +135184,19 @@ self: {
        license = lib.licenses.gpl3Only;
      }) {};
 
+  "hgreet" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cpu, hosc, network }:
+     mkDerivation {
+       pname = "hgreet";
+       version = "0.1.0.0";
+       sha256 = "0z44k67jrplny90gl7lj2ax2piayzaf8ga74jp58pfwcjci6r01m";
+       revision = "3";
+       editedCabalFile = "02kqa51jn8x1r878pm1pk8gv0agvwmmxnh00cm445wclmydlr6w7";
+       libraryHaskellDepends = [ aeson base bytestring cpu hosc network ];
+       description = "Haskell module to interact with the greetd daemon trough it's IPC protocol";
+       license = lib.licenses.gpl3Plus;
+     }) {};
+
   "hgrep" = callPackage
     ({ mkDerivation, ansi-terminal, base, bytestring, ghc
      , ghc-exactprint, hscolour, lens, optparse-applicative, pcre-heavy
@@ -133486,6 +135218,7 @@ self: {
        description = "Search Haskell source code from the command line";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgrep";
        broken = true;
      }) {};
 
@@ -133612,6 +135345,7 @@ self: {
        description = "Generate scaffold for cabal project";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hi";
        broken = true;
      }) {};
 
@@ -133672,6 +135406,7 @@ self: {
        description = "Relatively efficient Tcl interpreter with support for basic operations";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hiccup";
      }) {};
 
   "hichi" = callPackage
@@ -133686,6 +135421,7 @@ self: {
        description = "haskell robot for IChat protocol";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hichi";
        broken = true;
      }) {};
 
@@ -133752,9 +135488,7 @@ self: {
        librarySystemDepends = [ systemd ];
        description = "Haskell bindings to HIDAPI";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) systemd;};
 
   "hidden-char" = callPackage
@@ -133803,6 +135537,7 @@ self: {
        ];
        description = "Set up a GHC API session";
        license = lib.licenses.bsd3;
+       mainProgram = "hie-bios";
      }) {};
 
   "hie-compat" = callPackage
@@ -133856,6 +135591,7 @@ self: {
        description = "The core of an IDE";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hie-core";
      }) {};
 
   "hiedb" = callPackage
@@ -133883,6 +135619,7 @@ self: {
        ];
        description = "Generates a references DB from .hie files";
        license = lib.licenses.bsd3;
+       mainProgram = "hiedb";
      }) {};
 
   "hieraclus" = callPackage
@@ -133995,6 +135732,7 @@ self: {
        description = "Hierarchical spectral clustering of a graph";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cluster-tree";
      }) {};
 
   "hierarchy" = callPackage
@@ -134056,6 +135794,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "WiFi connection script generator";
        license = lib.licenses.bsd3;
+       mainProgram = "hifi";
      }) {};
 
   "higgledy" = callPackage
@@ -134095,6 +135834,7 @@ self: {
        description = "Memory usage statistics";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "highWaterMark";
        broken = true;
      }) {};
 
@@ -134241,6 +135981,7 @@ self: {
        description = "Highlight package versions which differ from the latest version on Hackage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "highlight-versions";
        broken = true;
      }) {};
 
@@ -134319,6 +136060,7 @@ self: {
        ];
        description = "Generate STL models from SRTM elevation data";
        license = lib.licenses.bsd3;
+       mainProgram = "hills";
      }) {};
 
   "himerge" = callPackage
@@ -134338,6 +136080,7 @@ self: {
        description = "Haskell Graphical User Interface for Emerge";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "himerge";
        broken = true;
      }) {mozembed = null;};
 
@@ -134360,6 +136103,7 @@ self: {
        description = "Simple gtk2hs image viewer. Point it at an image and fire away.";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "himg";
        broken = true;
      }) {};
 
@@ -134383,6 +136127,7 @@ self: {
        description = "multithreaded snmp poller for riemann";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "himpy";
      }) {};
 
   "hindent" = callPackage
@@ -134417,6 +136162,7 @@ self: {
        ];
        description = "Extensible Haskell pretty printer";
        license = lib.licenses.bsd3;
+       mainProgram = "hindent";
      }) {};
 
   "hindley-milner" = callPackage
@@ -134552,6 +136298,7 @@ self: {
        testHaskellDepends = [ aeson base optparse-applicative text yaml ];
        description = "Command Line App With Info on your Haskell App";
        license = lib.licenses.bsd3;
+       mainProgram = "hinfo";
      }) {};
 
   "hinit" = callPackage
@@ -134582,7 +136329,8 @@ self: {
        ];
        description = "Generic project initialization tool";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ poscat ];
+       mainProgram = "hi";
+       maintainers = [ lib.maintainers.poscat ];
      }) {};
 
   "hinotify_0_3_9" = callPackage
@@ -134630,9 +136378,7 @@ self: {
        ];
        description = "Haskell binding to inotify, using ByteString filepaths";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "hinotify-conduit" = callPackage
@@ -134797,6 +136543,7 @@ self: {
        description = "Space Invaders";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hinvaders";
      }) {};
 
   "hinze-streams" = callPackage
@@ -134909,6 +136656,7 @@ self: {
        ];
        description = "an IPS patcher";
        license = lib.licenses.bsd3;
+       mainProgram = "hips";
      }) {};
 
   "hipsql-api" = callPackage
@@ -134944,6 +136692,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hipsql";
      }) {};
 
   "hipsql-monad" = callPackage
@@ -134976,6 +136725,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hipsql-demo-server";
      }) {};
 
   "hircules" = callPackage
@@ -134995,6 +136745,7 @@ self: {
        description = "IRC client";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hircules";
        broken = true;
      }) {};
 
@@ -135017,6 +136768,7 @@ self: {
        description = "Calculates IRT 2PL and 3PL models";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hirt";
      }) {};
 
   "hissmetrics" = callPackage
@@ -135058,6 +136810,7 @@ self: {
        description = "Umbrella package for the historical dictionary of Polish";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hist-pl";
      }) {};
 
   "hist-pl-dawg" = callPackage
@@ -135208,6 +136961,7 @@ self: {
        description = "Extract the interesting bits from shell history";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "historian";
        broken = true;
      }) {};
 
@@ -135228,6 +136982,7 @@ self: {
        description = "Git like program in haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Hit";
      }) {};
 
   "hit-graph" = callPackage
@@ -135266,6 +137021,7 @@ self: {
        description = "Haskell Git Helper Tool";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hit";
        broken = true;
      }) {};
 
@@ -135315,6 +137071,7 @@ self: {
        description = "JavaScript Parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hjs";
        broken = true;
      }) {};
 
@@ -135341,6 +137098,7 @@ self: {
        ];
        description = "Haskell implementation of a javascript minifier";
        license = lib.licenses.bsd3;
+       mainProgram = "hjsmin";
      }) {};
 
   "hjson" = callPackage
@@ -135469,6 +137227,7 @@ self: {
        description = "Majority Judgment and Helios-C command line tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hjugement";
      }) {};
 
   "hjugement-protocol" = callPackage
@@ -135581,6 +137340,7 @@ self: {
        ];
        description = "Simple Hackage release workflow for package maintainers";
        license = lib.licenses.gpl3Only;
+       mainProgram = "hkgr";
      }) {};
 
   "hkgr_0_4" = callPackage
@@ -135601,6 +137361,7 @@ self: {
        description = "Simple Hackage release workflow for package maintainers";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hkgr";
      }) {};
 
   "hkt" = callPackage
@@ -135702,6 +137463,7 @@ self: {
        description = "Web Socket interface to Leap Motion controller";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "leap-tracker";
        broken = true;
      }) {};
 
@@ -135744,7 +137506,8 @@ self: {
        ];
        description = "Command-line interface for the hledger accounting system";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "hledger";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hledger_1_26" = callPackage
@@ -135787,7 +137550,8 @@ self: {
        description = "Command-line interface for the hledger accounting system";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "hledger";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hledger-api" = callPackage
@@ -135813,6 +137577,7 @@ self: {
        description = "Web API server for the hledger accounting tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger-api";
        broken = true;
      }) {};
 
@@ -135833,6 +137598,7 @@ self: {
        description = "A pie chart image generator for the hledger accounting tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger-chart";
        broken = true;
      }) {};
 
@@ -135848,6 +137614,7 @@ self: {
        description = "Compares the transactions in two ledger files";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger-diff";
        broken = true;
      }) {};
 
@@ -135874,6 +137641,7 @@ self: {
        ];
        description = "An hledger workflow focusing on automated statement import and classification";
        license = lib.licenses.gpl3Only;
+       mainProgram = "hledger-flow";
      }) {};
 
   "hledger-iadd" = callPackage
@@ -135887,6 +137655,8 @@ self: {
        pname = "hledger-iadd";
        version = "1.3.17";
        sha256 = "1b3qz5vm8db6gsdakg8nf3qc6rp7mlh3zpkzvhi80pqm3jzdbjph";
+       revision = "1";
+       editedCabalFile = "0vzyhfbmjlzaxb19rld931hw9w2mpik1pdscgdq6sr52x9kwr4c1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -135906,6 +137676,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A terminal UI as drop-in replacement for hledger add";
        license = lib.licenses.bsd3;
+       mainProgram = "hledger-iadd";
      }) {};
 
   "hledger-interest" = callPackage
@@ -135924,7 +137695,8 @@ self: {
        ];
        description = "computes interest for a given account";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "hledger-interest";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hledger-interest_1_6_4" = callPackage
@@ -135942,7 +137714,8 @@ self: {
        description = "computes interest for a given account";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "hledger-interest";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hledger-irr" = callPackage
@@ -135962,6 +137735,7 @@ self: {
        description = "computes the internal rate of return of an investment";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger-irr";
        broken = true;
      }) {};
 
@@ -136057,6 +137831,7 @@ self: {
        ];
        description = "An hledger workflow focusing on automated statement import and classification";
        license = lib.licenses.gpl3Only;
+       mainProgram = "hledger-makeitso";
      }) {};
 
   "hledger-stockquotes" = callPackage
@@ -136086,6 +137861,36 @@ self: {
        ];
        description = "Generate HLedger Price Directives From Daily Stock Quotes";
        license = lib.licenses.bsd3;
+       mainProgram = "hledger-stockquotes";
+     }) {};
+
+  "hledger-stockquotes_0_1_2_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cmdargs, containers
+     , directory, hedgehog, hledger-lib, raw-strings-qq, req, safe
+     , safe-exceptions, scientific, split, tasty, tasty-hedgehog
+     , tasty-hunit, text, time, unordered-containers, xdg-basedir, yaml
+     }:
+     mkDerivation {
+       pname = "hledger-stockquotes";
+       version = "0.1.2.1";
+       sha256 = "09h021dcpya8492kgyqkd2irxa10kwc9dgzk5xn7r121hl55jp50";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers hledger-lib req safe scientific
+         split text time unordered-containers
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring cmdargs directory raw-strings-qq
+         safe-exceptions text time xdg-basedir yaml
+       ];
+       testHaskellDepends = [
+         base hedgehog tasty tasty-hedgehog tasty-hunit
+       ];
+       description = "Generate HLedger Price Directives From Daily Stock Quotes";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger-stockquotes";
      }) {};
 
   "hledger-ui" = callPackage
@@ -136109,7 +137914,8 @@ self: {
        ];
        description = "Curses-style terminal interface for the hledger accounting system";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "hledger-ui";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hledger-ui_1_26" = callPackage
@@ -136123,6 +137929,8 @@ self: {
        pname = "hledger-ui";
        version = "1.26";
        sha256 = "09x45yvc266p2v8aby8iy0ric9lmxgcvnxkvl2j3v6i7x2nad498";
+       revision = "1";
+       editedCabalFile = "0dczpzkayd56h323jk76vc4fkxp9k1gm3iywsvg2m2hlhi0kc9h4";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -136134,7 +137942,8 @@ self: {
        description = "Curses-style terminal interface for the hledger accounting system";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "hledger-ui";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hledger-vty" = callPackage
@@ -136153,6 +137962,7 @@ self: {
        description = "A curses-style console interface for the hledger accounting tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger-vty";
        broken = true;
      }) {};
 
@@ -136189,7 +137999,8 @@ self: {
        ];
        description = "Web-based user interface for the hledger accounting system";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "hledger-web";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hledger-web_1_26" = callPackage
@@ -136226,7 +138037,8 @@ self: {
        description = "Web-based user interface for the hledger accounting system";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "hledger-web";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hlibBladeRF" = callPackage
@@ -136258,6 +138070,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Bindings to https://github.com/anrieff/libcpuid";
        license = lib.licenses.mit;
+       mainProgram = "cpuid";
      }) {};
 
   "hlibev" = callPackage
@@ -136340,7 +138153,8 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Source code suggestions";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "hlint";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "hlint_3_4" = callPackage
@@ -136367,7 +138181,8 @@ self: {
        description = "Source code suggestions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "hlint";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "hlint-test" = callPackage
@@ -136382,6 +138197,7 @@ self: {
        executableHaskellDepends = [ base hlint ];
        description = "Run hlint in test suite";
        license = lib.licenses.bsd3;
+       mainProgram = "hlint-test";
      }) {};
 
   "hlist" = callPackage
@@ -136446,6 +138262,7 @@ self: {
        description = "Library and utility interfacing to longurl.org";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hlongurl";
        broken = true;
      }) {};
 
@@ -137107,6 +138924,7 @@ self: {
        description = "A tool and library for Markov chains based text generation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hmark";
      }) {};
 
   "hmarkup" = callPackage
@@ -137141,7 +138959,7 @@ self: {
        librarySystemDepends = [ openblasCompat ];
        description = "Numeric Linear Algebra";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {inherit (pkgs) openblasCompat;};
 
   "hmatrix-backprop" = callPackage
@@ -137524,6 +139342,7 @@ self: {
        description = "CLI fuzzy finder and launcher";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hmenu";
        broken = true;
      }) {};
 
@@ -137576,6 +139395,7 @@ self: {
        description = "A make alternative based on Plan9's mk";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hmk";
        broken = true;
      }) {};
 
@@ -137662,6 +139482,7 @@ self: {
        description = "An ncurses mp3 player written in Haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hmp3";
        broken = true;
      }) {inherit (pkgs) ncurses;};
 
@@ -137683,6 +139504,7 @@ self: {
        executableSystemDepends = [ ncurses ];
        description = "A 2019 fork of an ncurses mp3 player written in Haskell";
        license = "GPL";
+       mainProgram = "hmp3";
      }) {inherit (pkgs) ncurses;};
 
   "hmpfr" = callPackage
@@ -137756,6 +139578,7 @@ self: {
        description = "Interpreter for the MUMPS langugae";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hmumps";
        broken = true;
      }) {};
 
@@ -137841,7 +139664,10 @@ self: {
        ];
        description = "Haskell implementation of the Nix language";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Anton-Latukha sorki ];
+       mainProgram = "hnix";
+       maintainers = [
+         lib.maintainers.Anton-Latukha lib.maintainers.sorki
+       ];
      }) {};
 
   "hnix_0_16_0" = callPackage
@@ -137896,7 +139722,10 @@ self: {
        description = "Haskell implementation of the Nix language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Anton-Latukha sorki ];
+       mainProgram = "hnix";
+       maintainers = [
+         lib.maintainers.Anton-Latukha lib.maintainers.sorki
+       ];
      }) {};
 
   "hnix-store-core_0_5_0_0" = callPackage
@@ -137930,7 +139759,9 @@ self: {
        description = "Core effects for interacting with the Nix store";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Anton-Latukha sorki ];
+       maintainers = [
+         lib.maintainers.Anton-Latukha lib.maintainers.sorki
+       ];
      }) {};
 
   "hnix-store-core" = callPackage
@@ -137962,7 +139793,9 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Core effects for interacting with the Nix store";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ Anton-Latukha sorki ];
+       maintainers = [
+         lib.maintainers.Anton-Latukha lib.maintainers.sorki
+       ];
      }) {};
 
   "hnix-store-remote_0_5_0_0" = callPackage
@@ -137982,7 +139815,9 @@ self: {
        description = "Remote hnix store";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Anton-Latukha sorki ];
+       maintainers = [
+         lib.maintainers.Anton-Latukha lib.maintainers.sorki
+       ];
      }) {};
 
   "hnix-store-remote" = callPackage
@@ -138001,7 +139836,9 @@ self: {
        ];
        description = "Remote hnix store";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ Anton-Latukha sorki ];
+       maintainers = [
+         lib.maintainers.Anton-Latukha lib.maintainers.sorki
+       ];
      }) {};
 
   "hnn" = callPackage
@@ -138037,6 +139874,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "A Nock interpreter";
        license = lib.licenses.mit;
+       mainProgram = "hnock";
      }) {};
 
   "hnop" = callPackage
@@ -138050,6 +139888,7 @@ self: {
        executableHaskellDepends = [ base ];
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hnop";
        broken = true;
      }) {};
 
@@ -138193,6 +140032,7 @@ self: {
        description = "A source code editor aiming for the convenience of use";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hob";
      }) {};
 
   "hobbes" = callPackage
@@ -138211,6 +140051,7 @@ self: {
        description = "A small file watcher for OSX";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hobbes";
        broken = true;
      }) {};
 
@@ -138354,6 +140195,7 @@ self: {
        description = "hoe: Haskell One-liner Evaluator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoe";
        broken = true;
      }) {};
 
@@ -138386,6 +140228,7 @@ self: {
        description = "Simple IRC logger bot";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hog";
        broken = true;
      }) {};
 
@@ -138432,6 +140275,7 @@ self: {
        description = "Bindings to the Toggl.com REST API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoggl";
        broken = true;
      }) {};
 
@@ -138481,6 +140325,7 @@ self: {
        description = "OIS bindings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "OISConsole";
        broken = true;
      }) {OIS = null;};
 
@@ -138526,6 +140371,7 @@ self: {
        description = "Higher order logic";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hol-pkg";
        broken = true;
      }) {};
 
@@ -138665,7 +140511,7 @@ self: {
        ];
        description = "DirectSound extension (Windows) for the Hommage sound library";
        license = "GPL";
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "homoiconic" = callPackage
@@ -138725,6 +140571,7 @@ self: {
        description = "Haskell code quality tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "homplexity-cli";
        broken = true;
      }) {};
 
@@ -138739,6 +140586,7 @@ self: {
        libraryHaskellDepends = [ base hourglass split ];
        executableHaskellDepends = [ base hourglass split ];
        license = lib.licenses.mit;
+       mainProgram = "homura-stopwatch";
      }) {};
 
   "honeycomb" = callPackage
@@ -138796,9 +140644,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Cross-platform interface to the PC speaker";
        license = lib.licenses.asl20;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "hoobuddy" = callPackage
@@ -138818,6 +140664,7 @@ self: {
        description = "Simple tool for fetching and merging hoogle data";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoobuddy";
        broken = true;
      }) {};
 
@@ -138876,6 +140723,7 @@ self: {
        description = "A small, toy roguelike";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoodie";
      }) {};
 
   "hoodle" = callPackage
@@ -138897,6 +140745,7 @@ self: {
        description = "Executable for hoodle";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoodle";
      }) {};
 
   "hoodle-builder" = callPackage
@@ -139018,6 +140867,7 @@ self: {
        description = "publish hoodle files as a static web site";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoodle-publish";
      }) {};
 
   "hoodle-render" = callPackage
@@ -139089,6 +140939,7 @@ self: {
        testTarget = "--test-option=--no-net";
        description = "Haskell API Search";
        license = lib.licenses.bsd3;
+       mainProgram = "hoogle";
      }) {};
 
   "hoogle-index" = callPackage
@@ -139109,6 +140960,7 @@ self: {
        description = "Easily generate Hoogle indices for installed packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoogle-index";
        broken = true;
      }) {};
 
@@ -139207,6 +141059,7 @@ self: {
        description = "Haskell Media Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoovie";
      }) {};
 
   "hopencc" = callPackage
@@ -139261,8 +141114,8 @@ self: {
      }:
      mkDerivation {
        pname = "hopenpgp-tools";
-       version = "0.23.6";
-       sha256 = "0hjh6avcd24czd5dv0kr78hkv8k48i3lgcxiahnfjaqwirmg5wix";
+       version = "0.23.7";
+       sha256 = "0mzq83bszlyxl3if35172nvzn930777nm1q9clkkyvqh2nrkfhdh";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -139293,7 +141146,7 @@ self: {
        testHaskellDepends = [ base bytestring HUnit ];
        description = "FFI Bindings to OpenSSL's EVP Digest Interface";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {inherit (pkgs) openssl;};
 
   "hopfield" = callPackage
@@ -139349,6 +141202,7 @@ self: {
        ];
        description = "Hopfield Networks for unsupervised learning in Haskell";
        license = lib.licenses.mit;
+       mainProgram = "hopfield_demonstration";
      }) {};
 
   "hopfli" = callPackage
@@ -139458,6 +141312,7 @@ self: {
        description = "Handy Operations on Power Series";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hops";
        broken = true;
      }) {};
 
@@ -139479,6 +141334,7 @@ self: {
        description = "A language based on homotopy type theory with an interval type";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoq";
        broken = true;
      }) {};
 
@@ -139529,6 +141385,7 @@ self: {
        testHaskellDepends = [ base HMock tasty tasty-hunit ];
        description = "horizontal rule for the terminal";
        license = lib.licenses.mit;
+       mainProgram = "hr";
      }) {};
 
   "horname" = callPackage
@@ -139548,6 +141405,7 @@ self: {
        description = "Rename function definitions returned by SMT solvers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "horname";
        broken = true;
      }) {};
 
@@ -139664,6 +141522,7 @@ self: {
        description = "An dns server which is extremely easy to config";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hosts-server";
        broken = true;
      }) {};
 
@@ -139684,6 +141543,7 @@ self: {
        description = "Generates ctags for Haskell, incorporating import lists and qualified imports";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hothasktags";
        broken = true;
      }) {};
 
@@ -139775,6 +141635,7 @@ self: {
        description = "A Haskell implementation of Foreman";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "houseman";
        broken = true;
      }) {};
 
@@ -139851,6 +141712,7 @@ self: {
        description = "A utility to visualise and compare heap profiles";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hp2any-manager";
      }) {};
 
   "hp2html" = callPackage
@@ -139865,6 +141727,7 @@ self: {
        executableHaskellDepends = [ base containers filepath ];
        description = "A tool for converting GHC heap-profiles to HTML";
        license = lib.licenses.bsd3;
+       mainProgram = "hp2html";
      }) {};
 
   "hp2pretty" = callPackage
@@ -139883,6 +141746,7 @@ self: {
        ];
        description = "generate pretty graphs from heap profiles";
        license = lib.licenses.bsd3;
+       mainProgram = "hp2pretty";
      }) {};
 
   "hpack" = callPackage
@@ -139921,6 +141785,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A modern format for Haskell packages";
        license = lib.licenses.mit;
+       mainProgram = "hpack";
      }) {};
 
   "hpack_0_35_0" = callPackage
@@ -139960,6 +141825,7 @@ self: {
        description = "A modern format for Haskell packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpack";
      }) {};
 
   "hpack-convert" = callPackage
@@ -139992,6 +141858,7 @@ self: {
        description = "Convert Cabal manifests into hpack's package.yamls";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpack-convert";
        broken = true;
      }) {};
 
@@ -140072,6 +141939,7 @@ self: {
        description = "Modular template compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpaco";
      }) {};
 
   "hpaco-lib" = callPackage
@@ -140112,6 +141980,7 @@ self: {
        description = "A scrapbook for Haskell developers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpage";
      }) {};
 
   "hpapi" = callPackage
@@ -140124,9 +141993,7 @@ self: {
        librarySystemDepends = [ papi ];
        description = "Binding for the PAPI library";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {inherit (pkgs) papi;};
 
   "hpaste" = callPackage
@@ -140155,6 +142022,7 @@ self: {
        description = "Haskell paste web site";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpaste";
      }) {};
 
   "hpasteit" = callPackage
@@ -140175,6 +142043,7 @@ self: {
        description = "A command-line client for hpaste.org";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpasteit";
        broken = true;
      }) {};
 
@@ -140292,6 +142161,7 @@ self: {
        ];
        description = "Generate codecov report from hpc data";
        license = lib.licenses.bsd3;
+       mainProgram = "hpc-codecov";
      }) {};
 
   "hpc-coveralls" = callPackage
@@ -140330,8 +142200,8 @@ self: {
        pname = "hpc-lcov";
        version = "1.0.1";
        sha256 = "01ws5y2vavgm7151dcabw3jwny1prrnzn5b04q76m5gc6a36wivl";
-       revision = "3";
-       editedCabalFile = "1nq636asnibbx6mrx18kr02pcg3jr2m28z40vk9iydmz6lr5msni";
+       revision = "4";
+       editedCabalFile = "0mds8q19pqxgrmyzgzrc01zb6wf7gx5cjl8brvw7ljkyrb2n2lya";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers hpc ];
@@ -140346,6 +142216,7 @@ self: {
        description = "Convert HPC output into LCOV format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpc-lcov";
        broken = true;
      }) {};
 
@@ -140375,6 +142246,7 @@ self: {
        testHaskellDepends = [ base deepseq hspec ];
        description = "Ensure the code coverage is above configured thresholds";
        license = lib.licenses.bsd3;
+       mainProgram = "hpc-threshold";
      }) {};
 
   "hpc-tracer" = callPackage
@@ -140394,6 +142266,7 @@ self: {
        description = "Tracer with AJAX interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpc-tracer";
      }) {};
 
   "hpdft" = callPackage
@@ -140417,6 +142290,7 @@ self: {
        ];
        description = "A tool for looking through PDF file using Haskell";
        license = lib.licenses.mit;
+       mainProgram = "hpdft";
      }) {};
 
   "hpg" = callPackage
@@ -140431,6 +142305,7 @@ self: {
        description = "a simple password generator";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpg";
        broken = true;
      }) {};
 
@@ -140495,6 +142370,7 @@ self: {
        description = "Application for managing playlist files on a music player";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hplaylist";
        broken = true;
      }) {};
 
@@ -140516,6 +142392,7 @@ self: {
        description = "Podcast Aggregator (downloader)";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpodder";
        broken = true;
      }) {};
 
@@ -140537,6 +142414,7 @@ self: {
        testHaskellDepends = [ base bytestring transformers ];
        description = "A Haskell pre-processor";
        license = lib.licenses.bsd3;
+       mainProgram = "hpp";
      }) {};
 
   "hpqtypes" = callPackage
@@ -140621,6 +142499,7 @@ self: {
        description = "Parse Google Protocol Buffer specifications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hprotoc";
        broken = true;
      }) {};
 
@@ -140651,6 +142530,7 @@ self: {
        description = "Parse Google Protocol Buffer specifications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hprotoc";
      }) {};
 
   "hprox" = callPackage
@@ -140673,6 +142553,7 @@ self: {
        ];
        description = "a lightweight HTTP proxy server, and more";
        license = lib.licenses.asl20;
+       mainProgram = "hprox";
      }) {};
 
   "hps" = callPackage
@@ -140760,6 +142641,7 @@ self: {
        description = "AI of Pylos game with GLUT interface";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpylos";
        broken = true;
      }) {};
 
@@ -140777,6 +142659,7 @@ self: {
        description = "pyrg utility done right";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpyrg";
        broken = true;
      }) {};
 
@@ -140808,6 +142691,7 @@ self: {
        description = "Python language tools";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "hq" = callPackage
@@ -140866,6 +142750,7 @@ self: {
        description = "HQuantLib is a port of essencial parts of QuantLib to Haskell";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mctest";
      }) {};
 
   "hquantlib-time" = callPackage
@@ -140912,6 +142797,7 @@ self: {
        description = "Basic utility for ranking a list of items";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hranker";
      }) {};
 
   "hreader" = callPackage
@@ -140975,6 +142861,7 @@ self: {
        description = "A Type dependent Highlevel HTTP client library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "hreq-conduit" = callPackage
@@ -141048,6 +142935,7 @@ self: {
        description = "A Cricket scoring application";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hricket";
        broken = true;
      }) {};
 
@@ -141074,6 +142962,8 @@ self: {
        ];
        description = "A Riemann Client for Haskell";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "hriemann-exe";
      }) {};
 
   "hruby" = callPackage
@@ -141122,6 +143012,7 @@ self: {
        description = "GHC-toolchain installer broker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs";
      }) {};
 
   "hs-GeoIP" = callPackage
@@ -141284,6 +143175,7 @@ self: {
        ];
        description = "Conllu validating parser and utils";
        license = lib.licenses.lgpl3Only;
+       mainProgram = "hs-conllu";
      }) {};
 
   "hs-di" = callPackage
@@ -141314,6 +143206,7 @@ self: {
        description = "Dependency Injection library for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-di-cases";
        broken = true;
      }) {};
 
@@ -141441,6 +143334,7 @@ self: {
        description = "Utility to generate haskell-names interface files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-gen-iface";
      }) {};
 
   "hs-gizapp" = callPackage
@@ -141545,6 +143439,7 @@ self: {
        description = "Logo interpreter written in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-logo";
        broken = true;
      }) {};
 
@@ -141605,6 +143500,7 @@ self: {
        description = "Name generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-nombre-generator";
        broken = true;
      }) {};
 
@@ -141621,6 +143517,7 @@ self: {
        description = "The OpenMoji emoji dataset";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme";
        broken = true;
      }) {};
 
@@ -141917,6 +143814,7 @@ self: {
        description = "DSL for musical patterns and transformation, based on contravariant functors";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-pattrans";
        broken = true;
      }) {};
 
@@ -141938,6 +143836,7 @@ self: {
        description = "Programmer's Mine Sweeper in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-pgms";
        broken = true;
      }) {};
 
@@ -142000,6 +143899,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Bindings to C pipe functions";
        license = lib.licenses.bsd3;
+       mainProgram = "ls-example-exe";
      }) {};
 
   "hs-profunctors" = callPackage
@@ -142064,6 +143964,7 @@ self: {
        description = "Experimental! Wraps this awesome rust library so you can use it in haskell. https://docs.rs/crate/notify";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "notify";
        broken = true;
      }) {notifier = null;};
 
@@ -142109,6 +144010,7 @@ self: {
        description = "Terminal Emulator written in Haskell, SDL2 Backend";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-sdl-term-emulator";
      }) {};
 
   "hs-server-starter" = callPackage
@@ -142141,6 +144043,7 @@ self: {
        description = "snowtify send your result of `stack build` (`stack test`) to notify-daemon :dog2:";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snowtify";
        broken = true;
      }) {};
 
@@ -142160,6 +144063,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Convert an eventlog into the speedscope json format";
        license = lib.licenses.bsd3;
+       mainProgram = "hs-speedscope";
      }) {};
 
   "hs-swisstable-hashtables-class" = callPackage
@@ -142191,6 +144095,7 @@ self: {
        description = "Create tag files (ctags and etags) for Haskell code";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-tags";
        broken = true;
      }) {};
 
@@ -142249,6 +144154,7 @@ self: {
        description = "Commandline Twitter feed archiver";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-twitterarchiver";
        broken = true;
      }) {};
 
@@ -142328,6 +144234,7 @@ self: {
        ];
        description = "A 2048 clone in Haskell";
        license = lib.licenses.mit;
+       mainProgram = "hs2048";
      }) {};
 
   "hs2ats" = callPackage
@@ -142352,6 +144259,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Create ATS types from Haskell types";
        license = lib.licenses.bsd3;
+       mainProgram = "hs2ats";
      }) {};
 
   "hs2bf" = callPackage
@@ -142371,6 +144279,7 @@ self: {
        description = "Haskell to Brainfuck compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs2bf";
        broken = true;
      }) {};
 
@@ -142390,6 +144299,7 @@ self: {
        description = "Generate graphviz-code from Haskell-code";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs2dot";
      }) {};
 
   "hs2ps" = callPackage
@@ -142506,6 +144416,7 @@ self: {
        ];
        description = "Akamai API(Edgegrid and Netstorage)";
        license = lib.licenses.bsd3;
+       mainProgram = "purge";
      }) {};
 
   "hsaml2" = callPackage
@@ -142591,6 +144502,7 @@ self: {
        description = "(ab)Use Google Translate as a speech synthesiser";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsay";
        broken = true;
      }) {};
 
@@ -142609,6 +144521,7 @@ self: {
        ];
        description = "Preprocesses a file, adding blobs from files as string literals";
        license = lib.licenses.bsd3;
+       mainProgram = "hsb2hs";
      }) {};
 
   "hsbackup" = callPackage
@@ -142628,6 +144541,7 @@ self: {
        description = "simple utility for rolling filesystem backups";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsbackup";
      }) {};
 
   "hsbc" = callPackage
@@ -142642,6 +144556,7 @@ self: {
        description = "A command line calculator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsbc";
        broken = true;
      }) {};
 
@@ -142731,6 +144646,7 @@ self: {
        ];
        description = "A preprocessor that helps with writing Haskell bindings to C code";
        license = lib.licenses.bsd3;
+       mainProgram = "hsc2hs";
      }) {};
 
   "hsc3" = callPackage
@@ -142847,6 +144763,7 @@ self: {
        description = "FORTH SUPERCOLLIDER";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsc3-forth";
      }) {};
 
   "hsc3-graphs" = callPackage
@@ -142872,6 +144789,7 @@ self: {
        description = "Haskell SuperCollider Graphs";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsc3-graphs";
      }) {};
 
   "hsc3-lang" = callPackage
@@ -142914,6 +144832,7 @@ self: {
        description = "LISP SUPERCOLLIDER";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsc3-lisp";
      }) {};
 
   "hsc3-plot" = callPackage
@@ -143107,6 +145026,7 @@ self: {
        description = "Very simple file/directory structure scaffolding writer monad EDSL";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsfiles-from-directory";
        broken = true;
      }) {};
 
@@ -143156,6 +145076,7 @@ self: {
        description = "Command line client and library for SoundCloud.com";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hscd";
        broken = true;
      }) {};
 
@@ -143332,6 +145253,7 @@ self: {
        description = "hscim json schema and server implementation";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hscim-server";
        broken = true;
      }) {};
 
@@ -143347,6 +145269,7 @@ self: {
        description = "An elegant analog clock using Haskell, GTK and Cairo";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsclock";
        broken = true;
      }) {};
 
@@ -143363,6 +145286,7 @@ self: {
        executableHaskellDepends = [ base containers ];
        description = "Colourise Haskell code";
        license = "LGPL";
+       mainProgram = "HsColour";
      }) {};
 
   "hscope" = callPackage
@@ -143386,6 +145310,7 @@ self: {
        description = "cscope like browser for Haskell code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hscope";
      }) {};
 
   "hscrtmpl" = callPackage
@@ -143401,6 +145326,7 @@ self: {
        ];
        description = "Haskell shell script template";
        license = lib.licenses.isc;
+       mainProgram = "hscrtmpl";
      }) {};
 
   "hscuid" = callPackage
@@ -143421,6 +145347,7 @@ self: {
        description = "Collision-resistant IDs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "perf-test";
        broken = true;
      }) {};
 
@@ -143452,6 +145379,7 @@ self: {
        executableHaskellDepends = [ base hscurses random safe unix ];
        description = "hscurses swimming fish example";
        license = lib.licenses.isc;
+       mainProgram = "hscurses-fish-ex";
      }) {};
 
   "hsdev" = callPackage
@@ -143496,6 +145424,7 @@ self: {
        description = "Haskell development library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsdev";
      }) {};
 
   "hsdif" = callPackage
@@ -143525,6 +145454,7 @@ self: {
        description = "hsdip - a Diplomacy parser/renderer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsdip";
        broken = true;
      }) {};
 
@@ -143542,7 +145472,7 @@ self: {
        librarySystemDepends = [ adns ];
        description = "Asynchronous DNS Resolver";
        license = lib.licenses.lgpl3Only;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {inherit (pkgs) adns;};
 
   "hsdns-cache" = callPackage
@@ -143602,7 +145532,7 @@ self: {
        testHaskellDepends = [ base hspec parsec time ];
        description = "Parsec parsers for the Internet Message format (e-mail)";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hsemail-ns" = callPackage
@@ -143633,6 +145563,7 @@ self: {
        ];
        description = "sendxmpp clone, sending XMPP messages via CLI";
        license = lib.licenses.agpl3Only;
+       mainProgram = "hsendxmpp";
      }) {};
 
   "hsenv" = callPackage
@@ -143654,6 +145585,7 @@ self: {
        description = "Virtual Haskell Environment builder";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsenv";
        broken = true;
      }) {};
 
@@ -143668,6 +145600,7 @@ self: {
        executableHaskellDepends = [ base cmdargs wai-app-static warp ];
        description = "Simple http server in haskell";
        license = lib.licenses.mit;
+       mainProgram = "hserv";
      }) {};
 
   "hset" = callPackage
@@ -143741,6 +145674,7 @@ self: {
        description = "Z-decoder";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsfilt";
        broken = true;
      }) {};
 
@@ -143826,6 +145760,7 @@ self: {
        ];
        description = "Console-based gettings-things-done application";
        license = "GPL";
+       mainProgram = "hsgtd";
      }) {};
 
   "hsharc" = callPackage
@@ -143856,6 +145791,7 @@ self: {
        libraryPkgconfigDepends = [ gsl ];
        description = "Signal processing and EEG data analysis";
        license = lib.licenses.bsd3;
+       platforms = lib.platforms.x86;
      }) {inherit (pkgs) blas; inherit (pkgs) gsl; 
          inherit (pkgs) liblapack;};
 
@@ -143873,6 +145809,7 @@ self: {
        ];
        description = "RPN calculator";
        license = lib.licenses.mit;
+       mainProgram = "hsilop";
      }) {};
 
   "hsimport" = callPackage
@@ -143901,6 +145838,7 @@ self: {
        description = "Extend the import list of a Haskell source file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsimport";
        broken = true;
      }) {};
 
@@ -143946,6 +145884,7 @@ self: {
        description = "Inspect Haskell source files";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsinspect";
        broken = true;
      }) {};
 
@@ -143978,6 +145917,7 @@ self: {
        description = "LSP interface over the hsinspect binary";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsinspect-lsp";
      }) {};
 
   "hsinstall" = callPackage
@@ -143999,6 +145939,7 @@ self: {
        ];
        description = "Install Haskell software";
        license = lib.licenses.isc;
+       mainProgram = "hsinstall";
      }) {};
 
   "hskeleton" = callPackage
@@ -144028,6 +145969,7 @@ self: {
        description = "HSlackBuilder automatically generates slackBuild scripts from a cabal package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal2slackBuild";
        broken = true;
      }) {};
 
@@ -144061,6 +146003,7 @@ self: {
        description = "Resolves links to Haskell identifiers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hslinks";
        broken = true;
      }) {};
 
@@ -144230,7 +146173,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hslua-aeson_2_2_0" = callPackage
+  "hslua-aeson_2_2_0_1" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, hashable
      , hslua-core, hslua-marshalling, mtl, QuickCheck
      , quickcheck-instances, scientific, tasty, tasty-quickcheck, text
@@ -144238,10 +146181,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-aeson";
-       version = "2.2.0";
-       sha256 = "0v2wn5y1hqj19qj8rd9py1z18jdnkl7gq26ibxzpcpv4wzdcw8ix";
-       revision = "1";
-       editedCabalFile = "19gpk14hw0qnb56ib0zqbd9hxn9vjc4814n80mnjswvkgq0jfifk";
+       version = "2.2.0.1";
+       sha256 = "0s6viv1gvwvla8i64ifqwmpcfpjcskpg1q6p11bszdakz1d9ay5f";
        libraryHaskellDepends = [
          aeson base bytestring containers hashable hslua-core
          hslua-marshalling mtl scientific text unordered-containers vector
@@ -144661,6 +146602,7 @@ self: {
        description = "Tool for generating .dir-locals.el for intero";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsmodetweaks";
        broken = true;
      }) {};
 
@@ -144732,6 +146674,7 @@ self: {
        description = "Nock 5K interpreter";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsnock";
        broken = true;
      }) {};
 
@@ -144758,6 +146701,7 @@ self: {
        description = "a miniature network sniffer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsns";
        broken = true;
      }) {};
 
@@ -145166,7 +147110,8 @@ self: {
        description = "Automatically discover and run Hspec tests";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "hspec-discover";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "hspec-discover" = callPackage
@@ -145187,7 +147132,8 @@ self: {
        testToolDepends = [ hspec-meta ];
        description = "Automatically discover and run Hspec tests";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "hspec-discover";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "hspec-discover_2_10_0" = callPackage
@@ -145209,7 +147155,8 @@ self: {
        description = "Automatically discover and run Hspec tests";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "hspec-discover";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "hspec-expectations" = callPackage
@@ -145348,6 +147295,7 @@ self: {
        description = "Golden tests for hspec";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgold";
      }) {};
 
   "hspec-golden" = callPackage
@@ -145365,6 +147313,7 @@ self: {
        testHaskellDepends = [ base directory hspec hspec-core silently ];
        description = "Golden tests for hspec";
        license = lib.licenses.mit;
+       mainProgram = "hgold";
      }) {};
 
   "hspec-golden-aeson" = callPackage
@@ -145547,6 +147496,7 @@ self: {
        ];
        description = "A version of Hspec which is used to test Hspec itself";
        license = lib.licenses.mit;
+       mainProgram = "hspec-meta-discover";
      }) {};
 
   "hspec-meta_2_9_3" = callPackage
@@ -145573,6 +147523,7 @@ self: {
        description = "A version of Hspec which is used to test Hspec itself";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hspec-meta-discover";
      }) {};
 
   "hspec-monad-control" = callPackage
@@ -145703,6 +147654,7 @@ self: {
        description = "Add an hspec test-suite in one command";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hspec-setup";
      }) {};
 
   "hspec-shouldbe" = callPackage
@@ -146045,6 +147997,7 @@ self: {
        description = "A terminal presentation tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hspresent";
        broken = true;
      }) {};
 
@@ -146068,6 +148021,7 @@ self: {
        description = "My opinionated Haskell project formatter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hspretty";
        broken = true;
      }) {};
 
@@ -146095,6 +148049,7 @@ self: {
        description = "The Haskell Stream Processor command line utility";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsp";
      }) {};
 
   "hsql" = callPackage
@@ -146230,6 +148185,7 @@ self: {
        description = "HsQML-based clone of Pipe Mania";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsqml-manic";
      }) {};
 
   "hsqml-demo-morris" = callPackage
@@ -146249,6 +148205,7 @@ self: {
        description = "HsQML-based implementation of Nine Men's Morris";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsqml-morris";
      }) {};
 
   "hsqml-demo-notes" = callPackage
@@ -146302,6 +148259,7 @@ self: {
        description = "HsQML-based implementation of Nine Men's Morris";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsqml-morris";
      }) {};
 
   "hsreadability" = callPackage
@@ -146472,6 +148430,7 @@ self: {
        description = "Haskell version of tar CLI utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hstar";
      }) {};
 
   "hstatistics" = callPackage
@@ -146531,6 +148490,7 @@ self: {
        description = "Runs tests via QuickCheck1 and HUnit; like quickCheck-script but uses GHC api";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hstest";
        broken = true;
      }) {};
 
@@ -146546,6 +148506,7 @@ self: {
        description = "Takes haskell source on stdin, parses it, then prettyprints it to stdout";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hstidy";
        broken = true;
      }) {};
 
@@ -146576,6 +148537,7 @@ self: {
        description = "Distributed instant messaging over Tor";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hstorchat";
      }) {};
 
   "hstox" = callPackage
@@ -146629,6 +148591,7 @@ self: {
        description = "Tradeking API bindings for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tradeking";
      }) {};
 
   "hstyle" = callPackage
@@ -146647,6 +148610,7 @@ self: {
        description = "Checks Haskell source code for style compliance";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hstyle";
        broken = true;
      }) {};
 
@@ -146669,6 +148633,7 @@ self: {
        description = "A two player abstract strategy game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hstzaar";
      }) {};
 
   "hsubconvert" = callPackage
@@ -146691,6 +148656,7 @@ self: {
        description = "One-time, faithful conversion of Subversion repositories to Git";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsubconvert";
      }) {};
 
   "hsudoku" = callPackage
@@ -146720,6 +148686,7 @@ self: {
        description = "Sudoku game with a GTK3 interface";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsudoku";
        broken = true;
      }) {};
 
@@ -146770,6 +148737,7 @@ self: {
        description = "HSX (Haskell Source with XML) allows literal XML syntax in Haskell source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trhsx";
        broken = true;
      }) {};
 
@@ -146820,6 +148788,7 @@ self: {
        description = "HSX (Haskell Source with XML) allows literal XML syntax in Haskell source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsx2hs";
        broken = true;
      }) {};
 
@@ -146849,7 +148818,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "FFI interface to syslog(3) from POSIX.1-2001";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hsyslog-tcp" = callPackage
@@ -146931,6 +148900,7 @@ self: {
        ];
        description = "A Haskell98 parsing tags program similar to ctags";
        license = lib.licenses.bsd3;
+       mainProgram = "htags";
      }) {};
 
   "htalkat" = callPackage
@@ -146957,6 +148927,7 @@ self: {
        executablePkgconfigDepends = [ ncurses ];
        description = "Talk across TLS";
        license = lib.licenses.gpl3Only;
+       mainProgram = "htalkat";
      }) {inherit (pkgs) ncurses;};
 
   "htar" = callPackage
@@ -146975,6 +148946,7 @@ self: {
        description = "Command-line tar archive utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "htar";
        broken = true;
      }) {};
 
@@ -147021,6 +148993,7 @@ self: {
        description = "A library for testing correctness of pseudo random number generators in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "runTestu";
        broken = true;
      }) {inherit (pkgs) gcc;};
 
@@ -147053,6 +149026,7 @@ self: {
        executableHaskellDepends = [ base process time ];
        description = "Timing utility for the command line";
        license = lib.licenses.bsd3;
+       mainProgram = "htime";
      }) {};
 
   "htirage" = callPackage
@@ -147118,6 +149092,7 @@ self: {
        description = "Determine character encoding of HTML documents/fragments";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "html-charset";
        broken = true;
      }) {};
 
@@ -147271,6 +149246,7 @@ self: {
        description = "Simple tool to create html presentation for text";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "htmlpt";
      }) {};
 
   "html-rules" = callPackage
@@ -147346,6 +149322,7 @@ self: {
        ];
        description = "A command-line interface for https://validator.w3.org/";
        license = lib.licenses.bsd3;
+       mainProgram = "validatehtml";
      }) {};
 
   "html2hamlet" = callPackage
@@ -147365,6 +149342,7 @@ self: {
        ];
        description = "HTML to Hamlet converter";
        license = lib.licenses.bsd3;
+       mainProgram = "html2hamlet";
      }) {};
 
   "html5-entity" = callPackage
@@ -147404,6 +149382,7 @@ self: {
        executableHaskellDepends = [ base HDBC HDBC-sqlite3 ];
        description = "A todo application";
        license = lib.licenses.bsd3;
+       mainProgram = "htodo";
      }) {};
 
   "htoml" = callPackage
@@ -147527,6 +149506,7 @@ self: {
        description = "Parse XML files from The Sports Network feed";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "htsn";
        broken = true;
      }) {};
 
@@ -147571,6 +149551,7 @@ self: {
        description = "Import XML files from The Sports Network into an RDBMS";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "htsn-import";
      }) {};
 
   "htssets" = callPackage
@@ -147624,6 +149605,32 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "http-api-data_0_5" = callPackage
+    ({ mkDerivation, attoparsec, attoparsec-iso8601, base, base-compat
+     , bytestring, containers, cookie, hashable, hspec, hspec-discover
+     , http-types, HUnit, QuickCheck, quickcheck-instances, tagged, text
+     , time-compat, transformers, unordered-containers, uuid-types
+     }:
+     mkDerivation {
+       pname = "http-api-data";
+       version = "0.5";
+       sha256 = "0gxpfrkr83gq5kndfbyg03ps0g421bn4vafdqng7wmnn5hhb9vgp";
+       libraryHaskellDepends = [
+         attoparsec attoparsec-iso8601 base base-compat bytestring
+         containers cookie hashable http-types tagged text time-compat
+         transformers unordered-containers uuid-types
+       ];
+       testHaskellDepends = [
+         base base-compat bytestring cookie hspec HUnit QuickCheck
+         quickcheck-instances text time-compat unordered-containers
+         uuid-types
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Converting to/from HTTP API data like URL pieces, headers and query parameters";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "http-api-data-qq" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, http-api-data
      , http-client, tasty, tasty-hunit, tasty-quickcheck
@@ -147633,6 +149640,8 @@ self: {
        pname = "http-api-data-qq";
        version = "0.1.0.0";
        sha256 = "1lvfdbprdwq09k1wkjfvvkpi79053dc4kzkv4g1cx94qb1flbd7a";
+       revision = "1";
+       editedCabalFile = "1s7swrw42i5zpj99z5559480fi0zsnf1j1g0qhs536fjqs2bdfx4";
        libraryHaskellDepends = [
          base http-api-data template-haskell text
        ];
@@ -147808,6 +149817,7 @@ self: {
        ];
        description = "HTTP client overrides";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "http-client-request-modifiers" = callPackage
@@ -148068,6 +150078,26 @@ self: {
        broken = true;
      }) {};
 
+  "http-directory_0_1_10" = callPackage
+    ({ mkDerivation, base, bytestring, hspec, html-conduit, http-client
+     , http-client-tls, http-conduit, http-date, http-types, network-uri
+     , text, time, xml-conduit
+     }:
+     mkDerivation {
+       pname = "http-directory";
+       version = "0.1.10";
+       sha256 = "1dgmd24n0r6r0yjndk62rxvs8nrbzqgdszjg5ad2wm26abynzdgy";
+       libraryHaskellDepends = [
+         base bytestring html-conduit http-client http-client-tls
+         http-conduit http-date http-types network-uri text time xml-conduit
+       ];
+       testHaskellDepends = [ base hspec text ];
+       description = "http directory listing library";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "http-dispatch" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring
      , case-insensitive, hspec, http-client, http-client-tls, http-types
@@ -148621,6 +150651,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Test framework for HTTP APIs";
        license = lib.licenses.bsd3;
+       mainProgram = "test-http-test-bayeshive";
      }) {};
 
   "http-trace" = callPackage
@@ -148640,6 +150671,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Tracking http redirects";
        license = lib.licenses.mit;
+       mainProgram = "http-trace";
      }) {};
 
   "http-types" = callPackage
@@ -148747,6 +150779,7 @@ self: {
        description = "A command-line http2 client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "http2-client-exe";
      }) {};
 
   "http2-client-grpc" = callPackage
@@ -148929,6 +150962,7 @@ self: {
        description = "harmonic analyser and tuner for musical instruments";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "htune";
        broken = true;
      }) {};
 
@@ -148973,6 +151007,7 @@ self: {
        description = "A two player abstract strategy game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "htzaar";
        broken = true;
      }) {};
 
@@ -148992,6 +151027,7 @@ self: {
        ];
        description = "For multiplexing GHC installations and providing development sandboxes";
        license = lib.licenses.bsd3;
+       mainProgram = "hub";
      }) {};
 
   "hubigraph" = callPackage
@@ -149029,6 +151065,7 @@ self: {
        description = "Support library for Hubris, the Ruby <=> Haskell bridge";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Hubrify";
      }) {inherit (pkgs) ruby;};
 
   "huck" = callPackage
@@ -149083,6 +151120,7 @@ self: {
        description = "A fast-foward-based planner";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blocksWorld";
        broken = true;
      }) {};
 
@@ -149175,6 +151213,7 @@ self: {
        description = "A TUI MPD client, inspired by ncmpcpp";
        license = lib.licenses.gpl2Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hum";
        broken = true;
      }) {};
 
@@ -149253,6 +151292,7 @@ self: {
        description = "Haskell UPnP Media Server";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hums";
        broken = true;
      }) {};
 
@@ -149277,6 +151317,7 @@ self: {
        description = "CSS-like syntax for file system manipulation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hunch";
        broken = true;
      }) {};
 
@@ -149305,6 +151346,7 @@ self: {
        description = "A GUI testrunner for HUnit";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tests";
      }) {};
 
   "hunit-parsec" = callPackage
@@ -149349,6 +151391,7 @@ self: {
        description = "Unpacker tool with DWIM";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hunp";
      }) {};
 
   "hunspell-hs" = callPackage
@@ -149423,6 +151466,7 @@ self: {
        description = "A search and indexing engine server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hunt-server";
      }) {};
 
   "hunt-server-cli" = callPackage
@@ -149447,6 +151491,7 @@ self: {
        description = "A Command line Interface for the Hunt server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hunt-server-cli";
        broken = true;
      }) {hunt-client = null;};
 
@@ -149479,6 +151524,7 @@ self: {
        description = "Upload packages and/or documentation to a hackage server";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hup";
        broken = true;
      }) {};
 
@@ -149496,6 +151542,7 @@ self: {
        description = "Extract function names from Windows DLLs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hurdle";
      }) {};
 
   "hurl" = callPackage
@@ -149520,6 +151567,7 @@ self: {
        executableHaskellDepends = [ base directory network-uri ];
        description = "Haskell URL resolver";
        license = lib.licenses.gpl3Only;
+       mainProgram = "hurl";
      }) {};
 
   "hurriyet" = callPackage
@@ -149597,6 +151645,7 @@ self: {
        description = "A simple command line calculator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "husky";
        broken = true;
      }) {};
 
@@ -149619,6 +151668,7 @@ self: {
        description = "A program for the button on Reddit";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hutton";
        broken = true;
      }) {};
 
@@ -149634,6 +151684,7 @@ self: {
        description = "Quick implemention of Hutton's Razor";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "huttons-razor";
        broken = true;
      }) {};
 
@@ -149680,6 +151731,26 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hvega_0_12_0_3" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
+     , filepath, tasty, tasty-golden, text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "hvega";
+       version = "0.12.0.3";
+       sha256 = "1dmc8va82qzr9c7kn8w3nm70f3nb59gz3f6178j6iaph0acplyfh";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ aeson base text unordered-containers ];
+       testHaskellDepends = [
+         aeson aeson-pretty base bytestring containers filepath tasty
+         tasty-golden text unordered-containers
+       ];
+       description = "Create Vega-Lite visualizations (version 4) in Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hvega-theme" = callPackage
     ({ mkDerivation, base, hvega, text }:
      mkDerivation {
@@ -149792,6 +151863,7 @@ self: {
        doHaddock = false;
        description = "Balanced parentheses";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-balancedparens";
      }) {};
 
   "hw-bits" = callPackage
@@ -149837,6 +151909,7 @@ self: {
        description = "CI Assistant for Haskell projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hw-ci-assist";
        broken = true;
      }) {};
 
@@ -149936,6 +152009,7 @@ self: {
        ];
        description = "Unbelievably fast streaming DSV file parser";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-dsv";
      }) {};
 
   "hw-dump" = callPackage
@@ -149969,6 +152043,7 @@ self: {
        ];
        description = "File Dump";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-dump";
      }) {};
 
   "hw-eliasfano" = callPackage
@@ -150006,6 +152081,7 @@ self: {
        ];
        description = "Elias-Fano";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-eliasfano";
      }) {};
 
   "hw-excess" = callPackage
@@ -150155,6 +152231,7 @@ self: {
        doHaddock = false;
        description = "Library for manipulating IP addresses and CIDR blocks";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-ip";
      }) {};
 
   "hw-json" = callPackage
@@ -150200,6 +152277,7 @@ self: {
        description = "Memory efficient JSON parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hw-json";
      }) {};
 
   "hw-json-demo" = callPackage
@@ -150274,6 +152352,7 @@ self: {
        testToolDepends = [ doctest-discover ];
        description = "SIMD-based JSON semi-indexer";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-json-simd";
      }) {};
 
   "hw-json-simple-cursor" = callPackage
@@ -150309,6 +152388,7 @@ self: {
        ];
        description = "Memory efficient JSON parser";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-json";
      }) {};
 
   "hw-json-standard-cursor" = callPackage
@@ -150346,6 +152426,7 @@ self: {
        ];
        description = "Memory efficient JSON parser";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-json-standard-cursor";
      }) {};
 
   "hw-kafka-avro" = callPackage
@@ -150444,6 +152525,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hw-lazy" = callPackage
+    ({ mkDerivation, base, deepseq, doctest, doctest-discover, hedgehog
+     , hspec, hspec-discover, hw-hspec-hedgehog, stm, unliftio-core
+     }:
+     mkDerivation {
+       pname = "hw-lazy";
+       version = "0.0.0.1";
+       sha256 = "10zpmls2wvk25v30237lmfy1i632cn7xz1n0hdkqgsan1amypahq";
+       libraryHaskellDepends = [ base deepseq unliftio-core ];
+       testHaskellDepends = [
+         base doctest doctest-discover hedgehog hspec hw-hspec-hedgehog stm
+       ];
+       testToolDepends = [ doctest-discover hspec-discover ];
+       description = "Combinators for lazy IO";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hw-mquery" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, dlist, doctest
      , doctest-discover, hedgehog, hspec, hspec-discover
@@ -150465,6 +152565,7 @@ self: {
        description = "Monadic query DSL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hw-mquery-example";
        broken = true;
      }) {};
 
@@ -150497,6 +152598,7 @@ self: {
        ];
        description = "Packed Vector";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-packed-vector";
      }) {};
 
   "hw-parser" = callPackage
@@ -150586,6 +152688,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion vector ];
        description = "Primitive support for bit manipulation";
        license = lib.licenses.bsd3;
+       platforms = lib.platforms.x86;
+       mainProgram = "hw-prim-bits-exe";
      }) {};
 
   "hw-rankselect" = callPackage
@@ -150623,6 +152727,7 @@ self: {
        doHaddock = false;
        description = "Rank-select";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-rankselect";
      }) {};
 
   "hw-rankselect-base" = callPackage
@@ -150713,6 +152818,7 @@ self: {
        testToolDepends = [ doctest-discover ];
        description = "SIMD library";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-simd";
      }) {};
 
   "hw-streams" = callPackage
@@ -150800,6 +152906,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Library for creating and extracting tar archives";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-tar";
      }) {};
 
   "hw-uri" = callPackage
@@ -150836,6 +152943,7 @@ self: {
        description = "Supports IO on URIs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hw-uri";
      }) {};
 
   "hw-vector" = callPackage
@@ -150891,6 +152999,7 @@ self: {
        ];
        description = "XML parser based on succinct data structures";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-xml";
      }) {};
 
   "hwall-auth-iitk" = callPackage
@@ -150910,6 +153019,7 @@ self: {
        description = "Initial version of firewall Authentication for IITK network";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "firewall-auth";
        broken = true;
      }) {};
 
@@ -150956,6 +153066,7 @@ self: {
        description = "An implementation of Neil D. Jones' While language";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hwhile";
        broken = true;
      }) {};
 
@@ -150975,6 +153086,7 @@ self: {
        ];
        description = "Commandline text processing with Haskell functions";
        license = lib.licenses.mit;
+       mainProgram = "hwk";
      }) {};
 
   "hworker" = callPackage
@@ -151048,6 +153160,7 @@ self: {
        description = "magic-wormhole client";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hwormhole-exe";
      }) {};
 
   "hws" = callPackage
@@ -151067,6 +153180,7 @@ self: {
        description = "Simple Haskell Web Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hws";
      }) {};
 
   "hwsl2" = callPackage
@@ -151146,6 +153260,7 @@ self: {
        description = "Haskell XMPP (Jabber Client) Command Line Interface (CLI)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hxmppc";
      }) {};
 
   "hxournal" = callPackage
@@ -151173,6 +153288,7 @@ self: {
        description = "A pen notetaking program written in haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hxournal";
      }) {};
 
   "hxt" = callPackage
@@ -151456,6 +153572,7 @@ self: {
        executableHaskellDepends = [ base containers HUnit random ];
        description = "A Yahtzee game implementation in Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "hyahtzee";
      }) {};
 
   "hyakko" = callPackage
@@ -151478,6 +153595,7 @@ self: {
        description = "Literate-style Documentation Generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hyakko";
        broken = true;
      }) {};
 
@@ -151496,6 +153614,7 @@ self: {
        description = "A implementation of a type-checker for Lambda-H";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hybrid";
      }) {};
 
   "hybrid-vectors" = callPackage
@@ -151597,6 +153716,7 @@ self: {
        description = "Hydrogen Data";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "h";
      }) {};
 
   "hydrogen-cli-args" = callPackage
@@ -151767,6 +153887,7 @@ self: {
        description = "WebGL live-coding environment for writing shaders with Hylogen";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hylide";
        broken = true;
      }) {};
 
@@ -151811,6 +153932,7 @@ self: {
        description = "Tableau based theorem prover for hybrid logics";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hylotab";
      }) {};
 
   "hyloutils" = callPackage
@@ -151873,6 +153995,7 @@ self: {
        description = "Server back-end for the HyperHaskell graphical Haskell interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hyper-haskell-server";
        broken = true;
      }) {};
 
@@ -151893,6 +154016,7 @@ self: {
        description = "a fast, trustworthy HTTP(s) server built";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pong";
        broken = true;
      }) {};
 
@@ -152020,6 +154144,7 @@ self: {
        description = "A parser for the _hyperscript programming language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hyperscript-exe";
        broken = true;
      }) {};
 
@@ -152137,6 +154262,7 @@ self: {
        description = "Modules for parsing, generating and manipulating AB1 files";
        license = "(BSD-3-Clause OR Apache-2.0)";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hyraxAbif-exe";
        broken = true;
      }) {};
 
@@ -152174,6 +154300,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "This package is Zaif Exchange Api wrapper";
        license = lib.licenses.bsd3;
+       mainProgram = "hzaif-exe";
      }) {};
 
   "hzenhan" = callPackage
@@ -152325,7 +154452,7 @@ self: {
        ];
        description = "iCalendar data types, parser, and printer";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "iException" = callPackage
@@ -152373,6 +154500,7 @@ self: {
        description = "An API for the Interactive Brokers Trading Workstation written in pure Haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ex";
        broken = true;
      }) {};
 
@@ -152427,6 +154555,7 @@ self: {
        description = "iCalendar format parser and org-mode converter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ical-org";
        broken = true;
      }) {};
 
@@ -152591,6 +154720,7 @@ self: {
        description = "An IDE backend library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ide-backend-exe-cabal";
      }) {};
 
   "ide-backend-common" = callPackage
@@ -152652,6 +154782,7 @@ self: {
        description = "An IDE backend server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ide-backend-server";
      }) {};
 
   "ideas" = callPackage
@@ -152691,6 +154822,7 @@ self: {
        description = "Interactive domain reasoner for logic and mathematics";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ideas-math";
      }) {};
 
   "ideas-math-types" = callPackage
@@ -152721,6 +154853,7 @@ self: {
        description = "Interactive domain reasoner for statistics";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "statistics.cgi";
      }) {};
 
   "idempotent" = callPackage
@@ -152830,6 +154963,7 @@ self: {
        description = "ID3v2 (tagging standard for MP3 files) library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "read-idiii";
        broken = true;
      }) {};
 
@@ -152888,6 +155022,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "A project manage tool for Idris";
        license = lib.licenses.bsd3;
+       mainProgram = "idrin";
      }) {};
 
   "idris" = callPackage
@@ -153122,6 +155257,7 @@ self: {
        description = "An keyboard-driven interactive graph editor";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ige";
        broken = true;
      }) {};
 
@@ -153162,6 +155298,7 @@ self: {
        description = "Handle ignore files of different VCSes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ignore";
        broken = true;
      }) {};
 
@@ -153230,6 +155367,7 @@ self: {
        ];
        description = "A Haskell backend kernel for the IPython project";
        license = lib.licenses.mit;
+       mainProgram = "ihaskell";
      }) {};
 
   "ihaskell-aeson" = callPackage
@@ -153356,6 +155494,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "ihaskell-hvega_0_5_0_3" = callPackage
+    ({ mkDerivation, aeson, base, hvega, ihaskell, text }:
+     mkDerivation {
+       pname = "ihaskell-hvega";
+       version = "0.5.0.3";
+       sha256 = "12bznrjb3qgy9di9p3faymaba8wsbx7v9gp5zxifnad6aqwlblf8";
+       libraryHaskellDepends = [ aeson base hvega ihaskell text ];
+       description = "IHaskell display instance for hvega types";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ihaskell-inline-r" = callPackage
     ({ mkDerivation, base, base64-bytestring, blaze-html, bytestring
      , filepath, ihaskell, ihaskell-blaze, inline-r, template-haskell
@@ -153499,6 +155649,7 @@ self: {
        executableHaskellDepends = [ base process ];
        description = "Interpolated Haskell";
        license = lib.licenses.publicDomain;
+       mainProgram = "ihs";
      }) {};
 
   "ihttp" = callPackage
@@ -153518,6 +155669,7 @@ self: {
        description = "Incremental HTTP iteratee";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ihttp-test";
      }) {};
 
   "ilist" = callPackage
@@ -153558,6 +155710,7 @@ self: {
        description = "A fast syntax highlighting library built with alex";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "illuminate";
        broken = true;
      }) {};
 
@@ -153629,6 +155782,7 @@ self: {
        description = "Command-line image paste utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imagepaste";
        broken = true;
      }) {};
 
@@ -153695,6 +155849,7 @@ self: {
        description = "Downloads email from imap SSL servers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imapget";
      }) {};
 
   "imbib" = callPackage
@@ -153754,6 +155909,7 @@ self: {
        description = "Uploader for Imgur";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imgurder";
      }) {};
 
   "imj-animation" = callPackage
@@ -153792,6 +155948,7 @@ self: {
        description = "Game engine with geometry, easing, animated text, delta rendering";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imj-base-examples-exe";
      }) {};
 
   "imj-game-hamazed" = callPackage
@@ -153813,6 +155970,7 @@ self: {
        description = "A game with flying numbers and 8-bit color animations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imj-game-hamazed-exe";
      }) {};
 
   "imj-measure-stdout" = callPackage
@@ -153829,6 +155987,7 @@ self: {
        description = "An application to determine the maximum capacity of stdout buffer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imj-measure-stdout-exe";
      }) {};
 
   "imj-prelude" = callPackage
@@ -153967,6 +156126,7 @@ self: {
        description = "Multi-platform parser analyzer and generator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imparse";
      }) {};
 
   "imperative-edsl" = callPackage
@@ -154032,33 +156192,33 @@ self: {
 
   "implicit" = callPackage
     ({ mkDerivation, base, blaze-builder, blaze-markup, blaze-svg
-     , bytestring, containers, criterion, deepseq, directory, filepath
-     , hspec, JuicyPixels, monads-tf, optparse-applicative, parallel
-     , parsec, snap-core, snap-server, storable-endian, text
-     , transformers, vector-space
+     , bytestring, containers, criterion, data-default-class, deepseq
+     , directory, filepath, hedgehog, hspec, hw-hspec-hedgehog
+     , JuicyPixels, lens, linear, mtl, optparse-applicative, parallel
+     , parsec, QuickCheck, show-combinators, text
      }:
      mkDerivation {
        pname = "implicit";
-       version = "0.3.0.1";
-       sha256 = "190493di4n0j9yii02jb808k97a9avg5qlxx6gydhw0qmjijh11n";
-       revision = "1";
-       editedCabalFile = "1jqi3wxxwyzjdl0ygpn1qkg549wrnxj90pfhhl9m7rhb665pi0v4";
+       version = "0.4.0.0";
+       sha256 = "06hvvzvik1cw21sj1ynvf1rmy8kfcbsjr4442x59f9l5zq7xsaqw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base blaze-builder blaze-markup blaze-svg bytestring containers
-         deepseq directory filepath hspec JuicyPixels monads-tf parallel
-         parsec storable-endian text transformers vector-space
+         data-default-class deepseq directory filepath JuicyPixels lens
+         linear mtl parallel parsec show-combinators text
        ];
        executableHaskellDepends = [
-         base bytestring criterion filepath optparse-applicative snap-core
-         snap-server text vector-space
+         base filepath optparse-applicative text
        ];
-       testHaskellDepends = [ base hspec parsec ];
-       benchmarkHaskellDepends = [ base criterion parsec ];
+       testHaskellDepends = [
+         base bytestring directory hedgehog hspec hw-hspec-hedgehog lens
+         linear parsec QuickCheck text
+       ];
+       benchmarkHaskellDepends = [ base criterion linear parsec ];
        description = "A math-inspired programmatic 2D & 3D CAD system";
-       license = lib.licenses.agpl3Only;
-       maintainers = with lib.maintainers; [ sorki ];
+       license = lib.licenses.agpl3Plus;
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "implicit-hie" = callPackage
@@ -154085,6 +156245,7 @@ self: {
        ];
        description = "Auto generate hie-bios cradles & hie.yaml";
        license = lib.licenses.bsd3;
+       mainProgram = "gen-hie";
      }) {};
 
   "implicit-hie-cradle" = callPackage
@@ -154296,8 +156457,8 @@ self: {
      }:
      mkDerivation {
        pname = "in-other-words";
-       version = "0.2.1.0";
-       sha256 = "0cm0fxf3snk4ah3jvb9g6f711gs6zg1l7avdj51rgqnlxhsbycqb";
+       version = "0.2.1.1";
+       sha256 = "023xpjpajz2d5g4h3raq8f68lddk8pbp03pnzcwvnvdc3xpa5kfr";
        libraryHaskellDepends = [
          async base exceptions monad-control mtl stm transformers
          transformers-base
@@ -154377,6 +156538,7 @@ self: {
        description = "A type-checker for Haskell with integer constraints";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "inch";
      }) {};
 
   "inchworm" = callPackage
@@ -154398,8 +156560,8 @@ self: {
      }:
      mkDerivation {
        pname = "incipit";
-       version = "0.2.1.0";
-       sha256 = "02zqz3szb4ir1fydjg1ywscyara60rr2hzmaf0d3ghfkm9fbhhs8";
+       version = "0.3.0.0";
+       sha256 = "08q407js3la25cb9n01s4hxk2nxw2y25j48jj2529xxsrispirm3";
        libraryHaskellDepends = [
          base incipit-core polysemy-conc polysemy-log polysemy-resume
          polysemy-time
@@ -154414,8 +156576,8 @@ self: {
      }:
      mkDerivation {
        pname = "incipit-base";
-       version = "0.2.0.0";
-       sha256 = "1a8ryvsr1vrdnjczzidw0inzz6dpwfavwwv1a5wv649rnfgj15yq";
+       version = "0.3.0.0";
+       sha256 = "06p47r0qa8pc0p4738brp9caznmvihv6ipwm2p3nw9whpph16b6i";
        libraryHaskellDepends = [
          base bytestring containers data-default stm text
        ];
@@ -154427,8 +156589,8 @@ self: {
     ({ mkDerivation, base, incipit-base, polysemy }:
      mkDerivation {
        pname = "incipit-core";
-       version = "0.2.0.0";
-       sha256 = "02qjcmiz6pyqqqmzq1im2ylcn5dy4bkk8inkb8kdnzf866l14vd7";
+       version = "0.3.0.0";
+       sha256 = "0gqsdzkbx78dbdb9lwwwwvr8nai5ic6lampxkp32k8ib4pa1csqz";
        libraryHaskellDepends = [ base incipit-base polysemy ];
        description = "A Prelude for Polysemy";
        license = "BSD-2-Clause-Patent";
@@ -154594,6 +156756,7 @@ self: {
        executableHaskellDepends = [ base optparse-applicative text ];
        description = "Fix your indentation";
        license = lib.licenses.bsd3;
+       mainProgram = "indent";
      }) {};
 
   "indentation" = callPackage
@@ -154695,7 +156858,7 @@ self: {
        description = "Indexed Types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
        broken = true;
      }) {};
 
@@ -154951,6 +157114,7 @@ self: {
        description = "Convenient imperative eDSL over Lorentz";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "indigo";
      }) {};
 
   "inf-interval" = callPackage
@@ -155001,6 +157165,7 @@ self: {
        description = "Find the repository from where a given repo was forked";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "infer-upstream";
        broken = true;
      }) {};
 
@@ -155071,6 +157236,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "infinity";
      }) {};
 
   "infix" = callPackage
@@ -155173,6 +157339,7 @@ self: {
        description = "A yesod subsite serving a wiki";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "informative-test";
        broken = true;
      }) {};
 
@@ -155280,6 +157447,7 @@ self: {
        ];
        description = "A minimalistic template engine";
        license = lib.licenses.mit;
+       mainProgram = "inject";
      }) {};
 
   "inject-function" = callPackage
@@ -155333,6 +157501,7 @@ self: {
        ];
        description = "Inline some Assembly in ur Haskell!";
        license = lib.licenses.bsd3;
+       platforms = lib.platforms.x86;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -155360,7 +157529,7 @@ self: {
        ];
        description = "Write Haskell source files including C code inline. No FFI required.";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {};
 
   "inline-c-cpp" = callPackage
@@ -155381,7 +157550,7 @@ self: {
        ];
        description = "Lets you embed C++ code into Haskell";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {};
 
   "inline-c-win32" = callPackage
@@ -155480,6 +157649,7 @@ self: {
        testHaskellDepends = [ base text ];
        description = "Interactive literate programming";
        license = lib.licenses.mit;
+       mainProgram = "inlitpp";
      }) {};
 
   "input-parsers" = callPackage
@@ -155510,6 +157680,7 @@ self: {
        description = "Console client for encyclopedias";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "inquire";
        broken = true;
      }) {aether = null;};
 
@@ -155523,8 +157694,8 @@ self: {
        pname = "insert-ordered-containers";
        version = "0.2.5.1";
        sha256 = "1mnc0gby7xz8065rvkqsaqk1vqs0gv1y9qgvwsvxx3gsg9yj3a7r";
-       revision = "1";
-       editedCabalFile = "1vqsm280r2b573bfznkd9pqmm8ld9ix3z5i1nqmj42q5mv3zlzfm";
+       revision = "2";
+       editedCabalFile = "1mb1iknk0hyz0az85k9w45ymdan37gx3m72mn6zw9i3dib3ly1il";
        libraryHaskellDepends = [
          aeson base deepseq hashable indexed-traversable lens optics-core
          optics-extra semigroupoids text transformers unordered-containers
@@ -155566,6 +157737,7 @@ self: {
        description = "A simple proxy for debugging plaintext protocols communication";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "inspection-proxy";
      }) {};
 
   "inspection-testing" = callPackage
@@ -155584,6 +157756,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "inspection-testing_0_5" = callPackage
+    ({ mkDerivation, base, containers, ghc, mtl, template-haskell
+     , transformers
+     }:
+     mkDerivation {
+       pname = "inspection-testing";
+       version = "0.5";
+       sha256 = "1iawvnk99c7w44qlw3sl98rrwa1krwjbzy0zsyi80ybg00abfwdh";
+       libraryHaskellDepends = [
+         base containers ghc mtl template-haskell transformers
+       ];
+       testHaskellDepends = [ base ];
+       description = "GHC plugin to do inspection testing";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "inspector-wrecker" = callPackage
     ({ mkDerivation, aeson, base, bytestring, case-insensitive
      , connection, data-default, http-client, http-client-tls
@@ -155605,6 +157794,7 @@ self: {
        description = "Create benchmarks from the HAR files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "inspector-wrecker-exe";
      }) {};
 
   "instana-haskell-trace-sdk" = callPackage
@@ -155781,6 +157971,7 @@ self: {
        description = "Basic HTTP gateway to save articles to Instapaper";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "instapaper-sender";
      }) {};
 
   "instinct" = callPackage
@@ -156041,6 +158232,7 @@ self: {
        description = "Integrate different assays";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "integreat";
      }) {};
 
   "intel-aes" = callPackage
@@ -156120,6 +158312,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Interactive quick time series plotting";
        license = lib.licenses.bsd3;
+       mainProgram = "interactive-plot-demo";
      }) {};
 
   "interchangeable" = callPackage
@@ -156145,6 +158338,7 @@ self: {
        description = "Generates a version of a module using InterleavableIO";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "interleavableGen";
        broken = true;
      }) {};
 
@@ -156237,6 +158431,7 @@ self: {
        description = "Shell command for constructing custom stamps for German Post";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "internetmarke";
        broken = true;
      }) {};
 
@@ -156265,6 +158460,7 @@ self: {
        description = "Complete interactive development program for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "intero";
        broken = true;
      }) {};
 
@@ -156298,6 +158494,7 @@ self: {
        description = "Tracery-like randomized text interpolation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "interp";
        broken = true;
      }) {};
 
@@ -156323,6 +158520,7 @@ self: {
        description = "GHC preprocessor and library to enable variable interpolation in strings";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "interpol";
        broken = true;
      }) {};
 
@@ -156556,8 +158754,8 @@ self: {
      }:
      mkDerivation {
        pname = "interval-patterns";
-       version = "0.2.0.1";
-       sha256 = "1zb83sfiggcl4f23imgbvgprnizdy79s4zh1vr334w8sslc6sy98";
+       version = "0.3.0.1";
+       sha256 = "1jf4yj6bq3wwn7qbvwhh5i38gcfp80p6kgfmwrxiv233l7ihy9jq";
        libraryHaskellDepends = [
          base containers groups lattices relude semirings time time-compat
        ];
@@ -156566,6 +158764,8 @@ self: {
          time time-compat
        ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "intervals" = callPackage
@@ -156599,8 +158799,8 @@ self: {
      }:
      mkDerivation {
        pname = "intricacy";
-       version = "0.8.1";
-       sha256 = "0jpg3rvngsil7zii57inax3im92n1ahv6lcrb3swikahbli0d8wc";
+       version = "0.8.1.1";
+       sha256 = "0dvwzbwsrkngdxmgrl2lv9vd30l7afz676ypwnjm8d1z1f03i6pj";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -156613,6 +158813,7 @@ self: {
        description = "A game of competitive puzzle-design";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "intricacy";
        broken = true;
      }) {inherit (pkgs) ncurses;};
 
@@ -156791,6 +158992,7 @@ self: {
        ];
        description = "Project statistics and definition analysis";
        license = lib.licenses.bsd3;
+       mainProgram = "inventory";
      }) {};
 
   "invert" = callPackage
@@ -156973,6 +159175,7 @@ self: {
        executableHaskellDepends = [ base containers ];
        description = "Skeleton library around the IO monad";
        license = lib.licenses.bsd3;
+       mainProgram = "SimpleEchoExample";
      }) {};
 
   "io-memoize" = callPackage
@@ -156999,6 +159202,7 @@ self: {
        description = "An API for generating TIMBER style reactive objects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "io-reactive-test";
        broken = true;
      }) {};
 
@@ -157150,6 +159354,7 @@ self: {
        description = "EDSL for concurrent, realtime, embedded programming on top of Ivory";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ion_example";
      }) {};
 
   "ioref-stable" = callPackage
@@ -157299,6 +159504,7 @@ self: {
        executableHaskellDepends = [ base cmdargs IPv6Addr text ];
        description = "Commandline tool to deal with IPv6 address text representations";
        license = lib.licenses.bsd3;
+       mainProgram = "ip6addr";
      }) {};
 
   "ipa" = callPackage
@@ -157336,6 +159542,7 @@ self: {
        description = "interactive patch editor";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ipatch";
      }) {};
 
   "ipc" = callPackage
@@ -157508,6 +159715,7 @@ self: {
        description = "iptables rules parser/printer library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "iptables-helpers-test";
        broken = true;
      }) {};
 
@@ -157534,6 +159742,7 @@ self: {
        description = "web-interface for iptables";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "iptadmin";
      }) {};
 
   "ipynb" = callPackage
@@ -157627,7 +159836,7 @@ self: {
        ];
        description = "An IRC client library";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "irc-colors" = callPackage
@@ -157674,7 +159883,7 @@ self: {
        testHaskellDepends = [ base hashable HUnit text ];
        description = "IRC core library for glirc";
        license = lib.licenses.isc;
-       maintainers = with lib.maintainers; [ kiwi ];
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "irc-ctcp" = callPackage
@@ -157816,6 +160025,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "A library for writing IRC bots";
        license = lib.licenses.bsd3;
+       mainProgram = "ircbot-demo";
      }) {};
 
   "ircbouncer" = callPackage
@@ -157895,6 +160105,7 @@ self: {
        description = "Automated Local Cabal Package Testing and Uploading";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "iridium";
        broken = true;
      }) {};
 
@@ -157932,6 +160143,7 @@ self: {
        description = "A technical demo for Antisplice";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ironforge";
      }) {};
 
   "irt" = callPackage
@@ -157989,6 +160201,7 @@ self: {
        description = "An executable and library to determine if a file is a DICOM file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "isdicom";
        broken = true;
      }) {};
 
@@ -158015,6 +160228,7 @@ self: {
        executableHaskellDepends = [ base gtk3 ];
        description = "A program to show the size of image and whether suitable for wallpaper";
        license = lib.licenses.bsd3;
+       mainProgram = "isiz";
      }) {};
 
   "islink" = callPackage
@@ -158195,6 +160409,7 @@ self: {
        testHaskellDepends = [ base bytestring text ];
        description = "A portable alternative to GNU Readline";
        license = lib.licenses.mit;
+       mainProgram = "example";
      }) {};
 
   "isohunt" = callPackage
@@ -158295,6 +160510,7 @@ self: {
        description = "Issue Tracker for the CLI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "itcli";
        broken = true;
      }) {};
 
@@ -158372,6 +160588,8 @@ self: {
        pname = "iterable";
        version = "3.0";
        sha256 = "194718jpjwkv3ynlpgjlpvf0iqnj7dkd3zmci363gsa425i3vlbc";
+       revision = "1";
+       editedCabalFile = "0aaxx554mm8xhi8ab9jn5r5a2wxg47hc5kiifjahpdfzq5kjnyvs";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base mtl tagged template-haskell vector
@@ -158525,6 +160743,7 @@ self: {
        executableHaskellDepends = [ base bytestring ];
        description = "Enable graphical display of images inline on some terminals";
        license = lib.licenses.bsd3;
+       mainProgram = "it2-show";
      }) {};
 
   "iterm-show-JuicyPixels" = callPackage
@@ -158691,6 +160910,7 @@ self: {
        description = "Ivory bit-data support";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ivory-bitdata-example";
      }) {};
 
   "ivory-eval" = callPackage
@@ -158733,6 +160953,7 @@ self: {
        description = "Ivory examples";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ivory-c-clang-test";
      }) {};
 
   "ivory-hw" = callPackage
@@ -158843,9 +161064,7 @@ self: {
        librarySystemDepends = [ wirelesstools ];
        description = "Bindings for the iw C library";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) wirelesstools;};
 
   "ix" = callPackage
@@ -158891,6 +161110,7 @@ self: {
        description = "A preprocessor for expanding \"ixdo\" notation for indexed monads";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ixdopp";
        broken = true;
      }) {};
 
@@ -159042,6 +161262,7 @@ self: {
        description = "CLI (command line interface) to YQL";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "iyql";
      }) {};
 
   "j" = callPackage
@@ -159079,6 +161300,7 @@ self: {
        description = "j2hs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "j2hs";
      }) {};
 
   "ja-base-extra" = callPackage
@@ -159123,7 +161345,8 @@ self: {
        description = "Functional, expression-oriented data processing language";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       mainProgram = "ja";
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "jack" = callPackage
@@ -159214,6 +161437,7 @@ self: {
        description = "Generate flamegraphs from Jaeger .json dumps.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jaeger-flamegraph";
        broken = true;
      }) {};
 
@@ -159244,7 +161468,8 @@ self: {
        executableHaskellDepends = [ base Cabal Cabal-syntax ];
        description = "Strip version restrictions from Cabal files";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "jailbreak-cabal";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "jalaali" = callPackage
@@ -159302,6 +161527,7 @@ self: {
        executableHaskellDepends = [ base boxes directory filepath ];
        description = "Export sheet music and audio from Windows/Mac app Jammit";
        license = lib.licenses.gpl3Only;
+       mainProgram = "jammittools";
      }) {};
 
   "japanese-calendar" = callPackage
@@ -159348,6 +161574,7 @@ self: {
        description = "Tool for searching java classes, members and fields in classfiles and JAR archives";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jarf";
        broken = true;
      }) {};
 
@@ -159371,6 +161598,7 @@ self: {
        description = "Jarification of Haskell sources";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jarify";
        broken = true;
      }) {};
 
@@ -159392,6 +161620,7 @@ self: {
        description = "A fast JASONETTE-iOS JSON combinator library for haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jason";
        broken = true;
      }) {};
 
@@ -159408,6 +161637,7 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "Create immutable algebraic data structures for Java";
        license = "unknown";
+       mainProgram = "java-adt";
      }) {};
 
   "java-bridge" = callPackage
@@ -159471,6 +161701,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "The etude of the Haskell programming";
        license = lib.licenses.mit;
+       mainProgram = "java-poker";
      }) {};
 
   "java-reflect" = callPackage
@@ -159548,6 +161779,7 @@ self: {
        description = "Extra javascript functions when using GHCJS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "javascript-extras-test";
      }) {};
 
   "javasf" = callPackage
@@ -159569,6 +161801,7 @@ self: {
        description = "A utility to print the SourceFile attribute of one or more Java class files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "javasf";
      }) {};
 
   "javav" = callPackage
@@ -159586,6 +161819,7 @@ self: {
        description = "A utility to print the target version of Java class files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "javav";
        broken = true;
      }) {};
 
@@ -159609,6 +161843,7 @@ self: {
        description = "Just Build It - a \"do what I mean\" abstraction for Haskell build tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jbi";
        broken = true;
      }) {};
 
@@ -159646,6 +161881,7 @@ self: {
        description = "Implementation of Java Debug Interface";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Test";
        broken = true;
      }) {};
 
@@ -159669,6 +161905,7 @@ self: {
        description = "Generate a cabal freeze file from a stack.yaml";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jenga";
        broken = true;
      }) {};
 
@@ -159695,6 +161932,7 @@ self: {
        description = "Generate nix for Jenkins plugins";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jenkinsPlugins2nix";
        broken = true;
      }) {};
 
@@ -159726,6 +161964,7 @@ self: {
        description = "Extract all JavaScript from an HTML page and consolidate it in one script";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jespresso";
      }) {};
 
   "jet" = callPackage
@@ -159764,6 +162003,7 @@ self: {
          vector vty
        ];
        license = lib.licenses.bsd3;
+       mainProgram = "jet";
      }) {};
 
   "jet-stream" = callPackage
@@ -159808,6 +162048,7 @@ self: {
        description = "Unit conversion and manipulation library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "quantities";
        broken = true;
      }) {};
 
@@ -159826,6 +162067,7 @@ self: {
        testHaskellDepends = [ base parsec tasty tasty-hunit text ];
        description = "Handle Jira wiki markup";
        license = lib.licenses.mit;
+       mainProgram = "jira-wiki-markup";
      }) {};
 
   "jl" = callPackage
@@ -159850,6 +162092,7 @@ self: {
        ];
        description = "Functional sed for JSON";
        license = lib.licenses.bsd3;
+       mainProgram = "jl";
      }) {};
 
   "jmacro" = callPackage
@@ -159877,6 +162120,7 @@ self: {
        description = "QuasiQuotation library for programmatic generation of Javascript code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jmacro";
      }) {};
 
   "jmacro-rpc" = callPackage
@@ -160188,6 +162432,7 @@ self: {
        description = "JP's own ray tracer";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jort";
        broken = true;
      }) {};
 
@@ -160260,6 +162505,7 @@ self: {
        ];
        description = "Tiny markdown notebook";
        license = lib.licenses.isc;
+       mainProgram = "jot";
      }) {};
 
   "joy-rewrite" = callPackage
@@ -160308,6 +162554,7 @@ self: {
        executableHaskellDepends = [ base optparse-applicative time ];
        description = "Ephemerides for solar system objects from the JPL Horizons service";
        license = lib.licenses.bsd3;
+       mainProgram = "jh-csv";
      }) {};
 
   "jps" = callPackage
@@ -160458,9 +162705,7 @@ self: {
        ];
        description = "JSaddle Hello World, an example package";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "jsaddle-warp" = callPackage
@@ -160506,9 +162751,7 @@ self: {
        ];
        description = "Interface for JavaScript that works with GHCJS and GHC";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "jsaddle-webkitgtk" = callPackage
@@ -160749,6 +162992,7 @@ self: {
        description = "Automatic type declaration for JSON input data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "json-autotype";
      }) {};
 
   "json-b" = callPackage
@@ -160772,6 +163016,7 @@ self: {
        description = "JSON parser that uses byte strings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "json-schema";
      }) {};
 
   "json-builder" = callPackage
@@ -160830,6 +163075,7 @@ self: {
        description = "Load JSON from files in a directory structure";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jsondir";
        broken = true;
      }) {};
 
@@ -160894,8 +163140,8 @@ self: {
      }:
      mkDerivation {
        pname = "json-feed";
-       version = "2.0.0.1";
-       sha256 = "1znipg1g33s2z7pv20rnl6i3l1xf05wrz9d6srr7kgvv703w4qgk";
+       version = "2.0.0.2";
+       sha256 = "075385gvk01r6iw5v7d019y9fa9xng4nx574qjxrxp3nci9gv4rq";
        libraryHaskellDepends = [
          aeson base bytestring mime-types network-uri tagsoup text time
        ];
@@ -161359,6 +163605,7 @@ self: {
          recursion-schemes text unordered-containers vector
        ];
        license = lib.licenses.bsd3;
+       mainProgram = "json-to-haskell";
      }) {};
 
   "json-togo" = callPackage
@@ -161520,6 +163767,7 @@ self: {
        executableHaskellDepends = [ aeson base bytestring yaml ];
        description = "Utility to convert a file from JSON to YAML format. (deprecated)";
        license = lib.licenses.bsd3;
+       mainProgram = "json2yaml";
      }) {};
 
   "json5hs" = callPackage
@@ -161556,6 +163804,7 @@ self: {
        description = "Filter select values in JSON objects to unix programs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jsonextfilter";
        broken = true;
      }) {};
 
@@ -161676,6 +163925,7 @@ self: {
        description = "Jsonnet implementaton in pure Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-jsonnet";
        broken = true;
      }) {};
 
@@ -161724,8 +163974,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsonrpc-conduit";
-       version = "0.3.10";
-       sha256 = "1p2rbk0x998jvzhxb52w1vmjzjkvr1z3cw90apb2c2xpvn4z0ks7";
+       version = "0.3.12";
+       sha256 = "0yv7x9c1qgc332vzk61zlr4v0zckjgx3nbd17klxf3w8hljb25vs";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring conduit conduit-extra mtl text
          transformers unordered-containers
@@ -161786,6 +164036,7 @@ self: {
        description = "JSON to JSON Schema";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jsons-to-schema-exe";
      }) {};
 
   "jsonschema-gen" = callPackage
@@ -161830,6 +164081,7 @@ self: {
        description = "Interpolate JSON object values into SQL strings";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jsonsql";
        broken = true;
      }) {};
 
@@ -161852,6 +164104,7 @@ self: {
        description = "JSON to TSV transformer";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jsontsv";
        broken = true;
      }) {};
 
@@ -161874,6 +164127,7 @@ self: {
        description = "json to xlsx converter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jsonxlsx";
        broken = true;
      }) {};
 
@@ -161940,6 +164194,7 @@ self: {
        ];
        description = "Manage users in MariaDB >= 10.1.1";
        license = lib.licenses.mit;
+       mainProgram = "juandelacosa";
      }) {};
 
   "judge" = callPackage
@@ -161967,6 +164222,7 @@ self: {
        description = "Tableau-based theorem prover for justification logic";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "judge";
        broken = true;
      }) {};
 
@@ -162001,6 +164257,7 @@ self: {
        executableHaskellDepends = [ base JuicyPixels ];
        description = "Draw and fill lines, rectangles and polygons";
        license = lib.licenses.mit;
+       mainProgram = "juicy-draw-demo";
      }) {};
 
   "juicy-gcode" = callPackage
@@ -162020,6 +164277,7 @@ self: {
        description = "SVG to G-Code converter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "juicy-gcode";
        broken = true;
      }) {};
 
@@ -162042,6 +164300,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "A first-order reasoning toolbox";
        license = lib.licenses.bsd3;
+       mainProgram = "jukebox";
      }) {};
 
   "jump" = callPackage
@@ -162068,6 +164327,7 @@ self: {
        executableHaskellDepends = [ base parallel ];
        description = "an elementary symmetric chiffre for pragmatically protecting one's effects";
        license = lib.licenses.bsd3;
+       mainProgram = "jumpthefive";
      }) {};
 
   "junit-xml" = callPackage
@@ -162395,6 +164655,7 @@ self: {
        description = "GLUT events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kafka-device-glut";
      }) {};
 
   "kafka-device-joystick" = callPackage
@@ -162416,6 +164677,7 @@ self: {
        description = "Linux joystick events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kafka-device-joystick";
      }) {};
 
   "kafka-device-leap" = callPackage
@@ -162435,6 +164697,7 @@ self: {
        description = "Leap Motion events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kafka-device-leap";
      }) {};
 
   "kafka-device-spacenav" = callPackage
@@ -162456,6 +164719,7 @@ self: {
        description = "Linux SpaceNavigator events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kafka-device-spacenav";
      }) {};
 
   "kafka-device-vrpn" = callPackage
@@ -162471,6 +164735,7 @@ self: {
        description = "VRPN events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kafka-device-vrpn";
      }) {};
 
   "kaleidoscope" = callPackage
@@ -162575,8 +164840,8 @@ self: {
        pname = "kansas-comet";
        version = "0.4.1";
        sha256 = "1j54rsqna8xrw1si8i74v0c9k4jjv8a2q001aa8sx4rxb7d1qbzy";
-       revision = "2";
-       editedCabalFile = "19gnng378z76zfi789ysdh1cl50ydsk7745mf6a34d08flk6a9if";
+       revision = "3";
+       editedCabalFile = "1d8wwklqcayr12wyhci6h1aihd41q20zl1h5585nsv1dgvqinamh";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base containers data-default-class scotty stm text time
@@ -162978,27 +165243,6 @@ self: {
      }:
      mkDerivation {
        pname = "katip-wai";
-       version = "0.1.1.0";
-       sha256 = "0ajwa6ya0azbffcz2cpsd2kd8fy2s2hbklyj604f27pghl7fki06";
-       libraryHaskellDepends = [
-         aeson base bytestring clock http-types katip network text uuid wai
-       ];
-       testHaskellDepends = [
-         aeson async base bytestring containers hspec http-client http-types
-         katip stm text uuid wai warp
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "WAI middleware for logging request and response info through katip";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "katip-wai_0_1_2_0" = callPackage
-    ({ mkDerivation, aeson, async, base, bytestring, clock, containers
-     , hspec, hspec-discover, http-client, http-types, katip, network
-     , stm, text, uuid, wai, warp
-     }:
-     mkDerivation {
-       pname = "katip-wai";
        version = "0.1.2.0";
        sha256 = "10chkrjjh6ja6bil3s12hm7mfgi1j1idq490h5iqs1y3am44bda1";
        libraryHaskellDepends = [
@@ -163011,7 +165255,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "WAI middleware for logging request and response info through katip";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "katt" = callPackage
@@ -163034,6 +165277,7 @@ self: {
        description = "Client for the Kattis judge system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "katt";
        broken = true;
      }) {};
 
@@ -163069,6 +165313,7 @@ self: {
        description = "A haskell implementation of Katydid";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "katydid-exe";
        broken = true;
      }) {};
 
@@ -163091,6 +165336,7 @@ self: {
        testHaskellDepends = [ base hedgehog text unordered-containers ];
        description = "Key-value store in single files";
        license = lib.licenses.bsd3;
+       mainProgram = "kawa";
      }) {};
 
   "kawaii" = callPackage
@@ -163164,6 +165410,8 @@ self: {
        ];
        description = "Fast concurrent queues much inspired by unagi-chan";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "kbq-gu" = callPackage
@@ -163232,6 +165480,7 @@ self: {
        description = "Build profiles for kdesrc-build";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kdesrc-build-extra";
        broken = true;
      }) {};
 
@@ -163251,6 +165500,7 @@ self: {
        ];
        description = "Build profiles for kdesrc-build";
        license = lib.licenses.gpl3Only;
+       mainProgram = "kdesrc-build-profiles";
      }) {};
 
   "kdt" = callPackage
@@ -163298,6 +165548,7 @@ self: {
        description = "cryptographic functions based on the sponge construction";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "collision";
        broken = true;
      }) {};
 
@@ -163327,6 +165578,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "keenser-exe";
      }) {};
 
   "keep-alive" = callPackage
@@ -163341,6 +165593,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "keep-alive_0_2_1_0" = callPackage
+    ({ mkDerivation, base, network }:
+     mkDerivation {
+       pname = "keep-alive";
+       version = "0.2.1.0";
+       sha256 = "1sbkn9rkj8rv5gn2a4s46rfmxr46ya7l8bqbdp8p3xga79d42pyh";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base network ];
+       description = "TCP keep alive implementation";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "keera-callbacks" = callPackage
     ({ mkDerivation, base, mtl }:
      mkDerivation {
@@ -163693,6 +165958,7 @@ self: {
        description = "Get notifications when your sitting posture is inappropriate";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "keera-posture";
      }) {inherit (pkgs) SDL_mixer;};
 
   "keid-core" = callPackage
@@ -163718,10 +165984,7 @@ self: {
        ];
        description = "Core parts of Keid engine";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -163755,10 +166018,7 @@ self: {
        ];
        description = "Geometry primitives for Keid engine";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -163780,10 +166040,7 @@ self: {
        ];
        description = "Basic rendering programs for Keid engine";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -163818,10 +166075,7 @@ self: {
        ];
        description = "OpenAL sound system for Keid engine";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -163840,10 +166094,7 @@ self: {
        ];
        description = "DearImGui elements for Keid engine";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -163867,6 +166118,7 @@ self: {
        description = "Multi-process orchestration for development and integration testing";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "keiretsu";
        broken = true;
      }) {};
 
@@ -163903,6 +166155,7 @@ self: {
        description = "Kempe compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kc";
        broken = true;
      }) {};
 
@@ -163988,6 +166241,7 @@ self: {
        ];
        description = "Web application deployment manager, focusing on Haskell web frameworks";
        license = lib.licenses.mit;
+       mainProgram = "keter";
      }) {};
 
   "kevin" = callPackage
@@ -164009,6 +166263,7 @@ self: {
        description = "a dAmn ↔ IRC proxy";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kevin";
      }) {};
 
   "kewar" = callPackage
@@ -164026,6 +166281,7 @@ self: {
        description = "CLI and library to generate QR codes";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kewar";
        broken = true;
      }) {};
 
@@ -164089,6 +166345,7 @@ self: {
        executableHaskellDepends = [ base hslogger ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -164193,6 +166450,7 @@ self: {
        description = "back up a secret key securely to the cloud";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "keysafe";
      }) {};
 
   "keystore" = callPackage
@@ -164265,6 +166523,7 @@ self: {
        description = "Extract data from a keyword-args config file format";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "keyword-args";
      }) {};
 
   "khph" = callPackage
@@ -164285,6 +166544,7 @@ self: {
        description = "Command-line file tagging and organization tool";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "khph";
        broken = true;
      }) {};
 
@@ -164391,6 +166651,7 @@ self: {
        description = "Process KIF iOS test logs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kif-parser";
      }) {};
 
   "kind-apply" = callPackage
@@ -164463,6 +166724,7 @@ self: {
        description = "A dependency manager for Xcode (Objective-C) projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kit";
      }) {};
 
   "kleene" = callPackage
@@ -164553,6 +166815,7 @@ self: {
        description = "An implementation of the kmeans clustering algorithm based on the vector package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kmeans-example";
      }) {};
 
   "kmn-programming" = callPackage
@@ -164570,6 +166833,7 @@ self: {
        ];
        description = "K_M,N quadratic programming";
        license = lib.licenses.bsd3;
+       mainProgram = "kmn-programming";
      }) {};
 
   "kmonad" = callPackage
@@ -164590,6 +166854,7 @@ self: {
        description = "Advanced keyboard remapping utility";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kmonad";
        broken = true;
      }) {};
 
@@ -164723,6 +166988,7 @@ self: {
        description = "Khovanov homology computations";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Rolfsen-Kh";
        broken = true;
      }) {};
 
@@ -164771,6 +167037,7 @@ self: {
        description = "CLI tool for installing rpms directly from Fedora Koji";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "koji-install";
      }) {};
 
   "koji-tool" = callPackage
@@ -164781,8 +167048,8 @@ self: {
      }:
      mkDerivation {
        pname = "koji-tool";
-       version = "0.9.1";
-       sha256 = "0njjrxqycyl7vh46rmx2b3i0467nkppbx20xc3j1jxn7s3dc884x";
+       version = "0.9.2";
+       sha256 = "0fl3cgdw2b1mhc07zbh6k4b20ck0pgk8r678ywvi45asr331y2r6";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -164794,6 +167061,7 @@ self: {
        description = "Koji CLI tool for querying tasks and installing builds";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "koji-tool";
      }) {};
 
   "koneko" = callPackage
@@ -164827,6 +167095,7 @@ self: {
        description = "a concatenative not-quite-lisp for kittens";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "koneko";
        broken = true;
      }) {};
 
@@ -164920,6 +167189,7 @@ self: {
        description = "The Korfu ORF Utility";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "korfu";
      }) {};
 
   "kparams" = callPackage
@@ -164936,6 +167206,7 @@ self: {
        doHaddock = false;
        description = "Extracts values from /proc/cmdline";
        license = lib.licenses.mit;
+       mainProgram = "kparams";
      }) {};
 
   "kqueue" = callPackage
@@ -164949,7 +167220,11 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "A binding to the kqueue event library";
        license = lib.licenses.bsd3;
-       platforms = [ "aarch64-darwin" "x86_64-darwin" ];
+       platforms =
+            lib.platforms.darwin
+         ++ lib.platforms.freebsd
+         ++ lib.platforms.netbsd
+         ++ lib.platforms.openbsd;
      }) {};
 
   "kraken" = callPackage
@@ -165000,6 +167275,7 @@ self: {
        description = "Krank checks issue tracker link status in your source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "krank";
        broken = true;
      }) {};
 
@@ -165378,6 +167654,7 @@ self: {
        description = "an experiment management framework";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "labor-example";
      }) {};
 
   "labsat" = callPackage
@@ -165402,6 +167679,7 @@ self: {
        description = "LabSat TCP Interface Wrapper";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "labsat";
      }) {};
 
   "labyrinth" = callPackage
@@ -165458,14 +167736,15 @@ self: {
        description = "A complicated turn-based game - Web server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "labyrinth-server";
      }) {};
 
   "lackey" = callPackage
     ({ mkDerivation, base, hspec, servant, servant-foreign, text }:
      mkDerivation {
        pname = "lackey";
-       version = "2.0.0.1";
-       sha256 = "09jc3amsj20c2bqn8x4ibcd43rzjv7mz2c2qs4rdic2ggfkhifcj";
+       version = "2.0.0.2";
+       sha256 = "0iiwqnhpz0df79gk224kfp20k2aip41vsz7sakbj5dmlgzlr8d0j";
        libraryHaskellDepends = [ base servant-foreign text ];
        testHaskellDepends = [ base hspec servant servant-foreign text ];
        description = "Generate Ruby clients from Servant APIs";
@@ -165551,27 +167830,34 @@ self: {
        description = "A bridge from Haskell (on a CPU) to VHDL on a FPGA";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-test1";
        broken = true;
      }) {};
 
   "lambda-calculator" = callPackage
-    ({ mkDerivation, base, containers, hlint, hspec, HUnit
-     , optparse-applicative, parsec, Shellac, Shellac-readline
+    ({ mkDerivation, base, bytestring, containers, hlint, hspec, HUnit
+     , mtl, optparse-applicative, parsec, prettyprinter, repline, rio
+     , text
      }:
      mkDerivation {
        pname = "lambda-calculator";
-       version = "2.0.0";
-       sha256 = "1bqlx04rp3ycqzy4x92nd9826pnzyd51k5vkaksxj3vj9nr2ycg5";
+       version = "3.0.0.1";
+       sha256 = "1830xqgr7fy4bbdys27qcq6qa1r83ajx0dl0vjx46gmccdm5fjmq";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base containers parsec ];
+       libraryHaskellDepends = [
+         base containers mtl parsec prettyprinter rio
+       ];
        executableHaskellDepends = [
-         base optparse-applicative Shellac Shellac-readline
+         base bytestring containers mtl optparse-applicative prettyprinter
+         repline rio text
+       ];
+       testHaskellDepends = [
+         base containers hlint hspec HUnit mtl prettyprinter rio
        ];
-       testHaskellDepends = [ base containers hlint hspec HUnit ];
        description = "A lambda calculus interpreter";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambda-calculator";
      }) {};
 
   "lambda-calculus-interpreter" = callPackage
@@ -165587,6 +167873,7 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit ];
        description = "Lambda Calculus interpreter";
        license = lib.licenses.bsd3;
+       mainProgram = "lci";
      }) {};
 
   "lambda-canvas" = callPackage
@@ -165645,6 +167932,7 @@ self: {
        description = "a Paralell-DEVS implementaion based on distributed-process";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambda-devs-example";
      }) {};
 
   "lambda-options" = callPackage
@@ -165703,6 +167991,7 @@ self: {
        description = "An application to work with the lambda calculus (for learning)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambda-toolbox";
        broken = true;
      }) {};
 
@@ -165718,6 +168007,7 @@ self: {
        description = "Untyped Lambda calculus to JavaScript compiler";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambda2js";
        broken = true;
      }) {};
 
@@ -165746,6 +168036,7 @@ self: {
        description = "RSS 2.0 feed generator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambdaFeed";
      }) {};
 
   "lambdaLit" = callPackage
@@ -165764,6 +168055,7 @@ self: {
        description = "...";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambdaLit";
      }) {};
 
   "lambdabot" = callPackage
@@ -165786,7 +168078,8 @@ self: {
        ];
        description = "Lambdabot is a development tool and advanced IRC bot";
        license = "GPL";
-       maintainers = with lib.maintainers; [ ncfavier ];
+       mainProgram = "lambdabot";
+       maintainers = [ lib.maintainers.ncfavier ];
      }) {};
 
   "lambdabot-core" = callPackage
@@ -165955,6 +168248,7 @@ self: {
        description = "Lambdabot for Telegram";
        license = lib.licenses.gpl2Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "telegram-lambdabot";
        broken = true;
      }) {};
 
@@ -166015,6 +168309,7 @@ self: {
        description = "Lambdabot plugin for XMPP (Jabber) protocol";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambdabot-xmpp";
        broken = true;
      }) {};
 
@@ -166037,6 +168332,7 @@ self: {
        description = "Lambdabot for Zulip Chat";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lamdabot-zulip-server";
      }) {};
 
   "lambdacat" = callPackage
@@ -166056,6 +168352,7 @@ self: {
        description = "Webkit Browser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambdacat";
      }) {};
 
   "lambdacms-core" = callPackage
@@ -166113,6 +168410,7 @@ self: {
        description = "A simple lambda cube type checker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cube";
      }) {};
 
   "lambdacube-bullet" = callPackage
@@ -166152,6 +168450,7 @@ self: {
        description = "LambdaCube 3D is a DSL to program GPUs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lc";
      }) {};
 
   "lambdacube-core" = callPackage
@@ -166358,6 +168657,7 @@ self: {
        description = "Diff Viewer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambdiff";
      }) {};
 
   "lame" = callPackage
@@ -166448,6 +168748,7 @@ self: {
        description = "Parser, pretty-printer, and more for the Modula-2 programming language";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parse";
      }) {};
 
   "language-asn" = callPackage
@@ -166487,6 +168788,7 @@ self: {
        ];
        description = "Parsing of ASN1 definitions";
        license = lib.licenses.bsd3;
+       mainProgram = "dump-asn1-ast";
      }) {};
 
   "language-ats" = callPackage
@@ -166570,6 +168872,7 @@ self: {
        description = "Interpreter and language infrastructure for Boogie";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "boogaloo";
      }) {};
 
   "language-c" = callPackage
@@ -166588,7 +168891,7 @@ self: {
        testHaskellDepends = [ base directory filepath process ];
        description = "Analysis and generation of C code";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       maintainers = [ lib.maintainers.expipiplus1 ];
      }) {};
 
   "language-c-comments" = callPackage
@@ -166799,6 +169102,7 @@ self: {
        doHaddock = false;
        description = "A language for generative literature";
        license = lib.licenses.bsd3;
+       mainProgram = "emd";
      }) {};
 
   "language-docker" = callPackage
@@ -166889,6 +169193,7 @@ self: {
        testHaskellDepends = [ base parsec ];
        description = "A library for the analysis and creation of Graphviz DOT files";
        license = lib.licenses.bsd3;
+       mainProgram = "ppdot";
      }) {};
 
   "language-ecmascript" = callPackage
@@ -167032,6 +169337,7 @@ self: {
        ];
        description = "GLSL abstract syntax tree, parser, and pretty-printer";
        license = lib.licenses.bsd3;
+       mainProgram = "glsl-pprint";
      }) {};
 
   "language-go" = callPackage
@@ -167299,6 +169605,7 @@ self: {
        description = "Parser, pretty-printer, and AST types for the MIXAL assembly language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mixal-pretty";
        broken = true;
      }) {};
 
@@ -167354,7 +169661,7 @@ self: {
        ];
        description = "Data types and functions to represent the Nix language";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "language-oberon" = callPackage
@@ -167387,6 +169694,7 @@ self: {
        description = "Parser, pretty-printer, and more for the Oberon programming language";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parse";
      }) {};
 
   "language-objc" = callPackage
@@ -167450,6 +169758,7 @@ self: {
        description = "A simple parser for OpenSCAD";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Test";
        broken = true;
      }) {};
 
@@ -167561,6 +169870,7 @@ self: {
        description = "Generate coloured XHTML for Python code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pycol";
      }) {};
 
   "language-python-test" = callPackage
@@ -168031,11 +170341,8 @@ self: {
        ];
        description = "Efficiently hash (large) Haskell values";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       badPlatforms = [ "aarch64-linux" ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "large-records" = callPackage
@@ -168096,6 +170403,7 @@ self: {
        description = "Tool to track security alerts on LWN";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lat";
      }) {};
 
   "latest-npm-version" = callPackage
@@ -168127,6 +170435,7 @@ self: {
        description = "Find the latest version of a package on npm";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "latest-npm-version";
      }) {};
 
   "latex" = callPackage
@@ -168199,6 +170508,7 @@ self: {
        description = "Render LaTeX formulae in pandoc documents to images with an actual LaTeX installation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "latex-formulae-filter";
      }) {};
 
   "latex-function-tables" = callPackage
@@ -168221,6 +170531,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Function table specifications in latex";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "latex-live-snippets" = callPackage
@@ -168236,6 +170547,7 @@ self: {
        ];
        description = "Automatically inline Haskell snippets into LaTeX documents";
        license = lib.licenses.bsd3;
+       mainProgram = "latex-live-snippets";
      }) {};
 
   "latex-svg-hakyll" = callPackage
@@ -168291,6 +170603,7 @@ self: {
        description = "Render LaTeX formulae in pandoc documents to images with an actual LaTeX";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "latex-svg-filter";
      }) {};
 
   "lattices" = callPackage
@@ -168369,6 +170682,7 @@ self: {
        description = "High and low-level interface to the Novation Launchpad midi controller";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "launchpad-control-examples";
        broken = true;
      }) {};
 
@@ -168482,6 +170796,7 @@ self: {
        description = "A prototypical 2d platform game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "layers";
      }) {};
 
   "layout" = callPackage
@@ -168616,6 +170931,7 @@ self: {
        executableHaskellDepends = [ base bytestring ];
        description = "Efficient lazy parsers for CSV (comma-separated values)";
        license = lib.licenses.bsd3;
+       mainProgram = "csvSelect";
      }) {};
 
   "lazy-hash" = callPackage
@@ -168697,6 +171013,7 @@ self: {
        description = "Lazy-Spined Monadic Priority Queues";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Levenshtein";
        broken = true;
      }) {};
 
@@ -168891,8 +171208,8 @@ self: {
      }:
      mkDerivation {
        pname = "ldap-scim-bridge";
-       version = "0.6";
-       sha256 = "0jlqq83mikf5j5hapd3ijf3ywzivhhj4702yl43b4ysqcq83bj7i";
+       version = "0.7";
+       sha256 = "1vy8ccdjp4s8pbv1jckd53c07gzykzjacdk104bcvfj8pv09k7cq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -168910,6 +171227,7 @@ self: {
        description = "See README for synopsis";
        license = lib.licenses.agpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ldap-scim-bridge";
      }) {};
 
   "ldapply" = callPackage
@@ -168929,6 +171247,7 @@ self: {
        description = "LDIF idempotent apply tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ldapply";
      }) {};
 
   "ldif" = callPackage
@@ -168972,6 +171291,7 @@ self: {
        description = "A simple portfolio generator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "leaf";
        broken = true;
      }) {};
 
@@ -168992,6 +171312,7 @@ self: {
        description = "Robust space leak, and its strictification";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "leaky";
      }) {};
 
   "lean" = callPackage
@@ -169257,7 +171578,7 @@ self: {
        ];
        description = "LEB128 and SLEB128 encoding";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ nomeata ];
+       maintainers = [ lib.maintainers.nomeata ];
      }) {};
 
   "leetify" = callPackage
@@ -169273,6 +171594,7 @@ self: {
        description = "Leetify text";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "leetify";
        broken = true;
      }) {};
 
@@ -169287,6 +171609,7 @@ self: {
        executableHaskellDepends = [ base hscharm random random-shuffle ];
        description = "left4dead-inspired roguelike";
        license = lib.licenses.bsd3;
+       mainProgram = "left4deadrl";
      }) {};
 
   "legion" = callPackage
@@ -169335,6 +171658,7 @@ self: {
        description = "A discovery service based on Legion";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "legion-discovery";
      }) {};
 
   "legion-discovery-client" = callPackage
@@ -169415,6 +171739,7 @@ self: {
        description = "Haskell IDE written in Haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "leksah";
      }) {inherit (pkgs) gtk3;};
 
   "leksah-server" = callPackage
@@ -169608,6 +171933,8 @@ self: {
        pname = "lens-aeson";
        version = "1.2.1";
        sha256 = "08x0vbkay8d6s24fzy2iria0hl9pmq891cnzm6zl0j9j53z9jw9l";
+       revision = "2";
+       editedCabalFile = "0pbnfpr8l1nbskh7sn40jazrfmbzsnw8xgw2iyk7dnqwfl6vzirs";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring lens scientific text text-short
          unordered-containers vector
@@ -169963,7 +172290,7 @@ self: {
        description = "Tutorial for the lens library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
        broken = true;
      }) {};
 
@@ -170068,7 +172395,8 @@ self: {
        ];
        description = "frugal issue tracker";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ rvl ];
+       mainProgram = "lentil";
+       maintainers = [ lib.maintainers.rvl ];
      }) {};
 
   "lenz" = callPackage
@@ -170337,6 +172665,7 @@ self: {
        description = "Lens GUI Toolkit";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lgtkdemo";
      }) {};
 
   "lha" = callPackage
@@ -170369,6 +172698,7 @@ self: {
        description = "Simple spreadsheet program";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lhae";
      }) {};
 
   "lhc" = callPackage
@@ -170415,6 +172745,7 @@ self: {
        description = "Literate highlighter preprocessor for lhs2tex";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lhs2TeX-hl";
        broken = true;
      }) {};
 
@@ -170430,6 +172761,7 @@ self: {
        executableHaskellDepends = [ base directory filepath Glob ];
        description = "Compile lhs in bird style to md, html, hs";
        license = lib.licenses.publicDomain;
+       mainProgram = "lhs2html";
      }) {};
 
   "lhs2tex" = callPackage
@@ -170450,7 +172782,8 @@ self: {
        ];
        description = "Preprocessor for typesetting Haskell sources with LaTeX";
        license = "GPL";
-       maintainers = with lib.maintainers; [ nomeata ];
+       mainProgram = "lhs2TeX";
+       maintainers = [ lib.maintainers.nomeata ];
      }) {};
 
   "lhslatex" = callPackage
@@ -170467,6 +172800,7 @@ self: {
        description = "Tool for using pdflatex with .lhs files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lhslatex";
        broken = true;
      }) {};
 
@@ -170483,6 +172817,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "A binding to the libBF library";
        license = lib.licenses.mit;
+       mainProgram = "bf-test";
      }) {};
 
   "libGenI" = callPackage
@@ -170706,6 +173041,7 @@ self: {
        description = "Backend for text editors to provide better Haskell editing support";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "libhbb-cli";
        broken = true;
      }) {};
 
@@ -170925,6 +173261,7 @@ self: {
        ];
        description = "Bindings for libmdbx, an embedded key/value store";
        license = lib.licenses.bsd3;
+       mainProgram = "libmdbx-exe";
      }) {};
 
   "libmodbus" = callPackage
@@ -170937,9 +173274,7 @@ self: {
        librarySystemDepends = [ modbus ];
        description = "Haskell bindings to the C modbus library";
        license = lib.licenses.bsd2;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {modbus = null;};
 
   "libmolude" = callPackage
@@ -171067,6 +173402,7 @@ self: {
        description = "Bindings to liboath";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "oathtool-hs";
        broken = true;
      }) {liboath = null; oath = null;};
 
@@ -171166,6 +173502,7 @@ self: {
        description = "Raft consensus algorithm";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "raft-example";
      }) {};
 
   "librandomorg" = callPackage
@@ -171373,9 +173710,7 @@ self: {
        libraryPkgconfigDepends = [ systemd ];
        description = "Haskell bindings to libsystemd-journal";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) systemd;};
@@ -171410,9 +173745,7 @@ self: {
        libraryPkgconfigDepends = [ libtelnet ];
        description = "Bindings to libtelnet";
        license = lib.licenses.gpl3Plus;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) libtelnet;};
 
   "libversion" = callPackage
@@ -171438,10 +173771,7 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "FFI bindings to libvirt virtualization API (http://libvirt.org)";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "aarch64-linux" "armv7l-linux" "i686-linux"
-         "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) libvirt;};
 
   "libvorbis" = callPackage
@@ -171582,10 +173912,9 @@ self: {
        executableSystemDepends = [ nvpair zfs ];
        description = "Bindings to libzfs, for dealing with the Z File System and Zpools";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {nvpair = null; inherit (pkgs) zfs;};
 
@@ -171607,6 +173936,7 @@ self: {
        description = "A license compatibility helper";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "licensor";
        broken = true;
      }) {};
 
@@ -171623,6 +173953,7 @@ self: {
        description = "Lie Algebras";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Lie";
        broken = true;
      }) {};
 
@@ -171638,6 +173969,7 @@ self: {
        executableHaskellDepends = [ array base GLUT OpenGL random ];
        description = "Conway's Life cellular automaton";
        license = lib.licenses.bsd3;
+       mainProgram = "life";
      }) {};
 
   "life-sync" = callPackage
@@ -171665,6 +173997,7 @@ self: {
        description = "Synchronize personal configs across multiple machines";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "life";
        broken = true;
      }) {};
 
@@ -171868,6 +174201,7 @@ self: {
        description = "A boulderdash-like game and solution validator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lifter";
        broken = true;
      }) {};
 
@@ -171982,6 +174316,7 @@ self: {
        description = "LightStep OpenTracing client library";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lightstep-haskell-stress-test";
      }) {};
 
   "lighttpd-conf" = callPackage
@@ -172123,6 +174458,7 @@ self: {
        description = "Zen gardening, based on l-systems";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "linden-example";
        broken = true;
      }) {};
 
@@ -172202,6 +174538,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Convert newlines in text";
        license = lib.licenses.gpl3Only;
+       mainProgram = "linebreak";
      }) {};
 
   "line-drawing" = callPackage
@@ -172229,6 +174566,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Display the number of bytes of each line";
        license = lib.licenses.gpl3Only;
+       mainProgram = "line-size";
      }) {};
 
   "line2pdf" = callPackage
@@ -172243,6 +174581,7 @@ self: {
        executableHaskellDepends = [ base bytestring containers ];
        description = "Simple command-line utility to convert text into PDF";
        license = lib.licenses.bsd3;
+       mainProgram = "line2pdf";
      }) {};
 
   "linear" = callPackage
@@ -172309,6 +174648,7 @@ self: {
        description = "A linear algebra library with bindings to BLAS and LAPACK";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test-hs-linear-algebra";
        broken = true;
      }) {};
 
@@ -172540,10 +174880,7 @@ self: {
        libraryHaskellDepends = [ base sbv ];
        description = "Use SMT solvers to solve linear systems over integers and rationals";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
      }) {};
 
   "linearmap-category" = callPackage
@@ -172640,6 +174977,7 @@ self: {
        ];
        description = "A lightweight readline-replacement library for Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "linenoise-demo";
      }) {};
 
   "lines-of-action" = callPackage
@@ -172676,6 +175014,7 @@ self: {
        description = "File extension based programming language detection";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "generate";
        broken = true;
      }) {};
 
@@ -172726,6 +175065,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Check for broken links in CI";
        license = lib.licenses.mit;
+       mainProgram = "linkcheck";
      }) {};
 
   "linkchk" = callPackage
@@ -172744,6 +175084,7 @@ self: {
        description = "linkchk is a network interface link ping monitor";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "linkchk";
      }) {};
 
   "linkcore" = callPackage
@@ -172761,6 +175102,7 @@ self: {
        description = "Combines multiple GHC Core modules into a single module";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "linkcore";
      }) {};
 
   "linked-list-with-iterator" = callPackage
@@ -172982,9 +175324,7 @@ self: {
        libraryHaskellDepends = [ base bytestring time unix ];
        description = "Bindings to Linux evdev input device interface";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "linux-file-extents" = callPackage
@@ -172998,9 +175338,7 @@ self: {
        libraryHaskellDepends = [ base unix ];
        description = "Retrieve file fragmentation information under Linux";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "linux-framebuffer" = callPackage
@@ -173023,9 +175361,7 @@ self: {
        libraryHaskellDepends = [ base bytestring hashable unix ];
        description = "Thinner binding to the Linux Kernel's inotify interface";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "linux-kmod" = callPackage
@@ -173051,9 +175387,7 @@ self: {
        libraryHaskellDepends = [ base bytestring ];
        description = "Mount and unmount filesystems";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "linux-namespaces" = callPackage
@@ -173065,9 +175399,7 @@ self: {
        libraryHaskellDepends = [ base bytestring unix ];
        description = "Work with linux namespaces: create new or enter existing ones";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "linux-perf" = callPackage
@@ -173142,6 +175474,7 @@ self: {
        description = "Implementation of the Enea LINX gateway protocol";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Ping";
        broken = true;
      }) {};
 
@@ -173186,9 +175519,7 @@ self: {
        ];
        description = "Labeled File System interface for LIO";
        license = "GPL";
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "lio-simple" = callPackage
@@ -173214,6 +175545,7 @@ self: {
        description = "LIO support for the Simple web framework";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lio-simple";
      }) {};
 
   "lion" = callPackage
@@ -173353,6 +175685,7 @@ self: {
        description = "Predicate Abstraction-based Horn-Clause/Implication Constraint Solver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fixpoint";
      }) {inherit (pkgs) git; inherit (pkgs) nettools; 
          inherit (pkgs) z3;};
 
@@ -173403,6 +175736,7 @@ self: {
        description = "A battery-included platform for LiquidHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "liquidhaskell";
      }) {};
 
   "liquid-prelude" = callPackage
@@ -173475,6 +175809,7 @@ self: {
        description = "Liquid Types for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "liquid";
      }) {inherit (pkgs) z3;};
 
   "liquidhaskell-cabal" = callPackage
@@ -173506,6 +175841,7 @@ self: {
        description = "Demo of Liquid Haskell integration for Cabal and Stack";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ffi";
      }) {};
 
   "lispparser" = callPackage
@@ -173651,6 +175987,7 @@ self: {
        description = "List all remote forwards for mail accounts stored in a SQL database";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "list-remote-forwards";
        broken = true;
      }) {};
 
@@ -173790,7 +176127,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "List monad transformer";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "list-tries" = callPackage
@@ -174009,6 +176346,7 @@ self: {
        description = "A simple tool for literate programming";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lit";
        broken = true;
      }) {};
 
@@ -174049,6 +176387,7 @@ self: {
        ];
        description = "transform literate source code to Markdown";
        license = lib.licenses.mit;
+       mainProgram = "literatex";
      }) {};
 
   "little-earley" = callPackage
@@ -174215,6 +176554,7 @@ self: {
        description = "An implementation of the LLSD data system";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "llsdutil";
        broken = true;
      }) {};
 
@@ -174606,6 +176946,7 @@ self: {
        ];
        description = "Generate Pkg-Config configuration file for LLVM";
        license = lib.licenses.bsd3;
+       mainProgram = "llvm-pkg-config";
      }) {};
 
   "llvm-pretty" = callPackage
@@ -174651,6 +176992,7 @@ self: {
        description = "LLVM bitcode parsing library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "llvm-disasm";
      }) {};
 
   "llvm-tf" = callPackage
@@ -174876,6 +177218,7 @@ self: {
        description = "A command line tool to manage LNURL auth identities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lnurl-authenticator";
      }) {};
 
   "load-balancing" = callPackage
@@ -175045,7 +177388,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Location-aware variants of partial functions";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ gridaphobe ];
+       maintainers = [ lib.maintainers.gridaphobe ];
      }) {};
 
   "located-monad-logger" = callPackage
@@ -175092,6 +177435,7 @@ self: {
        description = "Support for precise error locations in source files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "loch";
        broken = true;
      }) {};
 
@@ -175146,6 +177490,7 @@ self: {
        description = "Very simple poll lock";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "locked-poll";
      }) {};
 
   "lockfree-queue" = callPackage
@@ -175262,6 +177607,7 @@ self: {
        ];
        description = "An extensible log effect using extensible-effects";
        license = lib.licenses.mit;
+       mainProgram = "log-example";
      }) {};
 
   "log-effect-syslog" = callPackage
@@ -175393,6 +177739,7 @@ self: {
        description = "Turn log file records into JSON";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "log2json";
        broken = true;
      }) {};
 
@@ -175509,6 +177856,7 @@ self: {
        executableHaskellDepends = [ base protolude stm ];
        description = "Run FastLogger in a thread and direct all queued messages to it";
        license = lib.licenses.bsd3;
+       mainProgram = "logger-thread-exe";
      }) {};
 
   "logging" = callPackage
@@ -175570,6 +177918,7 @@ self: {
        description = "Supplemental packages for `logging-effect`";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "log-extra";
      }) {};
 
   "logging-effect-extra-file" = callPackage
@@ -175644,9 +177993,7 @@ self: {
        ];
        description = "Journald back-end for logging-facade";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -175659,7 +178006,7 @@ self: {
        libraryHaskellDepends = [ base hsyslog logging-facade ];
        description = "A logging back-end to syslog(3) for the logging-facade library";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "logic-TPTP" = callPackage
@@ -175853,6 +178200,7 @@ self: {
        description = "Useful utilities for the Lojban language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jbovlastegendb";
      }) {};
 
   "lojbanParser" = callPackage
@@ -175868,6 +178216,7 @@ self: {
        description = "lojban parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "testParser";
        broken = true;
      }) {};
 
@@ -175884,6 +178233,7 @@ self: {
        description = "lojban to xiragan";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xiragan";
        broken = true;
      }) {};
 
@@ -175899,6 +178249,7 @@ self: {
        description = "Prolog with lojban";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lojysamban";
      }) {};
 
   "lol" = callPackage
@@ -175989,6 +178340,7 @@ self: {
        description = "Calculus for LOL (λω language)";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lol-calculus";
      }) {};
 
   "lol-cpp" = callPackage
@@ -176100,8 +178452,8 @@ self: {
        pname = "long-double";
        version = "0.1.1";
        sha256 = "0byrpngsh1a8w9n5nbw9lfmj4nmh33avzfh883zw9ya10pfa7x3g";
-       revision = "1";
-       editedCabalFile = "0831x773ypp0lv14cgh6vr7rzbyvrjsvw99c40z41fr8bhdw2x4j";
+       revision = "2";
+       editedCabalFile = "0lnzxn18rwpw7idc4pkpn0y4nhlvfxjcnxylgs8il394rig6idxh";
        libraryHaskellDepends = [ base integer-gmp ];
        description = "FFI bindings for C long double";
        license = lib.licenses.bsd3;
@@ -176149,11 +178501,9 @@ self: {
        ];
        description = "Fast Brute-force search using parallelism";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "longshot";
        broken = true;
      }) {};
 
@@ -176305,6 +178655,7 @@ self: {
        description = "Find all biological feedback loops within an ecosystem graph";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "loopy";
        broken = true;
      }) {};
 
@@ -176347,6 +178698,7 @@ self: {
        description = "A command line interface to online radios";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lord";
        broken = true;
      }) {};
 
@@ -176363,6 +178715,7 @@ self: {
        description = "Library for generating filler text";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lorem";
        broken = true;
      }) {};
 
@@ -176421,6 +178774,7 @@ self: {
        description = "Minecraft 1.7 server proxy that answers to queries when the server is offline";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "loshadka";
        broken = true;
      }) {};
 
@@ -176440,6 +178794,7 @@ self: {
        description = "An implementation of an adictive two-player card game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lostcities";
      }) {};
 
   "louis" = callPackage
@@ -176615,6 +178970,7 @@ self: {
        description = "List USB devices";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ls-usb";
      }) {};
 
   "lscabal" = callPackage
@@ -176633,6 +178989,7 @@ self: {
        description = "List exported modules from a set of .cabal files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lscabal";
        broken = true;
      }) {};
 
@@ -176653,6 +179010,7 @@ self: {
        description = "List directory files starting from a specific name";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lsfrom";
        broken = true;
      }) {};
 
@@ -176774,6 +179132,7 @@ self: {
        description = "Paint an L-System Grammar";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lsystem";
      }) {};
 
   "ltext" = callPackage
@@ -176806,6 +179165,7 @@ self: {
        description = "Parameterized file evaluator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ltext";
      }) {};
 
   "lti13" = callPackage
@@ -177046,6 +179406,7 @@ self: {
        testHaskellDepends = [ base lucid text ];
        description = "Use Alpine.js in your lucid templates";
        license = lib.licenses.bsd3;
+       mainProgram = "lucid-alpine-exe";
      }) {};
 
   "lucid-aria" = callPackage
@@ -177141,6 +179502,7 @@ self: {
        description = "Use _hyperscript with lucid";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lucid-hyperscript-exe";
        broken = true;
      }) {};
 
@@ -177296,6 +179658,7 @@ self: {
        ];
        description = "Trek through your code forest and make logs";
        license = lib.licenses.isc;
+       mainProgram = "example_log";
      }) {};
 
   "luminance" = callPackage
@@ -177347,6 +179710,7 @@ self: {
        description = "Create ctags compatible tags files for Haskell programs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lushtags";
        broken = true;
      }) {};
 
@@ -177424,6 +179788,7 @@ self: {
        description = "The Lazy Virtual Machine (LVM)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "coreasm";
        broken = true;
      }) {};
 
@@ -177438,6 +179803,7 @@ self: {
        description = "The Lazy Virtual Machine (LVM) Runtime System";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lvmrun";
        broken = true;
      }) {};
 
@@ -177450,9 +179816,7 @@ self: {
        libraryHaskellDepends = [ base bindings-lxc mtl transformers ];
        description = "High level Haskell bindings to LXC (Linux containers)";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "lxd-client" = callPackage
@@ -177483,6 +179847,7 @@ self: {
        description = "LXD client written in Haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lxd-client-example";
        broken = true;
      }) {};
 
@@ -177522,6 +179887,7 @@ self: {
        description = "A Lilypond-compiling music box";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lye";
        broken = true;
      }) {};
 
@@ -177580,6 +179946,7 @@ self: {
        description = "LZ4 compression for conduits";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "LZ4";
      }) {};
 
   "lz4-frame-conduit" = callPackage
@@ -177609,6 +179976,7 @@ self: {
        description = "Conduit implementing the official LZ4 frame streaming format";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-lz4c";
        broken = true;
      }) {};
 
@@ -177693,7 +180061,7 @@ self: {
        doHaddock = false;
        description = "liblzma C library and headers for use by LZMA bindings";
        license = lib.licenses.publicDomain;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "lzma-conduit" = callPackage
@@ -177829,6 +180197,7 @@ self: {
        description = "Monadic Abstracting Abstract Machines (MAAM) built on Galois Transformers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "maam_examples";
        broken = true;
      }) {};
 
@@ -177891,6 +180260,7 @@ self: {
        description = "Macbeth - A beautiful and minimalistic FICS client";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Macbeth";
      }) {};
 
   "maccatcher" = callPackage
@@ -178168,6 +180538,7 @@ self: {
        description = "Control screen and keyboard backlights on MACs under Linux";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "maclight";
        broken = true;
      }) {};
 
@@ -178206,6 +180577,7 @@ self: {
        description = "Make a macosx app standalone deployable";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "macosx-make-standalone";
      }) {};
 
   "macrm" = callPackage
@@ -178231,6 +180603,7 @@ self: {
        description = "Alternative rm command for macOS that remove files/dirs to the system trash";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "macrm";
        broken = true;
      }) {};
 
@@ -178255,6 +180628,7 @@ self: {
        description = "Monadic DSL for building constraint solvers using basic propagators";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sudoku-exe";
        broken = true;
      }) {};
 
@@ -178287,6 +180661,7 @@ self: {
        description = "Randomized templating language DSL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "madlang";
        broken = true;
      }) {};
 
@@ -178304,6 +180679,7 @@ self: {
        description = "Rogue-like";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mage";
        broken = true;
      }) {inherit (pkgs) ncurses;};
 
@@ -178361,6 +180737,7 @@ self: {
        description = "Interact with Magic Wormhole";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hocus-pocus";
      }) {};
 
   "magicbane" = callPackage
@@ -178409,6 +180786,7 @@ self: {
        ];
        description = "Compute solutions for Magico puzzle";
        license = lib.licenses.bsd3;
+       mainProgram = "magico";
      }) {};
 
   "magma" = callPackage
@@ -178454,6 +180832,7 @@ self: {
        description = "ImageBoards to XMPP gate";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mahoro";
      }) {};
 
   "maid" = callPackage
@@ -178476,6 +180855,7 @@ self: {
        description = "A simple static web server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "maid";
      }) {};
 
   "mail-pool" = callPackage
@@ -178499,6 +180879,7 @@ self: {
        description = "Preconfigured email connection pool on top of smtp";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "exe";
      }) {};
 
   "mail-reports" = callPackage
@@ -178538,6 +180919,7 @@ self: {
        ];
        description = "Count mailboxes in a SQL database";
        license = lib.licenses.agpl3Only;
+       mainProgram = "mailbox-count";
      }) {};
 
   "mailchimp" = callPackage
@@ -178577,6 +180959,7 @@ self: {
        description = "MailChimp subscription request handler";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mailchimp-subscribe";
        broken = true;
      }) {};
 
@@ -178622,6 +181005,8 @@ self: {
        pname = "mainland-pretty";
        version = "0.7.1";
        sha256 = "19z2769rik6kwvsil2if2bfq2v59jmwv74jy3fy4q3q3zy4239p1";
+       revision = "1";
+       editedCabalFile = "1cqvwxapdvqs9xixas3jaim8ydzvgs361i73ggxjf41b4mfml8z7";
        libraryHaskellDepends = [
          base containers srcloc text transformers
        ];
@@ -178678,6 +181063,7 @@ self: {
        description = "Change duplicated files into hard-links";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "make-hard-links";
        broken = true;
      }) {};
 
@@ -178713,6 +181099,7 @@ self: {
        description = "Make a cabalized package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "make-package";
      }) {};
 
   "makedo" = callPackage
@@ -178773,6 +181160,7 @@ self: {
        description = "Database migration and testing as a library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mallard";
        broken = true;
      }) {};
 
@@ -178789,6 +181177,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Static Website Generator in Haskell";
        license = lib.licenses.mit;
+       mainProgram = "mameya";
      }) {};
 
   "managed" = callPackage
@@ -178802,15 +181191,15 @@ self: {
        libraryHaskellDepends = [ base transformers ];
        description = "A monad for managed values";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "managed-functions" = callPackage
     ({ mkDerivation, base, containers, deepseq, exceptions, hspec }:
      mkDerivation {
        pname = "managed-functions";
-       version = "1.1.0.0";
-       sha256 = "122d71xbsw7n5rjx12378q7l9rl6vmhahak06j1rg7nxviwlb640";
+       version = "1.2.2.0";
+       sha256 = "02c8cb8aza1a3w90vm8wbcb5k8i57n6bj796waj7r6489gqad15k";
        libraryHaskellDepends = [ base containers deepseq exceptions ];
        testHaskellDepends = [ base containers deepseq exceptions hspec ];
        description = "Remote Management Framework";
@@ -178867,6 +181256,7 @@ self: {
        description = "The Haskell/Gtk+ Integrated Live Environment";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee";
      }) {};
 
   "manatee-all" = callPackage
@@ -178893,6 +181283,7 @@ self: {
        description = "Virtual package to install all Manatee packages";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-all";
      }) {};
 
   "manatee-anything" = callPackage
@@ -178914,6 +181305,7 @@ self: {
        description = "Multithread interactive input/search framework for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-anything";
      }) {};
 
   "manatee-browser" = callPackage
@@ -178934,6 +181326,7 @@ self: {
        description = "Browser extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-browser";
      }) {};
 
   "manatee-core" = callPackage
@@ -178981,6 +181374,7 @@ self: {
        description = "Download Manager extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-curl";
      }) {};
 
   "manatee-editor" = callPackage
@@ -179002,6 +181396,7 @@ self: {
        description = "Editor extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-editor";
      }) {};
 
   "manatee-filemanager" = callPackage
@@ -179023,6 +181418,7 @@ self: {
        description = "File manager extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-filemanager";
      }) {};
 
   "manatee-imageviewer" = callPackage
@@ -179044,6 +181440,7 @@ self: {
        description = "Image viewer extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-imageviewer";
      }) {};
 
   "manatee-ircclient" = callPackage
@@ -179112,6 +181509,7 @@ self: {
        description = "PDF viewer extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-pdfviewer";
      }) {};
 
   "manatee-processmanager" = callPackage
@@ -179132,6 +181530,7 @@ self: {
        description = "Process manager extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-processmanager";
      }) {};
 
   "manatee-reader" = callPackage
@@ -179153,6 +181552,7 @@ self: {
        description = "Feed reader extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-reader";
      }) {};
 
   "manatee-template" = callPackage
@@ -179173,6 +181573,7 @@ self: {
        description = "Template code to create Manatee application";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-template";
      }) {};
 
   "manatee-terminal" = callPackage
@@ -179193,6 +181594,7 @@ self: {
        description = "Terminal Emulator extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-terminal";
      }) {};
 
   "manatee-welcome" = callPackage
@@ -179213,6 +181615,7 @@ self: {
        description = "Welcome module to help user play Manatee quickly";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-welcome";
      }) {};
 
   "mancala" = callPackage
@@ -179226,6 +181629,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Simple mancala game";
        license = lib.licenses.lgpl3Only;
+       mainProgram = "mancala";
      }) {};
 
   "mandrill" = callPackage
@@ -179269,6 +181673,7 @@ self: {
        description = "A zooming visualisation of the Mandelbrot Set as many Julia Sets";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mandulia";
        broken = true;
      }) {};
 
@@ -179309,6 +181714,7 @@ self: {
        description = "Bindings to the MangoPay API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mangopay-passphrase";
        broken = true;
      }) {};
 
@@ -179519,6 +181925,7 @@ self: {
        description = "A functional programming language focused around maps";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mappy";
        broken = true;
      }) {};
 
@@ -179562,6 +181969,7 @@ self: {
        testHaskellDepends = [ base directory filepath process ];
        description = "Minimal tool to make your blog in Haskell";
        license = lib.licenses.mit;
+       mainProgram = "marihana";
      }) {};
 
   "marionetta" = callPackage
@@ -179580,6 +181988,7 @@ self: {
        description = "A study of marionetta movements";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "marionetta";
      }) {};
 
   "markdown" = callPackage
@@ -179660,6 +182069,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Literate Haskell support for Markdown";
        license = lib.licenses.mit;
+       mainProgram = "markdown-unlit";
      }) {};
 
   "markdown2svg" = callPackage
@@ -179679,6 +182089,7 @@ self: {
        description = "markdown to svg converter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "markdown2svg";
      }) {};
 
   "marked-pretty" = callPackage
@@ -179803,6 +182214,7 @@ self: {
        description = "A simple markup document preview (markdown, textile, reStructuredText)";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "markup-preview";
      }) {};
 
   "marmalade-upload" = callPackage
@@ -179831,6 +182243,7 @@ self: {
        description = "Upload packages to Marmalade";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "marmalade-upload";
      }) {};
 
   "marquise" = callPackage
@@ -179975,6 +182388,7 @@ self: {
        description = "Markup language preprocessor for Haskell";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "marxup";
      }) {};
 
   "masakazu-bot" = callPackage
@@ -179998,6 +182412,7 @@ self: {
        description = "@minamiyama1994_bot on haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "masakazu-bot";
      }) {};
 
   "mason" = callPackage
@@ -180166,6 +182581,7 @@ self: {
        description = "The project management tool for hackers";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "master-plan";
        broken = true;
      }) {};
 
@@ -180180,6 +182596,7 @@ self: {
        executableHaskellDepends = [ base random ];
        description = "console mastermind decypher";
        license = lib.licenses.bsd3;
+       mainProgram = "mastermind";
      }) {};
 
   "matchable" = callPackage
@@ -180461,6 +182878,7 @@ self: {
        ];
        description = "Discover your (academic) ancestors!";
        license = lib.licenses.gpl2Only;
+       mainProgram = "mathgenealogy";
      }) {};
 
   "mathista" = callPackage
@@ -180484,6 +182902,7 @@ self: {
        testHaskellDepends = [ base hspec parsec ];
        description = "A small programming language for numerical computing";
        license = lib.licenses.publicDomain;
+       mainProgram = "mathista";
      }) {};
 
   "mathlink" = callPackage
@@ -180625,7 +183044,7 @@ self: {
        ];
        description = "A matrix client library";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "matrix-lens" = callPackage
@@ -180765,6 +183184,7 @@ self: {
        description = "ncurses XMPP client";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "matsuri";
      }) {};
 
   "matterhorn" = callPackage
@@ -180805,7 +183225,8 @@ self: {
        ];
        description = "Terminal client for the Mattermost chat system";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ kiwi ];
+       mainProgram = "matterhorn";
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "mattermost-api" = callPackage
@@ -180834,7 +183255,7 @@ self: {
        ];
        description = "Client API for Mattermost chat system";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ kiwi ];
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "mattermost-api-qc" = callPackage
@@ -180850,7 +183271,7 @@ self: {
        ];
        description = "QuickCheck instances for the Mattermost client API library";
        license = lib.licenses.isc;
-       maintainers = with lib.maintainers; [ kiwi ];
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "maude" = callPackage
@@ -180914,6 +183335,7 @@ self: {
        description = "Hayes and Wilson's maxent learning algorithm for phonotactic grammars";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "phono-learner-hw";
        broken = true;
      }) {};
 
@@ -180937,6 +183359,7 @@ self: {
        description = "GUI for maxent-learner-hw";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "phono-learner-hw-gui";
      }) {};
 
   "maximal-cliques" = callPackage
@@ -180970,6 +183393,7 @@ self: {
        description = "Maximal sharing of terms in the lambda calculus with letrec";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "maxsharing";
      }) {};
 
   "maybe-justify" = callPackage
@@ -181053,6 +183477,7 @@ self: {
        ];
        description = "List contents of an mbox file containing e-mails";
        license = lib.licenses.bsd3;
+       mainProgram = "lsmbox";
      }) {};
 
   "mbtiles" = callPackage
@@ -181097,6 +183522,7 @@ self: {
        description = "download bugs mailboxes";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mbug";
        broken = true;
      }) {};
 
@@ -181113,6 +183539,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "An Aeson parsing toolkit";
        license = lib.licenses.bsd3;
+       mainProgram = "mcaeson-exe";
      }) {};
 
   "mcl" = callPackage
@@ -181201,7 +183628,7 @@ self: {
        ];
        description = "Sample from a posterior using Markov chain Monte Carlo";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "mcmc_0_6_2_5" = callPackage
@@ -181229,7 +183656,7 @@ self: {
        description = "Sample from a posterior using Markov chain Monte Carlo";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "mcmc-samplers" = callPackage
@@ -181328,6 +183755,7 @@ self: {
        description = "Markdown viewer in your terminal";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mdcat";
        broken = true;
      }) {};
 
@@ -181342,6 +183770,7 @@ self: {
        executableHaskellDepends = [ base process ];
        description = "Command-line tool to run a command on each of the items";
        license = lib.licenses.bsd3;
+       mainProgram = "mdo";
      }) {};
 
   "mdp" = callPackage
@@ -181453,6 +183882,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "A constructive solid geometry (CSG) modeling language";
        license = lib.licenses.bsd3;
+       mainProgram = "mecha-examples";
      }) {};
 
   "mechs" = callPackage
@@ -181610,6 +184040,7 @@ self: {
        description = "Receive and Send RTP Packets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mediabus-demo-rtp-alaw-player";
      }) {};
 
   "median-stream" = callPackage
@@ -181669,6 +184100,7 @@ self: {
        ];
        description = "Convert MediaWiki text to LaTeX";
        license = "GPL";
+       mainProgram = "mediawiki2latex";
      }) {};
 
   "medium-sdk-haskell" = callPackage
@@ -181727,6 +184159,7 @@ self: {
        ];
        description = "Handles uploading to Hackage from mega repos";
        license = lib.licenses.mit;
+       mainProgram = "mega-sdist";
      }) {};
 
   "megalisp" = callPackage
@@ -181926,6 +184359,7 @@ self: {
        description = "A functional scripting language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imelody";
        broken = true;
      }) {};
 
@@ -182092,6 +184526,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "memfd" = callPackage
+    ({ mkDerivation, base, transformers }:
+     mkDerivation {
+       pname = "memfd";
+       version = "1.0.1.0";
+       sha256 = "154861xg18h02s26gf3fk8zqhr2d8x21p0s4ar56rfrbi7b2nqrk";
+       libraryHaskellDepends = [ base transformers ];
+       description = "Open temporary anonymous Linux file handles";
+       license = lib.licenses.asl20;
+     }) {};
+
   "meminfo" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, containers }:
      mkDerivation {
@@ -182131,6 +184576,7 @@ self: {
        description = "Memis Efficient Manual Image Sorting";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "memis";
      }) {};
 
   "memo-ptr" = callPackage
@@ -182215,6 +184661,7 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion random ];
        description = "Generate human memorable strings from binary data";
        license = lib.licenses.bsd2;
+       mainProgram = "membits";
      }) {};
 
   "memory" = callPackage
@@ -182317,6 +184764,7 @@ self: {
        executableHaskellDepends = [ base haskeline transformers ];
        description = "Command line utility for memorizing scriptures or any other text";
        license = "GPL";
+       mainProgram = "memscript";
      }) {};
 
   "menoh" = callPackage
@@ -182423,6 +184871,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "command line utility to merge bash_history";
        license = lib.licenses.bsd3;
+       mainProgram = "merge-bash-history";
      }) {};
 
   "mergeful" = callPackage
@@ -182776,6 +185225,7 @@ self: {
        description = "Australian METAR";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "metar";
      }) {};
 
   "metar-http" = callPackage
@@ -182801,6 +185251,7 @@ self: {
        description = "HTTP for METAR";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "metar-http";
      }) {};
 
   "method" = callPackage
@@ -183081,6 +185532,7 @@ self: {
        description = "spam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test1";
        broken = true;
      }) {};
 
@@ -183111,6 +185563,7 @@ self: {
        description = "A Micro service gateway";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "simple-gateway";
      }) {};
 
   "micro-recursion-schemes" = callPackage
@@ -183141,6 +185594,8 @@ self: {
        pname = "microaeson";
        version = "0.1.0.1";
        sha256 = "0rx5gm7apazc0sm65v687ab5106ximka9khizxq1lbckd2x0cq3q";
+       revision = "1";
+       editedCabalFile = "0sfz5xc6lvarbb8hfrccwd9b4snafsxjn8iy8ny7mdc1472irfl8";
        libraryHaskellDepends = [
          array base bytestring containers deepseq fail text
        ];
@@ -183191,6 +185646,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "microc compiler";
        license = lib.licenses.bsd3;
+       mainProgram = "microc-exe";
      }) {};
 
   "microformats2-parser" = callPackage
@@ -183412,14 +185868,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "microlens-platform_0_4_3_1" = callPackage
+  "microlens-platform_0_4_3_2" = callPackage
     ({ mkDerivation, base, hashable, microlens, microlens-ghc
      , microlens-mtl, microlens-th, text, unordered-containers, vector
      }:
      mkDerivation {
        pname = "microlens-platform";
-       version = "0.4.3.1";
-       sha256 = "0kix9j6k1yp09102fsliqaynamgwbi31l4hwswcp90flw2v9ah35";
+       version = "0.4.3.2";
+       sha256 = "12nkwlpj0lr50lw0gr1mf306a94w0x6zkbl97ss4m2cd28im21sj";
        libraryHaskellDepends = [
          base hashable microlens microlens-ghc microlens-mtl microlens-th
          text unordered-containers vector
@@ -183520,6 +185976,8 @@ self: {
        pname = "microstache";
        version = "1.0.2.1";
        sha256 = "12i2sx2rv2ai77m95gvfm93jcjk6q5i4cgfyxjrhyx3ll94z775v";
+       revision = "1";
+       editedCabalFile = "1qxhznrd20d9c2ji4vvddkpc9zbxamlabf3p4yyzm75ivh374lmf";
        libraryHaskellDepends = [
          aeson base containers deepseq directory filepath parsec text
          transformers unordered-containers vector
@@ -183572,6 +186030,7 @@ self: {
        description = "Language for algorithmic generation of MIDI files";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mida";
        broken = true;
      }) {};
 
@@ -183619,9 +186078,7 @@ self: {
        ];
        description = "Convert between datatypes of the midi and the alsa packages";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "midi-music-box" = callPackage
@@ -183643,6 +186100,7 @@ self: {
        ];
        description = "Convert MIDI file to music box punch tape";
        license = lib.licenses.bsd3;
+       mainProgram = "midi-music-box";
      }) {};
 
   "midi-simple" = callPackage
@@ -183718,6 +186176,7 @@ self: {
        description = "A Memory-like (Concentration, Pairs, ...) game for tones";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "midimory";
      }) {};
 
   "midisurface" = callPackage
@@ -183736,6 +186195,7 @@ self: {
        description = "A control midi surface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "midisurface";
        broken = true;
      }) {};
 
@@ -183928,6 +186388,7 @@ self: {
        description = "Lambda calculus interpreter";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mikrokosmos";
        broken = true;
      }) {};
 
@@ -184048,6 +186509,7 @@ self: {
        ];
        description = "Send mime-mail messages via Amazon SES";
        license = lib.licenses.mit;
+       mainProgram = "send-aws";
      }) {};
 
   "mime-string" = callPackage
@@ -184136,6 +186598,7 @@ self: {
        executableHaskellDepends = [ base directory mtl random ];
        description = "Minesweeper simulation using neural networks";
        license = "unknown";
+       mainProgram = "mines";
      }) {};
 
   "minesweeper" = callPackage
@@ -184156,6 +186619,7 @@ self: {
        description = "Minesweeper game which is always solvable without guessing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "minesweeper";
      }) {};
 
   "mini-egison" = callPackage
@@ -184178,6 +186642,7 @@ self: {
        description = "Template Haskell Implementation of Egison Pattern Matching";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cdcl";
      }) {};
 
   "miniball" = callPackage
@@ -184211,6 +186676,7 @@ self: {
        description = "Miniature FORTH-like interpreter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "miniforth";
        broken = true;
      }) {};
 
@@ -184283,6 +186749,7 @@ self: {
        description = "A binding library of minilight for Lua langauge";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "minimal-configuration" = callPackage
@@ -184324,6 +186791,7 @@ self: {
        description = "Shows how to run grabber on Mac OS X";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "minimung";
      }) {};
 
   "minio-hs" = callPackage
@@ -184379,6 +186847,7 @@ self: {
        description = "A fast parallel ssh tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "minions";
        broken = true;
      }) {};
 
@@ -184435,6 +186904,7 @@ self: {
        description = "Minimalistic file rotation utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "minirotate";
      }) {};
 
   "minisat" = callPackage
@@ -184477,6 +186947,7 @@ self: {
        description = "an interpreter for an operational semantics for the STG machine";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ministg";
        broken = true;
      }) {};
 
@@ -184595,6 +187066,7 @@ self: {
        description = "A Minisat-based CDCL SAT solver in Haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mios162";
        broken = true;
      }) {};
 
@@ -184615,6 +187087,7 @@ self: {
        description = "Tweet mirror";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mirror-tweet";
      }) {};
 
   "misfortune" = callPackage
@@ -184810,6 +187283,7 @@ self: {
        ];
        description = "Convert HTML to miso View syntax";
        license = lib.licenses.bsd3;
+       mainProgram = "miso-from-html";
      }) {};
 
   "miss" = callPackage
@@ -184915,6 +187389,7 @@ self: {
        description = "A git wrapper with a streamlined UX";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mit";
        broken = true;
      }) {};
 
@@ -184942,6 +187417,7 @@ self: {
        ];
        description = "Vim plugin manager written in Haskell";
        license = lib.licenses.mit;
+       mainProgram = "miv";
      }) {};
 
   "mix-arrows" = callPackage
@@ -184972,6 +187448,7 @@ self: {
        description = "Find optimal mixed strategies for two-player games";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "oms";
      }) {};
 
   "mixed-types-num" = callPackage
@@ -185031,6 +187508,7 @@ self: {
        description = "Makes an OS X .app bundle from a binary.";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mkbndl";
      }) {};
 
   "mkcabal" = callPackage
@@ -185050,6 +187528,7 @@ self: {
        description = "Generate cabal files for a Haskell project";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mkcabal";
        broken = true;
      }) {};
 
@@ -185066,6 +187545,7 @@ self: {
        description = "Minimal ML language to to demonstrate the W type infererence algorithm";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ML";
        broken = true;
      }) {};
 
@@ -185179,6 +187659,7 @@ self: {
        description = "Command line interface to the MMark markdown processor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmark";
      }) {};
 
   "mmark-ext" = callPackage
@@ -185215,7 +187696,7 @@ self: {
        description = "Monad morphisms";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "mmorph" = callPackage
@@ -185231,7 +187712,7 @@ self: {
        ];
        description = "Monad morphisms";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "mmorph_1_2_0" = callPackage
@@ -185248,7 +187729,7 @@ self: {
        description = "Monad morphisms";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "mmsyn2" = callPackage
@@ -185323,6 +187804,7 @@ self: {
        description = "The \"glue\" between electronic tables and GraphViz";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmsyn4";
      }) {};
 
   "mmsyn5" = callPackage
@@ -185358,6 +187840,7 @@ self: {
        description = "A musical instrument synthesizer or a tool for Ukrainian language listening";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmsyn6ukr";
      }) {};
 
   "mmsyn6ukr-array" = callPackage
@@ -185382,6 +187865,7 @@ self: {
        description = "A musical instrument synthesizer or a tool for Ukrainian language listening";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmsyn6ukra";
      }) {};
 
   "mmsyn7h" = callPackage
@@ -185405,6 +187889,7 @@ self: {
        description = "Produces a sound recording specified by the Ukrainian text";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmsyn7h";
      }) {};
 
   "mmsyn7l" = callPackage
@@ -185426,6 +187911,7 @@ self: {
        description = "Modifies the amplitudes of the Ukrainian sounds representations created by mmsyn7ukr package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmsyn7l";
      }) {};
 
   "mmsyn7s" = callPackage
@@ -185441,6 +187927,7 @@ self: {
        description = "Shows a sorted list of the Ukrainian sounds representations that can be used by mmsyn7 series of programs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmsyn7s";
      }) {};
 
   "mmsyn7ukr" = callPackage
@@ -185463,6 +187950,7 @@ self: {
        description = "A simple basic interface to some SoX functionality or to produce a voice that can be used by mmsyn7h";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmsyn7ukr";
      }) {};
 
   "mmsyn7ukr-common" = callPackage
@@ -185593,6 +188081,7 @@ self: {
        description = "A HTTP server for testing HTTP clients";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mock-httpd";
        broken = true;
      }) {};
 
@@ -185779,6 +188268,7 @@ self: {
        description = "Modify fasta (and CLIP) files in several optional ways";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "modify-fasta";
      }) {};
 
   "modsplit" = callPackage
@@ -185800,6 +188290,7 @@ self: {
        description = "Haskell source splitter driven by special comments";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "modsplit";
      }) {};
 
   "modular" = callPackage
@@ -185901,6 +188392,7 @@ self: {
        description = "Clean up module imports, split and merge modules";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hmm";
        broken = true;
      }) {};
 
@@ -185940,6 +188432,7 @@ self: {
        description = "Modular C code generator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "modulo";
      }) {};
 
   "moe" = callPackage
@@ -185980,6 +188473,7 @@ self: {
        description = "A functional firewall killer";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "moesocks";
        broken = true;
      }) {};
 
@@ -186005,6 +188499,7 @@ self: {
        description = "Modular Haskell Web Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hws";
        broken = true;
      }) {};
 
@@ -186037,6 +188532,7 @@ self: {
        description = "A glorified string replacement tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mole";
      }) {};
 
   "mollie-api-haskell" = callPackage
@@ -186150,6 +188646,7 @@ self: {
        description = "A library for probabilistic programming";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -186616,8 +189113,8 @@ self: {
      }:
      mkDerivation {
        pname = "monad-logger-aeson";
-       version = "0.2.0.0";
-       sha256 = "09f4f3x5sba9i72y89sfiq0281b1vhy2lm75wk9031ayn9hhg4fb";
+       version = "0.2.0.2";
+       sha256 = "1kk8wfcj0jrjb563n59x9naz4h6f75j1gax4zki7vm8xs5289ry0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -186631,6 +189128,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "JSON logging using monad-logger interface";
        license = lib.licenses.mit;
+       mainProgram = "readme-example";
      }) {};
 
   "monad-logger-extras" = callPackage
@@ -186649,6 +189147,7 @@ self: {
        executableHaskellDepends = [ base monad-logger ];
        description = "Utilities for composing loggers, coloring output, plus a few orphan instances";
        license = lib.licenses.bsd3;
+       mainProgram = "readme";
      }) {};
 
   "monad-logger-json" = callPackage
@@ -187620,6 +190119,7 @@ self: {
        description = "A preprocessor for generating monadic call traces";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "MonadLoc";
        broken = true;
      }) {};
 
@@ -187861,6 +190361,7 @@ self: {
        description = "Do things when files change";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "monitor";
        broken = true;
      }) {};
 
@@ -187887,6 +190388,7 @@ self: {
        description = "A system state collecting library and application";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "monky";
      }) {};
 
   "mono-foldable" = callPackage
@@ -188351,8 +190853,8 @@ self: {
        pname = "months";
        version = "0.2";
        sha256 = "054dag7806850hdii7s5rxg8gx2spdp33pnx4s4ckni9ayvspija";
-       revision = "4";
-       editedCabalFile = "1prni51r2kca7cff4jshas87bxvfmqkp9r5yhkmapphxc9w8vanb";
+       revision = "5";
+       editedCabalFile = "1fqxdjclv2jsj802sr4v35cn12qchcxdmhpfm003v2j1s6gp689s";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat deepseq hashable intervals
          QuickCheck text time-compat
@@ -188520,6 +191022,7 @@ self: {
        description = "A tool for supervised learning of morphology";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "morfette";
        broken = true;
      }) {};
 
@@ -188579,6 +191082,7 @@ self: {
        description = "Developer tools for the Michelson Language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "morley";
      }) {};
 
   "morley-client" = callPackage
@@ -188623,6 +191127,7 @@ self: {
        description = "Client to interact with the Tezos blockchain";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "morley-client";
      }) {};
 
   "morley-prelude" = callPackage
@@ -188672,6 +191177,7 @@ self: {
        description = "Upgradeability infrastructure based on Morley";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "morley-ustore-reader";
      }) {};
 
   "morloc" = callPackage
@@ -188711,6 +191217,7 @@ self: {
        description = "A multi-lingual, typed, workflow language";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "morloc";
        broken = true;
      }) {};
 
@@ -188731,6 +191238,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "A simple database migrator for PostgreSQL";
        license = lib.licenses.bsd3;
+       mainProgram = "morph";
      }) {};
 
   "morpheus-graphql" = callPackage
@@ -188810,6 +191318,7 @@ self: {
        description = "Morpheus GraphQL CLI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "morpheus";
      }) {};
 
   "morpheus-graphql-client" = callPackage
@@ -188861,6 +191370,7 @@ self: {
        description = "Morpheus GraphQL CLI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "morpheus";
      }) {};
 
   "morpheus-graphql-core" = callPackage
@@ -189029,7 +191539,8 @@ self: {
        description = "A bare-bones calculus of constructions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "morte";
+       maintainers = [ lib.maintainers.Gabriel439 ];
        broken = true;
      }) {};
 
@@ -189063,6 +191574,7 @@ self: {
        description = "Library for setting up and running scrapers with webdriver";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mortred";
      }) {};
 
   "mosaico-lib" = callPackage
@@ -189173,6 +191685,7 @@ self: {
        description = "Type-safe effectful state machines in Haskell";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-door";
        broken = true;
      }) {};
 
@@ -189260,6 +191773,7 @@ self: {
        description = "Plays videos using GStreamer and GTK+";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "movie-monad";
        broken = true;
      }) {};
 
@@ -189298,6 +191812,7 @@ self: {
        description = "Music player for linux";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mp";
      }) {};
 
   "mp3decoder" = callPackage
@@ -189314,6 +191829,7 @@ self: {
        description = "MP3 decoder for teaching";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mp3driver";
      }) {};
 
   "mpdmate" = callPackage
@@ -189330,6 +191846,7 @@ self: {
        description = "MPD/PowerMate executable";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mpdmate";
      }) {};
 
   "mpeff" = callPackage
@@ -189374,7 +191891,7 @@ self: {
        testSystemDepends = [ mpich ];
        description = "MPI bindings for Haskell";
        license = lib.licenses.asl20;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       badPlatforms = [ "aarch64-linux" ] ++ lib.platforms.darwin;
      }) {inherit (pkgs) mpich;};
 
   "mpi-hs-binary" = callPackage
@@ -189392,7 +191909,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "MPI bindings for Haskell";
        license = lib.licenses.asl20;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       badPlatforms = [ "aarch64-linux" ] ++ lib.platforms.darwin;
      }) {};
 
   "mpi-hs-cereal" = callPackage
@@ -189410,7 +191927,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "MPI bindings for Haskell";
        license = lib.licenses.asl20;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       badPlatforms = [ "aarch64-linux" ] ++ lib.platforms.darwin;
      }) {};
 
   "mpi-hs-store" = callPackage
@@ -189428,7 +191945,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "MPI bindings for Haskell";
        license = lib.licenses.asl20;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       badPlatforms = [ "aarch64-linux" ] ++ lib.platforms.darwin;
      }) {};
 
   "mplayer-spot" = callPackage
@@ -189449,10 +191966,8 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Save your spot when watching movies with @mplayer@";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
+       mainProgram = "mplayer-spot";
      }) {};
 
   "mpppc" = callPackage
@@ -189535,6 +192050,7 @@ self: {
        description = "Simple equational reasoning for a Haskell-ish language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mp";
      }) {};
 
   "mps" = callPackage
@@ -189607,10 +192123,9 @@ self: {
        testHaskellDepends = [ base HUnit ip mptcp text ];
        description = "A Multipath TCP path manager";
        license = lib.licenses.gpl3Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mptcp-pm";
      }) {};
 
   "mptcpanalyzer" = callPackage
@@ -189657,6 +192172,7 @@ self: {
        description = "A Multipath TCP analyzer";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mptcpanalyzer";
      }) {};
 
   "mpvguihs" = callPackage
@@ -189676,6 +192192,7 @@ self: {
        description = "A minimalist mpv GUI written in I/O heavy Haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mpvguihs";
        broken = true;
      }) {};
 
@@ -189753,6 +192270,7 @@ self: {
        description = "Decompiles Glulx files";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mrifk";
        broken = true;
      }) {};
 
@@ -189925,6 +192443,7 @@ self: {
        description = "An IDL Compiler for MessagePack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mpidl";
      }) {};
 
   "msgpack-persist" = callPackage
@@ -189952,6 +192471,7 @@ self: {
        description = "A Haskell implementation of MessagePack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "msgpack-parser";
        broken = true;
      }) {};
 
@@ -190070,6 +192590,7 @@ self: {
        description = "A command line tool to change backlit colors of your MSI keyboards";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "msi-kb-backlit";
        broken = true;
      }) {};
 
@@ -190122,6 +192643,7 @@ self: {
        testHaskellDepends = [ base bytestring errors hspec ];
        description = "Monitor Setup Utility";
        license = lib.licenses.mit;
+       mainProgram = "msu";
      }) {};
 
   "mtgoxapi" = callPackage
@@ -190359,6 +192881,7 @@ self: {
        description = "Avro serialization support for Mu microservices";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test-avro";
      }) {};
 
   "mu-graphql" = callPackage
@@ -190389,6 +192912,7 @@ self: {
        description = "GraphQL support for Mu";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "library-graphql";
      }) {};
 
   "mu-grpc-client" = callPackage
@@ -190458,6 +192982,7 @@ self: {
        description = "gRPC servers for Mu definitions";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "grpc-example-server";
      }) {};
 
   "mu-kafka" = callPackage
@@ -190568,6 +193093,7 @@ self: {
        description = "Protocol Buffers serialization and gRPC schema import for Mu microservices";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test-protobuf";
      }) {};
 
   "mu-rpc" = callPackage
@@ -190629,6 +193155,7 @@ self: {
        description = "Servant servers for Mu definitions";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "servant-example-server";
      }) {};
 
   "mu-tracing" = callPackage
@@ -190679,6 +193206,7 @@ self: {
        description = "Multi-version deployer for web applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mud";
        broken = true;
      }) {};
 
@@ -190701,6 +193229,7 @@ self: {
        description = "Continuous deployment server for use with GitHub";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mudbath";
        broken = true;
      }) {};
 
@@ -190774,6 +193303,7 @@ self: {
        description = "An intermediate language designed to perform advanced code analysis";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mulang";
        broken = true;
      }) {};
 
@@ -190810,6 +193340,7 @@ self: {
        description = "A tool supporting multi cabal project builds";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "multi-cabal";
      }) {};
 
   "multi-containers" = callPackage
@@ -190942,6 +193473,7 @@ self: {
        ];
        description = "create many files from one";
        license = lib.licenses.bsd3;
+       mainProgram = "multifile";
      }) {};
 
   "multifocal" = callPackage
@@ -190968,6 +193500,7 @@ self: {
        description = "Bidirectional Two-level Transformation of XML Schemas";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "multifocal";
      }) {};
 
   "multihash" = callPackage
@@ -190992,6 +193525,7 @@ self: {
        description = "Multihash library and CLI executable";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "multihash";
        broken = true;
      }) {};
 
@@ -191202,6 +193736,7 @@ self: {
        description = "Wrapper program for duplicity, adding config files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "multiplicity";
      }) {};
 
   "multipool" = callPackage
@@ -191432,6 +193967,7 @@ self: {
        description = "Multivariant assignments generation language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -191474,6 +194010,7 @@ self: {
        description = "Static blog generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "muon";
        broken = true;
      }) {};
 
@@ -191518,6 +194055,7 @@ self: {
        description = "Simple CUI Twitter Client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mur";
      }) {};
 
   "murmur-hash" = callPackage
@@ -191586,6 +194124,7 @@ self: {
        description = "Minimalist MPD client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mushu";
      }) {};
 
   "music-articulation" = callPackage
@@ -191815,6 +194354,7 @@ self: {
        description = "Utility for developing the Music Suite";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "music-util";
        broken = true;
      }) {};
 
@@ -191841,6 +194381,7 @@ self: {
        description = "Supply your tunes info without leaving your music player";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "music-scroll";
        broken = true;
      }) {inherit (pkgs) gtk3;};
 
@@ -191958,6 +194499,7 @@ self: {
        ];
        description = "A mustache template parser library";
        license = lib.licenses.bsd3;
+       mainProgram = "haskell-mustache";
      }) {};
 
   "mustache-haskell" = callPackage
@@ -191983,6 +194525,7 @@ self: {
        description = "Straight implementation of mustache templates";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mus";
        broken = true;
      }) {};
 
@@ -192003,6 +194546,7 @@ self: {
        description = "Utility to generate Haskell code from Mustache templates";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mustache2hs";
        broken = true;
      }) {};
 
@@ -192099,6 +194643,7 @@ self: {
        description = "Watches your screensaver and (un)mutes music when you (un)lock the screen";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mute-unmute";
      }) {};
 
   "mvar-lock" = callPackage
@@ -192127,7 +194672,7 @@ self: {
        description = "Model-view-controller";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
        broken = true;
      }) {};
 
@@ -192141,7 +194686,7 @@ self: {
        description = "Concurrent and combinable updates";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "mvclient" = callPackage
@@ -192342,6 +194887,7 @@ self: {
        description = "Train a neural network with MXNet in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lenet";
      }) {};
 
   "mxnet-nnvm" = callPackage
@@ -192458,6 +195004,7 @@ self: {
        description = "Export from MyAnimeList";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "myanimelist-export";
        broken = true;
      }) {};
 
@@ -192496,6 +195043,7 @@ self: {
        description = "Haskell binding to the Myo armband";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "myo-ws-example";
        broken = true;
      }) {};
 
@@ -192699,6 +195247,7 @@ self: {
        description = "Bindings for Mystem morphological analyzer executabe";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mystem-test-exe";
        broken = true;
      }) {};
 
@@ -192725,6 +195274,7 @@ self: {
        description = "Web application to view and kill MySQL queries";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mywatch";
        broken = true;
      }) {};
 
@@ -192794,6 +195344,7 @@ self: {
        executableHaskellDepends = [ base HSH mtl process ];
        description = "Utility to call iwconfig";
        license = "unknown";
+       mainProgram = "n-m";
      }) {};
 
   "n-tuple" = callPackage
@@ -192900,6 +195451,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "EDSL to specify Nagios configuration files";
        license = lib.licenses.gpl3Only;
+       mainProgram = "nagios-config-example";
      }) {};
 
   "nagios-perfdata" = callPackage
@@ -192942,6 +195494,7 @@ self: {
        description = "Monitor ekg metrics via Nagios";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "check_ekg";
        broken = true;
      }) {};
 
@@ -192988,8 +195541,8 @@ self: {
     ({ mkDerivation, aeson, attoparsec, base, lens, text, wreq }:
      mkDerivation {
        pname = "namecoin-update";
-       version = "0.2.2.0";
-       sha256 = "09g3mjvmfgynlna17nvynh1gwzkski0kg07d82zvdmd7j8qvdrvg";
+       version = "0.2.3.0";
+       sha256 = "0xs6w37cg9hh2l56ahnnfw2f7zb34256nn6qgcyaskhi41ybjn4r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ aeson attoparsec base lens text wreq ];
@@ -192997,6 +195550,7 @@ self: {
        description = "Tool to keep namecoin names updated and well";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "namecoin-update";
        broken = true;
      }) {};
 
@@ -193240,6 +195794,7 @@ self: {
        description = "A toy dependently-typed language";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nanoAgda";
        broken = true;
      }) {};
 
@@ -193329,6 +195884,7 @@ self: {
        description = "An EDSL for creating compilers using small passes and many intermediate representations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dumb-nanopass-example";
        broken = true;
      }) {};
 
@@ -193404,6 +195960,7 @@ self: {
        description = "Performs 漢字検定 (Japan Kanji Aptitude Test) level analysis on given Kanji";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nanq";
        broken = true;
      }) {};
 
@@ -193532,6 +196089,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Native library manager for Windows";
        license = lib.licenses.bsd3;
+       mainProgram = "native";
      }) {};
 
   "nats" = callPackage
@@ -193572,6 +196130,7 @@ self: {
        description = "Another Haskell client for NATS (https://nats.io)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nats-client";
        broken = true;
      }) {};
 
@@ -193773,6 +196332,7 @@ self: {
        ];
        description = "CPU load and memory usage indicators for i3bar";
        license = lib.licenses.asl20;
+       mainProgram = "nc-indicators";
      }) {};
 
   "ncurses" = callPackage
@@ -193820,6 +196380,7 @@ self: {
        description = "A Fast Retargetable Template Engine";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "neat";
        broken = true;
      }) {};
 
@@ -193915,6 +196476,7 @@ self: {
        description = "General tools for Neil";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "neil";
        broken = true;
      }) {};
 
@@ -193986,6 +196548,7 @@ self: {
        description = "a TCP tunnel with packet length obfuscation";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "neko-obfs";
      }) {};
 
   "nemesis" = callPackage
@@ -194053,6 +196616,7 @@ self: {
        description = "Neptune Client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-app";
        broken = true;
      }) {};
 
@@ -194081,6 +196645,7 @@ self: {
        description = "Nerf, a named entity recognition tool based on linear-chain CRFs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nerf";
      }) {};
 
   "nero" = callPackage
@@ -194315,6 +196880,7 @@ self: {
        description = "Make RPC calls via an MQTT broker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mqtt-rpc";
      }) {};
 
   "net-spider" = callPackage
@@ -194435,6 +197001,7 @@ self: {
        description = "CLI executable of NetSpider.RPL.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "net-spider-rpl-cli";
      }) {};
 
   "netclock" = callPackage
@@ -194526,6 +197093,7 @@ self: {
        description = "NetEase Cloud Music FM client in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "netease-fm";
        broken = true;
      }) {};
 
@@ -194587,6 +197155,7 @@ self: {
        description = "Enumerator tools for text-based network protocols";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "netlines-test";
      }) {};
 
   "netlink" = callPackage
@@ -194605,9 +197174,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Netlink communication for Haskell";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "netlist" = callPackage
@@ -194988,6 +197555,7 @@ self: {
        description = "Haskell API for Tor anonymous networking";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tor-relay";
      }) {};
 
   "network-api-support" = callPackage
@@ -195114,6 +197682,7 @@ self: {
        description = "Linux NetworkNameSpace Builder";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "network-builder";
        broken = true;
      }) {};
 
@@ -195259,6 +197828,7 @@ self: {
        description = "Domain Name System data structures";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-network-dns-examples-resolver";
        broken = true;
      }) {};
 
@@ -195380,6 +197950,7 @@ self: {
        doHaddock = false;
        description = "network-manager tui";
        license = lib.licenses.bsd3;
+       mainProgram = "nmt";
      }) {};
 
   "network-messagepack-rpc" = callPackage
@@ -195615,6 +198186,7 @@ self: {
        description = "A light abstraction over sockets & co. for servers";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -196237,7 +198809,8 @@ self: {
        doHaddock = false;
        description = "Future-proof system for plain-text notes";
        license = lib.licenses.agpl3Only;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "neuron";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "newbase60" = callPackage
@@ -196299,6 +198872,7 @@ self: {
        description = "List ports newer than N days on a FreeBSD system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "newports";
        broken = true;
      }) {};
 
@@ -196329,6 +198903,7 @@ self: {
        description = "A basic newsletter implimentation, using various backends";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "newsletter-server";
        broken = true;
      }) {};
 
@@ -196364,6 +198939,7 @@ self: {
        description = "Exact and approximate synthesis of quantum circuits";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gridsynth";
      }) {};
 
   "newt" = callPackage
@@ -196385,6 +198961,7 @@ self: {
        description = "A trivially simple app to create things from simple templates";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "newt";
        broken = true;
      }) {};
 
@@ -196552,6 +199129,7 @@ self: {
        ];
        description = "Ngram models for compressing and classifying text";
        license = lib.licenses.bsd3;
+       mainProgram = "ngramClassifier";
      }) {};
 
   "ngrams-loader" = callPackage
@@ -196571,6 +199149,7 @@ self: {
        description = "Ngrams loader based on http://www.ngrams.info format";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ngrams-loader";
      }) {};
 
   "ngx-export" = callPackage
@@ -196715,6 +199294,7 @@ self: {
        executableHaskellDepends = [ base nicify-lib ];
        description = "Pretty print the standard output of default `Show` instances";
        license = lib.licenses.mit;
+       mainProgram = "nicify";
      }) {};
 
   "nicify-lib" = callPackage
@@ -196749,6 +199329,7 @@ self: {
        description = "Nico Nico Douga (ニコニコ動画) Comment Translator";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nicovideo-translator";
      }) {};
 
   "nikepub" = callPackage
@@ -196770,6 +199351,7 @@ self: {
        description = "Command line utility publishes Nike+ runs on blogs and Twitter";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nikepub";
      }) {};
 
   "nimber" = callPackage
@@ -196820,6 +199402,7 @@ self: {
        description = "IDL compiler and RPC/distributed object framework for microservices";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nirum";
      }) {};
 
   "nist-beacon" = callPackage
@@ -196882,6 +199465,7 @@ self: {
        ];
        description = "Easy dependency management for Nix projects";
        license = lib.licenses.mit;
+       mainProgram = "niv";
      }) {};
 
   "nix-delegate" = callPackage
@@ -196902,6 +199486,7 @@ self: {
        description = "Convenient utility for distributed Nix builds";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nix-delegate";
        broken = true;
      }) {};
 
@@ -196922,6 +199507,7 @@ self: {
        description = "Deploy Nix-built software to a NixOS machine";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nix-deploy";
        broken = true;
      }) {};
 
@@ -196947,7 +199533,8 @@ self: {
        benchmarkHaskellDepends = [ attoparsec base criterion text ];
        description = "Parse and render *.drv files";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 sorki ];
+       mainProgram = "pretty-derivation";
+       maintainers = [ lib.maintainers.Gabriel439 lib.maintainers.sorki ];
      }) {};
 
   "nix-diff" = callPackage
@@ -196968,7 +199555,11 @@ self: {
        ];
        description = "Explain why two Nix derivations differ";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 sorki terlar ];
+       mainProgram = "nix-diff";
+       maintainers = [
+         lib.maintainers.Gabriel439 lib.maintainers.sorki
+         lib.maintainers.terlar
+       ];
      }) {};
 
   "nix-eval" = callPackage
@@ -197015,6 +199606,7 @@ self: {
        description = "Convert a tree of files into fixed-output derivations";
        license = lib.licenses.agpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nix-freeze-tree";
        broken = true;
      }) {};
 
@@ -197041,6 +199633,7 @@ self: {
        description = "Reify the Nix build graph into a Haskell graph data structure";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nix-graph";
        broken = true;
      }) {};
 
@@ -197061,7 +199654,8 @@ self: {
        ];
        description = "Parse and render .narinfo files";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sorki ];
+       mainProgram = "pretty-narinfo";
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "nix-paths" = callPackage
@@ -197074,7 +199668,7 @@ self: {
        libraryToolDepends = [ nix ];
        description = "Knowledge of Nix's installation directories";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {inherit (pkgs) nix;};
 
   "nix-thunk" = callPackage
@@ -197103,6 +199697,7 @@ self: {
        description = "Lightweight dependency management with Nix";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nix-thunk";
      }) {};
 
   "nix-tools" = callPackage
@@ -197162,7 +199757,8 @@ self: {
        ];
        description = "Interactively browse a Nix store paths dependencies";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ utdemir ];
+       mainProgram = "nix-tree";
+       maintainers = [ lib.maintainers.utdemir ];
      }) {};
 
   "nixdu" = callPackage
@@ -197183,6 +199779,7 @@ self: {
        ];
        description = "Interactively browse a Nix store paths dependencies";
        license = lib.licenses.bsd3;
+       mainProgram = "nixdu";
      }) {};
 
   "nixfmt" = callPackage
@@ -197203,6 +199800,7 @@ self: {
        ];
        description = "An opinionated formatter for Nix";
        license = lib.licenses.mpl20;
+       mainProgram = "nixfmt";
      }) {};
 
   "nixfromnpm" = callPackage
@@ -197230,6 +199828,7 @@ self: {
        description = "Generate nix expressions from npm packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nixfromnpm";
        broken = true;
      }) {};
 
@@ -197296,6 +199895,7 @@ self: {
        description = "Tool for semi-automatic updating of nixpkgs repository";
        license = lib.licenses.cc0;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nixpkgs-update";
        broken = true;
      }) {};
 
@@ -197375,6 +199975,7 @@ self: {
        description = "Network Manager, binding to libnm-glib";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nm-demo";
        broken = true;
      }) {g = null; inherit (pkgs) glib; libnm-glib = null; 
          nm-glib = null;};
@@ -197496,6 +200097,7 @@ self: {
        description = "Math in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "noether";
        broken = true;
      }) {};
 
@@ -197511,6 +200113,7 @@ self: {
        description = "Parse and compare nofib runs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nofib-analyse";
        broken = true;
      }) {};
 
@@ -197526,6 +200129,7 @@ self: {
        description = "Parse and compare nofib runs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nofib-analyze";
        broken = true;
      }) {};
 
@@ -197551,6 +200155,7 @@ self: {
        description = "A friendly language for graphic design";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "noise";
        broken = true;
      }) {};
 
@@ -197716,6 +200321,7 @@ self: {
        description = "A Nomic game in haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nomyx-server";
      }) {};
 
   "nomyx-web" = callPackage
@@ -198086,6 +200692,7 @@ self: {
        ];
        description = "Normalize data using a variety of methods";
        license = lib.licenses.gpl3Only;
+       mainProgram = "normalize";
      }) {};
 
   "normalize-imports" = callPackage
@@ -198100,6 +200707,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Sort and align Haskell import statements";
        license = lib.licenses.bsd3;
+       mainProgram = "normalize-imports";
      }) {};
 
   "not-gloss" = callPackage
@@ -198219,9 +200827,8 @@ self: {
          transformers tuple
        ];
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "notifications-tray-icon";
      }) {};
 
   "notmuch" = callPackage
@@ -198260,6 +200867,7 @@ self: {
        description = "Binding for notmuch MUA library";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "notmuch-test";
      }) {inherit (pkgs) notmuch;};
 
   "notmuch-web" = callPackage
@@ -198298,6 +200906,7 @@ self: {
        description = "A web interface to the notmuch email indexer";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "notmuch-web";
      }) {};
 
   "notzero" = callPackage
@@ -198354,6 +200963,7 @@ self: {
        description = "Zeit Now haskell-side integration and introspection tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "module-scanner";
      }) {};
 
   "nowdoc" = callPackage
@@ -198659,6 +201269,7 @@ self: {
        ];
        description = "Computing the nth prime";
        license = lib.licenses.mit;
+       mainProgram = "nth-prime";
      }) {};
 
   "ntha" = callPackage
@@ -198680,6 +201291,7 @@ self: {
        testHaskellDepends = [ base containers hspec pretty ];
        description = "A tiny statically typed functional programming language";
        license = lib.licenses.bsd3;
+       mainProgram = "ntha";
      }) {};
 
   "nthable" = callPackage
@@ -198735,6 +201347,7 @@ self: {
        description = "NTRIP client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ntrip-client";
        broken = true;
      }) {};
 
@@ -199037,6 +201650,7 @@ self: {
        description = "Ode solvers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Kepler";
        broken = true;
      }) {};
 
@@ -199383,6 +201997,7 @@ self: {
        ];
        executableHaskellDepends = [ base optparse-applicative text ];
        license = lib.licenses.bsd3;
+       mainProgram = "nuxeo";
      }) {};
 
   "nvfetcher" = callPackage
@@ -199421,7 +202036,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Generate nix sources expr for the latest version of packages";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ berberman ];
+       mainProgram = "nvfetcher";
+       maintainers = [ lib.maintainers.berberman ];
      }) {};
 
   "nvim-hs" = callPackage
@@ -199437,47 +202053,6 @@ self: {
      }:
      mkDerivation {
        pname = "nvim-hs";
-       version = "2.2.0.1";
-       sha256 = "1jj9n792cgv964rpgbbhc491wvyfyiplsg30n20x62gxclmjvir7";
-       revision = "1";
-       editedCabalFile = "0v9z8ia4ryh1rn8gc6kc1kx47k8qmlgl83sla2y4p4qdz3ysw2jh";
-       libraryHaskellDepends = [
-         base bytestring cereal cereal-conduit conduit containers
-         data-default deepseq foreign-store hslogger megaparsec messagepack
-         mtl network optparse-applicative path path-io prettyprinter
-         prettyprinter-ansi-terminal resourcet stm streaming-commons
-         template-haskell template-haskell-compat-v0208 text time
-         time-locale-compat transformers transformers-base typed-process
-         unliftio unliftio-core utf8-string vector void
-       ];
-       testHaskellDepends = [
-         base bytestring cereal cereal-conduit conduit containers
-         data-default foreign-store hslogger hspec hspec-discover HUnit
-         megaparsec messagepack mtl network optparse-applicative path
-         path-io prettyprinter prettyprinter-ansi-terminal QuickCheck
-         resourcet stm streaming-commons template-haskell
-         template-haskell-compat-v0208 text time time-locale-compat
-         transformers transformers-base typed-process unliftio unliftio-core
-         utf8-string vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Haskell plugin backend for neovim";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "nvim-hs_2_2_0_2" = callPackage
-    ({ mkDerivation, base, bytestring, cereal, cereal-conduit, conduit
-     , containers, data-default, deepseq, foreign-store, hslogger, hspec
-     , hspec-discover, HUnit, megaparsec, messagepack, mtl, network
-     , optparse-applicative, path, path-io, prettyprinter
-     , prettyprinter-ansi-terminal, QuickCheck, resourcet, stm
-     , streaming-commons, template-haskell
-     , template-haskell-compat-v0208, text, time, time-locale-compat
-     , transformers, transformers-base, typed-process, unliftio
-     , unliftio-core, utf8-string, vector, void
-     }:
-     mkDerivation {
-       pname = "nvim-hs";
        version = "2.2.0.2";
        sha256 = "1l9acplyircn5bv0d5naynl0m6cz76gwfgn0rjlggy75324cddwl";
        libraryHaskellDepends = [
@@ -199502,7 +202077,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell plugin backend for neovim";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "nvim-hs-contrib" = callPackage
@@ -199549,6 +202123,7 @@ self: {
        description = "Neovim plugin that runs ghcid to update the quickfix list";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nvim-hs-ghcid";
      }) {};
 
   "nvvm" = callPackage
@@ -199583,6 +202158,7 @@ self: {
        description = "Bored? Nyan cat!";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nyan";
      }) {};
 
   "nyan-interpolation" = callPackage
@@ -199680,6 +202256,7 @@ self: {
        description = "An interactive GUI for manipulating L-systems";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nymphaea";
      }) {};
 
   "nyx-game" = callPackage
@@ -199707,6 +202284,7 @@ self: {
        description = "A bullet-hell game made with SDL2";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "app";
        broken = true;
      }) {};
 
@@ -199730,6 +202308,7 @@ self: {
        testToolDepends = [ doctest markdown-unlit ];
        description = "Type-safe time library";
        license = lib.licenses.mpl20;
+       mainProgram = "play-o-clock";
      }) {};
 
   "oanda-rest-api" = callPackage
@@ -200136,6 +202715,7 @@ self: {
        description = "Parse Rocket League replays";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "octane";
      }) {};
 
   "octohat" = callPackage
@@ -200167,6 +202747,7 @@ self: {
        description = "A tested, minimal wrapper around GitHub's API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "abc";
      }) {};
 
   "octopus" = callPackage
@@ -200188,6 +202769,7 @@ self: {
        description = "Lisp with more dynamism, more power, more simplicity";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "octi";
      }) {};
 
   "oculus" = callPackage
@@ -200204,9 +202786,7 @@ self: {
        librarySystemDepends = [ libGL libX11 libXinerama ovr systemd ];
        description = "Oculus Rift ffi providing head tracking data";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) libGL; inherit (pkgs.xorg) libX11; 
          inherit (pkgs.xorg) libXinerama; ovr = null; 
@@ -200239,6 +202819,7 @@ self: {
        benchmarkHaskellDepends = [ async base text weigh ];
        description = "Haskell binding to the ODBC API, aimed at SQL Server driver";
        license = lib.licenses.bsd3;
+       mainProgram = "odbc";
      }) {inherit (pkgs) unixODBC;};
 
   "odd-jobs" = callPackage
@@ -200436,6 +203017,7 @@ self: {
        description = "Interface to the Ohloh API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cmdoh";
      }) {};
 
   "oi" = callPackage
@@ -200463,8 +203045,8 @@ self: {
      }:
      mkDerivation {
        pname = "oidc-client";
-       version = "0.6.0.0";
-       sha256 = "0r359hwx4zh5mjh2p4abfkgnkkhzbhdn6fn5dlja8pvyvi18a3kk";
+       version = "0.6.1.0";
+       sha256 = "0hhjndh4q2a9694rhylrqk2a8bzy8x9i5k4is2w7709sifydip1y";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -200582,6 +203164,7 @@ self: {
        description = "An OpenLayers JavaScript Wrapper and Webframework with snaplet-fay";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "olwrapper";
      }) {};
 
   "om-actor" = callPackage
@@ -200683,6 +203266,7 @@ self: {
        description = "A simple tool to generate OMakefile for latex files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "omaketex";
        broken = true;
      }) {};
 
@@ -200724,6 +203308,7 @@ self: {
        description = "A purely functional programming language and a proof system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "omega";
        broken = true;
      }) {};
 
@@ -200770,6 +203355,7 @@ self: {
        description = "A pretty-printer wrapper to faciliate ease of formatting during development";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "omnifmt";
        broken = true;
      }) {};
 
@@ -200812,6 +203398,7 @@ self: {
        description = "Program that sends traffic through SSH tunnels on-demand";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "on-demand-ssh-tunnel";
        broken = true;
      }) {};
 
@@ -201001,6 +203588,7 @@ self: {
        executableHaskellDepends = [ base parsec regex-compat ];
        description = "A grep-like tool for filtering on words or lines";
        license = "GPL";
+       mainProgram = "only";
      }) {};
 
   "onpartitions" = callPackage
@@ -201219,6 +203807,7 @@ self: {
        description = "Open algebraic data type examples";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "open-adt-tutorial";
      }) {};
 
   "open-browser" = callPackage
@@ -201233,6 +203822,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Open a web browser from Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "open-haddock" = callPackage
@@ -201247,6 +203837,7 @@ self: {
        description = "Open haddock HTML documentation";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "open-haddock";
        broken = true;
      }) {};
 
@@ -201329,6 +203920,7 @@ self: {
        executableHaskellDepends = [ base type-fun ];
        description = "Extensible, type-safe unions";
        license = lib.licenses.mit;
+       mainProgram = "example";
      }) {};
 
   "open-witness" = callPackage
@@ -201490,6 +204082,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "OpenAPI 3.0 data model";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "openapi3-code-generator" = callPackage
@@ -201530,6 +204123,7 @@ self: {
        description = "OpenAPI3 Haskell Client Code Generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "openapi3-code-generator-exe";
        broken = true;
      }) {};
 
@@ -201725,6 +204319,7 @@ self: {
        ];
        description = "Library and example for using DLP stereo in OpenGL";
        license = lib.licenses.mit;
+       mainProgram = "opengl-dlp-test";
      }) {};
 
   "opengl-spacenavigator" = callPackage
@@ -201741,6 +204336,7 @@ self: {
        ];
        description = "Library and example for using a SpaceNavigator-compatible 3-D mouse with OpenGL";
        license = lib.licenses.mit;
+       mainProgram = "opengl-spacenavigator";
      }) {};
 
   "opengles" = callPackage
@@ -201967,6 +204563,7 @@ self: {
        description = "Fetch OpenSSH keys from a GitHub team";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "openssh-github-keys";
      }) {};
 
   "openssh-protocol" = callPackage
@@ -202160,6 +204757,7 @@ self: {
          splitmix text typed-process unordered-containers
        ];
        license = lib.licenses.asl20;
+       mainProgram = "eventlog-to-lightstep";
      }) {};
 
   "opentelemetry-lightstep_0_8_0" = callPackage
@@ -202187,6 +204785,7 @@ self: {
        ];
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "eventlog-to-lightstep";
      }) {};
 
   "opentelemetry-wai" = callPackage
@@ -202283,6 +204882,7 @@ self: {
        description = "Unicode characters";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "opentheory-char-test";
        broken = true;
      }) {};
 
@@ -202603,6 +205203,7 @@ self: {
        description = "Access data at OpenWeatherMap";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "openweathermap";
        broken = true;
      }) {};
 
@@ -202636,6 +205237,7 @@ self: {
        executableHaskellDepends = [ base mtl random ];
        description = "Implementation of difficult monads made easy with operational semantics";
        license = lib.licenses.bsd3;
+       mainProgram = "operational-TicTacToe";
      }) {};
 
   "operational-alacarte" = callPackage
@@ -202697,6 +205299,7 @@ self: {
        ];
        description = "Compiler for OpLang, an esoteric programming language";
        license = lib.licenses.gpl3Only;
+       mainProgram = "oplang";
      }) {};
 
   "opml" = callPackage
@@ -202755,6 +205358,7 @@ self: {
        description = "Open files or URLs using associated programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "opn";
        broken = true;
      }) {};
 
@@ -202784,7 +205388,7 @@ self: {
        ];
        description = "Optics as an abstract interface";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "optics-core" = callPackage
@@ -202917,6 +205521,7 @@ self: {
        description = "Optimal Block boundary determination for rsync-like behaviours";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chunk";
      }) {};
 
   "optimization" = callPackage
@@ -202953,6 +205558,7 @@ self: {
        description = "A supercompiler for f-lite";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "optimusprime";
      }) {};
 
   "option" = callPackage
@@ -202993,7 +205599,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Optional function arguments";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "options" = callPackage
@@ -203141,7 +205747,7 @@ self: {
        ];
        description = "Auto-generate a command-line parser for your datatype";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "optparse-helper" = callPackage
@@ -203250,7 +205856,7 @@ self: {
        description = "Types and functions for Kepler orbits";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       maintainers = [ lib.maintainers.expipiplus1 ];
        broken = true;
      }) {};
 
@@ -203270,6 +205876,7 @@ self: {
        description = "Orchestration-style co-ordination EDSL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "orc";
        broken = true;
      }) {};
 
@@ -203337,6 +205944,7 @@ self: {
        description = "Haskell Wiki Demo";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "orchid-demo";
      }) {};
 
   "ord-adhoc" = callPackage
@@ -203562,6 +206170,7 @@ self: {
        executableHaskellDepends = [ base parsec regex-compat ];
        description = "Basic org to anki exporter";
        license = lib.licenses.gpl3Only;
+       mainProgram = "org2anki";
      }) {};
 
   "organize-imports" = callPackage
@@ -203576,6 +206185,7 @@ self: {
        description = "Organize scala imports";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "organize-imports";
        broken = true;
      }) {};
 
@@ -203719,6 +206329,7 @@ self: {
        description = "Token-based authentication and authorization";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "orizentic";
        broken = true;
      }) {};
 
@@ -203748,6 +206359,7 @@ self: {
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ormolu";
      }) {};
 
   "ormolu" = callPackage
@@ -203778,6 +206390,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
+       mainProgram = "ormolu";
      }) {};
 
   "ormolu_0_5_0_0" = callPackage
@@ -203811,6 +206424,7 @@ self: {
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ormolu";
      }) {};
 
   "orthotope" = callPackage
@@ -203881,20 +206495,14 @@ self: {
      }:
      mkDerivation {
        pname = "ory-kratos";
-       version = "0.0.6.0";
-       sha256 = "02hk0agzjj1y928wb2i0cl2lq0bwrn9iqny4m67csgnxjpain1il";
+       version = "0.0.10.0";
+       sha256 = "19wyr8a7biysa2y201220ma7xscf7dvlwrl12qis4xg0hnxl3897";
        libraryHaskellDepends = [
          aeson base containers exceptions http-api-data http-client
          http-client-tls http-types mtl network-uri servant servant-client
          servant-client-core servant-server swagger2 text time transformers
          uuid wai warp
        ];
-       testHaskellDepends = [
-         aeson base containers exceptions http-api-data http-client
-         http-client-tls http-types mtl network-uri servant servant-client
-         servant-client-core servant-server swagger2 text time transformers
-         uuid wai warp
-       ];
        description = "API bindings for Ory Kratos";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
@@ -203968,6 +206576,7 @@ self: {
        executableHaskellDepends = [ base process ];
        description = "Show keys pressed with an on-screen display (Linux only)";
        license = lib.licenses.bsd3;
+       mainProgram = "osdkeys";
      }) {};
 
   "oset" = callPackage
@@ -203985,6 +206594,7 @@ self: {
        description = "An insertion-order-preserving set";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "oset-app";
        broken = true;
      }) {};
 
@@ -204111,6 +206721,7 @@ self: {
        description = "OTP Authenticator (a la google) command line client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "otp-auth";
      }) {};
 
   "ottparse-pretty" = callPackage
@@ -204129,6 +206740,7 @@ self: {
        description = "Pretty-printer for Ott parse trees";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ottparse-pretty";
        broken = true;
      }) {};
 
@@ -204154,6 +206766,7 @@ self: {
        ];
        description = "External sorting package based on Conduit";
        license = lib.licenses.mit;
+       mainProgram = "SortLines";
      }) {};
 
   "overhang" = callPackage
@@ -204358,6 +206971,7 @@ self: {
        description = "Haskell Package Versioning Tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "package-vt";
        broken = true;
      }) {};
 
@@ -204397,6 +207011,7 @@ self: {
        description = "Check your cabal packages for lagging dependencies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "packdeps";
        broken = true;
      }) {};
 
@@ -204577,6 +207192,7 @@ self: {
        description = "Tool for detecting redundant Cabal package dependencies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "packunused";
        broken = true;
      }) {};
 
@@ -204592,6 +207208,7 @@ self: {
        description = "Read whole Pacman database which pushes it into the memory cache";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pacman-memcache";
        broken = true;
      }) {};
 
@@ -204716,6 +207333,7 @@ self: {
        description = "Pagarme API wrapper";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "testbin";
        broken = true;
      }) {};
 
@@ -204738,6 +207356,7 @@ self: {
        executableHaskellDepends = [ base bytestring conduit-extra text ];
        description = "Open up a pager, like 'less' or 'more'";
        license = lib.licenses.bsd2;
+       mainProgram = "hs-pager-test-pager";
      }) {};
 
   "pagerduty" = callPackage
@@ -204824,6 +207443,7 @@ self: {
        ];
        description = "Pagure client";
        license = lib.licenses.gpl2Only;
+       mainProgram = "pagure";
      }) {};
 
   "pagure-hook-receiver" = callPackage
@@ -204910,6 +207530,7 @@ self: {
        executableHaskellDepends = [ array base bytestring containers ];
        description = "Finding palindromes in strings";
        license = lib.licenses.bsd3;
+       mainProgram = "palindromes";
      }) {};
 
   "pam" = callPackage
@@ -204925,9 +207546,7 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Haskell binding for C PAM API";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) pam;};
 
   "pan-os-syslog" = callPackage
@@ -205025,7 +207644,8 @@ self: {
        '';
        description = "Conversion between markup formats";
        license = lib.licenses.gpl2Plus;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "pandoc";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "pandoc_2_18" = callPackage
@@ -205085,7 +207705,8 @@ self: {
        description = "Conversion between markup formats";
        license = lib.licenses.gpl2Plus;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "pandoc";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "pandoc-citeproc" = callPackage
@@ -205122,6 +207743,7 @@ self: {
        description = "Supports using pandoc with citeproc";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-citeproc";
        broken = true;
      }) {};
 
@@ -205140,6 +207762,7 @@ self: {
        ];
        description = "Insert a preamble before pandoc-citeproc's bibliography";
        license = lib.licenses.gpl3Only;
+       mainProgram = "pandoc-citeproc-preamble";
      }) {};
 
   "pandoc-crossref" = callPackage
@@ -205174,6 +207797,7 @@ self: {
        doHaddock = false;
        description = "Pandoc filter for cross-references";
        license = lib.licenses.gpl2Only;
+       mainProgram = "pandoc-crossref";
      }) {};
 
   "pandoc-csv2table" = callPackage
@@ -205189,6 +207813,7 @@ self: {
        executableHaskellDepends = [ base csv pandoc pandoc-types ];
        description = "Convert CSV to Pandoc Table Markdown";
        license = lib.licenses.mit;
+       mainProgram = "pandoc-csv2table";
      }) {};
 
   "pandoc-dhall-decoder" = callPackage
@@ -205226,6 +207851,7 @@ self: {
        description = "A Pandoc filter for emphasizing code in fenced blocks";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-emphasize-code";
        broken = true;
      }) {};
 
@@ -205247,6 +207873,7 @@ self: {
        description = "A Pandoc filter to use graphviz";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-filter-graphviz";
        broken = true;
      }) {};
 
@@ -205279,6 +207906,7 @@ self: {
        description = "Pandoc filter formatting Haskell code fragments using GHC lexer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-filter-indent";
        broken = true;
      }) {};
 
@@ -205318,6 +207946,7 @@ self: {
        description = "Include other Markdown files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-include";
        broken = true;
      }) {};
 
@@ -205343,6 +207972,7 @@ self: {
        ];
        description = "A Pandoc filter for including code from source files";
        license = lib.licenses.mpl20;
+       mainProgram = "pandoc-include-code";
      }) {};
 
   "pandoc-japanese-filters" = callPackage
@@ -205400,8 +208030,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-lua-marshal";
-       version = "0.1.6";
-       sha256 = "1z7hwvqaspapv97l36gq975cmhn11q0z2h1axz33bml7zf2z4bwc";
+       version = "0.1.6.1";
+       sha256 = "0di12wk3hfz85gyqypaxk3lsl0w3lylmza0lip0d7a257vis2lpz";
        libraryHaskellDepends = [
          base bytestring containers exceptions hslua hslua-marshalling lua
          pandoc-types safe text
@@ -205439,6 +208069,7 @@ self: {
        description = "Pandoc-filter to evaluate `code` section in markdown and auto-embed output";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-markdown-ghci-filter-exe";
        broken = true;
      }) {};
 
@@ -205462,6 +208093,7 @@ self: {
        description = "Pandoc filter to include CSV files";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-placetable";
        broken = true;
      }) {};
 
@@ -205487,6 +208119,7 @@ self: {
        description = "Render and insert PlantUML diagrams with Pandoc";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-plantuml-diagrams";
        broken = true;
      }) {};
 
@@ -205522,6 +208155,7 @@ self: {
        ];
        description = "A Pandoc filter to include figures generated from code blocks using your plotting toolkit of choice";
        license = lib.licenses.gpl2Plus;
+       mainProgram = "pandoc-plot";
      }) {};
 
   "pandoc-plot_1_5_3" = callPackage
@@ -205557,6 +208191,7 @@ self: {
        description = "A Pandoc filter to include figures generated from code blocks using your plotting toolkit of choice";
        license = lib.licenses.gpl2Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-plot";
      }) {};
 
   "pandoc-pyplot" = callPackage
@@ -205588,6 +208223,7 @@ self: {
        description = "A Pandoc filter to include figures generated from Python code blocks";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-pyplot";
        broken = true;
      }) {};
 
@@ -205603,6 +208239,7 @@ self: {
        executableHaskellDepends = [ base mtl pandoc-types text ];
        description = "Convert Pandoc Markdown-style footnotes into sidenotes";
        license = lib.licenses.mit;
+       mainProgram = "pandoc-sidenote";
      }) {};
 
   "pandoc-stylefrommeta" = callPackage
@@ -205620,6 +208257,7 @@ self: {
        ];
        description = "Pandoc filter to customize links, images and paragraphs";
        license = lib.licenses.bsd3;
+       mainProgram = "styleFromMeta";
      }) {};
 
   "pandoc-throw" = callPackage
@@ -205668,6 +208306,7 @@ self: {
        description = "Literate Haskell support for GitHub's Markdown flavor";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-unlit";
        broken = true;
      }) {};
 
@@ -205706,6 +208345,7 @@ self: {
        ];
        description = "Pandoc filter for native Vim code highlighting";
        license = lib.licenses.bsd3;
+       mainProgram = "vimhl";
      }) {};
 
   "pandora" = callPackage
@@ -205750,6 +208390,7 @@ self: {
        description = "A super-pang clone";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pang-a-lambda";
        broken = true;
      }) {};
 
@@ -205811,6 +208452,7 @@ self: {
        description = "Pandoc filter to unwrap nested blocks";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "panhandle";
        broken = true;
      }) {lazysmallcheck2012 = null;};
 
@@ -205845,6 +208487,7 @@ self: {
        description = "Pandoc filter to execute code blocks";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "panpipe";
        broken = true;
      }) {};
 
@@ -205875,6 +208518,7 @@ self: {
        description = "Pansite: a simple web site management tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pansite";
        broken = true;
      }) {};
 
@@ -206397,6 +209041,7 @@ self: {
        description = "A passphrase generator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "paphragen";
        broken = true;
      }) {};
 
@@ -206419,6 +209064,7 @@ self: {
        description = "packrat parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "papillon";
        broken = true;
      }) {};
 
@@ -206434,6 +209080,7 @@ self: {
        description = "Packrat parsing; linear-time parsers for grammars in TDPL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pappy";
        broken = true;
      }) {};
 
@@ -206526,6 +209173,7 @@ self: {
        description = "Paragon";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parac";
        broken = true;
      }) {};
 
@@ -206680,6 +209328,7 @@ self: {
        description = "http proxy server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "paranoia";
        broken = true;
      }) {};
 
@@ -206851,6 +209500,7 @@ self: {
        description = "Help Manage project specific documentation";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parochial";
        broken = true;
      }) {};
 
@@ -206863,9 +209513,7 @@ self: {
        libraryHaskellDepends = [ array base ];
        description = "Simply interfacing the parallel port on linux";
        license = "GPL";
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "parquet-hs" = callPackage
@@ -206971,6 +209619,7 @@ self: {
        description = "Parse command-line arguments";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parseargs-example";
        broken = true;
      }) {};
 
@@ -207095,6 +209744,7 @@ self: {
        description = "Pratt Parser combinator for Parsec";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parsec-pratt-example";
        broken = true;
      }) {};
 
@@ -207274,6 +209924,7 @@ self: {
        description = "Prints Haskell parse trees in JSON";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parser-helper";
        broken = true;
      }) {};
 
@@ -207703,6 +210354,7 @@ self: {
        description = "Inspect, create, and alter MBRs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "partly";
        broken = true;
      }) {};
 
@@ -207752,6 +210404,7 @@ self: {
        description = "a simple password manager";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "passman";
        broken = true;
      }) {};
 
@@ -207774,6 +210427,7 @@ self: {
        description = "Deterministic password generator command line interface";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "passman-cli";
      }) {};
 
   "passman-core" = callPackage
@@ -207827,10 +210481,8 @@ self: {
        ];
        description = "Hashing and checking of passwords";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "i686-linux" "x86_64-darwin" "x86_64-linux"
-       ];
-       maintainers = with lib.maintainers; [ cdepillabout ];
+       badPlatforms = [ "aarch64-linux" "armv7l-linux" ];
+       maintainers = [ lib.maintainers.cdepillabout ];
      }) {};
 
   "password-instances" = callPackage
@@ -207854,10 +210506,8 @@ self: {
        ];
        description = "typeclass instances for password package";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "i686-linux" "x86_64-darwin" "x86_64-linux"
-       ];
-       maintainers = with lib.maintainers; [ cdepillabout ];
+       badPlatforms = [ "aarch64-linux" "armv7l-linux" ];
+       maintainers = [ lib.maintainers.cdepillabout ];
      }) {};
 
   "password-types" = callPackage
@@ -207937,6 +210587,7 @@ self: {
        description = "A simple command line pasting utility";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pasty";
        broken = true;
      }) {};
 
@@ -207968,23 +210619,25 @@ self: {
        description = "Terminal-based presentations using Pandoc";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "patat";
        broken = true;
      }) {};
 
   "patch" = callPackage
     ({ mkDerivation, base, constraints-extras, containers
      , dependent-map, dependent-sum, directory, filemanip, filepath
-     , hedgehog, hlint, HUnit, lens, monoidal-containers, semialign
-     , semigroupoids, these, transformers, witherable
+     , hedgehog, hlint, HUnit, indexed-traversable, lens
+     , monoidal-containers, semialign, semigroupoids, these
+     , transformers, witherable
      }:
      mkDerivation {
        pname = "patch";
-       version = "0.0.5.2";
-       sha256 = "1l1rd5xybp0a9lvk89i64a4vr82vsha8fkcpwd6hwv2klsxbrwf6";
+       version = "0.0.6.0";
+       sha256 = "0wgxmk9vfrgnq5vg93jwzkszxmyrk91b36fnnlm8qr6mlg7j8m0z";
        libraryHaskellDepends = [
-         base constraints-extras containers dependent-map dependent-sum lens
-         monoidal-containers semialign semigroupoids these transformers
-         witherable
+         base constraints-extras containers dependent-map dependent-sum
+         indexed-traversable lens monoidal-containers semialign
+         semigroupoids these transformers witherable
        ];
        testHaskellDepends = [
          base containers directory filemanip filepath hedgehog hlint HUnit
@@ -208031,6 +210684,7 @@ self: {
        description = "Compose a big image from overlapping parts";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "patch-image-llvm";
      }) {};
 
   "patches-vector" = callPackage
@@ -208202,7 +210856,7 @@ self: {
        testHaskellDepends = [ base hspec HUnit QuickCheck text ];
        description = "Components of paths";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ psibi ];
+       maintainers = [ lib.maintainers.psibi ];
      }) {};
 
   "path-text-utf8" = callPackage
@@ -208300,7 +210954,7 @@ self: {
        ];
        description = "Library for representing and manipulating type-safe file paths";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "pathtype" = callPackage
@@ -208352,8 +211006,8 @@ self: {
      }:
      mkDerivation {
        pname = "patrol";
-       version = "0.0.2";
-       sha256 = "183cyyj4d6y5k3rnmrycn6xvkqdkylgi8mrc3n67sv0pww1hl3z2";
+       version = "0.0.4";
+       sha256 = "1n9ixzmsn35zjk9liwfc0mv3kz3mhczxlj01bc5zjb7cmd66cs3f";
        libraryHaskellDepends = [
          aeson base bytestring case-insensitive containers http-client
          http-types network-uri text time uuid
@@ -208376,6 +211030,7 @@ self: {
        description = "A webpage scraper for Patreon which dumps a list of patrons to a text file";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "patronscraper";
        broken = true;
      }) {};
 
@@ -208456,7 +211111,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion mwc-random vector ];
        description = "Greatest convex majorants and least concave minorants";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "paymill" = callPackage
@@ -208494,6 +211149,7 @@ self: {
        description = "Client for a limited part of PayPal's Adaptive Payments API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -208547,6 +211203,7 @@ self: {
        description = "pastebin command line application";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pb";
        broken = true;
      }) {};
 
@@ -208568,6 +211225,7 @@ self: {
        description = "Utility CLI for working with protobuf files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pbhelp";
        broken = true;
      }) {};
 
@@ -208669,6 +211327,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pcapng-exe";
      }) {};
 
   "pcd-loader" = callPackage
@@ -208694,6 +211353,7 @@ self: {
        description = "PCD file loader";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pcd2bin";
        broken = true;
      }) {};
 
@@ -208940,6 +211600,7 @@ self: {
        description = "Tool to generate PDF from haskintex templates and YAML input";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pdf-slave";
      }) {};
 
   "pdf-slave-server" = callPackage
@@ -208974,6 +211635,7 @@ self: {
        description = "Web service for pdf-slave tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pdf-slave-server";
        broken = true;
      }) {pdf-slave-server-api = null;};
 
@@ -209080,6 +211742,7 @@ self: {
        description = "Simple pdf viewer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pdf-toolbox-viewer";
        broken = true;
      }) {};
 
@@ -209131,6 +211794,7 @@ self: {
        description = "Name a PDF file using information from the pdfinfo command";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pdfname";
        broken = true;
      }) {};
 
@@ -209148,6 +211812,7 @@ self: {
        description = "split two-column PDFs, so there is one column per page";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pdfsplit";
        broken = true;
      }) {};
 
@@ -209171,6 +211836,7 @@ self: {
        description = "Extracts text from PDF using poppler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pdftotext.hs";
        broken = true;
      }) {poppler-cpp = null;};
 
@@ -209324,6 +211990,7 @@ self: {
        description = "a lazy non-deterministic concatenative programming language";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "peg";
        broken = true;
      }) {};
 
@@ -209545,6 +212212,7 @@ self: {
        description = "Create beautiful diagrams just by typing mathematical notation in plain text";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "penrose";
        broken = true;
      }) {};
 
@@ -209633,6 +212301,7 @@ self: {
        benchmarkToolDepends = [ cpphs ];
        description = "Find duplicate images";
        license = lib.licenses.bsd3;
+       mainProgram = "phash";
      }) {};
 
   "perdure" = callPackage
@@ -209662,6 +212331,7 @@ self: {
        description = "Robust persistence for acyclic immutable data";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "perdure";
      }) {};
 
   "peregrin" = callPackage
@@ -209683,6 +212353,25 @@ self: {
        broken = true;
      }) {};
 
+  "peregrin_0_3_3" = callPackage
+    ({ mkDerivation, base, bytestring, hspec, pg-harness-client
+     , postgresql-simple, resource-pool, text, transformers
+     }:
+     mkDerivation {
+       pname = "peregrin";
+       version = "0.3.3";
+       sha256 = "1m7s8ws47g9icf9rfi8sk51bjwpbz5av17lbsnfg2cz3gji0977w";
+       libraryHaskellDepends = [ base bytestring postgresql-simple text ];
+       testHaskellDepends = [
+         base hspec pg-harness-client postgresql-simple resource-pool text
+         transformers
+       ];
+       description = "Database migration support for use in other libraries";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "perf" = callPackage
     ({ mkDerivation, base, containers, foldl, mtl, rdtsc, text, time
      , transformers
@@ -209721,6 +212410,7 @@ self: {
        description = "Low-level run time measurement";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "perf-explore";
      }) {};
 
   "perf-analysis" = callPackage
@@ -209744,6 +212434,7 @@ self: {
        description = "analysis example using perf";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "perf-examples";
      }) {};
 
   "perfect-hash-generator" = callPackage
@@ -209800,6 +212491,7 @@ self: {
        description = "Library for performing vector shuffles";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -209865,6 +212557,7 @@ self: {
        testHaskellDepends = [ base hspec HUnit text time ];
        description = "Parse and format date periods, collapse and expand their text representations";
        license = lib.licenses.bsd3;
+       mainProgram = "period";
      }) {};
 
   "periodic" = callPackage
@@ -209881,6 +212574,7 @@ self: {
        description = "A reliable at-least-once periodic job scheduler backed by redis";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -209986,6 +212680,7 @@ self: {
        description = "Periodic task system haskell server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "periodicd";
      }) {};
 
   "perm" = callPackage
@@ -210092,9 +212787,7 @@ self: {
        ];
        description = "Serialization library with state and leb128 encoding";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "i686-linux" "x86_64-darwin" "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" "armv7l-linux" ];
      }) {};
 
   "persist2er" = callPackage
@@ -210111,6 +212804,7 @@ self: {
        description = "Transforms persist's quasi-quoted syntax into ER format";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "persist2er";
        broken = true;
      }) {};
 
@@ -210191,10 +212885,10 @@ self: {
        ];
        description = "Type-safe, multi-backend data serialization";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ psibi ];
+       maintainers = [ lib.maintainers.psibi ];
      }) {};
 
-  "persistent_2_14_0_1" = callPackage
+  "persistent_2_14_0_2" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
      , blaze-html, bytestring, conduit, containers, criterion, deepseq
      , fast-logger, file-embed, hspec, http-api-data, lift-type
@@ -210205,8 +212899,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent";
-       version = "2.14.0.1";
-       sha256 = "1yv6z6jmn6q0ikrrcmh2k9gs4i5473ssf4flx3acsv5zl9czia5f";
+       version = "2.14.0.2";
+       sha256 = "05sa38bmzkd12lrv6lzyj0mgd65sj81prpkyy9z0qsjywxksw8d5";
        libraryHaskellDepends = [
          aeson attoparsec base base64-bytestring blaze-html bytestring
          conduit containers fast-logger http-api-data lift-type monad-logger
@@ -210228,7 +212922,7 @@ self: {
        description = "Type-safe, multi-backend data serialization";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ psibi ];
+       maintainers = [ lib.maintainers.psibi ];
      }) {};
 
   "persistent-audit" = callPackage
@@ -210259,6 +212953,7 @@ self: {
        description = "Parses a Persist Model file and produces Audit Models";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "persistent-audit";
      }) {};
 
   "persistent-cereal" = callPackage
@@ -210321,6 +213016,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Persistent module discover utilities";
        license = lib.licenses.bsd3;
+       mainProgram = "persistent-discover";
      }) {};
 
   "persistent-documentation" = callPackage
@@ -210576,6 +213272,7 @@ self: {
        description = "A pure haskell backend for the persistent library using MySQL database server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "persistent-mysql-haskell-example";
      }) {};
 
   "persistent-odbc" = callPackage
@@ -210865,7 +213562,7 @@ self: {
        ];
        description = "Backend for the persistent library using sqlite3";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ psibi ];
+       maintainers = [ lib.maintainers.psibi ];
      }) {inherit (pkgs) sqlite;};
 
   "persistent-template" = callPackage
@@ -210878,7 +213575,7 @@ self: {
        doHaddock = false;
        description = "Type-safe, non-relational, multi-backend persistence";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ psibi ];
+       maintainers = [ lib.maintainers.psibi ];
      }) {};
 
   "persistent-template-classy" = callPackage
@@ -211063,6 +213760,7 @@ self: {
        description = "Persona (BrowserID) Identity Provider";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "persona";
      }) {};
 
   "pesca" = callPackage
@@ -211078,6 +213776,7 @@ self: {
        description = "Proof Editor for Sequent Calculus";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pesca";
        broken = true;
      }) {};
 
@@ -211205,6 +213904,7 @@ self: {
        description = "REST service and library for creating/consuming temporary PostgreSQL databases";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pg-harness";
        broken = true;
      }) {};
 
@@ -211237,6 +213937,7 @@ self: {
        description = "REST service for creating temporary PostgreSQL databases";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pg-harness";
        broken = true;
      }) {};
 
@@ -211264,6 +213965,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pg-recorder";
        broken = true;
      }) {};
 
@@ -211342,6 +214044,7 @@ self: {
        description = "browse directory listing webpages and download files from them";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pgdl";
        broken = true;
      }) {};
 
@@ -211560,6 +214263,7 @@ self: {
        description = "Deprecated - ghci debug viewer with simple editor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "phoityne";
        broken = true;
      }) {};
 
@@ -211583,6 +214287,7 @@ self: {
        ];
        description = "Haskell Debug Adapter for Visual Studio Code";
        license = lib.licenses.bsd3;
+       mainProgram = "phoityne-vscode";
      }) {};
 
   "phone-metadata" = callPackage
@@ -211811,6 +214516,7 @@ self: {
        description = "A library for working with generalized phonetic languages usage";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pldPL";
      }) {};
 
   "phonetic-languages-plus" = callPackage
@@ -211834,6 +214540,7 @@ self: {
        description = "Some common shared between different packages functions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "distributionTextG";
      }) {};
 
   "phonetic-languages-properties" = callPackage
@@ -212186,6 +214893,7 @@ self: {
        executableHaskellDepends = [ base mmsyn2-array mmsyn5 ];
        description = "Prepares Ukrainian text to be used as a phonetic language text";
        license = lib.licenses.mit;
+       mainProgram = "unconcatUkr";
      }) {};
 
   "phonetic-languages-vector" = callPackage
@@ -212243,6 +214951,7 @@ self: {
        ];
        description = "Rename photo image files based on EXIF shoot date";
        license = lib.licenses.isc;
+       mainProgram = "photoname";
      }) {};
 
   "phraskell" = callPackage
@@ -212257,6 +214966,7 @@ self: {
        description = "A fractal viewer";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "phraskell";
        broken = true;
      }) {};
 
@@ -212291,6 +215001,7 @@ self: {
        description = "Utility for clustering phylogenetic trees in Newick format based on Robinson-Foulds distance";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "phybin";
        broken = true;
      }) {};
 
@@ -212324,6 +215035,7 @@ self: {
        description = "Applied pi-calculus interpreter";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "phi";
        broken = true;
      }) {};
 
@@ -212349,6 +215061,7 @@ self: {
        description = "Demo implementation of typechecker for dependently-typed language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pi-forall";
        broken = true;
      }) {};
 
@@ -212419,6 +215132,7 @@ self: {
        description = "Set up port forwarding with the Private Internet Access VPN service";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pia-forward";
      }) {};
 
   "pianola" = callPackage
@@ -212457,6 +215171,7 @@ self: {
        description = "simple image manipulation functions";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "picedit";
        broken = true;
      }) {};
 
@@ -212555,6 +215270,7 @@ self: {
        description = "Converts a svg image to tikz code";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pictikz";
        broken = true;
      }) {};
 
@@ -212569,6 +215285,7 @@ self: {
        executableHaskellDepends = [ base mtl ];
        description = "a simple pid controller";
        license = "unknown";
+       mainProgram = "pid";
      }) {};
 
   "pid1" = callPackage
@@ -212583,6 +215300,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Do signal handling and orphan reaping for Unix PID1 init processes";
        license = lib.licenses.mit;
+       mainProgram = "pid1";
      }) {};
 
   "pidfile" = callPackage
@@ -212615,6 +215333,7 @@ self: {
        description = "Yet another Haskell build system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pier";
      }) {};
 
   "pier-core" = callPackage
@@ -212650,6 +215369,7 @@ self: {
        description = "A Piet interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "piet";
        broken = true;
      }) {};
 
@@ -212668,6 +215388,7 @@ self: {
        description = "dice game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pig";
        broken = true;
      }) {};
 
@@ -212683,6 +215404,7 @@ self: {
        executableHaskellDepends = [ base mtl parsec text ];
        description = "Yet another text-to-html converter";
        license = lib.licenses.bsd3;
+       mainProgram = "piki";
      }) {};
 
   "pinboard" = callPackage
@@ -212728,7 +215450,8 @@ self: {
        ];
        description = "Back up the notes you've saved to Pinboard";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ bdesham ];
+       mainProgram = "pnbackup";
+       maintainers = [ lib.maintainers.bdesham ];
      }) {};
 
   "pinch" = callPackage
@@ -212775,6 +215498,7 @@ self: {
        description = "A code generator for the pinch Thrift library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pinch-gen";
        broken = true;
      }) {};
 
@@ -212861,6 +215585,7 @@ self: {
        ];
        description = "Attoparsec parsers of ping utility";
        license = lib.licenses.asl20;
+       mainProgram = "ping-parser-attoparsec-exe";
      }) {};
 
   "ping-wrapper" = callPackage
@@ -212884,6 +215609,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Haskell Ping wrapper";
        license = lib.licenses.asl20;
+       mainProgram = "ping-wrapper";
      }) {};
 
   "pinned-warnings" = callPackage
@@ -212963,6 +215689,7 @@ self: {
        ];
        description = "Open your editor, pipe the output to the system clipboard";
        license = lib.licenses.bsd2;
+       mainProgram = "pipeclip";
      }) {};
 
   "piped" = callPackage
@@ -213020,7 +215747,7 @@ self: {
        ];
        description = "Compositional pipelines";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-aeson" = callPackage
@@ -213099,6 +215826,7 @@ self: {
        description = "Streaming parsing in the pipes-core framework with Attoparsec";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "MimeParser";
      }) {};
 
   "pipes-bgzf" = callPackage
@@ -213189,7 +215917,7 @@ self: {
        ];
        description = "ByteString support for pipes";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-bzip" = callPackage
@@ -213360,7 +216088,7 @@ self: {
        testHaskellDepends = [ async base pipes stm ];
        description = "Concurrency for the pipes ecosystem";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-conduit" = callPackage
@@ -213423,7 +216151,7 @@ self: {
        ];
        description = "Fast, streaming csv parser";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-errors" = callPackage
@@ -213483,7 +216211,7 @@ self: {
        ];
        description = "Extra utilities for pipes";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-fastx" = callPackage
@@ -213568,7 +216296,7 @@ self: {
        testHaskellDepends = [ base doctest lens-family-core ];
        description = "Group streams into substreams";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-http" = callPackage
@@ -213586,7 +216314,7 @@ self: {
        ];
        description = "HTTP client with pipes interface";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-illumina" = callPackage
@@ -213712,6 +216440,7 @@ self: {
        ];
        description = "LZMA compressors and decompressors for the Pipes package";
        license = lib.licenses.bsd3;
+       mainProgram = "pipes-lzma-unxz";
      }) {};
 
   "pipes-misc" = callPackage
@@ -213843,6 +216572,7 @@ self: {
        description = "Examples using pipes-p2p";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "address-exchanger";
      }) {};
 
   "pipes-parse" = callPackage
@@ -213854,7 +216584,7 @@ self: {
        libraryHaskellDepends = [ base pipes transformers ];
        description = "Parsing infrastructure for the pipes ecosystem";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-postgresql-simple" = callPackage
@@ -213895,6 +216625,7 @@ self: {
        description = "Alternate Prelude for the pipes ecosystem";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pipes-protolude-exe";
      }) {};
 
   "pipes-pulse-simple" = callPackage
@@ -213935,6 +216666,7 @@ self: {
        description = "A few pipes to control the timing of yields";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "PipesRealTimeExample";
        broken = true;
      }) {};
 
@@ -213976,7 +216708,7 @@ self: {
        ];
        description = "Safety for the pipes ecosystem";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-shell" = callPackage
@@ -214107,6 +216839,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "WebSockets in the Pipes framework";
        license = lib.licenses.bsd3;
+       mainProgram = "pipes-websockets-example";
      }) {};
 
   "pipes-zeromq4" = callPackage
@@ -214168,6 +216901,7 @@ self: {
        description = "A dependently typed core language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pisigma";
      }) {};
 
   "pit" = callPackage
@@ -214191,6 +216925,7 @@ self: {
        description = "Account management tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pit";
        broken = true;
      }) {};
 
@@ -214237,6 +216972,7 @@ self: {
        description = "A library and a CLI tool for accessing Pivotal Tracker API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tracker";
        broken = true;
      }) {};
 
@@ -214256,6 +216992,7 @@ self: {
        description = "A program for turning pixel art into 3D prints";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pixel-printer-exe";
        broken = true;
      }) {};
 
@@ -214304,6 +217041,7 @@ self: {
        description = "A library and application for generating pixelated avatars";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pixelated-avatar-generator";
        broken = true;
      }) {};
 
@@ -214358,9 +217096,8 @@ self: {
        ];
        description = "Haskell game engine like fantasy console";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "piyo-exe";
      }) {};
 
   "pkcs1" = callPackage
@@ -214423,6 +217160,7 @@ self: {
        description = "Package dependency graph for installed packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pkggraph";
        broken = true;
      }) {};
 
@@ -214446,6 +217184,7 @@ self: {
        description = "RPM package tree diff tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pkgtreediff";
      }) {};
 
   "pktree" = callPackage
@@ -214471,6 +217210,7 @@ self: {
        executableSystemDepends = [ libXinerama ];
        description = "A utility for X11 that moves the mouse cursor using the keyboard";
        license = lib.licenses.gpl3Only;
+       mainProgram = "place-cursor-at";
      }) {inherit (pkgs.xorg) libXinerama;};
 
   "placeholders" = callPackage
@@ -214513,6 +217253,7 @@ self: {
        ];
        description = "Plaid.com api integration library";
        license = lib.licenses.bsd3;
+       mainProgram = "plaid";
      }) {};
 
   "plailude" = callPackage
@@ -214736,6 +217477,7 @@ self: {
        description = "General Framework for compiler development";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pp";
        broken = true;
      }) {};
 
@@ -214761,6 +217503,7 @@ self: {
        description = "Library and executable for working with playlist files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "playlist";
        broken = true;
      }) {};
 
@@ -214875,6 +217618,7 @@ self: {
        description = "plot data from stdin through socketed";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "plocketed";
      }) {};
 
   "plot" = callPackage
@@ -214953,6 +217697,7 @@ self: {
        description = "A plotting tool with Mathematica like Manipulation abilities";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "plot-lab";
        broken = true;
      }) {};
 
@@ -215012,6 +217757,7 @@ self: {
        description = "Basic plotting of tabular data for the command line";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ploterific";
        broken = true;
      }) {};
 
@@ -215060,6 +217806,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "A useful cli tool to draw figures";
        license = lib.licenses.bsd3;
+       mainProgram = "ploton";
      }) {};
 
   "plots" = callPackage
@@ -215222,6 +217969,7 @@ self: {
        executableHaskellDepends = [ base bytestring linear vector ];
        description = "PLY file loader";
        license = lib.licenses.bsd3;
+       mainProgram = "ply2bin";
      }) {};
 
   "plzwrk" = callPackage
@@ -215353,6 +218101,7 @@ self: {
        description = "Multi-backend (zookeeper and sqlite) DNS Server using persistent-library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pocket-dns";
      }) {};
 
   "podenv" = callPackage
@@ -215377,6 +218126,7 @@ self: {
        description = "A container wrapper";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "podenv";
        broken = true;
      }) {};
 
@@ -215463,6 +218213,7 @@ self: {
        ];
        description = "Tool for refactoring expressions into pointfree form";
        license = "unknown";
+       mainProgram = "pointfree";
      }) {};
 
   "pointfree-fancy" = callPackage
@@ -215486,6 +218237,7 @@ self: {
        description = "Tool for refactoring expressions into pointfree form";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pointfree";
        broken = true;
      }) {};
 
@@ -215506,6 +218258,7 @@ self: {
        description = "Pointful refactoring tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pointful";
        broken = true;
      }) {};
 
@@ -215595,6 +218348,7 @@ self: {
        description = "Discord verification bot";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "poke-exe";
      }) {};
 
   "pokemon-go-protobuf-types" = callPackage
@@ -215636,6 +218390,7 @@ self: {
        description = "Texas holdem hand evaluation and simulation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "poker-exe";
        broken = true;
      }) {};
 
@@ -215776,6 +218531,7 @@ self: {
        description = "Haskell PVP version adviser";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "policeman";
        broken = true;
      }) {};
 
@@ -216155,36 +218911,38 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-chronos";
-       version = "0.4.0.0";
-       sha256 = "0wcd9g5ad846s2z7i10krphlks1n7ywlcs64aqv91yxlxfnlb9d8";
+       version = "0.5.0.0";
+       sha256 = "04cj96iwn7fgyk4r8hy730lm1j01q7iv1yd7rdq20kp9mris5c6c";
        libraryHaskellDepends = [
          base chronos incipit-core polysemy-time
        ];
        testHaskellDepends = [
          base chronos incipit-core polysemy-test polysemy-time tasty
        ];
-       description = "Polysemy-time Interpreters for Chronos";
+       description = "Polysemy effects for Chronos";
        license = "BSD-2-Clause-Patent";
      }) {};
 
   "polysemy-conc" = callPackage
-    ({ mkDerivation, async, base, containers, incipit-core, polysemy
-     , polysemy-plugin, polysemy-resume, polysemy-test, polysemy-time
-     , stm, stm-chans, tasty, time, torsor, unagi-chan, unix
+    ({ mkDerivation, async, base, containers, hedgehog, incipit-core
+     , polysemy, polysemy-plugin, polysemy-resume, polysemy-test
+     , polysemy-time, stm, stm-chans, tasty, tasty-hedgehog, time
+     , torsor, unagi-chan, unix
      }:
      mkDerivation {
        pname = "polysemy-conc";
-       version = "0.8.0.1";
-       sha256 = "0l1hgv9xlax5ycp66j5asfhfi9jyfcwvd9z132pbx8dyj4ikzp8y";
+       version = "0.9.0.0";
+       sha256 = "0nmnc3h4np742yf0c196q3d0bfdvm9k3dp0482712ka1zjk8ck1k";
        libraryHaskellDepends = [
          async base containers incipit-core polysemy polysemy-resume
          polysemy-time stm stm-chans torsor unagi-chan unix
        ];
        testHaskellDepends = [
-         async base incipit-core polysemy polysemy-plugin polysemy-resume
-         polysemy-test polysemy-time stm tasty time unagi-chan unix
+         async base hedgehog incipit-core polysemy polysemy-plugin
+         polysemy-resume polysemy-test polysemy-time stm tasty
+         tasty-hedgehog time unagi-chan unix
        ];
-       description = "Polysemy Effects for Concurrency";
+       description = "Polysemy effects for concurrency";
        license = "BSD-2-Clause-Patent";
      }) {};
 
@@ -216259,6 +219017,8 @@ self: {
        ];
        description = "Polysemy Effects for HTTP clients";
        license = "BSD-2-Clause-Patent";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "polysemy-keyed-state" = callPackage
@@ -216321,8 +219081,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-log";
-       version = "0.6.0.1";
-       sha256 = "04fghlmqimcc4wm9qbmbjxcvzjrhdijg5h0f135yqlc598f0ny9i";
+       version = "0.7.0.0";
+       sha256 = "1n39zpg992vmz0pcf89ljf6vy83z5r27jzg4iakh97bpfskacii6";
        libraryHaskellDepends = [
          ansi-terminal async base incipit-core polysemy polysemy-conc
          polysemy-time stm time
@@ -216331,7 +219091,7 @@ self: {
          base incipit-core polysemy polysemy-conc polysemy-plugin
          polysemy-test polysemy-time tasty time
        ];
-       description = "Polysemy Effects for Logging";
+       description = "Polysemy effects for logging";
        license = "BSD-2-Clause-Patent";
      }) {};
 
@@ -216342,8 +219102,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-log-co";
-       version = "0.6.0.1";
-       sha256 = "0b3fi8ql4vj13ijg2f6xay50wp26ypdbifwrahg29sibx77qp5lr";
+       version = "0.7.0.0";
+       sha256 = "10f5fg0xx58v4rnd62ll68k7anahrgb7iqv5fkz4xb17yvrkgckk";
        libraryHaskellDepends = [
          base co-log co-log-polysemy incipit-core polysemy polysemy-conc
          polysemy-log polysemy-time stm
@@ -216352,7 +219112,7 @@ self: {
          base co-log co-log-polysemy incipit-core polysemy polysemy-log
          polysemy-test polysemy-time stm tasty
        ];
-       description = "Colog Adapters for Polysemy-Log";
+       description = "Colog adapters for Polysemy.Log";
        license = "BSD-2-Clause-Patent";
      }) {};
 
@@ -216363,8 +219123,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-log-di";
-       version = "0.6.0.1";
-       sha256 = "016nicml88ahpkz3jj7r29f7v6bkch4pci2iwfx8iwx48g6hkq9w";
+       version = "0.7.0.0";
+       sha256 = "03rfjx91wc2m79alxjhi2mqlxnal87nbgwidin04s9x3zq2hyk9k";
        libraryHaskellDepends = [
          base di-polysemy incipit-core polysemy polysemy-conc polysemy-log
          polysemy-time stm
@@ -216372,7 +219132,7 @@ self: {
        testHaskellDepends = [
          base incipit-core polysemy polysemy-log polysemy-test stm tasty
        ];
-       description = "Di Adapters for Polysemy-Log";
+       description = "Di adapters for Polysemy.Log";
        license = "BSD-2-Clause-Patent";
      }) {};
 
@@ -216547,8 +219307,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-process";
-       version = "0.8.0.1";
-       sha256 = "0ayn6l2c6009wrxc4rya6dc8185wp6krdck8mbbasrlvah3in3cs";
+       version = "0.9.0.0";
+       sha256 = "1jd3iryv3vwy8zv328sfwh1ifrj788fhs63vgppr503wgkqzmwbn";
        libraryHaskellDepends = [
          base incipit-core path path-io polysemy polysemy-conc
          polysemy-resume polysemy-time posix-pty process stm-chans
@@ -216559,7 +219319,7 @@ self: {
          polysemy-resume polysemy-test polysemy-time tasty
          tasty-expected-failure typed-process
        ];
-       description = "Polysemy Effects for System Processes";
+       description = "Polysemy effects for system processes";
        license = "BSD-2-Clause-Patent";
      }) {};
 
@@ -216585,6 +219345,7 @@ self: {
        description = "Readline effect for polysemy";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "echo-repl";
        broken = true;
      }) {};
 
@@ -216610,8 +219371,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-resume";
-       version = "0.4.0.0";
-       sha256 = "1lxg2xf6lvw692w8sqr4jgxx02pmzq5rym3ch9rydca3mb3gkz73";
+       version = "0.5.0.0";
+       sha256 = "1l51p565i0wb9ckxbaiwzgbbl7jicr9586n824478bxdsd45b3di";
        libraryHaskellDepends = [
          base incipit-core polysemy transformers
        ];
@@ -216677,8 +219438,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-test";
-       version = "0.5.0.0";
-       sha256 = "0bmqphkv15p638wwz80rp6vfzvyj94q3i4clda1vn8fwgqd6pmwv";
+       version = "0.6.0.0";
+       sha256 = "093xg4jlxpfb64r8912k9hznbjy8zn9s18f7cci9lp472b4agxph";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base hedgehog incipit-core path path-io polysemy tasty
@@ -216697,15 +219458,15 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-time";
-       version = "0.4.0.0";
-       sha256 = "0smcc375x4jdhc63fk44fp3bhfdaiszf9w6nk1ww1jl29gm3lamb";
+       version = "0.5.0.0";
+       sha256 = "026rqwm9bjlxvcxjnnma06z30xkmysjnj8r5krbq5rinqdpjdfbs";
        libraryHaskellDepends = [
          aeson base incipit-core stm template-haskell time torsor
        ];
        testHaskellDepends = [
          base incipit-core polysemy-test tasty time
        ];
-       description = "Polysemy Effect for Time";
+       description = "Polysemy effects for time";
        license = "BSD-2-Clause-Patent";
      }) {};
 
@@ -216825,6 +219586,7 @@ self: {
        description = "Taming Selective Strictness";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "polyseq.cgi";
      }) {};
 
   "polysoup" = callPackage
@@ -216923,6 +219685,7 @@ self: {
        description = "pomodoro timer";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pomodoro";
      }) {};
 
   "pomohoro" = callPackage
@@ -216947,6 +219710,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pomohoro-exe";
        broken = true;
      }) {};
 
@@ -216999,6 +219763,7 @@ self: {
        description = "Extended Personal Media Network (XPMN) media server";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pontarius-mediaserver-test";
      }) {};
 
   "pontarius-xmpp" = callPackage
@@ -217093,6 +219858,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Can I have a pony?";
        license = lib.licenses.bsd3;
+       mainProgram = "can-i-have-a-pony";
      }) {};
 
   "pool" = callPackage
@@ -217330,6 +220096,7 @@ self: {
        description = "A location accessor for porcupine to connect to AWS S3 sources/sinks";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "exampleS3";
      }) {};
 
   "porpoise" = callPackage
@@ -217348,6 +220115,7 @@ self: {
        executableHaskellDepends = [ base warp ];
        description = "A minimalist HTTP server framework written on top of wai";
        license = lib.licenses.mit;
+       mainProgram = "porpoise-example";
      }) {};
 
   "port-utils" = callPackage
@@ -217433,6 +220201,7 @@ self: {
        description = "FreeBSD ports index search and analysis tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "porte";
        broken = true;
      }) {};
 
@@ -217590,6 +220359,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "posable" = callPackage
+    ({ mkDerivation, base, finite-typelits, generics-sop
+     , ghc-typelits-knownnat, tasty, tasty-hunit, tasty-quickcheck
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "posable";
+       version = "1.0.0.1";
+       sha256 = "07lnhyxjx7929hinlw3kzbh56ksk1zgiq2r5vlkpn9fxgza5cx64";
+       libraryHaskellDepends = [
+         base finite-typelits generics-sop ghc-typelits-knownnat
+         template-haskell
+       ];
+       testHaskellDepends = [
+         base ghc-typelits-knownnat tasty tasty-hunit tasty-quickcheck
+         template-haskell
+       ];
+       description = "A product-of-sums generics library";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "poseidon" = callPackage
     ({ mkDerivation, aeson, async, base, binary, binary-bits
      , bytestring, generics-eot, hspec, postgresql-libpq, QuickCheck
@@ -217702,9 +220492,7 @@ self: {
        ];
        description = "posix bindings";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) systemd;};
@@ -217845,6 +220633,7 @@ self: {
        description = "Sleep tracker for X11, using XScreenSaver extension and manual input";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "posplyu";
        broken = true;
      }) {};
 
@@ -217974,6 +220763,7 @@ self: {
        description = "Middleware to map LISTEN/NOTIFY messages to Websockets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "postgres-websockets";
        broken = true;
      }) {};
 
@@ -218178,6 +220968,7 @@ self: {
        testHaskellDepends = [ base bytestring hspec postgresql-simple ];
        description = "PostgreSQL Schema Migrations";
        license = lib.licenses.bsd3;
+       mainProgram = "migrate";
      }) {};
 
   "postgresql-named" = callPackage
@@ -218222,6 +221013,7 @@ self: {
        executableHaskellDepends = [ base filepath ];
        description = "An ORM (Object Relational Mapping) and migrations DSL for PostgreSQL";
        license = "GPL";
+       mainProgram = "pg_migrate";
      }) {};
 
   "postgresql-placeholder-converter" = callPackage
@@ -218339,6 +221131,7 @@ self: {
        testHaskellDepends = [ base binary bytestring cereal hspec ];
        description = "PostgreSQL logical streaming replication library";
        license = lib.licenses.bsd3;
+       mainProgram = "replicant-example";
      }) {};
 
   "postgresql-resilient" = callPackage
@@ -218389,8 +221182,8 @@ self: {
        pname = "postgresql-simple";
        version = "0.6.4";
        sha256 = "0rz2bklxp4pvbxb2w49h5p6pbwabn6d5d4j4mrya4fpa0d13k43d";
-       revision = "6";
-       editedCabalFile = "1s7f6l17qakhgmfn1l09s4g5pmawn9qa8ylbzybkm91h9y7mwlzn";
+       revision = "7";
+       editedCabalFile = "056q0jpnb4fz5djzngjy2xbbqijrhjg90mr7mphjxb8clzc2xl1w";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring bytestring-builder
          case-insensitive containers hashable Only postgresql-libpq
@@ -218405,7 +221198,7 @@ self: {
        benchmarkHaskellDepends = [ base vector ];
        description = "Mid-Level PostgreSQL client library";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "postgresql-simple-bind" = callPackage
@@ -218468,6 +221261,7 @@ self: {
        testHaskellDepends = [ base bytestring hspec postgresql-simple ];
        description = "PostgreSQL Schema Migrations";
        license = lib.licenses.bsd3;
+       mainProgram = "migrate";
      }) {};
 
   "postgresql-simple-named" = callPackage
@@ -218810,6 +221604,7 @@ self: {
        description = "REST API for any Postgres database";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "postgrest";
      }) {};
 
   "postgrest-ws" = callPackage
@@ -218846,6 +221641,7 @@ self: {
        description = "PostgREST extension to map LISTEN/NOTIFY messages to Websockets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "postgrest-ws";
        broken = true;
      }) {};
 
@@ -218925,6 +221721,7 @@ self: {
        description = "Postmaster ESMTP Server";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "postmaster";
        broken = true;
      }) {};
 
@@ -218940,6 +221737,7 @@ self: {
        description = "Command line Dreamcast VMU filesystem toolset";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "potato-tool";
        broken = true;
      }) {};
 
@@ -219323,6 +222121,7 @@ self: {
        description = "Practice Room";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "practice-room";
      }) {};
 
   "praglude" = callPackage
@@ -219423,6 +222222,7 @@ self: {
        description = "Diff Cabal packages";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "precis";
        broken = true;
      }) {};
 
@@ -219618,6 +222418,7 @@ self: {
        executableHaskellDepends = [ base bytestring ];
        description = "Prefetch stdin even before stdout is ready";
        license = lib.licenses.bsd3;
+       mainProgram = "prefetch";
      }) {};
 
   "prefix-expression" = callPackage
@@ -220062,6 +222863,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Typeclass for human-readable display";
        license = lib.licenses.bsd3;
+       mainProgram = "pretty-display-example";
      }) {};
 
   "pretty-error" = callPackage
@@ -220100,6 +222902,7 @@ self: {
        description = "Functionality for beautifying GHCi";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pp-ghci";
        broken = true;
      }) {};
 
@@ -220190,6 +222993,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Tools for working with derived `Show` instances and generic inspection of values";
        license = lib.licenses.mit;
+       mainProgram = "ppsh";
      }) {};
 
   "pretty-show-ansi-wl" = callPackage
@@ -220230,10 +223034,10 @@ self: {
        benchmarkHaskellDepends = [ base criterion text ];
        description = "pretty printer for data types with a 'Show' instance";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ cdepillabout ];
+       maintainers = [ lib.maintainers.cdepillabout ];
      }) {};
 
-  "pretty-simple_4_1_0_0" = callPackage
+  "pretty-simple_4_1_1_0" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, containers, criterion
      , doctest, Glob, mtl, optparse-applicative, prettyprinter
      , prettyprinter-ansi-terminal, QuickCheck, template-haskell, text
@@ -220241,8 +223045,8 @@ self: {
      }:
      mkDerivation {
        pname = "pretty-simple";
-       version = "4.1.0.0";
-       sha256 = "0afmbvcma67hah9f7i9j4fazlkfdbr6ljas1cn10wp4mlxlf8236";
+       version = "4.1.1.0";
+       sha256 = "0jjxlb0psj5wj7h8dsmqbx8qwdyzmgsv7r9my51x9qb7m6qpkqfs";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -220258,7 +223062,8 @@ self: {
        description = "pretty printer for data types with a 'Show' instance";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ cdepillabout ];
+       mainProgram = "pretty-simple";
+       maintainers = [ lib.maintainers.cdepillabout ];
      }) {};
 
   "pretty-sop" = callPackage
@@ -220290,6 +223095,7 @@ self: {
        executableHaskellDepends = [ base text ];
        description = "Styling and coloring terminal output with ANSI escape sequences";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "pretty-tree" = callPackage
@@ -221023,6 +223829,7 @@ self: {
        description = "ImageBoard on Happstack and HSP";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "primula-board";
      }) {};
 
   "primula-bot" = callPackage
@@ -221042,6 +223849,7 @@ self: {
        description = "Jabber-bot for primula-board ImageBoard";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "primula-bot";
      }) {};
 
   "primus" = callPackage
@@ -221095,6 +223903,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Print all ANSI console colors";
        license = lib.licenses.bsd3;
+       mainProgram = "print-console-colors";
      }) {};
 
   "print-debugger" = callPackage
@@ -221195,6 +224004,7 @@ self: {
        executableHaskellDepends = [ base xosd ];
        description = "Simple tool to display some text on an on-screen display";
        license = lib.licenses.bsd3;
+       mainProgram = "printxosd";
      }) {};
 
   "priority-queue" = callPackage
@@ -221226,6 +224036,7 @@ self: {
        description = "Cooperative task prioritization";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "_PrioritySync_Internal_Tests";
      }) {};
 
   "private-hackage-uploader" = callPackage
@@ -221244,6 +224055,7 @@ self: {
        executableHaskellDepends = [ base directory shelly text ];
        description = "Upload a package to the public or private hackage, building its docs";
        license = lib.licenses.mit;
+       mainProgram = "private-hackage-uploader";
      }) {};
 
   "privileged-concurrency" = callPackage
@@ -221708,6 +224520,7 @@ self: {
        ];
        description = "An IO library for testing interactive command line programs";
        license = lib.licenses.mit;
+       mainProgram = "example-netcat-test";
      }) {};
 
   "producer" = callPackage
@@ -221785,6 +224598,7 @@ self: {
        description = "Generate flamegraphs from ghc RTS .prof files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "prof-flamegraph";
        broken = true;
      }) {};
 
@@ -221802,6 +224616,7 @@ self: {
        description = "Convert GHC profiles into GraphViz's dot format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "prof2dot";
      }) {};
 
   "prof2pretty" = callPackage
@@ -221841,6 +224656,7 @@ self: {
        description = "Restructure GHC profile reports";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "profiterole";
      }) {};
 
   "profiteur" = callPackage
@@ -221862,6 +224678,7 @@ self: {
        description = "Treemap visualiser for GHC prof files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "profiteur";
      }) {};
 
   "profunctor-arrows" = callPackage
@@ -221936,6 +224753,7 @@ self: {
        description = "A compact optics library compatible with the typeclasses in profunctors";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doctest";
        broken = true;
      }) {coapplicative = null;};
 
@@ -222058,6 +224876,7 @@ self: {
        description = "Multilabel classification model which learns sequentially (online)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "progressive";
        broken = true;
      }) {};
 
@@ -222270,6 +225089,7 @@ self: {
        description = "A command line tool to visualize query resolution in Prolog";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsprolog-graph";
      }) {};
 
   "prolog-graph-lib" = callPackage
@@ -222404,6 +225224,7 @@ self: {
        description = "Instrument applications with metrics and publish/push to Prometheus";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
      }) {};
 
   "prometheus-metrics-ghc" = callPackage
@@ -222456,6 +225277,7 @@ self: {
        ];
        description = "Instrument a wai application with various metrics";
        license = lib.licenses.bsd3;
+       mainProgram = "prometheus-wai-middleware-example";
      }) {};
 
   "promise" = callPackage
@@ -222802,6 +225624,7 @@ self: {
        description = "neovim project manager";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "proteome";
      }) {};
 
   "proto-lens" = callPackage
@@ -222948,6 +225771,7 @@ self: {
        ];
        description = "Protocol buffer compiler for the proto-lens library";
        license = lib.licenses.bsd3;
+       mainProgram = "proto-lens-protoc";
      }) {inherit (pkgs) protobuf;};
 
   "proto-lens-runtime" = callPackage
@@ -223091,6 +225915,7 @@ self: {
        description = "Protocol Buffers via C++";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "protobuf-native-test";
      }) {};
 
   "protobuf-simple" = callPackage
@@ -223116,6 +225941,7 @@ self: {
        ];
        description = "Simple Protocol Buffers library (proto2)";
        license = lib.licenses.mit;
+       mainProgram = "protobuf-simple-protoc";
      }) {};
 
   "protocol" = callPackage
@@ -223239,10 +226065,8 @@ self: {
      }:
      mkDerivation {
        pname = "protolude";
-       version = "0.3.1";
-       sha256 = "0cwy2apaghbxxf4w3k8gpd8npiy8d9yw0cd6ixqvis28q0b8snvi";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.3.2";
+       sha256 = "0i53yxg44nrz0czwr8cqhw1fdapz9db8kfnqz9a3lmj5skrikh3y";
        libraryHaskellDepends = [
          array async base bytestring containers deepseq ghc-prim hashable
          mtl mtl-compat stm text transformers transformers-compat
@@ -223338,6 +226162,7 @@ self: {
        description = "The server for ProveEverywhere";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "prove-everywhere-server";
        broken = true;
      }) {};
 
@@ -223439,6 +226264,7 @@ self: {
        ];
        description = "Prune unused Haskell dependencies";
        license = lib.licenses.mit;
+       mainProgram = "prune-juice";
      }) {};
 
   "psc-ide" = callPackage
@@ -223621,6 +226447,7 @@ self: {
        executableHaskellDepends = [ base text ];
        description = "A Haskell Implementation of the Porter Stemmer";
        license = lib.licenses.bsd3;
+       mainProgram = "pstemmer-test-exe";
      }) {};
 
   "ptera" = callPackage
@@ -223711,22 +226538,25 @@ self: {
      }) {};
 
   "ptr" = callPackage
-    ({ mkDerivation, base, bytestring, contravariant, profunctors
-     , QuickCheck, quickcheck-instances, rerebase, tasty, tasty-hunit
-     , tasty-quickcheck, text, time, vector
+    ({ mkDerivation, base, bytestring, cereal, contravariant, gauge
+     , profunctors, QuickCheck, quickcheck-instances, rerebase
+     , strict-list, tasty, tasty-hunit, tasty-quickcheck, text, time
+     , tostring, vector
      }:
      mkDerivation {
        pname = "ptr";
-       version = "0.16.8.1";
-       sha256 = "1ij3jhvavy19jjy6zx1q3jm2zq3n4qjxng653m5rr0rlfmwmanhp";
+       version = "0.16.8.2";
+       sha256 = "03azqd2wxs7p48ixc1zhy65axgaacnndcbxgrv6f026szpllky55";
        libraryHaskellDepends = [
-         base bytestring contravariant profunctors text time vector
+         base bytestring contravariant profunctors strict-list text time
+         vector
        ];
        testHaskellDepends = [
-         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
+         cereal QuickCheck quickcheck-instances rerebase tasty tasty-hunit
          tasty-quickcheck
        ];
-       description = "Abstractions for operations on pointers";
+       benchmarkHaskellDepends = [ cereal gauge rerebase tostring ];
+       description = "Experimental abstractions for operations on pointers";
        license = lib.licenses.mit;
      }) {};
 
@@ -223939,6 +226769,7 @@ self: {
        description = "A CLI assistant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ptk";
      }) {};
 
   "pugixml" = callPackage
@@ -223981,6 +226812,7 @@ self: {
        description = "DrIFT with pugs-specific rules";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pugs-DrIFT";
        broken = true;
      }) {};
 
@@ -224051,7 +226883,7 @@ self: {
        librarySystemDepends = [ libpulseaudio ];
        description = "binding to Simple API of pulseaudio";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {inherit (pkgs) libpulseaudio;};
 
   "pulseaudio" = callPackage
@@ -224120,6 +226952,7 @@ self: {
        description = "A program that displays the puppet resources associated to a node given .pp files.";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "puppetresources";
      }) {};
 
   "pure-cdb" = callPackage
@@ -224197,6 +227030,7 @@ self: {
        description = "Tests for the pure-priority-queue package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pure-priority-queue-tests";
      }) {};
 
   "pure-shuffle" = callPackage
@@ -224243,6 +227077,7 @@ self: {
        description = "A Haskell-only implementation of zlib / DEFLATE";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "deflate";
        broken = true;
      }) {};
 
@@ -224314,7 +227149,8 @@ self: {
        description = "Nix backend for PureScript. Transpile PureScript code to Nix.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ cdepillabout ];
+       mainProgram = "purenix";
+       maintainers = [ lib.maintainers.cdepillabout ];
        broken = true;
      }) {};
 
@@ -224338,6 +227174,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Simple Routing functions for Wai Applications";
        license = lib.licenses.asl20;
+       mainProgram = "simple-routing-core-exe";
      }) {};
 
   "purescript" = callPackage
@@ -224406,6 +227243,7 @@ self: {
        doCheck = false;
        description = "PureScript Programming Language Compiler";
        license = lib.licenses.bsd3;
+       mainProgram = "purs";
      }) {};
 
   "purescript-ast" = callPackage
@@ -224460,6 +227298,7 @@ self: {
        ];
        description = "A fast alternative to Purescript's `psc-bundle` to be used during development";
        license = lib.licenses.mit;
+       mainProgram = "psc-bundle-fast";
      }) {};
 
   "purescript-cst" = callPackage
@@ -224532,6 +227371,7 @@ self: {
        description = "TypeScript Declaration File (.d.ts) generator for PureScript";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "purs-tsd-gen";
      }) {};
 
   "pursuit-client" = callPackage
@@ -224549,6 +227389,7 @@ self: {
        description = "A cli client for pursuit";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pursuit-search";
      }) {};
 
   "purview" = callPackage
@@ -224642,6 +227483,7 @@ self: {
        description = "Send push notifications to mobile iOS devices";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sendapn";
      }) {};
 
   "push-notify-ccs" = callPackage
@@ -224758,6 +227600,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "pusher-http-haskell_2_1_0_10" = callPackage
+    ({ mkDerivation, aeson, base, base16-bytestring, bytestring
+     , cryptonite, hashable, hspec, http-client, http-client-tls
+     , http-types, memory, QuickCheck, text, time, unordered-containers
+     }:
+     mkDerivation {
+       pname = "pusher-http-haskell";
+       version = "2.1.0.10";
+       sha256 = "1xmqs11v8bj099izdqfq6mza4rqm1njznrdcfq4zvwg9381n86hz";
+       libraryHaskellDepends = [
+         aeson base base16-bytestring bytestring cryptonite hashable
+         http-client http-client-tls http-types memory text time
+         unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring hspec QuickCheck text unordered-containers
+       ];
+       description = "Haskell client library for the Pusher Channels HTTP API";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pusher-ws" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, deepseq
      , hashable, http-conduit, lens, lens-aeson, network, scientific
@@ -224803,6 +227667,7 @@ self: {
        description = "Tool to synchronize directories with rsync, zfs or git-annex";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pushme";
      }) {};
 
   "pushover" = callPackage
@@ -224893,6 +227758,7 @@ self: {
        description = "Creating graphics for pencil puzzles, command line tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "drawpuzzle";
      }) {};
 
   "pvar" = callPackage
@@ -224954,6 +227820,7 @@ self: {
        testHaskellDepends = [ base cryptonite tasty tasty-quickcheck ];
        description = "Public Verifiable Secret Sharing";
        license = lib.licenses.mit;
+       mainProgram = "pvss-exe";
      }) {};
 
   "pwstore-cli" = callPackage
@@ -224975,6 +227842,7 @@ self: {
        ];
        description = "Command line interface for the pwstore library";
        license = lib.licenses.gpl3Only;
+       mainProgram = "pwstore";
      }) {};
 
   "pwstore-fast" = callPackage
@@ -225019,6 +227887,7 @@ self: {
        executableHaskellDepends = [ base containers mtl parsec ];
        description = "Parsimonious XML Shorthand Language--to-XML compiler";
        license = "GPL";
+       mainProgram = "pxslcc";
      }) {};
 
   "pyffi" = callPackage
@@ -225079,6 +227948,7 @@ self: {
        description = "Serialization/deserialization using Python Pickle format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pickle";
        broken = true;
      }) {};
 
@@ -225131,6 +228001,7 @@ self: {
        testHaskellDepends = [ base hmatrix linear tasty tasty-hunit ];
        description = "A library for implementing Quantum Algorithms";
        license = lib.licenses.bsd3;
+       mainProgram = "qchas-exe";
      }) {};
 
   "qd" = callPackage
@@ -225201,6 +228072,7 @@ self: {
        description = "Command line tool qhs, SQL queries on CSV and TSV files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qhs";
      }) {};
 
   "qhull-simple" = callPackage
@@ -225306,6 +228178,7 @@ self: {
        description = "Decrypt files encrypted by QNAP's Hybrid Backup Sync";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qnap-decrypt";
        broken = true;
      }) {};
 
@@ -225337,6 +228210,7 @@ self: {
        ];
        description = "Pure Haskell QR encoder library and command line tool";
        license = lib.licenses.bsd3;
+       mainProgram = "cqr";
      }) {};
 
   "qr-imager" = callPackage
@@ -225377,6 +228251,7 @@ self: {
        description = "Library to generate QR codes from bytestrings and objects and scale image files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qrpipe";
      }) {};
 
   "qrcode" = callPackage
@@ -225488,6 +228363,7 @@ self: {
        description = "Example programs for Qtah Qt bindings";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qtah-examples";
      }) {};
 
   "qtah-generator" = callPackage
@@ -225508,6 +228384,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Generator for Qtah Qt bindings";
        license = lib.licenses.lgpl3Only;
+       mainProgram = "qtah-generator";
      }) {};
 
   "qtah-qt5" = callPackage
@@ -225614,6 +228491,7 @@ self: {
        description = "Quant finance library in pure Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -225653,6 +228531,7 @@ self: {
        ];
        description = "Unit conversion and manipulation library";
        license = lib.licenses.bsd3;
+       mainProgram = "quantities";
      }) {};
 
   "quantum-arrow" = callPackage
@@ -225689,6 +228568,7 @@ self: {
        description = "Retrieve, store and manage real quantum random data";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qrand";
      }) {};
 
   "quarantimer" = callPackage
@@ -225711,6 +228591,7 @@ self: {
        description = "Coronavirus quarantine timer web app for your things";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "quarantimer";
        broken = true;
      }) {};
 
@@ -225731,6 +228612,7 @@ self: {
        description = "Quite Useless DB";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qudb";
        broken = true;
      }) {};
 
@@ -225755,6 +228637,7 @@ self: {
        description = "Quenya verb conjugator";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "quenya-verb-server";
        broken = true;
      }) {};
 
@@ -225911,8 +228794,8 @@ self: {
        pname = "queue-sheet";
        version = "0.7.0.2";
        sha256 = "14ih4j09r30p0a75na833jq5ar0wfjm1f7qn6hfyqr4hjyqyfwfk";
-       revision = "1";
-       editedCabalFile = "160z11x6j7qc0lvzyhxii3dfgswfv9chvhm39sxnl78456m19ifd";
+       revision = "2";
+       editedCabalFile = "1kag9n80a1v6hjipyjwihcs8v004xdclhrdi2h7hfpy6a2bdr0pc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -225926,6 +228809,7 @@ self: {
        description = "queue sheet utility";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "queue-sheet";
      }) {};
 
   "queuelike" = callPackage
@@ -226018,6 +228902,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "quick & easy benchmarking of command-line programs";
        license = "GPL";
+       mainProgram = "quickbench";
      }) {};
 
   "quickbooks" = callPackage
@@ -226345,6 +229230,7 @@ self: {
        executableHaskellDepends = [ base directory process QuickCheck ];
        description = "Automated test tool for QuickCheck";
        license = lib.licenses.bsd3;
+       mainProgram = "quickCheck";
      }) {};
 
   "quickcheck-simple" = callPackage
@@ -226562,6 +229448,7 @@ self: {
        description = "Generate Main module with QuickCheck tests";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "quickpull";
        broken = true;
      }) {};
 
@@ -226641,6 +229528,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "An interface for describing and executing terminal applications";
        license = lib.licenses.gpl3Only;
+       mainProgram = "qt-demo";
      }) {};
 
   "quicktest" = callPackage
@@ -226657,6 +229545,7 @@ self: {
        description = "A reflective batch tester for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "quicktest";
      }) {};
 
   "quickwebapp" = callPackage
@@ -227107,6 +229996,7 @@ self: {
        description = "A Quoridor implementation in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "quoridor-exec";
        broken = true;
      }) {};
 
@@ -227155,6 +230045,7 @@ self: {
        description = "Command line binary for working with the Qux language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qux";
      }) {};
 
   "r-glpk-phonetic-languages-ukrainian-durations" = callPackage
@@ -227178,6 +230069,7 @@ self: {
        description = "Can be used to calculate the durations of the approximations of the Ukrainian phonemes";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pldUkr";
      }) {};
 
   "r3x-haskell-sdk" = callPackage
@@ -227204,6 +230096,7 @@ self: {
          http-types mtl regex-pcre text transformers wai warp
        ];
        license = lib.licenses.bsd3;
+       mainProgram = "r3x-haskell-sdk-exe";
      }) {};
 
   "raaz" = callPackage
@@ -227236,6 +230129,7 @@ self: {
        doHaddock = false;
        description = "Fast and type safe cryptography";
        license = "(Apache-2.0 OR BSD-3-Clause)";
+       mainProgram = "raaz";
      }) {};
 
   "rabocsv2qif" = callPackage
@@ -227254,6 +230148,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "A library and program to create QIF files from Rabobank CSV exports";
        license = "GPL";
+       mainProgram = "rabocsv2qif";
      }) {};
 
   "rad" = callPackage
@@ -227345,6 +230240,7 @@ self: {
        description = "Command-line tool for emitting numbers in various bases";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "radix";
        broken = true;
      }) {};
 
@@ -227577,6 +230473,7 @@ self: {
        description = "distributed-process node";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "raketka";
      }) {};
 
   "rakhana" = callPackage
@@ -227720,8 +230617,8 @@ self: {
     ({ mkDerivation, base, criterion, hspec }:
      mkDerivation {
        pname = "rampart";
-       version = "2.0.0.0";
-       sha256 = "1hmn6dm5x2n9mn31lwa3dg77plahqmfj0h6s2h3v5y09d7s2fjhv";
+       version = "2.0.0.1";
+       sha256 = "051qiv8jqjrh79drgrdaa72qmsxb4pwizpi576c8pcgpg6ld6ilv";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec ];
        benchmarkHaskellDepends = [ base criterion ];
@@ -227773,6 +230670,7 @@ self: {
        description = "Program for picking a random file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "randfile";
        broken = true;
      }) {};
 
@@ -228065,6 +230963,7 @@ self: {
        testHaskellDepends = [ base containers mtl QuickCheck ];
        description = "Generate random strings with specific qualities";
        license = lib.licenses.bsd3;
+       mainProgram = "readme-example";
      }) {};
 
   "random-tree" = callPackage
@@ -228101,6 +231000,7 @@ self: {
        testHaskellDepends = [ base directory HUnit random ];
        description = "\"Uniform RNG => Non-Uniform RNGs\"";
        license = lib.licenses.mit;
+       mainProgram = "Gen";
      }) {};
 
   "randomgen" = callPackage
@@ -228119,6 +231019,7 @@ self: {
        executableSystemDepends = [ openssl ];
        description = "A fast, SMP parallel random data generator";
        license = lib.licenses.bsd3;
+       mainProgram = "randomgen";
      }) {inherit (pkgs) openssl;};
 
   "randproc" = callPackage
@@ -228143,6 +231044,7 @@ self: {
        executableHaskellDepends = [ base random X11 ];
        description = "Set the background of your root window to a random colour";
        license = lib.licenses.publicDomain;
+       mainProgram = "randsolid";
      }) {};
 
   "range" = callPackage
@@ -228256,6 +231158,7 @@ self: {
        description = "Find the rank product of a data set";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rank-product";
        broken = true;
      }) {};
 
@@ -228375,6 +231278,7 @@ self: {
        description = "Example user config for Rasa";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rasa";
      }) {};
 
   "rasa-ext-bufs" = callPackage
@@ -228556,6 +231460,7 @@ self: {
        description = "A command-line client for Reddit";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rascal";
      }) {};
 
   "rasterific-svg" = callPackage
@@ -228583,6 +231488,7 @@ self: {
        ];
        description = "SVG renderer based on Rasterific";
        license = lib.licenses.bsd3;
+       mainProgram = "svgrender";
      }) {};
 
   "rate-limit" = callPackage
@@ -228603,8 +231509,8 @@ self: {
      }:
      mkDerivation {
        pname = "ratel";
-       version = "2.0.0.0";
-       sha256 = "02pkc0mkzxvv07kzwsrxp1hlgb5gypxc7phsv85k9kr6vvkh58jf";
+       version = "2.0.0.2";
+       sha256 = "1z5wla26c11dvx0rymp1r5v62vwf8w71jymjlbvmiqh0dxlp4pf3";
        libraryHaskellDepends = [
          aeson base bytestring case-insensitive containers http-client
          http-client-tls http-types uuid
@@ -228773,6 +231679,7 @@ self: {
        description = "Parse and generate Rocket League replays";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rattletrap";
        broken = true;
      }) {};
 
@@ -228795,6 +231702,7 @@ self: {
        description = "Parse and generate Rocket League replays";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rattletrap";
        broken = true;
      }) {};
 
@@ -229033,6 +231941,7 @@ self: {
        description = "Reservoir Computing, fast RNNs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ntc";
      }) {};
 
   "rclient" = callPackage
@@ -229123,6 +232032,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion deepseq text ];
        description = "A library for RDF processing in Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "rdf4h";
      }) {};
 
   "rdioh" = callPackage
@@ -229250,6 +232160,7 @@ self: {
        description = "react-tutorial web server";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "server";
        broken = true;
      }) {};
 
@@ -229266,6 +232177,7 @@ self: {
        description = "pluggable pure logic serializable reactor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reaction-logic-test";
        broken = true;
      }) {};
 
@@ -229319,9 +232231,7 @@ self: {
        ];
        description = "Programmatically edit MIDI events via ALSA and reactive-banana";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -229578,6 +232488,7 @@ self: {
        description = "Reactive programming via imperative threads";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-sdl";
        broken = true;
      }) {};
 
@@ -229596,7 +232507,7 @@ self: {
        ];
        description = "An alternate implementation of push-pull FRP";
        license = "GPL";
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "reactor" = callPackage
@@ -229650,6 +232561,7 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "read-ctags";
        broken = true;
      }) {};
 
@@ -229711,6 +232623,7 @@ self: {
        description = "Extracts text of main article from HTML document";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readability";
        broken = true;
      }) {};
 
@@ -229788,6 +232701,7 @@ self: {
        description = "Readline effect for in-other-words";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "echo-repl";
      }) {};
 
   "readline-statevar" = callPackage
@@ -229823,6 +232737,7 @@ self: {
        description = "Literate programming support";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme-lhs-example";
        broken = true;
      }) {};
 
@@ -229838,6 +232753,7 @@ self: {
        description = "Read and pretty print Python bytecode (.pyc) files.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readpyc";
      }) {};
 
   "readshp" = callPackage
@@ -230135,6 +233051,7 @@ self: {
        testHaskellDepends = [ base extra filepath record-hasfield ];
        description = "Preprocessor to allow record.field syntax";
        license = lib.licenses.bsd3;
+       mainProgram = "record-dot-preprocessor";
      }) {};
 
   "record-encode" = callPackage
@@ -230191,6 +233108,21 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "record-impl" = callPackage
+    ({ mkDerivation, base, containers, lens, template-haskell, time }:
+     mkDerivation {
+       pname = "record-impl";
+       version = "0.0.0.1";
+       sha256 = "0rbbd3bbkjs5ljda6vnilqjvm0682kxh2pv3lyagy1iq5n717bk6";
+       libraryHaskellDepends = [
+         base containers lens template-haskell time
+       ];
+       testHaskellDepends = [ base time ];
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "record-operations" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -230220,6 +233152,7 @@ self: {
        description = "Compiler preprocessor introducing a syntactic extension for anonymous records";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "record-preprocessor";
      }) {};
 
   "record-syntax" = callPackage
@@ -230412,6 +233345,7 @@ self: {
        ];
        description = "Count lines in files and display them hierarchically";
        license = lib.licenses.bsd3;
+       mainProgram = "recursive-line-count";
      }) {};
 
   "recursive-zipper" = callPackage
@@ -230514,6 +233448,7 @@ self: {
        ];
        description = "hide secret text on the terminal";
        license = lib.licenses.mit;
+       mainProgram = "redact";
      }) {};
 
   "reddit" = callPackage
@@ -230710,6 +233645,7 @@ self: {
        ];
        description = "software build system, make replacement, implementation of djb's redo";
        license = lib.licenses.publicDomain;
+       mainProgram = "redo";
      }) {};
 
   "reduce-equations" = callPackage
@@ -230736,6 +233672,7 @@ self: {
        description = "Simplify a set of equations by removing redundancies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reduce-equations";
      }) {};
 
   "reducers" = callPackage
@@ -230959,6 +233896,7 @@ self: {
        description = "A command-line tool for pasting to https://www.refheap.com";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "refh";
      }) {};
 
   "refined" = callPackage
@@ -231080,8 +234018,8 @@ self: {
        pname = "reflex";
        version = "0.8.2.0";
        sha256 = "1hvagxcs413bqairxf77vp19484mxnbfckhd44wv22ncwfh5mq6d";
-       revision = "1";
-       editedCabalFile = "194c0y2asv8z64hxs6cppjrg0m1r3ipp9565aj6dac63dqf8j29l";
+       revision = "2";
+       editedCabalFile = "1msjk8bk59dv1pm90l2hxkrl185aj4xblzgc7nkwn7x31ykcnhyw";
        libraryHaskellDepends = [
          base bifunctors comonad constraints constraints-extras containers
          data-default dependent-map dependent-sum exception-transformers
@@ -231162,6 +234100,7 @@ self: {
        description = "Reflex interface to `wai`";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "reflex-basic-host" = callPackage
@@ -231203,8 +234142,8 @@ self: {
        ];
        description = "Functional Reactive Web Apps with Reflex";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
-       maintainers = with lib.maintainers; [ maralorn ];
+       badPlatforms = [ "aarch64-linux" ] ++ lib.platforms.darwin;
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "reflex-dom-ace" = callPackage
@@ -231319,8 +234258,9 @@ self: {
        executableHaskellDepends = [ base reflex-dom text ];
        description = "A reflex-dom widget to draw on a canvas with a fragment shader program";
        license = lib.licenses.mit;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       badPlatforms = [ "aarch64-linux" ] ++ lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "demo";
        broken = true;
      }) {};
 
@@ -231431,16 +234371,16 @@ self: {
 
   "reflex-dom-th" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, filepath
-     , hspec, megaparsec, reflex-dom-core, stm, tasty, tasty-golden
+     , hspec, megaparsec, mtl, reflex-dom-core, stm, tasty, tasty-golden
      , tasty-hspec, template-haskell, text, th-lift-instances
      }:
      mkDerivation {
        pname = "reflex-dom-th";
-       version = "0.3.0.1";
-       sha256 = "1dpzsgix1ldv7n8z8k4pbs3awjzyhyizrd047kx005kz2b1q1ban";
+       version = "0.3.2";
+       sha256 = "1n8qad7pf63mfsip1mgzqc6a15svaxba3cpl65m7993hfwpx3biq";
        libraryHaskellDepends = [
-         array base containers megaparsec reflex-dom-core template-haskell
-         text th-lift-instances
+         array base containers megaparsec mtl reflex-dom-core
+         template-haskell text th-lift-instances
        ];
        testHaskellDepends = [
          base bytestring filepath hspec megaparsec stm tasty tasty-golden
@@ -231530,6 +234470,7 @@ self: {
        description = "Interact with a GADT API in your reflex-dom application";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme";
        broken = true;
      }) {};
 
@@ -231559,6 +234500,7 @@ self: {
        description = "A GHCi widget library for use in reflex applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reflex-ghci";
      }) {};
 
   "reflex-gi-gtk" = callPackage
@@ -231587,6 +234529,7 @@ self: {
        description = "Helper functions to use reflex with gi-gtk";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reflex-gi-gtk-example";
        broken = true;
      }) {};
 
@@ -231702,7 +234645,7 @@ self: {
        ];
        description = "Helper widgets for reflex-localize";
        license = lib.licenses.mit;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       badPlatforms = [ "aarch64-linux" ] ++ lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -231764,6 +234707,7 @@ self: {
        description = "Reflex FRP interface for running system processes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme";
      }) {};
 
   "reflex-sdl2" = callPackage
@@ -231784,6 +234728,7 @@ self: {
        description = "SDL2 and reflex FRP";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reflex-sdl2-exe";
        broken = true;
      }) {};
 
@@ -231850,6 +234795,7 @@ self: {
        description = "Reflex FRP host and widgets for VTY applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -232309,6 +235255,7 @@ self: {
        description = "From a regex, generate all possible strings it can match";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "genex";
      }) {};
 
   "regex-parsec" = callPackage
@@ -232438,6 +235385,7 @@ self: {
        description = "Unit tests for the plaform's Posix regex library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "regex-posix-unittest";
        broken = true;
      }) {};
 
@@ -232455,7 +235403,7 @@ self: {
        description = "Bindings to Rust's regex library";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
        broken = true;
      }) {inherit (pkgs) rure;};
 
@@ -232561,6 +235509,7 @@ self: {
        description = "Unit tests for the regex-tdfa";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "regex-tdfa-unittest";
        broken = true;
      }) {};
 
@@ -232684,6 +235633,7 @@ self: {
        description = "A POSIX, extended regex-engine";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "grecce";
      }) {};
 
   "regexdot" = callPackage
@@ -232857,8 +235807,8 @@ self: {
      }:
      mkDerivation {
        pname = "registry";
-       version = "0.3.0.5";
-       sha256 = "0q2dk0hyq6rdnvvldic4xzp0c28ky5jv7p994qhfbra8a1qkr08z";
+       version = "0.3.0.7";
+       sha256 = "10fa8aw966py3hr6cnisiisf9578kp46kglrpa2q34hzz0q7sr7g";
        libraryHaskellDepends = [
          base containers exceptions hashable mmorph mtl protolude resourcet
          semigroupoids semigroups template-haskell text transformers-base
@@ -232877,6 +235827,29 @@ self: {
        broken = true;
      }) {};
 
+  "registry-aeson" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, hedgehog
+     , protolude, registry, registry-hedgehog, tasty, template-haskell
+     , text, time, transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "registry-aeson";
+       version = "0.2.1.0";
+       sha256 = "09zb32gnfq7fm98vrhp4gzlsx5ghwd34lbvqayzy4sd9msz7y048";
+       libraryHaskellDepends = [
+         aeson base bytestring containers protolude registry
+         template-haskell text transformers unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers hedgehog protolude registry
+         registry-hedgehog tasty template-haskell text time transformers
+         unordered-containers vector
+       ];
+       description = "Aeson encoders / decoders";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "registry-hedgehog" = callPackage
     ({ mkDerivation, base, containers, hedgehog, mmorph, multimap
      , protolude, registry, tasty, tasty-discover, tasty-hedgehog
@@ -232885,8 +235858,8 @@ self: {
      }:
      mkDerivation {
        pname = "registry-hedgehog";
-       version = "0.7.0.0";
-       sha256 = "00k2qsiavi3l5ksgd9xh05lachvhhm7vp7z0cmsy6y5saz5l44hh";
+       version = "0.7.0.2";
+       sha256 = "1vjvpszac038lyjix9mbfixfid224incb3y97s2dhqjirb8dzzbf";
        libraryHaskellDepends = [
          base containers hedgehog mmorph multimap protolude registry tasty
          tasty-discover tasty-hedgehog tasty-th template-haskell text
@@ -232938,8 +235911,8 @@ self: {
      }:
      mkDerivation {
        pname = "registry-messagepack";
-       version = "0.3.0.0";
-       sha256 = "0fwzbxflrkmg4hj9gydpkfnrj2ah10ln4rrm2qp96z1r7wpscvps";
+       version = "0.3.0.1";
+       sha256 = "00h4ics8gavvscp3sjp1j0vyhqj90zi7pmxqhrlzja0fnmhb1brj";
        libraryHaskellDepends = [
          base containers msgpack protolude registry template-haskell text
          transformers vector
@@ -233045,6 +236018,7 @@ self: {
        description = "to make notes and reduce impact on idle time on writing other programms";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reheat";
      }) {};
 
   "rehoo" = callPackage
@@ -233063,6 +236037,7 @@ self: {
        description = "Rebuild default.hoo from many .hoo files in the current directory";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rehoo";
        broken = true;
      }) {};
 
@@ -233082,6 +236057,7 @@ self: {
        description = "Process lists easily";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rei";
        broken = true;
      }) {};
 
@@ -233112,6 +236088,7 @@ self: {
        description = "Serialize data";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reify";
        broken = true;
      }) {};
 
@@ -233154,7 +236131,7 @@ self: {
        ];
        description = "Hey! Hey! Can u rel8?";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "relacion" = callPackage
@@ -233396,7 +236373,8 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Automation of Haskell package release process";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "releaser";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "relevant-time" = callPackage
@@ -233470,6 +236448,7 @@ self: {
        description = "A web based Haskell IDE";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reload-exe";
      }) {};
 
   "reloto" = callPackage
@@ -233531,6 +236510,30 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "relude_1_1_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, doctest
+     , ghc-prim, Glob, hashable, hedgehog, mtl, stm, tasty-bench, text
+     , transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "relude";
+       version = "1.1.0.0";
+       sha256 = "02dn99v2qmykj0l1qmn15k36hyxccy71b7iqavfk24zgjf5g07dm";
+       libraryHaskellDepends = [
+         base bytestring containers deepseq ghc-prim hashable mtl stm text
+         transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         base bytestring containers doctest Glob hedgehog text
+       ];
+       benchmarkHaskellDepends = [
+         base tasty-bench unordered-containers
+       ];
+       description = "Safe, performant, user-friendly and lightweight Haskell Standard Library";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "remark" = callPackage
     ({ mkDerivation, base, GenericPretty, tasty, tasty-golden
      , tasty-hunit
@@ -233549,6 +236552,7 @@ self: {
        description = "A DSL for marking student work";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "remark";
        broken = true;
      }) {};
 
@@ -233572,6 +236576,7 @@ self: {
        description = "A DSL for marking student work";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "remarks";
        broken = true;
      }) {};
 
@@ -233632,6 +236637,7 @@ self: {
        description = "Interface to ghci debugger";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "remote-debugger";
        broken = true;
      }) {};
 
@@ -234107,6 +237113,7 @@ self: {
        description = "Provides high-level access to webcams";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "repl" = callPackage
@@ -234173,7 +237180,7 @@ self: {
        testHaskellDepends = [ base bytestring Cabal megaparsec text ];
        description = "Find, replace, and split string patterns with Megaparsec parsers (instead of regex)";
        license = lib.licenses.bsd2;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "replica" = callPackage
@@ -234224,6 +237231,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "replicant";
      }) {};
 
   "repline" = callPackage
@@ -234269,6 +237277,7 @@ self: {
        description = "Blogging module using blaze html for markup";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rbb";
      }) {};
 
   "repr" = callPackage
@@ -234411,7 +237420,7 @@ self: {
        doCheck = false;
        description = "HTTP client library";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "req_3_12_0" = callPackage
@@ -234444,7 +237453,7 @@ self: {
        description = "HTTP client library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "req-conduit" = callPackage
@@ -234492,6 +237501,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Provides OAuth2 authentication for use with Req";
        license = lib.licenses.mit;
+       mainProgram = "req-oauth2-app";
      }) {};
 
   "req-url-extra" = callPackage
@@ -234508,6 +237518,7 @@ self: {
        description = "Provides URI/URL helper functions for use with Req";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sample";
        broken = true;
      }) {};
 
@@ -234715,6 +237726,7 @@ self: {
        ];
        description = "Reserve reloads web applications";
        license = lib.licenses.mit;
+       mainProgram = "reserve";
      }) {};
 
   "reservoir" = callPackage
@@ -234753,6 +237765,7 @@ self: {
        executableHaskellDepends = [ base comfort-array lapack ];
        description = "Compute total resistance of a cube of resistors";
        license = lib.licenses.bsd3;
+       mainProgram = "resistor-cube";
      }) {};
 
   "resolv_0_1_1_2" = callPackage
@@ -234830,6 +237843,7 @@ self: {
        description = "Remove trivial conflict markers in a git repository";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "resolve-trivial-conflicts";
        broken = true;
      }) {};
 
@@ -234865,6 +237879,7 @@ self: {
        description = "Embed data files via C and FFI";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "resource-embed";
        broken = true;
      }) {};
 
@@ -234884,12 +237899,12 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "resource-pool_0_3_0_0" = callPackage
+  "resource-pool_0_3_1_0" = callPackage
     ({ mkDerivation, base, primitive, time }:
      mkDerivation {
        pname = "resource-pool";
-       version = "0.3.0.0";
-       sha256 = "04g2hwjd8w5nwxlfkj33rv11n78bb1knr5fwy4l19gsg1nm9j39v";
+       version = "0.3.1.0";
+       sha256 = "0klcyl0x15a0h73sn6176ma87cgb4n8g2szz54b5xzr60pws057y";
        libraryHaskellDepends = [ base primitive time ];
        description = "A high-performance striped resource pooling implementation";
        license = lib.licenses.bsd3;
@@ -235015,6 +238030,7 @@ self: {
        description = "process and route HTTP requests and generate responses on top of WAI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -235089,6 +238105,7 @@ self: {
        description = "Example project for rest";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rest-example-gen";
      }) {};
 
   "rest-gen" = callPackage
@@ -235143,8 +238160,8 @@ self: {
      }:
      mkDerivation {
        pname = "rest-rewrite";
-       version = "0.3.0";
-       sha256 = "1j4ja0fv0jgjxbi4yz06pgplw57vfi5d7h8swc0ip2cnkzsi4zjs";
+       version = "0.4.0";
+       sha256 = "0vvb4jk0s699h4dcdls1yxzyaja1gwpqdchfy5wbg0fybfw94pr5";
        libraryHaskellDepends = [
          base containers hashable monad-loops mtl parsec process QuickCheck
          text time unordered-containers
@@ -235318,6 +238335,7 @@ self: {
        description = "Convert between camel case and separated words style";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "restyle";
        broken = true;
      }) {};
 
@@ -235575,6 +238593,7 @@ self: {
        description = "Retry failed commands";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "retryer";
        broken = true;
      }) {};
 
@@ -235584,8 +238603,8 @@ self: {
        pname = "rev-state";
        version = "0.1.2";
        sha256 = "06gry2ysvdg5q0b86gr8i86xsbxw2yrnld9g7rcp7mppswwhw1zf";
-       revision = "2";
-       editedCabalFile = "0dfiwf4808vjhayv7xr058rzwl6jmsmhzy03mk48m9kmlqibk3fy";
+       revision = "3";
+       editedCabalFile = "1w2kry4a801l6acimz3b82f3666fx62zzw5q9si1ahlf3mrkr7hk";
        libraryHaskellDepends = [ base mtl ];
        testHaskellDepends = [ base ];
        description = "Reverse State monad transformer";
@@ -235603,6 +238622,7 @@ self: {
        executableHaskellDepends = [ base old-time ];
        description = "A French revolutionary decimal time (metric) clock";
        license = "GPL";
+       mainProgram = "revdectime";
      }) {};
 
   "reverse-apply" = callPackage
@@ -235667,6 +238687,7 @@ self: {
        description = "Text-only reversi (aka othelo) game";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reversi";
        broken = true;
      }) {};
 
@@ -235684,6 +238705,7 @@ self: {
        description = "open file and rewrite it with new contents";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rewrite";
      }) {};
 
   "rewrite-inspector" = callPackage
@@ -235753,6 +238775,7 @@ self: {
        description = "Github resume generator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rezoom";
      }) {};
 
   "rfc" = callPackage
@@ -236008,6 +239031,7 @@ self: {
        description = "Bugzilla query tool";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rhbzquery";
        broken = true;
      }) {};
 
@@ -236026,7 +239050,7 @@ self: {
        ];
        description = "Functional Reactive Programming with type-level clocks";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "rhine-gloss" = callPackage
@@ -236041,7 +239065,8 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Gloss backend for Rhine";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       mainProgram = "rhine-gloss-gears";
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "rhythm-game-tutorial" = callPackage
@@ -236128,6 +239153,7 @@ self: {
        description = "Lenses for riak-protobuf";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "generate";
        broken = true;
      }) {};
 
@@ -236320,8 +239346,8 @@ self: {
      }:
      mkDerivation {
        pname = "ridley";
-       version = "0.3.3.0";
-       sha256 = "060nnwhrpk77d97plg2wz9yk8q8adl5b7wj159mdq249jsx7hw24";
+       version = "0.3.3.1";
+       sha256 = "16kdsnh22s85xpqycbkjdw35vc1qwg6jl8mxlwgcy5053984amzj";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -236348,8 +239374,8 @@ self: {
      }:
      mkDerivation {
        pname = "ridley-extras";
-       version = "0.1.2.0";
-       sha256 = "086wsj7xsxk8wzj2f6hc7qhklf3mm3swanhddhjvwj0fnnw5fha4";
+       version = "0.1.3.0";
+       sha256 = "0afzwmd5arvxdsjcz2kwfr715ayn5dlz2mk9wh01wq92z3d5gd04";
        libraryHaskellDepends = [
          base ekg-prometheus-adapter microlens mtl prometheus ridley shelly
          text transformers
@@ -236388,6 +239414,7 @@ self: {
        description = "A Riemann client for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "riemann-client";
        broken = true;
      }) {};
 
@@ -236519,6 +239546,7 @@ self: {
        executableHaskellDepends = [ base optparse-simple resourcet rio ];
        description = "Generic App type for rio";
        license = lib.licenses.bsd3;
+       mainProgram = "rio-app-example";
      }) {};
 
   "rio-orphans" = callPackage
@@ -236590,6 +239618,7 @@ self: {
        description = "A library for process pools coupled with asynchronous message queues";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rio-process-pool-memleak-test";
      }) {};
 
   "riot" = callPackage
@@ -236610,6 +239639,7 @@ self: {
        description = "Riot is an Information Organisation Tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "riot";
      }) {inherit (pkgs) ncurses;};
 
   "ripple" = callPackage
@@ -236683,6 +239713,7 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "Reduced instruction set i386 simulator";
        license = lib.licenses.bsd3;
+       mainProgram = "risc386";
      }) {};
 
   "riscv-isa" = callPackage
@@ -236748,6 +239779,7 @@ self: {
        description = "A project management tool for Haskell applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rivet";
      }) {};
 
   "rivet-adaptor-postgresql" = callPackage
@@ -236772,6 +239804,7 @@ self: {
        executableHaskellDepends = [ base directory filepath ];
        description = "Database migration library; automatic importer";
        license = lib.licenses.bsd3;
+       mainProgram = "rivet-autoimporter";
      }) {};
 
   "rivet-core" = callPackage
@@ -236836,6 +239869,7 @@ self: {
        description = "Collection of Reinforcement Learning algorithms";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -236918,6 +239952,7 @@ self: {
        description = "Ring-LWE/LWR challenges using Lol";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rlwe-challenges";
      }) {};
 
   "rmonad" = callPackage
@@ -237003,6 +240038,7 @@ self: {
        description = "Simple projects generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rob";
      }) {};
 
   "robin" = callPackage
@@ -237023,6 +240059,7 @@ self: {
        description = "A build daemon for Haskell development";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "robin";
        broken = true;
      }) {};
 
@@ -237114,6 +240151,7 @@ self: {
        description = "Gloss interactive demo for roc-cluster package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "roc-cluster-demo";
      }) {};
 
   "roc-id" = callPackage
@@ -237237,6 +240275,7 @@ self: {
        ];
        description = "Sci-fi roguelike game. Client application.";
        license = "unknown";
+       mainProgram = "roguestar";
      }) {};
 
   "roguestar-engine" = callPackage
@@ -237258,6 +240297,7 @@ self: {
        description = "Sci-fi roguelike game. Backend.";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "roguestar-engine";
      }) {};
 
   "roguestar-gl" = callPackage
@@ -237290,6 +240330,7 @@ self: {
        description = "Sci-fi roguelike game. GLUT front-end.";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "roguestar-glut";
      }) {};
 
   "roku-api" = callPackage
@@ -237353,6 +240394,7 @@ self: {
        description = "Simple CLI tool to perform commons tasks such as tracking deploys";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rollbar";
      }) {};
 
   "rollbar-client" = callPackage
@@ -237470,6 +240512,7 @@ self: {
        description = "Playing with applicatives and dice!";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "roller";
        broken = true;
      }) {};
 
@@ -237649,24 +240692,23 @@ self: {
      }) {};
 
   "rosa" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, directory, lens
-     , namecoin-update, optparse-applicative, text, unordered-containers
-     , uri-encode, vector, wreq
+    ({ mkDerivation, aeson, base, bytestring, directory
+     , namecoin-update, optparse-applicative, text, uri-encode, vector
      }:
      mkDerivation {
        pname = "rosa";
-       version = "0.5.0.1";
-       sha256 = "1nk56nm6gcrcgi2i3x683i0ygbl8x5qc3xqhq14n2s5l45fmgw10";
+       version = "0.6.0.0";
+       sha256 = "1mbyl36pw9l6rjjz79b0fnnbhjnyf4s1pmw9frq95znrvsfasd1n";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         aeson base bytestring directory lens namecoin-update
-         optparse-applicative text unordered-containers uri-encode vector
-         wreq
+         aeson base bytestring directory namecoin-update
+         optparse-applicative text uri-encode vector
        ];
        description = "Query the namecoin blockchain";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rosa";
      }) {};
 
   "rose" = callPackage
@@ -237788,6 +240830,7 @@ self: {
        description = "Haskell support for the ROS robotics framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "roshask";
      }) {};
 
   "rosmsg" = callPackage
@@ -237845,6 +240888,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "ROS package system information";
        license = lib.licenses.bsd3;
+       mainProgram = "rospkg";
      }) {};
 
   "rosso" = callPackage
@@ -238053,6 +241097,7 @@ self: {
        description = "Utility to generate routes for use with yesod-routes";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "routeGenerator";
      }) {};
 
   "route-planning" = callPackage
@@ -238200,6 +241245,7 @@ self: {
        ];
        description = "Random projection trees";
        license = lib.licenses.bsd3;
+       mainProgram = "rp-tree";
      }) {};
 
   "rpc" = callPackage
@@ -238236,6 +241282,7 @@ self: {
        description = "a remote procedure call framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rpc-test";
        broken = true;
      }) {};
 
@@ -238257,6 +241304,7 @@ self: {
        description = "Receiver Policy Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rpf";
      }) {};
 
   "rpm" = callPackage
@@ -238308,6 +241356,33 @@ self: {
        description = "Sort RPM packages in dependency order";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rpmbuild-order";
+       broken = true;
+     }) {};
+
+  "rpmbuild-order_0_4_8" = callPackage
+    ({ mkDerivation, base, case-insensitive, directory, extra, fgl
+     , filepath, graphviz, hspec, optparse-applicative, simple-cmd
+     , simple-cmd-args, unix
+     }:
+     mkDerivation {
+       pname = "rpmbuild-order";
+       version = "0.4.8";
+       sha256 = "16mzvgx4az9wjy4va85hprj2mqiw1mmc6pw8xjdfv8vxsw17kb16";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base case-insensitive directory extra fgl filepath graphviz
+         simple-cmd
+       ];
+       executableHaskellDepends = [
+         base directory extra fgl optparse-applicative simple-cmd-args
+       ];
+       testHaskellDepends = [ base extra hspec simple-cmd unix ];
+       description = "Sort RPM packages in dependency order";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "rpmbuild-order";
        broken = true;
      }) {};
 
@@ -238491,6 +241566,7 @@ self: {
        description = "watches an RSS/Atom feed and writes it to an IRC channel";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rss2irc";
        broken = true;
      }) {};
 
@@ -238558,9 +241634,7 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Bindings to librtlsdr";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) rtl-sdr;};
 
   "rtnetlink" = callPackage
@@ -238661,9 +241735,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Binding to the C++ audio stretching library Rubber Band";
        license = lib.licenses.gpl3Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) rubberband;};
 
   "ruby-marshal" = callPackage
@@ -238758,6 +241830,7 @@ self: {
        description = "Ruler tool for UHC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ruler";
      }) {};
 
   "ruler-core" = callPackage
@@ -238776,6 +241849,7 @@ self: {
        ];
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ruler-core";
      }) {};
 
   "run-haskell-module" = callPackage
@@ -238840,6 +241914,7 @@ self: {
        ];
        description = "runghc replacement for fast repeated runs";
        license = lib.licenses.gpl3Only;
+       mainProgram = "runghc";
      }) {};
 
   "runhs" = callPackage
@@ -238860,6 +241935,7 @@ self: {
        description = "Stack wrapper for single-file Haskell programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "runhs";
        broken = true;
      }) {};
 
@@ -238879,6 +241955,7 @@ self: {
        description = "Run multiple commands, interleaving output and errors";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "runmany";
        broken = true;
      }) {};
 
@@ -238968,6 +242045,7 @@ self: {
        description = "Packet Generation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rws";
        broken = true;
      }) {};
 
@@ -238988,6 +242066,7 @@ self: {
        description = "Pipe interface for Rizin";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -239031,6 +242110,7 @@ self: {
        description = "simple general-purpose s-expressions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-s-expressions";
      }) {};
 
   "s3-signer" = callPackage
@@ -239192,16 +242272,16 @@ self: {
 
   "safe-coupling" = callPackage
     ({ mkDerivation, HUnit, liquid-base, liquid-containers
-     , liquid-prelude, liquidhaskell, probability, sort, tasty
-     , tasty-discover, tasty-hunit
+     , liquid-prelude, liquidhaskell, probability, rest-rewrite, sort
+     , tasty, tasty-discover, tasty-hunit
      }:
      mkDerivation {
        pname = "safe-coupling";
-       version = "0.1.0.0";
-       sha256 = "1hcx4z7i6r7bldkrsyy407l171c0kwkdwxj7cwb9pkfbp6q3jbvz";
+       version = "0.1.0.1";
+       sha256 = "1lwvknf2i1ih3ki7phfvbhh8rqadwdaqpl3vxmx3yj055mhwpdnj";
        libraryHaskellDepends = [
          liquid-base liquid-containers liquid-prelude liquidhaskell
-         probability
+         probability rest-rewrite
        ];
        testHaskellDepends = [
          HUnit liquid-base probability sort tasty tasty-hunit
@@ -239789,6 +242869,7 @@ self: {
        description = "Fast JSON parsing powered by Chad Austin's sajson library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sajson-bench";
        broken = true;
      }) {};
 
@@ -239812,6 +242893,7 @@ self: {
        description = "Compression command-line tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sak";
      }) {};
 
   "sakuraio-platform" = callPackage
@@ -240181,6 +243263,7 @@ self: {
        description = "Conduit interface to SAM/BAM format files through samtools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "samtools-conduit-copy";
      }) {};
 
   "samtools-enumerator" = callPackage
@@ -240265,6 +243348,7 @@ self: {
        description = "Manages Cabal sandboxes to avoid rebuilding packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sandman";
        broken = true;
      }) {};
 
@@ -240359,6 +243443,7 @@ self: {
        ];
        description = "Sandwich integration with Slack";
        license = lib.licenses.bsd3;
+       mainProgram = "sandwich-slack-exe";
      }) {};
 
   "sandwich-webdriver" = callPackage
@@ -240403,6 +243488,7 @@ self: {
        description = "Sandwich integration with Selenium WebDriver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sandwich-webdriver-exe";
      }) {};
 
   "sarasvati" = callPackage
@@ -240495,6 +243581,7 @@ self: {
        description = "A minimal SAT solver";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sat-micro";
      }) {};
 
   "satchmo" = callPackage
@@ -240712,7 +243799,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "sbp_4_3_0" = callPackage
+  "sbp_4_4_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, array, base
      , base64-bytestring, basic-prelude, binary, binary-conduit
      , bytestring, cmdargs, conduit, conduit-extra, data-binary-ieee754
@@ -240721,8 +243808,8 @@ self: {
      }:
      mkDerivation {
        pname = "sbp";
-       version = "4.3.0";
-       sha256 = "0fr9pc4y5wmyvw3ybyl1r7ypqgz5ngki4i0qh8d6qdsqy1m0vckg";
+       version = "4.4.0";
+       sha256 = "1alwz2ch0yb5x2djk2pfba1iiywgkq7qzsk31l4mc8ixy4bcx6sf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -240758,6 +243845,7 @@ self: {
        ];
        description = "SBP to UDP";
        license = lib.licenses.bsd3;
+       mainProgram = "sbp2udp";
      }) {};
 
   "sbv_7_13" = callPackage
@@ -240956,6 +244044,7 @@ self: {
        description = "An interface to the Starcraft II bot API";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sc2hs-demo";
      }) {};
 
   "sc3-rdu" = callPackage
@@ -241026,6 +244115,7 @@ self: {
        description = "Scale an image to a new geometry";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scaleimage";
        broken = true;
      }) {};
 
@@ -241072,6 +244162,7 @@ self: {
        description = "Test webhooks locally";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scalp-webhooks";
      }) {};
 
   "scalpel" = callPackage
@@ -241141,6 +244232,7 @@ self: {
        executableHaskellDepends = [ base parsec ];
        description = "lexical style suggestions for source code";
        license = lib.licenses.bsd3;
+       mainProgram = "scan";
      }) {};
 
   "scan-metadata" = callPackage
@@ -241236,9 +244328,8 @@ self: {
        ];
        description = "Generates unique passwords for various websites from a single password";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "i686-linux" "x86_64-darwin" "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" "armv7l-linux" ];
+       mainProgram = "scat";
      }) {};
 
   "scc" = callPackage
@@ -241272,6 +244363,7 @@ self: {
        description = "Streaming component combinators";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shsh";
        broken = true;
      }) {};
 
@@ -241281,8 +244373,8 @@ self: {
      }:
      mkDerivation {
        pname = "scenegraph";
-       version = "0.2.0.0";
-       sha256 = "0nwaf1wpr8pqwwkxx0zpbkmvn4ww6v3xcv5w7krk02f985ajaq50";
+       version = "0.2.0.1";
+       sha256 = "0qssdwhbvn2fmfwfvi4rf397rfiqrrxq0dsi54gsixclp3djrdm8";
        libraryHaskellDepends = [
          base data-default fgl graphviz lens linear mtl text
        ];
@@ -241368,6 +244460,7 @@ self: {
        description = "Find the ideal lesson layout";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "schedule-planner";
        broken = true;
      }) {};
 
@@ -241413,6 +244506,7 @@ self: {
        description = "An interview scheduler using constraint satisfaction and Google Sheets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scheduler";
      }) {};
 
   "schedyield" = callPackage
@@ -241544,6 +244638,7 @@ self: {
        description = "Converts ScholarlyMarkdown documents to HTML5/LaTeX/Docx format";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scholdoc";
      }) {};
 
   "scholdoc-citeproc" = callPackage
@@ -241578,6 +244673,7 @@ self: {
        description = "Scholdoc fork of pandoc-citeproc";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scholdoc-citeproc";
      }) {};
 
   "scholdoc-texmath" = callPackage
@@ -241677,6 +244773,7 @@ self: {
        description = "Haskell query for SciDB via shim";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hquery";
        broken = true;
      }) {};
 
@@ -241799,6 +244896,7 @@ self: {
        description = "Haskell IDE library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scion-server";
      }) {};
 
   "scion-browser" = callPackage
@@ -241834,6 +244932,7 @@ self: {
        description = "Command-line interface for browsing and searching packages documentation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scion-browser";
      }) {};
 
   "scons2dot" = callPackage
@@ -241848,6 +244947,7 @@ self: {
        description = "Generates graphviz file of scons dependency information";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scons2dot";
        broken = true;
      }) {};
 
@@ -241891,6 +244991,7 @@ self: {
        description = "An interactive renderer for plotting time-series data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scope-cairo";
      }) {};
 
   "scottish" = callPackage
@@ -241924,8 +245025,8 @@ self: {
        pname = "scotty";
        version = "0.12";
        sha256 = "1lpggpdzgjk23mq7aa64yylds5dbm4ynhcvbarqihjxabvh7xmz1";
-       revision = "6";
-       editedCabalFile = "15gwvx9gdk4vxh1x2n5xvnrix8m0wl96a4aqbdmdfrka43sywfma";
+       revision = "7";
+       editedCabalFile = "1i8icc612w4dbmqmnf99drqpmjvhjnkmqgk9xr63amj8jkz5lp4m";
        libraryHaskellDepends = [
          aeson base base-compat-batteries blaze-builder bytestring
          case-insensitive data-default-class exceptions fail http-types
@@ -242052,6 +245153,7 @@ self: {
        description = "Response format helper for the Scotty web framework";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scotty-format-example";
        broken = true;
      }) {};
 
@@ -242224,6 +245326,7 @@ self: {
        executableHaskellDepends = [ base scotty text transformers ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "web";
        broken = true;
      }) {};
 
@@ -242267,6 +245370,7 @@ self: {
        description = "Scrabble play generation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scrabble-bot";
      }) {};
 
   "scrapbook" = callPackage
@@ -242291,6 +245395,7 @@ self: {
        description = "collect posts of site that is wrote in config yaml using feed or scraping";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scrapbook";
      }) {};
 
   "scrapbook-core" = callPackage
@@ -242362,6 +245467,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Take screenshot and copy it to the system clipboard";
        license = lib.licenses.bsd3;
+       mainProgram = "screenshot-to-clipboard";
      }) {};
 
   "script-monad" = callPackage
@@ -242389,6 +245495,7 @@ self: {
        description = "Stack of error, reader, writer, state, and prompt monad transformers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "script-monad-exe";
        broken = true;
      }) {};
 
@@ -242413,6 +245520,7 @@ self: {
        description = "Scrobbling server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scrobble-server";
        broken = true;
      }) {};
 
@@ -242435,6 +245543,7 @@ self: {
        description = "scroll(6), a roguelike game";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scroll";
      }) {};
 
   "scroll-list" = callPackage
@@ -242467,9 +245576,7 @@ self: {
        ];
        description = "Stronger password hashing via sequential memory-hard functions";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "i686-linux" "x86_64-darwin" "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" "armv7l-linux" ];
      }) {};
 
   "scrz" = callPackage
@@ -242494,6 +245601,7 @@ self: {
        description = "Process management and supervision daemon";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scrz";
        broken = true;
      }) {};
 
@@ -242528,6 +245636,7 @@ self: {
        description = "Fast CSV lexing on ByteString";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scythe";
        broken = true;
      }) {};
 
@@ -242551,6 +245660,7 @@ self: {
        description = "Automatic generation of Isabelle/HOL correctness proofs for security protocols";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scyther-proof";
        broken = true;
      }) {};
 
@@ -242602,6 +245712,7 @@ self: {
        executableHaskellDepends = [ base pretty-simple sdl2 text ];
        description = "small testing tool for sdl2 and accelerated drivers";
        license = lib.licenses.mit;
+       mainProgram = "sdl-try-drivers";
      }) {};
 
   "sdl2" = callPackage
@@ -242633,6 +245744,8 @@ self: {
        pname = "sdl2";
        version = "2.5.3.2";
        sha256 = "06v3zdfashd8f2jhrl2gfgkp7ykjsc06yvw2l4n3sy1p9xxk9q2y";
+       revision = "1";
+       editedCabalFile = "1v0y88c86d0f9p0ymi9hcq5hlzdyglrvhj4sxv0bkpjkpqavn5l9";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -242735,6 +245848,7 @@ self: {
        executablePkgconfigDepends = [ SDL2 SDL2_gfx ];
        description = "Haskell bindings to SDL2_gfx";
        license = lib.licenses.mit;
+       mainProgram = "sdl2-gfx-example";
      }) {inherit (pkgs) SDL2; inherit (pkgs) SDL2_gfx;};
 
   "sdl2-image" = callPackage
@@ -242757,6 +245871,7 @@ self: {
        executablePkgconfigDepends = [ SDL2 SDL2_image ];
        description = "Haskell bindings to SDL2_image";
        license = lib.licenses.mit;
+       mainProgram = "sdl2-image-example";
      }) {inherit (pkgs) SDL2; inherit (pkgs) SDL2_image;};
 
   "sdl2-mixer" = callPackage
@@ -242780,9 +245895,7 @@ self: {
        executablePkgconfigDepends = [ SDL2_mixer ];
        description = "Haskell bindings to SDL2_mixer";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) SDL2_mixer;};
 
   "sdl2-sprite" = callPackage
@@ -242803,6 +245916,7 @@ self: {
        ];
        description = "Sprite previewer/animator";
        license = lib.licenses.bsd3;
+       mainProgram = "sdl2-sprite";
      }) {};
 
   "sdl2-ttf" = callPackage
@@ -242822,9 +245936,7 @@ self: {
        libraryPkgconfigDepends = [ SDL2 SDL2_ttf ];
        description = "Bindings to SDL2_ttf";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) SDL2; inherit (pkgs) SDL2_ttf;};
 
   "sdnv" = callPackage
@@ -243013,7 +246125,7 @@ self: {
        ];
        description = "A software defined radio library";
        license = lib.licenses.bsd3;
-       platforms = [ "x86_64-darwin" "x86_64-linux" ];
+       platforms = lib.platforms.x86_64;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -243158,6 +246270,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "A Haskell implementation of the SECD abstract machine";
        license = lib.licenses.bsd3;
+       mainProgram = "secdi";
      }) {};
 
   "secdh" = callPackage
@@ -243174,6 +246287,7 @@ self: {
        description = "SECDH Machine Simulator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "secdh";
        broken = true;
      }) {};
 
@@ -243310,6 +246424,7 @@ self: {
        description = "Secret Santa game assigner using QR-Codes";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "secret-santa";
        broken = true;
      }) {};
 
@@ -243345,6 +246460,7 @@ self: {
        description = "Example of writing \"secure\" file removal in Haskell rather than C";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "secrm";
      }) {};
 
   "secure-memory" = callPackage
@@ -243372,6 +246488,7 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Securely allocated and deallocated memory";
        license = lib.licenses.mpl20;
+       mainProgram = "checkpw";
      }) {};
 
   "secure-sockets" = callPackage
@@ -243627,6 +246744,7 @@ self: {
        description = "A Haskell library to make self-extracting executables";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "self-bundle";
      }) {};
 
   "selfrestart" = callPackage
@@ -243716,6 +246834,7 @@ self: {
        description = "Evaluate code snippets in Literate Haskell";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "semdoc";
        broken = true;
      }) {};
 
@@ -244111,11 +247230,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Automatically run Hspec tests on file modifications";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-darwin" "aarch64-linux" "armv7l-linux" "i686-linux"
-         "x86_64-linux"
-       ];
-       maintainers = with lib.maintainers; [ libjared ];
+       badPlatforms = lib.platforms.darwin;
+       maintainers = [ lib.maintainers.libjared ];
      }) {};
 
   "sensenet" = callPackage
@@ -244134,6 +247250,7 @@ self: {
        description = "Distributed sensor network for the raspberry pi";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sensenet";
      }) {};
 
   "sensu-run" = callPackage
@@ -244156,6 +247273,7 @@ self: {
        description = "A tool to send command execution results to Sensu";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sensu-run";
        broken = true;
      }) {};
 
@@ -244245,6 +247363,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Check for common SEO mistakes on CI";
        license = lib.licenses.mit;
+       mainProgram = "seocheck";
      }) {};
 
   "seonbi" = callPackage
@@ -244345,6 +247464,7 @@ self: {
        libraryHaskellDepends = [ base bytestring vector ];
        description = "Sequence Alignment";
        license = lib.licenses.bsd3;
+       platforms = lib.platforms.x86;
      }) {};
 
   "seqid" = callPackage
@@ -244719,6 +247839,7 @@ self: {
        description = "Simple project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "serv" = callPackage
@@ -244807,6 +247928,7 @@ self: {
        ];
        description = "Servant support for JuicyPixels";
        license = lib.licenses.bsd3;
+       mainProgram = "image-conversion";
      }) {};
 
   "servant-aeson-specs" = callPackage
@@ -244969,6 +248091,7 @@ self: {
        description = "Authentication via HMAC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -245314,6 +248437,7 @@ self: {
        description = "Command line interface for Servant API clients";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "greet-cli";
      }) {};
 
   "servant-client" = callPackage
@@ -245548,6 +248672,7 @@ self: {
        ];
        description = "generate API docs for your servant webservice";
        license = lib.licenses.bsd3;
+       mainProgram = "greet-docs";
      }) {};
 
   "servant-docs-simple" = callPackage
@@ -245592,6 +248717,7 @@ self: {
        description = "Combinators for rendering EDE templates in servant web applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "servant-ede-example";
      }) {};
 
   "servant-ekg" = callPackage
@@ -245855,6 +248981,7 @@ self: {
        description = "Bindings to GitHub API using servant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
        broken = true;
      }) {};
 
@@ -245950,6 +249077,7 @@ self: {
        description = "A library for using servant with htmx";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "servant-htmx-exe";
        broken = true;
      }) {};
 
@@ -246248,6 +249376,7 @@ self: {
        description = "Derive a mock server for free from your servant API types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mock-app";
        broken = true;
      }) {};
 
@@ -246884,6 +250013,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Automatically generate Servant API modules";
        license = lib.licenses.mit;
+       mainProgram = "servant-serf";
      }) {};
 
   "servant-server" = callPackage
@@ -246923,6 +250053,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A family of combinators for defining webservices APIs and serving them";
        license = lib.licenses.bsd3;
+       mainProgram = "greet";
      }) {};
 
   "servant-server-namedargs" = callPackage
@@ -247003,6 +250134,7 @@ self: {
        description = "A family of combinators for defining webservices APIs and serving them";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snap-greet";
      }) {};
 
   "servant-stache" = callPackage
@@ -247026,6 +250158,7 @@ self: {
        description = "Content-Types for rendering Mustache in servant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -247166,6 +250299,7 @@ self: {
        description = "Servant Stream support for streamly";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "servant-streamly-example";
        broken = true;
      }) {};
 
@@ -247193,6 +250327,7 @@ self: {
        executableHaskellDepends = [ base purescript-bridge ];
        description = "When REST is not enough ...";
        license = lib.licenses.bsd3;
+       mainProgram = "subscriber-psGenerator";
      }) {};
 
   "servant-swagger" = callPackage
@@ -247389,6 +250524,7 @@ self: {
        description = "TypeScript client generation for Servant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "servant-typescript-exe";
      }) {};
 
   "servant-util" = callPackage
@@ -247438,6 +250574,7 @@ self: {
        description = "Servant servers utilities";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "servant-util-examples";
      }) {};
 
   "servant-util-beam-pg" = callPackage
@@ -247469,6 +250606,7 @@ self: {
        description = "Implementation of servant-util primitives for beam-postgres";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "servant-util-beam-pg-examples";
      }) {};
 
   "servant-validate" = callPackage
@@ -247529,6 +250667,7 @@ self: {
        description = "Servant support for delivering WebAssembly";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "exe";
        broken = true;
      }) {};
 
@@ -247689,7 +250828,7 @@ self: {
        description = "Auto-generate a server for your datatype";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
        broken = true;
      }) {};
 
@@ -247920,6 +251059,7 @@ self: {
        ];
        description = "Warp web server with template rendering";
        license = lib.licenses.mit;
+       mainProgram = "servius";
      }) {};
 
   "ses-html" = callPackage
@@ -247992,6 +251132,7 @@ self: {
        description = "Session types library";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test-visualizer";
        broken = true;
      }) {};
 
@@ -248091,6 +251232,8 @@ self: {
        pname = "set-with";
        version = "0.0.1";
        sha256 = "0mkc44gkhjibq3zhxgiw3c7nfy03jmjmrafdr8x9f5ak4l9ns0h4";
+       revision = "1";
+       editedCabalFile = "1g7dal8vm6si1jck42pqwzicdgj8bivjlkdg8p9ywkz5rw4i0575";
        libraryHaskellDepends = [ base containers invariant ];
        testHaskellDepends = [
          base QuickCheck quickcheck-instances tasty tasty-hunit
@@ -248119,6 +251262,7 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "Treating files as sets to perform rapid set manipulation";
        license = lib.licenses.bsd3;
+       mainProgram = "setdown";
      }) {};
 
   "setenv" = callPackage
@@ -248149,6 +251293,7 @@ self: {
        description = "A console interface to the game of Set";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "set-game";
        broken = true;
      }) {};
 
@@ -248204,6 +251349,7 @@ self: {
        ];
        description = "Perform set operations on files";
        license = lib.licenses.mit;
+       mainProgram = "setop";
      }) {};
 
   "setops" = callPackage
@@ -248228,6 +251374,8 @@ self: {
        pname = "sets";
        version = "0.0.6.2";
        sha256 = "0xgk04fvfrl8syyg2cf5s2jazmdasjqh3fdsgamxak2wvjpyvf9l";
+       revision = "1";
+       editedCabalFile = "1qfkr0rcqvqqgnrsjq4blgwha3ylzchcbvhhz65mz44ql71m76g8";
        libraryHaskellDepends = [
          base bytestring commutative composition containers contravariant
          hashable keys mtl QuickCheck semigroupoids semigroups transformers
@@ -248298,6 +251446,7 @@ self: {
        description = "S-Expression parsing/printing made fun and easy";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sexp";
        broken = true;
      }) {};
 
@@ -248345,6 +251494,7 @@ self: {
        executableHaskellDepends = [ base pretty-show ];
        description = "Produce a s-expression representation of Show values";
        license = lib.licenses.bsd3;
+       mainProgram = "sexp-show";
      }) {};
 
   "sexpr" = callPackage
@@ -248377,6 +251527,7 @@ self: {
        testHaskellDepends = [ base data-default hspec megaparsec ];
        description = "Simple s-expression parser";
        license = lib.licenses.mit;
+       mainProgram = "sexpr-parser-z3-demo";
      }) {};
 
   "sexpresso" = callPackage
@@ -248463,6 +251614,7 @@ self: {
        description = "A command line tool to convert TrueType/OpenType fonts to WOFF format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sfnt2woff";
        broken = true;
      }) {inherit (pkgs) zlib;};
 
@@ -248521,6 +251673,7 @@ self: {
        description = "Sgrep - grep Fasta files for sequences matching a regular expression";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sgrep";
      }) {};
 
   "sh2md" = callPackage
@@ -248548,6 +251701,7 @@ self: {
        description = "Record your shell session and print in the markdown format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sh2md";
        broken = true;
      }) {};
 
@@ -248564,6 +251718,7 @@ self: {
        description = "SHA hashes for io-streams";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sha-streams";
        broken = true;
      }) {};
 
@@ -248620,6 +251775,7 @@ self: {
        description = "An automated way to run doctests in files that are changing";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shadower";
        broken = true;
      }) {};
 
@@ -248720,6 +251876,7 @@ self: {
        ];
        description = "Build system library, like Make, but more accurate dependencies";
        license = lib.licenses.bsd3;
+       mainProgram = "shake";
      }) {};
 
   "shake-ats" = callPackage
@@ -248756,7 +251913,7 @@ self: {
        ];
        description = "Build rules for historical benchmarking";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "shake-bindist" = callPackage
@@ -248818,6 +251975,7 @@ self: {
        description = "Utility for building Shake build systems using Cabal sandboxes";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shake-cabal-build";
        broken = true;
      }) {};
 
@@ -249015,6 +252173,7 @@ self: {
        description = "Shake build system on-disk caching";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ex.shake-persist";
        broken = true;
      }) {};
 
@@ -249124,6 +252283,7 @@ self: {
        description = "simple and interactive command-line build tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shaker";
      }) {};
 
   "shakers" = callPackage
@@ -249163,7 +252323,7 @@ self: {
        ];
        description = "A toolkit for making compile-time interpolated templates";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ psibi ];
+       maintainers = [ lib.maintainers.psibi ];
      }) {};
 
   "shakespeare-babel" = callPackage
@@ -249276,6 +252436,7 @@ self: {
        ];
        description = "Shannon-fano compression algorithm in Haskell";
        license = lib.licenses.mit;
+       mainProgram = "shannon-fano";
      }) {};
 
   "shapefile" = callPackage
@@ -249339,6 +252500,7 @@ self: {
        description = "physics engine and other tools for 2D shapes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shapes-bench";
        broken = true;
      }) {};
 
@@ -249360,6 +252522,7 @@ self: {
        description = "demos for the 'shapes' package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shapes-demo";
      }) {};
 
   "shapes-math" = callPackage
@@ -249383,6 +252546,7 @@ self: {
        ];
        description = "faster vector/matrix math using unboxed numbers and Template Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "math-bench";
      }) {};
 
   "sharc-timbre" = callPackage
@@ -249468,6 +252632,7 @@ self: {
        description = "A Haskell preprocessor adding miscellaneous features";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "she";
        broken = true;
      }) {};
 
@@ -249517,6 +252682,7 @@ self: {
        description = "Test webhooks locally";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shelduck";
      }) {};
 
   "shell-conduit" = callPackage
@@ -249662,6 +252828,26 @@ self: {
        testHaskellDepends = [ base doctest Glob ];
        description = "Out of the shell solution for scripting in Haskell";
        license = lib.licenses.mpl20;
+       mainProgram = "readme";
+     }) {};
+
+  "shellmet_0_0_4_1" = callPackage
+    ({ mkDerivation, base, doctest, Glob, markdown-unlit, process, text
+     }:
+     mkDerivation {
+       pname = "shellmet";
+       version = "0.0.4.1";
+       sha256 = "0jd05bazny7y25jnminal5wv30kxg6pzchswxpw5yac027qjagd0";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base process text ];
+       executableHaskellDepends = [ base text ];
+       executableToolDepends = [ markdown-unlit ];
+       testHaskellDepends = [ base doctest Glob ];
+       description = "Out of the shell solution for scripting in Haskell";
+       license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme";
      }) {};
 
   "shellout" = callPackage
@@ -249676,6 +252862,7 @@ self: {
        executableHaskellDepends = [ async base stm text typed-process ];
        description = "A threaded manager for Haskell that can run and stream external process output/err/exits";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "shelltestrunner" = callPackage
@@ -249696,6 +252883,7 @@ self: {
        ];
        description = "Easy, repeatable testing of CLI programs/commands";
        license = "GPL";
+       mainProgram = "shelltest";
      }) {};
 
   "shellwords" = callPackage
@@ -249769,6 +252957,7 @@ self: {
        ];
        description = "A Haskell implementation of the Shen programming language";
        license = lib.licenses.bsd3;
+       mainProgram = "shen";
      }) {};
 
   "shh" = callPackage
@@ -249797,7 +252986,7 @@ self: {
        testToolDepends = [ markdown-unlit ];
        description = "Simple shell scripting from Haskell";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "shh-extras" = callPackage
@@ -249812,7 +253001,7 @@ self: {
        testHaskellDepends = [ base tasty ];
        description = "Utility functions for using shh";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "shift" = callPackage
@@ -249831,6 +253020,7 @@ self: {
        ];
        description = "A tool to quickly switch between directories";
        license = lib.licenses.mit;
+       mainProgram = "teleport-hask";
      }) {};
 
   "shikensu" = callPackage
@@ -249872,6 +253062,7 @@ self: {
        description = "The Reflective Lambda Machine";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shimmer";
        broken = true;
      }) {};
 
@@ -250200,6 +253391,7 @@ self: {
        description = "A simple gtk based Russian Roulette game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "showdown";
      }) {};
 
   "shower" = callPackage
@@ -250225,6 +253417,7 @@ self: {
        ];
        description = "Clean up the formatting of 'show' output";
        license = lib.licenses.bsd3;
+       mainProgram = "shower";
      }) {};
 
   "shpider" = callPackage
@@ -250255,6 +253448,7 @@ self: {
        executableHaskellDepends = [ base mtl ];
        description = "A Haskell pattern splitter with emacs attachments";
        license = lib.licenses.publicDomain;
+       mainProgram = "shplit";
      }) {};
 
   "shqq" = callPackage
@@ -250292,6 +253486,7 @@ self: {
        description = "Shuffle tool for UHC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shuffle";
      }) {};
 
   "shunya-library" = callPackage
@@ -250409,6 +253604,7 @@ self: {
        description = "Simple, visual, functional language for learning about recursion";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sifflet";
        broken = true;
      }) {};
 
@@ -250471,6 +253667,7 @@ self: {
        description = "Thom polynomials of second order Thom-Boardman singularities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sigma-ij";
      }) {};
 
   "sign" = callPackage
@@ -250543,6 +253740,7 @@ self: {
        description = "Deterministic serialisation and signatures with proto-lens support";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "signable-haskell-protoc";
        broken = true;
      }) {};
 
@@ -250558,6 +253756,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Multiplatform signal support for Haskell";
        license = lib.licenses.mit;
+       mainProgram = "test";
      }) {};
 
   "signals" = callPackage
@@ -250630,6 +253829,7 @@ self: {
        description = "A Haskell clone of OpenBSD signify";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "signify-hs";
      }) {};
 
   "silently" = callPackage
@@ -250730,6 +253930,7 @@ self: {
        description = "stochastic simulation engine";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "simgi";
      }) {};
 
   "simple" = callPackage
@@ -250765,6 +253966,7 @@ self: {
        description = "A minimalist web framework for the WAI server interface";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "smpl";
      }) {};
 
   "simple-actors" = callPackage
@@ -250797,7 +253999,7 @@ self: {
        ];
        description = "A simple library for affine and vector spaces";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "simple-amount" = callPackage
@@ -251046,6 +254248,7 @@ self: {
        description = "Evaluate a Text to an Integer: \"1 + 1\" -> 2";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Eval";
        broken = true;
      }) {};
 
@@ -251092,6 +254295,7 @@ self: {
        description = "Simple parallel genetic algorithm implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ga-sin-example";
        broken = true;
      }) {};
 
@@ -251113,6 +254317,7 @@ self: {
        ];
        description = "Simple parallel genetic algorithm implementation";
        license = lib.licenses.bsd3;
+       mainProgram = "ga-sin-example";
      }) {};
 
   "simple-get-opt" = callPackage
@@ -251362,6 +254567,7 @@ self: {
        description = "Simplified Pascal language to SSVM compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spc";
      }) {};
 
   "simple-pipe" = callPackage
@@ -251548,6 +254754,7 @@ self: {
        description = "Simple stacked virtual machine: assembler, disassembler, bytecode interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ssvm";
        broken = true;
      }) {};
 
@@ -251759,6 +254966,7 @@ self: {
        executableHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        license = lib.licenses.bsd3;
+       mainProgram = "simplelru-exe";
      }) {};
 
   "simplemesh" = callPackage
@@ -251870,6 +255078,7 @@ self: {
        ];
        description = "A simple markup language that translates to LaTeX";
        license = lib.licenses.gpl3Only;
+       mainProgram = "simplex";
      }) {};
 
   "simplex-basic" = callPackage
@@ -251991,6 +255200,7 @@ self: {
        description = "Simulate sequencing with different models for priming and errors";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "simseq";
      }) {};
 
   "simtreelo" = callPackage
@@ -252040,6 +255250,7 @@ self: {
        executablePkgconfigDepends = [ libXft xext ];
        description = "A programming language for simple GUIs";
        license = lib.licenses.bsd3;
+       mainProgram = "sindre";
      }) {inherit (pkgs.xorg) libXft; xext = null;};
 
   "single-tuple" = callPackage
@@ -252459,6 +255670,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Sixel library to show images in a terminal emulator";
        license = lib.licenses.bsd3;
+       mainProgram = "sixel-exe";
      }) {};
 
   "sixfiguregroup" = callPackage
@@ -252618,6 +255830,7 @@ self: {
        description = "Recursively show space (size and i-nodes) used in subdirectories";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sizes";
        broken = true;
      }) {};
 
@@ -252641,6 +255854,7 @@ self: {
        description = "Simple JavaScript Profiler";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sjsp";
        broken = true;
      }) {};
 
@@ -252699,6 +255913,7 @@ self: {
        description = "a tool to access the OSX keychain";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "skeleton";
      }) {};
 
   "skeletons" = callPackage
@@ -252718,6 +255933,7 @@ self: {
        description = "Manage project skeletons";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "skeletons";
      }) {};
 
   "skell" = callPackage
@@ -252754,6 +255970,7 @@ self: {
        description = "A MyAnimeList.net client.";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mal";
        broken = true;
      }) {};
 
@@ -252872,6 +256089,7 @@ self: {
        ];
        description = "syntax highlighting library";
        license = lib.licenses.gpl2Only;
+       mainProgram = "skylighting";
      }) {};
 
   "skylighting-core" = callPackage
@@ -252985,6 +256203,7 @@ self: {
        description = "Export Skype chat logs to text files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "skypelogexport";
        broken = true;
      }) {ghc-binary = null;};
 
@@ -253049,6 +256268,7 @@ self: {
        description = "Slack notifier for Haskell project";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -253075,6 +256295,7 @@ self: {
          text transformers wreq
        ];
        license = lib.licenses.mit;
+       mainProgram = "slack-progressbar-exe";
      }) {};
 
   "slack-verify" = callPackage
@@ -253151,6 +256372,7 @@ self: {
        description = "A note taking CLI tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "slate";
      }) {};
 
   "slave-thread" = callPackage
@@ -253187,6 +256409,7 @@ self: {
        executableHaskellDepends = [ base time ];
        description = "zZzzZz";
        license = lib.licenses.gpl2Only;
+       mainProgram = "sleep";
      }) {};
 
   "slice-cpp-gen" = callPackage
@@ -253205,6 +256428,7 @@ self: {
        ];
        description = "Generate C++ skeletons from slice files";
        license = lib.licenses.bsd3;
+       mainProgram = "slice-cpp-gen";
      }) {};
 
   "sliceofpy" = callPackage
@@ -253230,6 +256454,7 @@ self: {
        description = "Python-ish slicing traversals for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gen-sliceofpy-examples";
        broken = true;
      }) {};
 
@@ -253268,6 +256493,7 @@ self: {
        description = "ws convert markdown to reveal-js";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "slidemews";
      }) {};
 
   "slim" = callPackage
@@ -253344,6 +256570,7 @@ self: {
        description = "A command line interface to Sloane's OEIS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sloane";
        broken = true;
      }) {};
 
@@ -253363,6 +256590,7 @@ self: {
        ];
        description = "Visualize mathematical function's slope fields";
        license = lib.licenses.gpl3Only;
+       mainProgram = "slope-field";
      }) {};
 
   "slot-lambda" = callPackage
@@ -253444,6 +256672,7 @@ self: {
        testHaskellDepends = [ base hspec text text-icu ];
        description = "Clean URI slugs for Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "slugger";
      }) {};
 
   "slugify" = callPackage
@@ -253481,7 +256710,8 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Handle molecular sequences";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       mainProgram = "slynx";
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "small-bytearray-builder" = callPackage
@@ -253628,6 +256858,7 @@ self: {
        description = "A Haskell port of the smallpt path tracer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "smallpt-hs";
        broken = true;
      }) {};
 
@@ -253692,6 +256923,7 @@ self: {
        description = "A command line tool for working with sets and maps";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "smap";
        broken = true;
      }) {};
 
@@ -253729,6 +256961,7 @@ self: {
        description = "A smarter QuickCheck";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sc-qc";
        broken = true;
      }) {};
 
@@ -253985,6 +257218,7 @@ self: {
        description = "Command line tool for <https://smith.st/ Smith>.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "smith";
      }) {};
 
   "smith-client" = callPackage
@@ -254236,6 +257470,7 @@ self: {
        description = "Listen for SMTP traffic and send it to an MTA script";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "smtp2mta";
      }) {};
 
   "smtps-gmail" = callPackage
@@ -254279,6 +257514,7 @@ self: {
        description = "GHC Source Plugin that helps to manage imports";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "play-smuggler";
        broken = true;
      }) {};
 
@@ -254335,6 +257571,7 @@ self: {
        description = "A basic console snake game";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snake";
        broken = true;
      }) {};
 
@@ -254384,7 +257621,7 @@ self: {
        ];
        description = "Top-level package for the Snap Web Framework";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "snap-accept" = callPackage
@@ -254434,6 +257671,7 @@ self: {
        description = "Command-line tool to manage Snap AuthManager database";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snap-auth-cli";
      }) {};
 
   "snap-blaze" = callPackage
@@ -254760,6 +257998,7 @@ self: {
        ];
        description = "Scaffolding CLI for the Snap Framework";
        license = lib.licenses.bsd3;
+       mainProgram = "snap";
      }) {};
 
   "snap-testing" = callPackage
@@ -255109,6 +258348,7 @@ self: {
        ];
        description = "snaplet-i18n";
        license = lib.licenses.bsd3;
+       mainProgram = "demo";
      }) {};
 
   "snaplet-influxdb" = callPackage
@@ -255772,6 +259012,7 @@ self: {
        executableHaskellDepends = [ base parsec ];
        description = "Extracts labeled snippets of code to files";
        license = lib.licenses.bsd3;
+       mainProgram = "snippet-extractor";
      }) {};
 
   "snm" = callPackage
@@ -255794,6 +259035,7 @@ self: {
        description = "The Simple Nice-Looking Manual Generator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snm";
      }) {};
 
   "snmp" = callPackage
@@ -255836,6 +259078,7 @@ self: {
        description = "Strategic board game of medium complexity";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snorkels";
        broken = true;
      }) {};
 
@@ -255939,6 +259182,7 @@ self: {
        description = "snowflake http server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snowflake-server";
      }) {};
 
   "snowglobe" = callPackage
@@ -255956,6 +259200,7 @@ self: {
        ];
        description = "randomized fractal snowflakes demo";
        license = lib.licenses.gpl3Only;
+       mainProgram = "snowglobe";
      }) {};
 
   "snowtify" = callPackage
@@ -255973,6 +259218,7 @@ self: {
        description = "snowtify send your result of `stack build` (`stack test`) to notify-daemon :dog2:";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snowtify";
        broken = true;
      }) {};
 
@@ -256065,6 +259311,7 @@ self: {
        description = "Tunnel a socket over a single datastream (stdin/stdout)";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sock2stream";
      }) {};
 
   "sockaddr" = callPackage
@@ -256086,13 +259333,15 @@ self: {
        pname = "socket";
        version = "0.8.3.0";
        sha256 = "0gd0rw6mpzlimvcn3jiw7l0q9h4l3rhfr2n5hhg6k0bkklqp6rbr";
+       revision = "1";
+       editedCabalFile = "07n19jbgn6459v13l7x55x8l73d48jrn48dcf4402hnyab1mzhr5";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          async base bytestring QuickCheck tasty tasty-hunit tasty-quickcheck
        ];
        description = "An extensible socket library";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "socket-activation" = callPackage
@@ -256195,6 +259444,7 @@ self: {
        description = "simpe tool to serve piped data over http and websocket";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "socketed";
        broken = true;
      }) {};
 
@@ -256379,6 +259629,7 @@ self: {
        ];
        description = "Generate CSV Exports of your Solana Staking Rewards";
        license = lib.licenses.bsd3;
+       mainProgram = "solana-staking-csvs";
      }) {};
 
   "solar" = callPackage
@@ -256474,6 +259725,7 @@ self: {
        testHaskellDepends = [ base containers QuickCheck ];
        description = "Solving simple games";
        license = lib.licenses.mit;
+       mainProgram = "solve";
      }) {};
 
   "som" = callPackage
@@ -256507,6 +259759,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "some_1_0_4" = callPackage
+    ({ mkDerivation, base, deepseq }:
+     mkDerivation {
+       pname = "some";
+       version = "1.0.4";
+       sha256 = "0x1qivqnayybxa6nbnaqyay73yfglxwb3xwfy03pb6ycs639avs4";
+       libraryHaskellDepends = [ base deepseq ];
+       testHaskellDepends = [ base ];
+       description = "Existential type: Some";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "some-dict-of" = callPackage
     ({ mkDerivation, base, constraints }:
      mkDerivation {
@@ -256538,6 +259803,7 @@ self: {
        description = "Sonic Visualiser";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "svdump";
        broken = true;
      }) {};
 
@@ -256660,6 +259926,7 @@ self: {
        description = "Sort lines per file size";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sorty";
        broken = true;
      }) {};
 
@@ -256733,6 +260000,7 @@ self: {
        ];
        description = "Approximate a song from other pieces of sound";
        license = lib.licenses.bsd3;
+       mainProgram = "sound-collage";
      }) {};
 
   "sounddelay" = callPackage
@@ -256747,6 +260015,7 @@ self: {
        description = "Audio delay line";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "delay";
      }) {};
 
   "soundgen" = callPackage
@@ -256761,6 +260030,7 @@ self: {
        description = "sound generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "soundgen";
      }) {};
 
   "source-code-server" = callPackage
@@ -256785,6 +260055,7 @@ self: {
        description = "The server backend for the source code iPhone app";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "source-code-server";
      }) {};
 
   "source-constraints" = callPackage
@@ -256903,6 +260174,7 @@ self: {
        description = "DCPU-16 architecture utilities for Notch's 0x10c game";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "soyuz";
        broken = true;
      }) {};
 
@@ -256964,7 +260236,8 @@ self: {
        ];
        description = "Gopher server library and daemon";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       mainProgram = "spacecookie";
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "spacefill" = callPackage
@@ -257051,6 +260324,7 @@ self: {
        description = "A simple programming and debugging environment";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spade";
      }) {};
 
   "spake2" = callPackage
@@ -257078,6 +260352,7 @@ self: {
        description = "Implementation of the SPAKE2 Password-Authenticated Key Exchange algorithm";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-spake2-interop-entrypoint";
        broken = true;
      }) {};
 
@@ -257097,6 +260372,7 @@ self: {
        description = "A breakout clone written in netwire and gloss";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spanout";
        broken = true;
      }) {};
 
@@ -257126,6 +260402,7 @@ self: {
        description = "Distributed Apache Spark applications in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sparkle";
      }) {};
 
   "sparql-protocol" = callPackage
@@ -257363,6 +260640,7 @@ self: {
        description = "A unix-style (read from stdin, write to stdout) global hotkey daemon";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spartacon";
        broken = true;
      }) {};
 
@@ -257682,6 +260960,7 @@ self: {
        description = "Speechmatics api client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "speechmatics";
      }) {};
 
   "speedy-slice" = callPackage
@@ -257780,6 +261059,7 @@ self: {
        description = "Sphinx CLI and demo of Haskell Sphinx library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sphinx-cli";
      }) {};
 
   "sphinxesc" = callPackage
@@ -257799,6 +261079,7 @@ self: {
        description = "Transform queries for sphinx input";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sphinxesc";
        broken = true;
      }) {};
 
@@ -257838,6 +261119,7 @@ self: {
        description = "Experimental web browser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spike";
      }) {inherit (pkgs) libsoup;};
 
   "spine" = callPackage
@@ -257958,6 +261240,7 @@ self: {
        ];
        description = "A parallel implementation of the Sorokina/Zeilfelder spline scheme";
        license = lib.licenses.agpl3Only;
+       mainProgram = "spline3";
      }) {};
 
   "splines" = callPackage
@@ -258049,6 +261332,7 @@ self: {
        ];
        description = "Split a big audio file into pieces at positions of silence";
        license = lib.licenses.bsd3;
+       mainProgram = "split-record";
      }) {};
 
   "split-tchan" = callPackage
@@ -258133,6 +261417,7 @@ self: {
        description = "Use numerical ranges to split out certain lines from a file";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "splitter";
        broken = true;
      }) {};
 
@@ -258153,6 +261438,7 @@ self: {
        ];
        description = "A tool for visualizing the lifecycle of many concurrent multi-staged processes";
        license = lib.licenses.bsd3;
+       mainProgram = "splot";
      }) {};
 
   "spooky" = callPackage
@@ -258208,6 +261494,7 @@ self: {
        description = "Spoon's utilities. Simple testing and nice looking error reporting.";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
        broken = true;
      }) {};
 
@@ -258298,6 +261585,7 @@ self: {
        description = "JSON API to HTML website wrapper";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sprinkles";
      }) {};
 
   "spritz" = callPackage
@@ -258336,6 +261624,7 @@ self: {
        description = "HTTP proxy for authenticating users via OAuth2";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sproxy";
        broken = true;
      }) {};
 
@@ -258363,6 +261652,7 @@ self: {
        description = "Web interface to sproxy database";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sproxy-web";
        broken = true;
      }) {};
 
@@ -258389,6 +261679,7 @@ self: {
        ];
        description = "Secure HTTP proxy for authenticating users via OAuth2";
        license = lib.licenses.mit;
+       mainProgram = "sproxy2";
      }) {};
 
   "spsa" = callPackage
@@ -258436,6 +261727,7 @@ self: {
        description = "A compact file system watcher for Mac OS X, Linux and Windows";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spy";
        broken = true;
      }) {};
 
@@ -258693,6 +261985,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sqsd-local";
      }) {};
 
   "squares" = callPackage
@@ -258748,7 +262041,8 @@ self: {
        ];
        description = "Squeal PostgreSQL Library";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ erictapen ];
+       mainProgram = "example";
+       maintainers = [ lib.maintainers.erictapen ];
      }) {};
 
   "squeal-postgresql-ltree" = callPackage
@@ -258816,6 +262110,7 @@ self: {
        ];
        description = "A file-packing application";
        license = "GPL";
+       mainProgram = "squeeze";
      }) {};
 
   "sr-extra" = callPackage
@@ -258863,6 +262158,7 @@ self: {
        description = "Build and install Debian packages completely from source";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "srcinst";
        broken = true;
      }) {};
 
@@ -258968,6 +262264,7 @@ self: {
        description = "text UI for scanning with SANE";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sscan";
        broken = true;
      }) {};
 
@@ -259094,6 +262391,7 @@ self: {
        description = "Check sshd configuration for adherence to best practices";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sshd-lint";
      }) {};
 
   "sshtun" = callPackage
@@ -259113,6 +262411,7 @@ self: {
        ];
        description = "Wrapper daemon to manage an ssh tunnel";
        license = lib.licenses.bsd3;
+       mainProgram = "sshtun";
      }) {};
 
   "sssp" = callPackage
@@ -259142,6 +262441,7 @@ self: {
        description = "HTTP proxy for S3";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sssp";
      }) {};
 
   "sstable" = callPackage
@@ -259161,6 +262461,7 @@ self: {
        description = "SSTables in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sstable";
      }) {};
 
   "ssv" = callPackage
@@ -259175,6 +262476,7 @@ self: {
        executableHaskellDepends = [ base containers ];
        description = "Comma-separated-value (CSV) read, show and write routines";
        license = lib.licenses.mit;
+       mainProgram = "csvclean";
      }) {};
 
   "st2" = callPackage
@@ -259271,6 +262573,7 @@ self: {
        description = "Trees whose branches are resistant to change";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "demo";
      }) {};
 
   "stache" = callPackage
@@ -259303,6 +262606,7 @@ self: {
        ];
        description = "Mustache templates for Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "stache";
      }) {};
 
   "stack" = callPackage
@@ -259329,8 +262633,8 @@ self: {
        pname = "stack";
        version = "2.7.5";
        sha256 = "103yyfl02chbmkb6csri403921z7jhfdrrv99lch951flv149pcx";
-       revision = "1";
-       editedCabalFile = "1mig6gkpfynjias4w8grg8s1zly2m51mnj29ljl1fs2qn93dq1iz";
+       revision = "2";
+       editedCabalFile = "18hiffjrzfn97yl9al97vxing6qajiv732nr61i4lv1y4xhhm6v8";
        configureFlags = [
          "-fdisable-git-info" "-fhide-dependency-versions"
          "-fsupported-build"
@@ -259399,7 +262703,8 @@ self: {
        '';
        description = "The Haskell Tool Stack";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ cdepillabout ];
+       mainProgram = "stack";
+       maintainers = [ lib.maintainers.cdepillabout ];
      }) {};
 
   "stack-all" = callPackage
@@ -259420,6 +262725,7 @@ self: {
        ];
        description = "CLI tool for building across Stackage major versions";
        license = lib.licenses.bsd3;
+       mainProgram = "stack-all";
      }) {};
 
   "stack-bump" = callPackage
@@ -259444,6 +262750,7 @@ self: {
        description = "Dead simple version bumping for hpack packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stack-bump";
        broken = true;
      }) {};
 
@@ -259462,6 +262769,7 @@ self: {
        ];
        description = "Clean away old stack build artifacts";
        license = lib.licenses.bsd3;
+       mainProgram = "stack-clean-old";
      }) {};
 
   "stack-fix" = callPackage
@@ -259476,6 +262784,7 @@ self: {
        description = "Console program used to fix Stack build errors automatically";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stack-fix";
        broken = true;
      }) {};
 
@@ -259504,6 +262813,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shc";
        broken = true;
      }) {};
 
@@ -259564,6 +262874,7 @@ self: {
        description = "A program for extending Stack to add distributed capabilities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stack-network";
      }) {};
 
   "stack-prism" = callPackage
@@ -259604,6 +262915,7 @@ self: {
        description = "An equivalent to cabal run for stack";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stack-run";
        broken = true;
      }) {};
 
@@ -259654,6 +262966,7 @@ self: {
        ];
        description = "Create etags for Haskell projects based on Stack snapshots";
        license = lib.licenses.mit;
+       mainProgram = "stack-tag";
      }) {};
 
   "stack-templatizer" = callPackage
@@ -259667,6 +262980,7 @@ self: {
        executableHaskellDepends = [ base bytestring directory filepath ];
        description = "Generate a stack template from a folder";
        license = lib.licenses.bsd3;
+       mainProgram = "stack-templatizer";
      }) {};
 
   "stack-type" = callPackage
@@ -259741,6 +263055,7 @@ self: {
        description = "Convert stack projects to cabal.project + cabal.project.freeze";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stack2cabal";
        broken = true;
      }) {};
 
@@ -259769,6 +263084,7 @@ self: {
        description = "Convert stack.yaml files into Nix build instructions.";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stack2nix";
        broken = true;
      }) {};
 
@@ -259814,6 +263130,7 @@ self: {
        description = "Calculate and print (in different formats) Stackage build plans";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stackage-build-plan";
      }) {};
 
   "stackage-cabal" = callPackage
@@ -259924,6 +263241,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Secure download of packages for cabal-install";
        license = lib.licenses.mit;
+       mainProgram = "stackage-install";
      }) {};
 
   "stackage-metadata" = callPackage
@@ -259952,6 +263270,7 @@ self: {
        description = "DEPRECATED Grab current metadata for all packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "all-cabal-metadata-tool";
        broken = true;
      }) {};
 
@@ -259977,6 +263296,7 @@ self: {
        description = "Tool for querying Stackage";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stackage";
      }) {};
 
   "stackage-sandbox" = callPackage
@@ -259998,6 +263318,7 @@ self: {
        description = "Work with shared stackage sandboxes";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stackage-sandbox";
      }) {};
 
   "stackage-setup" = callPackage
@@ -260022,6 +263343,7 @@ self: {
        description = "An executable for downloading a Haskell setup";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stackage-setup";
      }) {};
 
   "stackage-to-hackage" = callPackage
@@ -260048,6 +263370,7 @@ self: {
        description = "Convert stack.yaml to cabal.project + cabal.project.freeze";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stackage-to-hackage";
        broken = true;
      }) {};
 
@@ -260084,6 +263407,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Update your package index incrementally (requires git)";
        license = lib.licenses.mit;
+       mainProgram = "stackage-update";
      }) {};
 
   "stackage-upload" = callPackage
@@ -260107,6 +263431,7 @@ self: {
        description = "A more secure version of cabal upload which uses HTTPS";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stackage-upload";
      }) {};
 
   "stackage2nix" = callPackage
@@ -260138,6 +263463,7 @@ self: {
        description = "Convert Stack files into Nix build instructions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stackage2nix";
      }) {};
 
   "stackcollapse-ghc" = callPackage
@@ -260163,6 +263489,7 @@ self: {
        ];
        description = "Program to fold GHC prof files into flamegraph input";
        license = lib.licenses.gpl3Only;
+       mainProgram = "stackcollapse-ghc";
      }) {};
 
   "stacked-dag" = callPackage
@@ -260182,6 +263509,7 @@ self: {
        testHaskellDepends = [ base containers doctest graphviz text ];
        description = "Ascii DAG(Directed acyclic graph) for visualization of dataflow";
        license = lib.licenses.bsd3;
+       mainProgram = "stacked-dag";
      }) {};
 
   "staf" = callPackage
@@ -260232,6 +263560,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Static site generator";
        license = lib.licenses.bsd3;
+       mainProgram = "stagen";
      }) {};
 
   "stan" = callPackage
@@ -260264,6 +263593,7 @@ self: {
        description = "Haskell STatic ANalyser";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stan";
      }) {};
 
   "standalone-derive-topdown" = callPackage
@@ -260295,6 +263625,7 @@ self: {
        description = "Generate standalone haddock documentation for a set of packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "standalone-haddock";
        broken = true;
      }) {};
 
@@ -260364,6 +263695,7 @@ self: {
        description = "Space simulation game";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "starrover2";
      }) {};
 
   "starter" = callPackage
@@ -260494,6 +263826,7 @@ self: {
        executableHaskellDepends = [ base polyparse ];
        description = "Compiles Rhapsody statecharts to C";
        license = lib.licenses.bsd3;
+       mainProgram = "statechart";
      }) {};
 
   "stateful-mtl" = callPackage
@@ -260827,6 +264160,7 @@ self: {
        description = "command line statistics";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stats";
        broken = true;
      }) {};
 
@@ -260969,6 +264303,7 @@ self: {
        description = "What version is the package X in stackage lts-Y.ZZ?";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "staversion";
        broken = true;
      }) {};
 
@@ -261040,6 +264375,7 @@ self: {
        description = "A library for implicit, monadic dataflow parallelism";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ohua-stream-bench";
        broken = true;
      }) {};
 
@@ -261130,6 +264466,7 @@ self: {
        description = "List and launch steam games from the cli";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "steambrowser";
        broken = true;
      }) {};
 
@@ -261164,6 +264501,7 @@ self: {
        description = "A file watcher and development tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sos";
        broken = true;
      }) {};
 
@@ -261286,6 +264624,7 @@ self: {
        description = "Educational implementation of the STG (Spineless Tagless G-machine)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stgi-exe";
        broken = true;
      }) {};
 
@@ -261426,7 +264765,7 @@ self: {
        ];
        description = "Containers for STM";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "stm-delay" = callPackage
@@ -262045,6 +265384,7 @@ self: {
        description = "Simple Theorem Prover";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mu-test";
        broken = true;
      }) {};
 
@@ -262111,6 +265451,7 @@ self: {
        description = "Client for Stratum protocol";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stratum-tool";
      }) {};
 
   "stratux" = callPackage
@@ -262150,6 +265491,7 @@ self: {
        description = "A demonstration of the stratux library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stratux-demo";
      }) {};
 
   "stratux-http" = callPackage
@@ -262805,7 +266147,7 @@ self: {
        ];
        description = "Streaming Wai utilities";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ jb55 ];
+       maintainers = [ lib.maintainers.jb55 ];
      }) {};
 
   "streaming-with" = callPackage
@@ -262843,7 +266185,7 @@ self: {
        ];
        description = "Dataflow programming and declarative concurrency";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "streamly_0_8_2" = callPackage
@@ -262865,7 +266207,7 @@ self: {
        description = "Dataflow programming and declarative concurrency";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "streamly-archive" = callPackage
@@ -263474,6 +266816,7 @@ self: {
        ];
        description = "Find a local optimum of strictness annotations";
        license = lib.licenses.bsd3;
+       mainProgram = "strictify";
      }) {};
 
   "strictly" = callPackage
@@ -263720,6 +267063,7 @@ self: {
        ];
        description = "A library for generating random string from a regular experession";
        license = lib.licenses.bsd3;
+       mainProgram = "hstrrand";
      }) {};
 
   "string-similarity" = callPackage
@@ -263878,6 +267222,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
+       mainProgram = "new-template-exe";
      }) {};
 
   "strip-ansi-escape" = callPackage
@@ -264207,6 +267552,7 @@ self: {
        description = "Interface library for strongSwan SQL backend";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "strongswan-sql";
      }) {};
 
   "strongweak" = callPackage
@@ -264216,8 +267562,8 @@ self: {
      }:
      mkDerivation {
        pname = "strongweak";
-       version = "0.2.0";
-       sha256 = "1acx0rf2xrsxbj8b1zla92j46igghlij0s0mjaiwys15w98xg8lx";
+       version = "0.3.0";
+       sha256 = "00cl7dbqbaq81rsk3xzkdzyxra16kcz4dfdm0w7l1ysrgpfa1kbp";
        libraryHaskellDepends = [
          base either prettyprinter refined vector vector-sized
        ];
@@ -264307,8 +267653,8 @@ self: {
        pname = "structured";
        version = "0.1.1";
        sha256 = "1mz02ys85z79nj24ylsmgh8v2m7zv2rixf7w0iqnwc49lax52w4q";
-       revision = "2";
-       editedCabalFile = "1vsb5707b2mza2sd1xrrih4y85iaiwp05fajr359xlg1n1dfc1qf";
+       revision = "3";
+       editedCabalFile = "188vz6j28ir7c6qrch3i95p9dd98b9f4hk9yvilnwpzd5v86dm3x";
        libraryHaskellDepends = [
          aeson array base base16-bytestring binary bytestring containers
          hashable scientific tagged text time-compat transformers
@@ -264334,6 +267680,7 @@ self: {
        executableHaskellDepends = [ base data-default mtl split ];
        description = "Application library for building interactive console CLIs";
        license = lib.licenses.bsd3;
+       mainProgram = "some-cli";
      }) {};
 
   "structured-haskell-mode" = callPackage
@@ -264354,7 +267701,8 @@ self: {
        ];
        description = "Structured editing Emacs mode for Haskell";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "structured-haskell-mode";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "structured-mongoDB" = callPackage
@@ -264470,6 +267818,7 @@ self: {
        description = "A revival of the classic game Stunts (LambdaCube tech demo)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stunts";
      }) {};
 
   "stutter" = callPackage
@@ -264498,6 +267847,7 @@ self: {
        description = "(Stutter Text|String)-Utterer";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stutter";
      }) {};
 
   "stylish-cabal" = callPackage
@@ -264525,6 +267875,7 @@ self: {
        description = "Format Cabal files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stylish-cabal";
        broken = true;
      }) {};
 
@@ -264558,6 +267909,7 @@ self: {
        ];
        description = "Haskell code prettifier";
        license = lib.licenses.bsd3;
+       mainProgram = "stylish-haskell";
      }) {};
 
   "stylist" = callPackage
@@ -264611,6 +267963,7 @@ self: {
        ];
        description = "A generator of nix files";
        license = "GPL";
+       mainProgram = "styx";
      }) {};
 
   "suavemente" = callPackage
@@ -264754,6 +268107,7 @@ self: {
        description = "Toolchain of subleq computer";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "subleq";
        broken = true;
      }) {};
 
@@ -264789,6 +268143,7 @@ self: {
        ];
        description = "Extract a part from CommonMark/Markdown docs";
        license = lib.licenses.gpl3Only;
+       mainProgram = "submark";
      }) {};
 
   "subnet" = callPackage
@@ -264819,6 +268174,7 @@ self: {
        description = "Subsample data";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "subsample";
        broken = true;
      }) {};
 
@@ -264863,6 +268219,7 @@ self: {
        executableHaskellDepends = [ base split ];
        description = "Modify SRT subtitle files";
        license = lib.licenses.bsd3;
+       mainProgram = "subtitles";
      }) {};
 
   "subwordgraph" = callPackage
@@ -264936,6 +268293,7 @@ self: {
        description = "Simple and moderately efficient suffix array implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "suffix-array-exe";
        broken = true;
      }) {};
 
@@ -265104,6 +268462,7 @@ self: {
        description = "Tool for scaffolding fully configured batteries-included production-level Haskell projects";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "summon";
        broken = true;
      }) {};
 
@@ -265125,6 +268484,7 @@ self: {
        description = "Tool for scaffolding fully configured batteries-included production-level Haskell projects using TUI";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "summon-tui";
      }) {};
 
   "sump" = callPackage
@@ -265265,6 +268625,7 @@ self: {
        description = "Configure your dotfile deployment with a DSL";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "super-user-spark";
        broken = true;
      }) {};
 
@@ -265457,6 +268818,7 @@ self: {
        description = "A Supercompiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "supero";
        broken = true;
      }) {};
 
@@ -265674,6 +269036,7 @@ self: {
        description = "SystemVerilog to Verilog conversion";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sv2v";
        broken = true;
      }) {};
 
@@ -265773,6 +269136,7 @@ self: {
        description = "Code generation tool for Quartz code from a SVG";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "svg2q";
      }) {};
 
   "svgcairo" = callPackage
@@ -265789,7 +269153,7 @@ self: {
        libraryPkgconfigDepends = [ librsvg ];
        description = "Binding to the libsvg-cairo library";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ dalpd ];
+       maintainers = [ lib.maintainers.dalpd ];
      }) {inherit (pkgs) librsvg;};
 
   "svgone" = callPackage
@@ -265814,6 +269178,7 @@ self: {
        description = "Optimise SVGs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "svgone";
      }) {};
 
   "svgsym" = callPackage
@@ -265833,6 +269198,7 @@ self: {
        ];
        description = "A tool to prune unused symbols from icon SVG files";
        license = lib.licenses.gpl3Plus;
+       mainProgram = "svgsym";
      }) {};
 
   "svgutils" = callPackage
@@ -265848,6 +269214,7 @@ self: {
        description = "Helper functions for dealing with SVG files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "SVGtile";
        broken = true;
      }) {};
 
@@ -265990,6 +269357,7 @@ self: {
        description = "Testing of Swagger APIs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "swagger-test";
        broken = true;
      }) {};
 
@@ -266061,6 +269429,7 @@ self: {
        description = "Clojure without alphanumerics";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "swearjure";
        broken = true;
      }) {};
 
@@ -266140,6 +269509,7 @@ self: {
        ];
        description = "A semantic web toolkit";
        license = lib.licenses.lgpl21Only;
+       mainProgram = "Swish";
      }) {};
 
   "swiss-ephemeris" = callPackage
@@ -266223,6 +269593,7 @@ self: {
        description = "A simple web server for serving directories";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sws";
        broken = true;
      }) {};
 
@@ -266379,6 +269750,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Automatic test suite discovery for sydtest";
        license = "unknown";
+       mainProgram = "sydtest-discover";
      }) {};
 
   "sydtest-hedgehog" = callPackage
@@ -266724,6 +270096,7 @@ self: {
        description = "Synthesis Format Conversion Tool / Library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "syfco";
        broken = true;
      }) {};
 
@@ -266751,6 +270124,7 @@ self: {
        description = "Lambda calculus visualization";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sylvia";
      }) {};
 
   "sym" = callPackage
@@ -267203,6 +270577,7 @@ self: {
        description = "SymEngine symbolic mathematics engine for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "symengine-hs-exe";
        broken = true;
      }) {inherit (pkgs) gmp; inherit (pkgs) gmpxx; 
          inherit (pkgs) symengine;};
@@ -267249,6 +270624,7 @@ self: {
        ];
        description = "Minimal implementation(s) of the classic electronic memory game";
        license = lib.licenses.gpl3Only;
+       mainProgram = "symon-ansi";
      }) {};
 
   "sync" = callPackage
@@ -267300,6 +270676,7 @@ self: {
        description = "Fast incremental file transfer using Merkle-Hash-Trees";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sync-mht";
        broken = true;
      }) {};
 
@@ -267364,6 +270741,7 @@ self: {
        description = "Similar code analysis";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "synt";
        broken = true;
      }) {Synt = null;};
 
@@ -267452,6 +270830,7 @@ self: {
        description = "Example application using syntax, a library for abstract syntax descriptions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "syntax-example";
      }) {};
 
   "syntax-example-json" = callPackage
@@ -267471,6 +270850,7 @@ self: {
        description = "Example JSON parser/pretty-printer";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "syntax-example-json";
      }) {};
 
   "syntax-pretty" = callPackage
@@ -267601,9 +270981,7 @@ self: {
        ];
        description = "Control synthesizer effects via ALSA/MIDI";
        license = lib.licenses.gpl3Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "synthesizer-core" = callPackage
@@ -267969,6 +271347,7 @@ self: {
        description = "Lifted versions of System functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "main";
        broken = true;
      }) {};
 
@@ -268065,6 +271444,7 @@ self: {
        description = "Runs system tests of applications";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "system-test";
        broken = true;
      }) {};
 
@@ -268133,7 +271513,7 @@ self: {
        testHaskellDepends = [ base network unix ];
        description = "Systemd facilities (Socket activation, Notify)";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "systemd-socket-activation" = callPackage
@@ -268168,6 +271548,7 @@ self: {
        description = "An application that regularly logs system stats for later analysis";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "systemstats";
      }) {};
 
   "syz" = callPackage
@@ -268292,6 +271673,7 @@ self: {
        description = "Simple tool to generate tables from DSV input";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "table";
        broken = true;
      }) {};
 
@@ -268317,6 +271699,7 @@ self: {
        ];
        description = "Format tabular data as grid or table";
        license = lib.licenses.bsd3;
+       mainProgram = "table-layout-test-styles";
      }) {};
 
   "table-tennis" = callPackage
@@ -268348,6 +271731,7 @@ self: {
        description = "An interactive theorem prover based on semantic tableaux";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tableaux.cgi";
        broken = true;
      }) {};
 
@@ -268413,6 +271797,7 @@ self: {
        ];
        description = "Pretty-printing of CSV files";
        license = "unknown";
+       mainProgram = "tablize";
      }) {};
 
   "tabloid" = callPackage
@@ -268432,6 +271817,7 @@ self: {
        description = "View the output of shell commands in a table";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tabloid";
        broken = true;
      }) {};
 
@@ -268448,6 +271834,7 @@ self: {
        description = "Indents source files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tabs";
        broken = true;
      }) {};
 
@@ -268504,11 +271891,10 @@ self: {
        executablePkgconfigDepends = [ gtk3 ];
        description = "A desktop bar similar to xmobar, but with more GUI";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ rvl ];
+       mainProgram = "taffybar";
+       maintainers = [ lib.maintainers.rvl ];
        broken = true;
      }) {inherit (pkgs) gtk3;};
 
@@ -268722,6 +272108,7 @@ self: {
        ];
        description = "Efficient and simple HTML/XML parsing library";
        license = lib.licenses.bsd3;
+       mainProgram = "taggy";
      }) {};
 
   "taggy-lens" = callPackage
@@ -268922,6 +272309,7 @@ self: {
        ];
        description = "Black magic tagsoup";
        license = lib.licenses.bsd3;
+       mainProgram = "tagstew";
      }) {};
 
   "tagstream-conduit" = callPackage
@@ -269049,6 +272437,7 @@ self: {
        description = "Tailwind wrapped in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tailwind-run";
        broken = true;
      }) {};
 
@@ -269090,6 +272479,7 @@ self: {
        description = "AI(s) for playing Tak on playtak.com";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "takky";
      }) {};
 
   "takahashi" = callPackage
@@ -269161,6 +272551,7 @@ self: {
        description = "Line oriented fast enough text search";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "talash";
        broken = true;
      }) {};
 
@@ -269192,6 +272583,7 @@ self: {
        description = "The Tamarin prover for security protocol analysis";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tamarin-prover";
      }) {};
 
   "tamarin-prover-term" = callPackage
@@ -269452,6 +272844,7 @@ self: {
        description = "Generate test-suites from refinement types";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "target";
      }) {inherit (pkgs) z3;};
 
   "tart" = callPackage
@@ -269474,6 +272867,7 @@ self: {
        ];
        description = "Terminal Art";
        license = lib.licenses.bsd3;
+       mainProgram = "tart";
      }) {};
 
   "task" = callPackage
@@ -269494,6 +272888,7 @@ self: {
        description = "A command line tool for keeping track of tasks you worked on";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "task";
      }) {};
 
   "task-distribution" = callPackage
@@ -269560,6 +272955,7 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "A command-line kanban board/task manager";
        license = lib.licenses.bsd3;
+       mainProgram = "taskell";
      }) {};
 
   "taskpool" = callPackage
@@ -269587,10 +272983,8 @@ self: {
      }:
      mkDerivation {
        pname = "taskwarrior";
-       version = "0.6.0.2";
-       sha256 = "16m4578ybwawiza4fg8gc6ndfc8hpvdkh5bv3ghamwpqyw0aq766";
-       revision = "1";
-       editedCabalFile = "10yyjis1crs60h00z0nlrq8p4hqzafjjn63fqnwf7wjq1yqmg5h5";
+       version = "0.6.0.3";
+       sha256 = "177ylpifmij5lld5xqy8fpfcm5w8ng2fh5hckr3m5z638kk3q10z";
        libraryHaskellDepends = [
          aeson base bytestring containers process random text time uuid
        ];
@@ -269601,7 +272995,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Types and aeson instances for taskwarrior tasks";
        license = lib.licenses.agpl3Plus;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "tasty" = callPackage
@@ -269657,6 +273051,7 @@ self: {
        description = "Auto discovery for Tasty with support for ingredients and test tree generation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tasty-auto";
        broken = true;
      }) {};
 
@@ -269753,6 +273148,7 @@ self: {
        ];
        description = "Test discovery for the tasty framework";
        license = lib.licenses.mit;
+       mainProgram = "tasty-discover";
      }) {};
 
   "tasty-expected-failure" = callPackage
@@ -269769,7 +273165,7 @@ self: {
        ];
        description = "Mark tasty tests as failure expected";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ nomeata ];
+       maintainers = [ lib.maintainers.nomeata ];
      }) {};
 
   "tasty-fail-fast" = callPackage
@@ -270042,6 +273438,22 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "tasty-inspection-testing_0_2" = callPackage
+    ({ mkDerivation, base, ghc, inspection-testing, tasty
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "tasty-inspection-testing";
+       version = "0.2";
+       sha256 = "1gdwbg545gwfx2a26s7hkgz9l9mfb13i6v20j09hqrlbh1xsi3qz";
+       libraryHaskellDepends = [
+         base ghc inspection-testing tasty template-haskell
+       ];
+       description = "Inspection testing support for tasty";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "tasty-integrate" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cmdargs, containers
      , deepseq, directory, either, haskell-src-exts
@@ -270218,6 +273630,7 @@ self: {
        description = "Golden testing provider for tasty with muti-line diff output";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tasty-mgolden-example";
        broken = true;
      }) {};
 
@@ -270278,6 +273691,7 @@ self: {
        testHaskellDepends = [ base QuickCheck tasty ];
        description = "Pre-built tasty trees for checking lawful class properties using QuickCheck";
        license = lib.licenses.bsd3;
+       mainProgram = "tasty-quickcheck-laws-demo";
      }) {};
 
   "tasty-rerun" = callPackage
@@ -270506,6 +273920,7 @@ self: {
        description = "Meta tic-tac-toe ncurses game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tateti-tateti";
      }) {};
 
   "tau" = callPackage
@@ -270583,6 +273998,7 @@ self: {
        description = "TokyoCabinet CLI interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tchcli";
      }) {};
 
   "tce-conf" = callPackage
@@ -270818,6 +274234,7 @@ self: {
        description = "Codegen for TDLib";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tdlib-gen";
      }) {};
 
   "tdlib-types" = callPackage
@@ -270878,6 +274295,7 @@ self: {
        description = "Pure Haskell TDS protocol implementation. Mainly for beam-mssql and beam-sybase";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
        broken = true;
      }) {};
 
@@ -270969,6 +274387,7 @@ self: {
        description = "Procedures and Sequences";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "technique";
        broken = true;
      }) {};
 
@@ -271086,6 +274505,7 @@ self: {
        description = "Telegram Bot microframework for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hello-bot";
      }) {};
 
   "telegram-bot-simple" = callPackage
@@ -271230,6 +274650,7 @@ self: {
        description = "A tool to quickly switch between directories";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "teleport-exe";
        broken = true;
      }) {};
 
@@ -271286,6 +274707,7 @@ self: {
        description = "IRC tellbot";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tellbot";
        broken = true;
      }) {};
 
@@ -271308,6 +274730,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "A dead-simple shell interpolation templating utility";
        license = lib.licenses.bsd3;
+       mainProgram = "tempered";
      }) {};
 
   "tempi" = callPackage
@@ -271361,23 +274784,11 @@ self: {
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "template-haskell-compat-v0208";
-       version = "0.1.7";
-       sha256 = "1bqnshyf8n9xaybi5wjrj9akp9lxfyfd9zc8jv81m5bllbmxbp2z";
-       libraryHaskellDepends = [ base template-haskell ];
-       description = "A backwards compatibility layer for Template Haskell newer than 2.8";
-       license = lib.licenses.mit;
-     }) {};
-
-  "template-haskell-compat-v0208_0_1_9" = callPackage
-    ({ mkDerivation, base, template-haskell }:
-     mkDerivation {
-       pname = "template-haskell-compat-v0208";
        version = "0.1.9";
        sha256 = "082i7m3chwcxggfx5mgd716w83dxw6l9v8y4gl3p37f8rd2lqbrj";
        libraryHaskellDepends = [ base template-haskell ];
        description = "A backwards compatibility layer for Template Haskell newer than 2.8";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "template-haskell-optics" = callPackage
@@ -271478,6 +274889,7 @@ self: {
        description = "Make template from website";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "templateify";
        broken = true;
      }) {};
 
@@ -271695,6 +275107,7 @@ self: {
        description = "Interpreter for the FRP language Tempus";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tempus";
        broken = true;
      }) {};
 
@@ -271711,6 +275124,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Programmers' time tracker";
        license = lib.licenses.agpl3Only;
+       mainProgram = "tempus";
      }) {};
 
   "ten" = callPackage
@@ -271809,6 +275223,7 @@ self: {
        description = "Create valid deep neural network architectures";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tensor-safe";
        broken = true;
      }) {};
 
@@ -271924,6 +275339,7 @@ self: {
        description = "TensorFlow demo application for learning MNIST model";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Main";
        broken = true;
      }) {tensorflow-mnist-input-data = null;};
 
@@ -272114,6 +275530,7 @@ self: {
        description = "Bindings to the Termbox library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -272129,6 +275546,7 @@ self: {
        executableHaskellDepends = [ base cli ];
        description = "Composable terminal colors";
        license = lib.licenses.gpl3Only;
+       mainProgram = "termcolor";
      }) {};
 
   "terminal" = callPackage
@@ -272184,6 +275602,7 @@ self: {
        testHaskellDepends = [ base QuickCheck time ];
        description = "Simple terminal-based time tracker";
        license = lib.licenses.bsd3;
+       mainProgram = "punch";
      }) {};
 
   "terminal-size" = callPackage
@@ -272290,10 +275709,9 @@ self: {
        ];
        description = "Terminal emulator configurable in Haskell";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
-       maintainers = with lib.maintainers; [ cdepillabout ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "termonad";
+       maintainers = [ lib.maintainers.cdepillabout ];
      }) {inherit (pkgs) gtk3; inherit (pkgs) pcre2; 
          vte_291 = pkgs.vte;};
 
@@ -272314,6 +275732,7 @@ self: {
        description = "Plot time series in your terminal using commands stdout";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "termplot";
        broken = true;
      }) {};
 
@@ -272354,6 +275773,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "HTTP backend to store terraform state using pass and git";
        license = "AGPL";
+       mainProgram = "terraform-http-backend-pass";
      }) {};
 
   "terrahs" = callPackage
@@ -272388,6 +275808,7 @@ self: {
        description = "A semantic parser for lojban";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tersmu";
        broken = true;
      }) {};
 
@@ -272725,6 +276146,7 @@ self: {
        ];
        description = "Testing framework";
        license = lib.licenses.bsd3;
+       mainProgram = "test-karya-generate";
      }) {};
 
   "test-lib" = callPackage
@@ -272746,6 +276168,7 @@ self: {
        executableHaskellDepends = [ base simple-get-opt ];
        description = "A library to make a quick test-runner script";
        license = lib.licenses.isc;
+       mainProgram = "test-runner";
      }) {};
 
   "test-monad-laws" = callPackage
@@ -272840,6 +276263,7 @@ self: {
        description = "Lightweight development enviroments using test-sandbox";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test-sandbox-compose";
      }) {};
 
   "test-sandbox-hunit" = callPackage
@@ -272933,6 +276357,7 @@ self: {
        description = "Small test package";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "testPkg";
        broken = true;
      }) {};
 
@@ -273061,6 +276486,7 @@ self: {
        description = "Display a monitor test pattern";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "testpattern";
        broken = true;
      }) {};
 
@@ -273092,6 +276518,7 @@ self: {
        executableHaskellDepends = [ base GLUT random ];
        description = "A 2-D clone of Tetris";
        license = lib.licenses.bsd3;
+       mainProgram = "tetris";
      }) {};
 
   "tex-join-bib" = callPackage
@@ -273112,6 +276539,7 @@ self: {
        ];
        description = "Compile separate tex files with the same bibliography";
        license = lib.licenses.gpl3Only;
+       mainProgram = "tex-join-bib";
      }) {};
 
   "tex2txt" = callPackage
@@ -273127,6 +276555,7 @@ self: {
        description = "LaTeX to plain-text conversion";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tex2txt";
        broken = true;
      }) {};
 
@@ -273149,6 +276578,7 @@ self: {
        description = "View your latex output while editing";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "texbuilder";
        broken = true;
      }) {};
 
@@ -273716,6 +277146,7 @@ self: {
        ];
        description = "Parser and Printer for LDAP text data stream";
        license = lib.licenses.bsd3;
+       mainProgram = "parseTest";
      }) {};
 
   "text-lens" = callPackage
@@ -274001,6 +277432,7 @@ self: {
        testHaskellDepends = [ base hedgehog neat-interpolation text ];
        description = "Simple text replacements from a list of search/replace pairs";
        license = lib.licenses.asl20;
+       mainProgram = "text-replace";
      }) {};
 
   "text-rope" = callPackage
@@ -274380,6 +277812,7 @@ self: {
        description = "A simple Haskell program to provide tags for Haskell code completion in TextMate";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "textmatetags";
      }) {};
 
   "textocat-api" = callPackage
@@ -274487,6 +277920,7 @@ self: {
        description = "A library for building tftp servers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tftp_upload";
        broken = true;
      }) {};
 
@@ -275180,6 +278614,7 @@ self: {
        description = "Give your dependencies stars on GitHub!";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "thank-you-stars";
        broken = true;
      }) {};
 
@@ -275222,6 +278657,7 @@ self: {
        description = "Haskell API bindings for http://themoviedb.org";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tmdb";
        broken = true;
      }) {};
 
@@ -275244,6 +278680,7 @@ self: {
        ];
        description = "Project templating tool";
        license = lib.licenses.bsd3;
+       mainProgram = "themplate";
      }) {};
 
   "thentos-cookie-session" = callPackage
@@ -275298,6 +278735,7 @@ self: {
        description = "A simple client for the TheoremQuest theorem proving game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tq";
      }) {};
 
   "these" = callPackage
@@ -275383,6 +278821,7 @@ self: {
        description = "Typing Haskell In Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "thih";
        broken = true;
      }) {};
 
@@ -275545,6 +278984,7 @@ self: {
        executableHaskellDepends = [ base process ];
        description = "Runs other programs in the manner of a thread pool";
        license = "GPL";
+       mainProgram = "threadpool";
      }) {};
 
   "threaded" = callPackage
@@ -275641,6 +279081,7 @@ self: {
        ];
        description = "Simple, IO-based library for Erlang-style thread supervision";
        license = lib.licenses.mit;
+       mainProgram = "threads-supervisor-example";
      }) {};
 
   "threadscope" = callPackage
@@ -275662,6 +279103,7 @@ self: {
        ];
        description = "A graphical tool for profiling parallel Haskell programs";
        license = lib.licenses.bsd3;
+       mainProgram = "threadscope";
      }) {};
 
   "threefish" = callPackage
@@ -275711,8 +279153,8 @@ self: {
        pname = "threepenny-gui";
        version = "0.9.1.0";
        sha256 = "00sjkfa9qfnnwqfdw68yb8hq6nm1y5qv9896rzn5aachr7mlfpx2";
-       revision = "4";
-       editedCabalFile = "020yz8zgbk76cwi0z3bf2ikfpd7mm55jp1hjqdbjjxj7k2mwpl1h";
+       revision = "5";
+       editedCabalFile = "0034dl1mzzdi22c589qn5hb1k77vb97d54v3cgim4av42n8r76d1";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -275739,6 +279181,7 @@ self: {
        description = "Write simple nested context menus for threepenny-gui";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "threepenny-gui-contextmenu-exe";
        broken = true;
      }) {};
 
@@ -275755,6 +279198,7 @@ self: {
        description = "Flexbox layouts for Threepenny-gui";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "threepenny-flexbox-exe";
        broken = true;
      }) {};
 
@@ -276002,6 +279446,7 @@ self: {
        description = "A desktop bar based on WebKit";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tianbar";
        broken = true;
      }) {inherit (pkgs) gtk3; inherit (pkgs) webkitgtk;};
 
@@ -276036,6 +279481,7 @@ self: {
        description = "Useful if reading \"Why FP matters\" by John Hughes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tic-tac-toe";
      }) {};
 
   "ticker" = callPackage
@@ -276072,6 +279518,7 @@ self: {
        testHaskellDepends = [ base QuickCheck text ];
        description = "A basic implementation of a personal ticket management system";
        license = lib.licenses.mit;
+       mainProgram = "ticket-manager";
      }) {};
 
   "tickle" = callPackage
@@ -276133,6 +279580,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion weigh ];
        description = "Pattern language for improvised music";
        license = lib.licenses.gpl3Only;
+       mainProgram = "tidal";
      }) {};
 
   "tidal_1_8_0" = callPackage
@@ -276161,6 +279609,7 @@ self: {
        description = "Pattern language for improvised music";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tidal";
      }) {};
 
   "tidal-midi" = callPackage
@@ -276215,6 +279664,7 @@ self: {
        description = "Visual rendering for Tidal patterns and osc messages";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tidal-vis";
        broken = true;
      }) {};
 
@@ -276259,6 +279709,7 @@ self: {
        description = "Tiger Compiler of Universiteit Utrecht";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tiger";
        broken = true;
      }) {};
 
@@ -276328,6 +279779,7 @@ self: {
        ];
        description = "A program for generating LaTeX code of string diagrams";
        license = lib.licenses.mit;
+       mainProgram = "tikzsd";
      }) {};
 
   "tile" = callPackage
@@ -276371,6 +279823,7 @@ self: {
        description = "The Timber Compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "timberc";
      }) {};
 
   "time_1_12_2" = callPackage
@@ -276694,6 +280147,7 @@ self: {
        description = "Time series analysis";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "time-series";
        broken = true;
      }) {};
 
@@ -276798,6 +280252,7 @@ self: {
        executableHaskellDepends = [ base haskeline uu-parsinglib ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "timecalc";
        broken = true;
      }) {};
 
@@ -276812,6 +280267,7 @@ self: {
        executableHaskellDepends = [ base process time ];
        description = "time each line of terminal output";
        license = lib.licenses.gpl2Only;
+       mainProgram = "timeconsole";
      }) {};
 
   "timeit" = callPackage
@@ -276863,6 +280319,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
+       mainProgram = "Tutorial1";
      }) {};
 
   "timelike" = callPackage
@@ -277006,6 +280463,7 @@ self: {
        ];
        description = "A tool for visualizing time series from log files";
        license = lib.licenses.bsd3;
+       mainProgram = "tplot";
      }) {};
 
   "timeprint" = callPackage
@@ -277042,6 +280500,26 @@ self: {
        pname = "timerep";
        version = "2.0.1.0";
        sha256 = "1l67gbfjydq0xapry5k9pwzxmp6z7ixzyvwshnszryspcckagxif";
+       revision = "1";
+       editedCabalFile = "1sk6bd6d0qvfbhn8b8na2m2z784gcbmxmgm1i6xcfbb8bls7bx7q";
+       libraryHaskellDepends = [
+         attoparsec base monoid-subclasses text time
+       ];
+       testHaskellDepends = [
+         base QuickCheck tasty tasty-hunit tasty-quickcheck text time
+       ];
+       description = "Parse and display time according to some RFCs (RFC3339, RFC2822, RFC822)";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "timerep_2_1_0_0" = callPackage
+    ({ mkDerivation, attoparsec, base, monoid-subclasses, QuickCheck
+     , tasty, tasty-hunit, tasty-quickcheck, text, time
+     }:
+     mkDerivation {
+       pname = "timerep";
+       version = "2.1.0.0";
+       sha256 = "1qik0bg609657y12vlkiip4ry586bkwyfmy5wabnf1qc184zqzir";
        libraryHaskellDepends = [
          attoparsec base monoid-subclasses text time
        ];
@@ -277050,6 +280528,7 @@ self: {
        ];
        description = "Parse and display time according to some RFCs (RFC3339, RFC2822, RFC822)";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "timers" = callPackage
@@ -277153,6 +280632,7 @@ self: {
        ];
        description = "Run a command and timestamp its stdout/stderr lines";
        license = lib.licenses.bsd3;
+       mainProgram = "Timestamp";
      }) {};
 
   "timestamper" = callPackage
@@ -277166,6 +280646,7 @@ self: {
        executableHaskellDepends = [ base old-locale time ];
        description = "Read standard input and prepend each line with a timestamp";
        license = lib.licenses.mit;
+       mainProgram = "timestamper";
      }) {};
 
   "timeutils" = callPackage
@@ -277182,6 +280663,7 @@ self: {
        description = "Time utilities";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "timeutils";
        broken = true;
      }) {};
 
@@ -277317,6 +280799,7 @@ self: {
        description = "A softer alternative to Haddock";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tintin";
        broken = true;
      }) {};
 
@@ -277372,6 +280855,7 @@ self: {
        description = "A fast DOM parser for a subset of XML";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "validate";
        broken = true;
      }) {};
 
@@ -277441,6 +280925,7 @@ self: {
        description = "Convert from Haskell to Tip";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tip-ghc";
      }) {};
 
   "tip-lib" = callPackage
@@ -277465,6 +280950,7 @@ self: {
        description = "tons of inductive problems - support library and tools";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tip";
      }) {};
 
   "tiphys" = callPackage
@@ -277512,6 +280998,7 @@ self: {
        description = "Testing Infrastructure for Temporal AbstractioNs - GUI to debug temporal programs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "titan";
      }) {};
 
   "titan-debug-yampa" = callPackage
@@ -277559,7 +281046,8 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit tasty-quickcheck ];
        description = "Convert English Words to Title Case";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "titlecase";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "tkhs" = callPackage
@@ -277579,6 +281067,7 @@ self: {
        description = "Simple Presentation Utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tkhs";
        broken = true;
      }) {};
 
@@ -277607,6 +281096,7 @@ self: {
        description = "A web-based visualizer for GHC Profiling Reports";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tkyprof";
        broken = true;
      }) {};
 
@@ -277643,6 +281133,7 @@ self: {
        testHaskellDepends = [ base tasty tasty-golden ];
        description = "Haskell tldr client";
        license = lib.licenses.bsd3;
+       mainProgram = "tldr";
      }) {};
 
   "tlex" = callPackage
@@ -277890,7 +281381,8 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Handle phylogenetic trees";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       mainProgram = "tlynx";
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "tmapchan" = callPackage
@@ -278095,6 +281587,7 @@ self: {
        ];
        description = "simple executable for templating";
        license = lib.licenses.gpl3Only;
+       mainProgram = "tmpl";
      }) {};
 
   "tn" = callPackage
@@ -278118,6 +281611,7 @@ self: {
        description = "A simple daily journal program";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tn";
      }) {};
 
   "tnet" = callPackage
@@ -278210,6 +281704,7 @@ self: {
        description = "Twitter bot generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "toboggan";
      }) {};
 
   "todo" = callPackage
@@ -278249,6 +281744,7 @@ self: {
        description = "Easy-to-use TODOs manager";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "todos";
      }) {};
 
   "tofromxml" = callPackage
@@ -278286,6 +281782,7 @@ self: {
        ];
        description = "Manage the toilet queue at the IMO";
        license = "GPL";
+       mainProgram = "toilet";
      }) {};
 
   "token-bucket" = callPackage
@@ -278324,6 +281821,7 @@ self: {
        description = "Fast rate limiting using the token bucket algorithm (BSD)";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "token-limiter-extended-tests";
        broken = true;
      }) {};
 
@@ -278368,6 +281866,7 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "token-search";
        broken = true;
      }) {};
 
@@ -278502,9 +282001,7 @@ self: {
        librarySystemDepends = [ tokyocabinet tokyotyrant ];
        description = "FFI bindings to libtokyotyrant";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) tokyocabinet; inherit (pkgs) tokyotyrant;};
@@ -278619,6 +282116,7 @@ self: {
        description = "Command-line tool to check syntax of TOML files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tomlcheck";
      }) {};
 
   "tonalude" = callPackage
@@ -278808,6 +282306,7 @@ self: {
        description = "Cluster single cells and analyze cell clade relationships";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "too-many-cells";
      }) {};
 
   "toodles" = callPackage
@@ -278844,6 +282343,7 @@ self: {
        description = "Manage the TODO entries in your code";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "toodles";
        broken = true;
      }) {};
 
@@ -278918,6 +282418,7 @@ self: {
        testHaskellDepends = [ base hspec profunctors text ];
        description = "Template-to-Haskell preprocessor, and templating language";
        license = lib.licenses.gpl3Only;
+       mainProgram = "tophat";
      }) {};
 
   "topkata" = callPackage
@@ -278937,6 +282438,7 @@ self: {
        description = "OpenGL Arcade Game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "topkata";
      }) {};
 
   "topograph" = callPackage
@@ -279015,7 +282517,7 @@ self: {
        libraryHaskellDepends = [ base void ];
        description = "Exhaustive pattern matching using lenses, traversals, and prisms";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "total-alternative" = callPackage
@@ -279070,6 +282572,7 @@ self: {
        description = "Library (and cli) to execute a procedure on file change";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "touched";
        broken = true;
      }) {};
 
@@ -279118,6 +282621,7 @@ self: {
        description = "A Tox protocol implementation in Haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "toxsave-convert";
      }) {};
 
   "toxcore-c" = callPackage
@@ -279144,6 +282648,7 @@ self: {
        description = "Haskell bindings to the C reference implementation of Tox";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "groupbot";
      }) {toxcore = null;};
 
   "toxiproxy-haskell" = callPackage
@@ -279258,6 +282763,7 @@ self: {
        description = "simple, parallel job scheduling";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tpar";
      }) {};
 
   "tpb" = callPackage
@@ -279426,8 +282932,8 @@ self: {
      }:
      mkDerivation {
        pname = "tracing";
-       version = "0.0.7.2";
-       sha256 = "06cqj4801inww5lw5c1qbjp5yrbg5rpifnkr9w5lws8654v44iim";
+       version = "0.0.7.3";
+       sha256 = "1v178byysbl6cpx8dqs4a1failfzpr80fqv7icddq28rh95b2aj2";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring case-insensitive containers
          http-client mtl network random stm text time transformers unliftio
@@ -279476,6 +282982,7 @@ self: {
        description = "Package to list all tracked and untracked existing files via Git";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tracked-files";
        broken = true;
      }) {};
 
@@ -279511,6 +283018,7 @@ self: {
        description = "A command-line tool for live monitoring";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trackit";
        broken = true;
      }) {};
 
@@ -279580,6 +283088,7 @@ self: {
          time transformers unordered-containers
        ];
        license = lib.licenses.bsd3;
+       mainProgram = "trade-journal";
      }) {inherit (pkgs) gmp; inherit (pkgs) mpfr;};
 
   "traildb" = callPackage
@@ -279716,6 +283225,7 @@ self: {
        description = "Text transformer and interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "transf";
      }) {};
 
   "transfer-db" = callPackage
@@ -279745,6 +283255,7 @@ self: {
        description = "ODBC database transfer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "transfer-db";
      }) {};
 
   "transformations" = callPackage
@@ -279766,6 +283277,7 @@ self: {
        description = "Generic representation of tree transformations";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Benchmark";
      }) {};
 
   "transformers_0_6_0_4" = callPackage
@@ -280119,6 +283631,7 @@ self: {
        description = "Translation cli tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "translate";
      }) {};
 
   "trasa" = callPackage
@@ -280343,6 +283856,7 @@ self: {
        description = ".travis.yml preprocessor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "travis-meta-yaml";
        broken = true;
      }) {};
 
@@ -280358,6 +283872,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "A better travis_wait";
        license = lib.licenses.bsd3;
+       mainProgram = "travis-pogodi";
      }) {};
 
   "trawl" = callPackage
@@ -280377,6 +283892,7 @@ self: {
        description = "A tool for finding haddocks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trawl";
        broken = true;
      }) {};
 
@@ -280393,6 +283909,7 @@ self: {
        description = "Tray Icon application to PowerOff / Reboot computer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "traypoweroff";
        broken = true;
      }) {};
 
@@ -280426,6 +283943,8 @@ self: {
        pname = "tree-diff";
        version = "0.2.1.1";
        sha256 = "0p1pvbqgrwkxmv4b8xmw9mx6a1xpyl6j8ivg1qs65q5nd7xaxqvp";
+       revision = "1";
+       editedCabalFile = "0avc30hkfhh6sr2ch5d6xrndskj06az8h0b0zkrrnl89jgiw7c3x";
        libraryHaskellDepends = [
          aeson ansi-terminal ansi-wl-pprint base base-compat bytestring
          bytestring-builder containers deepseq hashable parsec parsers
@@ -280830,6 +284349,7 @@ self: {
        description = "A PostgreSQL Database Migrator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trek";
      }) {};
 
   "trek-db" = callPackage
@@ -281051,6 +284571,7 @@ self: {
        description = "Trigger is a cross platform file system watcher for super fast build-and-restart workflows";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trigger";
        broken = true;
      }) {};
 
@@ -281068,6 +284589,7 @@ self: {
        description = "A command-line tool for trimming whitespace";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trim";
        broken = true;
      }) {};
 
@@ -281099,6 +284621,7 @@ self: {
        description = "Search for, annotate and trim poly-A tail";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trimpolya";
      }) {};
 
   "tripLL" = callPackage
@@ -281126,6 +284649,8 @@ self: {
        pname = "triplesec";
        version = "0.2.2.1";
        sha256 = "0wfrb1qkisbypfw4djm2cwlzrb1xhmkkv6cy8wyxvyrhqs5zzdrs";
+       revision = "1";
+       editedCabalFile = "1axxq9q33jf79lv0ydwai24bgczvn4pdxw6a7sk3715js2di6xgn";
        libraryHaskellDepends = [
          base cryptonite memory mtl transformers
        ];
@@ -281197,6 +284722,7 @@ self: {
        description = "A Tropical Geometry package for Haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tropical-geometry";
      }) {};
 
   "true-name" = callPackage
@@ -281227,6 +284753,7 @@ self: {
        description = "Audio file compressor-limiter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "truelevel";
      }) {};
 
   "trurl" = callPackage
@@ -281250,6 +284777,7 @@ self: {
        description = "Haskell template code generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trurl";
      }) {};
 
   "trust-chain" = callPackage
@@ -281400,6 +284928,7 @@ self: {
        description = "Real time TSP tour visualization";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tsp-viz";
        broken = true;
      }) {};
 
@@ -281452,6 +284981,7 @@ self: {
        description = "Interacts with tesseract to ease reading of RAW Japanese manga";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tsuntsun";
        broken = true;
      }) {};
 
@@ -281467,6 +284997,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Convert tsv to csv";
        license = lib.licenses.bsd3;
+       mainProgram = "tsv2csv";
      }) {};
 
   "tsvsql" = callPackage
@@ -281486,6 +285017,7 @@ self: {
        description = "Template tsv into SQL";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tsvsql";
        broken = true;
      }) {};
 
@@ -281516,6 +285048,7 @@ self: {
        description = "An API binding Web.Spock to Database.Beam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tsweb";
      }) {};
 
   "ttask" = callPackage
@@ -281539,6 +285072,7 @@ self: {
        description = "This is task management tool for yourself, that inspired by scrum";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ttask";
        broken = true;
      }) {};
 
@@ -281613,7 +285147,7 @@ self: {
        ];
        description = "Things Tracker Network JSON Types";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sorki ];
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "ttn-client" = callPackage
@@ -281635,7 +285169,8 @@ self: {
        description = "TheThingsNetwork client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ sorki ];
+       mainProgram = "ttnc";
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "ttrie" = callPackage
@@ -281689,6 +285224,7 @@ self: {
        description = "Working with files for the Tiptoi® pen";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tttool";
        broken = true;
      }) {};
 
@@ -281750,6 +285286,7 @@ self: {
        description = "Homogeneous tuples";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tuplepp";
      }) {};
 
   "tuple" = callPackage
@@ -281940,6 +285477,7 @@ self: {
        description = "Plays music generated by Turing machines with 5 states and 2 symbols";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "turing-music";
        broken = true;
      }) {};
 
@@ -281974,6 +285512,7 @@ self: {
        testHaskellDepends = [ base HUnit ];
        description = "Haskell port of Deniz Yuret's Turkish deasciifier";
        license = lib.licenses.mit;
+       mainProgram = "turkish-deasciifier";
      }) {};
 
   "turn-loop" = callPackage
@@ -281998,6 +285537,7 @@ self: {
        executableHaskellDepends = [ base containers MonadRandom random ];
        description = "shifts scheduling tool";
        license = lib.licenses.bsd3;
+       mainProgram = "settimana";
      }) {};
 
   "turtle" = callPackage
@@ -282021,7 +285561,34 @@ self: {
        benchmarkHaskellDepends = [ base tasty-bench text ];
        description = "Shell programming, Haskell-style";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
+     }) {};
+
+  "turtle_1_6_0" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, async, base, bytestring, clock
+     , containers, directory, doctest, exceptions, filepath, foldl
+     , hostname, managed, optional-args, optparse-applicative, process
+     , stm, streaming-commons, tasty, tasty-bench, tasty-hunit
+     , temporary, text, time, transformers, unix, unix-compat
+     }:
+     mkDerivation {
+       pname = "turtle";
+       version = "1.6.0";
+       sha256 = "1g35l9c3zsimirlhknjma6pziiaxam51i6r0a4xfbr7cc8psflc5";
+       libraryHaskellDepends = [
+         ansi-wl-pprint async base bytestring clock containers directory
+         exceptions filepath foldl hostname managed optional-args
+         optparse-applicative process stm streaming-commons temporary text
+         time transformers unix unix-compat
+       ];
+       testHaskellDepends = [
+         base doctest filepath tasty tasty-hunit temporary
+       ];
+       benchmarkHaskellDepends = [ base tasty-bench text ];
+       description = "Shell programming, Haskell-style";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "turtle-options" = callPackage
@@ -282039,6 +285606,7 @@ self: {
        description = "Collection of command line options and parsers for these options";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -282053,6 +285621,7 @@ self: {
        executableHaskellDepends = [ base bytestring ];
        description = "Trailing Whitespace";
        license = lib.licenses.bsd3;
+       mainProgram = "tw";
      }) {};
 
   "twain" = callPackage
@@ -282104,6 +285673,7 @@ self: {
        ];
        description = "An equational theorem prover";
        license = lib.licenses.bsd3;
+       mainProgram = "twee";
      }) {};
 
   "twee-lib" = callPackage
@@ -282148,6 +285718,7 @@ self: {
        description = "Command-line tool for twitter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tweet";
      }) {};
 
   "twentefp" = callPackage
@@ -282289,6 +285860,7 @@ self: {
        description = "Rubik's cube solver";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "twentyseven";
      }) {};
 
   "twfy-api-client" = callPackage
@@ -282315,6 +285887,7 @@ self: {
        description = "They Work For You API Client Library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "twfy-api-client";
        broken = true;
      }) {};
 
@@ -282347,6 +285920,7 @@ self: {
        description = "CLI twitter client";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "twhs";
      }) {};
 
   "twidge" = callPackage
@@ -282368,6 +285942,7 @@ self: {
        description = "Unix Command-Line Twitter and Identica Client";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "twidge";
      }) {};
 
   "twilight-stm" = callPackage
@@ -282540,6 +286115,7 @@ self: {
        description = "A Haskell-based CLI Twitter client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "twitter";
        broken = true;
      }) {};
 
@@ -282719,6 +286295,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Filter to convert plain text files to RTF";
        license = "GPL";
+       mainProgram = "txt2rtf";
      }) {};
 
   "txtblk" = callPackage
@@ -283182,12 +286759,27 @@ self: {
        pname = "type-level-numbers";
        version = "0.1.1.1";
        sha256 = "12iiyaqi60fpds7fv1qvphy84rwyj71maq54mfwpcr0bdrgyymjv";
+       revision = "1";
+       editedCabalFile = "0nzam0mkawxaq793l5isrfnc3vg8s73lca5nig0y50kfmyk30sbc";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base template-haskell ];
        description = "Type level numbers implemented using type families";
        license = lib.licenses.bsd3;
      }) {};
 
+  "type-level-numbers_0_1_1_2" = callPackage
+    ({ mkDerivation, base, template-haskell }:
+     mkDerivation {
+       pname = "type-level-numbers";
+       version = "0.1.1.2";
+       sha256 = "0bw2b0hw8svgsy3whqxj66qqffdrl7643ar8187n9a0drs81353i";
+       libraryHaskellDepends = [ base template-haskell ];
+       testHaskellDepends = [ base template-haskell ];
+       description = "Type level numbers implemented using type families";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "type-level-sets" = callPackage
     ({ mkDerivation, base, ghc-prim }:
      mkDerivation {
@@ -283705,7 +287297,7 @@ self: {
        executableHaskellDepends = [ base diagrams-lib text ];
        description = "Typed and composable spreadsheets";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "typed-streams" = callPackage
@@ -283784,6 +287376,7 @@ self: {
        description = "Language-independent type-safe communication";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "twirec";
        broken = true;
      }) {};
 
@@ -283969,6 +287562,7 @@ self: {
        executableHaskellDepends = [ base process ];
        description = "Small script for inferring types";
        license = lib.licenses.bsd3;
+       mainProgram = "typeof";
      }) {};
 
   "typeparams" = callPackage
@@ -284078,6 +287672,7 @@ self: {
        description = "A documentation generator for TypeScript Definition files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "typescript-docs";
      }) {};
 
   "typical" = callPackage
@@ -284116,6 +287711,7 @@ self: {
        description = "Just let me draw nice text already";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "typograffiti-exe";
        broken = true;
      }) {};
 
@@ -284268,7 +287864,7 @@ self: {
        preConfigure = "export TZDIR=${pkgs.tzdata}/share/zoneinfo";
        description = "Efficient time zone handling";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "tzdata" = callPackage
@@ -284327,6 +287923,7 @@ self: {
        description = "A simplistic dependently-typed language with parametricity";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "uAgda";
        broken = true;
      }) {};
 
@@ -284375,6 +287972,7 @@ self: {
        ];
        description = "Userspace Advanced Configuration and Power Interface event daemon";
        license = lib.licenses.bsd3;
+       mainProgram = "uacpid";
      }) {};
 
   "uber" = callPackage
@@ -284564,9 +288162,7 @@ self: {
        libraryPkgconfigDepends = [ systemd ];
        description = "libudev bindings";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {inherit (pkgs) systemd;};
 
   "udp-conduit" = callPackage
@@ -284686,6 +288282,7 @@ self: {
        description = "hex dumper for UTF-8 text";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "uhexdump";
        broken = true;
      }) {};
 
@@ -284712,6 +288309,7 @@ self: {
        description = "Minimal HTTP client library optimized for benchmarking";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "uhttpc-bench";
        broken = true;
      }) {};
 
@@ -284727,6 +288325,7 @@ self: {
        description = "A framework for friendly commandline programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ui-cmd-hello";
        broken = true;
      }) {};
 
@@ -284823,6 +288422,7 @@ self: {
        description = "Implementation of ULID - Universally Unique Lexicographically Sortable Identifier";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ulid-exe";
        broken = true;
      }) {};
 
@@ -284841,6 +288441,7 @@ self: {
        ];
        description = "Universal un-archiver utility";
        license = lib.licenses.bsd3;
+       mainProgram = "una";
      }) {};
 
   "unagi-bloomfilter" = callPackage
@@ -285076,6 +288677,7 @@ self: {
        description = "A library for reference cells backed by unboxed-vectors";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -285120,6 +288722,7 @@ self: {
        description = "Secure and resilient remote file storage utility";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "unbreak";
        broken = true;
      }) {};
 
@@ -285135,6 +288738,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Customize uncaught exception handling";
        license = lib.licenses.mpl20;
+       mainProgram = "uncaught-exception-demo";
      }) {};
 
   "uncertain" = callPackage
@@ -285609,6 +289213,7 @@ self: {
        testHaskellDepends = [ base text ];
        description = "Make writing in unicode easy";
        license = lib.licenses.bsd3;
+       mainProgram = "unicoder";
      }) {};
 
   "unidecode" = callPackage
@@ -285917,6 +289522,7 @@ self: {
        ];
        description = "uniq-deep";
        license = lib.licenses.mit;
+       mainProgram = "uniq-deep";
      }) {};
 
   "unique" = callPackage
@@ -286265,6 +289871,7 @@ self: {
          semigroups split text
        ];
        license = lib.licenses.bsd3;
+       mainProgram = "unity-testresult-parser";
      }) {};
 
   "unitym" = callPackage
@@ -286743,6 +290350,7 @@ self: {
        executableHaskellDepends = [ base unix ];
        description = "Unlambda interpreter";
        license = "GPL";
+       mainProgram = "unlambda";
      }) {};
 
   "unlift" = callPackage
@@ -286856,6 +290464,7 @@ self: {
        description = "Fast and robust message queues for concurrent processes";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "unliftio-messagebox-memleak-test";
        broken = true;
      }) {};
 
@@ -286885,6 +290494,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "unliftio-pool_0_2_2_0" = callPackage
+    ({ mkDerivation, base, resource-pool, time, transformers
+     , unliftio-core
+     }:
+     mkDerivation {
+       pname = "unliftio-pool";
+       version = "0.2.2.0";
+       sha256 = "08246kbmgxv5afm6kngag2mh8mswifsh6017z8rirca37cwp01vr";
+       libraryHaskellDepends = [
+         base resource-pool time transformers unliftio-core
+       ];
+       description = "Data.Pool generalized to MonadUnliftIO.";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "unliftio-streams" = callPackage
     ({ mkDerivation, base, bytestring, io-streams, text, unliftio-core
      }:
@@ -286911,6 +290536,7 @@ self: {
        executableHaskellDepends = [ base directory text ];
        description = "Tool to convert literate code between styles or to code";
        license = lib.licenses.bsd3;
+       mainProgram = "unlit";
      }) {};
 
   "unm-hip" = callPackage
@@ -286941,6 +290567,7 @@ self: {
        executableHaskellDepends = [ base storable-endian utility-ht ];
        description = "Extract useful information from Amiga MED files";
        license = lib.licenses.gpl3Only;
+       mainProgram = "unmed2";
      }) {};
 
   "unordered-containers" = callPackage
@@ -287076,6 +290703,7 @@ self: {
        doHaddock = false;
        description = "Unpacked containers via backpack";
        license = lib.licenses.bsd2;
+       mainProgram = "unpacked-set-example";
      }) {};
 
   "unpacked-either" = callPackage
@@ -287279,6 +290907,7 @@ self: {
        description = "Solve Boggle-like word games";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "unscramble";
      }) {};
 
   "unsequential" = callPackage
@@ -287312,6 +290941,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Utility construction of the graph depending unusable packages";
        license = lib.licenses.bsd3;
+       mainProgram = "unusablepkg";
      }) {};
 
   "unused" = callPackage
@@ -287341,6 +290971,7 @@ self: {
        description = "A command line tool to identify unused code";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "unused";
        broken = true;
      }) {};
 
@@ -287391,6 +291022,7 @@ self: {
        description = "Command-line tool to generate paths for moving upward in a file system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "up";
      }) {};
 
   "up-grade" = callPackage
@@ -287404,6 +291036,7 @@ self: {
        executableHaskellDepends = [ base ports-tools process ];
        description = "Software management tool";
        license = "unknown";
+       mainProgram = "up";
      }) {};
 
   "update-monad" = callPackage
@@ -287444,7 +291077,10 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "A program to update fetchgit values in Nix expressions";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ expipiplus1 sorki ];
+       mainProgram = "update-nix-fetchgit";
+       maintainers = [
+         lib.maintainers.expipiplus1 lib.maintainers.sorki
+       ];
      }) {};
 
   "update-repos" = callPackage
@@ -287467,6 +291103,7 @@ self: {
        testHaskellDepends = [ base hspec QuickCheck ];
        description = "Update all your git repositories with just one command";
        license = lib.licenses.asl20;
+       mainProgram = "update-repos";
      }) {};
 
   "uploadcare" = callPackage
@@ -287582,6 +291219,7 @@ self: {
        description = "Minimalistic CLI RSS reader";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ureader";
      }) {};
 
   "urembed" = callPackage
@@ -287603,6 +291241,7 @@ self: {
        description = "Ur/Web static content generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "urembed";
      }) {};
 
   "uri" = callPackage
@@ -287782,6 +291421,7 @@ self: {
        description = "URI template library for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "main";
        broken = true;
      }) {};
 
@@ -287916,6 +291556,7 @@ self: {
        description = "Parallel link checker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "urlcheck";
        broken = true;
      }) {};
 
@@ -287931,6 +291572,7 @@ self: {
        description = "Decode percent-encoded strings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "urldecode";
        broken = true;
      }) {};
 
@@ -288030,6 +291672,7 @@ self: {
        description = "XML parser-printer supporting Ur/Web syntax extensions";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "urxml";
        broken = true;
      }) {};
 
@@ -288158,6 +291801,7 @@ self: {
        description = "A collection of user agents";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "random-user-agent";
        broken = true;
      }) {};
 
@@ -288280,7 +291924,7 @@ self: {
        description = "A pragmatic time and date library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
        broken = true;
      }) {};
 
@@ -288356,6 +292000,7 @@ self: {
        description = "Variants of Prelude and System.IO with UTF8 text I/O operations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "utf8-test";
        broken = true;
      }) {};
 
@@ -288644,6 +292289,7 @@ self: {
        executableHaskellDepends = [ base uuagc-cabal ];
        description = "Attribute Grammar System of Universiteit Utrecht";
        license = lib.licenses.bsd3;
+       mainProgram = "uuagc";
      }) {};
 
   "uuagc-bootstrap" = callPackage
@@ -288667,6 +292313,7 @@ self: {
        description = "Attribute Grammar System of Universiteit Utrecht";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "uuagc-bootstrap";
        broken = true;
      }) {};
 
@@ -288711,6 +292358,7 @@ self: {
        executableHaskellDepends = [ base process ];
        description = "A debugger for the UUAG system";
        license = "unknown";
+       mainProgram = "uuagd";
      }) {};
 
   "uuid" = callPackage
@@ -288878,7 +292526,7 @@ self: {
        testHaskellDepends = [ base Cabal HUnit text ];
        description = "Tweak .cabal files";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ berberman ];
+       maintainers = [ lib.maintainers.berberman ];
      }) {};
 
   "uvector" = callPackage
@@ -288983,6 +292631,7 @@ self: {
        description = "the cabal companion";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vabal";
      }) {};
 
   "vabal-lib" = callPackage
@@ -289064,6 +292713,7 @@ self: {
        description = "Visualize live Haskell data structures using vacuum, graphviz and OpenGL";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vacuum-opengl-server";
      }) {};
 
   "vacuum-ubigraph" = callPackage
@@ -289242,8 +292892,8 @@ self: {
      }:
      mkDerivation {
        pname = "validation-selective";
-       version = "0.1.0.1";
-       sha256 = "005j45rm0bqjlyh3w67zi62hjv3fp0np7szz80s9nm203i8p6wzb";
+       version = "0.1.0.2";
+       sha256 = "1gsvcm8gjp8kdfprd1i4h9si8f2ym1gj3hqfwz7x1ylsa8qxwvq1";
        libraryHaskellDepends = [ base deepseq selective ];
        testHaskellDepends = [
          base doctest hedgehog hspec hspec-hedgehog selective text
@@ -289527,6 +293177,7 @@ self: {
        description = "Analyze and visualize expression trees";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vampire";
        broken = true;
      }) {};
 
@@ -289713,6 +293364,7 @@ self: {
        ];
        description = "FRP through value streams and monadic splines";
        license = lib.licenses.mit;
+       mainProgram = "varying-example";
      }) {};
 
   "vault" = callPackage
@@ -289872,6 +293524,7 @@ self: {
        description = "Recursively check that a directory is under version control";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vcatt";
        broken = true;
      }) {};
 
@@ -289927,6 +293580,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Library for handling files ignored by VCS systems";
        license = lib.licenses.bsd3;
+       mainProgram = "ignore";
      }) {};
 
   "vcs-revision" = callPackage
@@ -289997,6 +293651,7 @@ self: {
        description = "Wrapper for source code management systems";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vcswrapper";
        broken = true;
      }) {};
 
@@ -290324,8 +293979,8 @@ self: {
      }:
      mkDerivation {
        pname = "vector-extras";
-       version = "0.2.6";
-       sha256 = "08zf1h6inqziy52q2nmgkvnaccpbg389pz41yyg6h0drsg5x8r4h";
+       version = "0.2.7";
+       sha256 = "0ygxryrm2sylv2is1nxw9j8qb8hrald7j0smcbx079g8byvf5nj7";
        libraryHaskellDepends = [
          base containers deferred-folds foldl hashable unordered-containers
          vector
@@ -290527,7 +294182,7 @@ self: {
        ];
        description = "Size tagged vectors";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       maintainers = [ lib.maintainers.expipiplus1 ];
      }) {};
 
   "vector-space" = callPackage
@@ -290703,6 +294358,7 @@ self: {
        ];
        description = "Easily view Vega or Vega-Lite visualizations";
        license = lib.licenses.bsd3;
+       mainProgram = "vegaview";
      }) {};
 
   "velma" = callPackage
@@ -290723,6 +294379,7 @@ self: {
        description = "Automatically add files to exposed-modules and other-modules";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "velma";
        broken = true;
      }) {};
 
@@ -290751,6 +294408,7 @@ self: {
        description = "ASCII platform-adventure game";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "venzone";
      }) {};
 
   "verbalexpressions" = callPackage
@@ -290797,6 +294455,7 @@ self: {
        description = "Validation framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tutorial";
        broken = true;
      }) {};
 
@@ -290834,10 +294493,7 @@ self: {
        ];
        description = "An intermediate language for Hoare logic style verification";
        license = lib.licenses.asl20;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
      }) {};
 
   "verify" = callPackage
@@ -290861,6 +294517,7 @@ self: {
        description = "A new Haskeleton package";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "verify";
        broken = true;
      }) {};
 
@@ -290913,6 +294570,7 @@ self: {
        description = "Random verilog generation and simulator testing";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "verismith";
        broken = true;
      }) {};
 
@@ -291110,6 +294768,7 @@ self: {
        description = "VFR waypoints, as published in the AIP (ERSA)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vfr-waypoints";
      }) {};
 
   "vgrep" = callPackage
@@ -291143,6 +294802,7 @@ self: {
        ];
        description = "A pager for grep";
        license = lib.licenses.bsd3;
+       mainProgram = "vgrep";
      }) {};
 
   "vhd" = callPackage
@@ -291219,6 +294879,7 @@ self: {
        description = "Text-based interactive GHC .prof viewer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "viewprof";
      }) {};
 
   "views" = callPackage
@@ -291300,6 +294961,7 @@ self: {
        description = "Frontend for video metadata tagging tools";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vimeta";
      }) {};
 
   "vimus" = callPackage
@@ -291330,6 +294992,7 @@ self: {
        description = "An MPD client with vim-like key bindings";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vimus";
        broken = true;
      }) {inherit (pkgs) ncurses;};
 
@@ -291352,6 +295015,7 @@ self: {
        description = "Interpreter for microcomputer-era BASIC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vintbas";
        broken = true;
      }) {};
 
@@ -291567,6 +295231,7 @@ self: {
        description = "Virtual Haskell Environment builder";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "virthualenv";
        broken = true;
      }) {};
 
@@ -291603,6 +295268,7 @@ self: {
        description = "An XMMS2 client";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vision";
      }) {};
 
   "visual-graphrewrite" = callPackage
@@ -291631,6 +295297,7 @@ self: {
        description = "Visualize the graph-rewrite steps of a Haskell program";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "visual-graphrewrite";
      }) {};
 
   "visual-prof" = callPackage
@@ -291650,6 +295317,7 @@ self: {
        description = "Create a visual profile of a program's source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "visual-prof";
        broken = true;
      }) {};
 
@@ -291672,6 +295340,7 @@ self: {
        ];
        description = "Visualize CBN reduction";
        license = lib.licenses.bsd3;
+       mainProgram = "visualize-cbn";
      }) {};
 
   "vitrea" = callPackage
@@ -291769,6 +295438,7 @@ self: {
        executableHaskellDepends = [ base bytestring process unix ];
        description = "Pseudo terminal interaction with subprocesses";
        license = lib.licenses.bsd3;
+       mainProgram = "ptywrap";
      }) {};
 
   "vocabulary-kadma" = callPackage
@@ -291882,6 +295552,7 @@ self: {
        description = "Upload audio files to voicebase to get a transcription";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "voicebase";
      }) {};
 
   "void" = callPackage
@@ -291991,9 +295662,8 @@ self: {
        executableSystemDepends = [ quat vrpn ];
        description = "Bindings to VRPN";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "test-vrpn";
      }) {quat = null; inherit (pkgs) vrpn;};
 
   "vt-utils" = callPackage
@@ -292167,6 +295837,7 @@ self: {
        description = "A lib for displaying a menu and getting a selection using VTY";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vty-menu";
        broken = true;
      }) {};
 
@@ -292190,6 +295861,7 @@ self: {
        description = "An interactive terminal user interface library for Vty";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vty-ui-tests";
        broken = true;
      }) {};
 
@@ -292222,8 +295894,10 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Bindings to the Vulkan graphics API";
        license = lib.licenses.bsd3;
-       platforms = [ "aarch64-linux" "x86_64-linux" ];
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       badPlatforms = [
+         "i686-linux" "armv7l-linux"
+       ] ++ lib.platforms.darwin;
+       maintainers = [ lib.maintainers.expipiplus1 ];
      }) {vulkan = null;};
 
   "vulkan-api" = callPackage
@@ -292256,10 +295930,8 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Utils for the vulkan package";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       badPlatforms = lib.platforms.darwin;
+       maintainers = [ lib.maintainers.expipiplus1 ];
      }) {};
 
   "waargonaut" = callPackage
@@ -292406,6 +296078,7 @@ self: {
        ];
        description = "Rewrite based on Accept-Language header";
        license = lib.licenses.bsd3;
+       mainProgram = "wai-accept-language-exe";
      }) {};
 
   "wai-app-file-cgi" = callPackage
@@ -292466,6 +296139,7 @@ self: {
        ];
        description = "WAI application for static serving";
        license = lib.licenses.mit;
+       mainProgram = "warp";
      }) {};
 
   "wai-cli" = callPackage
@@ -292568,6 +296242,7 @@ self: {
        description = "A web server for the development of WAI compliant web applications";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wai-devel";
      }) {};
 
   "wai-digestive-functors" = callPackage
@@ -292689,6 +296364,28 @@ self: {
        executableHaskellDepends = [ base wai warp ];
        description = "Feature flag support for WAI applications";
        license = lib.licenses.bsd3;
+       mainProgram = "example-app";
+     }) {};
+
+  "wai-feature-flags_0_1_0_4" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, splitmix, text
+     , unordered-containers, wai, warp
+     }:
+     mkDerivation {
+       pname = "wai-feature-flags";
+       version = "0.1.0.4";
+       sha256 = "02fwha57wwjbjapkp519da2jml3921rdlna1zr7vdmrqdz6j327j";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring splitmix text unordered-containers wai
+       ];
+       executableHaskellDepends = [ base wai warp ];
+       description = "Feature flag support for WAI applications";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-app";
      }) {};
 
   "wai-frontend-monadcgi" = callPackage
@@ -292947,6 +296644,7 @@ self: {
        description = "Haskell Webapps on AWS Lambda";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wai-lambda";
        broken = true;
      }) {};
 
@@ -293040,6 +296738,7 @@ self: {
        description = "Buffer requets before logging them";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -293088,6 +296787,7 @@ self: {
        ];
        description = "Compiling and serving assets";
        license = lib.licenses.bsd3;
+       mainProgram = "wai-make-assets";
      }) {};
 
   "wai-middleware-auth" = callPackage
@@ -293126,6 +296826,7 @@ self: {
        description = "Authentication middleware that secures WAI application";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wai-auth";
        broken = true;
      }) {};
 
@@ -293170,6 +296871,7 @@ self: {
        description = "WAI middleware for brotli compression";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wai-middleware-brotli-server";
      }) {};
 
   "wai-middleware-cache" = callPackage
@@ -293382,6 +297084,7 @@ self: {
        description = "Middleware and utilities for using Atlassian Crowd authentication";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wai-crowd";
        broken = true;
      }) {};
 
@@ -294037,6 +297740,7 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "waicookie-genkey";
        broken = true;
      }) {};
 
@@ -294161,6 +297865,7 @@ self: {
        description = "Simple Redis backed wai-session backend";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wai-session-redis-example-exe";
        broken = true;
      }) {};
 
@@ -294329,6 +298034,7 @@ self: {
        ];
        description = "Provide a bridge between WAI and the websockets package";
        license = lib.licenses.mit;
+       mainProgram = "wai-websockets-example";
      }) {};
 
   "wait-handle" = callPackage
@@ -294479,6 +298185,7 @@ self: {
        ];
        description = "A parser for the Web Archive (WARC) format";
        license = lib.licenses.bsd3;
+       mainProgram = "warc-export";
      }) {};
 
   "warp" = callPackage
@@ -294530,6 +298237,7 @@ self: {
        description = "Dynamic configurable warp HTTP server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "warpd";
        broken = true;
      }) {};
 
@@ -294584,6 +298292,7 @@ self: {
        description = "Static file server based on Warp and wai-app-static (deprecated)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "warp";
        broken = true;
      }) {};
 
@@ -294734,6 +298443,7 @@ self: {
        description = "File change watching utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "watchit";
        broken = true;
      }) {};
 
@@ -294748,6 +298458,7 @@ self: {
        executableHaskellDepends = [ base directory filepath process ];
        description = "Command-line tool for converting audio files and filling in ID3 tags";
        license = lib.licenses.bsd3;
+       mainProgram = "wavconvert";
      }) {};
 
   "wave" = callPackage
@@ -295103,6 +298814,7 @@ self: {
        description = "representations of a web page";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "web-rep-example";
        broken = true;
      }) {};
 
@@ -295588,6 +299300,7 @@ self: {
        description = "Turn an optparse-applicative program into a CGI program!";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "testcloud";
        broken = true;
      }) {};
 
@@ -295795,6 +299508,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A Haskell bindings for Webex Teams API";
        license = lib.licenses.mit;
+       mainProgram = "webex-teams-api-exe";
      }) {};
 
   "webex-teams-conduit" = callPackage
@@ -295821,6 +299535,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Conduit wrapper of Webex Teams List API";
        license = lib.licenses.mit;
+       mainProgram = "webex-teams-conduit-exe";
      }) {};
 
   "webex-teams-pipes" = callPackage
@@ -295848,6 +299563,7 @@ self: {
        description = "Pipes wrapper of Webex Teams List API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "webex-teams-pipes-exe";
        broken = true;
      }) {};
 
@@ -295890,6 +299606,26 @@ self: {
        license = lib.licenses.mpl20;
      }) {};
 
+  "webgear-core_1_0_2" = callPackage
+    ({ mkDerivation, arrows, base, bytestring, case-insensitive
+     , filepath, http-api-data, http-media, http-types, jose, mime-types
+     , network, safe-exceptions, tagged, template-haskell, text
+     , unordered-containers, wai
+     }:
+     mkDerivation {
+       pname = "webgear-core";
+       version = "1.0.2";
+       sha256 = "18zzi1gs0sxa8x061lqavipjn82zzvpnlff02cz7k8lvyyivyn60";
+       libraryHaskellDepends = [
+         arrows base bytestring case-insensitive filepath http-api-data
+         http-media http-types jose mime-types network safe-exceptions
+         tagged template-haskell text unordered-containers wai
+       ];
+       description = "Composable, type-safe library to build HTTP APIs";
+       license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "webgear-openapi" = callPackage
     ({ mkDerivation, arrows, base, http-media, http-types
      , insert-ordered-containers, lens, openapi3, text, webgear-core
@@ -295906,6 +299642,23 @@ self: {
        license = lib.licenses.mpl20;
      }) {};
 
+  "webgear-openapi_1_0_2" = callPackage
+    ({ mkDerivation, arrows, base, http-media, http-types
+     , insert-ordered-containers, lens, openapi3, text, webgear-core
+     }:
+     mkDerivation {
+       pname = "webgear-openapi";
+       version = "1.0.2";
+       sha256 = "0k3smna51wm9rc00nzv8cf7pd16l4ddldr27niw11gy27viyzpj2";
+       libraryHaskellDepends = [
+         arrows base http-media http-types insert-ordered-containers lens
+         openapi3 text webgear-core
+       ];
+       description = "Composable, type-safe library to build HTTP API servers";
+       license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "webgear-server" = callPackage
     ({ mkDerivation, aeson, arrows, base, base64-bytestring, bytestring
      , bytestring-conversion, http-api-data, http-media, http-types
@@ -295931,6 +299684,32 @@ self: {
        license = lib.licenses.mpl20;
      }) {};
 
+  "webgear-server_1_0_2" = callPackage
+    ({ mkDerivation, aeson, arrows, base, base64-bytestring, bytestring
+     , bytestring-conversion, http-api-data, http-media, http-types
+     , jose, monad-time, mtl, QuickCheck, quickcheck-instances, tasty
+     , tasty-hunit, tasty-quickcheck, text, unordered-containers, wai
+     , webgear-core
+     }:
+     mkDerivation {
+       pname = "webgear-server";
+       version = "1.0.2";
+       sha256 = "0zy0sxm3jcq8889494v7y1ydka739yw2gh38w60h2fw7awqlbj5w";
+       libraryHaskellDepends = [
+         aeson arrows base base64-bytestring bytestring
+         bytestring-conversion http-api-data http-media http-types jose
+         monad-time mtl text unordered-containers wai webgear-core
+       ];
+       testHaskellDepends = [
+         base base64-bytestring bytestring http-types QuickCheck
+         quickcheck-instances tasty tasty-hunit tasty-quickcheck text wai
+         webgear-core
+       ];
+       description = "Composable, type-safe library to build HTTP API servers";
+       license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "webidl" = callPackage
     ({ mkDerivation, base, bytestring, HSFFIG, LEXER, parsec, pretty
      , utf8-env, utf8-string
@@ -295970,7 +299749,8 @@ self: {
        ];
        description = "webfont generator";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ erictapen ];
+       mainProgram = "webify";
+       maintainers = [ lib.maintainers.erictapen ];
      }) {};
 
   "webkit" = callPackage
@@ -296019,9 +299799,7 @@ self: {
        libraryPkgconfigDepends = [ webkitgtk ];
        description = "JavaScriptCore FFI from webkitgtk";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) webkitgtk;};
 
   "webkitgtk3" = callPackage
@@ -296161,6 +299939,7 @@ self: {
        description = "Show programming language printed values in a web UI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "webshow";
        broken = true;
      }) {};
 
@@ -296176,6 +299955,7 @@ self: {
        description = "Transforms URLs to PNGs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "websnap";
      }) {};
 
   "websockets" = callPackage
@@ -296326,6 +300106,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "a wedding announcement";
        license = lib.licenses.publicDomain;
+       mainProgram = "wedding-announcement";
      }) {};
 
   "wedged" = callPackage
@@ -296345,6 +300126,7 @@ self: {
        description = "Wedged postcard generator";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wedged";
        broken = true;
      }) {};
 
@@ -296371,7 +300153,8 @@ self: {
        description = "Detect dead code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "weeder";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "weeder_2_3_1" = callPackage
@@ -296397,7 +300180,8 @@ self: {
        description = "Detect dead code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "weeder";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "weeder" = callPackage
@@ -296422,7 +300206,8 @@ self: {
        ];
        description = "Detect dead code";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "weeder";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "weekdaze" = callPackage
@@ -296453,6 +300238,7 @@ self: {
        description = "A school-timetable problem-solver";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "weekdaze";
        broken = true;
      }) {};
 
@@ -296548,6 +300334,7 @@ self: {
        ];
        description = "Pretty-printing of codebases";
        license = lib.licenses.bsd3;
+       mainProgram = "wembley";
      }) {};
 
   "werewolf" = callPackage
@@ -296573,6 +300360,7 @@ self: {
        description = "A game engine for playing werewolf within an arbitrary chat client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "werewolf";
        broken = true;
      }) {};
 
@@ -296594,6 +300382,7 @@ self: {
        description = "A chat interface for playing werewolf in Slack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "werewolf-slack";
      }) {};
 
   "wgpu-hs" = callPackage
@@ -296678,6 +300467,7 @@ self: {
        description = "Solver-agnostic symbolic values support for issuing queries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "quickstart";
      }) {};
 
   "wheb-mongo" = callPackage
@@ -296757,6 +300547,7 @@ self: {
        description = "A Haskell window manager";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "whim";
        broken = true;
      }) {};
 
@@ -296786,6 +300577,7 @@ self: {
        description = "Whitespace, an esoteric programming language";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wspace";
      }) {};
 
   "whois" = callPackage
@@ -296937,6 +300729,7 @@ self: {
        description = "Wikipedia EPUB E-Book construction from Firefox history";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wiki4e-mkepub-subtree";
      }) {};
 
   "wild-bind" = callPackage
@@ -297061,6 +300854,7 @@ self: {
        executableHaskellDepends = [ base process split ];
        description = "Work with multiple Haskell Platform versions on Windows";
        license = lib.licenses.bsd3;
+       mainProgram = "use-hppath";
      }) {};
 
   "windns" = callPackage
@@ -297147,6 +300941,7 @@ self: {
        description = "A compact, well-typed seralisation format for Haskell values";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "winery";
        broken = true;
      }) {};
 
@@ -297278,7 +301073,7 @@ self: {
        ];
        description = "Convert values from one type into another";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "with-index" = callPackage
@@ -297326,6 +301121,7 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Get your IO right on the first try";
        license = lib.licenses.mpl20;
+       mainProgram = "utf8-troubleshoot";
      }) {};
 
   "withdependencies" = callPackage
@@ -297396,21 +301192,6 @@ self: {
      }) {};
 
   "witness" = callPackage
-    ({ mkDerivation, base, constraints, countable, semigroupoids
-     , transformers
-     }:
-     mkDerivation {
-       pname = "witness";
-       version = "0.5";
-       sha256 = "0888969dypgykmhp33nar4a6yhrbd5i6agnbq415ni5cfdx1c2cr";
-       libraryHaskellDepends = [
-         base constraints countable semigroupoids transformers
-       ];
-       description = "values that witness types";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "witness_0_6" = callPackage
     ({ mkDerivation, base, constraints, countable }:
      mkDerivation {
        pname = "witness";
@@ -297420,6 +301201,7 @@ self: {
        description = "values that witness types";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "witty" = callPackage
@@ -297434,6 +301216,7 @@ self: {
        description = "A network server to show bottlenecks of GHC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "witty";
        broken = true;
      }) {};
 
@@ -297674,6 +301457,7 @@ self: {
        description = "A simple and highly performant HTTP file server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wobsurv";
      }) {};
 
   "woe" = callPackage
@@ -297703,6 +301487,7 @@ self: {
        description = "Web Open Font Format (WOFF) unpacker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "woffex";
        broken = true;
      }) {};
 
@@ -297719,6 +301504,7 @@ self: {
        description = "Send a Wake on LAN Magic Packet";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wol";
        broken = true;
      }) {};
 
@@ -297930,6 +301716,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion pandoc text ];
        description = "Get word counts and distributions";
        license = lib.licenses.bsd3;
+       mainProgram = "wrd";
      }) {};
 
   "wordcloud" = callPackage
@@ -297983,6 +301770,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wordify-exe";
        broken = true;
      }) {};
 
@@ -298002,6 +301790,7 @@ self: {
        ];
        description = "Command-line tool to get random words";
        license = lib.licenses.asl20;
+       mainProgram = "wordlist";
      }) {};
 
   "wordn" = callPackage
@@ -298047,6 +301836,7 @@ self: {
        description = "Dictionary-based password generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wordpass";
        broken = true;
      }) {};
 
@@ -298093,6 +301883,7 @@ self: {
        description = "A word search solver library and executable";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wordsearch";
        broken = true;
      }) {};
 
@@ -298112,6 +301903,7 @@ self: {
        ];
        description = "Compare two files as sets of N-tuples of words";
        license = lib.licenses.bsd3;
+       mainProgram = "wordsetdiff";
      }) {};
 
   "work-time" = callPackage
@@ -298127,6 +301919,7 @@ self: {
        description = "A library for parsing a chat-based work hour reporting scheme";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "work-time";
        broken = true;
      }) {};
 
@@ -298165,6 +301958,7 @@ self: {
        description = "Utilities (e.g. Googling the clipboard contents) for the `workflow` pacakge";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-workflow-extra";
      }) {};
 
   "workflow-osx" = callPackage
@@ -298185,6 +301979,7 @@ self: {
        description = "a \"Desktop Workflow\" monad with Objective-C bindings";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -298209,6 +302004,7 @@ self: {
        description = "manipulate `workflow-types:Workflow`'s";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-workflow-pure";
      }) {};
 
   "workflow-types" = callPackage
@@ -298228,6 +302024,7 @@ self: {
        description = "Automate keyboard\\/mouse\\/clipboard\\/application interaction";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-workflow-types";
      }) {};
 
   "workflow-windows" = callPackage
@@ -298243,6 +302040,7 @@ self: {
        description = "Automate keyboard/mouse/clipboard/application interaction";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "workflow-windows-example";
        broken = true;
      }) {};
 
@@ -298292,6 +302090,7 @@ self: {
        description = "Subscribe to a wiki's RSS feed and archive external links";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wp-archivebot";
        broken = true;
      }) {};
 
@@ -298401,6 +302200,7 @@ self: {
        description = "An HTTP Performance Benchmarker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wreck";
      }) {};
 
   "wrecker-ui" = callPackage
@@ -298434,6 +302234,7 @@ self: {
        description = "A web interface for Wrecker, the HTTP Performance Benchmarker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wrecker-ui";
      }) {};
 
   "wreq" = callPackage
@@ -298772,6 +302573,7 @@ self: {
        description = "A simple CLI utility for interacting with a websocket";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ws";
      }) {};
 
   "ws-chans" = callPackage
@@ -298833,6 +302635,7 @@ self: {
        description = "A small tool to list, add and remove webseeds from a torrent file";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wsedit";
        broken = true;
      }) {};
 
@@ -298855,6 +302658,7 @@ self: {
        ];
        description = "Terminal emulator over websockets";
        license = lib.licenses.bsd3;
+       mainProgram = "wshterm";
      }) {};
 
   "wsjtx-udp" = callPackage
@@ -298874,6 +302678,7 @@ self: {
        description = "WSJT-X UDP protocol";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wsjtx-dump-udp";
        broken = true;
      }) {};
 
@@ -298923,7 +302728,8 @@ self: {
        ];
        description = "Tunneling program over websocket protocol";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ gebner ];
+       mainProgram = "wstunnel";
+       maintainers = [ lib.maintainers.gebner ];
      }) {};
 
   "wtk" = callPackage
@@ -298969,6 +302775,7 @@ self: {
        description = "Unimportant Unix adminstration tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pao";
      }) {};
 
   "wuerfelschlange" = callPackage
@@ -299073,20 +302880,6 @@ self: {
      }:
      mkDerivation {
        pname = "wuss";
-       version = "1.1.19";
-       sha256 = "1i7y6kqynbc5qbl091ihdfn9ak8ny8rdp83svl06m6ijvphjqskq";
-       libraryHaskellDepends = [
-         base bytestring connection network websockets
-       ];
-       description = "Secure WebSocket (WSS) clients";
-       license = lib.licenses.mit;
-     }) {};
-
-  "wuss_2_0_0_1" = callPackage
-    ({ mkDerivation, base, bytestring, connection, network, websockets
-     }:
-     mkDerivation {
-       pname = "wuss";
        version = "2.0.0.1";
        sha256 = "17s6wilzyzsdc174a3an12pkq20cy7x2pfrn4jmdp30f468r47fb";
        libraryHaskellDepends = [
@@ -299094,7 +302887,6 @@ self: {
        ];
        description = "Secure WebSocket (WSS) clients";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "wx" = callPackage
@@ -299123,6 +302915,7 @@ self: {
        description = "Try to avoid the asteroids with your space ship";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wxAsteroids";
      }) {};
 
   "wxFruit" = callPackage
@@ -299138,6 +302931,7 @@ self: {
        description = "An implementation of Fruit using wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "paddle";
      }) {};
 
   "wxSimpleCanvas" = callPackage
@@ -299213,6 +303007,7 @@ self: {
        description = "helper tool for building wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wxdirect";
        broken = true;
      }) {};
 
@@ -299229,6 +303024,7 @@ self: {
        description = "An example of how to implement a basic notepad with wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wxhnotepad";
      }) {};
 
   "wxturtle" = callPackage
@@ -299245,6 +303041,7 @@ self: {
        description = "turtle like LOGO with wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "testTurtle";
      }) {};
 
   "wybor" = callPackage
@@ -299285,6 +303082,7 @@ self: {
        description = "An autoresponder for Dragon Go Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wyvern";
      }) {};
 
   "x-dsp" = callPackage
@@ -299403,6 +303201,7 @@ self: {
        ];
        description = "Utility for X509 certificate and chain";
        license = lib.licenses.bsd3;
+       mainProgram = "x509-util";
      }) {};
 
   "x509-validation" = callPackage
@@ -299459,9 +303258,7 @@ self: {
        ];
        description = "Haskell extended file attributes interface";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) attr;};
 
   "xbattbar" = callPackage
@@ -299475,6 +303272,7 @@ self: {
        executableHaskellDepends = [ base old-time select X11 ];
        description = "Simple battery indicator";
        license = lib.licenses.mit;
+       mainProgram = "xbattbar";
      }) {};
 
   "xcb-types" = callPackage
@@ -299514,6 +303312,7 @@ self: {
        ];
        description = "A cffi-based python binding for X";
        license = "unknown";
+       mainProgram = "xcffibgen";
      }) {};
 
   "xchat-plugin" = callPackage
@@ -299532,6 +303331,7 @@ self: {
        description = "XChat";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsxchat";
        broken = true;
      }) {};
 
@@ -299576,6 +303376,7 @@ self: {
        description = "A wget-like utility for retrieving files from XDCC bots on IRC";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xdcc";
      }) {};
 
   "xdg-basedir" = callPackage
@@ -299637,6 +303438,7 @@ self: {
        ];
        description = "Parse Graphviz xdot files and interactively view them using GTK and Cairo";
        license = lib.licenses.bsd3;
+       mainProgram = "xdot-demo";
      }) {};
 
   "xeno" = callPackage
@@ -299727,9 +303529,8 @@ self: {
        executableSystemDepends = [ xgboost ];
        description = "XGBoost library for Haskell";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-darwin" "i686-linux" "x86_64-darwin" "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" "armv7l-linux" ];
+       mainProgram = "xgb-agaricus";
      }) {inherit (pkgs) xgboost;};
 
   "xhaskell-library" = callPackage
@@ -299946,6 +303747,7 @@ self: {
        description = "Downloads the most recent xkcd comic";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xkcd";
        broken = true;
      }) {};
 
@@ -299986,6 +303788,7 @@ self: {
        description = "Parse Microsoft Excel xls files (BIFF/Excel 97-2004)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xls2csv";
        broken = true;
      }) {};
 
@@ -300017,34 +303820,6 @@ self: {
   "xlsx" = callPackage
     ({ mkDerivation, attoparsec, base, base64-bytestring, binary-search
      , bytestring, conduit, containers, criterion, data-default, deepseq
-     , Diff, errors, extra, filepath, groom, lens, mtl, network-uri
-     , old-locale, raw-strings-qq, safe, smallcheck, tasty, tasty-hunit
-     , tasty-smallcheck, text, time, transformers, vector, xeno
-     , xml-conduit, zip-archive, zlib
-     }:
-     mkDerivation {
-       pname = "xlsx";
-       version = "0.8.4";
-       sha256 = "0xmz9qpqyz2gwlrjsy2m79s4xswb6lz7fbvybd4awg5vy0y6pl41";
-       libraryHaskellDepends = [
-         attoparsec base base64-bytestring binary-search bytestring conduit
-         containers data-default deepseq errors extra filepath lens mtl
-         network-uri old-locale safe text time transformers vector xeno
-         xml-conduit zip-archive zlib
-       ];
-       testHaskellDepends = [
-         base bytestring containers Diff groom lens mtl raw-strings-qq
-         smallcheck tasty tasty-hunit tasty-smallcheck text time vector
-         xml-conduit
-       ];
-       benchmarkHaskellDepends = [ base bytestring criterion ];
-       description = "Simple and incomplete Excel file parser/writer";
-       license = lib.licenses.mit;
-     }) {};
-
-  "xlsx_1_0_0_1" = callPackage
-    ({ mkDerivation, attoparsec, base, base64-bytestring, binary-search
-     , bytestring, conduit, containers, criterion, data-default, deepseq
      , Diff, directory, dlist, errors, exceptions, extra, filepath
      , groom, hexpat, lens, monad-control, mtl, network-uri, old-locale
      , raw-strings-qq, safe, smallcheck, tasty, tasty-hunit
@@ -300073,7 +303848,6 @@ self: {
        ];
        description = "Simple and incomplete Excel file parser/writer";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "xlsx-tabular" = callPackage
@@ -300109,6 +303883,7 @@ self: {
        description = "Simple and incomplete Excel file templater";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
        broken = true;
      }) {};
 
@@ -300578,6 +304353,7 @@ self: {
        description = "Pretty print XML";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xml-prettify";
        broken = true;
      }) {};
 
@@ -300602,6 +304378,7 @@ self: {
        benchmarkHaskellDepends = [ base gauge protolude ];
        description = "XML pretty printer";
        license = lib.licenses.gpl2Only;
+       mainProgram = "xml-prettify";
      }) {};
 
   "xml-push" = callPackage
@@ -300718,6 +304495,7 @@ self: {
        description = "Library and command line tool for converting XML files to json";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xml-to-json";
        broken = true;
      }) {};
 
@@ -300733,6 +304511,7 @@ self: {
        executableHaskellDepends = [ base directory process ];
        description = "Fast, light converter of xml to json capable of handling huge xml files";
        license = lib.licenses.mit;
+       mainProgram = "xml-to-json-fast";
      }) {};
 
   "xml-tydom-conduit" = callPackage
@@ -300838,6 +304617,7 @@ self: {
        description = "translate xml to json";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xml2json";
        broken = true;
      }) {};
 
@@ -300858,6 +304638,7 @@ self: {
        description = "Convert BLAST output in XML format to CSV or HTML";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xml2x";
      }) {};
 
   "xmlbf" = callPackage
@@ -300990,6 +304771,7 @@ self: {
        description = "Show tv channels in the terminal";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tv";
      }) {};
 
   "xmms2-client" = callPackage
@@ -301064,9 +304846,8 @@ self: {
        benchmarkHaskellDepends = [ base gauge mtl time ];
        description = "A Minimalistic Text Based Status Bar";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "xmobar";
      }) {inherit (pkgs.xorg) libXpm; inherit (pkgs.xorg) libXrandr; 
          inherit (pkgs.xorg) libXrender; inherit (pkgs) wirelesstools;};
 
@@ -301095,7 +304876,8 @@ self: {
        '';
        description = "A tiling window manager";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "xmonad";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "xmonad-bluetilebranch" = callPackage
@@ -301116,6 +304898,7 @@ self: {
        description = "A tiling window manager";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xmonad";
        broken = true;
      }) {};
 
@@ -301138,7 +304921,7 @@ self: {
        ];
        description = "Community-maintained extensions extensions for xmonad";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "xmonad-contrib-bluetilebranch" = callPackage
@@ -301185,6 +304968,7 @@ self: {
        executableHaskellDepends = [ base dbus ];
        testHaskellDepends = [ base dbus ];
        license = lib.licenses.bsd3;
+       mainProgram = "xmonad-dbus";
      }) {};
 
   "xmonad-entryhelper" = callPackage
@@ -301242,9 +305026,7 @@ self: {
        ];
        description = "Third party extensions for xmonad with wacky dependencies";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "xmonad-screenshot" = callPackage
@@ -301324,9 +305106,7 @@ self: {
        ];
        description = "XMonad volume controls";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "xmonad-wallpaper" = callPackage
@@ -301477,6 +305257,7 @@ self: {
        description = "convert utility for xoj files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xournal-convert";
      }) {};
 
   "xournal-parser" = callPackage
@@ -301550,6 +305331,7 @@ self: {
        ];
        description = "Command line tool to extract DSV data from HTML and XML with XPATH expressions";
        license = lib.licenses.bsd3;
+       mainProgram = "xpathdsv";
      }) {};
 
   "xrefcheck" = callPackage
@@ -301596,6 +305378,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xrefcheck";
        broken = true;
      }) {};
 
@@ -301776,6 +305559,7 @@ self: {
        description = "#plaimi's all-encompassing bot";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yolobot";
        broken = true;
      }) {};
 
@@ -301792,6 +305576,7 @@ self: {
        executableHaskellDepends = [ base word8 ];
        description = "Yet Another Brainfuck Interpreter";
        license = lib.licenses.mit;
+       mainProgram = "yabi";
      }) {};
 
   "yabi-muno" = callPackage
@@ -301811,6 +305596,7 @@ self: {
        description = "Yet Another Brainfuck Interpreter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yabi";
        broken = true;
      }) {};
 
@@ -302206,6 +305992,7 @@ self: {
        description = "Yam Web";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yam-web";
      }) {};
 
   "yamemo" = callPackage
@@ -302465,32 +306252,6 @@ self: {
      }:
      mkDerivation {
        pname = "yaml-unscrambler";
-       version = "0.1.0.9";
-       sha256 = "18xl26w4w7ql0936n5h7fqmcpyg284gn507wx67vs3yqqva1n07a";
-       libraryHaskellDepends = [
-         acc attoparsec attoparsec-data attoparsec-time base
-         base64-bytestring bytestring conduit containers foldl hashable
-         libyaml mtl scientific selective text text-builder-dev time
-         transformers unordered-containers uuid vector yaml
-       ];
-       testHaskellDepends = [
-         foldl neat-interpolation QuickCheck quickcheck-instances rerebase
-         tasty tasty-hunit tasty-quickcheck
-       ];
-       description = "Flexible declarative YAML parsing toolkit";
-       license = lib.licenses.mit;
-     }) {};
-
-  "yaml-unscrambler_0_1_0_10" = callPackage
-    ({ mkDerivation, acc, attoparsec, attoparsec-data, attoparsec-time
-     , base, base64-bytestring, bytestring, conduit, containers, foldl
-     , hashable, libyaml, mtl, neat-interpolation, QuickCheck
-     , quickcheck-instances, rerebase, scientific, selective, tasty
-     , tasty-hunit, tasty-quickcheck, text, text-builder-dev, time
-     , transformers, unordered-containers, uuid, vector, yaml
-     }:
-     mkDerivation {
-       pname = "yaml-unscrambler";
        version = "0.1.0.10";
        sha256 = "07pwdd6w6gh0x05925hfk5mhzmig6rh9yb87rkyx15197r9hj7xw";
        libraryHaskellDepends = [
@@ -302506,6 +306267,7 @@ self: {
        description = "Flexible declarative YAML parsing toolkit";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "yaml2owl" = callPackage
@@ -302524,6 +306286,7 @@ self: {
        ];
        description = "Generate OWL schema from YAML syntax, and an RDFa template";
        license = "LGPL";
+       mainProgram = "yaml2owl";
      }) {};
 
   "yamlkeysdiff" = callPackage
@@ -302542,6 +306305,7 @@ self: {
        description = "Compares the keys from two yaml files";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yamlkeysdiff";
        broken = true;
      }) {};
 
@@ -302595,6 +306359,7 @@ self: {
        description = "Connects GLFW-b (GLFW 3+) with the Yampa FRP library";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yampa-glfw-example";
        broken = true;
      }) {};
 
@@ -302684,6 +306449,7 @@ self: {
        description = "2048 game clone using Yampa/Gloss";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yampa2048";
        broken = true;
      }) {};
 
@@ -302777,7 +306543,7 @@ self: {
        ];
        description = "Represent and parse yarn.lock files";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "yarn2nix" = callPackage
@@ -302815,7 +306581,7 @@ self: {
        ];
        description = "Convert yarn.lock files to nix expressions";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "yarr" = callPackage
@@ -302909,6 +306675,7 @@ self: {
        description = "yet another visual editor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yavie";
      }) {};
 
   "yaya" = callPackage
@@ -303107,6 +306874,7 @@ self: {
        testHaskellDepends = [ base containers hspec QuickCheck ];
        description = "Extended yes command to reproduce phrases in Yes! Precure 5";
        license = lib.licenses.mit;
+       mainProgram = "yes";
      }) {};
 
   "yeshql" = callPackage
@@ -303699,6 +307467,7 @@ self: {
        description = "A yesod-auth plugin for multi-tenant SSO via OpenID Connect";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yesod-auth-oidc-test";
        broken = true;
      }) {broch = null;};
 
@@ -303758,6 +307527,7 @@ self: {
        description = "Traditional email/pass auth for Yesod";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yesod-auth-simple-test";
      }) {};
 
   "yesod-auth-smbclient" = callPackage
@@ -303815,6 +307585,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Auto-reload a yesod app during development";
        license = lib.licenses.mit;
+       mainProgram = "yesod-autoreload-example";
      }) {};
 
   "yesod-bin" = callPackage
@@ -303842,6 +307613,7 @@ self: {
        ];
        description = "The yesod helper executable";
        license = lib.licenses.mit;
+       mainProgram = "yesod";
      }) {};
 
   "yesod-bootstrap" = callPackage
@@ -303942,6 +307714,7 @@ self: {
        description = "Continuations for Yesod";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yesodContinuationsTest";
      }) {};
 
   "yesod-core" = callPackage
@@ -304106,6 +307879,7 @@ self: {
        description = "DSL for generating Yesod subsite to manage an RDBMS;";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yesod-dsl";
        broken = true;
      }) {};
 
@@ -304181,6 +307955,7 @@ self: {
        description = "Fast live-reloading for yesod applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yesod-fast-devel";
        broken = true;
      }) {};
 
@@ -304646,8 +308421,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-paginator";
-       version = "1.1.2.1";
-       sha256 = "0d27jh5qizi9ppf7lvvpmmlih80hhgl5znjbknl12r95pkcjjy2r";
+       version = "1.1.2.2";
+       sha256 = "1j6mkzx0grdjnd3xldshx1lhlwshcjl8n5wsqj2pmxsrfh4a2qqg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -304786,6 +308561,7 @@ self: {
        description = "Yet another getMessage/setMessage using pnotify jquery plugins";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sample";
        broken = true;
      }) {};
 
@@ -304868,6 +308644,7 @@ self: {
        description = "The raml helper executable";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yesod-raml-bin";
      }) {};
 
   "yesod-raml-docs" = callPackage
@@ -305327,6 +309104,7 @@ self: {
        description = "Simple CRUD classes for easy view creation for Yesod";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vend-test-user";
        broken = true;
      }) {};
 
@@ -305406,6 +309184,7 @@ self: {
        ];
        description = "Yet Another Logger";
        license = lib.licenses.asl20;
+       mainProgram = "example";
      }) {};
 
   "yggdrasil" = callPackage
@@ -305456,6 +309235,7 @@ self: {
        description = "Calculation of YH sequence system";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yhseq";
        broken = true;
      }) {};
 
@@ -305480,6 +309260,7 @@ self: {
        description = "Yi editor";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yi";
      }) {};
 
   "yi-contrib" = callPackage
@@ -305949,6 +309730,7 @@ self: {
        ];
        testToolDepends = [ hspec-discover ];
        license = lib.licenses.gpl3Only;
+       mainProgram = "yiyd";
      }) {};
 
   "yjftp" = callPackage
@@ -305969,6 +309751,7 @@ self: {
        description = "CUI FTP client like 'ftp', 'ncftp'";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yjftp";
      }) {};
 
   "yjftp-libs" = callPackage
@@ -305983,6 +309766,7 @@ self: {
        description = "CUI FTP client like 'ftp', 'ncftp'";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yjftp-ni";
      }) {};
 
   "yjsvg" = callPackage
@@ -306133,6 +309917,7 @@ self: {
        description = "A YQL engine to execute Open Data Tables";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yql";
      }) {};
 
   "yst" = callPackage
@@ -306156,6 +309941,7 @@ self: {
        description = "Builds a static website from templates and data in YAML or CSV files";
        license = lib.licenses.gpl2Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yst";
        broken = true;
      }) {};
 
@@ -306215,6 +310001,7 @@ self: {
        description = "The launcher for Yu";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yu-launch";
      }) {};
 
   "yu-tool" = callPackage
@@ -306233,6 +310020,7 @@ self: {
        description = "Tool for Yu";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yu";
        broken = true;
      }) {};
 
@@ -306294,6 +310082,7 @@ self: {
        description = "A transcendental HTML parser gently wrapping the HXT library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yuuko";
      }) {};
 
   "yx" = callPackage
@@ -306445,6 +310234,7 @@ self: {
        description = "A tool for checking how much work is done on group projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zampolit";
        broken = true;
      }) {};
 
@@ -306517,6 +310307,7 @@ self: {
        ];
        description = "A standard compliant HTML parsing library";
        license = lib.licenses.mit;
+       mainProgram = "zenacy-html-exe";
      }) {};
 
   "zenacy-unicode" = callPackage
@@ -306601,6 +310392,7 @@ self: {
        description = "An automated proof system for Haskell programs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zeno";
        broken = true;
      }) {};
 
@@ -306663,6 +310455,7 @@ self: {
        description = "Zephyr, tree-shaking for the PureScript language";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zephyr";
      }) {};
 
   "zephyr-copilot" = callPackage
@@ -306714,6 +310507,7 @@ self: {
        ];
        description = "Post to 0bin services";
        license = lib.licenses.mit;
+       mainProgram = "zerobin";
      }) {};
 
   "zeromq-haskell" = callPackage
@@ -306800,6 +310594,7 @@ self: {
        ];
        description = "Haskell implementation of the ZeroMQ clone pattern";
        license = lib.licenses.bsd3;
+       mainProgram = "zeromq4-clone-pattern-exe";
      }) {};
 
   "zeromq4-conduit" = callPackage
@@ -306864,6 +310659,7 @@ self: {
        ];
        description = "Haskell implementation of several ZeroMQ patterns";
        license = lib.licenses.bsd3;
+       mainProgram = "zeromq4-patterns-exe";
      }) {};
 
   "zeromq4-simple" = callPackage
@@ -306903,6 +310699,7 @@ self: {
        description = "ZeroTH - remove unnecessary TH dependencies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zeroth";
      }) {};
 
   "zettelkast" = callPackage
@@ -306928,6 +310725,7 @@ self: {
        description = "Command-line utility for working with zettelkast files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zettelkast";
        broken = true;
      }) {};
 
@@ -307169,6 +310967,7 @@ self: {
        ];
        description = "Operations on zip archives";
        license = lib.licenses.bsd3;
+       mainProgram = "haskell-zip-app";
      }) {};
 
   "zip-archive" = callPackage
@@ -307504,6 +311303,7 @@ self: {
        description = "Command-line tool for ZeroMQ";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zmcat";
      }) {};
 
   "zmidi-core" = callPackage
@@ -307552,6 +311352,7 @@ self: {
        description = "A socat-like tool for zeromq library";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zmqat";
        broken = true;
      }) {};
 
@@ -307585,6 +311386,7 @@ self: {
        description = "A rake/thor-like task runner written in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zoom";
        broken = true;
      }) {};
 
@@ -307618,6 +311420,7 @@ self: {
        description = "A streamable, seekable, zoomable cache file format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zoom-cache";
      }) {};
 
   "zoom-cache-pcm" = callPackage
@@ -307655,6 +311458,7 @@ self: {
        description = "Tools for generating zoom-cache-pcm files";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zoom-cache-sndfile";
      }) {};
 
   "zoom-refs" = callPackage
@@ -307700,6 +311504,7 @@ self: {
        executableHaskellDepends = [ base monads-tf ];
        description = "Zot language";
        license = lib.licenses.bsd3;
+       mainProgram = "zot";
      }) {};
 
   "zre" = callPackage
@@ -307733,7 +311538,7 @@ self: {
        ];
        description = "ZRE protocol implementation";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sorki ];
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "zsdd" = callPackage
@@ -307765,6 +311570,7 @@ self: {
        description = "Ascii bars representing battery status";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zsh-battery";
        broken = true;
      }) {};
 
@@ -307820,6 +311626,7 @@ self: {
        ];
        description = "Multi-file, colored, filtered log tailer";
        license = lib.licenses.bsd3;
+       mainProgram = "ztail";
      }) {};
 
   "ztar" = callPackage
@@ -307882,6 +311689,7 @@ self: {
        description = "A lisp processor, An inline-lisp, in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "maru";
      }) {};
 
   "zuul" = callPackage
@@ -307906,6 +311714,7 @@ self: {
        description = "A zuul client library";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zuul-cli";
        broken = true;
      }) {};
 
@@ -307974,6 +311783,7 @@ self: {
        description = "Password strength estimation based on zxcvbn";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zxcvbn-example";
        broken = true;
      }) {};
 
@@ -308018,6 +311828,7 @@ self: {
        description = "Haskell zyre bindings for reliable group messaging over local area networks";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zyre-example-exe";
        broken = true;
      }) {inherit (pkgs) czmq; zyre = null;};
 
diff --git a/pkgs/development/haskell-modules/lib/compose.nix b/pkgs/development/haskell-modules/lib/compose.nix
index a831a83a15f55..600bf80cb19c9 100644
--- a/pkgs/development/haskell-modules/lib/compose.nix
+++ b/pkgs/development/haskell-modules/lib/compose.nix
@@ -123,7 +123,8 @@ rec {
    */
   doDistribute = overrideCabal (drv: {
     # lib.platforms.all is the default value for platforms (since GHC can cross-compile)
-    hydraPlatforms = drv.platforms or lib.platforms.all;
+    hydraPlatforms = lib.subtractLists (drv.badPlatforms or [])
+      (drv.platforms or lib.platforms.all);
   });
   /* dontDistribute disables the distribution of binaries for the package
      via hydra.
diff --git a/pkgs/development/haskell-modules/non-hackage-packages.nix b/pkgs/development/haskell-modules/non-hackage-packages.nix
index beb81a58d8638..e3b21514831e5 100644
--- a/pkgs/development/haskell-modules/non-hackage-packages.nix
+++ b/pkgs/development/haskell-modules/non-hackage-packages.nix
@@ -13,7 +13,9 @@ self: super: {
 
   # Used by maintainers/scripts/regenerate-hackage-packages.sh, and generated
   # from the latest master instead of the current version on Hackage.
-  cabal2nix-unstable = self.callPackage ./cabal2nix-unstable.nix { };
+  cabal2nix-unstable = self.callPackage ./cabal2nix-unstable.nix {
+    distribution-nixpkgs = self.distribution-nixpkgs_1_7_0;
+  };
 
   # https://github.com/channable/vaultenv/issues/1
   vaultenv = self.callPackage ../tools/haskell/vaultenv { };
diff --git a/pkgs/development/interpreters/dhall/build-dhall-url.nix b/pkgs/development/interpreters/dhall/build-dhall-url.nix
index 9dcd885d25c3a..6d7103f78e6fa 100644
--- a/pkgs/development/interpreters/dhall/build-dhall-url.nix
+++ b/pkgs/development/interpreters/dhall/build-dhall-url.nix
@@ -59,6 +59,7 @@ let
         outputHash = hash;
         name = baseNameOf url;
         nativeBuildInputs = [ cacert ];
+        impureEnvVars = lib.fetchers.proxyImpureEnvVars;
       }
       ''
         echo "${url} ${dhallHash}" > in-dhall-file
@@ -76,7 +77,7 @@ let
    sourceFile = "source.dhall";
 
 in
-  runCommand name { impureEnvVars = lib.fetchers.proxyImpureEnvVars; }
+  runCommand name { }
  (''
     set -eu
 
diff --git a/pkgs/development/interpreters/wasmtime/default.nix b/pkgs/development/interpreters/wasmtime/default.nix
index 47bdaf8623627..508dc2be60b9b 100644
--- a/pkgs/development/interpreters/wasmtime/default.nix
+++ b/pkgs/development/interpreters/wasmtime/default.nix
@@ -1,42 +1,34 @@
-{ rustPlatform, fetchFromGitHub, lib, stdenv, v8 }:
+{ rustPlatform, fetchFromGitHub, lib }:
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmtime";
-  version = "0.37.0";
+  version = "0.38.0";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ZUr1v94If8ER4lTHLwuP+F3xfXU7IW4ZEztBA2TPvVg=";
+    sha256 = "sha256-q+6w22MbI3HRpmkybZXXWbkK7jbd6lyxodC3EpSovRI=";
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "sha256-X+KDeWavFTBaxbSPlIiyuiBC7wg1/5C/NXp+VEY8Mk8=";
-
-  # This environment variable is required so that when wasmtime tries
-  # to run tests by using the rusty_v8 crate, it does not try to
-  # download a static v8 build from the Internet, what would break
-  # build hermetism.
-  RUSTY_V8_ARCHIVE = lib.optionalString stdenv.isLinux "${v8}/lib/libv8.a";
+  cargoSha256 = "sha256-uuhGb0/RDz1/3O8WYiyGIUQFh0WZWJgujqtvH+hgbdA=";
 
   doCheck = true;
   checkFlags = [
     "--skip=cli_tests::run_cwasm"
-    "--skip=commands::compile::test::test_successful_compile"
     "--skip=commands::compile::test::test_aarch64_flags_compile"
-    "--skip=commands::compile::test::test_unsupported_flags_compile"
+    "--skip=commands::compile::test::test_successful_compile"
     "--skip=commands::compile::test::test_x64_flags_compile"
     "--skip=commands::compile::test::test_x64_presets_compile"
     "--skip=traps::parse_dwarf_info"
   ];
 
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "Standalone JIT-style runtime for WebAssembly, using Cranelift";
     homepage = "https://github.com/bytecodealliance/wasmtime";
     license = licenses.asl20;
-    maintainers = [ maintainers.matthewbauer ];
+    maintainers = with maintainers; [ ereslibre matthewbauer ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/amdvlk/default.nix b/pkgs/development/libraries/amdvlk/default.nix
index cafa505da621b..54bd91db3ae81 100644
--- a/pkgs/development/libraries/amdvlk/default.nix
+++ b/pkgs/development/libraries/amdvlk/default.nix
@@ -22,13 +22,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "amdvlk";
-  version = "2022.Q2.2";
+  version = "2022.Q2.3";
 
   src = fetchRepoProject {
     name = "${pname}-src";
     manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
     rev = "refs/tags/v-${version}";
-    sha256 = "4LV6g2snT1usY+Ic9Hb/IwXAJQ97I9DigZCah6mwewA=";
+    sha256 = "Yd2juNdSP8TdSX9j/iXsC2xrIRzDEuXJbms91AqwjEc=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/cpp-utilities/default.nix b/pkgs/development/libraries/cpp-utilities/default.nix
index f2f331eec6878..7064964adc580 100644
--- a/pkgs/development/libraries/cpp-utilities/default.nix
+++ b/pkgs/development/libraries/cpp-utilities/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cpp-utilities";
-  version = "5.15.0";
+  version = "5.16.0";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-3D/5Bl5vANZrHtJGehoHwQ0mDrL8TJ7iK2GoViiuj6E=";
+    sha256 = "sha256-B/pWdfK3KddAIppJXQRohiIK8mouAQjXRHic75IzY/Q=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/duckdb/default.nix b/pkgs/development/libraries/duckdb/default.nix
index b128ed7094529..059c79bfcbb53 100644
--- a/pkgs/development/libraries/duckdb/default.nix
+++ b/pkgs/development/libraries/duckdb/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , ninja
 , openssl
@@ -16,16 +17,24 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "duckdb";
-  version = "0.3.4";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-2PBc5qe2md87u2nvMTx/XZVzLsr8QrvUkw46/6VTlGs=";
+    sha256 = "sha256-pQ/t26dv9ZWLl0MHcAn0sgxryW2T2hM8XyOkXyfC5CY=";
   };
 
-  patches = [ ./version.patch ];
+  patches = [
+    ./version.patch
+    (fetchpatch {
+      name = "fix-tpce-test.patch";
+      url = "https://github.com/duckdb/duckdb/commit/82e13a4bb9f0683af6c52468af2fb903cce4286d.patch";
+      sha256 = "sha256-m0Bs0DOJQtkadbKZKk88NHyBFJkjxXUsiWYciuRIJLU=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace CMakeLists.txt --subst-var-by DUCKDB_VERSION "v${version}"
   '';
@@ -62,6 +71,7 @@ stdenv.mkDerivation rec {
         "test/common/test_cast_hugeint.test"
         "test/sql/copy/csv/test_csv_remote.test"
         "test/sql/copy/parquet/test_parquet_remote.test"
+        "test/sql/copy/parquet/test_parquet_remote_foreign_files.test"
       ] ++ lib.optionals stdenv.isAarch64 [
         "test/sql/aggregate/aggregates/test_kurtosis.test"
         "test/sql/aggregate/aggregates/test_skewness.test"
diff --git a/pkgs/development/libraries/egl-wayland/default.nix b/pkgs/development/libraries/egl-wayland/default.nix
index 3881f8f7ee38b..83cde54f348e7 100644
--- a/pkgs/development/libraries/egl-wayland/default.nix
+++ b/pkgs/development/libraries/egl-wayland/default.nix
@@ -42,7 +42,7 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "egl-wayland";
-  version = "1.1.9";
+  version = "1.1.10";
 
   outputs = [ "out" "dev" ];
 
@@ -50,7 +50,7 @@ in stdenv.mkDerivation rec {
     owner = "Nvidia";
     repo = pname;
     rev = version;
-    sha256 = "sha256-rcmGVEcOtKTR8sVkHV7Xb+8NuKWUapYn+/Fswi4z6Mc=";
+    sha256 = "sha256-dbcEMtPnzF2t7O8YtKVUGSvJqb5WPMmmW+SyqOFnDY4=";
   };
 
   depsBuildBuild = [
diff --git a/pkgs/development/libraries/geos/default.nix b/pkgs/development/libraries/geos/default.nix
index c067a705d0bfe..32b3155b8c564 100644
--- a/pkgs/development/libraries/geos/default.nix
+++ b/pkgs/development/libraries/geos/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, fetchpatch
 , cmake }:
 
 stdenv.mkDerivation rec {
@@ -12,13 +13,15 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ULvFmaw4a0wrOWLcxBHwBAph8gSq7066ciXs3Qz0VxU=";
   };
 
-  nativeBuildInputs = [ cmake ];
+  patches = [
+    # Fix paths with absolute CMAKE_INSTALL_*DIR
+    (fetchpatch {
+      url = "https://github.com/libgeos/geos/commit/11faa4db672ed61d64fd8a6f1a59114f5b5f2406.patch";
+      hash = "sha256-oAArwGq91Z93C6hBPQD0AlY8Q4Nnn6tA40HUPoZ5ftc=";
+    })
+  ];
 
-  postPatch = ''
-    substituteInPlace tools/geos-config.in \
-      --replace "@libdir@" "@prefix@/lib" \
-      --replace "@includedir@" "@prefix@/include"
-  '';
+  nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
     description = "C++ port of the Java Topology Suite (JTS)";
diff --git a/pkgs/development/libraries/libkqueue/default.nix b/pkgs/development/libraries/libkqueue/default.nix
index 8a4bfdedd1e33..5f96353d9d69f 100644
--- a/pkgs/development/libraries/libkqueue/default.nix
+++ b/pkgs/development/libraries/libkqueue/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libkqueue";
-  version = "2.6.1";
+  version = "2.6.2";
 
   src = fetchFromGitHub {
     owner = "mheily";
     repo = "libkqueue";
     rev = "v${version}";
-    sha256 = "sha256-YKKBHOxjUS7+/ib4gcR7EYjjVOwhHVksYasLhErdV8s=";
+    sha256 = "sha256-5Zds9sqHkFldJf3ThTPOiaGKohmFcIzY0ARDA0iswVk=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "kqueue(2) compatibility library";
     homepage = "https://github.com/mheily/libkqueue";
+    changelog = "https://github.com/mheily/libkqueue/raw/v${version}/ChangeLog";
     license = licenses.bsd2;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libvgm/default.nix b/pkgs/development/libraries/libvgm/default.nix
index 3db5c95ff9830..43b145be62bf5 100644
--- a/pkgs/development/libraries/libvgm/default.nix
+++ b/pkgs/development/libraries/libvgm/default.nix
@@ -42,13 +42,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "libvgm";
-  version = "unstable-2022-06-17";
+  version = "unstable-2022-06-18";
 
   src = fetchFromGitHub {
     owner = "ValleyBell";
     repo = "libvgm";
-    rev = "577ff77185aa19943e5c7a858eb2485ec75c7539";
-    sha256 = "0R7qqrFs6Ap8FM5uBHX/iE+S5cQzuwWn65xxfp4/CdQ=";
+    rev = "001ca758538ca3f82403dff654d82342730b215d";
+    sha256 = "O3jvEEW1M0cwZoG6j2ndmuQW4jP0dvt6gGp2BS4VD5s=";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/libzip/default.nix b/pkgs/development/libraries/libzip/default.nix
index 3620943d6c537..f794868baf0d1 100644
--- a/pkgs/development/libraries/libzip/default.nix
+++ b/pkgs/development/libraries/libzip/default.nix
@@ -32,6 +32,10 @@ stdenv.mkDerivation rec {
     ++ lib.optionals withOpenssl [ openssl ]
     ++ lib.optionals withZstd [ zstd ];
 
+  # Don't build the regression tests because they don't build with
+  # pkgsStatic and are not executed anyway.
+  cmakeFlags = [ "-DBUILD_REGRESS=0" ];
+
   preCheck = ''
     # regress/runtest is a generated file
     patchShebangs regress
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index 72d64854238f3..2cfe41956a4b1 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -41,7 +41,17 @@ stdenv.mkDerivation rec {
     ++ lib.optionals stdenv.hostPlatform.isWindows [
       "--enable-sp-funcs"
       "--enable-term-driver"
-    ];
+  ] ++ lib.optionals (stdenv.hostPlatform.isUnix && stdenv.hostPlatform.isStatic) [
+      # For static binaries, the point is to have a standalone binary with
+      # minimum dependencies. So here we make sure that binaries using this
+      # package won't depend on a terminfo database located in the Nix store.
+      "--with-terminfo-dirs=${lib.concatStringsSep ":" [
+        "/etc/terminfo" # Debian, Fedora, Gentoo
+        "/lib/terminfo" # Debian
+        "/usr/share/terminfo" # upstream default, probably all FHS-based distros
+        "/run/current-system/sw/share/terminfo" # NixOS
+      ]}"
+  ];
 
   # Only the C compiler, and explicitly not C++ compiler needs this flag on solaris:
   CFLAGS = lib.optionalString stdenv.isSunOS "-D_XOPEN_SOURCE_EXTENDED";
diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix
index 8d28ef5ad74f5..c60787d5b6220 100644
--- a/pkgs/development/libraries/pipewire/default.nix
+++ b/pkgs/development/libraries/pipewire/default.nix
@@ -2,6 +2,7 @@
 , lib
 , buildPackages
 , fetchFromGitLab
+, fetchpatch
 , removeReferencesTo
 , python3
 , meson
@@ -69,7 +70,7 @@ let
 
   self = stdenv.mkDerivation rec {
     pname = "pipewire";
-    version = "0.3.51";
+    version = "0.3.52";
 
     outputs = [
       "out"
@@ -87,7 +88,7 @@ let
       owner = "pipewire";
       repo = "pipewire";
       rev = version;
-      sha256 = "sha256-k5OdKgkQUaelvrGS4KtO0MtSJg6cF2Nf8RrsR8Kf+C8=";
+      sha256 = "sha256-JWmO36+OF2O9sLB+Z0znwm3TH+O+pEv3cXnuwP6Wy1E=";
     };
 
     patches = [
@@ -103,6 +104,12 @@ let
       ./0090-pipewire-config-template-paths.patch
       # Place SPA data files in lib output to avoid dependency cycles
       ./0095-spa-data-dir.patch
+      # Remove 44.1KHz from allowed rates (multiple regressions reported)
+      # To be removed when 0.3.53 is released
+      (fetchpatch {
+        url = "https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/16a7c274989f47b0c0d8ba192a30316b545bd26a.patch";
+        sha256 = "sha256-VZ7ChjcR/PGfmH2DmLxfIhd3mj9668l9zLO4k2KBoqg=";
+      })
     ];
 
     nativeBuildInputs = [
@@ -164,6 +171,7 @@ let
       "-Dbluez5-backend-hfp-native=${mesonEnableFeature nativeHfpSupport}"
       "-Dbluez5-backend-ofono=${mesonEnableFeature ofonoSupport}"
       "-Dbluez5-backend-hsphfpd=${mesonEnableFeature hsphfpdSupport}"
+      "-Dbluez5-codec-lc3plus=disabled"
       "-Dsysconfdir=/etc"
       "-Dpipewire_confdata_dir=${placeholder "lib"}/share/pipewire"
       "-Draop=${mesonEnableFeature raopSupport}"
diff --git a/pkgs/development/libraries/science/math/m4rie/default.nix b/pkgs/development/libraries/science/math/m4rie/default.nix
index 38a633e58c712..2a46e22b60d26 100644
--- a/pkgs/development/libraries/science/math/m4rie/default.nix
+++ b/pkgs/development/libraries/science/math/m4rie/default.nix
@@ -5,14 +5,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "20200115";
+  version = "20200125";
   pname = "m4rie";
 
   src = fetchFromBitbucket {
     owner = "malb";
     repo = "m4rie";
     rev = "release-${version}";
-    sha256 = "0s8if80x5d6mikbcfsbbxg347136spahp9f3x8i1hflbwl8xj9k8";
+    sha256 = "sha256-bjAcxfXsC6+jPYC472CN78jm4UljJQlkWyvsqckCDh0=";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/taskflow/default.nix b/pkgs/development/libraries/taskflow/default.nix
index 29760cdb94bd2..dd2f8fb391448 100644
--- a/pkgs/development/libraries/taskflow/default.nix
+++ b/pkgs/development/libraries/taskflow/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "taskflow";
-  version = "3.3.0";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "taskflow";
     repo = "taskflow";
     rev = "v${version}";
-    hash = "sha256-UfXGupxgtowIt3BnIVWwim3rTE57TT1C9TCx9LVyN34=";
+    hash = "sha256-5bTTV/WAxslHQ+hvATtUUA1h3MuNzwVTlYMbD/sINRM=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/v8/8_x.nix b/pkgs/development/libraries/v8/8_x.nix
index 9e2469eed38e6..b5184bafcbff9 100644
--- a/pkgs/development/libraries/v8/8_x.nix
+++ b/pkgs/development/libraries/v8/8_x.nix
@@ -148,6 +148,7 @@ stdenv.mkDerivation rec {
     install -D d8 $out/bin/d8
     install -D -m644 obj/libv8_monolith.a $out/lib/libv8.a
     install -D -m644 icudtl.dat $out/share/v8/icudtl.dat
+    ln -s libv8.a $out/lib/libv8_monolith.a
     cp -r ../../include $out
 
     mkdir -p $out/lib/pkgconfig
diff --git a/pkgs/development/libraries/v8/default.nix b/pkgs/development/libraries/v8/default.nix
index 2b56d2e5dcf8e..cf9d597edc21c 100644
--- a/pkgs/development/libraries/v8/default.nix
+++ b/pkgs/development/libraries/v8/default.nix
@@ -148,6 +148,7 @@ stdenv.mkDerivation rec {
     install -D d8 $out/bin/d8
     install -D -m644 obj/libv8_monolith.a $out/lib/libv8.a
     install -D -m644 icudtl.dat $out/share/v8/icudtl.dat
+    ln -s libv8.a $out/lib/libv8_monolith.a
     cp -r ../../include $out
 
     mkdir -p $out/lib/pkgconfig
diff --git a/pkgs/development/node-packages/main-programs.nix b/pkgs/development/node-packages/main-programs.nix
index b5c710bd8c848..8004f2025a91b 100644
--- a/pkgs/development/node-packages/main-programs.nix
+++ b/pkgs/development/node-packages/main-programs.nix
@@ -32,6 +32,7 @@
   "@webassemblyjs/wasm-strip" = "wasm-strip";
   "@webassemblyjs/wasm-text-gen" = "wasmgen";
   "@webassemblyjs/wast-refmt" = "wast-refmt";
+  aws-cdk = "cdk";
   balanceofsatoshis = "bos";
   carbon-now-cli = "carbon-now";
   cdk8s-cli = "cdk8s";
diff --git a/pkgs/development/ocaml-modules/ffmpeg/base.nix b/pkgs/development/ocaml-modules/ffmpeg/base.nix
index 5dc5f612fd325..212ad686e356a 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/base.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/base.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub }:
 
 rec {
-  version = "1.1.3";
+  version = "1.1.4";
 
   useDune2 = true;
 
@@ -9,7 +9,7 @@ rec {
     owner = "savonet";
     repo = "ocaml-ffmpeg";
     rev = "v${version}";
-    sha256 = "1l40dfc0v3wn2drfq0mclrc1lrlpycdjrkrw4knkwpsg0za68v4c";
+    sha256 = "sha256-IM7bzOZAZQjLz4YjRTMU5fZgrA2QTZcSDMgclDo4sn0=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/fmt/default.nix b/pkgs/development/ocaml-modules/fmt/default.nix
index 4816cab57cfd3..bd56298165284 100644
--- a/pkgs/development/ocaml-modules/fmt/default.nix
+++ b/pkgs/development/ocaml-modules/fmt/default.nix
@@ -14,8 +14,8 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ];
-  buildInputs = [ topkg ];
-  propagatedBuildInputs = [ cmdliner seq stdlib-shims ];
+  buildInputs = [ cmdliner topkg ];
+  propagatedBuildInputs = [ seq stdlib-shims ];
 
   strictDeps = true;
 
diff --git a/pkgs/development/ocaml-modules/ocaml-r/default.nix b/pkgs/development/ocaml-modules/ocaml-r/default.nix
index fcee63de3b5db..ed22177bfaac3 100644
--- a/pkgs/development/ocaml-modules/ocaml-r/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-r/default.nix
@@ -37,6 +37,8 @@ buildDunePackage rec {
   checkInputs = [ alcotest ];
 
   meta = {
+    # This has been broken by the update to R 4.2.0 (#171597)
+    broken = true;
     description = "OCaml bindings for the R interpreter";
     inherit (src.meta) homepage;
     license = lib.licenses.gpl3;
diff --git a/pkgs/development/ocaml-modules/parmap/default.nix b/pkgs/development/ocaml-modules/parmap/default.nix
index 521c1c406714b..18e1975b698d5 100644
--- a/pkgs/development/ocaml-modules/parmap/default.nix
+++ b/pkgs/development/ocaml-modules/parmap/default.nix
@@ -10,13 +10,12 @@ buildDunePackage rec {
   };
 
   minimalOCamlVersion = "4.03";
-  useDune2 = true;
 
   buildInputs = [
     dune-configurator
   ];
 
-  doCheck = true;
+  doCheck = false; # prevent running slow benchmarks
 
   meta = with lib; {
     description = "Library for multicore parallel programming";
diff --git a/pkgs/development/python-modules/aesara/default.nix b/pkgs/development/python-modules/aesara/default.nix
index 7f7007ff0e939..efa9715a0f005 100644
--- a/pkgs/development/python-modules/aesara/default.nix
+++ b/pkgs/development/python-modules/aesara/default.nix
@@ -6,6 +6,8 @@
 , etuples
 , fetchFromGitHub
 , filelock
+, jax
+, jaxlib
 , logical-unification
 , minikanren
 , numba
@@ -19,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "aesara";
-  version = "2.7.2";
+  version = "2.7.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -28,7 +30,7 @@ buildPythonPackage rec {
     owner = "aesara-devs";
     repo = "aesara";
     rev = "refs/tags/rel-${version}";
-    hash = "sha256-NJxklOpIbSbi/SB/rafBNllpnNb1yWLVpyB2f/U0i78=";
+    hash = "sha256-LeZEWKSfVmU7k7qMjniUjwoDJ5xJUHoYux7Qy5/w4Cg=";
   };
 
   nativeBuildInputs = [
@@ -47,6 +49,8 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    jax
+    jaxlib
     numba
     numba-scipy
     pytestCheckHook
diff --git a/pkgs/development/python-modules/ailment/default.nix b/pkgs/development/python-modules/ailment/default.nix
index 01617f7980ef5..0b6ba901df52a 100644
--- a/pkgs/development/python-modules/ailment/default.nix
+++ b/pkgs/development/python-modules/ailment/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "ailment";
-  version = "9.2.6";
+  version = "9.2.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-SymOCHKIr0SOi4OM+OONA7+A2nV4JMA467OkoqDhZ+M=";
+    hash = "sha256-zQz8tbxo1Trfeg7zeW/htm+zD4n++guYXUdCHp3cikw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/angr/default.nix b/pkgs/development/python-modules/angr/default.nix
index a6a5aa49953fd..72481814f9d4a 100644
--- a/pkgs/development/python-modules/angr/default.nix
+++ b/pkgs/development/python-modules/angr/default.nix
@@ -46,7 +46,7 @@ in
 
 buildPythonPackage rec {
   pname = "angr";
-  version = "9.2.6";
+  version = "9.2.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -55,7 +55,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-qXzkrfF8FkALkEaFLSmaadovwLc2DkXXJivdrT6srTc=";
+    hash = "sha256-77RLoSZnzggt8ZWQwRcvMhCYGupF2Kp+u2LFZ9ozXlw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/angrop/default.nix b/pkgs/development/python-modules/angrop/default.nix
index 63dce4bdbed78..cfd27ae4cbfe3 100644
--- a/pkgs/development/python-modules/angrop/default.nix
+++ b/pkgs/development/python-modules/angrop/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , progressbar
 , pythonOlder
+, pythonRelaxDepsHook
 , tqdm
 }:
 
@@ -21,12 +22,20 @@ buildPythonPackage rec {
     hash = "sha256-qaDAicmYZxLPTl17il61ij01prRv2H4xxe07Xg4KWhI=";
   };
 
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
   propagatedBuildInputs = [
     angr
     progressbar
     tqdm
   ];
 
+  pythonRelaxDeps = [
+    "angr"
+  ];
+
   # Tests have additional requirements, e.g., angr binaries
   # cle is executing the tests with the angr binaries already and is a requirement of angr
   doCheck = false;
diff --git a/pkgs/development/python-modules/archinfo/default.nix b/pkgs/development/python-modules/archinfo/default.nix
index 348a022d2ccfd..f87c7863c264c 100644
--- a/pkgs/development/python-modules/archinfo/default.nix
+++ b/pkgs/development/python-modules/archinfo/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "archinfo";
-  version = "9.2.6";
+  version = "9.2.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-yMUcuZ9v1dVbh/t456fpMu8tDFWIdh55LZh7FLkz9GM=";
+    hash = "sha256-sl5qCH/biH3QBrnfZAQMWd55yKM0PGE/Rx2MscKn4Nk=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/audible/default.nix b/pkgs/development/python-modules/audible/default.nix
index 2d4f3ac4df037..8769cdedeac31 100644
--- a/pkgs/development/python-modules/audible/default.nix
+++ b/pkgs/development/python-modules/audible/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "audible";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "mkb79";
     repo = "Audible";
-    rev = "v${version}";
-    sha256 = "0fsb5av4s7fvpn0iryl8jj3lwffwlxgbwj46l3fidy0l58nq3b1d";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-SIEDBuMCC/Hap2mGVbKEFic96ClN369SEsV06Sg+poY=";
   };
 
   propagatedBuildInputs = [ beautifulsoup4 httpx pbkdf2 pillow pyaes rsa ];
diff --git a/pkgs/development/python-modules/aws-lambda-builders/default.nix b/pkgs/development/python-modules/aws-lambda-builders/default.nix
index 1c750267695fc..f2dd2c4205271 100644
--- a/pkgs/development/python-modules/aws-lambda-builders/default.nix
+++ b/pkgs/development/python-modules/aws-lambda-builders/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "aws-lambda-builders";
-  version = "1.17.0";
+  version = "1.18.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "awslabs";
     repo = "aws-lambda-builders";
     rev = "refs/tags/v${version}";
-    hash = "sha256-EkAtRqUHwmH0LG/bkXBbZ3TMgXDtcqLfUBySPbrgWmc=";
+    hash = "sha256-yAqGVZnnragi3+jaAGnkYNH/XtpH3bojXHmPCrANgJU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix b/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
index 70103df64cfc2..4955655607d27 100644
--- a/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
@@ -5,18 +5,20 @@
 , msrestazure
 , azure-common
 , azure-mgmt-core
-, azure-mgmt-nspkg
-, isPy3k
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-eventhub";
-  version = "10.0.0";
+  version = "10.1.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0856574ef4b73bbbc62834051061e2081400aba7e3715e10ef5181d639e86a0b";
+    hash = "sha256-MZqhSBkwypvEefhoEWEPsBUFidWYD7qAX6edcBDDSSA=";
   };
 
   propagatedBuildInputs = [
@@ -24,8 +26,6 @@ buildPythonPackage rec {
     msrestazure
     azure-common
     azure-mgmt-core
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
   ];
 
   # has no tests
diff --git a/pkgs/development/python-modules/beaker/default.nix b/pkgs/development/python-modules/beaker/default.nix
index c455ee50284ae..9b692ef92f2a5 100644
--- a/pkgs/development/python-modules/beaker/default.nix
+++ b/pkgs/development/python-modules/beaker/default.nix
@@ -70,6 +70,11 @@ buildPythonPackage rec {
 
   meta = {
     description = "A Session and Caching library with WSGI Middleware";
+    homepage = "https://github.com/bbangert/beaker";
+    license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ domenkozar ];
+    knownVulnerabilities = [
+      "CVE-2013-7489"
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/bimmer-connected/default.nix b/pkgs/development/python-modules/bimmer-connected/default.nix
index 63071d4946248..3aa2733ce10f6 100644
--- a/pkgs/development/python-modules/bimmer-connected/default.nix
+++ b/pkgs/development/python-modules/bimmer-connected/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "bimmer-connected";
-  version = "0.9.4";
+  version = "0.9.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "bimmerconnected";
     repo = "bimmer_connected";
     rev = "refs/tags/${version}";
-    hash = "sha256-+K+RffQzbJiKld0AM41OlK0ma0aopJRaTz+ZcCcYzJk=";
+    hash = "sha256-R7QmxSUbVsvb+MRTYlihxuM05WLYASRSfUs09fl7l1k=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/bitlist/default.nix b/pkgs/development/python-modules/bitlist/default.nix
index c96c2e8707b70..e1129f40602f9 100644
--- a/pkgs/development/python-modules/bitlist/default.nix
+++ b/pkgs/development/python-modules/bitlist/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "bitlist";
-  version = "0.7.0";
+  version = "0.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-p3Gws48u1/AzltbtPyWvSX4O0u4MgSXiVq4GstpPCCg=";
+    sha256 = "sha256-43Oh1ERGsW12HOqpbIa7rzLKrP9tIjckZhHwZSmBypE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/casbin/default.nix b/pkgs/development/python-modules/casbin/default.nix
index 5df8ae38bebed..6350fda9650e0 100644
--- a/pkgs/development/python-modules/casbin/default.nix
+++ b/pkgs/development/python-modules/casbin/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "casbin";
-  version = "1.16.5";
+  version = "1.16.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "pycasbin";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-27j1iuqf0af4Cm3r32FJnWnjvvUcacuv2+1OL6z/mwM=";
+    sha256 = "sha256-i7XwB1qV2WQD1dWxi4ncXsAwGUR5tWQhp+Z/jVvv1oo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/claripy/default.nix b/pkgs/development/python-modules/claripy/default.nix
index 7dccab0b76240..efceffd786d47 100644
--- a/pkgs/development/python-modules/claripy/default.nix
+++ b/pkgs/development/python-modules/claripy/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "claripy";
-  version = "9.2.6";
+  version = "9.2.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-mBpAwKUclwvgOeGD6BvPUKZHdjngfvuHdtKY3nx7jzM=";
+    hash = "sha256-4t1PbxcHxiv8W/M9McaBu7CTLc74gCZ7om3K4fgpFFI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cle/default.nix b/pkgs/development/python-modules/cle/default.nix
index 25765fc11d3db..db926aad32b4c 100644
--- a/pkgs/development/python-modules/cle/default.nix
+++ b/pkgs/development/python-modules/cle/default.nix
@@ -15,14 +15,14 @@
 
 let
   # The binaries are following the argr projects release cycle
-  version = "9.2.6";
+  version = "9.2.7";
 
   # Binary files from https://github.com/angr/binaries (only used for testing and only here)
   binaries = fetchFromGitHub {
     owner = "angr";
     repo = "binaries";
     rev = "v${version}";
-    sha256 = "1qlrxfj1n34xvwkac6mbcc7zmixxbp34fj7lkf0fvp7zcz1rpla1";
+    hash = "sha256-LpYi5Ty6OBcW0zokCliMDhujJ7tPPl1XdPs5ad1tv5s=";
   };
 
 in
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-GOrjT5CM+yzboOTgkVriuf1UpNDVhDgGpS8vp4D39W0=";
+    hash = "sha256-IQLtkS4LNyyEOwInd9A3pHGtj80yXARXcQKA3FonPUE=";
   };
 
   propagatedBuildInputs = [
@@ -66,7 +66,6 @@ buildPythonPackage rec {
     "test_ppc_rel24_relocation"
     "test_ppc_addr16_ha_relocation"
     "test_ppc_addr16_lo_relocation"
-    # Binary not found, seems to be missing in the current binaries release
     "test_plt_full_relro"
     # Test fails
     "test_tls_pe_incorrect_tls_data_start"
diff --git a/pkgs/development/python-modules/clickgen/default.nix b/pkgs/development/python-modules/clickgen/default.nix
index b74827d1971dd..d0f81a20c6d34 100644
--- a/pkgs/development/python-modules/clickgen/default.nix
+++ b/pkgs/development/python-modules/clickgen/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , buildPythonPackage
 , pythonOlder
-, pythonAtLeast
 , fetchFromGitHub
 , pillow
 , libX11
@@ -17,7 +16,7 @@ buildPythonPackage rec {
   version = "1.2.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.8" || pythonAtLeast "3.10";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "ful1e5";
diff --git a/pkgs/development/python-modules/cloudflare/default.nix b/pkgs/development/python-modules/cloudflare/default.nix
index e6498216aa03c..97c23c17dd351 100644
--- a/pkgs/development/python-modules/cloudflare/default.nix
+++ b/pkgs/development/python-modules/cloudflare/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "cloudflare";
-  version = "2.9.10";
+  version = "2.9.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LsUMB0zqlelHqWsgdmJ8v+Qn/reYuxCTKTODBT9K0bg=";
+    hash = "sha256-kvCSazLBU2sBzobdZrVXcdlEpMoAe5wb7rBWxzhDuus=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/connexion/default.nix b/pkgs/development/python-modules/connexion/default.nix
index 2e36a1c455470..3bac60d0e7d77 100644
--- a/pkgs/development/python-modules/connexion/default.nix
+++ b/pkgs/development/python-modules/connexion/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "connexion";
-  version = "2.13.1";
+  version = "2.14.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "spec-first";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-nWhrb2oyBue/Q/dAdSgk3K/JXdgLg1xAEbOtCTRYs/M=";
+    hash = "sha256-5+OZvJG68jZZsfOuOqsCUSPLV6vvjk9msJzjsCwo0jw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cookiecutter/default.nix b/pkgs/development/python-modules/cookiecutter/default.nix
index de42f72841121..fdad4febcdafb 100644
--- a/pkgs/development/python-modules/cookiecutter/default.nix
+++ b/pkgs/development/python-modules/cookiecutter/default.nix
@@ -1,23 +1,31 @@
 { lib, buildPythonPackage, fetchPypi, isPyPy
 , pytest, pytest-cov, pytest-mock, freezegun
-, jinja2, future, binaryornot, click, whichcraft, poyo, jinja2_time, requests
-, python-slugify }:
+, jinja2, future, binaryornot, click, jinja2_time, requests
+, python-slugify
+, pyyaml
+}:
 
 buildPythonPackage rec {
   pname = "cookiecutter";
-  version = "1.7.3";
+  version = "2.1.1";
 
   # not sure why this is broken
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-a5pNcoguJDvgd6c5fQ8fdv5mzz35HzEV27UzDiFPpFc=";
+    sha256 = "sha256-85gr6NnFPawSYYZAE/3sf4Ov0uQu3m9t0GnF4UnFQNU=";
   };
 
   checkInputs = [ pytest pytest-cov pytest-mock freezegun ];
   propagatedBuildInputs = [
-    jinja2 future binaryornot click whichcraft poyo jinja2_time requests python-slugify
+    binaryornot
+    jinja2
+    click
+    pyyaml
+    jinja2_time
+    python-slugify
+    requests
   ];
 
   # requires network access for cloning git repos
diff --git a/pkgs/development/python-modules/crownstone-uart/default.nix b/pkgs/development/python-modules/crownstone-uart/default.nix
index e24235203ebb9..163f6a6cec28b 100644
--- a/pkgs/development/python-modules/crownstone-uart/default.nix
+++ b/pkgs/development/python-modules/crownstone-uart/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "crownstone-uart";
-  version = "2.4.1";
+  version = "2.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "crownstone";
     repo = "crownstone-lib-python-uart";
     rev = version;
-    sha256 = "sha256-NGy63o56oWhHcQ9QKo05k/z8ABp3p3T3+uY2O1YyzBk=";
+    sha256 = "sha256-WcEwAqHy3tuRlx1nyc+BKAb+PLD2B55fGSgb8dsbXbM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/diff-cover/default.nix b/pkgs/development/python-modules/diff-cover/default.nix
index 7d7a9afcd300a..2b50dc97fb1e3 100644
--- a/pkgs/development/python-modules/diff-cover/default.nix
+++ b/pkgs/development/python-modules/diff-cover/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "diff-cover";
-  version = "6.5.0";
+  version = "6.5.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "diff_cover";
     inherit version;
-    hash = "sha256-N2O0/C75EGO6crUCFGUiJLLQqfMVRNVQRZb1xKhHzXs=";
+    hash = "sha256-jDuxOBLpZnvIP4x2BkAlEenC/nnWeG8SlSLnlpPuCWs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/django-allauth/default.nix b/pkgs/development/python-modules/django-allauth/default.nix
index 16d3e88b2115a..6db3cbefedb8d 100644
--- a/pkgs/development/python-modules/django-allauth/default.nix
+++ b/pkgs/development/python-modules/django-allauth/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "django-allauth";
-  version = "0.50.0";
+  version = "0.51.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "pennersr";
     repo = pname;
     rev = version;
-    hash = "sha256-O6KEDt+Z1MJUvKXQJILqLRgNj+ZrCZjlb3CJHpRL1Kk=";
+    hash = "sha256-o8EoayMMwxoJTrUA3Jo1Dfu1XFgC+Mcpa8yMwXlKAKY=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/django-debug-toolbar/default.nix b/pkgs/development/python-modules/django-debug-toolbar/default.nix
index 871b8bb852e64..b4409dc04d4cb 100644
--- a/pkgs/development/python-modules/django-debug-toolbar/default.nix
+++ b/pkgs/development/python-modules/django-debug-toolbar/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "django-debug-toolbar";
-  version = "3.4";
+  version = "3.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "jazzband";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-tXQZcQvdGEtcIAtER1s2HSVkGHW0sdrnC+i01+RuSXg=";
+    hash = "sha256-OZWO3tXZ+p+zKtQHCkj0kGSXpDFHFV+HqSgiJvLmMTg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/django-oauth-toolkit/default.nix b/pkgs/development/python-modules/django-oauth-toolkit/default.nix
index eca67211671c4..65bf5045a0351 100644
--- a/pkgs/development/python-modules/django-oauth-toolkit/default.nix
+++ b/pkgs/development/python-modules/django-oauth-toolkit/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "django-oauth-toolkit";
-  version = "1.7.0";
+  version = "2.1.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "jazzband";
     repo = pname;
-    rev = version;
-    sha256 = "0rp7pjif54yvdxfxn0pnf8ha3fjxspnx1ijyr1f8npwk2x5vnvhb";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-c78QYlU/gB4Lt04TlQFjtsS6pyjDm/fURBMa9hXLpLI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/django-prometheus/default.nix b/pkgs/development/python-modules/django-prometheus/default.nix
index 733a177d6a5ef..209395ef6430a 100644
--- a/pkgs/development/python-modules/django-prometheus/default.nix
+++ b/pkgs/development/python-modules/django-prometheus/default.nix
@@ -16,8 +16,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "korfuri";
     repo = pname;
-    rev = version;
-    sha256 = "1y1cmycc545xrys41jk8kia36hwnkwhkw26mlpfdjgb63vq30x1d";
+    rev = "v${version}";
+    hash = "sha256-NE0zHnGGSrtkBLrSyBcQuyGrSfSQbdpevokg3YZhwDw=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/django-prometheus/drop-untestable-database-backends.patch b/pkgs/development/python-modules/django-prometheus/drop-untestable-database-backends.patch
index 1e9e650608498..41f1229c5e59e 100644
--- a/pkgs/development/python-modules/django-prometheus/drop-untestable-database-backends.patch
+++ b/pkgs/development/python-modules/django-prometheus/drop-untestable-database-backends.patch
@@ -1,5 +1,5 @@
 diff --git a/django_prometheus/tests/end2end/testapp/settings.py b/django_prometheus/tests/end2end/testapp/settings.py
-index 0630721..bd2190a 100644
+index cdd167f..5c6073b 100644
 --- a/django_prometheus/tests/end2end/testapp/settings.py
 +++ b/django_prometheus/tests/end2end/testapp/settings.py
 @@ -53,33 +53,6 @@ DATABASES = {
@@ -28,9 +28,9 @@ index 0630721..bd2190a 100644
 -    "mysql": {
 -        "ENGINE": "django_prometheus.db.backends.mysql",
 -        "NAME": "django_prometheus_1",
--        "USER": "travis",
+-        "USER": "root",
 -        "PASSWORD": "",
--        "HOST": "localhost",
+-        "HOST": "127.0.0.1",
 -        "PORT": "3306",
 -    },
      # The following databases are used by test_db.py only
diff --git a/pkgs/development/python-modules/django-webpack-loader/default.nix b/pkgs/development/python-modules/django-webpack-loader/default.nix
index 2656dd593c1c2..ee51b0e7c8ecb 100644
--- a/pkgs/development/python-modules/django-webpack-loader/default.nix
+++ b/pkgs/development/python-modules/django-webpack-loader/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "django-webpack-loader";
-  version = "1.4.1";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7e34085b7fc4d352e482ff9cf7d09ae4524e730675e25432ab1d25a2dd94e583";
+    sha256 = "sha256-opQY/0FpADW+ENLJSgZV2rCZAJxouJiDmBPWoQmxTXE=";
   };
 
   # django.core.exceptions.ImproperlyConfigured (path issue with DJANGO_SETTINGS_MODULE?)
diff --git a/pkgs/development/python-modules/dremel3dpy/default.nix b/pkgs/development/python-modules/dremel3dpy/default.nix
index 06de83a778ae5..52f0721580281 100644
--- a/pkgs/development/python-modules/dremel3dpy/default.nix
+++ b/pkgs/development/python-modules/dremel3dpy/default.nix
@@ -2,28 +2,34 @@
 , async-timeout
 , buildPythonPackage
 , fetchPypi
+, imageio
+, imutils
 , pythonOlder
 , requests
 , urllib3
+, tqdm
 , validators
 , yarl
 }:
 
 buildPythonPackage rec {
   pname = "dremel3dpy";
-  version = "0.3.4";
+  version = "1.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zKbHKdgMx76cYGPvPVSm39si0LfyDA4L1CcKaQzEpCw=";
+    hash = "sha256-wqfCzS9dhRN/zerrC6g/O8tn0k1IC0wBdZMfWumtBds=";
   };
 
   propagatedBuildInputs = [
     async-timeout
+    imageio
+    imutils
     requests
+    tqdm
     urllib3
     validators
     yarl
diff --git a/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix b/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix
index e9128b79ec761..e2413df85d425 100644
--- a/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix
+++ b/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "drf-spectacular-sidecar";
-  version = "2022.5.1";
+  version = "2022.6.1";
 
   src = fetchFromGitHub {
     owner = "tfranzel";
     repo = "drf-spectacular-sidecar";
     rev = version;
-    sha256 = "sha256-UBuHU+F4b+plhGbvqho8/bgmq6yDUXSTnfxyD1xlDY4=";
+    sha256 = "sha256-SKMAA8tcvWUF7EARq9vN8C0DWcQFRX5j/tfgHF5TUWs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ducc0/default.nix b/pkgs/development/python-modules/ducc0/default.nix
index ce2d0e4ef6e84..218af92608d46 100644
--- a/pkgs/development/python-modules/ducc0/default.nix
+++ b/pkgs/development/python-modules/ducc0/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "ducc0";
-  version = "0.23.0";
+  version = "0.24.0";
 
   disabled = pythonOlder "3.7";
 
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     owner = "mtr";
     repo = "ducc";
     rev = "ducc0_${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "dOc3TihtoRuLfniC9zQ1MEbnvGJHzFZfZ8+J8Dnw6Lk=";
+    sha256 = "sFgEO6f9D3AFV62yLEocgrPrj03H60e2NtdA/Ws6lQw=";
   };
 
   buildInputs = [ pybind11 ];
diff --git a/pkgs/development/python-modules/duckdb-engine/default.nix b/pkgs/development/python-modules/duckdb-engine/default.nix
index ef5e039cd28d1..ef4bc58459293 100644
--- a/pkgs/development/python-modules/duckdb-engine/default.nix
+++ b/pkgs/development/python-modules/duckdb-engine/default.nix
@@ -11,7 +11,7 @@
 }:
 buildPythonPackage rec {
   pname = "duckdb-engine";
-  version = "0.1.10";
+  version = "0.1.11";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     repo = "duckdb_engine";
     owner = "Mause";
     rev = "refs/tags/${version}";
-    hash = "sha256-KyRBtl6lCBlgnlh+iblmG6t6brYduosBF6NK3KQQ9OM=";
+    hash = "sha256-tjyaV9DmiP2XrKxSCX2qKo7T7GNZtT3y5d1yQLdVuSE=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/pkgs/development/python-modules/duckdb/default.nix b/pkgs/development/python-modules/duckdb/default.nix
index 787a54f267699..dd7ad8737975a 100644
--- a/pkgs/development/python-modules/duckdb/default.nix
+++ b/pkgs/development/python-modules/duckdb/default.nix
@@ -1,9 +1,11 @@
 { lib
 , buildPythonPackage
 , duckdb
+, google-cloud-storage
 , mypy
 , numpy
 , pandas
+, psutil
 , pybind11
 , setuptools-scm
 , pytestCheckHook
@@ -29,7 +31,9 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    google-cloud-storage
     mypy
+    psutil
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/email-validator/default.nix b/pkgs/development/python-modules/email-validator/default.nix
index b6112bb87dccd..bdd830810fb38 100644
--- a/pkgs/development/python-modules/email-validator/default.nix
+++ b/pkgs/development/python-modules/email-validator/default.nix
@@ -44,10 +44,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A robust email syntax and deliverability validation library for Python 2.x/3.x.";
+    description = "A robust email syntax and deliverability validation library";
     homepage    = "https://github.com/JoshData/python-email-validator";
     license     = licenses.cc0;
     maintainers = with maintainers; [ siddharthist ];
-    platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/eth-typing/default.nix b/pkgs/development/python-modules/eth-typing/default.nix
index a2f3103be47d7..6c8bc6cb57073 100644
--- a/pkgs/development/python-modules/eth-typing/default.nix
+++ b/pkgs/development/python-modules/eth-typing/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "eth-typing";
-  version = "3.0.0";
+  version = "3.1.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "ethereum";
     repo = "eth-typing";
     rev = "v${version}";
-    sha256 = "sha256-9rrnDFPWAmrUkr2mVTVi/8DTJdg4hzGaU0UbpwG5mtY=";
+    sha256 = "sha256-Xk/IfW1zuNbGdYAxXTNL9kL+ZW1bWruZ21KFV9+lv/E=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/expiringdict/default.nix b/pkgs/development/python-modules/expiringdict/default.nix
index 23ca9c1c3f2a1..942feff4513f6 100644
--- a/pkgs/development/python-modules/expiringdict/default.nix
+++ b/pkgs/development/python-modules/expiringdict/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonApplication rec {
   pname = "expiringdict";
-  version = "1.2.1";
+  version = "1.2.2";
 
   # use fetchFromGitHub instead of fetchPypi because the test suite of
   # the package is not included into the PyPI tarball
@@ -18,7 +18,7 @@ buildPythonApplication rec {
     owner = "mailgun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "07g1vxznmim78bankfl9brr01s31sksdcpwynq1yryh6xw9ri5xs";
+    sha256 = "sha256-vRhJSHIqc51I+s/wndtfANM44CKW3QS1iajqyoSBf0I=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/fastapi-mail/default.nix b/pkgs/development/python-modules/fastapi-mail/default.nix
index 8b3c6d0ed0566..973c810b63476 100644
--- a/pkgs/development/python-modules/fastapi-mail/default.nix
+++ b/pkgs/development/python-modules/fastapi-mail/default.nix
@@ -3,7 +3,7 @@
 , aiosmtplib
 , blinker
 , buildPythonPackage
-, email_validator
+, email-validator
 , fakeredis
 , fastapi
 , fetchFromGitHub
@@ -45,7 +45,7 @@ buildPythonPackage rec {
     aioredis
     aiosmtplib
     blinker
-    email_validator
+    email-validator
     fakeredis
     fastapi
     httpx
diff --git a/pkgs/development/python-modules/flake8-bugbear/default.nix b/pkgs/development/python-modules/flake8-bugbear/default.nix
index a2fb820c1e5fe..7d6df07885baa 100644
--- a/pkgs/development/python-modules/flake8-bugbear/default.nix
+++ b/pkgs/development/python-modules/flake8-bugbear/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "flake8-bugbear";
-  version = "22.4.25";
+  version = "22.6.22";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "PyCQA";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-y/hpBlIQ3aJj3Y1snpArOCIv2w1ncQNMSYJ+G0CeM84=";
+    hash = "sha256-U5f7NZ1rkcYcluLsw2hTuPxme7QrmAMJrpKncFsYzNs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flask-admin/default.nix b/pkgs/development/python-modules/flask-admin/default.nix
index 6a1ea3991cfa3..75573c7a69d64 100644
--- a/pkgs/development/python-modules/flask-admin/default.nix
+++ b/pkgs/development/python-modules/flask-admin/default.nix
@@ -2,7 +2,7 @@
 , arrow
 , buildPythonPackage
 , colour
-, email_validator
+, email-validator
 , enum34
 , fetchPypi
 , flask
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   checkInputs = [
     arrow
     colour
-    email_validator
+    email-validator
     flask_sqlalchemy
     flask-babelex
     flask-mongoengine
diff --git a/pkgs/development/python-modules/flask-appbuilder/default.nix b/pkgs/development/python-modules/flask-appbuilder/default.nix
index 5276fceb3f51a..9b0e993b1eb34 100644
--- a/pkgs/development/python-modules/flask-appbuilder/default.nix
+++ b/pkgs/development/python-modules/flask-appbuilder/default.nix
@@ -5,7 +5,7 @@
 , apispec
 , colorama
 , click
-, email_validator
+, email-validator
 , flask
 , flask-babel
 , flask_login
@@ -56,7 +56,7 @@ buildPythonPackage rec {
     apispec
     colorama
     click
-    email_validator
+    email-validator
     flask
     flask-babel
     flask_login
diff --git a/pkgs/development/python-modules/flask-caching/default.nix b/pkgs/development/python-modules/flask-caching/default.nix
index 9fd80ac6d6778..6e78841ab8c32 100644
--- a/pkgs/development/python-modules/flask-caching/default.nix
+++ b/pkgs/development/python-modules/flask-caching/default.nix
@@ -1,18 +1,34 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, flask, pytestCheckHook, pytest-cov, pytest-xprocess, pytestcache }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, cachelib
+, flask
+, pytest-asyncio
+, pytest-xprocess
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "Flask-Caching";
-  version = "1.10.1";
-  disabled = isPy27; # invalid python2 syntax
+  version = "1.11.1";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cf19b722fcebc2ba03e4ae7c55b532ed53f0cbf683ce36fafe5e881789a01c00";
+    sha256 = "28af189e97defb9e39b43ebe197b54a58aaee81bdeb759f46d969c26d7aa7810";
   };
 
-  propagatedBuildInputs = [ flask ];
+  propagatedBuildInputs = [
+    cachelib
+    flask
+  ];
 
-  checkInputs = [ pytestCheckHook pytest-cov pytest-xprocess pytestcache ];
+  checkInputs = [
+    pytest-asyncio
+    pytest-xprocess
+    pytestCheckHook
+  ];
 
   disabledTests = [
     # backend_cache relies on pytest-cache, which is a stale package from 2013
diff --git a/pkgs/development/python-modules/flask-mongoengine/default.nix b/pkgs/development/python-modules/flask-mongoengine/default.nix
index ee05ff420333b..e411d1f55a78b 100644
--- a/pkgs/development/python-modules/flask-mongoengine/default.nix
+++ b/pkgs/development/python-modules/flask-mongoengine/default.nix
@@ -8,7 +8,7 @@
 , nose
 , rednose
 , coverage
-, email_validator
+, email-validator
 }:
 
 buildPythonPackage rec {
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    email_validator
+    email-validator
     flask
     flask-wtf
     mongoengine
diff --git a/pkgs/development/python-modules/flask-security-too/default.nix b/pkgs/development/python-modules/flask-security-too/default.nix
index ec088d5332c18..e1a598d3a0ba4 100644
--- a/pkgs/development/python-modules/flask-security-too/default.nix
+++ b/pkgs/development/python-modules/flask-security-too/default.nix
@@ -23,7 +23,7 @@
 
 # propagates
 , blinker
-, email_validator
+, email-validator
 , flask
 , flask_login
 , flask_principal
@@ -54,7 +54,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     blinker
-    email_validator
+    email-validator
     flask
     flask_login
     flask_principal
diff --git a/pkgs/development/python-modules/flask-wtf/default.nix b/pkgs/development/python-modules/flask-wtf/default.nix
index fcfa4835be7c2..014f250128c32 100644
--- a/pkgs/development/python-modules/flask-wtf/default.nix
+++ b/pkgs/development/python-modules/flask-wtf/default.nix
@@ -4,7 +4,7 @@
 , flask
 , itsdangerous
 , wtforms
-, email_validator
+, email-validator
 , pytestCheckHook
 }:
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    email = [ email_validator ];
+    email = [ email-validator ];
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/flower/default.nix b/pkgs/development/python-modules/flower/default.nix
index c7a2ba59db3e9..c8c9b7f4b19d4 100644
--- a/pkgs/development/python-modules/flower/default.nix
+++ b/pkgs/development/python-modules/flower/default.nix
@@ -54,5 +54,8 @@ buildPythonPackage rec {
     homepage = "https://github.com/mher/flower";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ arnoldfarkas ];
+    knownVulnerabilities = [
+      "CVE-2022-30034"
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/furo/default.nix b/pkgs/development/python-modules/furo/default.nix
index 60fbc917f7d95..cd97c2b5697c7 100644
--- a/pkgs/development/python-modules/furo/default.nix
+++ b/pkgs/development/python-modules/furo/default.nix
@@ -4,11 +4,12 @@
 , fetchPypi
 , sphinx
 , beautifulsoup4
+, sphinx-basic-ng
 }:
 
 buildPythonPackage rec {
   pname = "furo";
-  version = "2022.4.7";
+  version = "2022.6.21";
   format = "wheel";
   disable = pythonOlder "3.6";
 
@@ -16,12 +17,13 @@ buildPythonPackage rec {
     inherit pname version format;
     dist = "py3";
     python = "py3";
-    sha256 = "sha256-fz49L7l3SDWQ+Oyyws1RG9gmYbecGO+yTelVi8nN8tc=";
+    sha256 = "sha256-Bhto4yM0Xif8ugJM8zoed/Pf2NmYdBC+gidJpwbirdY=";
   };
 
   propagatedBuildInputs = [
     sphinx
     beautifulsoup4
+    sphinx-basic-ng
   ];
 
   installCheckPhase = ''
diff --git a/pkgs/development/python-modules/gehomesdk/default.nix b/pkgs/development/python-modules/gehomesdk/default.nix
index 43609f3329244..35cd4ea7c4d95 100644
--- a/pkgs/development/python-modules/gehomesdk/default.nix
+++ b/pkgs/development/python-modules/gehomesdk/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "gehomesdk";
-  version = "0.4.25";
+  version = "0.4.27";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-TGitDdRvNKaZzbPrYvWx1bdbXAJW3OSnzbPBF2LpJW4=";
+    sha256 = "sha256-jhggGncxguG/hZutZ3gfg9dwl0Ex5wpcHFKZegAaM9Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/gsd/default.nix b/pkgs/development/python-modules/gsd/default.nix
index f4f3a7eb13fa9..0714352ed5eef 100644
--- a/pkgs/development/python-modules/gsd/default.nix
+++ b/pkgs/development/python-modules/gsd/default.nix
@@ -4,15 +4,15 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.5.1";
+  version = "2.5.3";
   pname = "gsd";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "glotzerlab";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "00cy4lw7xnl2skfx7fg7cs1c8lrbaxvkym9j6zfi1dbvsdd0r103";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-3CJKpvgJuFC/2qQdy0H/kvLbtmfF22gBAQustK99uEE=";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/ihatemoney/default.nix b/pkgs/development/python-modules/ihatemoney/default.nix
index dafea4e2cb20e..bacaea2f2cb19 100644
--- a/pkgs/development/python-modules/ihatemoney/default.nix
+++ b/pkgs/development/python-modules/ihatemoney/default.nix
@@ -10,7 +10,7 @@
 , cachetools
 , click
 , dnspython
-, email_validator
+, email-validator
 , flask
 , flask-babel
 , flask-cors
@@ -60,7 +60,7 @@ buildPythonPackage rec {
     click
     debts
     dnspython
-    email_validator
+    email-validator
     flask
     flask_mail
     flask_migrate
diff --git a/pkgs/development/python-modules/imap-tools/default.nix b/pkgs/development/python-modules/imap-tools/default.nix
index 404731e22a9a5..95f988a34951a 100644
--- a/pkgs/development/python-modules/imap-tools/default.nix
+++ b/pkgs/development/python-modules/imap-tools/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "imap-tools";
-  version = "0.55.0";
+  version = "0.56.0";
 
   disabled = isPy27;
 
@@ -16,8 +16,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "ikvk";
     repo = "imap_tools";
-    rev = "v${version}";
-    hash = "sha256-Jtuw0pYkgR1wrqPlEBOpia1rFU/+MLadOFEm2xLIFMw=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-g1m44hUtD/x7zEe/ELY6zj2hJikSmZB6S8ZHEHPrvz0=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/iminuit/default.nix b/pkgs/development/python-modules/iminuit/default.nix
index 37703a3150f43..7b45a8cac65c5 100644
--- a/pkgs/development/python-modules/iminuit/default.nix
+++ b/pkgs/development/python-modules/iminuit/default.nix
@@ -1,21 +1,37 @@
-{ lib, buildPythonPackage, isPy3k, fetchPypi, cmake, numpy, pytestCheckHook }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, cmake
+, numpy
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "iminuit";
-  version = "2.11.2";
-  disabled = !isPy3k;
+  version = "2.12.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-jK55F8otIsaR4AeSv7u4ErhKxcdRIOsq6Hn7StpB7mw=";
+    hash = "sha256-zQ48t1EwLAZphOqzBhLF0kGaVDF/6+UbUL4fohr8Uak=";
   };
 
-  nativeBuildInputs = [ cmake ];
-  propagatedBuildInputs = [ numpy ];
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+  ];
 
   dontUseCmakeConfigure = true;
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/scikit-hep/iminuit";
diff --git a/pkgs/development/python-modules/junos-eznc/default.nix b/pkgs/development/python-modules/junos-eznc/default.nix
index d693c73130be8..9830d29789b51 100644
--- a/pkgs/development/python-modules/junos-eznc/default.nix
+++ b/pkgs/development/python-modules/junos-eznc/default.nix
@@ -77,7 +77,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jnpr.junos" ];
 
   meta = with lib; {
-    homepage = "http://www.github.com/Juniper/py-junos-eznc";
+    homepage = "https://github.com/Juniper/py-junos-eznc";
     description = "Junos 'EZ' automation for non-programmers";
     license = licenses.asl20;
     maintainers = with maintainers; [ xnaveira ];
diff --git a/pkgs/development/python-modules/jupyter_server/default.nix b/pkgs/development/python-modules/jupyter_server/default.nix
index 0001dd5e9373a..a140e2930b317 100644
--- a/pkgs/development/python-modules/jupyter_server/default.nix
+++ b/pkgs/development/python-modules/jupyter_server/default.nix
@@ -1,10 +1,12 @@
 { lib
 , stdenv
 , buildPythonPackage
-, fetchpatch
 , fetchPypi
 , pythonOlder
+, pandoc
 , pytestCheckHook
+, pytest-console-scripts
+, pytest-timeout
 , pytest-tornasync
 , argon2-cffi
 , jinja2
@@ -28,21 +30,14 @@
 
 buildPythonPackage rec {
   pname = "jupyter_server";
-  version = "1.11.2";
-  disabled = pythonOlder "3.6";
+  version = "1.17.1";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c1f32e0c1807ab2de37bf70af97a36b4436db0bc8af3124632b1f4441038bf95";
+    sha256 = "a36781656645ae17b12819a49ace377c045bf633823b3e4cd4b0c88c01e7711b";
   };
 
-  patches = [ (fetchpatch
-    { name = "Normalize-file-name-and-path.patch";
-      url = "https://github.com/jupyter-server/jupyter_server/pull/608/commits/345e26cdfd78651954b68708fa44119c2ac0dbd5.patch";
-      sha256 = "1kqz3dyh2w0h1g1fbvqa13q17hb6y32694rlaasyg213mq6g4k32";
-    })
-  ];
-
   propagatedBuildInputs = [
     argon2-cffi
     jinja2
@@ -64,7 +59,10 @@ buildPythonPackage rec {
 
   checkInputs = [
     ipykernel
+    pandoc
     pytestCheckHook
+    pytest-console-scripts
+    pytest-timeout
     pytest-tornasync
     requests
   ];
@@ -74,19 +72,18 @@ buildPythonPackage rec {
     export PATH=$out/bin:$PATH
   '';
 
-  pytestFlagsArray = [ "jupyter_server" ];
-
-  # disabled failing tests
   disabledTests = [
-    "test_server_extension_list"
-    "test_list_formats"
-    "test_base_url"
-    "test_culling"
+    "test_cull_idle"
   ] ++ lib.optionals stdenv.isDarwin [
     # attempts to use trashcan, build env doesn't allow this
     "test_delete"
   ];
 
+  disabledTestPaths = [
+    "tests/services/kernels/test_api.py"
+    "tests/services/sessions/test_api.py"
+  ];
+
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/jupyterhub/default.nix b/pkgs/development/python-modules/jupyterhub/default.nix
index c2855d6c8773b..04db4d4d0c229 100644
--- a/pkgs/development/python-modules/jupyterhub/default.nix
+++ b/pkgs/development/python-modules/jupyterhub/default.nix
@@ -61,12 +61,12 @@ in
 
 buildPythonPackage rec {
   pname = "jupyterhub";
-  version = "1.3.0";
+  version = "1.5.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13pf6qhimpaxj20871ff5rvwwan59320cdhhrn9cfh6314971zq5";
+    sha256 = "sha256-3GGPZXwjukYoDjYlflCTGAZnS6Dp5kmK+wke/GIm1p0=";
   };
 
   # Most of this only applies when building from source (e.g. js/css assets are
@@ -158,6 +158,7 @@ buildPythonPackage rec {
     broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     description = "Serves multiple Jupyter notebook instances";
     homepage = "https://jupyter.org/";
+    changelog = "https://github.com/jupyterhub/jupyterhub/blob/${version}/docs/source/changelog.md";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ixxie cstrahan ];
   };
diff --git a/pkgs/development/python-modules/kerberos/default.nix b/pkgs/development/python-modules/kerberos/default.nix
index c4772d6065189..a584e38810fc5 100644
--- a/pkgs/development/python-modules/kerberos/default.nix
+++ b/pkgs/development/python-modules/kerberos/default.nix
@@ -20,8 +20,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Kerberos high-level interface";
-    homepage = "https://pypi.python.org/pypi/kerberos";
+    homepage = "https://pypi.org/project/kerberos/";
     license = licenses.asl20;
+    knownVulnerabilities = [
+      "CVE-2015-3206"
+    ];
   };
-
 }
diff --git a/pkgs/development/python-modules/kubernetes/default.nix b/pkgs/development/python-modules/kubernetes/default.nix
index bba71224cfdbf..9ed7f3d23d39a 100644
--- a/pkgs/development/python-modules/kubernetes/default.nix
+++ b/pkgs/development/python-modules/kubernetes/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "kubernetes";
-  version = "23.6.0";
+  version = "24.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -32,8 +32,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "kubernetes-client";
     repo = "python";
-    rev = "v${version}";
-    sha256 = "sha256-d6S7cMTiwIgqOcN9j3yeEXUNSro9I2b8HLJw1oGKjWI=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-rRr73UGhLzpznpNKHCj8LReMk2wOpIoxrSzitl9J+Pg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/losant-rest/default.nix b/pkgs/development/python-modules/losant-rest/default.nix
index a160095513eb5..f27897a7e1ed3 100644
--- a/pkgs/development/python-modules/losant-rest/default.nix
+++ b/pkgs/development/python-modules/losant-rest/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "losant-rest";
-  version = "1.16.2";
+  version = "1.16.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "Losant";
     repo = "losant-rest-python";
     rev = "v${version}";
-    sha256 = "sha256-OR5SegUfui5g11QZZJzAq8nhp7bFjS4Ip2gMjfx7tpA=";
+    sha256 = "sha256-s9WPr5sFSyPIDRgRYcD55iRLhaVIvkiDGg/m//6acFY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/lxmf/default.nix b/pkgs/development/python-modules/lxmf/default.nix
index 8ae981cc1f1a8..4142b0b505aad 100644
--- a/pkgs/development/python-modules/lxmf/default.nix
+++ b/pkgs/development/python-modules/lxmf/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "lxmf";
-  version = "0.1.6";
+  version = "0.1.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "lxmf";
     rev = "refs/tags/${version}";
-    hash = "sha256-n7ZEXz+jFokjqQJf8feDE6wuN2kI3xB0z+guUhGse3o=";
+    hash = "sha256-SRDUFDtXJ1ZkX8A4ekF+YSOnxj/vsFsvr3W/LOIuerg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/manuel/default.nix b/pkgs/development/python-modules/manuel/default.nix
index 27ec85a1f4d12..7bf02f03895b2 100644
--- a/pkgs/development/python-modules/manuel/default.nix
+++ b/pkgs/development/python-modules/manuel/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "manuel";
-  version = "1.11.2";
+  version = "1.12.4";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-nJt3WMQ66oa3VlW5InJCzOea96Wf7WwxSbBp9WIfzqc=";
+    sha256 = "sha256-A5Wq32mR+SSseVz61Z2l3AYYcyqMxYrQ9HSWWrco9/Q=";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/md-toc/default.nix b/pkgs/development/python-modules/md-toc/default.nix
index 5d3cde1d038c6..0510aed835ad7 100644
--- a/pkgs/development/python-modules/md-toc/default.nix
+++ b/pkgs/development/python-modules/md-toc/default.nix
@@ -2,22 +2,23 @@
 , buildPythonPackage
 , fetchFromGitHub
 , fpyutils
+, pyfakefs
 , pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "md-toc";
-  version = "8.1.3";
+  version = "8.1.4";
   format = "setuptools";
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "frnmst";
     repo = pname;
     rev = version;
-    sha256 = "sha256-/Hi2CW3aqbvCr7xGHD9lAe9U84waSjVfTfWq76NXNT4=";
+    hash = "sha256-7bXd+kTB1NF5KfcDVsvemCfIbZxv6nAw851bNo375Xs=";
   };
 
   propagatedBuildInputs = [
@@ -25,6 +26,7 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    pyfakefs
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/miniaudio/default.nix b/pkgs/development/python-modules/miniaudio/default.nix
index d40c1df47cd90..328dcd93ad48d 100644
--- a/pkgs/development/python-modules/miniaudio/default.nix
+++ b/pkgs/development/python-modules/miniaudio/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "miniaudio";
-  version = "1.50";
+  version = "1.51";
 
   disabled = pythonOlder "3.6";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "irmen";
     repo = "pyminiaudio";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-GqpOuL+q5v9sKCpbNpPH4uC7k2HBs0RkTWaIC5A2eHI=";
+    sha256 = "sha256-nWx/1+b28/pvyTe8jSAOmw+vfzjuD7FFmVVUzH8DAyw=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [
diff --git a/pkgs/development/python-modules/mitogen/default.nix b/pkgs/development/python-modules/mitogen/default.nix
index d99bdec4b0da0..6b6f29e1d5f4d 100644
--- a/pkgs/development/python-modules/mitogen/default.nix
+++ b/pkgs/development/python-modules/mitogen/default.nix
@@ -6,7 +6,7 @@
 
 buildPythonPackage rec {
   pname = "mitogen";
-  version = "0.3.2";
+  version = "0.3.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "mitogen-hq";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ACd1z9h9RLu6Kho59L2YkXkLtBEywYbO+drUvoZaVlg=";
+    sha256 = "sha256-cx0q2Y9A6UzpdD1kuGBtXIs9oBGFpkIyvPfN2hj+A1g=";
   };
 
   # Tests require network access and Docker support
diff --git a/pkgs/development/python-modules/mockito/default.nix b/pkgs/development/python-modules/mockito/default.nix
index 1d2509c4a75e5..e9af134ba111e 100644
--- a/pkgs/development/python-modules/mockito/default.nix
+++ b/pkgs/development/python-modules/mockito/default.nix
@@ -1,12 +1,12 @@
 { lib, buildPythonPackage, fetchPypi, isPy3k, funcsigs, pytest, numpy }:
 
 buildPythonPackage rec {
-  version = "1.3.1";
+  version = "1.3.3";
   pname = "mockito";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-o8Hg3UnxWbJITBu/IjsbWRHDiJ5smffKUNHAqG21170=";
+    sha256 = "sha256-mCRTdihXcyMHNPJkmGWLHcBFrTvhNCH1CMcaXHaVe8E=";
   };
 
   propagatedBuildInputs = lib.optionals (!isPy3k) [ funcsigs ];
diff --git a/pkgs/development/python-modules/mysqlclient/default.nix b/pkgs/development/python-modules/mysqlclient/default.nix
index ad1e321e9f845..c12b16611e924 100644
--- a/pkgs/development/python-modules/mysqlclient/default.nix
+++ b/pkgs/development/python-modules/mysqlclient/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "mysqlclient";
-  version = "2.1.0";
+  version = "2.1.1";
 
   nativeBuildInputs = [
     libmysqlclient
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "973235686f1b720536d417bf0a0d39b4ab3d5086b2b6ad5e6752393428c02b12";
+    sha256 = "sha256-godX5Bn7Ed1sXtJXbsksPvqpOg98OeJjWG0e53nD14I=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/napalm/default.nix b/pkgs/development/python-modules/napalm/default.nix
index 09d38875db8e8..9625c8b55649f 100644
--- a/pkgs/development/python-modules/napalm/default.nix
+++ b/pkgs/development/python-modules/napalm/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchFromGitHub, fetchpatch, setuptools, cffi
 , paramiko, requests, future, textfsm, jinja2, netaddr, pyyaml, pyeapi, netmiko
 , junos-eznc, ciscoconfparse, scp, lxml, ncclient, pytestCheckHook, ddt, mock
-, pythonOlder }:
+, pythonOlder, invoke }:
 
 buildPythonPackage rec {
   pname = "napalm";
@@ -35,14 +35,13 @@ buildPythonPackage rec {
       --replace "netmiko>=3.3.0,<4.0.0" "netmiko"
   '';
 
-  buildInputs = [ setuptools ];
-
   propagatedBuildInputs = [
     cffi
     paramiko
     requests
     future
     textfsm
+    invoke
     jinja2
     netaddr
     pyyaml
@@ -51,6 +50,7 @@ buildPythonPackage rec {
     junos-eznc
     ciscoconfparse
     scp
+    setuptools
     lxml
     ncclient
   ];
@@ -62,6 +62,6 @@ buildPythonPackage rec {
       "Network Automation and Programmability Abstraction Layer with Multivendor support";
     homepage = "https://github.com/napalm-automation/napalm";
     license = licenses.asl20;
-    maintainers = [ maintainers.astro ];
+    maintainers = with maintainers; [ ] ++ teams.c3d2.members;
   };
 }
diff --git a/pkgs/development/python-modules/nexia/default.nix b/pkgs/development/python-modules/nexia/default.nix
index e96a2b260b907..184271a5fe67e 100644
--- a/pkgs/development/python-modules/nexia/default.nix
+++ b/pkgs/development/python-modules/nexia/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "nexia";
-  version = "1.0.1";
+  version = "1.0.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "bdraco";
     repo = pname;
     rev = version;
-    sha256 = "sha256-f1IUyeOmRmnr7zWoMKF895FKsNgiiCbw7inmXDGZrVw=";
+    sha256 = "sha256-+3nWf9GjX7ovnumwSq3l1dcHrgWIPPzKsPmI8/tT7Lo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/nomadnet/default.nix b/pkgs/development/python-modules/nomadnet/default.nix
index ef7083980af5f..554df0878595d 100644
--- a/pkgs/development/python-modules/nomadnet/default.nix
+++ b/pkgs/development/python-modules/nomadnet/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "nomadnet";
-  version = "0.1.8";
+  version = "0.1.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "NomadNet";
     rev = version;
-    hash = "sha256-gqUCE35RPt7k0RAoZGJS1srB5K4v6gJkbTKQs8Lajm8=";
+    hash = "sha256-GZsARzqnLyZZU900ONv1/sejsEGMTFNIhOS+SESFBqg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/notebook/default.nix b/pkgs/development/python-modules/notebook/default.nix
index d76909efdcfe9..4efaaf3f9ec94 100644
--- a/pkgs/development/python-modules/notebook/default.nix
+++ b/pkgs/development/python-modules/notebook/default.nix
@@ -27,12 +27,12 @@
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "6.4.10";
+  version = "6.4.12";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-JAina8YokoOo7s/KZ+KY7IPGfbUaTC4bcT3RgLs56Q4=";
+    sha256 = "sha256-YmjJ7JBIz/ekVAXJkMKaycpAsLw+wpJj0hjF4B8rToY=";
   };
 
   LC_ALL = "en_US.utf8";
diff --git a/pkgs/development/python-modules/openai/default.nix b/pkgs/development/python-modules/openai/default.nix
index 3854ed1c76048..87fb5301d7f7a 100644
--- a/pkgs/development/python-modules/openai/default.nix
+++ b/pkgs/development/python-modules/openai/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "openai";
-  version = "0.19.0";
+  version = "0.20.0";
 
   disabled = pythonOlder "3.7.1";
 
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "openai";
     repo = "openai-python";
     rev = "v${version}";
-    sha256 = "sha256-v/EBmKIzHGPR2KGLUqyWlTSZjV2MqALYRRofCXRjH24=";
+    sha256 = "sha256-kG7gsLAOoBCt7pxViO1Zhil2FGHigPEMJfBjdIp2th8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/peaqevcore/default.nix b/pkgs/development/python-modules/peaqevcore/default.nix
index 43a3aa4c60f08..239fcfe5962c1 100644
--- a/pkgs/development/python-modules/peaqevcore/default.nix
+++ b/pkgs/development/python-modules/peaqevcore/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "peaqevcore";
-  version = "2.0.0";
+  version = "2.0.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ctkBzwZ5Caba1JucxCKF7kJs/eZHJz4YSrV3tNyTEXU=";
+    hash = "sha256-GU0g1jCvLcbwO9apt3r/Y8XNtiraEI83thiXI/wDIJk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/proto-plus/default.nix b/pkgs/development/python-modules/proto-plus/default.nix
index ace9537c1d043..3db023447f610 100644
--- a/pkgs/development/python-modules/proto-plus/default.nix
+++ b/pkgs/development/python-modules/proto-plus/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "proto-plus";
-  version = "1.20.5";
+  version = "1.20.6";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-gXlOsb4zPGeYYzOUjfcOu4zfU44Dn4z6kv0qnXF21AU=";
+    sha256 = "sha256-RJtFN+g/R3a9aQUcTXdtuP/j+dBkHx6HsGwRbrlMkOk=";
   };
 
   propagatedBuildInputs = [ protobuf ];
diff --git a/pkgs/development/python-modules/pulumi-aws/default.nix b/pkgs/development/python-modules/pulumi-aws/default.nix
index b62f9b7eaaf5c..838422a31a250 100644
--- a/pkgs/development/python-modules/pulumi-aws/default.nix
+++ b/pkgs/development/python-modules/pulumi-aws/default.nix
@@ -12,7 +12,7 @@
 buildPythonPackage rec {
   pname = "pulumi-aws";
   # Version is independant of pulumi's.
-  version = "5.9.0";
+  version = "5.9.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "pulumi";
     repo = "pulumi-aws";
     rev = "refs/tags/v${version}";
-    hash = "sha256-QEOVI6PvFJ8gf02Hlh42grMt2cObTJsOSmrgmjEZ8Rw=";
+    hash = "sha256-LYWxdqortazhev73JSTItrEyZZYFmeXkAko/2aFKaSw=";
   };
 
   sourceRoot = "${src.name}/sdk/python";
diff --git a/pkgs/development/python-modules/pychromecast/default.nix b/pkgs/development/python-modules/pychromecast/default.nix
index 584462035eb9d..9dce1cfa7938c 100644
--- a/pkgs/development/python-modules/pychromecast/default.nix
+++ b/pkgs/development/python-modules/pychromecast/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pychromecast";
-  version = "12.1.3";
+  version = "12.1.4";
   format = "setuptools";
 
   disabled = !isPy3k;
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyChromecast";
     inherit version;
-    sha256 = "sha256-7dZ7bSPV0GSlbJfNkOpmH6j/12cgvxmbWhJsaGn4HgE=";
+    sha256 = "sha256-nlfcmFpKBdtb3NXaIZy/bO0lVIygk/jXS8EHs8VU7AA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix
index a886b5ba78cee..25a5d54d529e0 100644
--- a/pkgs/development/python-modules/pydantic/default.nix
+++ b/pkgs/development/python-modules/pydantic/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , cython
 , devtools
-, email_validator
+, email-validator
 , fetchFromGitHub
 , pytest-mock
 , pytestCheckHook
@@ -57,7 +57,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     devtools
-    email_validator
+    email-validator
     python-dotenv
     typing-extensions
   ];
diff --git a/pkgs/development/python-modules/pygmt/default.nix b/pkgs/development/python-modules/pygmt/default.nix
index f7728cfa28db0..127150a1a626d 100644
--- a/pkgs/development/python-modules/pygmt/default.nix
+++ b/pkgs/development/python-modules/pygmt/default.nix
@@ -17,15 +17,15 @@
 
 buildPythonPackage rec {
   pname = "pygmt";
-  version = "0.6.0";
+  version = "0.6.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "GenericMappingTools";
     repo = "pygmt";
-    rev = "v${version}";
-    sha256 = "sha256-QzqQKnANReSHIsDbiKSZ1ZgMgbj3NAfq4bmRQktnRjQ=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-/hZUDvMhF/ojTXBcap5lL6X2bYu+opf+TwYNjANgtiw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyhiveapi/default.nix b/pkgs/development/python-modules/pyhiveapi/default.nix
index 36c61204796a1..56e8e4d620bfa 100644
--- a/pkgs/development/python-modules/pyhiveapi/default.nix
+++ b/pkgs/development/python-modules/pyhiveapi/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pyhiveapi";
-  version = "0.5.10";
+  version = "0.5.11";
 
   format = "pyproject";
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "Pyhass";
     repo = "Pyhiveapi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WhUZP6g9KVWIB6QYPDX1X5JQ9ymVX3wR3kzMtTEjEfs=";
+    hash = "sha256-7Zval0LPuL3QUgDwpG91ybbL7gSWm4DxxZ/yXzkBES8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/PyLD/default.nix b/pkgs/development/python-modules/pyld/default.nix
index 5a4741a730ace..464065cbc1750 100644
--- a/pkgs/development/python-modules/PyLD/default.nix
+++ b/pkgs/development/python-modules/pyld/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub, python, requests, gnugrep }:
+{ lib, buildPythonPackage, fetchFromGitHub, python, requests }:
 
 let
 
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     ok_min=401
 
     if ! ${python.interpreter} tests/runtests.py -d ${json-ld}/test-suite 2>&1 | tee test.out; then
-      ok_count=$(${gnugrep}/bin/grep -F '... ok' test.out | wc -l)
+      ok_count=$(grep -F '... ok' test.out | wc -l)
       if [[ $ok_count -lt $ok_min ]]; then
         echo "Less than $ok_min tests passed ($ok_count). Failing the build."
         exit 1
diff --git a/pkgs/development/python-modules/pymazda/default.nix b/pkgs/development/python-modules/pymazda/default.nix
index 5ee3234b70d81..228323f94845e 100644
--- a/pkgs/development/python-modules/pymazda/default.nix
+++ b/pkgs/development/python-modules/pymazda/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pymazda";
-  version = "0.3.3";
+  version = "0.3.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-jvDjitS8r0oyANxUGbYksX7O7dbEqZeWEpYc9gABb78=";
+    sha256 = "sha256-Xq+DXrZp1NrsCgUnjaMWUoM+SDfnXK+YDX2Gcr7FKvQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pymc/default.nix b/pkgs/development/python-modules/pymc/default.nix
index 4fce3800ef1f9..51a669b9c0a88 100644
--- a/pkgs/development/python-modules/pymc/default.nix
+++ b/pkgs/development/python-modules/pymc/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pymc";
-  version = "4.0.0";
+  version = "4.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,8 +24,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "pymc-devs";
     repo = "pymc";
-    rev = "v${version}";
-    hash = "sha256-ZMuDQJ+bmrQlrem/OqU/hIie3ZQkAqayU3N8ZtaW7xo=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-muNwq9ZSxbcFNoitP1k8LEjOxJWft9jqci5q2IGu7F8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pypdf2/default.nix b/pkgs/development/python-modules/pypdf2/default.nix
index 26d27f4455afd..d147de042c9f7 100644
--- a/pkgs/development/python-modules/pypdf2/default.nix
+++ b/pkgs/development/python-modules/pypdf2/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "PyPDF2";
-  version = "1.26.0";
+  version = "1.28.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11a3aqljg4sawjijkvzhs3irpw0y67zivqpbjpm065ha5wpr13z2";
+    sha256 = "sha256-BM5CzQVweIH+28oxZHRFEYBf6MMGGK5M+yuUDjNo1a0=";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/python-modules/pypoolstation/default.nix b/pkgs/development/python-modules/pypoolstation/default.nix
index 6ac92aeb6e9d4..5607bc0926a9e 100644
--- a/pkgs/development/python-modules/pypoolstation/default.nix
+++ b/pkgs/development/python-modules/pypoolstation/default.nix
@@ -1,5 +1,6 @@
 { lib
 , aiohttp
+, backoff
 , buildPythonPackage
 , fetchPypi
 , poetry-core
@@ -8,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pypoolstation";
-  version = "0.4.5";
+  version = "0.4.8";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyPoolstation";
     inherit version;
-    sha256 = "sha256-cf2KUdvsuC7fplg7O9Jqqb86rOjNicV+vGVBwWvvs90=";
+    sha256 = "sha256-6Fdam/LS3Nicrhe5jHHvaKCpE0HigfOVszjb5c1VM3Y=";
   };
 
   nativeBuildInputs = [
@@ -25,6 +26,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     aiohttp
+    backoff
   ];
 
   # Project has no tests
diff --git a/pkgs/development/python-modules/pyroute2-core/default.nix b/pkgs/development/python-modules/pyroute2-core/default.nix
index 085e0059a9d55..76fb240445563 100644
--- a/pkgs/development/python-modules/pyroute2-core/default.nix
+++ b/pkgs/development/python-modules/pyroute2-core/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-core";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.core";
     inherit version;
-    hash = "sha256-uzb8nlAOHNtNq205/sJPoJtvMoo7uCFfrRQas/rv8p8=";
+    hash = "sha256-In39nxmIjd0TQZZoIv/ViA2548iTdQlkGMZg/00aEdA=";
   };
 
   # pyroute2 sub-modules have no tests
diff --git a/pkgs/development/python-modules/pyroute2-ethtool/default.nix b/pkgs/development/python-modules/pyroute2-ethtool/default.nix
index 93699e161b819..f163336028d16 100644
--- a/pkgs/development/python-modules/pyroute2-ethtool/default.nix
+++ b/pkgs/development/python-modules/pyroute2-ethtool/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ethtool";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.ethtool";
     inherit version;
-    hash = "sha256-MwIRm/DezL7yCN682Yckxd23+iri2V6HCokF4G36apU=";
+    hash = "sha256-Cmh/6g/Nd9kHTHwYujXZufcOQhfr5opofiAECEc6O9Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-ipdb/default.nix b/pkgs/development/python-modules/pyroute2-ipdb/default.nix
index 0c11d6f85cedd..a991645d4ce2c 100644
--- a/pkgs/development/python-modules/pyroute2-ipdb/default.nix
+++ b/pkgs/development/python-modules/pyroute2-ipdb/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ipdb";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.ipdb";
     inherit version;
-    hash = "sha256-hKh5SFFMdhECeMyA3Quzqp7h+iQMMmCYBJEuLEq5dVs=";
+    hash = "sha256-u7u3XRO+luRUnPcOuU/XCy4XNuowGsa2g/VqoazYTVo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-ipset/default.nix b/pkgs/development/python-modules/pyroute2-ipset/default.nix
index 6b21283aa9078..28c806143808f 100644
--- a/pkgs/development/python-modules/pyroute2-ipset/default.nix
+++ b/pkgs/development/python-modules/pyroute2-ipset/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ipset";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.ipset";
     inherit version;
-    hash = "sha256-nvj7b6HF/XhzqmFg6aOQKMFDEFwAcyOnoJXi/coNvG4=";
+    hash = "sha256-KKJU9iKhiXbQaDYD1a79pat8hSj6nja+uFvOUgJveGY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-ndb/default.nix b/pkgs/development/python-modules/pyroute2-ndb/default.nix
index 6965dfaf8a5a4..c43adc07647f0 100644
--- a/pkgs/development/python-modules/pyroute2-ndb/default.nix
+++ b/pkgs/development/python-modules/pyroute2-ndb/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ndb";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.ndb";
     inherit version;
-    hash = "sha256-Oc+uaqftRH6Dw3Sa2G1rZ3Mx2u81ErKIyz8xhnA1QgI=";
+    hash = "sha256-CbH1XyYEPOZMkz6CJP0IREpJjzgeXcSDvJ9CjLrwkBo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-nftables/default.nix b/pkgs/development/python-modules/pyroute2-nftables/default.nix
index 19850bb9f2fb2..f6ac1b1f22478 100644
--- a/pkgs/development/python-modules/pyroute2-nftables/default.nix
+++ b/pkgs/development/python-modules/pyroute2-nftables/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-nftables";
-  version = "0.6.12";
+  version = "0.6.13";
 
   src = fetchPypi {
     pname = "pyroute2.nftables";
     inherit version;
-    sha256 = "sha256-jy04M73r49LxfbHAuDgSaoFWmkc0O/jPJwdDlW8YCSc=";
+    sha256 = "sha256-yUvXQNULA6Go2WVPdp53r8d6deBfxYh90FUeOXD4ZZI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-nslink/default.nix b/pkgs/development/python-modules/pyroute2-nslink/default.nix
index 7213556ea950d..59eba1b76a1ec 100644
--- a/pkgs/development/python-modules/pyroute2-nslink/default.nix
+++ b/pkgs/development/python-modules/pyroute2-nslink/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-nslink";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.nslink";
     inherit version;
-    hash = "sha256-c66rD7CyHdyYACIiq1Nfu6rmUsIL9YmFp4Z1gxOFik4=";
+    hash = "sha256-hu1QbK3MsVTNJ667Pb9z67cjw5EQTn8PO8LEo5xiNmw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-protocols/default.nix b/pkgs/development/python-modules/pyroute2-protocols/default.nix
index 700abb2266daa..24758a91ca24c 100644
--- a/pkgs/development/python-modules/pyroute2-protocols/default.nix
+++ b/pkgs/development/python-modules/pyroute2-protocols/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-protocols";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.protocols";
     inherit version;
-    hash = "sha256-j83UNlQVjxIyKhOqDsx6yhvMZEfAh54gRjniacCpSxY=";
+    hash = "sha256-bb7y0D7If2MAHabua9EzgEL2Ic+9BHVfYaMoxDCwAtY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2/default.nix b/pkgs/development/python-modules/pyroute2/default.nix
index 96835a1be1f84..632fadd3c2667 100644
--- a/pkgs/development/python-modules/pyroute2/default.nix
+++ b/pkgs/development/python-modules/pyroute2/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "pyroute2";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-cnUvmx9R+4oUGgf6LpbMlAadVh/EYcNX1ep88gtPTn4=";
+    hash = "sha256-sD1JpYGUX+wrHsfR1RJcb0C6BO0Rr/yQxMrdwBniV5I=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyside2/default.nix b/pkgs/development/python-modules/pyside2/default.nix
index bf16e1522ddea..3be201d3c913d 100644
--- a/pkgs/development/python-modules/pyside2/default.nix
+++ b/pkgs/development/python-modules/pyside2/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pyside2";
-  version = "5.15.2";
+  version = "5.15.5";
 
   src = fetchurl {
     url = "https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/pyside-setup-opensource-src-${version}.tar.xz";
-    sha256 = "060ljj1nzyp4zfz2vasbv2i7gs5rfkkjwxxbisd0fdw01d5m01mk";
+    sha256 = "0cwvw6695215498rsbm2xzkwaxdr3w7zfvy4kc62c01k6pxs881r";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/pysigma/default.nix b/pkgs/development/python-modules/pysigma/default.nix
index 17e6a27ea57db..e0ae16b805fed 100644
--- a/pkgs/development/python-modules/pysigma/default.nix
+++ b/pkgs/development/python-modules/pysigma/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma";
-  version = "0.6.2";
+  version = "0.6.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,8 +19,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "SigmaHQ";
     repo = "pySigma";
-    rev = "v${version}";
-    hash = "sha256-/SZe4pzlhlkzW84WOjPOibfdznf5uLHL5RsNnT/EL9M=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-39wp12YDM0Wnl+8tNS6XsoYF+5xM7uQRpUtlo3A2PYE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyswitchbot/default.nix b/pkgs/development/python-modules/pyswitchbot/default.nix
index 38e7e2733ead5..702f179b6dad3 100644
--- a/pkgs/development/python-modules/pyswitchbot/default.nix
+++ b/pkgs/development/python-modules/pyswitchbot/default.nix
@@ -1,5 +1,5 @@
 { lib
-, bluepy
+, bleak
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyswitchbot";
-  version = "0.13.3";
+  version = "0.14.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,11 +16,11 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "pySwitchbot";
     rev = version;
-    hash = "sha256-Zgpnw4It3yyy9RQqt5SxeJXl1Z3J3Rp9baLfiw5Bgow=";
+    hash = "sha256-6u7PqYv7Q5rVzsUnoQi495svX8puBz0Oj3SGgcpJrcQ=";
   };
 
   propagatedBuildInputs = [
-    bluepy
+    bleak
   ];
 
   # Project has no tests
diff --git a/pkgs/development/python-modules/python-jenkins/default.nix b/pkgs/development/python-modules/python-jenkins/default.nix
index 7c1d64fc827db..dad933966aead 100644
--- a/pkgs/development/python-modules/python-jenkins/default.nix
+++ b/pkgs/development/python-modules/python-jenkins/default.nix
@@ -10,8 +10,8 @@
 , multi_key_dict
 , testscenarios
 , requests
-, unittest2
 , requests-mock
+, stestr
 }:
 
 buildPythonPackage rec {
@@ -33,16 +33,16 @@ buildPythonPackage rec {
   buildInputs = [ mock ];
   propagatedBuildInputs = [ pbr pyyaml setuptools six multi_key_dict requests ];
 
-  checkInputs = [ unittest2 testscenarios requests-mock ];
-  checkPhase = ''
-    unit2
-  '';
+   checkInputs = [ stestr testscenarios requests-mock ];
+   checkPhase = ''
+     stestr run
+   '';
 
   meta = with lib; {
     description = "Python bindings for the remote Jenkins API";
     homepage = "https://pypi.python.org/pypi/python-jenkins";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ gador ];
   };
 
 }
diff --git a/pkgs/development/python-modules/python-magic/default.nix b/pkgs/development/python-modules/python-magic/default.nix
index 852b66b44e5f1..3338fb6fa7d0d 100644
--- a/pkgs/development/python-modules/python-magic/default.nix
+++ b/pkgs/development/python-modules/python-magic/default.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenv
-, python
 , buildPythonPackage
 , fetchFromGitHub
 , substituteAll
@@ -10,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "python-magic";
-  version = "0.4.26";
+  version = "0.4.27";
 
   src = fetchFromGitHub {
     owner = "ahupp";
     repo = "python-magic";
     rev = version;
-    sha256 = "sha256-RcKldMwSRroNZNEl0jwuJG9C+3OIPBzk+CjqkxKK/eY=";
+    sha256 = "sha256-fZ+5xJ3P0EYK+6rQ8VzXv2zckKfEH5VUdISIR6ybIfQ=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/pyvex/default.nix b/pkgs/development/python-modules/pyvex/default.nix
index b7bff273b231c..8710fea109f02 100644
--- a/pkgs/development/python-modules/pyvex/default.nix
+++ b/pkgs/development/python-modules/pyvex/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pyvex";
-  version = "9.2.6";
+  version = "9.2.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-I2ZQJ/CDvNq5uJoLT9SHDGzeuI32YUy/6fMSNR9WM8I=";
+    hash = "sha256-vSVkredOekqUAre38jDCE8f8OXd0cNmZ2SmpEQ7+I28=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/railroad-diagrams/default.nix b/pkgs/development/python-modules/railroad-diagrams/default.nix
index 57c07e0dc48b1..55b964fb6ad27 100644
--- a/pkgs/development/python-modules/railroad-diagrams/default.nix
+++ b/pkgs/development/python-modules/railroad-diagrams/default.nix
@@ -1,24 +1,30 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "railroad-diagrams";
-  version = "1.1.1";
+  version = "2.0.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8a1ec227666be2000e76794aa740f77987f1586077aae4d090d2633b3064c976";
+    hash = "sha256-dBP/oZRYO9UQ78PkZo9h1aOL7soYa7fDbuptDW8D+0U=";
   };
 
-  # this is a dependency of pyparsing, which is a dependency of pytest
+  # This is a dependency of pyparsing, which is a dependency of pytest
   doCheck = false;
 
-  pythonImportsCheck = [ "railroad" ];
+  pythonImportsCheck = [
+    "railroad"
+  ];
 
   meta = with lib; {
-    description = "Generate SVG railroad syntax diagrams, like on JSON.org";
+    description = "Module to generate SVG railroad syntax diagrams";
     homepage = "https://github.com/tabatkins/railroad-diagrams";
     license = licenses.cc0;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/python-modules/rencode/default.nix b/pkgs/development/python-modules/rencode/default.nix
index 464bbd78515c1..86192cbc29caa 100644
--- a/pkgs/development/python-modules/rencode/default.nix
+++ b/pkgs/development/python-modules/rencode/default.nix
@@ -2,25 +2,37 @@
 , buildPythonPackage
 , fetchFromGitHub
 , cython
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "rencode";
-  version = "1.0.6";
+  version = "unstable-2021-08-10";
+
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "aresch";
     repo = "rencode";
-    rev = "v${version}";
-    sha256 = "sha256-PGjjrZuoGYSPMNqXG1KXoZnOoWIe4g6s056jFhqrJ60=";
+    rev = "572ff74586d9b1daab904c6f7f7009ce0143bb75";
+    hash = "sha256-cL1hV3RMDuSdcjpPXXDYIEbzQrxiPeRs82PU8HTEQYk=";
   };
 
-  buildInputs = [ cython ];
+  nativeBuildInputs = [ cython ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    # import from $out
+    rm -r rencode
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/aresch/rencode";
     description = "Fast (basic) object serialization similar to bencode";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/rns/default.nix b/pkgs/development/python-modules/rns/default.nix
index 88e94d8927a0a..4a680cde242f5 100644
--- a/pkgs/development/python-modules/rns/default.nix
+++ b/pkgs/development/python-modules/rns/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "rns";
-  version = "0.3.7";
+  version = "0.3.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "Reticulum";
     rev = "refs/tags/${version}";
-    hash = "sha256-fihcDMQzFuQGOrADxjUcEcPqiolpQgPwyFNW0ZVXwhU=";
+    hash = "sha256-/Xw3UnxtQ4G92Urplz5isDN12QVOPtZKr7LjqsNVmrc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ropgadget/default.nix b/pkgs/development/python-modules/ropgadget/default.nix
index 4d0a4aa94f11e..65a80e399d1e3 100644
--- a/pkgs/development/python-modules/ropgadget/default.nix
+++ b/pkgs/development/python-modules/ropgadget/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "ropgadget";
-  version = "6.7";
+  version = "6.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,8 +15,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "JonathanSalwan";
     repo = "ROPgadget";
-    rev = "v${version}";
-    hash = "sha256-zOTbncsOvmLQMZGpcRLviSZP/d1cQTQHXCLUKyEgVBk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-hnqjyZC3RJNQf8JdtaQ5L3PU+96p4cxdd+P4YlW9jjI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/schwifty/default.nix b/pkgs/development/python-modules/schwifty/default.nix
index 8338fe1a9aa91..9b237757f78d2 100644
--- a/pkgs/development/python-modules/schwifty/default.nix
+++ b/pkgs/development/python-modules/schwifty/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "schwifty";
-  version = "2022.6.1";
+  version = "2022.6.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-d3V+pkq+gAWx6vAC5SDELscks+7a+fAFh31pwsCCSZU=";
+    sha256 = "sha256-urXYEX7QFl2HwoCwTSj+83TYQOkfqbc+aGJaBwKVorU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index 542178a3cae30..e434310f56f04 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -46,7 +46,7 @@
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "1.5.12";
+  version = "1.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -55,7 +55,7 @@ buildPythonPackage rec {
     owner = "getsentry";
     repo = "sentry-python";
     rev = version;
-    hash = "sha256-8M0FWfvaGp74Fb+qJlhyiJPUVHN2ZdEleZf27d+bftE=";
+    hash = "sha256-X831uMlxvcgxQz8xWQZkJOp/fTmF62J95esJY23DZQw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/shiboken2/default.nix b/pkgs/development/python-modules/shiboken2/default.nix
index 2a7e7613dfb81..11461a9545cd2 100644
--- a/pkgs/development/python-modules/shiboken2/default.nix
+++ b/pkgs/development/python-modules/shiboken2/default.nix
@@ -34,6 +34,6 @@ stdenv.mkDerivation {
     license = with licenses; [ gpl2 lgpl21 ];
     homepage = "https://wiki.qt.io/Qt_for_Python";
     maintainers = with maintainers; [ gebner ];
-    broken = stdenv.isDarwin || python.isPy310;
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/python-modules/slack-sdk/default.nix b/pkgs/development/python-modules/slack-sdk/default.nix
index 8019339483854..a4bef1ab8e144 100644
--- a/pkgs/development/python-modules/slack-sdk/default.nix
+++ b/pkgs/development/python-modules/slack-sdk/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "slack-sdk";
-  version = "3.17.1";
+  version = "3.17.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "slackapi";
     repo = "python-slack-sdk";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-FWjhfvBx8FXAMFKxWB4Vvjg5PPw9v7ciKU+oIEGD36s=";
+    sha256 = "sha256-Rzs2ugG6Xm8IVWt20+1oLB0FxhBHyIfDGNL2jzgDnwc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/soco/default.nix b/pkgs/development/python-modules/soco/default.nix
index 50a134df2d2a3..894bdb9d0ba61 100644
--- a/pkgs/development/python-modules/soco/default.nix
+++ b/pkgs/development/python-modules/soco/default.nix
@@ -5,6 +5,7 @@
 , appdirs
 , ifaddr
 , pythonOlder
+, lxml
 , mock
 , nix-update-script
 , pytestCheckHook
@@ -15,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "soco";
-  version = "0.27.1";
+  version = "0.28.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -24,12 +25,13 @@ buildPythonPackage rec {
     owner = "SoCo";
     repo = "SoCo";
     rev = "v${version}";
-    hash = "sha256-8U7wfxqen+hgK8j9ooPHCAKvd9kSZicToTyP7XzQFrg=";
+    hash = "sha256-rH6EfPK4EEQDO63VEIM7jJO5OM4tyYfZ5yYUskPf8dE=";
   };
 
   propagatedBuildInputs = [
     appdirs
     ifaddr
+    lxml
     requests
     xmltodict
   ];
diff --git a/pkgs/development/python-modules/sphinx-basic-ng/default.nix b/pkgs/development/python-modules/sphinx-basic-ng/default.nix
new file mode 100644
index 0000000000000..df55a1316fbb7
--- /dev/null
+++ b/pkgs/development/python-modules/sphinx-basic-ng/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, fetchpatch
+, sphinx
+}:
+
+buildPythonPackage rec {
+  pname = "sphinx-basic-ng";
+  version = "0.0.1.a11";
+  disable = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "pradyunsg";
+    repo = "sphinx-basic-ng";
+    rev = version;
+    sha256 = "sha256-Eur3CadC2NTuBXosG4SN9t2L0qkqN+Q79bcvhvlG/f8=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "fix-import-error.patch";
+      url = "https://github.com/pradyunsg/sphinx-basic-ng/pull/32/commits/323a0085721b908aa11bc3c36c51e16f517ee023.patch";
+      sha256 = "sha256-/G1wLG/08u2s3YENSKSYekLrV1fUkxDAlxc3crTQNHk=";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    sphinx
+  ];
+
+  # no tests implemented
+  doCheck = false;
+
+  pythonImportsCheck = [ "sphinx_basic_ng" ];
+
+  meta = with lib; {
+    description = "A modernised skeleton for Sphinx themes";
+    homepage = "https://sphinx-basic-ng.readthedocs.io/en/latest/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ Luflosi ];
+  };
+}
diff --git a/pkgs/development/python-modules/strenum/default.nix b/pkgs/development/python-modules/strenum/default.nix
index f287b2623a6b1..d73b60906cc57 100644
--- a/pkgs/development/python-modules/strenum/default.nix
+++ b/pkgs/development/python-modules/strenum/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "strenum";
-  version = "0.4.7";
+  version = "0.4.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "irgeek";
     repo = "StrEnum";
     rev = "v${version}";
-    hash = "sha256-ktsPROIv/BbPinZfrBknI4c/WwRYGhWgmw209Hfg8EQ=";
+    hash = "sha256-S64YfF+cbefXRWoeJK99ZPTiO9DUcDaT77hVQd7pKDk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/sunpy/default.nix b/pkgs/development/python-modules/sunpy/default.nix
index b9fc0a652439e..beb7c5b73ada2 100644
--- a/pkgs/development/python-modules/sunpy/default.nix
+++ b/pkgs/development/python-modules/sunpy/default.nix
@@ -31,14 +31,14 @@
 
 buildPythonPackage rec {
   pname = "sunpy";
-  version = "4.0.1";
+  version = "4.0.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TKOJcEg5A3zjuJbH/tugoX7A7vxSwcE20jJ5QuvWTu8=";
+    hash = "sha256-ZswUFdMRqEiMpTXAuVtEnsHJ4dgwcx2f4k1DwLl8pz8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/systemd/default.nix b/pkgs/development/python-modules/systemd/default.nix
index 86c330bd1d880..b27af96edbd75 100644
--- a/pkgs/development/python-modules/systemd/default.nix
+++ b/pkgs/development/python-modules/systemd/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, systemd, pkg-config }:
+{ lib
+, buildPythonPackage
+, fetchpatch
+, fetchFromGitHub
+, systemd
+, pkg-config
+}:
 
 buildPythonPackage rec {
   pname = "systemd";
@@ -11,14 +17,36 @@ buildPythonPackage rec {
     sha256 = "1fakw7qln44mfd6pj4kqsgyrhkc6cyr653id34kv0rdnb1bvysrz";
   };
 
-  buildInputs = [ systemd ];
-  nativeBuildInputs = [ pkg-config ];
+  patches = [
+    # Fix runtime issues on Python 3.10
+    # https://github.com/systemd/python-systemd/issues/107
+    (fetchpatch {
+      url = "https://github.com/systemd/python-systemd/commit/c71bbac357f0ac722e1bcb2edfa925b68cca23c9.patch";
+      sha256 = "22s72Wa/BCwNNvwbxEUh58jhHlbA00SNwNVchVDovcc=";
+    })
+  ];
 
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    systemd
+  ];
+
+  # No module named 'systemd._journal
   doCheck = false;
 
+  pythonImportsCheck = [
+    "systemd.journal"
+    "systemd.id128"
+    "systemd.daemon"
+    "systemd.login"
+  ];
+
   meta = with lib; {
     description = "Python module for native access to the systemd facilities";
     homepage = "http://www.freedesktop.org/software/systemd/python-systemd/";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Plus;
   };
 }
diff --git a/pkgs/development/python-modules/tensorflow-metadata/default.nix b/pkgs/development/python-modules/tensorflow-metadata/default.nix
index bdf6cc08aa64f..5204e2158dc71 100644
--- a/pkgs/development/python-modules/tensorflow-metadata/default.nix
+++ b/pkgs/development/python-modules/tensorflow-metadata/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "tensorflow-metadata";
-  version = "1.8.0";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "tensorflow";
     repo = "metadata";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-IaLr6XYEy1EcyWi5GWzDFa7TeVZ59v8Wj5qkNdVbOqw=";
+    sha256 = "sha256-6BtKHyVrprtEb2Bi7g2YuctUykWSRXmKwADfHzGkYjc=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/tensorflow/bin.nix b/pkgs/development/python-modules/tensorflow/bin.nix
index 37a886c1812d6..b266f837f8499 100644
--- a/pkgs/development/python-modules/tensorflow/bin.nix
+++ b/pkgs/development/python-modules/tensorflow/bin.nix
@@ -9,6 +9,7 @@
 , numpy
 , six
 , termcolor
+, packaging
 , protobuf
 , absl-py
 , grpcio
@@ -48,9 +49,6 @@ in buildPythonPackage {
   inherit (packages) version;
   format = "wheel";
 
-  # See https://github.com/tensorflow/tensorflow/issues/55581#issuecomment-1101890383
-  disabled = pythonAtLeast "3.10" && !cudaSupport;
-
   src = let
     pyVerNoDot = lib.strings.stringAsChars (x: if x == "." then "" else x) python.pythonVersion;
     platform = if stdenv.isDarwin then "mac" else "linux";
@@ -62,6 +60,7 @@ in buildPythonPackage {
     astunparse
     flatbuffers
     typing-extensions
+    packaging
     protobuf
     numpy
     scipy
@@ -93,21 +92,25 @@ in buildPythonPackage {
 
     pushd dist
 
+    orig_name="$(echo ./*.whl)"
     wheel unpack --dest unpacked ./*.whl
     rm ./*.whl
     (
       cd unpacked/tensorflow*
       # Adjust dependency requirements:
-      # - Relax tensorflow-estimator version requirement that doesn't match what we have packaged
+      # - Relax flatbuffers, gast and tensorflow-estimator version requirements that don't match what we have packaged
       # - The purpose of python3Packages.libclang is not clear at the moment and we don't have it packaged yet
       # - keras and tensorlow-io-gcs-filesystem will be considered as optional for now.
       sed -i *.dist-info/METADATA \
-        -e "s/Requires-Dist: tf-estimator-nightly.*/Requires-Dist: tensorflow-estimator/" \
+        -e "/Requires-Dist: flatbuffers/d" \
+        -e "/Requires-Dist: gast/d" \
         -e "/Requires-Dist: libclang/d" \
         -e "/Requires-Dist: keras/d" \
+        -e "/Requires-Dist: tensorflow-estimator/d" \
         -e "/Requires-Dist: tensorflow-io-gcs-filesystem/d"
     )
     wheel pack ./unpacked/tensorflow*
+    mv *.whl $orig_name # avoid changes to the _os_arch.whl suffix
 
     popd
   '';
@@ -187,7 +190,6 @@ in buildPythonPackage {
   };
 
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "Computation using data flow graphs for scalable machine learning";
     homepage = "http://tensorflow.org";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/development/python-modules/tensorflow/binary-hashes.nix b/pkgs/development/python-modules/tensorflow/binary-hashes.nix
index 0d221452bb72b..69f72867cd871 100644
--- a/pkgs/development/python-modules/tensorflow/binary-hashes.nix
+++ b/pkgs/development/python-modules/tensorflow/binary-hashes.nix
@@ -1,51 +1,51 @@
 {
-version = "2.8.0";
+version = "2.9.0";
 linux_py_37_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp37-cp37m-manylinux2010_x86_64.whl";
-  sha256 = "1nza8i0nvqgrcwj2yy74a3wgpgf52svf0yrz9xd6l18gsifkmkx0";
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.9.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "1gs10w8hm47lmp4hln8qw02x7c018lxmcxs4i8dj3z5h2k64nx75";
 };
 linux_py_38_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp38-cp38-manylinux2010_x86_64.whl";
-  sha256 = "1li2gllznd5w3hh2w9ibh5lkvvssnwh5vhk7i873dxjjdl1w8sqy";
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "01jz7vsinbzznzh6dv5bcz0yf8v050wd0axpn9z2jakkh5bwskhp";
 };
 linux_py_39_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp39-cp39-manylinux2010_x86_64.whl";
-  sha256 = "03swmyak1hb0k6b2fi9a8g76fi57jz30ym015a576iwp42pqcgkq";
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "0458w6p567pm9xs1n5x4z5qygmlwy752d8livvn98p3j0lzccnhy";
 };
 linux_py_310_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp310-cp310-manylinux2010_x86_64.whl";
-  sha256 = "";
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "136d7hjdsks7gvgz54vl9riq1xdqpiamjp449myy9a768vz2xghp";
 };
 linux_py_37_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp37-cp37m-manylinux2010_x86_64.whl";
-  sha256 = "06q3vjrlqfkqa5r18hla3d8ms1sqa897g7fpnqizgh4k8skhm9fq";
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.9.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "11w1jrz9x6c8kzqfv14snp9djrwy17qc74h5kdiphhprm9ikkikz";
 };
 linux_py_38_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp38-cp38-manylinux2010_x86_64.whl";
-  sha256 = "0099aa5g19zi74n6bamhmmcgp096m41fhr61swkwnh92myz1ylgb";
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "0vszrrnm706cqqv7b0726dd9ql3pcd08almqk8w0bcfk3fz05d3w";
 };
 linux_py_39_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp39-cp39-manylinux2010_x86_64.whl";
-  sha256 = "0zw20yvlqga7znr13pa10qxww42mj64209syiicgvhs74ji1zdca";
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "18mgv36kdpx4q39qm708abfcjxy4gppv9ray0f418q0jlmfy2fi0";
 };
 linux_py_310_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp310-cp310-manylinux2010_x86_64.whl";
-  sha256 = "06kwjlhzl46jhjcg836crys2aw39x0g8s1s9qfscm1kbwzbww1hq";
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "17wnvfgj9vynq1ibylfqw2cngnjawsxw1mvphdl3g57i92mqsn2x";
 };
 mac_py_37_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp37-cp37m-macosx_10_14_x86_64.whl";
-  sha256 = "1z5w6wx3h45fz0ji9kn2m2kf963bqbvmqc7cyjv4ixymd0rp4jps";
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.9.0-cp37-cp37m-macosx_10_14_x86_64.whl";
+  sha256 = "1lvc8rp0a0snjz5cgw6m5nk9qdnl6h7v2cc2pmxssp5c0flqzx4j";
 };
 mac_py_38_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp38-cp38-macosx_10_14_x86_64.whl";
-  sha256 = "1h5v8flhc5zb038ld0av7638cyqqkrib379lrlzvf8dw7q8ry3yx";
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.9.0-cp38-cp38-macosx_10_14_x86_64.whl";
+  sha256 = "1lgpgbasmc1av9njz3i1654qkbw2c99x8c7vb2yslnw63s79j774";
 };
 mac_py_39_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp39-cp39-macosx_10_14_x86_64.whl";
-  sha256 = "0qsmlrf8h2gxkimniyrz9bniaqpdsd92pficmsrq30k8rkz2bwjj";
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.9.0-cp39-cp39-macosx_10_14_x86_64.whl";
+  sha256 = "07dd3srqx78aq7w0g6k1x6l7zphwhm29lv9ai3gyqszi99cpn5pr";
 };
 mac_py_310_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp310-cp310-macosx_10_14_x86_64.whl";
-  sha256 = "0lnwbvil6c6ai10lcaj9ay9pya207s9g204273msjalm1hpbmhvq";
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.9.0-cp310-cp310-macosx_10_14_x86_64.whl";
+  sha256 = "14fz1id9clcbcrq4y8i1ij1nrk6dz36cqxb88ilip0jj36vfy991";
 };
 }
diff --git a/pkgs/development/python-modules/tensorflow/prefetcher.sh b/pkgs/development/python-modules/tensorflow/prefetcher.sh
index 3edc671582710..e4904b46d4f31 100755
--- a/pkgs/development/python-modules/tensorflow/prefetcher.sh
+++ b/pkgs/development/python-modules/tensorflow/prefetcher.sh
@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 
-version="2.8.0"
+version="2.9.0"
 
 bucket="https://storage.googleapis.com/tensorflow"
 
@@ -8,14 +8,14 @@ bucket="https://storage.googleapis.com/tensorflow"
 # on the following page:
 # https://www.tensorflow.org/install/pip?lang=python3#package-location
 url_and_key_list=(
-"linux_py_37_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp37-cp37m-manylinux2010_x86_64.whl"
-"linux_py_38_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp38-cp38-manylinux2010_x86_64.whl"
-"linux_py_39_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp39-cp39-manylinux2010_x86_64.whl"
-"linux_py_310_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp310-cp310-manylinux2010_x86_64.whl"
-"linux_py_37_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp37-cp37m-manylinux2010_x86_64.whl"
-"linux_py_38_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp38-cp38-manylinux2010_x86_64.whl"
-"linux_py_39_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp39-cp39-manylinux2010_x86_64.whl"
-"linux_py_310_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp310-cp310-manylinux2010_x86_64.whl"
+"linux_py_37_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"linux_py_38_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"linux_py_39_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"linux_py_310_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"linux_py_37_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"linux_py_38_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"linux_py_39_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"linux_py_310_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
 "mac_py_37_cpu $bucket/mac/cpu/tensorflow-${version}-cp37-cp37m-macosx_10_14_x86_64.whl"
 "mac_py_38_cpu $bucket/mac/cpu/tensorflow-${version}-cp38-cp38-macosx_10_14_x86_64.whl"
 "mac_py_39_cpu $bucket/mac/cpu/tensorflow-${version}-cp39-cp39-macosx_10_14_x86_64.whl"
diff --git a/pkgs/development/python-modules/timetagger/default.nix b/pkgs/development/python-modules/timetagger/default.nix
index 6b99e9882c37f..4ef4369669885 100644
--- a/pkgs/development/python-modules/timetagger/default.nix
+++ b/pkgs/development/python-modules/timetagger/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "timetagger";
-  version = "22.6.2";
+  version = "22.6.4";
 
   src = fetchFromGitHub {
     owner = "almarklein";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-8Rl7g0OwjabBI9ekh3+vb+20KsqttvwwzZU0U1ee8dQ=";
+    sha256 = "sha256-wLbC7NlDNgAyCnGjawfrnRPN/4DOcHVd93pIWrILs68=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/types-pytz/default.nix b/pkgs/development/python-modules/types-pytz/default.nix
index bbbd791301815..d63968603a035 100644
--- a/pkgs/development/python-modules/types-pytz/default.nix
+++ b/pkgs/development/python-modules/types-pytz/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-pytz";
-  version = "2021.3.8";
+  version = "2022.1.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-QSU6OivwKLaj8XtYdJppLZVa8PdOl13pT29NLTzQHb0=";
+    sha256 = "sha256-u+fq+TtPvsR4AyOvklKG0mWmaB9Q26V9FtvYaVw+1j0=";
   };
 
   # Modules doesn't have tests
diff --git a/pkgs/development/python-modules/types-redis/default.nix b/pkgs/development/python-modules/types-redis/default.nix
index b98628c095cde..4e2d5950efa30 100644
--- a/pkgs/development/python-modules/types-redis/default.nix
+++ b/pkgs/development/python-modules/types-redis/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-redis";
-  version = "4.3.0";
+  version = "4.3.2";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-9L2b5qt0Hx2pEFzwpORiiG3B1drkbW0/a3/X6B/+uig=";
+    sha256 = "sha256-oZNQj6poxT3sRcwwUV6rlMMxMlr4oMPIAJX2Dyq22qY=";
   };
 
   # Module doesn't have tests
diff --git a/pkgs/development/python-modules/types-requests/default.nix b/pkgs/development/python-modules/types-requests/default.nix
index b5b52a730fcdb..b6b6f99f4d80d 100644
--- a/pkgs/development/python-modules/types-requests/default.nix
+++ b/pkgs/development/python-modules/types-requests/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-requests";
-  version = "2.27.31";
+  version = "2.28.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-b6uXuZ/qUrnHtGak3ZPga7MlvH50IEdeh4MQJqjdNcw=";
+    sha256 = "sha256-mGPRbfuz+lXc2mT6O5ieduiFkDOybB4WI+MEZc/ilNM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/types-tabulate/default.nix b/pkgs/development/python-modules/types-tabulate/default.nix
index c8f49386543a4..13f7453a8fcd3 100644
--- a/pkgs/development/python-modules/types-tabulate/default.nix
+++ b/pkgs/development/python-modules/types-tabulate/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "types-tabulate";
-  version = "0.8.9";
+  version = "0.8.10";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-L8P6T+GFOsmHz1Do1FmeP+RG3VMGT+hqRqQHqY6fwE8=";
+    hash = "sha256-BmdTn8ZjMKJdqmtOUtSUt4Niip/tVKP/MVB23NFaHs0=";
   };
 
   # Module doesn't have tests
diff --git a/pkgs/development/python-modules/vaa/default.nix b/pkgs/development/python-modules/vaa/default.nix
index 783cc7bd68117..d43f007c35cda 100644
--- a/pkgs/development/python-modules/vaa/default.nix
+++ b/pkgs/development/python-modules/vaa/default.nix
@@ -9,7 +9,7 @@
 , marshmallow
 , pyschemes
 , wtforms
-, email_validator
+, email-validator
 }:
 
 buildPythonPackage rec {
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     marshmallow
     pyschemes
     wtforms
-    email_validator
+    email-validator
   ];
 
   pythonImportsCheck = [ "vaa" ];
diff --git a/pkgs/development/python-modules/waitress/default.nix b/pkgs/development/python-modules/waitress/default.nix
index e2cbe59ab2864..898b1093159d8 100644
--- a/pkgs/development/python-modules/waitress/default.nix
+++ b/pkgs/development/python-modules/waitress/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "waitress";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-4uYFds8UoVOdp597fuHnmnHmTzZqC0fbVKFelx9XuxY=";
+    sha256 = "780a4082c5fbc0fde6a2fcfe5e26e6efc1e8f425730863c04085769781f51eba";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/wandb/default.nix b/pkgs/development/python-modules/wandb/default.nix
index 8304032930213..747f60bc21f85 100644
--- a/pkgs/development/python-modules/wandb/default.nix
+++ b/pkgs/development/python-modules/wandb/default.nix
@@ -39,7 +39,7 @@
 
 buildPythonPackage rec {
   pname = "wandb";
-  version = "0.12.18";
+  version = "0.12.19";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -47,8 +47,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = pname;
     repo = "client";
-    rev = "v${version}";
-    hash = "sha256-9++CFoC8p3cACPyjRbb6i8MdJp8iD9GUh0uHpTiufdg=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-eH65vk3Pnm6d4vDiaWbs1tXD0lCRkfOB2hqD9MGxuXY=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/wtforms/default.nix b/pkgs/development/python-modules/wtforms/default.nix
index c6a3ecf2088ad..ef2e06cc3e71f 100644
--- a/pkgs/development/python-modules/wtforms/default.nix
+++ b/pkgs/development/python-modules/wtforms/default.nix
@@ -4,7 +4,7 @@
 , markupsafe
 , babel
 , pytestCheckHook
-, email_validator
+, email-validator
 }:
 
 buildPythonPackage rec {
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     pytestCheckHook
-    email_validator
+    email-validator
   ];
 
   pythonImportsCheck = [ "wtforms" ];
diff --git a/pkgs/development/python-modules/youtube-search-python/default.nix b/pkgs/development/python-modules/youtube-search-python/default.nix
index 9383d4cb05988..11da850c992d3 100644
--- a/pkgs/development/python-modules/youtube-search-python/default.nix
+++ b/pkgs/development/python-modules/youtube-search-python/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "youtube-search-python";
-  version = "1.6.5";
+  version = "1.6.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-1B7rppa+s/oE8w91Ca7ogjkNHu5pFSnNmDyUopCWEY8=";
+    hash = "sha256-RWjR12ns1+tLuDZfBO7G42TF9w7sezdl9UPa67E1/PU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb b/pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb
index 3106e9c24ca76..822996b7cbf68 100644
--- a/pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb
+++ b/pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb
@@ -41,6 +41,20 @@ Gem.paths = { 'GEM_HOME' => #{bundle_path.dump} }
 $LOAD_PATH.unshift #{File.join(bundler_path, "/lib").dump}
 
 require 'bundler'
+# Monkey-patch out the check that Bundler performs to determine
+# whether the bundler env is writable. It's not writable, even for
+# root! And for this use of Bundler, it shouldn't be necessary since
+# we're not trying to perform any package management operations, only
+# produce a Gem path. Thus, we replace it with a method that will
+# always return false, to squelch a warning from Bundler saying that
+# sudo may be required.
+module Bundler
+  class <<self
+    def requires_sudo?
+      return false
+    end
+  end
+end
 Bundler.setup(#{groups.map(&:dump).join(', ')})
 
 load Gem.bin_path(#{name.dump}, #{exe.dump})
diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix
index 79bb3a2b49ce7..6cb98bf10d4dc 100644
--- a/pkgs/development/tools/analysis/checkov/default.nix
+++ b/pkgs/development/tools/analysis/checkov/default.nix
@@ -32,14 +32,14 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "checkov";
-  version = "2.0.1226";
+  version = "2.1.5";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = pname;
     rev = version;
-    hash = "sha256-hAHIrf1oZMPpciKTUiM+EuP4TDtb0lYI7hlZXWkIyV4=";
+    hash = "sha256-bH7W+GZ4O32ty5YD4hfKz2R10v7zEJLU1kLzKvdx3E4=";
   };
 
   nativeBuildInputs = with py.pkgs; [
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index 31f022263b22f..1f07c8ff030f0 100644
--- a/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  version = "10.2";
+  version = "10.3";
   pname = "checkstyle";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "sha256-jcu7KMeYbHZW4zswaV/cLkY4CLX9vJIcElXJq06EfRY=";
+    sha256 = "sha256-3n5gXGHznrLGL9hudk1nZs1GJ5V2qzqVPCtn1fqujB0=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index e344f3f7874da..63594300e835d 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -31,8 +31,8 @@ let
   arm64 = fetchFromGitHub {
     owner = "radareorg";
     repo = "vector35-arch-arm64";
-    rev = "3c5eaba46dab72ecb7d5f5b865a13fdeee95b464";
-    sha256 = "sha256-alcGEi+D8CptXzfznnuxQKCvU2mbzn2sQge5jSqLVpg=";
+    rev = "9ab2b0bedde459dc86e079718333de4a63bbbacb";
+    sha256 = "sha256-2KLtjgCqHzBBlo9ImZ8WJ1bsWy/kdJCjCFxlLE+HxoI=";
   };
   armv7 = fetchFromGitHub {
     owner = "radareorg";
@@ -44,13 +44,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "radare2";
-  version = "5.7.0";
+  version = "5.7.2";
 
   src = fetchFromGitHub {
     owner = "radare";
     repo = "radare2";
     rev = version;
-    sha256 = "sha256-tCFi1m3xyQlG+8FijjQh8PMwg6CIfIxvLkd5xCIZHHo=";
+    sha256 = "sha256-TZeW+9buJvCOudHsLTMITFpRUlmNpo71efc3xswJoPw=";
   };
 
   preBuild = ''
@@ -110,7 +110,6 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "unix-like reverse engineering framework and commandline tools";
     homepage = "https://radare.org/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/tools/analysis/tflint/default.nix b/pkgs/development/tools/analysis/tflint/default.nix
index 2ed23f43a4710..d37b514138034 100644
--- a/pkgs/development/tools/analysis/tflint/default.nix
+++ b/pkgs/development/tools/analysis/tflint/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tflint";
-  version = "0.37.0";
+  version = "0.38.1";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-2fcrKwbYuCOZE++Sin0zNuGaBQQd0dNs1MRL/doOLOw=";
+    sha256 = "sha256-sBvfcAOkfZ5V7SrLBWrSQr5zXwqbwOBmYehujk0y6eg=";
   };
 
   vendorSha256 = "sha256-2v070TwDWkN4HZ/EOu85lotA9qIKLgpwD9TrfH7pGY4=";
diff --git a/pkgs/development/tools/apko/default.nix b/pkgs/development/tools/apko/default.nix
index 05342e7714e97..ee2d7f24a6b61 100644
--- a/pkgs/development/tools/apko/default.nix
+++ b/pkgs/development/tools/apko/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "apko";
-  version = "0.3.3";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "chainguard-dev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-j/tfa9O10HSEwzuXE2mjV2TVYuwk9lpA0PgsKDm70uI=";
+    sha256 = "sha256-gmBcN1lxzkkRpiUUWv87ji/G4Uy3DA8a6+6Qs+p/2mg=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -24,7 +24,7 @@ buildGoModule rec {
       find "$out" -name .git -print0 | xargs -0 rm -rf
     '';
   };
-  vendorSha256 = "sha256-jsNSYlTXUAUPG7vccjmonZUN1HAmULprCmJ1TYLYP00=";
+  vendorSha256 = "sha256-3gRECgKvGqkgBzB3SSxm6/LxZG8RxhjoC6Q7DZj/Has=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/asmfmt/default.nix b/pkgs/development/tools/asmfmt/default.nix
index 81f7aa764f27c..953a5469ec51d 100644
--- a/pkgs/development/tools/asmfmt/default.nix
+++ b/pkgs/development/tools/asmfmt/default.nix
@@ -1,14 +1,12 @@
-{ buildGoPackage
+{ buildGoModule
 , lib
 , fetchFromGitHub
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "asmfmt";
   version = "1.3.2";
 
-  goPackagePath = "github.com/klauspost/asmfmt";
-
   src = fetchFromGitHub {
     owner = "klauspost";
     repo = "asmfmt";
@@ -16,17 +14,26 @@ buildGoPackage rec {
     sha256 = "sha256-YxIVqPGsqxvOY0Qz4Jw5FuO9IbplCICjChosnHrSCgc=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
 
   # This package comes with its own version of goimports, gofmt and goreturns
   # but these binaries are outdated and are offered by other packages.
   subPackages = [ "cmd/asmfmt" ];
 
+  ldflags = [ "-s" "-w" ];
+
+  # There are no tests.
+  doCheck = false;
+
   meta = with lib; {
-    description = "Go Assembler Formatter";
+    description = "Go assembler formatter";
+    longDescription = ''
+      This will format your assembler code in a similar way that gofmt formats
+      your Go code.
+    '';
     homepage = "https://github.com/klauspost/asmfmt";
+    changelog = "https://github.com/klauspost/asmfmt/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
-    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/tools/asmfmt/deps.nix b/pkgs/development/tools/asmfmt/deps.nix
deleted file mode 100644
index 0288fc206d492..0000000000000
--- a/pkgs/development/tools/asmfmt/deps.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "3a10b9bf0a52df7e992a8c3eb712a86d3c896c75";
-      sha256 = "19f3dijcc54jnd7458jab2dgpd0gzccmv2qympd9wi8cc8jpnhws";
-    };
-  }
-  {
-    goPackagePath = "sourcegraph.com/sqs/goreturns";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sqs/goreturns";
-      rev = "538ac601451833c7c4449f8431d65d53c1c60e41";
-      sha256 = "0gcplch8zmcgwl6xvcffxg50g3xnf60n7dlqxgn51179qcjr354p";
-    };
-  }
-]
diff --git a/pkgs/development/tools/bazelisk/default.nix b/pkgs/development/tools/bazelisk/default.nix
index 2ba077fa9439c..6eace485507a3 100644
--- a/pkgs/development/tools/bazelisk/default.nix
+++ b/pkgs/development/tools/bazelisk/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "bazelisk";
-  version = "1.11.0";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9J49+1fI3wmHQqYgdoGgaAuVMA9eG7wrFe7dQEectvI=";
+    sha256 = "sha256-RWVD6tngFE3i8JDB9b0JZz8Bd+u97b4ilmEF0N8Pm4Y=";
   };
 
-  vendorSha256 = "sha256-+zJEB9FyVvxHdwR/dAn56jrMbgVBhlbziVFe2WCQFfE=";
+  vendorSha256 = "sha256-6rJa/c5uCnBQh0VVlzefXXPuJNFi+R8X2r+o7GBLIiE=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/beancount-language-server/default.nix b/pkgs/development/tools/beancount-language-server/default.nix
index 1766f22ee1809..b415906eead76 100644
--- a/pkgs/development/tools/beancount-language-server/default.nix
+++ b/pkgs/development/tools/beancount-language-server/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "beancount-language-server";
-  version = "1.1.1";
+  version = "1.2.5";
 
   src = fetchFromGitHub {
     owner = "polarmutex";
     repo = "beancount-language-server";
     rev = "v${version}";
-    sha256 = "sha256-CkwNxamkErRo3svJNth2F8NSqlJNX+1S/srKu6Z+mX4=";
+    sha256 = "sha256-AbljduMz4mz5InsHKCq0K6i9F/lBgvdy0+W8aclr0R0=";
   };
 
-  cargoSha256 = "sha256-NTUs9ADTn+KoE08FikRHrdptZkrUqnjVIlcr8RtDvic=";
+  cargoSha256 = "sha256-jrxVMGJk4o9aROtFZBc8G/HP5xm9MjVyewww1DzrRdM=";
 
   doInstallCheck = true;
   postInstallCheck = ''
diff --git a/pkgs/development/tools/buf/default.nix b/pkgs/development/tools/buf/default.nix
index 8fcc8bad2269e..c853e361bae97 100644
--- a/pkgs/development/tools/buf/default.nix
+++ b/pkgs/development/tools/buf/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "buf";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "bufbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Jcj1tpcG64mSVn444isGsK9AcITh171ibECukv3bXDI=";
+    sha256 = "sha256-sqByTrhtaytBMD8ULOP+xoacxMD6sw3n2XYVZ1hWIJ4=";
   };
 
-  vendorSha256 = "sha256-aHGV8UfPn7xsySPXRSzsEpcaz1Ll49Mj1S9izvaIRWY=";
+  vendorSha256 = "sha256-H000xhqjSFXGW3Saa/ryYdVcDl2ieeSW3dq3DPVX+c0=";
 
   patches = [
     # Skip a test that requires networking to be available to work.
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
index 56a4d5b3b5a0c..aa9794b5869c0 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
@@ -257,7 +257,7 @@ stdenv.mkDerivation rec {
       runLocal = name: attrs: script:
       let
         attrs' = removeAttrs attrs [ "buildInputs" ];
-        buildInputs = [ python3 which ] ++ (attrs.buildInputs or []);
+        buildInputs = attrs.buildInputs or [];
       in
       runCommandCC name ({
         inherit buildInputs;
@@ -323,13 +323,13 @@ stdenv.mkDerivation rec {
 
     in (if !stdenv.hostPlatform.isDarwin then {
       # `extracted` doesn’t work on darwin
-      shebang = callPackage ../shebang-test.nix { inherit runLocal extracted bazelTest distDir; };
+      shebang = callPackage ../shebang-test.nix { inherit runLocal extracted bazelTest distDir; bazel = bazel_self; };
     } else {}) // {
-      bashTools = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; };
-      cpp = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
-      java = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
-      protobuf = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; };
-      pythonBinPath = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; };
+      bashTools = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self; };
+      cpp = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazel_self; };
+      java = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazel_self; };
+      protobuf = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self; };
+      pythonBinPath = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self; };
 
       bashToolsWithNixHacks = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
 
@@ -591,6 +591,7 @@ stdenv.mkDerivation rec {
     # The binary _must_ exist with this naming if your project contains a .bazelversion
     # file.
     cp ./bazel_src/scripts/packages/bazel.sh $out/bin/bazel
+    wrapProgram $out/bin/bazel $wrapperfile --suffix PATH : ${defaultShellPath}
     mv ./bazel_src/output/bazel $out/bin/bazel-${version}-${system}-${arch}
 
     mkdir $out/share
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix
index d0b71f3760c89..c9c435a0b34d7 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix
@@ -219,7 +219,7 @@ stdenv.mkDerivation rec {
       runLocal = name: attrs: script:
       let
         attrs' = removeAttrs attrs [ "buildInputs" ];
-        buildInputs = [ python3 which ] ++ (attrs.buildInputs or []);
+        buildInputs = attrs.buildInputs or [];
       in
       runCommandCC name ({
         inherit buildInputs;
@@ -285,13 +285,13 @@ stdenv.mkDerivation rec {
 
     in (if !stdenv.hostPlatform.isDarwin then {
       # `extracted` doesn’t work on darwin
-      shebang = callPackage ../shebang-test.nix { inherit runLocal extracted bazelTest distDir; };
+      shebang = callPackage ../shebang-test.nix { inherit runLocal extracted bazelTest distDir; bazel = bazel_self;};
     } else {}) // {
-      bashTools = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; };
-      cpp = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
-      java = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
-      protobuf = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; };
-      pythonBinPath = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; };
+      bashTools = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self;};
+      cpp = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazel_self;};
+      java = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazel_self;};
+      protobuf = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self; };
+      pythonBinPath = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self;};
 
       bashToolsWithNixHacks = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
 
@@ -586,6 +586,7 @@ stdenv.mkDerivation rec {
     # The binary _must_ exist with this naming if your project contains a .bazelversion
     # file.
     cp ./bazel_src/scripts/packages/bazel.sh $out/bin/bazel
+    wrapProgram $out/bin/bazel $wrapperfile --suffix PATH : ${defaultShellPath}
     mv ./bazel_src/output/bazel $out/bin/bazel-${version}-${system}-${arch}
 
     mkdir $out/share
@@ -662,4 +663,3 @@ stdenv.mkDerivation rec {
   dontStrip = true;
   dontPatchELF = true;
 }
-
diff --git a/pkgs/development/tools/check/default.nix b/pkgs/development/tools/check/default.nix
index a28124828f90b..f74578e25a0d3 100644
--- a/pkgs/development/tools/check/default.nix
+++ b/pkgs/development/tools/check/default.nix
@@ -1,30 +1,26 @@
-{ buildGoPackage
-, lib
+{ lib
+, buildGoModule
 , fetchFromGitLab
 }:
 
-buildGoPackage rec {
-  pname = "check-unstable";
-  version = "2018-09-12";
-  rev = "88db195993f8e991ad402754accd0635490769f9";
-
-  goPackagePath = "gitlab.com/opennota/check";
+buildGoModule rec {
+  pname = "check";
+  version = "unstable-2018-12-24";
+  rev = "ccaba434e62accd51209476ad093810bd27ec150";
 
   src = fetchFromGitLab {
-    inherit rev;
-
     owner = "opennota";
     repo = "check";
-    sha256 = "1983xmdkgpqda4qz8ashc6xv1zg5jl4zly3w566grxc5sfxpgf0i";
+    inherit rev;
+    sha256 = "sha256-u8U/62LZEn1ffwdGsUCGam4HAk7b2LetomCLZzHuuas=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-DyysiVYFpncmyCzlHIOEtWlCMpm90AC3gdItI9WinSo=";
 
   meta = with lib; {
     description = "A set of utilities for checking Go sources";
     homepage = "https://gitlab.com/opennota/check";
     license = licenses.gpl3;
     maintainers = with maintainers; [ kalbasit ];
-    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/tools/check/deps.nix b/pkgs/development/tools/check/deps.nix
deleted file mode 100644
index b9c50d95d117c..0000000000000
--- a/pkgs/development/tools/check/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "677d2ff680c1";
-      sha256 = "0vp1w1haqcjd82dxd6x9xrllbfwvm957rxwkpji96cgvhsli2bq5";
-    };
-  }
-]
diff --git a/pkgs/development/tools/clj-kondo/default.nix b/pkgs/development/tools/clj-kondo/default.nix
index 5ef65dde14d63..3fe90a3004c08 100644
--- a/pkgs/development/tools/clj-kondo/default.nix
+++ b/pkgs/development/tools/clj-kondo/default.nix
@@ -2,11 +2,11 @@
 
 buildGraalvmNativeImage rec {
   pname = "clj-kondo";
-  version = "2022.04.25";
+  version = "2022.06.22";
 
   src = fetchurl {
     url = "https://github.com/clj-kondo/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "sha256-BqqeJQ7mBMofX6efJCSUr6qMZXubO9CuDiCNNNKT3DA=";
+    sha256 = "sha256-g+0BYwk9bws+c7CfLGf88r2nfcDBCdDKyqRS285oIQM=";
   };
 
   extraNativeImageBuildArgs = [
diff --git a/pkgs/development/tools/cloud-nuke/default.nix b/pkgs/development/tools/cloud-nuke/default.nix
index 7f98d9ee3767e..3354b6f693711 100644
--- a/pkgs/development/tools/cloud-nuke/default.nix
+++ b/pkgs/development/tools/cloud-nuke/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "cloud-nuke";
-  version = "0.11.6";
+  version = "0.11.8";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wsCe32Ui+czM0+qpMxgTahJ7FlcnFMkueEkrcwm1sdE=";
+    sha256 = "sha256-0GP7T/OspaJVATd0dYNVniDh0XAiL09dopNnOQrLpCs=";
   };
 
-  vendorSha256 = "sha256-McCbogZvgm9pnVjay9O2CxAh+653JnDMcU4CHD0PTPI=";
+  vendorSha256 = "sha256-4BUKUDr0bcd4AcMGIDC7HIhDI7pdTu2efkLqRD7Piw0=";
 
   ldflags = [ "-s" "-w" "-X main.VERSION=${version}" ];
 
diff --git a/pkgs/development/tools/continuous-integration/dagger/default.nix b/pkgs/development/tools/continuous-integration/dagger/default.nix
index 3e4ad1f2e4393..86e4525212afc 100644
--- a/pkgs/development/tools/continuous-integration/dagger/default.nix
+++ b/pkgs/development/tools/continuous-integration/dagger/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "dagger";
-  version = "0.2.19";
+  version = "0.2.20";
 
   src = fetchFromGitHub {
     owner = "dagger";
     repo = "dagger";
     rev = "v${version}";
-    sha256 = "sha256-ZhMvVTfzqXr6miOrqYqMzH4suY2+RIYCH3fK08dsUmA=";
+    sha256 = "sha256-TlysP5xf8LJoB9MU/sdQIM6yMfsaI8SP+drRlfG+tQ4=";
   };
 
   vendorSha256 = "sha256-pE6g5z4rOQlqmI9LZQXoI6fRmSTXDv5H8Y+pNXVIcOU=";
diff --git a/pkgs/development/tools/continuous-integration/github-runner/default.nix b/pkgs/development/tools/continuous-integration/github-runner/default.nix
index c8208dc18e410..5b33c02809eb9 100644
--- a/pkgs/development/tools/continuous-integration/github-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/github-runner/default.nix
@@ -46,13 +46,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "github-runner";
-  version = "2.293.0";
+  version = "2.294.0";
 
   src = fetchFromGitHub {
     owner = "actions";
     repo = "runner";
     rev = "v${version}";
-    hash = "sha256-5XAlKCtIvHzaJCPVO0WsrUGKnYUNR+roqzJ+jrcBfVM=";
+    hash = "sha256-2MOvqVlUZBmCt24EYSVjXWKR+fB2Mys70L/1/7jtwQQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index 039c54cf9df10..d5e4edb2abfe8 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,7 +1,7 @@
 { lib, buildGoModule, fetchFromGitLab, fetchurl }:
 
 let
-  version = "15.0.0";
+  version = "15.1.0";
 in
 buildGoModule rec {
   inherit version;
@@ -14,13 +14,13 @@ buildGoModule rec {
     "-X ${commonPackagePath}.REVISION=v${version}"
   ];
 
-  vendorSha256 = "0ag3pmcrxksgikdcvl9rv2s3kn7l0dj41pf2m9dq0g2a1j45nydn";
+  vendorSha256 = "sha256-5MzhDBCsgcACzImnfvetr3Z6SO+fHozChIhvZG0JwBc=";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "1s7jqhrwy5wl0db37d3pms499mmy7msx4ch46w5qa25nfbxcr07c";
+    sha256 = "sha256-G6V0l9kzbpl9XEYiiVBYjY7xOHemtOrb1xyB1HjhhTc=";
   };
 
   patches = [
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index abf7f840a4541..00395854cfd8d 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jenkins";
-  version = "2.332.3";
+  version = "2.346.1";
 
   src = fetchurl {
     url = "https://get.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "sha256-0ZPxearfOnzrYa3rw6tRIYrEp4UriJMv8ztE/XvmAQ8=";
+    sha256 = "09rvwpywf8wc3605kc0x171kmxfigqg4dq7gkd1hng1xqbjjqvhp";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/agent.nix b/pkgs/development/tools/continuous-integration/woodpecker/agent.nix
new file mode 100644
index 0000000000000..2865711d507c3
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/woodpecker/agent.nix
@@ -0,0 +1,17 @@
+{ lib, buildGoModule, callPackage, fetchFromGitHub }:
+let
+  common = callPackage ./common.nix { };
+in
+buildGoModule {
+  pname = "woodpecker-agent";
+  inherit (common) version src ldflags postBuild;
+  vendorSha256 = null;
+
+  subPackages = "cmd/agent";
+
+  CGO_ENABLED = 0;
+
+  meta = common.meta // {
+    description = "Woodpecker Continuous Integration agent";
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/cli.nix b/pkgs/development/tools/continuous-integration/woodpecker/cli.nix
new file mode 100644
index 0000000000000..b5eda9efb9173
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/woodpecker/cli.nix
@@ -0,0 +1,17 @@
+{ lib, buildGoModule, callPackage, fetchFromGitHub }:
+let
+  common = callPackage ./common.nix { };
+in
+buildGoModule {
+  pname = "woodpecker-cli";
+  inherit (common) version src ldflags postBuild;
+  vendorSha256 = null;
+
+  subPackages = "cmd/cli";
+
+  CGO_ENABLED = 0;
+
+  meta = common.meta // {
+    description = "Command line client for the Woodpecker Continuous Integration server";
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/common.nix b/pkgs/development/tools/continuous-integration/woodpecker/common.nix
new file mode 100644
index 0000000000000..932fa934b1bc7
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/woodpecker/common.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub }:
+let
+  version = "0.15.3";
+  srcSha256 = "sha256-HOOH3H2SXLcT2oW/xL80TO+ZSI+Haulnznpb4hlCQow=";
+  yarnSha256 = "sha256-x9g0vSoexfknqLejgcNIigmkFnqYsmhcQNTOStcj68o=";
+in
+{
+  inherit version yarnSha256;
+
+  src = fetchFromGitHub {
+    owner = "woodpecker-ci";
+    repo = "woodpecker";
+    rev = "v${version}";
+    sha256 = srcSha256;
+  };
+
+  postBuild = ''
+    cd $GOPATH/bin
+    for f in *; do
+      mv -- "$f" "woodpecker-$f"
+    done
+    cd -
+  '';
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/woodpecker-ci/woodpecker/version.Version=${version}"
+  ];
+
+  meta = with lib; {
+    homepage = "https://woodpecker-ci.org/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ambroisie ];
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/frontend.nix b/pkgs/development/tools/continuous-integration/woodpecker/frontend.nix
new file mode 100644
index 0000000000000..267fdc13985a9
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/woodpecker/frontend.nix
@@ -0,0 +1,40 @@
+{ lib, callPackage, fetchFromGitHub, fetchYarnDeps, mkYarnPackage }:
+let
+  common = callPackage ./common.nix { };
+in
+mkYarnPackage {
+  pname = "woodpecker-frontend";
+  inherit (common) version;
+
+  src = "${common.src}/web";
+
+  packageJSON = ./woodpecker-package.json;
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${common.src}/web/yarn.lock";
+    sha256 = common.yarnSha256;
+  };
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    cp -R deps/woodpecker-ci/dist $out
+    echo "${common.version}" > "$out/version"
+
+    runHook postInstall
+  '';
+
+  # Do not attempt generating a tarball for woodpecker-frontend again.
+  doDist = false;
+
+  meta = common.meta // {
+    description = "Woodpecker Continuous Integration server frontend";
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/server.nix b/pkgs/development/tools/continuous-integration/woodpecker/server.nix
new file mode 100644
index 0000000000000..d97412649b5db
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/woodpecker/server.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoModule, callPackage, fetchFromGitHub, woodpecker-frontend }:
+let
+  common = callPackage ./common.nix { };
+in
+buildGoModule {
+  pname = "woodpecker-server";
+  inherit (common) version src ldflags postBuild;
+  vendorSha256 = null;
+
+  postPatch = ''
+    cp -r ${woodpecker-frontend} web/dist
+  '';
+
+  subPackages = "cmd/server";
+
+  CGO_ENABLED = 1;
+
+  passthru = {
+    inherit woodpecker-frontend;
+
+    updateScript = ./update.sh;
+  };
+
+  meta = common.meta // {
+    description = "Woodpecker Continuous Integration server";
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/update.sh b/pkgs/development/tools/continuous-integration/woodpecker/update.sh
new file mode 100755
index 0000000000000..3530ea6c46c6c
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/woodpecker/update.sh
@@ -0,0 +1,50 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p nix wget prefetch-yarn-deps nix-prefetch-github jq
+
+# shellcheck shell=bash
+
+if [ -n "$GITHUB_TOKEN" ]; then
+    TOKEN_ARGS=(--header "Authorization: token $GITHUB_TOKEN")
+fi
+
+if [[ $# -gt 1 || $1 == -* ]]; then
+    echo "Regenerates packaging data for the woodpecker packages."
+    echo "Usage: $0 [git release tag]"
+    exit 1
+fi
+
+set -x
+
+cd "$(dirname "$0")"
+version="$1"
+
+set -euo pipefail
+
+if [ -z "$version" ]; then
+    version="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/woodpecker-ci/woodpecker/releases?per_page=1" | jq -r '.[0].tag_name')"
+fi
+
+# strip leading "v"
+version="${version#v}"
+
+# Woodpecker repository
+src_hash=$(nix-prefetch-github woodpecker-ci woodpecker --rev "v${version}" | jq -r .sha256)
+
+# Front-end dependencies
+woodpecker_src="https://raw.githubusercontent.com/woodpecker-ci/woodpecker/v$version"
+wget "${TOKEN_ARGS[@]}" "$woodpecker_src/web/package.json" -O woodpecker-package.json
+
+web_tmpdir=$(mktemp -d)
+trap 'rm -rf "$web_tmpdir"' EXIT
+pushd "$web_tmpdir"
+wget "${TOKEN_ARGS[@]}" "$woodpecker_src/web/yarn.lock"
+yarn_hash=$(prefetch-yarn-deps yarn.lock)
+popd
+
+# Use friendlier hashes
+src_hash=$(nix hash to-sri --type sha256 "$src_hash")
+yarn_hash=$(nix hash to-sri --type sha256 "$yarn_hash")
+
+sed -i -E -e "s#version = \".*\"#version = \"$version\"#" common.nix
+sed -i -E -e "s#srcSha256 = \".*\"#srcSha256 = \"$src_hash\"#" common.nix
+sed -i -E -e "s#yarnSha256 = \".*\"#yarnSha256 = \"$yarn_hash\"#" common.nix
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/woodpecker-package.json b/pkgs/development/tools/continuous-integration/woodpecker/woodpecker-package.json
new file mode 100644
index 0000000000000..eb29431a0566c
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/woodpecker/woodpecker-package.json
@@ -0,0 +1,63 @@
+{
+  "name": "woodpecker-ci",
+  "author": "Woodpecker CI",
+  "version": "0.0.0",
+  "license": "Apache-2.0",
+  "engines": {
+    "node": ">=14"
+  },
+  "scripts": {
+    "start": "vite",
+    "build": "vite build",
+    "serve": "vite preview",
+    "lint": "eslint --max-warnings 0 --ext .js,.ts,.vue,.json .",
+    "formatcheck": "prettier -c .",
+    "format:fix": "prettier --write .",
+    "typecheck": "vue-tsc --noEmit",
+    "test": "echo 'No tests configured' && exit 0"
+  },
+  "dependencies": {
+    "@kyvg/vue3-notification": "2.3.4",
+    "@meforma/vue-toaster": "1.2.2",
+    "ansi-to-html": "0.7.2",
+    "dayjs": "1.10.7",
+    "floating-vue": "2.0.0-beta.5",
+    "fuse.js": "6.4.6",
+    "humanize-duration": "3.27.0",
+    "javascript-time-ago": "2.3.10",
+    "node-emoji": "1.11.0",
+    "pinia": "2.0.0",
+    "vue": "v3.2.20",
+    "vue-router": "4.0.10"
+  },
+  "devDependencies": {
+    "@iconify/json": "1.1.421",
+    "@types/humanize-duration": "3.27.0",
+    "@types/javascript-time-ago": "2.0.3",
+    "@types/node": "16.11.6",
+    "@types/node-emoji": "1.8.1",
+    "@typescript-eslint/eslint-plugin": "5.6.0",
+    "@typescript-eslint/parser": "5.6.0",
+    "@vitejs/plugin-vue": "1.9.4",
+    "@vue/compiler-sfc": "3.2.20",
+    "eslint": "7.32.0",
+    "eslint-config-airbnb-base": "15.0.0",
+    "eslint-config-airbnb-typescript": "16.1.0",
+    "eslint-config-prettier": "8.3.0",
+    "eslint-plugin-import": "2.25.3",
+    "eslint-plugin-prettier": "4.0.0",
+    "eslint-plugin-promise": "5.1.1",
+    "eslint-plugin-simple-import-sort": "7.0.0",
+    "eslint-plugin-vue": "7.18.0",
+    "eslint-plugin-vue-scoped-css": "1.3.0",
+    "prettier": "2.4.1",
+    "typescript": "4.4.4",
+    "unplugin-icons": "0.12.17",
+    "unplugin-vue-components": "0.17.0",
+    "vite": "2.6.13",
+    "vite-plugin-windicss": "1.4.12",
+    "vite-svg-loader": "3.0.0",
+    "vue-tsc": "0.28.10",
+    "windicss": "3.2.0"
+  }
+}
diff --git a/pkgs/development/tools/dapper/default.nix b/pkgs/development/tools/dapper/default.nix
index 45e4614b448af..8e3160b4cddcf 100644
--- a/pkgs/development/tools/dapper/default.nix
+++ b/pkgs/development/tools/dapper/default.nix
@@ -1,30 +1,29 @@
-{ buildGoPackage
-, lib
+{ lib
+, buildGoModule
 , fetchFromGitHub
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "dapper";
   version = "0.5.8";
 
-  goPackagePath = "github.com/rancher/dapper";
-
   src = fetchFromGitHub {
     owner = "rancher";
     repo = "dapper";
     rev = "v${version}";
     sha256 = "sha256-t1w8bhwCjZHmvgBG6Tv8kgqTbC7v5P5QOvJGuTJUC04=";
   };
-   patchPhase = ''
-     substituteInPlace main.go --replace 0.0.0 ${version}
-   '';
+  vendorSha256 = null;
+
+  patchPhase = ''
+    substituteInPlace main.go --replace 0.0.0 ${version}
+  '';
 
   meta = with lib; {
-    description = "Docker Build Wrapper";
+    description = "Docker build wrapper";
     homepage = "https://github.com/rancher/dapper";
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ kuznero ];
   };
 }
-
diff --git a/pkgs/development/tools/doctl/default.nix b/pkgs/development/tools/doctl/default.nix
index fb602240bb328..926b1c75ee36b 100644
--- a/pkgs/development/tools/doctl/default.nix
+++ b/pkgs/development/tools/doctl/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "doctl";
-  version = "1.76.0";
+  version = "1.77.0";
 
   vendorSha256 = null;
 
@@ -31,7 +31,7 @@ buildGoModule rec {
     owner = "digitalocean";
     repo = "doctl";
     rev = "v${version}";
-    sha256 = "sha256-rascG0WXDsmParwzR8QZEayiQEARu8YXfU0JT2yhQrc=";
+    sha256 = "sha256-i+Z5xFO3e04c/CfOyPAjD1nwPvm5vmYLsvj6OblJuqg=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/ineffassign/default.nix b/pkgs/development/tools/ineffassign/default.nix
index 111048b562f39..16e392b6bbc49 100644
--- a/pkgs/development/tools/ineffassign/default.nix
+++ b/pkgs/development/tools/ineffassign/default.nix
@@ -1,28 +1,31 @@
-{ buildGoPackage
-, lib
+{ lib
+, buildGoModule
 , fetchFromGitHub
+, go
 }:
 
-buildGoPackage rec {
-  pname = "ineffassign-unstable";
-  version = "2018-09-09";
-  rev = "1003c8bd00dc2869cb5ca5282e6ce33834fed514";
-
-  goPackagePath = "github.com/gordonklaus/ineffassign";
+buildGoModule rec {
+  pname = "ineffassign";
+  version = "unstable-2021-09-04";
+  rev = "4cc7213b9bc8b868b2990c372f6fa057fa88b91c";
 
   src = fetchFromGitHub {
-    inherit rev;
-
     owner = "gordonklaus";
     repo = "ineffassign";
-    sha256 = "1rkzqvd3z03vq8q8qi9cghvgggsf02ammj9wq8jvpnx6b2sd16nd";
+    inherit rev;
+    sha256 = "sha256-XLXANN9TOmrNOixWtlqnIC27u+0TW2P3s9MyeyVUcAQ=";
   };
 
+  vendorSha256 = "sha256-QTgWicN2m2ughtLsEBMaQWfpDbmbL0nS5qaIKF3mTJM=";
+
+  allowGoReference = true;
+
+  checkInputs = [ go ];
+
   meta = with lib; {
     description = "Detect ineffectual assignments in Go code";
     homepage = "https://github.com/gordonklaus/ineffassign";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
-    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/tools/lc3tools/0004-configure-use-cc.patch b/pkgs/development/tools/lc3tools/0004-configure-use-cc.patch
new file mode 100644
index 0000000000000..caaec22000083
--- /dev/null
+++ b/pkgs/development/tools/lc3tools/0004-configure-use-cc.patch
@@ -0,0 +1,22 @@
+diff --git a/configure b/configure
+index dfc1b3e..55577af 100755
+--- a/configure
++++ b/configure
+@@ -18,7 +18,7 @@ esac
+ # Some binaries that we'll need, and the places that we might find them.
+ 
+ IFS=:
+-binlist="uname:flex:gcc:wish:rm:cp:mkdir:chmod:sed"
++binlist="uname:flex:cc:wish:rm:cp:mkdir:chmod:sed"
+ pathlist=$PATH
+ libpathlist=$LIBS
+ incpathlist=$INCLUDES
+@@ -109,7 +109,7 @@ fi
+ # Splice it all in to Makefile.def to create the Makefile.
+ 
+ rm -f Makefile
+-sed -e "s __GCC__ $gcc g" -e "s __FLEX__ $flex g" -e "s __EXE__ $EXE g"     \
++sed -e "s __GCC__ $cc g" -e "s __FLEX__ $flex g" -e "s __EXE__ $EXE g"     \
+     -e "s*__OS_SIM_LIBS__*$OS_SIM_LIBS*g" -e "s __RM__ $rm g"               \
+     -e "s __CP__ $cp g" -e "s __MKDIR__ $mkdir g" -e "s __CHMOD__ $chmod g" \
+     -e "s __USE_READLINE__ $USE_READLINE g" -e "s*__RLLPATH__*$RLLPATH*g"   \
diff --git a/pkgs/development/tools/lc3tools/default.nix b/pkgs/development/tools/lc3tools/default.nix
index 3e7f81bb4e7bc..c6120a227a993 100644
--- a/pkgs/development/tools/lc3tools/default.nix
+++ b/pkgs/development/tools/lc3tools/default.nix
@@ -19,6 +19,9 @@ stdenv.mkDerivation {
 
     # lc3sim-tk looks for lc3sim in $out/bin instead of $out
     ./0003-lc3sim-tk-path.patch
+
+    # use `cc` instead of `gcc`; on macOS the latter is not present
+    ./0004-configure-use-cc.patch
   ];
 
   nativeBuildInputs = [ unzip ];
@@ -40,8 +43,15 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
+    longDescription = ''
+      The LC-3 tools package contains the lc3as assembler, the lc3sim simulator,
+      and lc3sim-tk, a Tcl/Tk-based GUI frontend to the simulator.
+    '';
     description = "Toolchain and emulator for the LC-3 architecture";
+    homepage = "https://highered.mheducation.com/sites/0072467509/student_view0/lc-3_simulator.html";
     license = licenses.gpl2;
     maintainers = with maintainers; [ anna328p ];
+    mainProgram = "lc3sim-tk";
+    platforms = with lib.platforms; unix ++ windows;
   };
 }
diff --git a/pkgs/development/tools/maligned/default.nix b/pkgs/development/tools/maligned/default.nix
index 06cd23e40f4b3..f39b83489f990 100644
--- a/pkgs/development/tools/maligned/default.nix
+++ b/pkgs/development/tools/maligned/default.nix
@@ -1,30 +1,31 @@
-{ buildGoPackage
-, lib
+{ lib
+, buildGoModule
 , fetchFromGitHub
+, go
 }:
 
-buildGoPackage rec {
-  pname = "maligned-unstable";
-  version = "2018-07-07";
-  rev = "6e39bd26a8c8b58c5a22129593044655a9e25959";
-
-  goPackagePath = "github.com/mdempsky/maligned";
+buildGoModule rec {
+  pname = "maligned";
+  version = "unstable-2022-02-04";
+  rev = "d7cd9a96ae47d02b08234503b54709ad4ae82105";
 
   src = fetchFromGitHub {
-    inherit rev;
-
     owner = "mdempsky";
     repo = "maligned";
-    sha256 = "08inr5xjqv9flrlyhqd8ck1q26y5xb6iilz0xkb6bqa4dl5ialhi";
+    inherit rev;
+    sha256 = "sha256-exljmDNtVhjJkvh0EomcbBXSsmQx4I59MHDfMWSQyKk=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-q/0lxZWk3a7brMsbLvZUSZ8XUHfWfx79qxjir1Vygx4=";
+
+  allowGoReference = true;
+
+  checkInputs = [ go ];
 
   meta = with lib; {
     description = "Tool to detect Go structs that would take less memory if their fields were sorted";
     homepage = "https://github.com/mdempsky/maligned";
     license = licenses.bsd3;
     maintainers = with maintainers; [ kalbasit ];
-    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/tools/maligned/deps.nix b/pkgs/development/tools/maligned/deps.nix
deleted file mode 100644
index afe5e50e47bdd..0000000000000
--- a/pkgs/development/tools/maligned/deps.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/kisielk/gotool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kisielk/gotool";
-      rev = "80517062f582ea3340cd4baf70e86d539ae7d84d";
-      sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "96e9e165b75e735822645eff82850b08c377be36";
-      sha256 = "1zj9ck5sg9b0pphxybmvxf64hhcap7v7j37fx3v5aknf18crjjdg";
-    };
-  }
-]
diff --git a/pkgs/development/tools/misc/checkbashisms/default.nix b/pkgs/development/tools/misc/checkbashisms/default.nix
index 6222bb312bb08..b648a082fa3f6 100644
--- a/pkgs/development/tools/misc/checkbashisms/default.nix
+++ b/pkgs/development/tools/misc/checkbashisms/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, perl, installShellFiles }:
 stdenv.mkDerivation rec {
-  version = "2.21.1";
+  version = "2.22.1";
   pname = "checkbashisms";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/d/devscripts/devscripts_${version}.tar.xz";
-    hash = "sha256-1ZbIiUrFd38uMVLy7YayLLm5RrmcovsA++JTb8PbTFI=";
+    hash = "sha256-Nd1eYCnSe+NblujG44uKpvunkaITcdrC3g+M3uX+M9U=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix
index 0d878ffe90691..78bee76efdcf9 100644
--- a/pkgs/development/tools/misc/clojure-lsp/default.nix
+++ b/pkgs/development/tools/misc/clojure-lsp/default.nix
@@ -2,18 +2,18 @@
 
 buildGraalvmNativeImage rec {
   pname = "clojure-lsp";
-  version = "2022.05.31-17.35.50";
+  version = "2022.06.22-14.09.50";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-turIdgW1gr+b4rjCTet9demJvtaSdw3INbWgXetngLM=";
+    sha256 = "sha256-QMzjoxcEbzOZKh3nN+kMwjp5NfARBFiVnZ/1B3yzVK0=";
   };
 
   jar = fetchurl {
     url = "https://github.com/clojure-lsp/clojure-lsp/releases/download/${version}/clojure-lsp-standalone.jar";
-    sha256 = "e67140bca87347ab639c40504c897c36307ed64278bb764db41a32627582bd71";
+    sha256 = "ff400595723af878f5d6edfed78d403eb1ce18bd439d4bb0eb8eccf3d20a2b51";
   };
 
   extraNativeImageBuildArgs = [
diff --git a/pkgs/development/tools/misc/elfinfo/default.nix b/pkgs/development/tools/misc/elfinfo/default.nix
index e3ee51c58fdc6..b9a6dc0c39b4f 100644
--- a/pkgs/development/tools/misc/elfinfo/default.nix
+++ b/pkgs/development/tools/misc/elfinfo/default.nix
@@ -1,20 +1,25 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "elfinfo";
   version = "1.1.0";
 
-  goPackagePath = "github.com/xyproto/elfinfo";
   src = fetchFromGitHub {
-    rev = version;
     owner = "xyproto";
     repo = "elfinfo";
+    rev = version;
     sha256 = "1n8bg0rcq9fqa6rdnk6x9ngvm59hcayblkpjv9j5myn2vmm6fv8m";
   };
 
+  vendorSha256 = null;
+
   meta = with lib; {
     description = "Small utility for showing information about ELF files";
     homepage = "https://elfinfo.roboticoverlords.org/";
+    changelog = "https://github.com/xyproto/elfinfo/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ dtzWill ];
   };
diff --git a/pkgs/development/tools/misc/hound/default.nix b/pkgs/development/tools/misc/hound/default.nix
index 4a2b4ac603603..7e46fadf362e0 100644
--- a/pkgs/development/tools/misc/hound/default.nix
+++ b/pkgs/development/tools/misc/hound/default.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "hound";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "hound-search";
     repo = "hound";
     rev = "v${version}";
-    sha256 = "sha256-FNK6SgISGqx+O7Vgp+KOqQyPhqzERDjeo6mQIX1SXnA=";
+    sha256 = "sha256-1URhb+ZrtP5eGS2o7lBxvAxQJR/J6oE+pCbJ7sQb0X4=";
   };
 
   vendorSha256 = "sha256-ZgF/PB3VTPx367JUkhOkSEK1uvqENNG0xuNXvCGENnQ=";
diff --git a/pkgs/development/tools/misc/terraform-ls/default.nix b/pkgs/development/tools/misc/terraform-ls/default.nix
index e85e014368afd..3e218523ed34b 100644
--- a/pkgs/development/tools/misc/terraform-ls/default.nix
+++ b/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "terraform-ls";
-  version = "0.26.0";
+  version = "0.28.1";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Xq9HojFjUrdThXvQ4M8o4LLmxopVErnN3WGUgI79BCw=";
+    sha256 = "sha256-6K4aOp5mjX+qhG/OS/Gs1kAOpDGUPdgRNx4zp3i/c2A=";
   };
-  vendorSha256 = "sha256-iSgK+FOD9olVN4bR2jmtWndaRHrh9pfo/42COTiIh9c=";
+  vendorSha256 = "sha256-YouAdTo7huco35er84MRfI1gmq11VbFwRGSovs1XDYo=";
 
   ldflags = [ "-s" "-w" "-X main.version=v${version}" "-X main.prerelease=" ];
 
diff --git a/pkgs/development/tools/okteto/default.nix b/pkgs/development/tools/okteto/default.nix
index 435ccd5a79fd3..ec4974876cb59 100644
--- a/pkgs/development/tools/okteto/default.nix
+++ b/pkgs/development/tools/okteto/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "okteto";
-  version = "2.3.3";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "okteto";
     repo = "okteto";
     rev = version;
-    sha256 = "sha256-rKhXzmBV59bj/Dj2ORU1ggOohAs56iB15es924pHXp4=";
+    sha256 = "sha256-+shhY7/chtq4xPwYSlcVgL/RGMNA0ahTCqT9pVQqpG4=";
   };
 
-  vendorSha256 = "sha256-XT/ZLydN1oeuRupD3gjvY6+hOB/Lq5CQwhfr9/iT7JI=";
+  vendorSha256 = "sha256-W1/QBMnMdZWokWSFmHhPqmOu827bpGXS8+GFp5Iu9Ig=";
 
   postPatch = ''
     # Disable some tests that need file system & network access.
diff --git a/pkgs/development/tools/packer/default.nix b/pkgs/development/tools/packer/default.nix
index 0d901f14863e6..8ae769429cccd 100644
--- a/pkgs/development/tools/packer/default.nix
+++ b/pkgs/development/tools/packer/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "packer";
-  version = "1.8.1";
+  version = "1.8.2";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "packer";
     rev = "v${version}";
-    sha256 = "sha256-NqXmeBQrDnCGruJTZjAryxCmEdm1CZMPhW6JhZB0log=";
+    sha256 = "sha256-SaQGUVXtAI/FdqRZc4AjDkeEl9lE5i/wKsHKNGLpx8Y=";
   };
 
-  vendorSha256 = "sha256-Wit5DWTjVrxLLWpfOo/6JrSxqeZvC4Vjv+cW19wNHyw=";
+  vendorSha256 = "sha256-0GE5chSTonJFT7xomfa9a9QsnFpTFX7proo9joaDrOU=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/package-management/cargo-about/default.nix b/pkgs/development/tools/rust/cargo-about/default.nix
index 8b98858e823b9..8b98858e823b9 100644
--- a/pkgs/tools/package-management/cargo-about/default.nix
+++ b/pkgs/development/tools/rust/cargo-about/default.nix
diff --git a/pkgs/tools/package-management/cargo-about/zstd-pkg-config.patch b/pkgs/development/tools/rust/cargo-about/zstd-pkg-config.patch
index e084538ca924c..e084538ca924c 100644
--- a/pkgs/tools/package-management/cargo-about/zstd-pkg-config.patch
+++ b/pkgs/development/tools/rust/cargo-about/zstd-pkg-config.patch
diff --git a/pkgs/tools/package-management/cargo-audit/default.nix b/pkgs/development/tools/rust/cargo-audit/default.nix
index 982a000caa74d..982a000caa74d 100644
--- a/pkgs/tools/package-management/cargo-audit/default.nix
+++ b/pkgs/development/tools/rust/cargo-audit/default.nix
diff --git a/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix b/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
index 7eef0ce66299f..107241896edc6 100644
--- a/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
+++ b/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
@@ -12,29 +12,30 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-bisect-rustc";
-  version = "0.6.0";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-LEmILWVU6hbh2FmdnQVV1Ob2MQvj+/lCr1hdRoTIOkI=";
+    hash = "sha256-TRcHeA4pOzODyzkQCGkdAWy3Bt2ltrOcpCMDu6n4k3k=";
   };
 
   patches =
     let
-      patchelfPatch = runCommand "0001-dynamically-patchelf-binaries.patch" {
-        CC = stdenv.cc;
-        patchelf = patchelf;
-        libPath = "$ORIGIN/../lib:${lib.makeLibraryPath [ zlib ]}";
-      }
-      ''
-        export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
-        substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
-          --subst-var patchelf \
-          --subst-var dynamicLinker \
-          --subst-var libPath
-      '';
+      patchelfPatch = runCommand "0001-dynamically-patchelf-binaries.patch"
+        {
+          CC = stdenv.cc;
+          patchelf = patchelf;
+          libPath = "$ORIGIN/../lib:${lib.makeLibraryPath [ zlib ]}";
+        }
+        ''
+          export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
+          substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
+            --subst-var patchelf \
+            --subst-var dynamicLinker \
+            --subst-var libPath
+        '';
     in
     lib.optionals stdenv.isLinux [ patchelfPatch ];
 
@@ -45,7 +46,7 @@ rustPlatform.buildRustPackage rec {
     Security
   ];
 
-  cargoSha256 = "Ls51DQ0yScRhpkuEInCfR45+/WeaUoG935w4BJvwSRk=";
+  cargoSha256 = "sha256-3I5V/JOxxy1+Cwkq9tuHMgHQ0eCfzAViJ4Gl+l8RHlE=";
 
   meta = with lib; {
     description = "Bisects rustc, either nightlies or CI artifacts";
diff --git a/pkgs/development/tools/rust/cargo-crev/default.nix b/pkgs/development/tools/rust/cargo-crev/default.nix
index 90ea165827137..0caa77e2bfd8b 100644
--- a/pkgs/development/tools/rust/cargo-crev/default.nix
+++ b/pkgs/development/tools/rust/cargo-crev/default.nix
@@ -13,16 +13,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-crev";
-  version = "0.23.1";
+  version = "0.23.2";
 
   src = fetchFromGitHub {
     owner = "crev-dev";
     repo = "cargo-crev";
     rev = "v${version}";
-    sha256 = "sha256-XzjZEVyPVn+7VrjG4QsqVBFmuGC1TWTWLEoqFcwQhaI=";
+    sha256 = "sha256-q/GbEsGQip7+wXxbVFfm9l3tdCT2o4yhWVTY1qmnEic=";
   };
 
-  cargoSha256 = "sha256-p87ZnOxaF9ytSUxp0P3QE3K1/jo7hz/N7BH1f2Lc0I0=";
+  cargoSha256 = "sha256-pqOVKLh+ovUy+rJIz0tjp56qhilZTno4t4dZyCY1r7c=";
 
   preCheck = ''
     export HOME=$(mktemp -d)
diff --git a/pkgs/tools/package-management/cargo-deb/default.nix b/pkgs/development/tools/rust/cargo-deb/default.nix
index 2eb2ddd2d9843..2eb2ddd2d9843 100644
--- a/pkgs/tools/package-management/cargo-deb/default.nix
+++ b/pkgs/development/tools/rust/cargo-deb/default.nix
diff --git a/pkgs/tools/package-management/cargo-deps/default.nix b/pkgs/development/tools/rust/cargo-deps/default.nix
index b98a0d75793f3..b98a0d75793f3 100644
--- a/pkgs/tools/package-management/cargo-deps/default.nix
+++ b/pkgs/development/tools/rust/cargo-deps/default.nix
diff --git a/pkgs/tools/package-management/cargo-download/Cargo.nix b/pkgs/development/tools/rust/cargo-download/Cargo.nix
index f96a3a207df01..f96a3a207df01 100644
--- a/pkgs/tools/package-management/cargo-download/Cargo.nix
+++ b/pkgs/development/tools/rust/cargo-download/Cargo.nix
diff --git a/pkgs/tools/package-management/cargo-download/crates-io.nix b/pkgs/development/tools/rust/cargo-download/crates-io.nix
index dde192585e08a..dde192585e08a 100644
--- a/pkgs/tools/package-management/cargo-download/crates-io.nix
+++ b/pkgs/development/tools/rust/cargo-download/crates-io.nix
diff --git a/pkgs/tools/package-management/cargo-download/default.nix b/pkgs/development/tools/rust/cargo-download/default.nix
index 1cb53a4b6c8d8..1cb53a4b6c8d8 100644
--- a/pkgs/tools/package-management/cargo-download/default.nix
+++ b/pkgs/development/tools/rust/cargo-download/default.nix
diff --git a/pkgs/tools/package-management/cargo-edit/default.nix b/pkgs/development/tools/rust/cargo-edit/default.nix
index 53f7d581b346c..53f7d581b346c 100644
--- a/pkgs/tools/package-management/cargo-edit/default.nix
+++ b/pkgs/development/tools/rust/cargo-edit/default.nix
diff --git a/pkgs/development/tools/rust/cargo-expand/default.nix b/pkgs/development/tools/rust/cargo-expand/default.nix
index d448b9a88f863..ebca19b3cbb34 100644
--- a/pkgs/development/tools/rust/cargo-expand/default.nix
+++ b/pkgs/development/tools/rust/cargo-expand/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-expand";
-  version = "1.0.21";
+  version = "1.0.27";
 
   src = fetchFromGitHub {
     owner = "dtolnay";
     repo = pname;
     rev = version;
-    sha256 = "sha256-hxG7e5JBDv79eA7IQEdU8kpvE0B69Gqc+aPdCoc6Uf4=";
+    sha256 = "sha256-lj6B+9AdKhHc71cyzp7TcHmHv3K2ZoXEzMn/d3H0bB4=";
   };
 
-  cargoSha256 = "sha256-7CMNJb/HGHPP4CIBEYK+2HC/JAce25qGI86NkSvyxos=";
+  cargoSha256 = "sha256-j14l3E+vyeyEMYN+TEsuxlEdWa2Em0B6Y2LoTot2Np8=";
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
diff --git a/pkgs/development/tools/cargo-flamegraph/default.nix b/pkgs/development/tools/rust/cargo-flamegraph/default.nix
index e3bbb29164f13..e3bbb29164f13 100644
--- a/pkgs/development/tools/cargo-flamegraph/default.nix
+++ b/pkgs/development/tools/rust/cargo-flamegraph/default.nix
diff --git a/pkgs/tools/package-management/cargo-graph/default.nix b/pkgs/development/tools/rust/cargo-graph/default.nix
index 37fd43a1bcf1d..37fd43a1bcf1d 100644
--- a/pkgs/tools/package-management/cargo-graph/default.nix
+++ b/pkgs/development/tools/rust/cargo-graph/default.nix
diff --git a/pkgs/development/tools/rust/cargo-insta/default.nix b/pkgs/development/tools/rust/cargo-insta/default.nix
index aa70a576d37c2..99a19d12405fe 100644
--- a/pkgs/development/tools/rust/cargo-insta/default.nix
+++ b/pkgs/development/tools/rust/cargo-insta/default.nix
@@ -2,17 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-insta";
-  version = "1.14.0";
+  version = "1.15.0";
 
   src = fetchFromGitHub {
     owner = "mitsuhiko";
     repo = "insta";
     rev = version;
-    sha256 = "sha256-kTICdLL3paJIj779w4i7QUzhdynzyjo+YjtBorJsms4=";
+    sha256 = "sha256-IwtAd8qhG7FgnC7esipwAbSssVKIirB6GCedgNRPabo=";
   };
 
   sourceRoot = "source/cargo-insta";
-  cargoSha256 = "sha256-Hfjz3arOvRbMIvV3o60zjRB2p4JbBUFPj66OpHZdIJg=";
+  cargoSha256 = "sha256-asWf+wIOpbZx9YOw5c4prg2D6FSRCTcc5FgWY93MNII=";
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   meta = with lib; {
diff --git a/pkgs/tools/package-management/cargo-kcov/default.nix b/pkgs/development/tools/rust/cargo-kcov/default.nix
index f94c4fa5c0f00..f94c4fa5c0f00 100644
--- a/pkgs/tools/package-management/cargo-kcov/default.nix
+++ b/pkgs/development/tools/rust/cargo-kcov/default.nix
diff --git a/pkgs/tools/package-management/cargo-license/default.nix b/pkgs/development/tools/rust/cargo-license/default.nix
index 6202e297b9a9e..6202e297b9a9e 100644
--- a/pkgs/tools/package-management/cargo-license/default.nix
+++ b/pkgs/development/tools/rust/cargo-license/default.nix
diff --git a/pkgs/tools/package-management/cargo-outdated/default.nix b/pkgs/development/tools/rust/cargo-outdated/default.nix
index 2013f15d1e1a6..2013f15d1e1a6 100644
--- a/pkgs/tools/package-management/cargo-outdated/default.nix
+++ b/pkgs/development/tools/rust/cargo-outdated/default.nix
diff --git a/pkgs/tools/package-management/cargo-release/default.nix b/pkgs/development/tools/rust/cargo-release/default.nix
index 965c94742ec5e..965c94742ec5e 100644
--- a/pkgs/tools/package-management/cargo-release/default.nix
+++ b/pkgs/development/tools/rust/cargo-release/default.nix
diff --git a/pkgs/tools/package-management/cargo-update/default.nix b/pkgs/development/tools/rust/cargo-update/default.nix
index 383eeac432d9a..383eeac432d9a 100644
--- a/pkgs/tools/package-management/cargo-update/default.nix
+++ b/pkgs/development/tools/rust/cargo-update/default.nix
diff --git a/pkgs/development/tools/cargo-web/default.nix b/pkgs/development/tools/rust/cargo-web/default.nix
index 2c35e951cda13..2c35e951cda13 100644
--- a/pkgs/development/tools/cargo-web/default.nix
+++ b/pkgs/development/tools/rust/cargo-web/default.nix
diff --git a/pkgs/development/tools/vultr/default.nix b/pkgs/development/tools/vultr/default.nix
index 2f1d6618d3fee..8a584ce669cbf 100644
--- a/pkgs/development/tools/vultr/default.nix
+++ b/pkgs/development/tools/vultr/default.nix
@@ -1,9 +1,11 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "vultr";
   version = "2.0.3";
-  goPackagePath = "github.com/JamesClonk/vultr";
 
   src = fetchFromGitHub {
     owner = "JamesClonk";
@@ -12,10 +14,16 @@ buildGoPackage rec {
     sha256 = "sha256-kyB6gUbc32NsSDqDy1zVT4HXn0pWxHdBOEBOSaI0Xro=";
   };
 
-  meta = {
-    description = "A command line tool for Vultr services, a provider for cloud virtual private servers";
-    homepage = "https://github.com/JamesClonk/vultr";
-    license = lib.licenses.mit;
-    maintainers = [ lib.maintainers.zauberpony ];
+  vendorSha256 = null;
+
+  # There are not test files
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Vultr CLI and API client library";
+    homepage = "https://jamesclonk.github.io/vultr";
+    changelog = "https://github.com/JamesClonk/vultr/releases/tag/${src.rev}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zauberpony ];
   };
 }
diff --git a/pkgs/development/tools/yq-go/default.nix b/pkgs/development/tools/yq-go/default.nix
index 71135ede5b222..bd0abce2282ff 100644
--- a/pkgs/development/tools/yq-go/default.nix
+++ b/pkgs/development/tools/yq-go/default.nix
@@ -16,10 +16,10 @@ buildGoModule rec {
   nativeBuildInputs = [ installShellFiles ];
 
   postInstall = ''
-    for shell in bash fish zsh; do
-      $out/bin/yq shell-completion $shell > yq.$shell
-      installShellCompletion yq.$shell
-    done
+    installShellCompletion --cmd yq \
+      --bash <($out/bin/yq shell-completion bash) \
+      --fish <($out/bin/yq shell-completion fish) \
+      --zsh <($out/bin/yq shell-completion zsh)
   '';
 
   passthru.tests = {
@@ -32,8 +32,8 @@ buildGoModule rec {
   meta = with lib; {
     description = "Portable command-line YAML processor";
     homepage = "https://mikefarah.gitbook.io/yq/";
-    license = [ licenses.mit ];
-    maintainers = [ maintainers.lewo ];
     mainProgram = "yq";
+    license = [ licenses.mit ];
+    maintainers = with maintainers; [ lewo SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix
index 3a62b1802b74b..c433e2dfa671a 100644
--- a/pkgs/development/web/deno/default.nix
+++ b/pkgs/development/web/deno/default.nix
@@ -16,15 +16,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.23.0";
+  version = "1.23.1";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nPVghkLtXhd2/TeBeNDtA1ucgiqzZWmtxXf9bCrFh44=";
+    sha256 = "sha256-Z9dZrhH+zlYNuhFs+aicuepnUTSOfIHdLaz9sJp0LCA=";
   };
-  cargoSha256 = "sha256-bCk6zgsfyI5Nk0AHPyr29KzgltobxfD6b72N0ZaQyOU=";
+  cargoSha256 = "sha256-VIpy5vRZinFvFhyyKQwi5ThrBNwqGy1TVg5tAoxxJyQ=";
 
   postPatch = ''
     # upstream uses lld on aarch64-darwin for faster builds
diff --git a/pkgs/development/web/deno/librusty_v8.nix b/pkgs/development/web/deno/librusty_v8.nix
index 581c2e88d9ca1..793bc9cb19493 100644
--- a/pkgs/development/web/deno/librusty_v8.nix
+++ b/pkgs/development/web/deno/librusty_v8.nix
@@ -11,11 +11,11 @@ let
   };
 in
 fetch_librusty_v8 {
-  version = "0.44.1";
+  version = "0.44.2";
   shas = {
-    x86_64-linux = "sha256-8aBjN9ukbH+lr3YPdngXxSjPjutBgWv4hEdhYmcvtO4=";
-    aarch64-linux = "sha256-h0mxzeA/wB+/zNz0ZKjSBH7lpYrCLRdTgeDGwZypuXE=";
-    x86_64-darwin = "sha256-4YXYHhYwCBnb1clxW1ziccHMWsUcGz8Rr8/anCvI1lY=";
-    aarch64-darwin = "sha256-3sBeL+YJB1HaEhM76GfABvN/6iWeST7Z6lVu3X8sRjk=";
+    x86_64-linux = "sha256-I1ad9a9FtJGGGW7Odc8HfysQyCEAb8xoEYmYti0pEkE=";
+    aarch64-linux = "sha256-KHjVMI9qiJ6q3D6t6iUKxbp1qthHSSl+2AfvL3Hvk6I=";
+    x86_64-darwin = "sha256-UO1NRpbCA5MtqeRLTGM3FIWdX/ECDW/JG52U756FIv8=";
+    aarch64-darwin = "sha256-FqakcG050m52/F6nWlS7VeW0r+77CCIzG1qvBP3Naik=";
   };
 }
diff --git a/pkgs/games/freeciv/default.nix b/pkgs/games/freeciv/default.nix
index b1d215912a0a8..e3057d59cd43a 100644
--- a/pkgs/games/freeciv/default.nix
+++ b/pkgs/games/freeciv/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "freeciv";
-  version = "3.0.1";
+  version = "3.0.2";
 
   src = fetchFromGitHub {
     owner = "freeciv";
     repo = "freeciv";
     rev = "R${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "sha256-Nzc6Tirj6TKLgTYN5XjZZut9HVYLKGOp1GZeaoqEtW8=";
+    sha256 = "sha256-1QGARXIfb97aLxQ5TZ6Fjznlniznnyuc2ugiW/Drf9g=";
   };
 
   postPatch = ''
diff --git a/pkgs/games/gnonograms/default.nix b/pkgs/games/gnonograms/default.nix
index 21f522d3418f9..2446384ff719a 100644
--- a/pkgs/games/gnonograms/default.nix
+++ b/pkgs/games/gnonograms/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , vala
 , meson
 , ninja
@@ -19,24 +18,15 @@
 
 stdenv.mkDerivation rec {
   pname = "gnonograms";
-  version = "2.0.0";
+  version = "2.1.2";
 
   src = fetchFromGitHub {
     owner = "jeremypw";
     repo = "gnonograms";
     rev = "v${version}";
-    sha256 = "sha256-2uXaybpCAm9cr0o7bqfhgD7mMNPwtv1X/PgnFnSDOl0=";
+    sha256 = "sha256-TkEVjrwlr4Q5FsfcdY+9fxwaMq+DFs0RwGI2E+GT5Mk=";
   };
 
-  patches = [
-    # Fix build with meson 0.61, can be removed on next release
-    # https://github.com/jeremypw/gnonograms/pull/45
-    (fetchpatch {
-      url = "https://github.com/jeremypw/gnonograms/commit/0e90d8ff42d64a94002ec8500889bc4d7e06c1b6.patch";
-      sha256 = "sha256-G/yqsZFmOA69A3E2CROMYAS5vmok/K5l1S/M2m8DMh4=";
-    })
-  ];
-
   postPatch = ''
     patchShebangs meson/post_install.py
   '';
diff --git a/pkgs/games/itch-setup/default.nix b/pkgs/games/itch-setup/default.nix
deleted file mode 100644
index 55d488bcaac06..0000000000000
--- a/pkgs/games/itch-setup/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, writeShellScriptBin, steam-run, fetchurl }:
-let
-
-  pname = "itch-setup";
-  version = "1.26.0";
-
-  src = fetchurl {
-    url = "https://broth.itch.ovh/itch-setup/linux-amd64/${version}/unpacked/default";
-    hash = "sha256-bcJKqhgZK42Irx12BIvbTDMb/DHEOEXljetlDokF7x8=";
-    executable = true;
-  };
-
-in
-(writeShellScriptBin pname ''exec ${steam-run}/bin/steam-run ${src} "$@"'') // {
-
-  passthru = { inherit pname version src; };
-  meta = with lib; {
-    description = "An installer for the itch.io desktop app";
-    homepage = "https://github.com/itchio/itch-setup";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ pasqui23 ];
-  };
-}
diff --git a/pkgs/games/itch/butler.nix b/pkgs/games/itch/butler.nix
new file mode 100644
index 0000000000000..68f1bac49e903
--- /dev/null
+++ b/pkgs/games/itch/butler.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "butler";
+  version = "15.21.0";
+
+  src = fetchFromGitHub {
+    owner = "itchio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-vciSmXR3wI3KcnC+Uz36AgI/WUfztA05MJv1InuOjJM=";
+  };
+
+  proxyVendor = true;
+
+  vendorSha256 = "sha256-EIl0ZFDKbZopUR22hp5a2vRUu0O1h1O953NrtoNa2x8=";
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Command-line itch.io helper";
+    homepage = "https://github.com/itchio/butler";
+    license = licenses.mit;
+    maintainers = with maintainers; [ martfont ];
+  };
+}
diff --git a/pkgs/games/itch/default.nix b/pkgs/games/itch/default.nix
index 34a2775c3c80c..991623b6c9f7e 100644
--- a/pkgs/games/itch/default.nix
+++ b/pkgs/games/itch/default.nix
@@ -1,30 +1,56 @@
 { lib
 , stdenvNoCC
-, fetchurl
-, libnotify
-, nss
-, gtk3
+, fetchpatch
+, fetchzip
 , fetchFromGitHub
+, butler
+, electron_11
+, steam-run
+, makeWrapper
+, copyDesktopItems
 , makeDesktopItem
-, itch-setup
-, runtimeShell
 }:
-stdenvNoCC.mkDerivation rec{
+stdenvNoCC.mkDerivation rec {
   pname = "itch";
   version = "25.5.1";
 
-  src = fetchFromGitHub {
-    owner = "itchio";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-Pi3l3uK4kr+N3p7fGQuqckYIzycRqJHDVX00reoSbp4=";
+  src = fetchzip {
+    url = "https://broth.itch.ovh/${pname}/linux-amd64/${version}/itch.zip";
+    stripRoot = false;
+    sha256 = "sha256-ejfS+sqhacW2h8u96W4fout3V8xrBs0SrW5w/7X83m4=";
   };
 
+  patches = [
+    # Fixes crash while browsing the store.
+    (fetchpatch {
+      name = "itch.patch";
+      url = "https://aur.archlinux.org/cgit/aur.git/plain/itch.patch?h=itch-bin&id=0b181454567029141749f870880b10093216e133";
+      sha256 = "sha256-gmLL/BMondSflERm0z+DuGDP56JhDXiyxEwLUavTD8Q=";
+    })
+  ];
+
+  itch-setup = fetchzip {
+    url = "https://broth.itch.ovh/itch-setup/linux-amd64/1.26.0/itch-setup.zip";
+    stripRoot = false;
+    sha256 = "sha256-5MP6X33Jfu97o5R1n6Og64Bv4ZMxVM0A8lXeQug+bNA=";
+  };
+
+  icons = let sparseCheckout = "/release/images/itch-icons"; in
+    fetchFromGitHub {
+        owner = "itchio";
+        repo = pname;
+        rev = "v${version}";
+        hash = "sha256-1L6STTBHA9xL9IaERaH2OTvurTSng1D+P3KoW0ucEJc=";
+        inherit sparseCheckout;
+      } + sparseCheckout;
+
+  nativeBuildInputs = [ copyDesktopItems makeWrapper ];
+
   desktopItems = [
     (makeDesktopItem {
       name = pname;
-      exec = pname;
-      tryExec = "itch %U";
+      exec = "itch %U";
+      tryExec = pname;
       icon = pname;
       desktopName = pname;
       mimeTypes = [ "x-scheme-handler/itchio" "x-scheme-handler/itch" ];
@@ -33,23 +59,33 @@ stdenvNoCC.mkDerivation rec{
     })
   ];
 
-  itchBin = ''
-    #!${runtimeShell}
-    exec ${itch-setup}/bin/itch-setup --prefer-launch -- "$@"
-  '';
+  # As taken from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=itch-bin
+  installPhase = ''
+    runHook preInstall
 
-  passAsFile = [ "itchBin" ];
+    mkdir -p $out/bin $out/share/${pname}/resources/app
+    cp -r resources/app "$out/share/${pname}/resources/"
 
-  # as taken from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=itch
-  installPhase = ''
-    install -Dm0777 $itchBinPath $out/bin/itch
-    for icon in release/images/itch-icons/icon*.png
+    install -Dm644 LICENSE -t "$out/share/licenses/$pkgname/"
+    install -Dm644 LICENSES.chromium.html -t "$out/share/licenses/$pkgname/"
+
+    for icon in $icons/icon*.png
     do
-      iconsize="''${icon#release/images/itch-icons/icon}"
+      iconsize="''${icon#$icons/icon}"
       iconsize="''${iconsize%.png}"
       icondir="$out/share/icons/hicolor/''${iconsize}x''${iconsize}/apps/"
       install -Dm644 "$icon" "$icondir/itch.png"
     done
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    makeWrapper ${steam-run}/bin/steam-run $out/bin/${pname} \
+      --add-flags ${electron_11}/bin/electron \
+      --add-flags $out/share/${pname}/resources/app \
+      --set BROTH_USE_LOCAL butler,itch-setup \
+      --prefix PATH : ${butler}/bin/:${itch-setup}
   '';
 
   meta = with lib; {
@@ -57,6 +93,7 @@ stdenvNoCC.mkDerivation rec{
     homepage = "https://github.com/itchio/itch";
     license = licenses.mit;
     platforms = platforms.linux;
+    sourceProvenance = lib.sourceTypes.binaryBytecode;
     maintainers = with maintainers; [ pasqui23 ];
   };
 }
diff --git a/pkgs/games/sm64ex/default.nix b/pkgs/games/sm64ex/default.nix
index c6df2099d3ce3..a6bf7202adcf4 100644
--- a/pkgs/games/sm64ex/default.nix
+++ b/pkgs/games/sm64ex/default.nix
@@ -1,71 +1,55 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
-, python3
-, pkg-config
-, audiofile
-, SDL2
-, hexdump
-, requireFile
-, compileFlags ? [ ]
-, region ? "us"
-, baseRom ? requireFile {
-    name = "baserom.${region}.z64";
-    message = ''
-      This nix expression requires that baserom.${region}.z64 is
-      already part of the store. To get this file you can dump your Super Mario 64 cartridge's contents
-      and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
-      Note that if you are not using a US baserom, you must overwrite the "region" attribute with either "eu" or "jp".
-    '';
-    sha256 = {
-      "us" = "17ce077343c6133f8c9f2d6d6d9a4ab62c8cd2aa57c40aea1f490b4c8bb21d91";
-      "eu" = "c792e5ebcba34c8d98c0c44cf29747c8ee67e7b907fcc77887f9ff2523f80572";
-      "jp" = "9cf7a80db321b07a8d461fe536c02c87b7412433953891cdec9191bfad2db317";
-    }.${region};
-  }
+, callPackage
+, autoPatchelfHook
+, branch
 }:
 
-stdenv.mkDerivation rec {
-  pname = "sm64ex";
-  version = "unstable-2021-11-30";
-
-  src = fetchFromGitHub {
-    owner = "sm64pc";
-    repo = "sm64ex";
-    rev = "db9a6345baa5acb41f9d77c480510442cab26025";
-    sha256 = "sha256-q7JWDvNeNrDpcKVtIGqB1k7I0FveYwrfqu7ZZK7T8F8=";
+{
+  sm64ex = callPackage ./generic.nix {
+    pname = "sm64ex";
+    version = "0.pre+date=2021-11-30";
+
+    src = fetchFromGitHub {
+      owner = "sm64pc";
+      repo = "sm64ex";
+      rev = "db9a6345baa5acb41f9d77c480510442cab26025";
+      sha256 = "sha256-q7JWDvNeNrDpcKVtIGqB1k7I0FveYwrfqu7ZZK7T8F8=";
+    };
+
+    extraMeta = {
+      homepage = "https://github.com/sm64pc/sm64ex";
+      description = "Super Mario 64 port based off of decompilation";
+    };
   };
 
-  nativeBuildInputs = [ python3 pkg-config ];
-  buildInputs = [ audiofile SDL2 hexdump ];
-
-  makeFlags = [ "VERSION=${region}" ] ++ compileFlags
-    ++ lib.optionals stdenv.isDarwin [ "OSX_BUILD=1" ];
-
-  inherit baseRom;
-
-  preBuild = ''
-    patchShebangs extract_assets.py
-    cp $baseRom ./baserom.${region}.z64
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp build/${region}_pc/sm64.${region}.f3dex2e $out/bin/sm64ex
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    homepage = "https://github.com/sm64pc/sm64ex";
-    description = "Super Mario 64 port based off of decompilation";
-    longDescription = ''
-      Super Mario 64 port based off of decompilation.
-      Note that you must supply a baserom yourself to extract assets from.
-      If you are not using an US baserom, you must overwrite the "region" attribute with either "eu" or "jp".
-      If you would like to use patches sm64ex distributes as makeflags, add them to the "compileFlags" attribute.
+  sm64ex-coop = callPackage ./generic.nix {
+    pname = "sm64ex-coop";
+    version = "0.pre+date=2022-05-14";
+
+    src = fetchFromGitHub {
+      owner = "djoslin0";
+      repo = "sm64ex-coop";
+      rev = "8200b175607fe2939f067d496627c202a15fe24c";
+      sha256 = "sha256-c1ZmMBtvYYcaJ/WxkZBVvNGVCeSXfm8NKe/BiAIJtks=";
+    };
+
+    extraNativeBuildInputs = [
+      autoPatchelfHook
+    ];
+
+    postInstall = let
+      sharedLib = stdenv.hostPlatform.extensions.sharedLibrary;
+    in ''
+      mkdir -p $out/lib
+      cp $src/lib/bass/libbass{,_fx}${sharedLib} $out/lib
+      cp $src/lib/discordsdk/libdiscord_game_sdk${sharedLib} $out/lib
     '';
-    license = licenses.unfree;
-    maintainers = with maintainers; [ ivar ];
-    platforms = platforms.unix;
+
+    extraMeta = {
+      homepage = "https://github.com/djoslin0/sm64ex-coop";
+      description = "Super Mario 64 online co-op mod, forked from sm64ex";
+    };
   };
-}
+}.${branch}
diff --git a/pkgs/games/sm64ex/generic.nix b/pkgs/games/sm64ex/generic.nix
new file mode 100644
index 0000000000000..ab75ac70b9c53
--- /dev/null
+++ b/pkgs/games/sm64ex/generic.nix
@@ -0,0 +1,83 @@
+{ pname
+, version
+, src
+, extraNativeBuildInputs ? [ ]
+, extraMeta ? {}
+, compileFlags ? [ ]
+, postInstall ? ""
+, region ? "us"
+
+, lib
+, stdenv
+, fetchFromGitHub
+, python3
+, pkg-config
+, audiofile
+, SDL2
+, hexdump
+, requireFile
+, baseRom ? requireFile {
+    name = "baserom.${region}.z64";
+    message = ''
+      This nix expression requires that baserom.${region}.z64 is
+      already part of the store. To get this file you can dump your Super Mario 64 cartridge's contents
+      and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
+      Note that if you are not using a US baserom, you must overwrite the "region" attribute with either "eu" or "jp".
+    '';
+    sha256 = {
+      "us" = "17ce077343c6133f8c9f2d6d6d9a4ab62c8cd2aa57c40aea1f490b4c8bb21d91";
+      "eu" = "c792e5ebcba34c8d98c0c44cf29747c8ee67e7b907fcc77887f9ff2523f80572";
+      "jp" = "9cf7a80db321b07a8d461fe536c02c87b7412433953891cdec9191bfad2db317";
+    }.${region};
+  }
+}:
+
+stdenv.mkDerivation rec {
+  inherit pname version src postInstall;
+
+  nativeBuildInputs = [
+    python3
+    pkg-config
+    hexdump
+  ] ++ extraNativeBuildInputs;
+
+  buildInputs = [
+    audiofile
+    SDL2
+  ];
+
+  enableParallelBuilding = true;
+
+  makeFlags = [
+    "VERSION=${region}"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "OSX_BUILD=1"
+  ] ++ compileFlags;
+
+  preBuild = ''
+    patchShebangs extract_assets.py
+    ln -s ${baseRom} ./baserom.${region}.z64
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp build/${region}_pc/sm64.${region}.f3dex2e $out/bin/sm64ex
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    longDescription =
+      extraMeta.description or "Super Mario 64 port based off of decompilation" + "\n" + ''
+        Note that you must supply a baserom yourself to extract assets from.
+        If you are not using an US baserom, you must overwrite the "region" attribute with either "eu" or "jp".
+        If you would like to use patches sm64ex distributes as makeflags, add them to the "compileFlags" attribute.
+      '';
+    mainProgram = "sm64ex";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ ivar ];
+    platforms = platforms.unix;
+  } // extraMeta;
+}
diff --git a/pkgs/games/umoria/default.nix b/pkgs/games/umoria/default.nix
index 1114d47b7be56..13ec037afba78 100644
--- a/pkgs/games/umoria/default.nix
+++ b/pkgs/games/umoria/default.nix
@@ -8,7 +8,7 @@
 }:
 
 let
-  savesDir = "~/.umoria/";
+  savesDir = "~/.umoria";
 in
 gcc9Stdenv.mkDerivation rec {
   pname = "umoria";
@@ -38,24 +38,22 @@ gcc9Stdenv.mkDerivation rec {
 
     RUNDIR=\$(mktemp -d)
 
-    cleanup() {
-      rm -rf \$RUNDIR
-    }
-
-    trap cleanup EXIT
+    # Print the directory, so users have access to dumps, and let the system
+    # take care of cleaning up temp files.
+    echo "Running umoria in \$RUNDIR"
 
     cd \$RUNDIR
-    mkdir data
-
-    for i in $out/data/*; do
-      ln -s \$i "data/\$(basename \$i)"
-    done
+    ln -sn $out/data \$RUNDIR/data
 
     mkdir -p ${savesDir}
     [[ ! -f ${savesDir}/scores.dat ]] && touch ${savesDir}/scores.dat
     ln -s ${savesDir}/scores.dat scores.dat
 
-    $out/.umoria-unwrapped
+    if [ \$# -eq 0 ]; then
+       $out/.umoria-unwrapped ${savesDir}/game.sav
+    else
+       $out/.umoria-unwrapped "\$@"
+    fi
     EOF
 
     chmod +x $out/bin/umoria
@@ -74,7 +72,7 @@ gcc9Stdenv.mkDerivation rec {
     '';
     platforms = platforms.unix;
     badPlatforms = [ "aarch64-darwin" ];
-    maintainers = [ maintainers.aciceri ];
+    maintainers = with maintainers; [ aciceri kenran ];
     license = licenses.gpl3Plus;
   };
 }
diff --git a/pkgs/misc/screensavers/rss-glx/cstddef.patch b/pkgs/misc/screensavers/rss-glx/cstddef.patch
new file mode 100644
index 0000000000000..8bec510b04050
--- /dev/null
+++ b/pkgs/misc/screensavers/rss-glx/cstddef.patch
@@ -0,0 +1,12 @@
+diff --git i/src/Implicit/impSurface.h w/src/Implicit/impSurface.h
+index 41fab81..027587f 100644
+--- i/src/Implicit/impSurface.h
++++ w/src/Implicit/impSurface.h
+@@ -25,6 +25,7 @@
+ #ifdef WIN32
+ 	#include <windows.h>
+ #endif
++#include <cstddef>
+ #include <vector>
+ #include <GL/gl.h>
+ 
diff --git a/pkgs/misc/screensavers/rss-glx/default.nix b/pkgs/misc/screensavers/rss-glx/default.nix
index 981db782c7c92..a90b5d65653e0 100644
--- a/pkgs/misc/screensavers/rss-glx/default.nix
+++ b/pkgs/misc/screensavers/rss-glx/default.nix
@@ -1,4 +1,16 @@
-{lib, stdenv, fetchurl, pkg-config, xlibsWrapper, libXext, libGLU, libGL, imagemagick6, libtiff, bzip2}:
+{ lib
+, stdenv
+, fetchurl
+, autoconf
+, pkg-config
+, xlibsWrapper
+, libXext
+, libGLU
+, libGL
+, imagemagick6
+, libtiff
+, bzip2
+}:
 
 stdenv.mkDerivation rec {
   version = "0.9.1";
@@ -9,9 +21,13 @@ stdenv.mkDerivation rec {
     sha256 = "1aikafjqrfmv23jnrrm5d56dg6injh4l67zjdxzdapv9chw7g3cg";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ autoconf pkg-config ];
   buildInputs = [ libGLU libGL xlibsWrapper imagemagick6 libtiff bzip2 ];
 
+  patches = [
+    ./cstddef.patch
+  ];
+
   NIX_CFLAGS_COMPILE = "-I${imagemagick6.dev}/include/ImageMagick";
   NIX_LDFLAGS= "-rpath ${libXext}/lib";
 
diff --git a/pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix b/pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix
index e614be978c067..e8c6a2ae566fb 100644
--- a/pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix
+++ b/pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alsa-utils";
-  version = "1.2.6";
+  version = "1.2.7";
 
   src = fetchurl {
     url = "mirror://alsa/utils/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-ah79ih8dnTjkiWM+rsH/+lwxVmOzFsq4BL5IaIfmFF0=";
+    sha256 = "sha256-6Qa/JAT/BMRI6qPSJtKDpiuaKD8S5P2EV/skusJ05ng=";
   };
 
   nativeBuildInputs = [ gettext makeWrapper ];
diff --git a/pkgs/os-specific/linux/ax99100/default.nix b/pkgs/os-specific/linux/ax99100/default.nix
new file mode 100644
index 0000000000000..9167b4e5f89db
--- /dev/null
+++ b/pkgs/os-specific/linux/ax99100/default.nix
@@ -0,0 +1,29 @@
+{ kernel, stdenv, kmod, lib, fetchzip }:
+stdenv.mkDerivation
+{
+  pname = "ax99100";
+  version = "1.8.0";
+  nativeBuildInputs = [ kmod ] ++ kernel.moduleBuildDependencies;
+  src = fetchzip {
+    url = "https://www.asix.com.tw/en/support/download/file/1229";
+    sha256 = "1rbp1m01qr6b3nbr72vpbw89pjh8mddc60im78z2yjd951xkbcjh";
+    extension = "tar.bz2";
+  };
+
+  makeFlags = [ "KDIR='${kernel.dev}/lib/modules/${kernel.modDirVersion}/build'" ];
+
+  installPhase = ''
+    mkdir -p $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/tty/serial
+    cp ax99100.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/tty/serial
+  '';
+
+  meta = {
+    description = "ASIX AX99100 Serial and Parralel Port driver";
+    homepage = "https://www.asix.com.tw/en/product/Interface/PCIe_Bridge/AX99100";
+    # According to the source code in the tarball, the license is gpl2.
+    license = lib.licenses.gpl2;
+    platforms = lib.platforms.linux;
+    # currently, the build fails with kernels newer than 5.17
+    broken = lib.versionAtLeast kernel.version "5.18.0";
+  };
+}
diff --git a/pkgs/os-specific/linux/bcc/default.nix b/pkgs/os-specific/linux/bcc/default.nix
index d6e4b059088dc..ab3e2232852bb 100644
--- a/pkgs/os-specific/linux/bcc/default.nix
+++ b/pkgs/os-specific/linux/bcc/default.nix
@@ -77,6 +77,8 @@ python.pkgs.buildPythonApplication rec {
     wrapPythonProgramsIn "$out/share/bcc/tools" "$out $pythonPath"
   '';
 
+  outputs = [ "out" "man" ];
+
   passthru.tests = {
     bpf = nixosTests.bpf;
   };
diff --git a/pkgs/os-specific/linux/bpftrace/default.nix b/pkgs/os-specific/linux/bpftrace/default.nix
index 0dd477ee31d29..cbf5eb4a6dd9f 100644
--- a/pkgs/os-specific/linux/bpftrace/default.nix
+++ b/pkgs/os-specific/linux/bpftrace/default.nix
@@ -62,8 +62,18 @@ stdenv.mkDerivation rec {
 
   # nuke the example/reference output .txt files, for the included tools,
   # stuffed inside $out. we don't need them at all.
+  # (see "Allow skipping examples" for a potential option
+  #  https://github.com/iovisor/bpftrace/pull/2256)
+  #
+  # Pull BPF scripts into $PATH (next to their bcc program equivalents), but do
+  # not move them to keep `${pkgs.bpftrace}/share/bpftrace/tools/...` working.
+  # (remove `chmod` once a new release "Add executable permission to tools"
+  #  https://github.com/iovisor/bpftrace/commit/77e524e6d276216ed6a6e1984cf204418db07c78)
   postInstall = ''
     rm -rf $out/share/bpftrace/tools/doc
+
+    ln -s $out/share/bpftrace/tools/*.bt $out/bin/
+    chmod +x $out/bin/*.bt
   '';
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index d1ad7f5b74a18..fb8c448f7fb8f 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -2,71 +2,61 @@
     "4.14": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-4.14.283-hardened1.patch",
-            "sha256": "07827a7wigdp2wml770gc0mmzmcmqf9mnry9xbsxpkgbs91ng6lp",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.283-hardened1/linux-hardened-4.14.283-hardened1.patch"
+            "name": "linux-hardened-4.14.284-hardened1.patch",
+            "sha256": "0hj6hmkv3ikgps0jrwl5jgg9pdw6mxi3iblr20r4yp8anxcrvaws",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.284-hardened1/linux-hardened-4.14.284-hardened1.patch"
         },
-        "sha256": "191gybhnck4mh9yjzwgv1crrbxjc90p12bcif721rbs6xzszmxzh",
-        "version": "4.14.283"
+        "sha256": "1f7bidisa6b4ff0mgn66h1nmf94j5mcx4wnkwnd9f49im6hcqllq",
+        "version": "4.14.284"
     },
     "4.19": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-4.19.247-hardened1.patch",
-            "sha256": "1m7289bljbki2wiy6458v13l8wvslqgqhajcp735j50psi6jr6dp",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.247-hardened1/linux-hardened-4.19.247-hardened1.patch"
+            "name": "linux-hardened-4.19.248-hardened1.patch",
+            "sha256": "09bnw0f8rd5hf4k4w4n4sb3ggsw48nkxsrnxd9b8vn6jyqhv9n3s",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.248-hardened1/linux-hardened-4.19.248-hardened1.patch"
         },
-        "sha256": "136gmsmvgb2nid4by2ld003w06lsr7hgn9ajx0wfziag7pfnjsv2",
-        "version": "4.19.247"
+        "sha256": "0cdflfk6l13slw1cawpkhpjzbbnffcbyffrh29p9jg73pdqx23y4",
+        "version": "4.19.248"
     },
     "5.10": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.10.122-hardened1.patch",
-            "sha256": "1mb10f3kfncgpwlygvnlvjy3cjlgjzbc5lp73wgjz1nzqjfdjrlp",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.122-hardened1/linux-hardened-5.10.122-hardened1.patch"
+            "name": "linux-hardened-5.10.124-hardened1.patch",
+            "sha256": "1fjwi5al5i0qb7a7viljb755ylqj3m5qp10835a3q91ad6zkjjnf",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.124-hardened1/linux-hardened-5.10.124-hardened1.patch"
         },
-        "sha256": "0h0gfi3p1dd4p8xxklrl8sc3rv4xd08q7nv0i4m166w8188v62wj",
-        "version": "5.10.122"
+        "sha256": "0yz3yw02b6b1sq800r46x5b3dagswb6z4clrfq485c4669sb2ipc",
+        "version": "5.10.124"
     },
     "5.15": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.15.47-hardened1.patch",
-            "sha256": "0bpzk0l4kcfhqinh3rpl6wv70lhw9c304zgw2qbw0fa76mqfwgs8",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.47-hardened1/linux-hardened-5.15.47-hardened1.patch"
+            "name": "linux-hardened-5.15.49-hardened1.patch",
+            "sha256": "0p14bhqk0a4xzr11cc6gqc0ncc1a3cmvwyvisbsp7b74ax9w5qbm",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.49-hardened1/linux-hardened-5.15.49-hardened1.patch"
         },
-        "sha256": "1700js21yimx8rz4bsglszry564l2ycmmcr36rdqspzbmlx5w8wb",
-        "version": "5.15.47"
-    },
-    "5.17": {
-        "patch": {
-            "extra": "-hardened1",
-            "name": "linux-hardened-5.17.15-hardened1.patch",
-            "sha256": "053zgg464rb8ca92hkzxqbffapmj0zs296af354b7jkgfpb5xzr1",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.17.15-hardened1/linux-hardened-5.17.15-hardened1.patch"
-        },
-        "sha256": "0a5n1lb43nhnhwjwclkk3dqp2nxsx5ny7zfl8idvzshf94m9472a",
-        "version": "5.17.15"
+        "sha256": "1p2r02h2z0j34hpkp3kr4741pr15ii72b94zllravx27pa9phj9j",
+        "version": "5.15.49"
     },
     "5.18": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.18.3-hardened1.patch",
-            "sha256": "1kfnknpw2g39j7gqy6mqjmkaxkmdigx617rz2vpqvjxddfv59764",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.18.3-hardened1/linux-hardened-5.18.3-hardened1.patch"
+            "name": "linux-hardened-5.18.6-hardened1.patch",
+            "sha256": "0y0s50z4qrkcd0s7rlsk8nw1xibwy2i5vigm6526ch77d61g231m",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.18.6-hardened1/linux-hardened-5.18.6-hardened1.patch"
         },
-        "sha256": "1sngy576db1zl2284kd0j8ds4biln0q98wnywirzsg3c0w2v8367",
-        "version": "5.18.3"
+        "sha256": "0y1l2cgn8rak1050fn65a9xnapqyfq2dv8bijl150y44g6g2l72f",
+        "version": "5.18.6"
     },
     "5.4": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.4.198-hardened1.patch",
-            "sha256": "0srx8kfapa8ahbqajwd8dir49l4rs0ijz3k3nrgvb2jjlrg1m4dd",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.198-hardened1/linux-hardened-5.4.198-hardened1.patch"
+            "name": "linux-hardened-5.4.200-hardened1.patch",
+            "sha256": "1mpcvgri079v8js8y2angwmksyk07vhyi2b5b24bxxdbm1s5a58s",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.200-hardened1/linux-hardened-5.4.200-hardened1.patch"
         },
-        "sha256": "0wvscr5wia2xdiqfxxdwl8kxf1s085qdj5h4423mraj7dh6l0ihh",
-        "version": "5.4.198"
+        "sha256": "1f15al9g4cd17fm43im5rqqrbz1cqhz2hq5ycpqvwa02pydprsga",
+        "version": "5.4.200"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 459816f2aa2c9..a18ac3ac5edb5 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "4.14.283";
+  version = "4.14.284";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "191gybhnck4mh9yjzwgv1crrbxjc90p12bcif721rbs6xzszmxzh";
+    sha256 = "1f7bidisa6b4ff0mgn66h1nmf94j5mcx4wnkwnd9f49im6hcqllq";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index f978b45c221f6..4d322c8ed6d39 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "4.19.247";
+  version = "4.19.248";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "136gmsmvgb2nid4by2ld003w06lsr7hgn9ajx0wfziag7pfnjsv2";
+    sha256 = "0cdflfk6l13slw1cawpkhpjzbbnffcbyffrh29p9jg73pdqx23y4";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index ee4ab69b9f757..3c6aed36f3981 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,12 +1,12 @@
 { buildPackages, fetchurl, perl, buildLinux, nixosTests, stdenv, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.318";
+  version = "4.9.319";
   extraMeta.branch = "4.9";
   extraMeta.broken = stdenv.isAarch64;
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "09czsc0ynyw068yczs9qx4cliqmrh5hvz93c77lhh014wn02pba4";
+    sha256 = "11242bn95k51knm9da7xk7r10vk7iji06wix1cq4g5nzldrfp9sp";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.10.nix b/pkgs/os-specific/linux/kernel/linux-5.10.nix
index 61d3b9e6eb334..9f4dcb001af5d 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.10.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.10.122";
+  version = "5.10.124";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "0h0gfi3p1dd4p8xxklrl8sc3rv4xd08q7nv0i4m166w8188v62wj";
+    sha256 = "0yz3yw02b6b1sq800r46x5b3dagswb6z4clrfq485c4669sb2ipc";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.15.nix b/pkgs/os-specific/linux/kernel/linux-5.15.nix
index 225fe27a15f26..2b96065d84fe0 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.15.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.15.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.15.47";
+  version = "5.15.49";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1700js21yimx8rz4bsglszry564l2ycmmcr36rdqspzbmlx5w8wb";
+    sha256 = "1p2r02h2z0j34hpkp3kr4741pr15ii72b94zllravx27pa9phj9j";
   };
 } // (args.argsOverride or { }))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.17.nix b/pkgs/os-specific/linux/kernel/linux-5.17.nix
deleted file mode 100644
index 6e4c5f6de14a1..0000000000000
--- a/pkgs/os-specific/linux/kernel/linux-5.17.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
-
-with lib;
-
-buildLinux (args // rec {
-  version = "5.17.15";
-
-  # modDirVersion needs to be x.y.z, will automatically add .0 if needed
-  modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
-
-  # branchVersion needs to be x.y
-  extraMeta.branch = versions.majorMinor version;
-
-  src = fetchurl {
-    url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "0a5n1lb43nhnhwjwclkk3dqp2nxsx5ny7zfl8idvzshf94m9472a";
-  };
-} // (args.argsOverride or { }))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.18.nix b/pkgs/os-specific/linux/kernel/linux-5.18.nix
index 58b87840c0075..a5b50a6269e4b 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.18.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.18.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.18.4";
+  version = "5.18.6";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1pcjjiwal8jr07n5bzg6clcmm20gvmvqgxl8k46npibrdx3r6wab";
+    sha256 = "0y1l2cgn8rak1050fn65a9xnapqyfq2dv8bijl150y44g6g2l72f";
   };
 } // (args.argsOverride or { }))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix
index dbc350e45559d..2f7a5f372cfe1 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.4.198";
+  version = "5.4.200";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "0wvscr5wia2xdiqfxxdwl8kxf1s085qdj5h4423mraj7dh6l0ihh";
+    sha256 = "1f15al9g4cd17fm43im5rqqrbz1cqhz2hq5ycpqvwa02pydprsga";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix
index 159584f607ff5..8b4382f80a0ba 100644
--- a/pkgs/os-specific/linux/kernel/linux-libre.nix
+++ b/pkgs/os-specific/linux/kernel/linux-libre.nix
@@ -1,8 +1,8 @@
 { stdenv, lib, fetchsvn, linux
 , scripts ? fetchsvn {
     url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
-    rev = "18777";
-    sha256 = "0ycg799pdi3rarkdgrrxcfjl15n8i24d9zc54xhg79wpgxcv39n3";
+    rev = "18798";
+    sha256 = "04mxzf8k3g65yw73da9fgk27hraf69239m5757fsr5a6pj88z6lb";
   }
 , ...
 }:
diff --git a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
index 51f47cea2c45f..a1748156d098a 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
@@ -17,6 +17,7 @@
     extraMeta = {
       branch = "master";
       maintainers = with lib.maintainers; [ davidak Madouura ];
+      broken = true;
     };
   } // argsOverride;
 
diff --git a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
index 795bedb99d4d1..95004f4479418 100755
--- a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
+++ b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
@@ -49,6 +49,8 @@ while [ "$#" -gt 0 ]; do
         ;;
       switch|boot|test|build|edit|dry-build|dry-run|dry-activate|build-vm|build-vm-with-bootloader)
         if [ "$i" = dry-run ]; then i=dry-build; fi
+        # exactly one action mandatory, bail out if multiple are given
+        if [ -n "$action" ]; then showSyntax; fi
         action="$i"
         ;;
       --install-grub)
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index 5a5fd2d19a8a2..eec2d1ad04abc 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -16,7 +16,7 @@
 , enablePython ? true
 
 # for determining the latest compatible linuxPackages
-, linuxPackages_5_17 ? pkgs.linuxKernel.packages.linux_5_17
+, linuxPackages_5_18 ? pkgs.linuxKernel.packages.linux_5_18
 }:
 
 let
@@ -216,28 +216,28 @@ in {
   # to be adapted
   zfsStable = common {
     # check the release notes for compatible kernels
-    kernelCompatible = kernel.kernelOlder "5.18";
-    latestCompatibleLinuxPackages = linuxPackages_5_17;
+    kernelCompatible = kernel.kernelOlder "5.19";
+    latestCompatibleLinuxPackages = linuxPackages_5_18;
 
     # this package should point to the latest release.
-    version = "2.1.4";
+    version = "2.1.5";
 
-    sha256 = "sha256-pHz1N2j+d9p1xleEBwwrmK9mN5gEyM69Suy0dsrkZT4=";
+    sha256 = "sha256-a9rmuPO8R8UfxdHvwjfFuYRGn97a1MPmLZRvr3l0swE=";
   };
 
   zfsUnstable = common {
     # check the release notes for compatible kernels
-    kernelCompatible = kernel.kernelOlder "5.18";
-    latestCompatibleLinuxPackages = linuxPackages_5_17;
+    kernelCompatible = kernel.kernelOlder "5.19";
+    latestCompatibleLinuxPackages = linuxPackages_5_18;
 
     # this package should point to a version / git revision compatible with the latest kernel release
     # IMPORTANT: Always use a tagged release candidate or commits from the
     # zfs-<version>-staging branch, because this is tested by the OpenZFS
     # maintainers.
-    version = "2.1.4";
+    version = "2.1.5";
     # rev = "0000000000000000000000000000000000000000";
 
-    sha256 = "sha256-pHz1N2j+d9p1xleEBwwrmK9mN5gEyM69Suy0dsrkZT4=";
+    sha256 = "sha256-a9rmuPO8R8UfxdHvwjfFuYRGn97a1MPmLZRvr3l0swE=";
 
     isUnstable = true;
   };
diff --git a/pkgs/servers/cayley/default.nix b/pkgs/servers/cayley/default.nix
index 97aac4272cead..ec94b19ae49cb 100644
--- a/pkgs/servers/cayley/default.nix
+++ b/pkgs/servers/cayley/default.nix
@@ -1,29 +1,39 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "cayley";
-  version = "0.7.5";
-
-  goPackagePath = "github.com/cayleygraph/cayley";
+  version = "0.7.7";
+  rev = "dcf764fef381f19ee49fad186b4e00024709f148";
 
   src = fetchFromGitHub {
     owner = "cayleygraph";
     repo = "cayley";
     rev = "v${version}";
-    sha256 = "1zfxa9z6spi6xw028mvbc7c3g517gn82g77ywr6picl47fr2blnd";
+    sha256 = "sha256-jIX0v6ujiQvEAb/mKkrpNgsY0YLkJYHy2sUfQnooE48=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-SSjHGJoW3I7r8emh3IwmiZQIVzdilAsA2ULdAqld2fA=";
+
+  subPackages = [ "cmd/cayley" ];
 
-  ldflags = [
-    "-X=main.Version=${version}"
+  ldflags = let basename = "github.com/cayleygraph/cayley/version"; in [
+    "-s"
+    "-w"
+    "-X ${basename}.Version=${src.rev}"
+    "-X ${basename}.GitHash=${rev}"
   ];
 
-  meta = {
-    homepage = "https://github.com/cayleygraph/cayley";
-    description = "A graph database inspired by Freebase and Knowledge Graph";
-    maintainers = with lib.maintainers; [ sigma ];
-    license = lib.licenses.asl20;
-    platforms = lib.platforms.unix;
+  meta = with lib; {
+    description = "Graph database designed for ease of use and storing complex data";
+    longDescription = ''
+      Cayley is an open-source database for Linked Data. It is inspired by the
+      graph database behind Google's Knowledge Graph (formerly Freebase).
+    '';
+    homepage = "https://cayley.io/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ sigma ];
   };
 }
diff --git a/pkgs/servers/cayley/deps.nix b/pkgs/servers/cayley/deps.nix
deleted file mode 100644
index d4ec2670365b0..0000000000000
--- a/pkgs/servers/cayley/deps.nix
+++ /dev/null
@@ -1,471 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "github.com/badgerodon/peg";
-    fetch = {
-      type = "git";
-      url = "https://github.com/badgerodon/peg";
-      rev =  "9e5f7f4d07ca576562618c23e8abadda278b684f";
-      sha256 = "12vd7hzdgknn8byz77lmvcrz9m5lvmffdnz2wwk83304przkra11";
-    };
-  }
-  {
-    goPackagePath  = "github.com/boltdb/bolt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/boltdb/bolt";
-      rev =  "e9cf4fae01b5a8ff89d0ec6b32f0d9c9f79aefdd";
-      sha256 = "1sjxzz88bw0y37mk3xvwb9j5v7bz3r80rwg79jml6liqk1arnl99";
-    };
-  }
-  {
-    goPackagePath  = "github.com/cznic/mathutil";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cznic/mathutil";
-      rev =  "1447ad269d64ca91aa8d7079baa40b6fc8b965e7";
-      sha256 = "1r9c20k2h65g38yxf3vd46nbayx1cz5w4q4yr1xfggcs0mmrb87i";
-    };
-  }
-  {
-    goPackagePath  = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev =  "346938d642f2ec3594ed81d874461961cd0faa76";
-      sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
-    };
-  }
-  {
-    goPackagePath  = "github.com/dennwc/graphql";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dennwc/graphql";
-      rev =  "12cfed44bc5de083875506a36d30f9798f9bca47";
-      sha256 = "1rfsxjjsik5618y2741lcyw56a4d4l6r04sbj1igrvcck9bz0k6a";
-    };
-  }
-  {
-    goPackagePath  = "github.com/dlclark/regexp2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dlclark/regexp2";
-      rev =  "902a5ce7a7812e2ba9f73b9d96c09d5136df39cd";
-      sha256 = "0ypmdayq50ilbmqa1wjq5nvs9igbxkzlc8phlknw244935wz3v15";
-    };
-  }
-  {
-    goPackagePath  = "github.com/dop251/goja";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dop251/goja";
-      rev =  "ef8c030e3c96c5054c2f10ef925e7041e0583c07";
-      sha256 = "15419apwdpbl0lgnl9xj9wyl05vpiz6jqgj8zbcyxhzy0wycj445";
-    };
-  }
-  {
-    goPackagePath  = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev =  "4da3e2cfbabc9f751898f250b49f2439785783a1";
-      sha256 = "1y2l9jaf99j6gidcfdgq3hifxyiwv4f7awpll80p170ixdbqxvl3";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-kivik/couchdb";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-kivik/couchdb";
-      rev =  "74d231fe43245e77840213724894264f0f61ffd3";
-      sha256 = "0ga6d6y44wg8ync73wcyc7q7r3sr5vdj5qkn3yqn9yn4p0k2w89i";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-kivik/kivik";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-kivik/kivik";
-      rev =  "2a1f6b9dd407886bc59c0c28faed28fbce3b0ece";
-      sha256 = "0fpa62mriyiyl5dh5kg8858bqrwiwscpbkg9np69lk302znxalij";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-kivik/pouchdb";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-kivik/pouchdb";
-      rev =  "bbd1ab79be17c809842e193b1f84e924b6b599ba";
-      sha256 = "15kv6i94j73c8zzy5hnmf051d3i65wxc07hvass9lc4g5ad7f9vf";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-sourcemap/sourcemap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-sourcemap/sourcemap";
-      rev =  "b019cc30c1eaa584753491b0d8f8c1534bf1eb44";
-      sha256 = "03k44fdrnknba05f7cd58lq4rzk7jdpiqksmc0wxrdzwschrbgw8";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-sql-driver/mysql";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-sql-driver/mysql";
-      rev =  "147bd02c2c516cf9a8878cb75898ee8a9eea0228";
-      sha256 = "0s75nilz1jx0vgc69jgmys95lsq9j9nfdjcc8inc8mhzh3qpjb74";
-    };
-  }
-  {
-    goPackagePath  = "github.com/gogo/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gogo/protobuf";
-      rev =  "30433562cfbf487fe1df7cd26c7bab168d2f14d0";
-      sha256 = "155iv0jqgh0d8cykghw3ifwk8pjyyq1w4gr9khhf78n01k6180hj";
-    };
-  }
-  {
-    goPackagePath  = "github.com/golang/glog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/glog";
-      rev =  "23def4e6c14b4da8ac2ed8007337bc5eb5007998";
-      sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
-    };
-  }
-  {
-    goPackagePath  = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev =  "18c9bb3261723cd5401db4d0c9fbc5c3b6c70fe8";
-      sha256 = "0fbf8ymrcb23imkhlrlyq6i0x5w8gxzilljjsgd4hnvjgpgp3r4v";
-    };
-  }
-  {
-    goPackagePath  = "github.com/golang/snappy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/snappy";
-      rev =  "553a641470496b2327abcac10b36396bd98e45c9";
-      sha256 = "0kssxnih1l722hx9219c7javganjqkqhvl3i0hp0hif6xm6chvqk";
-    };
-  }
-  {
-    goPackagePath  = "github.com/gopherjs/gopherjs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gopherjs/gopherjs";
-      rev =  "558a9132744c22476178edf3126fd35a9754f565";
-      sha256 = "13mn0li83amgm4fgsm6l3shs2r4kjddr10xn0ydnr9ymg1y887vi";
-    };
-  }
-  {
-    goPackagePath  = "github.com/gopherjs/jsbuiltin";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gopherjs/jsbuiltin";
-      rev =  "67703bfb044e3192fbcab025c3aeaeedafad1f2f";
-      sha256 = "1k0df0z9fiyzbr1g1736zdp238j9z82q3gwkk060h2n84rg4c7lh";
-    };
-  }
-  {
-    goPackagePath  = "github.com/hashicorp/hcl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/hcl";
-      rev =  "7fa7fff964d035e8a162cce3a164b3ad02ad651b";
-      sha256 = "0p3dyhpc0ajakcww3a45n750z2030xqhlswzf51d5rzid27681wp";
-    };
-  }
-  {
-    goPackagePath  = "github.com/imdario/mergo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/imdario/mergo";
-      rev =  "0d4b488675fdec1dde48751b05ab530cf0b630e1";
-      sha256 = "071rram7aib70f3gk4ansgwns82w9i6m1px8mgc8x4rs9ana4qhf";
-    };
-  }
-  {
-    goPackagePath  = "github.com/inconshreveable/mousetrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/inconshreveable/mousetrap";
-      rev =  "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75";
-      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
-    };
-  }
-  {
-    goPackagePath  = "github.com/jackc/pgx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jackc/pgx";
-      rev =  "606697ffdfe6603013560dbc171656de57b4f542";
-      sha256 = "0818yb2vjjwwmscdab7wnxbyiabvy544icdczdlr5kswbqq5h25m";
-    };
-  }
-  {
-    goPackagePath  = "github.com/julienschmidt/httprouter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/julienschmidt/httprouter";
-      rev =  "6f3f3919c8781ce5c0509c83fffc887a7830c938";
-      sha256 = "1hmqdpv2zywwglmnjnxfn27mkac81n3nqs1wandlpybsww4vn4kx";
-    };
-  }
-  {
-    goPackagePath  = "github.com/lib/pq";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lib/pq";
-      rev =  "2704adc878c21e1329f46f6e56a1c387d788ff94";
-      sha256 = "160fmvi7bczxw3i3h5s821hv029ph5ld8x3c36b4cz2sr30wp110";
-    };
-  }
-  {
-    goPackagePath  = "github.com/linkeddata/gojsonld";
-    fetch = {
-      type = "git";
-      url = "https://github.com/linkeddata/gojsonld";
-      rev =  "4f5db6791326b8962ede4edbba693edcf20fd1ad";
-      sha256 = "11g1kygkn55whaf49q2bzxk0w8b3nhdhiaixsj2ik65j8bl9g2cq";
-    };
-  }
-  {
-    goPackagePath  = "github.com/magiconair/properties";
-    fetch = {
-      type = "git";
-      url = "https://github.com/magiconair/properties";
-      rev =  "51463bfca2576e06c62a8504b5c0f06d61312647";
-      sha256 = "0d7hr78y8gg2mrm5z4jjgm2w3awkznz383b7wvyzk3l33jw6i288";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mitchellh/mapstructure";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/mapstructure";
-      rev =  "cc8532a8e9a55ea36402aa21efdf403a60d34096";
-      sha256 = "0705c0hq7b993sabnjy65yymvpy9w1j84bg9bjczh5607z16nw86";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pborman/uuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pborman/uuid";
-      rev =  "1b00554d822231195d1babd97ff4a781231955c9";
-      sha256 = "0rjkcf85sagdwzsycj1bbjyx5bgmrc1i8l5qf1f44z24rhbbkaan";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pelletier/go-buffruneio";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pelletier/go-buffruneio";
-      rev =  "c37440a7cf42ac63b919c752ca73a85067e05992";
-      sha256 = "0l83p1gg6g5mmhmxjisrhfimhbm71lwn1r2w7d6siwwqm9q08sd2";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pelletier/go-toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pelletier/go-toml";
-      rev =  "fe206efb84b2bc8e8cfafe6b4c1826622be969e3";
-      sha256 = "1dlabfpnlzvwf4i86idy8ilqpjsl8yqfgdv0nv5cccm8gkcans5w";
-    };
-  }
-  {
-    goPackagePath  = "github.com/peterh/liner";
-    fetch = {
-      type = "git";
-      url = "https://github.com/peterh/liner";
-      rev =  "88609521dc4b6c858fd4c98b628147da928ce4ac";
-      sha256 = "0jacb2fqgiccb98v1875j5xvj01l1z2laga1kgr8lhd0nl22r96k";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev =  "e881fd58d78e04cf6d0de1217f8707c8cc2249bc";
-      sha256 = "0vfhj598jp6dzy4pbyjdrqxzb5kppw8ggvfh78g80nz11r34xnzs";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev =  "d8ed2627bdf02c080bf22230dbb337003b7aba2d";
-      sha256 = "0w1jp4k4zbnrxh3jvh8fgbjgqpf2hg31pbj8fb32kh26px9ldpbs";
-    };
-  }
-  {
-    goPackagePath  = "github.com/russross/blackfriday";
-    fetch = {
-      type = "git";
-      url = "https://github.com/russross/blackfriday";
-      rev =  "b253417e1cb644d645a0a3bb1fa5034c8030127c";
-      sha256 = "1knj8vabymhmkg12cj3hnpqf3b74wwrvqib12yczcvpi52xaqi20";
-    };
-  }
-  {
-    goPackagePath  = "github.com/shurcooL/sanitized_anchor_name";
-    fetch = {
-      type = "git";
-      url = "https://github.com/shurcooL/sanitized_anchor_name";
-      rev =  "79c90efaf01eddc01945af5bc1797859189b830b";
-      sha256 = "1dj8v91gv1ssw2j88gjzr1hw0n63qqxykjzfbvspyi529xn3ji3y";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/afero";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/afero";
-      rev =  "9be650865eab0c12963d8753212f4f9c66cdcf12";
-      sha256 = "12dhh6d07304lsjv7c4p95hkip0hnshqhwivdw39pbypgg0p8y34";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/cast";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cast";
-      rev =  "acbeb36b902d72a7a4c18e8f3241075e7ab763e4";
-      sha256 = "0w25s6gjbbwv47b9208hysyqqphd6pib3d2phg24mjy4wigkm050";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/cobra";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cobra";
-      rev =  "7b1b6e8dc027253d45fc029bc269d1c019f83a34";
-      sha256 = "1nhnlpmbqq1ggix7jaxmzr8awk1zrrzag4vzq1p5q5l25d6kih35";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/jwalterweatherman";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/jwalterweatherman";
-      rev =  "fa7ca7e836cf3a8bb4ebf799f472c12d7e903d66";
-      sha256 = "0404b7bzx7cq1b2bgdb3gs7gjzm4vvg1hl2y9mcm4m6vz56vbcz8";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev =  "f1d95a35e132e8a1868023a08932b14f0b8b8fcb";
-      sha256 = "0fwvkyq36jvy2gid81031ll7qaj8jxr5g36fff7hhkp3hh4kz6zh";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/viper";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/viper";
-      rev =  "0967fc9aceab2ce9da34061253ac10fb99bba5b2";
-      sha256 = "016syis0rvccp2indjqi1vnz3wk7c9dhkvkgam0j79sb019kl80f";
-    };
-  }
-  {
-    goPackagePath  = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev =  "87b1dfb5b2fa649f52695dd9eae19abe404a4308";
-      sha256 = "1iyfxs3nxdn1fyfqv3gggxcxab66a3m6cmjkhqhcapxm3qvgbrlc";
-    };
-  }
-  {
-    goPackagePath  = "github.com/syndtr/goleveldb";
-    fetch = {
-      type = "git";
-      url = "https://github.com/syndtr/goleveldb";
-      rev =  "b89cc31ef7977104127d34c1bd31ebd1a9db2199";
-      sha256 = "0pbmssaw7fsgspv0jr3hsd1208qqxcvy4faks9hypqgl5gwday4p";
-    };
-  }
-  {
-    goPackagePath  = "github.com/tylertreat/BoomFilters";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tylertreat/BoomFilters";
-      rev =  "37e169ae37ed529d93ecacb509c0dc80078478fc";
-      sha256 = "15wwdsxxvkgxbxv3v0ywnwjwndpmps49n3a49z7bzjl7r2nsm7qv";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev =  "da118f7b8e5954f39d0d2130ab35d4bf0e3cb344";
-      sha256 = "09xpndqc6a2r0lw42cyl1pkhfddl01sd9c3qqjjwp3vmxm004whv";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev =  "9ccfe848b9db8435a24c424abbc07a921adf1df5";
-      sha256 = "0wn3p7nrf9lx5svnya5mxy5b8cxqs2rp8lxc477szna313m1jhs4";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev =  "470f45bf29f4147d6fbd7dfd0a02a848e49f5bf4";
-      sha256 = "1yzh1qxwd0xkh0k04hwp7yii21i26b4ngxvm1g98qlji1g2wbjbc";
-    };
-  }
-  {
-    goPackagePath  = "google.golang.org/appengine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/appengine";
-      rev =  "170382fa85b10b94728989dfcf6cc818b335c952";
-      sha256 = "0dqx24qc7h53p16xnkwn2jpk3wjjlvv48akqk74vx31pr2nn0g56";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/mgo.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-mgo/mgo";
-      rev =  "3f83fa5005286a7fe593b055f0d7771a7dce4655";
-      sha256 = "19vwb6qlcyh3nh6pkk0bynwmr5cmi6mm4hdz01lwb4ybnkzxryc7";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/olivere/elastic.v5";
-    fetch = {
-      type = "git";
-      url = "https://github.com/olivere/elastic";
-      rev =  "79ff368708b3a2a9da641dc831d95fd0782bf4ef";
-      sha256 = "1lq8nhjnkf246nl5h40ldh1qz2yx73yaqfmsh9ddvkwn4173c7jj";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-yaml/yaml";
-      rev =  "cd8b52f8269e0feb286dfeef29f8fe4d5b397e0b";
-      sha256 = "1hj2ag9knxflpjibck0n90jrhsrqz7qvad4qnif7jddyapi9bqzl";
-    };
-  }
-]
diff --git a/pkgs/servers/confluencepot/default.nix b/pkgs/servers/confluencepot/default.nix
new file mode 100644
index 0000000000000..242e2b93d7ad9
--- /dev/null
+++ b/pkgs/servers/confluencepot/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "confluencepot";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "SIFalcon";
+    repo = "confluencePot";
+    rev = "v${version}";
+    hash = "sha256-jIbL6prOUII8o9FghIYa80BytJ9SSuyj/TZmAxwAbJk=";
+  };
+
+  vendorSha256 = "sha256-nzPHx+c369T4h9KETqMurxZK3LsJAhwBaunkcWIW3Ps=";
+
+  postPatch = ''
+    substituteInPlace confluencePot.go \
+      --replace "confluence.html" "$out/share/confluence.html"
+  '';
+
+  postInstall = lib.optionalString (!stdenv.isDarwin) ''
+    mv $out/bin/confluencePot $out/bin/${pname}
+  '';
+
+  preFixup = ''
+    # Install HTML file
+    install -vD confluence.html -t $out/share
+  '';
+
+  meta = with lib; {
+    description = "Honeypot for the Atlassian Confluence OGNL injection vulnerability";
+    homepage = "https://github.com/SIFalcon/confluencePot";
+    longDescription = ''
+      ConfluencePot is a simple honeypot for the Atlassian Confluence unauthenticated
+      and remote OGNL injection vulnerability (CVE-2022-26134).
+    '';
+    license = with licenses; [ agpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/servers/dns/coredns/default.nix b/pkgs/servers/dns/coredns/default.nix
index c93d1235ea821..54965fd998aa6 100644
--- a/pkgs/servers/dns/coredns/default.nix
+++ b/pkgs/servers/dns/coredns/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "coredns";
-  version = "1.9.2";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner = "coredns";
     repo = "coredns";
     rev = "v${version}";
-    sha256 = "sha256-6ABcXRuPEkzhjVZcltPoWGAc+fs6FwmgQCMRuLmhXxo=";
+    sha256 = "sha256-9lRZjY85SD1HXAWVCp8fpzV0d1Y+LbodT3Sp21CNp+k=";
   };
 
-  vendorSha256 = "sha256-0S77748voNlIuY6yUAa669pB09h35THojCyQKUm5VFc=";
+  vendorSha256 = "sha256-gNa+dm7n71IiSCztTO5VZ5FnGTGYfNXo/HMichNzek0=";
 
   postPatch = ''
     substituteInPlace test/file_cname_proxy_test.go \
diff --git a/pkgs/servers/geospatial/geoserver/default.nix b/pkgs/servers/geospatial/geoserver/default.nix
new file mode 100644
index 0000000000000..0fc184e063e54
--- /dev/null
+++ b/pkgs/servers/geospatial/geoserver/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchurl, unzip, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "geoserver";
+  version = "2.21.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/geoserver/GeoServer/${version}/geoserver-${version}-bin.zip";
+    sha256 = "sha256-UCr22Ffhnux6eA0w5qoaf5Hvuypsl/FGpK+emi8G0Mc=";
+  };
+
+  sourceRoot = ".";
+  nativeBuildInputs = [ unzip makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/geoserver
+    cp -r . $out/share/geoserver
+    rm -fr $out/share/geoserver/bin/*.bat
+
+    makeWrapper $out/share/geoserver/bin/startup.sh $out/bin/geoserver-startup \
+      --set JAVA_HOME "${jre}" \
+      --set GEOSERVER_HOME "$out/share/geoserver"
+    makeWrapper $out/share/geoserver/bin/shutdown.sh $out/bin/geoserver-shutdown \
+      --set JAVA_HOME "${jre}" \
+      --set GEOSERVER_HOME "$out/share/geoserver"
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Open source server for sharing geospatial data";
+    homepage = "https://geoserver.org/";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ sikmir ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/servers/gpm/default.nix b/pkgs/servers/gpm/default.nix
index f132f98344a99..66c6607e64721 100644
--- a/pkgs/servers/gpm/default.nix
+++ b/pkgs/servers/gpm/default.nix
@@ -27,6 +27,14 @@ stdenv.mkDerivation rec {
       url = "https://github.com/kaction/gpm/commit/217b4fe4c9b62298a4e9a54c1f07e3b52b013a09.patch";
       sha256 = "1f74h12iph4z1dldbxk9imcq11805c3ai2xhbsqvx8jpjrcfp19q";
     })
+
+    # Pull fix pending upstream inclusion to fix parallel installation:
+    #   https://github.com/telmich/gpm/pull/43
+    (fetchpatch {
+      name = "parallel-install.patch";
+      url = "https://github.com/telmich/gpm/commit/a88fb82a7afe96e872bb31c554e9ad5888f5a451.patch";
+      sha256 = "0g1jhz9bjw7vqjv922xkhs8xkjxdqh11nj38jj3c8nv5lcil76nx";
+    })
   ];
   preConfigure = ''
     ./autogen.sh
@@ -38,6 +46,8 @@ stdenv.mkDerivation rec {
     (if ncurses == null then "--without-curses" else "--with-curses")
   ];
 
+  enableParallelBuilding = true;
+
   # Provide libgpm.so for compatability
   postInstall = ''
     ln -sv $out/lib/libgpm.so.2 $out/lib/libgpm.so
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 4acf3aa87ad70..467c628c5666c 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -2,7 +2,7 @@
 # Do not edit!
 
 {
-  version = "2022.6.6";
+  version = "2022.6.7";
   components = {
     "abode" = ps: with ps; [
       abodepy
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index fbfa29ff4bf19..b1b731642b8c2 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -176,7 +176,7 @@ let
   extraPackagesFile = writeText "home-assistant-packages" (lib.concatMapStringsSep "\n" (pkg: pkg.pname) extraBuildInputs);
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "2022.6.6";
+  hassVersion = "2022.6.7";
 
 in python.pkgs.buildPythonApplication rec {
   pname = "homeassistant";
@@ -194,7 +194,7 @@ in python.pkgs.buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = version;
-    hash = "sha256-scwj3VrSoFk/pSVzfwvGFM5fRci3+7iqr7TAwLantFQ=";
+    hash = "sha256-RR0CsPOzOdWRPSgmKGl3egrPXS1CDI+ODWZeLkVCSGQ=";
   };
 
   # leave this in, so users don't have to constantly update their downstream patch handling
diff --git a/pkgs/servers/interlock/default.nix b/pkgs/servers/interlock/default.nix
index e151c9ec45e36..1fbe7444491c5 100644
--- a/pkgs/servers/interlock/default.nix
+++ b/pkgs/servers/interlock/default.nix
@@ -1,27 +1,28 @@
-{ sudo, coreutils, systemd, cryptsetup
-, mount, umount
-, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, coreutils
+, cryptsetup
+, mount
+, systemd
+, umount
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "interlock";
-  version = "2016.04.13";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/inversepath/interlock";
-
-  subPackages = [ "./cmd/interlock" ];
+  version = "2020.03.05";
 
   src = fetchFromGitHub {
-    inherit rev;
-    owner = "inversepath";
+    owner = "usbarmory";
     repo = "interlock";
-    sha256 = "06aqx3jy744yx29xyg8ips0dw16186hfqbxdv3hfrmwxmaxhl4lz";
+    rev = "v${version}";
+    sha256 = "sha256-YXa4vErt3YnomTKAXCv8yUVhcc0ST47n9waW5E8QZzY=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-OL6I95IpyTIc8wCwD9nWxVUTrmZH6COhsd/YwNTyvN0=";
+
+  ldflags = [ "-s" "-w" ];
 
-  nativeBuildInputs = [ sudo ];
-  tags = [ "textsecure" ];
   postPatch = ''
     grep -lr '/s\?bin/' | xargs sed -i \
       -e 's|/bin/mount|${mount}/bin/mount|' \
@@ -34,4 +35,19 @@ buildGoPackage rec {
       -e 's|/usr/bin/sudo|/run/wrappers/bin/sudo|' \
       -e 's|/sbin/cryptsetup|${cryptsetup}/bin/cryptsetup|'
   '';
+
+  postInstall = ''
+    mkdir -p $out/share
+    cp -R $src/static $out/share
+  '';
+
+  # Tests are broken due to an error during key generation.
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/usbarmory/interlock";
+    description = "File encryption tool and an HSM frontend";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/servers/interlock/deps.nix b/pkgs/servers/interlock/deps.nix
deleted file mode 100644
index be5c05295731d..0000000000000
--- a/pkgs/servers/interlock/deps.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-[
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "a83829b6f1293c91addabc89d0571c246397bbf4";
-      sha256 = "1m4dsmk90sbi17571h6pld44zxz7jc4lrnl4f27dpd1l8g5xvjhh";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "575fdbe86e5dd89229707ebec0575ce7d088a4a6";
-      sha256 = "1kgv1mkw9y404pk3lcwbs0vgl133mwyp294i18jg9hp10s5d56xa";
-    };
-  }
-  {
-    goPackagePath = "github.com/Sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Sirupsen/logrus";
-      rev = "be52937128b38f1d99787bb476c789e2af1147f1";
-      sha256 = "1m6vvd4pg4lwglhk54lv5mf6cc8h7bi0d9zb3gar4crz531r66y4";
-    };
-  }
-  {
-    goPackagePath = "github.com/agl/ed25519";
-    fetch = {
-      type = "git";
-      url = "https://github.com/agl/ed25519";
-      rev = "278e1ec8e8a6e017cd07577924d6766039146ced";
-      sha256 = "165d89cc6dl28j4hkn86pny0jz3sa6hamzdvpvwdj4iha3x6lzc9";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "59b73b37c1e45995477aae817e4a653c89a858db";
-      sha256 = "1dx22jvhvj34ivpr7gw01fncg9yyx35mbpal4mpgnqka7ajmgjsa";
-    };
-  }
-  {
-    goPackagePath = "github.com/janimo/textsecure";
-    fetch = {
-      type = "git";
-      url = "https://github.com/janimo/textsecure";
-      rev = "c38f429e48d6b2776d17b4171f216f132185b0f6";
-      sha256 = "191pwgfgphr0x04dwpvniax4wilpv52l25bw7d3igvnw302y7i94";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "62ac18b461605b4be188bbc7300e9aa2bc836cd4";
-      sha256 = "0lwwvbbwbf3yshxkfhn6z20gd45dkvnmw2ms36diiy34krgy402p";
-    };
-  }
-]
diff --git a/pkgs/servers/irc/ergochat/default.nix b/pkgs/servers/irc/ergochat/default.nix
index 57f79ff916c3e..cbcc0cfaad214 100644
--- a/pkgs/servers/irc/ergochat/default.nix
+++ b/pkgs/servers/irc/ergochat/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ergo";
-  version = "2.9.1";
+  version = "2.10.0";
 
   src = fetchFromGitHub {
     owner = "ergochat";
     repo = "ergo";
     rev = "v${version}";
-    sha256 = "sha256-RxsmkTfHymferS/FRW0sLnstKfvGXkW6cEb/JbeS4lc=";
+    sha256 = "sha256-SydseZSEuFhbaU4OMnT8zFLbRfmeKwXsZZeDh8mbZco=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/servers/mail/mlmmj/default.nix b/pkgs/servers/mail/mlmmj/default.nix
index 89e142b04f983..aba0664b8f4fd 100644
--- a/pkgs/servers/mail/mlmmj/default.nix
+++ b/pkgs/servers/mail/mlmmj/default.nix
@@ -10,6 +10,12 @@ stdenv.mkDerivation rec {
     sha256 = "1sghqvwizvm1a9w56r34qy5njaq1c26bagj85r60h32gh3fx02bn";
   };
 
+  configureFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    # AC_FUNC_MALLOC is broken on cross builds.
+    "ac_cv_func_malloc_0_nonnull=yes"
+    "ac_cv_func_realloc_0_nonnull=yes"
+  ];
+
   # Workaround build failure on -fno-common toolchains like upstream
   # gcc-10. Otherwise build fails as:
   #   ld: getlistdelim.o:/build/mlmmj-1.3.0/src/../include/mlmmj.h:84: multiple definition of
diff --git a/pkgs/servers/metabase/default.nix b/pkgs/servers/metabase/default.nix
index a6d2d88f7a220..9ec8ddf47d6e0 100644
--- a/pkgs/servers/metabase/default.nix
+++ b/pkgs/servers/metabase/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "metabase";
-  version = "0.42.1";
+  version = "0.43.1";
 
   src = fetchurl {
     url = "https://downloads.metabase.com/v${version}/metabase.jar";
-    hash = "sha256-PmcVVAS/5mDhmOSoFvkZeYkbvFD/KOcgVYuScwD4Olg=";
+    hash = "sha256-WGbIsmCWsSxgE7Ktr539qTt/o5cJrYi0yu3ZkfbxOV0=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 46c80120daa95..87430bda86d78 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "grafana";
-  version = "9.0.0";
+  version = "9.0.1";
 
   excludedPackages = [ "alert_webhook_listener" "clean-swagger" "release_publisher" "slow_proxy" "slow_proxy_mac" "macaron" "devenv" ];
 
@@ -10,15 +10,15 @@ buildGoModule rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "sha256-vPPaOepx4uwOWOjeE+dWULxmJPk5To9UY3rnoEqeAJA=";
+    sha256 = "sha256-+03bfSpUT5sb0oFf9BomglcVb5bRqAwZ1MKCPmRtAss=";
   };
 
   srcStatic = fetchurl {
     url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
-    sha256 = "0xl5z31mkgbwkwcpvr0v0hmc0ynvxjn39w4sb1vc572kjbwqpvkr";
+    sha256 = "1kw9l3gip4lqfrc0asgsd1lf5sxa7zj67isyvhb14qdsf9rs3b2d";
   };
 
-  vendorSha256 = "sha256-E3uSwdgoPgQPQ/uCIuTxcYeNRYbQR7q7SrUrh/ypENk=";
+  vendorSha256 = "sha256-eB0SswtqAb0xoLcq021KaH4CdgLbWmhODyifQDVl5XI=";
 
   nativeBuildInputs = [ wire ];
 
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
index 94d69ad81dc26..a666c3fee358e 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -46,13 +46,13 @@ in {
   '';
 
   nextcloud23 = generic {
-    version = "23.0.5";
-    sha256 = "3cf51a795f8439e5d34f0a521d939cefafbae38450cce64c6673016984195f29";
+    version = "23.0.6";
+    sha256 = "34fbc3a6c16a623f57971b8c4df7c5e62b3650728edec7d05ec116b295040548";
   };
 
   nextcloud24 = generic {
-    version = "24.0.1";
-    sha256 = "d32a8f6c4722a45cb67de7018163cfafcfa22a871fbac0f623c3875fa4304e5a";
+    version = "24.0.2";
+    sha256 = "30d6cac1265dff221836bec46a937dcafd7e7d52ee59b939841750b514e5033d";
   };
 
   # tip: get she sha with:
diff --git a/pkgs/servers/nosql/mongodb/patches/mongodb-4.0-glibc-2.34.patch b/pkgs/servers/nosql/mongodb/patches/mongodb-4.0-glibc-2.34.patch
new file mode 100644
index 0000000000000..f5c4a5c354085
--- /dev/null
+++ b/pkgs/servers/nosql/mongodb/patches/mongodb-4.0-glibc-2.34.patch
@@ -0,0 +1,14 @@
+--- a/src/mongo/stdx/thread.h
++++ b/src/mongo/stdx/thread.h
+@@ -103,10 +103,7 @@ private:
+     //   .                     N   Y :      4,344 |  13,048 |     7,352
+     //   .                     Y   Y :      4,424 |  13,672 |     8,392
+     //   ( https://jira.mongodb.org/secure/attachment/233569/233569_stacktrace-writeup.txt )
+-    static constexpr std::size_t kMongoMinSignalStackSize = std::size_t{64} << 10;
+-
+-    static constexpr std::size_t kStackSize =
+-        std::max(kMongoMinSignalStackSize, std::size_t{MINSIGSTKSZ});
++    static constexpr std::size_t kStackSize = std::size_t{64} << 10;
+     std::unique_ptr<char[]> _stackStorage = std::make_unique<char[]>(kStackSize);
+
+ #else   // !MONGO_HAS_SIGALTSTACK
\ No newline at end of file
diff --git a/pkgs/servers/nosql/mongodb/v4_0.nix b/pkgs/servers/nosql/mongodb/v4_0.nix
index 24349686fbec8..9d28a9185ba13 100644
--- a/pkgs/servers/nosql/mongodb/v4_0.nix
+++ b/pkgs/servers/nosql/mongodb/v4_0.nix
@@ -1,4 +1,4 @@
-{ stdenv, callPackage, lib, sasl, boost, Security, CoreFoundation, cctools }:
+{ stdenv, callPackage, fetchpatch, lib, sasl, boost, Security, CoreFoundation, cctools }:
 
 let
   buildMongoDB = callPackage ./mongodb.nix {
@@ -11,7 +11,15 @@ let
 in buildMongoDB {
   version = "4.0.27";
   sha256 = "sha256-ct33mnK4pszhYM4Is7j0GZQRyi8i8Qmy0wcklyq5LjM=";
-  patches =
-    [ ./forget-build-dependencies.patch ./mozjs-45_fix-3-byte-opcode.patch ]
+  patches = [
+    ./forget-build-dependencies.patch
+    ./mozjs-45_fix-3-byte-opcode.patch
+    ./patches/mongodb-4.0-glibc-2.34.patch # https://github.com/NixOS/nixpkgs/issues/171928
+    (fetchpatch {
+      name = "mongodb-4.4.1-gcc11.patch";
+      url = "https://raw.githubusercontent.com/gentoo/gentoo/7168257cad6ea7c4856b01c5703d0ed5b764367c/dev-db/mongodb/files/mongodb-4.4.1-gcc11.patch";
+      sha256 = "sha256-RvfCP462RG+ZVjcb23DgCuxCdfPl2/UgH8N7FgCghGI=";
+    })
+  ]
     ++ lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view.patch ];
 }
diff --git a/pkgs/servers/nosql/mongodb/v4_2.nix b/pkgs/servers/nosql/mongodb/v4_2.nix
index 3759cc1e6d585..53b73b510e3ad 100644
--- a/pkgs/servers/nosql/mongodb/v4_2.nix
+++ b/pkgs/servers/nosql/mongodb/v4_2.nix
@@ -1,4 +1,4 @@
-{ stdenv, callPackage, lib, sasl, boost, Security, CoreFoundation, cctools }:
+{ stdenv, callPackage, fetchpatch, lib, sasl, boost, Security, CoreFoundation, cctools }:
 
 let
   buildMongoDB = callPackage ./mongodb.nix {
@@ -11,7 +11,12 @@ let
 in buildMongoDB {
   version = "4.2.19";
   sha256 = "sha256-fngTHd+fSdHqiqQYOYS7o6P5eHybeZy3iNKkGzFmjTw=";
-  patches =
-    [ ./forget-build-dependencies-4-2.patch ]
-    ++ lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view-4-2.patch ];
+  patches = [
+    ./forget-build-dependencies-4-2.patch
+    (fetchpatch {
+      name = "mongodb-4.4.1-gcc11.patch";
+      url = "https://raw.githubusercontent.com/gentoo/gentoo/7168257cad6ea7c4856b01c5703d0ed5b764367c/dev-db/mongodb/files/mongodb-4.4.1-gcc11.patch";
+      sha256 = "sha256-RvfCP462RG+ZVjcb23DgCuxCdfPl2/UgH8N7FgCghGI=";
+    })
+  ] ++ lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view-4-2.patch ];
 }
diff --git a/pkgs/servers/peertube/default.nix b/pkgs/servers/peertube/default.nix
index 558c21c6cd153..1a8253d51d4ab 100644
--- a/pkgs/servers/peertube/default.nix
+++ b/pkgs/servers/peertube/default.nix
@@ -6,18 +6,18 @@ let
     if stdenv.hostPlatform.system == "x86_64-linux" then "linux-x64"
     else throw "Unsupported architecture: ${stdenv.hostPlatform.system}";
 
-  version = "4.1.1";
+  version = "4.2.0";
 
   source = fetchFromGitHub {
     owner = "Chocobozzz";
     repo = "PeerTube";
     rev = "v${version}";
-    sha256 = "sha256-yBRontvkcVU3BNUIB6WfH2a5blU9u3CNyHrou16h42s=";
+    sha256 = "sha256-U/QJqYw1fFmUvtPDZ1VcYe1+clLj/I0Lkhhu8+FuK2U=";
   };
 
   yarnOfflineCacheServer = fetchYarnDeps {
     yarnLock = "${source}/yarn.lock";
-    sha256 = "sha256-L1Nr6sGjYVm42OyeFOQeQ6WEXjmNkngWilBtfQJ6bPE=";
+    sha256 = "sha256-7fYQ4YS92XbzeI7nwpQfI2reDp6EiDgncK5YGSWzHF0=";
   };
 
   yarnOfflineCacheTools = fetchYarnDeps {
@@ -27,7 +27,7 @@ let
 
   yarnOfflineCacheClient = fetchYarnDeps {
     yarnLock = "${source}/client/yarn.lock";
-    sha256 = "sha256-cBa0lNq9JsYi34EJzl0pPbDXSYL9a8g6MmiL6Ge65ms=";
+    sha256 = "sha256-6Snx1OwEndGrkMZbAEsoNRUQnZcwH+pwSDZW8igCzXA=";
   };
 
   bcrypt_version = "5.0.1";
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index fd6adfe65a981..87e36134acbba 100644
--- a/pkgs/servers/plex/raw.nix
+++ b/pkgs/servers/plex/raw.nix
@@ -12,16 +12,16 @@
 # server, and the FHS userenv and corresponding NixOS module should
 # automatically pick up the changes.
 stdenv.mkDerivation rec {
-  version = "1.27.0.5897-3940636f2";
+  version = "1.27.1.5916-6b0e31a64";
   pname = "plexmediaserver";
 
   # Fetch the source
   src = if stdenv.hostPlatform.system == "aarch64-linux" then fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_arm64.deb";
-    sha256 = "1ibahbz276diji66m5w059a1h9crva92r83w6av1dfq44v298s77";
+    sha256 = "0cyx83a64vdq68qknsscdnawx9lcyr5siiwys2gc9gnxm6sv8x82";
   } else fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb";
-    sha256 = "119nmmjpca05d6vzhy3xipgca9k51ps8252vcgdsp080dh7nk2kp";
+    sha256 = "0v5gkk0izqkma9m4gvqyx94mij4jvv8vdv6897r7v8xqg9wji24l";
   };
 
   outputs = [ "out" "basedb" ];
diff --git a/pkgs/servers/rt/default.nix b/pkgs/servers/rt/default.nix
index 2b5188f743ad5..a113c25f396cd 100644
--- a/pkgs/servers/rt/default.nix
+++ b/pkgs/servers/rt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rt";
-  version = "5.0.1";
+  version = "5.0.2";
 
   src = fetchFromGitHub {
     repo = pname;
     rev = "${pname}-${version}";
     owner = "bestpractical";
-    sha256 = "1qqh6w094x7dljz001va802v4s6mixs9lkhs2cs47lf5ph3vwq2q";
+    sha256 = "1qdvbsmdynjw2v0clnmhdmrky7w4dsiysv92n7d7jdbawnicqahn";
   };
 
   patches = [
@@ -88,6 +88,7 @@ stdenv.mkDerivation rec {
         MozillaCA
         NetCIDR
         NetIP
+        ParallelForkManager
         PathDispatcher
         PerlIOeol
         Plack
diff --git a/pkgs/servers/serf/default.nix b/pkgs/servers/serf/default.nix
index 8964796862ce6..da1bf0770fd03 100644
--- a/pkgs/servers/serf/default.nix
+++ b/pkgs/servers/serf/default.nix
@@ -1,23 +1,43 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "serf";
-  version = "0.8.1";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/hashicorp/serf";
+  version = "0.9.8";
+  rev = "a2bba5676d6e37953715ea10e583843793a0c507";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "serf";
-    inherit rev;
-    sha256 = "1arakjvhyasrk52vhxas2ghlrby3i3wj59r7sjrkbpln2cdbqnlx";
+    rev = "v${version}";
+    sha256 = "sha256-UWCxzwV2bcT8Sfl296HpBThe+qYX19M7sNcEJHs/sXc=";
   };
 
+  vendorSha256 = "sha256-DaPcCuj0KGpuOC6XynltMBE9wO7w5qKrTChC401249o=";
+
+  subPackages = [ "cmd/serf" ];
+
+  # These values are expected by version/version.go
+  # https://github.com/hashicorp/serf/blob/7faa1b06262f70780c3c35ac25a4c96d754f06f3/version/version.go#L8-L22
+  ldflags = lib.mapAttrsToList
+    (n: v: "-X github.com/hashicorp/serf/version.${n}=${v}") {
+      GitCommit = rev;
+      Version = version;
+      VersionPrerelease = "";
+    };
+
+  # There are no tests for cmd/serf.
+  doCheck = false;
+
   meta = with lib; {
-    description = "Tool for service orchestration and management";
-    homepage = "https://www.serf.io/";
-    platforms = platforms.linux ++ platforms.darwin;
+    description = "Service orchestration and management tool";
+    longDescription = ''
+      Serf is a decentralized solution for service discovery and orchestration
+      that is lightweight, highly available, and fault tolerant.
+    '';
+    homepage = "https://www.serf.io";
     license = licenses.mpl20;
     maintainers = with maintainers; [ pradeepchhetri ];
   };
diff --git a/pkgs/servers/shairport-sync/default.nix b/pkgs/servers/shairport-sync/default.nix
index ed3c0dcc7f9de..dbe478568ac64 100644
--- a/pkgs/servers/shairport-sync/default.nix
+++ b/pkgs/servers/shairport-sync/default.nix
@@ -1,6 +1,12 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, openssl, avahi, alsa-lib
-, libdaemon, popt, pkg-config, libconfig, libpulseaudio, soxr }:
+{ lib, stdenv, fetchFromGitHub
+, autoreconfHook, pkg-config
+, openssl, avahi, alsa-lib, glib, libdaemon, popt, libconfig, libpulseaudio, soxr
+, enableDbus ? stdenv.isLinux
+, enableMetadata ? false
+, enableMpris ? stdenv.isLinux
+}:
 
+with lib;
 stdenv.mkDerivation rec {
   version = "3.3.9";
   pname = "shairport-sync";
@@ -23,7 +29,12 @@ stdenv.mkDerivation rec {
     libconfig
     libpulseaudio
     soxr
-  ];
+  ] ++ optional stdenv.isLinux glib;
+
+  prePatch = ''
+    sed -i -e 's/G_BUS_TYPE_SYSTEM/G_BUS_TYPE_SESSION/g' dbus-service.c
+    sed -i -e 's/G_BUS_TYPE_SYSTEM/G_BUS_TYPE_SESSION/g' mpris-service.c
+  '';
 
   enableParallelBuilding = true;
 
@@ -32,7 +43,10 @@ stdenv.mkDerivation rec {
     "--with-avahi" "--with-ssl=openssl" "--with-soxr"
     "--without-configfiles"
     "--sysconfdir=/etc"
-  ];
+  ]
+    ++ optional enableDbus "--with-dbus-interface"
+    ++ optional enableMetadata "--with-metadata"
+    ++ optional enableMpris "--with-mpris-interface";
 
   meta = with lib; {
     inherit (src.meta) homepage;
diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix
index 622662645c7ef..d6a0f497da14f 100644
--- a/pkgs/servers/traefik/default.nix
+++ b/pkgs/servers/traefik/default.nix
@@ -1,33 +1,34 @@
-{ lib, fetchzip, buildGoModule, go-bindata, nixosTests }:
+{ lib, fetchFromGitHub, buildGoModule, nixosTests }:
 
 buildGoModule rec {
   pname = "traefik";
-  version = "2.6.3";
+  version = "2.7.1";
 
-  src = fetchzip {
-    url = "https://github.com/traefik/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz";
-    sha256 = "sha256-OaKgX3qwiJM/EPprV1r3CbUnxOaWl7BTMcS5v+tmHoo=";
-    stripRoot = false;
+  src = fetchFromGitHub {
+    owner = "traefik";
+    repo = "traefik";
+    rev = "v${version}";
+    sha256 = "sha256-uTE0Z7lgxKNq1wQSMUSp9dMfxV+aIm7cwYSkZBUdnug=";
   };
 
-  vendorSha256 = "sha256-tqrfCpZ/fRYZBZ/SBAvvJebLBeD2M/AVJEPiseehJHY=";
+  vendorSha256 = "sha256-WlLntYrXs1kOu26yNeZI1xpb6FsHPiA/bNzaxCZTG4Y=";
 
   subPackages = [ "cmd/traefik" ];
 
-  nativeBuildInputs = [ go-bindata ];
-
-  passthru.tests = { inherit (nixosTests) traefik; };
-
   preBuild = ''
     go generate
 
     CODENAME=$(awk -F "=" '/CODENAME=/ { print $2}' script/binary)
 
-    buildFlagsArray+=("-ldflags=\
-      -X github.com/traefik/traefik/v2/pkg/version.Version=${version} \
-      -X github.com/traefik/traefik/v2/pkg/version.Codename=$CODENAME")
+    buildFlagsArray+=("-ldflags= -s -w \
+      -X github.com/traefik/traefik/v${lib.versions.major version}/pkg/version.Version=${version} \
+      -X github.com/traefik/traefik/v${lib.versions.major version}/pkg/version.Codename=$CODENAME")
   '';
 
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests) traefik; };
+
   meta = with lib; {
     homepage = "https://traefik.io";
     description = "A modern reverse proxy";
diff --git a/pkgs/servers/trickster/trickster.nix b/pkgs/servers/trickster/trickster.nix
index 5cf08ee6c3cfd..a798e0ceff0d8 100644
--- a/pkgs/servers/trickster/trickster.nix
+++ b/pkgs/servers/trickster/trickster.nix
@@ -1,26 +1,53 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "trickster";
-  version = "0.1.10";
-
-  goPackagePath = "github.com/Comcast/trickster";
-
-  goDeps = ./trickster_deps.nix;
+  version = "1.1.5";
+  rev = "4595bd6a1ae1165ef497251ad85c646dadc8a925";
 
   src = fetchFromGitHub {
-    owner = "Comcast";
-    repo = pname;
+    owner = "trickstercache";
+    repo = "trickster";
     rev = "v${version}";
-    sha256 = "12z71rf03g2x8r7cgns0n4n46r0gjsfyig6z9r5xrn9kfghabfi8";
+    sha256 = "sha256-BRD8IF3s9RaDorVtXRvbKLVVVXWiEQTQyKBR9jFo1eM=";
   };
 
-  doCheck = true;
+  vendorSha256 = null;
+
+  subPackages = [ "cmd/trickster" ];
+
+  preBuild =
+    let
+      ldflags = with lib;
+        concatStringsSep " " (
+          [ "-extldflags '-static'" "-s" "-w" ] ++
+          (mapAttrsToList (n: v: "-X main.application${n}=${v}") {
+            BuildTime = "1970-01-01T00:00:00+0000";
+            GitCommitID = rev;
+            GoVersion = "$(go env GOVERSION)";
+            GoArch = "$(go env GOARCH)";
+          })
+        );
+    in
+    ''
+      buildFlagsArray+=("-ldflags=${ldflags}")
+    '';
+
+  # Tests are broken.
+  doCheck = false;
 
   meta = with lib; {
-    description = "Reverse proxy cache for the Prometheus HTTP APIv1";
-    homepage = "https://github.com/Comcast/trickster";
+    description = "Reverse proxy cache and time series dashboard accelerator";
+    longDescription = ''
+      Trickster is a fully-featured HTTP Reverse Proxy Cache for HTTP
+      applications like static file servers and web APIs.
+    '';
+    homepage = "https://trickstercache.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ _1000101 ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/trickster/trickster_deps.nix b/pkgs/servers/trickster/trickster_deps.nix
deleted file mode 100644
index ab100bed760e1..0000000000000
--- a/pkgs/servers/trickster/trickster_deps.nix
+++ /dev/null
@@ -1,237 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "v0.3.1";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
-    };
-  }
-  {
-    goPackagePath = "github.com/alicebob/gopher-json";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alicebob/gopher-json";
-      rev = "5a6b3ba71ee6";
-      sha256 = "0hx6n722zq51p852lv56k39yjy09lw6mnr2c3x0p23rfyyrakj2p";
-    };
-  }
-  {
-    goPackagePath = "github.com/alicebob/miniredis";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alicebob/miniredis";
-      rev = "cfad8aca71cc";
-      sha256 = "0x2401nxyhdz037lj98c0sa77d8k49jfcq7is3ddiyim3csg5a0w";
-    };
-  }
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "3a771d992973";
-      sha256 = "1l2lns4f5jabp61201sh88zf3b0q793w4zdgp9nll7mmfcxxjif3";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/readline";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/readline";
-      rev = "2972be24d48e";
-      sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/bbolt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/bbolt";
-      rev = "v1.3.0";
-      sha256 = "0cp5v9iypg9ysiq40k3h3lg7aisxplnmxshha7nama6b170izyay";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-kit/kit";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-kit/kit";
-      rev = "v0.8.0";
-      sha256 = "1rcywbc2pvab06qyf8pc2rdfjv7r6kxdv2v4wnpqnjhz225wqvc0";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-logfmt/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-logfmt/logfmt";
-      rev = "v0.4.0";
-      sha256 = "06smxc112xmixz78nyvk3b2hmc7wasf2sl5vxj1xz62kqcq9lzm9";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-redis/redis";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-redis/redis";
-      rev = "v6.14.2";
-      sha256 = "0s1if96r8xnadan7pz1j8hvzk9g4fm3phwmwzadwpq21pgni66d7";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-stack/stack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-stack/stack";
-      rev = "v1.8.0";
-      sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.2.0";
-      sha256 = "0kf4b59rcbb1cchfny2dm9jyznp8ri2hsb14n8iak1q8986xa0ab";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/snappy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/snappy";
-      rev = "2e65f85255db";
-      sha256 = "05w6mpc4qcy0pv8a2bzng8nf4s5rf5phfang4jwy9rgf808q0nxf";
-    };
-  }
-  {
-    goPackagePath = "github.com/gomodule/redigo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gomodule/redigo";
-      rev = "v2.0.0";
-      sha256 = "1kg7s8027b4g1sfw0v3nh30c15j407kv684s53gg281r807dnfpk";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/context";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/context";
-      rev = "v1.1.1";
-      sha256 = "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/handlers";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/handlers";
-      rev = "v1.4.0";
-      sha256 = "0mnw81ayjm4d8462qg8spmcwxmchn24158bf93zxjab51pg8n9gm";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/mux";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/mux";
-      rev = "v1.6.2";
-      sha256 = "0pvzm23hklxysspnz52mih6h1q74vfrdhjfm1l3sa9r8hhqmmld2";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/logfmt";
-      rev = "b84e30acd515";
-      sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "v1.0.1";
-      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
-    };
-  }
-  {
-    goPackagePath = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev = "v0.8.0";
-      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "v0.9.1";
-      sha256 = "01gnylazia30pcp069xcng482gwmm3xcx5zgrlwdkhic1lyb6i9l";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "5c3871d89910";
-      sha256 = "04psf81l9fjcwascsys428v03fx4fi894h7fhrj2vvcz723q57k0";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "4724e9255275";
-      sha256 = "0pcx8hlnrxx5nnmpk786cn99rsgqk1jrd3c9f6fsx8qd8y5iwjy6";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "1dc9a6cbc91a";
-      sha256 = "1zlv1x30xp7z5c3vn5vp870v4bjim0zcidzc3mr2l3xhazc0svab";
-    };
-  }
-  {
-    goPackagePath = "github.com/yuin/gopher-lua";
-    fetch = {
-      type = "git";
-      url = "https://github.com/yuin/gopher-lua";
-      rev = "a0dfe84f6227";
-      sha256 = "13k2dphx4zv6fwgqsydsc0g0b0pf7qx3yb6i7hai6nnkh0db91nn";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "a5c9d58dba9a";
-      sha256 = "02qv5i7yps35p7fa81345qz7k8i73gkigj69anwmpw9rhpmzayf9";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/natefinch/lumberjack.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/natefinch/lumberjack.v2";
-      rev = "a96e63847dc3";
-      sha256 = "1l3vlv72b7rfkpy1164kwd3qzrqmmjnb67akzxqp2mlvc66k6p3d";
-    };
-  }
-]
diff --git a/pkgs/servers/web-apps/jirafeau/default.nix b/pkgs/servers/web-apps/jirafeau/default.nix
index 6091eb498208d..8001e58049704 100644
--- a/pkgs/servers/web-apps/jirafeau/default.nix
+++ b/pkgs/servers/web-apps/jirafeau/default.nix
@@ -8,13 +8,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "jirafeau";
-  version = "4.3.0";
+  version = "4.4.0";
 
   src = fetchFromGitLab {
     owner = "mojo42";
     repo = "Jirafeau";
     rev = version;
-    hash = "sha256-9v6rtxViXsolx5AKSp2HxcFyU1XJWFSiqzTBl+dQBD4=";
+    hash = "sha256-jJ2r8XTtAzawTVo2A2pDwy7Z6KHeyBkgXXaCPY0w/rg=";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/web-apps/snipe-it/default.nix b/pkgs/servers/web-apps/snipe-it/default.nix
index 3e3ac6fde11b7..02a1ff30d8f9a 100644
--- a/pkgs/servers/web-apps/snipe-it/default.nix
+++ b/pkgs/servers/web-apps/snipe-it/default.nix
@@ -18,13 +18,13 @@ let
 
 in package.override rec {
   pname = "snipe-it";
-  version = "6.0.4";
+  version = "6.0.5";
 
   src = fetchFromGitHub {
     owner = "snipe";
     repo = pname;
     rev = "v${version}";
-    sha256 = "06h8rnk8q85f0z0a1q0j010kzs4z2k5sxvi06avk7ndpkrisv4wz";
+    sha256 = "15dp8y0kdjg9x4iwa5ha5w4qbwwsdg5z8337rmkkla2yjmf4lrxb";
   };
 
   meta = with lib; {
diff --git a/pkgs/shells/oh/default.nix b/pkgs/shells/oh/default.nix
index 68f34fe8eb170..e9a09c8c28880 100644
--- a/pkgs/shells/oh/default.nix
+++ b/pkgs/shells/oh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "oh";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "michaelmacinnis";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0sdpk77i5mfamkdqldybl9znzz92hqgi4xvby5j28m0a5gw46kj0";
+    sha256 = "sha256-DMxC5fv5ZLDv7gMajC/eyJd2YpO+OXFdvwAPYotnczw=";
   };
 
-  vendorSha256 = "12vlvh37hvi8c1i9arppm5wj4v9c98s7myxra10q6qpdqssgc8a0";
+  vendorSha256 = "sha256-f4rqXOu6yXUzNsseSaV9pb8c2KXItYOalB5pfH3Acnc=";
 
   meta = with lib; {
     homepage = "https://github.com/michaelmacinnis/oh";
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index f8a858a4b52de..bde8735642d8c 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -111,9 +111,9 @@ let
 , # Target is not included by default because most programs don't care.
   # Including it then would cause needless mass rebuilds.
   #
-  # TODO(@Ericson2314): Make [ "build" "host" ] always the default.
+  # TODO(@Ericson2314): Make [ "build" "host" ] always the default / resolve #87909
   configurePlatforms ? lib.optionals
-    (stdenv.hostPlatform != stdenv.buildPlatform)
+    (stdenv.hostPlatform != stdenv.buildPlatform || config.configurePlatformsByDefault)
     [ "build" "host" ]
 
 # TODO(@Ericson2314): Make unconditional / resolve #33599
diff --git a/pkgs/tools/X11/pmenu/default.nix b/pkgs/tools/X11/pmenu/default.nix
new file mode 100644
index 0000000000000..7de509a299c58
--- /dev/null
+++ b/pkgs/tools/X11/pmenu/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, writeText
+, fontconfig
+, imlib2
+, libX11
+, libXext
+, libXft
+, libXinerama
+, libXrender
+, conf ? null
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pmenu";
+  version = "3.0.1";
+
+  src = fetchFromGitHub {
+    owner = "phillbush";
+    repo = "pmenu";
+    rev = "v${version}";
+    sha256 = "sha256-xeOiJEOPz5QEMlWP6bWhTjmj4tfNqh3rsEVmnKvrKuM=";
+  };
+
+  buildInputs = [
+    fontconfig
+    imlib2
+    libX11
+    libXext
+    libXft
+    libXinerama
+    libXrender
+  ];
+
+  postPatch = let
+      configFile =
+        if lib.isDerivation conf || builtins.isPath conf
+        then conf else writeText "config.h" conf;
+    in
+    lib.optionalString (conf != null) "mv ${configFile} config.h";
+
+  makeFlags = [
+    "INSTALL=install"
+    "PREFIX=\${out}"
+  ];
+
+  meta = with lib; {
+    description = "A pie-menu tool";
+    longDescription = ''
+      πmenu is a pie menu utility for X. πmenu receives a menu specification in
+      stdin, shows a menu for the user to select one of the options, and outputs
+      the option selected to stdout.
+    '';
+    homepage = "https://github.com/phillbush/pmenu";
+    license = licenses.mit;
+    maintainers = with maintainers; [ azahi ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/admin/aliyun-cli/default.nix b/pkgs/tools/admin/aliyun-cli/default.nix
index e2359bd5e117a..b18b8a82088ee 100644
--- a/pkgs/tools/admin/aliyun-cli/default.nix
+++ b/pkgs/tools/admin/aliyun-cli/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "aliyun-cli";
-  version = "3.0.121";
+  version = "3.0.123";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "aliyun";
     repo = pname;
     fetchSubmodules = true;
-    sha256 = "sha256-1D1JZZ/KMC4oZRaYvWpUazTk7llvX5WHPBxWEGCiKrI=";
+    sha256 = "sha256-68u31s7SsRRT9OQpTqlhAs5Dx+ggbTTSeKYBByiqn6g=";
   };
 
-  vendorSha256 = "sha256-f3GXkAvTe8rPFWCR5TM4mDK/VOQWt2lrZrfJ/Wvw8Uc=";
+  vendorSha256 = "sha256-X5r89aI7UdVlzEJi8zaOzwTETwb+XH8dKO6rVe//FNs=";
 
   subPackages = [ "main" ];
 
diff --git a/pkgs/tools/admin/boulder/default.nix b/pkgs/tools/admin/boulder/default.nix
index 706ac84afb330..6de6ae6c02022 100644
--- a/pkgs/tools/admin/boulder/default.nix
+++ b/pkgs/tools/admin/boulder/default.nix
@@ -1,30 +1,51 @@
-{ buildGoPackage
-, libtool
+{ lib
+, buildGoModule
 , fetchFromGitHub
-, lib
 }:
 
-buildGoPackage rec{
-
+buildGoModule rec {
   pname = "boulder";
-  version = "release-2019-10-13";
-
-  goPackagePath = "github.com/letsencrypt/boulder";
-
-  buildInputs = [ libtool ];
+  version = "release-2022-05-31";
+  rev = "99dcb9a5b31be576a55e33184581c942421bc172";
 
   src = fetchFromGitHub {
     owner = "letsencrypt";
     repo = "boulder";
     rev = version;
-    sha256 = "0kis23dnjja6jp192rjpv2m9m2zmzfwhs93440nxg354k6fp8jdg";
+    sha256 = "sha256-x1Vf8agwVTgSkDVEdAnG3div+MzRsMi96jKJRc2s8Ks=";
   };
 
-  meta = {
+  vendorSha256 = null;
+
+  subPackages = [ "cmd/boulder" ];
+
+  ldflags = with lib;
+    mapAttrsToList (n: v: ''"-X github.com/letsencrypt/boulder/core.Build${n}=${v}"'') {
+      ID = substring 0 8 rev;
+      Host = "nixbld@localhost";
+      Time = "Thu  1 Jan 00:00:00 UTC 1970";
+    };
+
+  postInstall = ''
+    for i in $($out/bin/boulder --list); do
+      ln -s $out/bin/boulder $out/bin/$i
+    done
+  '';
+
+  # There are no tests for cmd/boulder.
+  doCheck = false;
+
+  meta = with lib; {
     homepage = "https://github.com/letsencrypt/boulder";
-    description = "An ACME-based CA, written in Go";
-    license = [ lib.licenses.mpl20 ];
-    maintainers = [ ];
+    description = "An ACME-based certificate authority, written in Go";
+    longDescription = ''
+      This is an implementation of an ACME-based CA. The ACME protocol allows
+      the CA to automatically verify that an applicant for a certificate
+      actually controls an identifier, and allows domain holders to issue and
+      revoke certificates for their domains. Boulder is the software that runs
+      Let's Encrypt.
+    '';
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ azahi ];
   };
-
 }
diff --git a/pkgs/tools/admin/lxd/default.nix b/pkgs/tools/admin/lxd/default.nix
index 5198f79a7f188..d664cdd50860d 100644
--- a/pkgs/tools/admin/lxd/default.nix
+++ b/pkgs/tools/admin/lxd/default.nix
@@ -1,4 +1,4 @@
-{ lib, hwdata, pkg-config, lxc, buildGo118Package, fetchurl, fetchpatch
+{ lib, hwdata, pkg-config, lxc, buildGo118Package, fetchurl
 , makeWrapper, acl, rsync, gnutar, xz, btrfs-progs, gzip, dnsmasq, attr
 , squashfsTools, iproute2, iptables, libcap
 , dqlite, raft-canonical, sqlite-replication, udev
@@ -11,7 +11,7 @@
 
 buildGo118Package rec {
   pname = "lxd";
-  version = "5.2";
+  version = "5.3";
 
   goPackagePath = "github.com/lxc/lxd";
 
@@ -20,7 +20,7 @@ buildGo118Package rec {
       "https://linuxcontainers.org/downloads/lxd/lxd-${version}.tar.gz"
       "https://github.com/lxc/lxd/releases/download/lxd-${version}/lxd-${version}.tar.gz"
     ];
-    sha256 = "sha256-4i0rNKGEjTOyCAsrHII1WvttNv3+SeZ/RLN0ntvALkw=";
+    sha256 = "sha256-DRdKCfp0nL3lg5O/Wm7vX2grO/DBuyhHRi85XI5laZU=";
   };
 
   postPatch = ''
@@ -60,6 +60,7 @@ buildGo118Package rec {
   meta = with lib; {
     description = "Daemon based on liblxc offering a REST API to manage containers";
     homepage = "https://linuxcontainers.org/lxd/";
+    changelog = "https://github.com/lxc/lxd/releases/tag/lxd-${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fpletz marsam ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/admin/trinsic-cli/default.nix b/pkgs/tools/admin/trinsic-cli/default.nix
index d6e6d6f100c56..907516ce3655b 100644
--- a/pkgs/tools/admin/trinsic-cli/default.nix
+++ b/pkgs/tools/admin/trinsic-cli/default.nix
@@ -2,11 +2,11 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "trinsic-cli";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchurl {
     url = "https://github.com/trinsic-id/sdk/releases/download/v${version}/trinsic-cli-vendor-${version}.tar.gz";
-    sha256 = "sha256-Dxmjbd1Q2JNeET22Fte7bygd+oH3ZfovRTJh5xforuw=";
+    sha256 = "sha256-Z9orGhxbu/ehyaYhY35lYWcZQWNVk+zLSoqwAZwnpLY=";
   };
 
   cargoVendorDir = "vendor";
diff --git a/pkgs/tools/audio/mpd-discord-rpc/default.nix b/pkgs/tools/audio/mpd-discord-rpc/default.nix
index 1565ac040c3b8..cbaeb9e01145c 100644
--- a/pkgs/tools/audio/mpd-discord-rpc/default.nix
+++ b/pkgs/tools/audio/mpd-discord-rpc/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mpd-discord-rpc";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "JakeStanger";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jwsfUepGJ7IB1H6Er1EszYkkYIOSyuFvTX7NF9UhhGo=";
+    sha256 = "sha256-/QWIoP6KcrI8cYTh3x2lQz7nPSvzb1zRWg8TFoYY9vE=";
   };
 
-  cargoSha256 = "sha256-4MUfjXWDZmfsUzvWo8I2fgzm4jOfX1ZgHYqUmxXJ/BU=";
+  cargoSha256 = "sha256-46PS1+ud7GYuMOJMp93Hf7+nlngvgL67zedaF44TcYY=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/backup/borgmatic/default.nix b/pkgs/tools/backup/borgmatic/default.nix
index 904e64704c90a..70ca704831e68 100644
--- a/pkgs/tools/backup/borgmatic/default.nix
+++ b/pkgs/tools/backup/borgmatic/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "borgmatic";
-  version = "1.5.18";
+  version = "1.6.3";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "sha256-dX1U1zza8zMhDiTLE+DgtN6RLRciLks4NDOukpKH/po=";
+    sha256 = "sha256-CLScfmv0Jp4nfKAQvaq3XdYxNl9pDfEi5hz1ybikWDc=";
   };
 
   checkInputs = with python3Packages; [ flexmock pytestCheckHook pytest-cov ];
diff --git a/pkgs/tools/backup/dar/default.nix b/pkgs/tools/backup/dar/default.nix
index 92642973d45b3..f4f2a2630098e 100644
--- a/pkgs/tools/backup/dar/default.nix
+++ b/pkgs/tools/backup/dar/default.nix
@@ -9,12 +9,12 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "2.7.5";
+  version = "2.7.6";
   pname = "dar";
 
   src = fetchurl {
     url = "mirror://sourceforge/dar/${pname}-${version}.tar.gz";
-    sha256 = "sha256-lfpJOomadV/oTJsOloH1rYF5Wy3kVr+EBUvqZ+xaCWY=";
+    sha256 = "sha256-PV5ESJE1B2gQnX6QUeJgOb3rkG3jApTn4NcRBbh9bao=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/tools/backup/zfsbackup/default.nix b/pkgs/tools/backup/zfsbackup/default.nix
index ff47ce47edef1..332ad619a431d 100644
--- a/pkgs/tools/backup/zfsbackup/default.nix
+++ b/pkgs/tools/backup/zfsbackup/default.nix
@@ -1,26 +1,34 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, zfs
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "zfsbackup";
-  version = "unstable-2020-09-30";
-  rev = "092f80846b23e02f99d2aa72d9d889eabfdcb053";
-
-  goPackagePath = "github.com/someone1/zfsbackup-go";
+  version = "unstable-2021-05-26";
+  rev = "2d4534b920d3c57552667e1c6da9978b3a9278f0";
 
   src = fetchFromGitHub {
     owner = "someone1";
     repo = "zfsbackup-go";
     inherit rev;
-    sha256 = "1xiacaf4r9jkx0m8wjfis14cq622yhljldwkflh9ni3khax7dlgi";
+    sha256 = "sha256-slVwXXGLvq+eAlqzD8p1fnc17CGUBY0Z68SURBBuf2k=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-jpxp8RKDBrkBBaY89QnKYGWFI/DUURUVX8cPJ/qoLrg=";
+
+  ldflags = [ "-w" "-s" ];
+
+  # Tests require loading the zfs kernel module.
+  doCheck = false;
 
   meta = with lib; {
     description = "Backup ZFS snapshots to cloud storage such as Google, Amazon, Azure, etc";
     homepage = "https://github.com/someone1/zfsbackup-go";
     license = licenses.mit;
-    maintainers = [ maintainers.xfix ];
+    maintainers = with maintainers; [ xfix ];
+    platforms = platforms.linux;
     mainProgram = "zfsbackup-go";
   };
 }
diff --git a/pkgs/tools/backup/zfsbackup/deps.nix b/pkgs/tools/backup/zfsbackup/deps.nix
deleted file mode 100644
index 28be9fa141cf9..0000000000000
--- a/pkgs/tools/backup/zfsbackup/deps.nix
+++ /dev/null
@@ -1,1326 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "cloud.google.com/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/google-cloud-go";
-      rev = "v0.57.0";
-      sha256 = "0lcq68h0x56qb14yx2df584ad0g9s1s19py813dy9nzqp0bmjig8";
-    };
-  }
-  {
-    goPackagePath = "dmitri.shuralyov.com/gpu/mtl";
-    fetch = {
-      type = "git";
-      url = "https://dmitri.shuralyov.com/gpu/mtl";
-      rev = "666a987793e9";
-      sha256 = "1isd03hgiwcf2ld1rlp0plrnfz7r4i7c5q4kb6hkcd22axnmrv0z";
-    };
-  }
-  {
-    goPackagePath = "github.com/Azure/azure-pipeline-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/azure-pipeline-go";
-      rev = "v0.2.2";
-      sha256 = "1agn2nzmm1dkwggm4w7h4bnrav4n5jrl0vqbqy2s49vqlr8zirn6";
-    };
-  }
-  {
-    goPackagePath = "github.com/Azure/azure-sdk-for-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/azure-sdk-for-go";
-      rev = "v42.3.0";
-      sha256 = "1nqxpifrr8n17irkfzhx253b17cwd15x4vfqxx80l5y7dn0jqavq";
-    };
-  }
-  {
-    goPackagePath = "github.com/Azure/azure-storage-blob-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/azure-storage-blob-go";
-      rev = "v0.8.0";
-      sha256 = "00gsnk9s1rlrakqvcm917hn4r47jannxwp7rkhrb71pamzm46752";
-    };
-  }
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "v0.3.1";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
-    };
-  }
-  {
-    goPackagePath = "github.com/BurntSushi/xgb";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/xgb";
-      rev = "27f122750802";
-      sha256 = "18lp2x8f5bljvlz0r7xn744f0c9rywjsb9ifiszqqdcpwhsa0kvj";
-    };
-  }
-  {
-    goPackagePath = "github.com/OneOfOne/xxhash";
-    fetch = {
-      type = "git";
-      url = "https://github.com/OneOfOne/xxhash";
-      rev = "v1.2.2";
-      sha256 = "1mjfhrwhvxa48rycjnqpqzm521i38h1hdyz6pdwmhd7xb8j6gwi6";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev = "a0175ee3bccc";
-      sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "2efee857e7cf";
-      sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
-    };
-  }
-  {
-    goPackagePath = "github.com/armon/consul-api";
-    fetch = {
-      type = "git";
-      url = "https://github.com/armon/consul-api";
-      rev = "eb2c6b5be1b6";
-      sha256 = "1j6fdr1sg36qy4n4xjl7brq739fpm5npq98cmvklzjc9qrx98nk9";
-    };
-  }
-  {
-    goPackagePath = "github.com/aws/aws-sdk-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/aws/aws-sdk-go";
-      rev = "v1.31.4";
-      sha256 = "07ia78j6j2y139iq9x5gin0fwc77wv8x0zhg47kibykxn4iyx85y";
-    };
-  }
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "v1.0.0";
-      sha256 = "1i1nz1f6g55xi2y3aiaz5kqfgvknarbfl4f0sx4nyyb4s7xb1z9x";
-    };
-  }
-  {
-    goPackagePath = "github.com/cenkalti/backoff";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cenkalti/backoff";
-      rev = "v2.2.1";
-      sha256 = "1mf4lsl3rbb8kk42x0mrhzzy4ikqy0jf6nxpzhkr02rdgwh6rjk8";
-    };
-  }
-  {
-    goPackagePath = "github.com/census-instrumentation/opencensus-proto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/census-instrumentation/opencensus-proto";
-      rev = "v0.2.1";
-      sha256 = "19fcx3sc99i5dsklny6r073z5j20vlwn2xqm6di1q3b1xwchzqfj";
-    };
-  }
-  {
-    goPackagePath = "github.com/cespare/xxhash";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cespare/xxhash";
-      rev = "v1.1.0";
-      sha256 = "1qyzlcdcayavfazvi03izx83fvip8h36kis44zr2sg7xf6sx6l4x";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/logex";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/logex";
-      rev = "v1.1.10";
-      sha256 = "08pbjj3wx9acavlwyr055isa8a5hnmllgdv5k6ra60l5y1brmlq4";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/readline";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/readline";
-      rev = "2972be24d48e";
-      sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/test";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/test";
-      rev = "a1ea475d72b1";
-      sha256 = "0rns2aqk22i9xsgyap0pq8wi4cfaxsri4d9q6xxhhyma8jjsnj2k";
-    };
-  }
-  {
-    goPackagePath = "github.com/client9/misspell";
-    fetch = {
-      type = "git";
-      url = "https://github.com/client9/misspell";
-      rev = "v0.3.4";
-      sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs";
-    };
-  }
-  {
-    goPackagePath = "github.com/cncf/udpa";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cncf/udpa";
-      rev = "269d4d468f6f";
-      sha256 = "0i1jiaw2k3hlwwmg4hap81vb4s1p25xp9kdfww37v0fbgjariccs";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/bbolt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/bbolt";
-      rev = "v1.3.2";
-      sha256 = "13d5l6p6c5wvkr6vn9hkhz9c593qifn7fgx0hg4d6jcvg1y0bnm2";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/etcd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/etcd";
-      rev = "v3.3.10";
-      sha256 = "1x2ii1hj8jraba8rbxz6dmc03y3sjxdnzipdvg6fywnlq1f3l3wl";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-semver";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-semver";
-      rev = "v0.2.0";
-      sha256 = "1gghi5bnqj50hfxhqc1cxmynqmh2yk9ii7ab9gsm75y5cp94ymk0";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-systemd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-systemd";
-      rev = "95778dfbb74e";
-      sha256 = "1s3bg9p78wkixn2bqb2p23wbsqfg949ml6crw2b498s71mwh8rcf";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/pkg";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/pkg";
-      rev = "399ea9e2e55f";
-      sha256 = "0nxbn0m7lr4dg0yrwnvlkfiyg3ndv8vdpssjx7b714nivpc6ar0y";
-    };
-  }
-  {
-    goPackagePath = "github.com/cpuguy83/go-md2man";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cpuguy83/go-md2man";
-      rev = "v2.0.0";
-      sha256 = "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv";
-    };
-  }
-  {
-    goPackagePath = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev = "v1.1.1";
-      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
-    };
-  }
-  {
-    goPackagePath = "github.com/dgrijalva/jwt-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgrijalva/jwt-go";
-      rev = "v3.2.0";
-      sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp";
-    };
-  }
-  {
-    goPackagePath = "github.com/dgryski/go-sip13";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgryski/go-sip13";
-      rev = "e10d5fee7954";
-      sha256 = "15fyibfas209ljz3f7g07kdmfbl3hhyd9n5n7aq5n5p9m5mn41d6";
-    };
-  }
-  {
-    goPackagePath = "github.com/dnaeon/go-vcr";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dnaeon/go-vcr";
-      rev = "v1.0.1";
-      sha256 = "1d0kpqr12qrqlamz5a47bp05mx49za2v6l1k7c6z71xahfmb7v2d";
-    };
-  }
-  {
-    goPackagePath = "github.com/dustin/go-humanize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dustin/go-humanize";
-      rev = "v1.0.0";
-      sha256 = "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3";
-    };
-  }
-  {
-    goPackagePath = "github.com/envoyproxy/go-control-plane";
-    fetch = {
-      type = "git";
-      url = "https://github.com/envoyproxy/go-control-plane";
-      rev = "v0.9.4";
-      sha256 = "0m0crzx70lp7vz13v20wxb1fcfdnzp7h3mkh3bn6a8mbfz6w5asj";
-    };
-  }
-  {
-    goPackagePath = "github.com/envoyproxy/protoc-gen-validate";
-    fetch = {
-      type = "git";
-      url = "https://github.com/envoyproxy/protoc-gen-validate";
-      rev = "v0.1.0";
-      sha256 = "0kxd3wwh3xwqk0r684hsy281xq4y71cd11d4q2hspcjbnlbwh7cy";
-    };
-  }
-  {
-    goPackagePath = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "github.com/ghodss/yaml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ghodss/yaml";
-      rev = "v1.0.0";
-      sha256 = "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-gl/glfw";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-gl/glfw";
-      rev = "6f7a984d4dc4";
-      sha256 = "1nyv7h08qf4dp8w9pmcnrc6vv9bkwj8fil6pz0mkbss5hf4i8xcq";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-kit/kit";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-kit/kit";
-      rev = "v0.8.0";
-      sha256 = "1rcywbc2pvab06qyf8pc2rdfjv7r6kxdv2v4wnpqnjhz225wqvc0";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-logfmt/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-logfmt/logfmt";
-      rev = "v0.4.0";
-      sha256 = "06smxc112xmixz78nyvk3b2hmc7wasf2sl5vxj1xz62kqcq9lzm9";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-sql-driver/mysql";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-sql-driver/mysql";
-      rev = "v1.5.0";
-      sha256 = "11x0m9yf3kdnf6981182r824psgxwfaqhn3x3in4yiidp0w0hk3v";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-stack/stack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-stack/stack";
-      rev = "v1.8.0";
-      sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v";
-    };
-  }
-  {
-    goPackagePath = "github.com/gogo/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gogo/protobuf";
-      rev = "v1.2.1";
-      sha256 = "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/glog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/glog";
-      rev = "23def4e6c14b";
-      sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/groupcache";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/groupcache";
-      rev = "8c9f03a8e57e";
-      sha256 = "0vjjr79r32icjzlb05wn02k59av7jx0rn1jijml8r4whlg7dnkfh";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/mock";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/mock";
-      rev = "v1.4.3";
-      sha256 = "1p37xnja1dgq5ykx24n7wincwz2gahjh71b95p8vpw7ss2g8j8wx";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.4.1";
-      sha256 = "0w7ks4vffnnkp0miwgc3chrsnmya45lzvpahb2wmw0jwhdp5kdx7";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/btree";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/btree";
-      rev = "v1.0.0";
-      sha256 = "0ba430m9fbnagacp57krgidsyrgp3ycw5r7dj71brgp5r52g82p6";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/go-cmp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-cmp";
-      rev = "v0.4.0";
-      sha256 = "1x5pvl3fb5sbyng7i34431xycnhmx8xx94gq2n19g6p0vz68z2v2";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/martian";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/martian";
-      rev = "v2.1.0";
-      sha256 = "197hil6vrjk50b9wvwyzf61csid83whsjj6ik8mc9r2lryxlyyrp";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/pprof";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/pprof";
-      rev = "fc25d7d30c6d";
-      sha256 = "0ba28qx2i1bi6n6x5g670v8hmqavwj8lwl8psnc6vzagmdhjw0vg";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/renameio";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/renameio";
-      rev = "v0.1.0";
-      sha256 = "1ki2x5a9nrj17sn092d6n4zr29lfg5ydv4xz5cp58z6cw8ip43jx";
-    };
-  }
-  {
-    goPackagePath = "github.com/googleapis/gax-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/gax-go";
-      rev = "v2.0.5";
-      sha256 = "1lxawwngv6miaqd25s3ba0didfzylbwisd2nz7r4gmbmin6jsjrx";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/websocket";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/websocket";
-      rev = "v1.4.0";
-      sha256 = "00i4vb31nsfkzzk7swvx3i75r2d960js3dri1875vypk3v2s0pzk";
-    };
-  }
-  {
-    goPackagePath = "github.com/grpc-ecosystem/go-grpc-middleware";
-    fetch = {
-      type = "git";
-      url = "https://github.com/grpc-ecosystem/go-grpc-middleware";
-      rev = "v1.0.0";
-      sha256 = "0lwgxih021xfhfb1xb9la5f98bpgpaiz63sbllx77qwwl2rmhrsp";
-    };
-  }
-  {
-    goPackagePath = "github.com/grpc-ecosystem/go-grpc-prometheus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/grpc-ecosystem/go-grpc-prometheus";
-      rev = "v1.2.0";
-      sha256 = "1lzk54h7np32b3acidg1ggbn8ppbnns0m71gcg9d1qkkdh8zrijl";
-    };
-  }
-  {
-    goPackagePath = "github.com/grpc-ecosystem/grpc-gateway";
-    fetch = {
-      type = "git";
-      url = "https://github.com/grpc-ecosystem/grpc-gateway";
-      rev = "v1.9.0";
-      sha256 = "1r4y48c76yxc2hpqszfjirvh7zxjb6z72qmk95li12ar79dhv3dy";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/golang-lru";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/golang-lru";
-      rev = "v0.5.1";
-      sha256 = "13f870cvk161bzjj6x41l45r5x9i1z9r2ymwmvm7768kg08zznpy";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/hcl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/hcl";
-      rev = "v1.0.0";
-      sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
-    };
-  }
-  {
-    goPackagePath = "github.com/ianlancetaylor/demangle";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ianlancetaylor/demangle";
-      rev = "5e5cf60278f6";
-      sha256 = "1fhjk11cip9c3jyj1byz9z77n6n2rlxmyz0xjx1zpn1da3cvri75";
-    };
-  }
-  {
-    goPackagePath = "github.com/inconshreveable/mousetrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/inconshreveable/mousetrap";
-      rev = "v1.0.0";
-      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
-    };
-  }
-  {
-    goPackagePath = "github.com/jmespath/go-jmespath";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jmespath/go-jmespath";
-      rev = "v0.3.0";
-      sha256 = "12qgp7yb7yfjxhd311kb820fcjmg7gd4hp2fc4v6x8s7121pwnjp";
-    };
-  }
-  {
-    goPackagePath = "github.com/jonboulle/clockwork";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jonboulle/clockwork";
-      rev = "v0.1.0";
-      sha256 = "1pqxhsdavbp1n5grgyx2j6ylvql2fzn2cvpsgkc8li69dil7sibl";
-    };
-  }
-  {
-    goPackagePath = "github.com/jstemmer/go-junit-report";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jstemmer/go-junit-report";
-      rev = "v0.9.1";
-      sha256 = "1knip80yir1cdsjlb3rzy0a4w3kl4ljpiciaz6hjzwqlfhnv7bkw";
-    };
-  }
-  {
-    goPackagePath = "github.com/juju/ratelimit";
-    fetch = {
-      type = "git";
-      url = "https://github.com/juju/ratelimit";
-      rev = "v1.0.1";
-      sha256 = "0ppwvwbh9jdpdk4f9924vw373cpfz5g5ad10c707p22a984vanrz";
-    };
-  }
-  {
-    goPackagePath = "github.com/julienschmidt/httprouter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/julienschmidt/httprouter";
-      rev = "v1.2.0";
-      sha256 = "1k8bylc9s4vpvf5xhqh9h246dl1snxrzzz0614zz88cdh8yzs666";
-    };
-  }
-  {
-    goPackagePath = "github.com/kisielk/errcheck";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kisielk/errcheck";
-      rev = "v1.1.0";
-      sha256 = "19vd4rxmqbk5lpiav3pf7df3yjlz0l0dwx9mn0gjq5f998iyhy6y";
-    };
-  }
-  {
-    goPackagePath = "github.com/kisielk/gotool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kisielk/gotool";
-      rev = "v1.0.0";
-      sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
-    };
-  }
-  {
-    goPackagePath = "github.com/klauspost/compress";
-    fetch = {
-      type = "git";
-      url = "https://github.com/klauspost/compress";
-      rev = "v1.10.6";
-      sha256 = "0jnm5mjazxkjwzb7z6sjlqm2l68z4h4xjhir2lgfkf04rj4l290s";
-    };
-  }
-  {
-    goPackagePath = "github.com/klauspost/pgzip";
-    fetch = {
-      type = "git";
-      url = "https://github.com/klauspost/pgzip";
-      rev = "v1.2.4";
-      sha256 = "0mnhfdn0isbkra455jynqjbmrwymx09shlbzbyvgfycih3nbrif0";
-    };
-  }
-  {
-    goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
-    fetch = {
-      type = "git";
-      url = "https://github.com/konsorten/go-windows-terminal-sequences";
-      rev = "v1.0.1";
-      sha256 = "1lchgf27n276vma6iyxa0v1xds68n2g8lih5lavqnx5x6q5pw2ip";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/logfmt";
-      rev = "b84e30acd515";
-      sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pretty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pretty";
-      rev = "v0.1.0";
-      sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pty";
-      rev = "v1.1.1";
-      sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/text";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/text";
-      rev = "v0.1.0";
-      sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
-    };
-  }
-  {
-    goPackagePath = "github.com/kurin/blazer";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kurin/blazer";
-      rev = "v0.5.3";
-      sha256 = "18jsq7n31ycvaivpvyksbddj82spw4g29w6dx92x2wab2hzbc7ik";
-    };
-  }
-  {
-    goPackagePath = "github.com/magiconair/properties";
-    fetch = {
-      type = "git";
-      url = "https://github.com/magiconair/properties";
-      rev = "v1.8.0";
-      sha256 = "1a10362wv8a8qwb818wygn2z48lgzch940hvpv81hv8gc747ajxn";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-ieproxy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-ieproxy";
-      rev = "v0.0.1";
-      sha256 = "0x1ijwwp22s20vjbca5ac7y7bx2jp6jizzqa38ks4943q7vi4w09";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "v1.0.1";
-      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
-    };
-  }
-  {
-    goPackagePath = "github.com/miolini/datacounter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/miolini/datacounter";
-      rev = "v1.0.2";
-      sha256 = "0lqhdb9glx65ycjjrqqqpd28zi95qnr2sdz93y6fma0khss46c5f";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/go-homedir";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/go-homedir";
-      rev = "v1.1.0";
-      sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/mapstructure";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/mapstructure";
-      rev = "v1.1.2";
-      sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr";
-    };
-  }
-  {
-    goPackagePath = "github.com/mwitkow/go-conntrack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mwitkow/go-conntrack";
-      rev = "cc309e4a2223";
-      sha256 = "0nbrnpk7bkmqg9mzwsxlm0y8m7s9qd9phr1q30qlx2qmdmz7c1mf";
-    };
-  }
-  {
-    goPackagePath = "github.com/nightlyone/lockfile";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nightlyone/lockfile";
-      rev = "v1.0.0";
-      sha256 = "0jzlngank7yaq5pl5mipsfglmalv9x2b9yhqr78w5dmx4hikh7kr";
-    };
-  }
-  {
-    goPackagePath = "github.com/oklog/ulid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/oklog/ulid";
-      rev = "v1.3.1";
-      sha256 = "0hybwyid820n80axrk863k2py93hbqlq6hxhf84ppmz0qd0ys0gq";
-    };
-  }
-  {
-    goPackagePath = "github.com/op/go-logging";
-    fetch = {
-      type = "git";
-      url = "https://github.com/op/go-logging";
-      rev = "970db520ece7";
-      sha256 = "1cpna2x5l071z1vrnk7zipdkka8dzwsjyx7m79xk0lr08rip0kcj";
-    };
-  }
-  {
-    goPackagePath = "github.com/pelletier/go-toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pelletier/go-toml";
-      rev = "v1.2.0";
-      sha256 = "1fjzpcjng60mc3a4b2ql5a00d5gah84wj740dabv9kq67mpg8fxy";
-    };
-  }
-  {
-    goPackagePath = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev = "v0.9.1";
-      sha256 = "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq";
-    };
-  }
-  {
-    goPackagePath = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev = "v1.0.0";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "v0.9.3";
-      sha256 = "1608rm1y2p3iv8k2x7wyc6hshvpbfkv2k77hy0x870syms1g3g1p";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "14fe0d1b01d4";
-      sha256 = "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "v0.4.0";
-      sha256 = "00008pczafy982m59n1j31pnp41f4grbc2c40jccp52xg3m5klmr";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "5867b95ac084";
-      sha256 = "1rahdk62ajj4zpfb3mgzjqip773la9fb0m87m7s9a0b39l3fmzvr";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/tsdb";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/tsdb";
-      rev = "v0.7.1";
-      sha256 = "1c1da8i5byvhh4fp3vqjfb65aaksjskn3ggb8wg9hcfzjrhgpz04";
-    };
-  }
-  {
-    goPackagePath = "github.com/rogpeppe/fastuuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rogpeppe/fastuuid";
-      rev = "6724a57986af";
-      sha256 = "12s65phfx6hxj4v0b5kj8akgrbf5mxpa101fyzw03h6hld1f70cz";
-    };
-  }
-  {
-    goPackagePath = "github.com/rogpeppe/go-internal";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rogpeppe/go-internal";
-      rev = "v1.3.0";
-      sha256 = "0mcdh1licgnnahwml9y2iq6xy5x9xmjw5frcnds2s3wpjyqrl216";
-    };
-  }
-  {
-    goPackagePath = "github.com/russross/blackfriday";
-    fetch = {
-      type = "git";
-      url = "https://github.com/russross/blackfriday";
-      rev = "v2.0.1";
-      sha256 = "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j";
-    };
-  }
-  {
-    goPackagePath = "github.com/satori/go.uuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/satori/go.uuid";
-      rev = "v1.2.0";
-      sha256 = "1j4s5pfg2ldm35y8ls8jah4dya2grfnx2drb4jcbjsyrp4cm5yfb";
-    };
-  }
-  {
-    goPackagePath = "github.com/shurcooL/sanitized_anchor_name";
-    fetch = {
-      type = "git";
-      url = "https://github.com/shurcooL/sanitized_anchor_name";
-      rev = "v1.0.0";
-      sha256 = "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f";
-    };
-  }
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev = "v1.2.0";
-      sha256 = "0r6334x2bls8ddznvzaldx4g88msjjns4mlks95rqrrg7h0ijigg";
-    };
-  }
-  {
-    goPackagePath = "github.com/soheilhy/cmux";
-    fetch = {
-      type = "git";
-      url = "https://github.com/soheilhy/cmux";
-      rev = "v0.1.4";
-      sha256 = "1f736g68d9vwlyfb6g0fxkr0r875369xafk30cz8kaq5niaqwv0h";
-    };
-  }
-  {
-    goPackagePath = "github.com/spaolacci/murmur3";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spaolacci/murmur3";
-      rev = "f09979ecbc72";
-      sha256 = "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/afero";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/afero";
-      rev = "v1.1.2";
-      sha256 = "0miv4faf5ihjfifb1zv6aia6f6ik7h1s4954kcb8n6ixzhx9ck6k";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/cast";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cast";
-      rev = "v1.3.0";
-      sha256 = "0xq1ffqj8y8h7dcnm0m9lfrh0ga7pssnn2c1dnr09chqbpn4bdc5";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/cobra";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cobra";
-      rev = "v1.0.0";
-      sha256 = "0vbppqqhby302a5ayn0296jqr71qkcd4c9am7wzsk6z71fwdsa7h";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/jwalterweatherman";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/jwalterweatherman";
-      rev = "v1.0.0";
-      sha256 = "093fmmvavv84pv4q84hav7ph3fmrq87bvspjj899q0qsx37yvdr8";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev = "v1.0.5";
-      sha256 = "0gpmacngd0gpslnbkzi263f5ishigzgh6pbdv9hp092rnjl4nd31";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/viper";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/viper";
-      rev = "v1.4.0";
-      sha256 = "1zpzxvn13wpvbblbbn73svaq39zgxfjqhci9d68g3qf309pcfy19";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/objx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/objx";
-      rev = "v0.1.1";
-      sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.5.1";
-      sha256 = "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl";
-    };
-  }
-  {
-    goPackagePath = "github.com/tmc/grpc-websocket-proxy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tmc/grpc-websocket-proxy";
-      rev = "0ad062ec5ee5";
-      sha256 = "1anw4v9wspnw9xf2z5r9w0sszwjklyanl0l85wgg6nxak9gnrqp4";
-    };
-  }
-  {
-    goPackagePath = "github.com/ugorji/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ugorji/go";
-      rev = "v1.1.4";
-      sha256 = "0ma2qvn5wqvjidpdz74x832a813qnr1cxbx6n6n125ak9b3wbn5w";
-    };
-  }
-  {
-    goPackagePath = "github.com/xiang90/probing";
-    fetch = {
-      type = "git";
-      url = "https://github.com/xiang90/probing";
-      rev = "43a291ad63a2";
-      sha256 = "1z22ms16j5j42775mf31isanwx2pwr1d8wqw8006dczjv36qnz5i";
-    };
-  }
-  {
-    goPackagePath = "github.com/xordataexchange/crypt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/xordataexchange/crypt";
-      rev = "b2862e3d0a77";
-      sha256 = "04q3856anpzl4gdfgmg7pbp9cx231nkz3ymq2xp27rnmmwhfxr8y";
-    };
-  }
-  {
-    goPackagePath = "github.com/yuin/goldmark";
-    fetch = {
-      type = "git";
-      url = "https://github.com/yuin/goldmark";
-      rev = "v1.1.27";
-      sha256 = "1872cqnii0kwiqcy81yin0idvjy5mdy4zlzz0csb319lcjs3b923";
-    };
-  }
-  {
-    goPackagePath = "go.etcd.io/bbolt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/etcd-io/bbolt";
-      rev = "v1.3.2";
-      sha256 = "13d5l6p6c5wvkr6vn9hkhz9c593qifn7fgx0hg4d6jcvg1y0bnm2";
-    };
-  }
-  {
-    goPackagePath = "go.opencensus.io";
-    fetch = {
-      type = "git";
-      url = "https://github.com/census-instrumentation/opencensus-go";
-      rev = "v0.22.3";
-      sha256 = "0xj16iq5jp26hi2py7lsd8cvqh651fgn39y05gzvjdi88d9xd3nw";
-    };
-  }
-  {
-    goPackagePath = "go.uber.org/atomic";
-    fetch = {
-      type = "git";
-      url = "https://github.com/uber-go/atomic";
-      rev = "v1.4.0";
-      sha256 = "0c6yzx15c20719xii3dm0vyjd8i9jx45m0wh5yp1zf29b0gbljcy";
-    };
-  }
-  {
-    goPackagePath = "go.uber.org/multierr";
-    fetch = {
-      type = "git";
-      url = "https://github.com/uber-go/multierr";
-      rev = "v1.1.0";
-      sha256 = "1slfc6syvw8cvr6rbrjsy6ja5w8gsx0f8aq8qm16rp2x5c2pj07w";
-    };
-  }
-  {
-    goPackagePath = "go.uber.org/zap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/uber-go/zap";
-      rev = "v1.10.0";
-      sha256 = "10hdzr1rghwbsl6bbd30779dx44fh9mg9pq8d2cgqlknqxxpvpvr";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "06a226fb4e37";
-      sha256 = "0fdig6jx81g7a44dnxggibl909wchsj4nakmmhhz7db36sl0d7m5";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/exp";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/exp";
-      rev = "6cc2880d07d6";
-      sha256 = "1iia6hiif6hcp0cg1i6nq63qg0pmvm2kq24pf2r2il3597rfmlgy";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/image";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/image";
-      rev = "cff245a6509b";
-      sha256 = "0hiznlkiaay30acwvvyq8g6bm32r7bc6gv47pygrcxqpapasbz84";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/lint";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/lint";
-      rev = "738671d3881b";
-      sha256 = "0jkiz4py59jjnkyxbxifpf7bsar11lbgmj5jiq2kic5k03shkn9c";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/mobile";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/mobile";
-      rev = "d2bd2a29d028";
-      sha256 = "1nv6vvhnjr01nx9y06q46ww87dppdwpbqrlsfg1xf2587wxl8xiv";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/mod";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/mod";
-      rev = "v0.2.0";
-      sha256 = "1fp6885dclq77mh73v7i54v2b9llpv4di193zc8vmsbbkkc483cl";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "7e3656a0809f";
-      sha256 = "1rmj59bd0hvf8cbp42c0y8y38prs5ill1zszhqp9i8m86cvkfqk9";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/oauth2";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/oauth2";
-      rev = "bf48bf16ab8d";
-      sha256 = "1sirdib60zwmh93kf9qrx51r8544k1p9rs5mk0797wibz3m4mrdg";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "43a5402ce75a";
-      sha256 = "0j6zrrb81qjr1926kkwmn0di9a0jn8qyjd9dw614rfkihxgq1vsm";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "7e40ca221e25";
-      sha256 = "1fkhs1sn6prfsqaj70kya2gn1sqqa85lmgff6j6s7027zc1yjvqa";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.2";
-      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/time";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/time";
-      rev = "555d28b269f0";
-      sha256 = "1rhl4lyz030kwfsg63yk83yd3ivryv1afmzdz9sxbhcj84ym6h4r";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "2bc93b1c0c88";
-      sha256 = "10sg7nvw40f2d6hxmsy4nvhmawbidk022v3arbh8acsjxglw84zs";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/xerrors";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/xerrors";
-      rev = "9bdfabe68543";
-      sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/api";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/google-api-go-client";
-      rev = "v0.25.0";
-      sha256 = "0bfpii160ns1pl3iqc38h5db258mv58igf2ifglds3dajgsj2qrr";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/appengine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/appengine";
-      rev = "v1.6.6";
-      sha256 = "15c38h6fbv06cnkr6yknygfrpibyms2mya4w0l29kaxf42jn1qi5";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/genproto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/go-genproto";
-      rev = "f5ebc3bea380";
-      sha256 = "1v5dyp6g35rwjwx1ixjy7yh1hay4n7ya5aq5h4ckvd9h0j7rw5sz";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/grpc";
-    fetch = {
-      type = "git";
-      url = "https://github.com/grpc/grpc-go";
-      rev = "v1.29.1";
-      sha256 = "1465947r6536si36cl2ppx7929la9zba1y6xfczfyp4kgf8988hf";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/protobuf";
-      rev = "v1.22.0";
-      sha256 = "0n7lc4m7kfvj01glc0gnjy0zsnsic7cxnbvlajy0h14cxbab87pj";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "v2.2.6";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "788fd7840127";
-      sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/errgo.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/errgo.v2";
-      rev = "v2.1.0";
-      sha256 = "065mbihiy7q67wnql0bzl9y1kkvck5ivra68254zbih52jxwrgr2";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/resty.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/resty.v1";
-      rev = "v1.12.0";
-      sha256 = "062mn735rqzhha5ag07z4gz08hxzrfm2yx067jfmaaxmb6797lmp";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.2";
-      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
-    };
-  }
-  {
-    goPackagePath = "honnef.co/go/tools";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dominikh/go-tools";
-      rev = "v0.0.1-2020.1.3";
-      sha256 = "0pvi1mzhy6zgx4zfgdypbl4zhvgg11hl5qv7blf2qs0a96j2djhf";
-    };
-  }
-  {
-    goPackagePath = "rsc.io/binaryregexp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rsc/binaryregexp";
-      rev = "v0.2.0";
-      sha256 = "1kar0myy85waw418zslviwx8846zj0m9cmqkxjx0fvgjdi70nc4b";
-    };
-  }
-  {
-    goPackagePath = "rsc.io/quote";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rsc/quote";
-      rev = "v3.1.0";
-      sha256 = "0nvv97hwwrl1mx5gzsbdm1ndnwpg3m7i2jb10ig9wily7zmvki0i";
-    };
-  }
-  {
-    goPackagePath = "rsc.io/sampler";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rsc/sampler";
-      rev = "v1.3.0";
-      sha256 = "0byxk2ynba50py805kcvbvjzh59l1r308i1xgyzpw6lff4xx9xjh";
-    };
-  }
-]
diff --git a/pkgs/tools/bluetooth/blueman/default.nix b/pkgs/tools/bluetooth/blueman/default.nix
index 74ebb04f74744..2f59d14902bb2 100644
--- a/pkgs/tools/bluetooth/blueman/default.nix
+++ b/pkgs/tools/bluetooth/blueman/default.nix
@@ -9,11 +9,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "blueman";
-  version = "2.2.4";
+  version = "2.2.5";
 
   src = fetchurl {
     url = "https://github.com/blueman-project/blueman/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-VdY5/u2gtDsYplnmWYUhOlS0fcsTSPO07/tSONskJgI=";
+    sha256 = "sha256-yfPAqU3HyAvTIwS7Jf3tIU/jC3AY6e9Gsvy9HYA8fHw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/filesystems/bindfs/default.nix b/pkgs/tools/filesystems/bindfs/default.nix
index 12052100db32a..333157d829fb8 100644
--- a/pkgs/tools/filesystems/bindfs/default.nix
+++ b/pkgs/tools/filesystems/bindfs/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, fuse, pkg-config }:
 
 stdenv.mkDerivation rec {
-  version = "1.15.1";
+  version = "1.16.0";
   pname = "bindfs";
 
   src = fetchurl {
     url    = "https://bindfs.org/downloads/${pname}-${version}.tar.gz";
-    sha256 = "sha256-BN01hKbN+a9DRNQDxiGFyp+rMc465aJdAQG8EJNsaKs=";
+    sha256 = "sha256-AuvvqqZOGwRPxcdDxYKarSHtb3FF9NsHI7zEXwhXgfY=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/filesystems/catcli/default.nix b/pkgs/tools/filesystems/catcli/default.nix
index 540c4ba6c5f96..dbce4cb7c8c18 100644
--- a/pkgs/tools/filesystems/catcli/default.nix
+++ b/pkgs/tools/filesystems/catcli/default.nix
@@ -7,13 +7,13 @@
 buildPythonApplication rec {
 
   pname = "catcli";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "deadc0de6";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "1hkgf692h3akdxiwhzm3vqibh1ps661qllilf55nyk109cx79gna";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-fnnioUMZZZOydpZixiTOHAL2fSA6TOE4AO9Gff5SDxY=";
   };
 
   propagatedBuildInputs = [ docopt anytree ];
diff --git a/pkgs/tools/filesystems/gcsfuse/default.nix b/pkgs/tools/filesystems/gcsfuse/default.nix
index 0a621c5e034df..12447377ae933 100644
--- a/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -1,32 +1,32 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "gcsfuse";
-  version = "0.41.1";
+  version = "0.41.4";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    sha256 = "sha256-5Kfd033SG1ldF+2QCZ01aa7ts0mA8uPXiLmqZIr94YQ=";
+    sha256 = "sha256-8QzSvR/uelp9iBLK+DsUXsH6fBOIoeXePeN7Spht6SE=";
   };
 
-  goPackagePath = "github.com/googlecloudplatform/gcsfuse";
+  vendorSha256 = null;
 
   subPackages = [ "." "tools/mount_gcsfuse" ];
 
+  ldflags = [ "-s" "-w" "-X main.gcsfuseVersion=${version}" ];
+
   postInstall = ''
     ln -s $out/bin/mount_gcsfuse $out/bin/mount.gcsfuse
     ln -s $out/bin/mount_gcsfuse $out/bin/mount.fuse.gcsfuse
   '';
 
-  ldflags = [ "-s" "-w" "-X main.gcsfuseVersion=${version}" ];
-
   meta = with lib;{
     description = "A user-space file system for interacting with Google Cloud Storage";
     homepage = "https://cloud.google.com/storage/docs/gcs-fuse";
     license = licenses.asl20;
     platforms = platforms.unix;
-    maintainers = [];
+    maintainers = with maintainers; [ aaronjheng ];
   };
 }
diff --git a/pkgs/tools/filesystems/httm/default.nix b/pkgs/tools/filesystems/httm/default.nix
index f4cfdc46e9b43..c68e692ed2d1b 100644
--- a/pkgs/tools/filesystems/httm/default.nix
+++ b/pkgs/tools/filesystems/httm/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "httm";
-  version = "0.11.6";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = "kimono-koans";
     repo = pname;
     rev = version;
-    sha256 = "5jeCENAas7i/eBySSBjwmdc3MEHVhWWH7/RZGS8g1Y4=";
+    sha256 = "2pShuWJns8VnxiRgj5GLv5Y7H5Qw/SfQ6lVo6VqyU/A=";
   };
 
-  cargoSha256 = "x4qfi3Wm5r0HNqDgmJBXNvS1xQDU7MQ/H2+zNpHon+s=";
+  cargoSha256 = "x5JUwQxrZ5TBG8FAMlomTkZOCxV0c/7i5sx33BCUkKo=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/games/minecraft/packwiz/default.nix b/pkgs/tools/games/minecraft/packwiz/default.nix
index 3be2798312e77..80feced2b7013 100644
--- a/pkgs/tools/games/minecraft/packwiz/default.nix
+++ b/pkgs/tools/games/minecraft/packwiz/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "packwiz";
-  version = "unstable-2022-5-25";
+  version = "unstable-2022-06-08";
 
   src = fetchFromGitHub {
     owner = "packwiz";
     repo = "packwiz";
-    rev = "e71b63ea98283c8c1f0e03ee51ae40f452f22a61";
-    sha256 = "sha256-XwGacEVfQAduDCSMQFRw7Xnx4bND2zaV7l27B+2u5xg=";
+    rev = "d051932bbbeb7b16cd21a1897019428e71f63bfd";
+    sha256 = "sha256-H1v5pY9hJYGP0ZiE/GrsATf1ljw69085t6PQhPOfYCs=";
   };
 
   vendorSha256 = "sha256-M9u7N4IrL0B4pPRQwQG5TlMaGT++w3ZKHZ0RdxEHPKk=";
diff --git a/pkgs/tools/graphics/wallutils/default.nix b/pkgs/tools/graphics/wallutils/default.nix
index d7c37bb2742b7..a10f0673fc2f6 100644
--- a/pkgs/tools/graphics/wallutils/default.nix
+++ b/pkgs/tools/graphics/wallutils/default.nix
@@ -5,13 +5,13 @@
 
 buildGoPackage rec {
   pname = "wallutils";
-  version = "5.10.0";
+  version = "5.11.0";
 
   src = fetchFromGitHub {
     owner = "xyproto";
     repo = "wallutils";
     rev = version;
-    sha256 = "1phlkpy8kg4ai2xmachpbbxvl8fga9hqqbad2a2121yl60709l1k";
+    sha256 = "sha256-5yx6++uciCoT+gcqGnag9V1eYdfwHIQ8WrsuGU4A51E=";
   };
 
   goPackagePath = "github.com/xyproto/wallutils";
diff --git a/pkgs/tools/misc/antimicrox/default.nix b/pkgs/tools/misc/antimicrox/default.nix
index b39d9b17002fe..73e430e54e340 100644
--- a/pkgs/tools/misc/antimicrox/default.nix
+++ b/pkgs/tools/misc/antimicrox/default.nix
@@ -12,13 +12,13 @@
 
 mkDerivation rec {
   pname = "antimicrox";
-  version = "3.2.3";
+  version = "3.2.4";
 
   src = fetchFromGitHub {
     owner = "AntiMicroX";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Qn2XT/l3zx0u3twKsQr1cHbaRiLTglQf0WNx8tqtKro=";
+    sha256 = "sha256-catgal3bpWJUcTo0x0V0X3VV87AHO2Dp58IpQ/ILsZ8=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules pkg-config itstool ];
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index d07b7a716b428..dc7a92c4bef0d 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -15,14 +15,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "1.13.1";
+  version = "1.13.3";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-mAa6AT8z+U2d6BSqYwnlwqQG7GEF8CgcdZweLBC+Wws=";
+    sha256 = "sha256-OiBmgXGyxEIS7rkRmJbEZdoWPk27j+QD5I+mqJSSxH0=";
   };
 
-  cargoHash = "sha256-y5RRNy+9NPuiD3e62hYQGNQ9tkre9sQ1oCRG1AlcVos=";
+  cargoHash = "sha256-qc68n8bxKuzqnhwS+d33hC4PWZJG1UQMytQUGyJd1bc=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/misc/chafa/default.nix b/pkgs/tools/misc/chafa/default.nix
index 7a0178eea735f..85b52dd398c25 100644
--- a/pkgs/tools/misc/chafa/default.nix
+++ b/pkgs/tools/misc/chafa/default.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.8.0";
+  version = "1.10.3";
   pname = "chafa";
 
   src = fetchFromGitHub {
     owner = "hpjansson";
     repo = "chafa";
     rev = version;
-    sha256 = "sha256-8ENPmcl0KVxoBu8FGOGk+y8XsONWW0YW32MHAKBUiPE=";
+    sha256 = "sha256-GRPn0xPWtCayOdmA6M+KQrObAHtZIJLEydXaKhhO5IU=";
   };
 
   nativeBuildInputs = [ autoconf
diff --git a/pkgs/tools/misc/chezmoi/default.nix b/pkgs/tools/misc/chezmoi/default.nix
index 782efb24f48d3..7fc8f0ad1458a 100644
--- a/pkgs/tools/misc/chezmoi/default.nix
+++ b/pkgs/tools/misc/chezmoi/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "chezmoi";
-  version = "2.16.0";
+  version = "2.18.1";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    sha256 = "sha256-J5L4xFdRV8eOJgILQqK0DhvP5/AXAmr7spzokhd4kcg=";
+    sha256 = "sha256-eRlEhtpUBZBS3fNrkkXPiktPyGQ2K8MFwsDVo3DUb+o=";
   };
 
-  vendorSha256 = "sha256-y+xPuW8l3XvpnlqdlNIWdweNXMsAOrwbXHq2cJQRcOY=";
+  vendorSha256 = "sha256-u+iFnBzlaa+7heQEI18WWD45TSxEpIY73ZrxjLx84Ic=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/dateutils/default.nix b/pkgs/tools/misc/dateutils/default.nix
index 20837d5ee3ec7..ec8f9ca83d93e 100644
--- a/pkgs/tools/misc/dateutils/default.nix
+++ b/pkgs/tools/misc/dateutils/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, autoreconfHook, tzdata, fetchpatch }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.9";
+  version = "0.4.10";
   pname = "dateutils";
 
   src = fetchurl {
     url = "https://bitbucket.org/hroptatyr/dateutils/downloads/${pname}-${version}.tar.xz";
-    sha256 = "1hy96h9imxdbg9y7305mgv4grr6x4qic9xy3vhgh15lvjkcmc0kr";
+    sha256 = "sha256-PFCOKIm51a7Kt9WdcyWnAIlZMRGhIwpJbasPWtZ3zew=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index ae0a38b6d3166..2307dddf6cacc 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -11,11 +11,11 @@
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "216";
+  version = "217";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "sha256-KSmC2mNNzsC2H5xOOQ/3gODsSvFQD95XGtrzbDud0W0=";
+    sha256 = "sha256-JS6lzxOsE3K4gH3VHsRY5Iucq5PBH3jFD5lSmNZWEG4=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/tools/misc/direnv/default.nix b/pkgs/tools/misc/direnv/default.nix
index f2901917b6b4e..534e77bd24394 100644
--- a/pkgs/tools/misc/direnv/default.nix
+++ b/pkgs/tools/misc/direnv/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "direnv";
-  version = "2.32.0";
+  version = "2.32.1";
 
   src = fetchFromGitHub {
     owner = "direnv";
     repo = "direnv";
     rev = "v${version}";
-    sha256 = "sha256-VPFN1W49FDzCblmTEq9UR2+j7wL5YIRxwpy6nlxBLfk=";
+    sha256 = "sha256-xweCJtGp+id2ledK5ddoXoKJp57KUvwHuqhrIo8ch8Q=";
   };
 
-  vendorSha256 = "sha256-gFGGnnR1UNT4MYC411X8NwIqVJZqhnmUlVR+XAnrKY8=";
+  vendorSha256 = "sha256-u/LukIOYRudFYOrrlZTMtDAlM3+WjoSBiueR7aySSVU=";
 
   # we have no bash at the moment for windows
   BASH_PATH =
diff --git a/pkgs/tools/misc/dsq/default.nix b/pkgs/tools/misc/dsq/default.nix
index 72cc82282e3af..62a17142bde6b 100644
--- a/pkgs/tools/misc/dsq/default.nix
+++ b/pkgs/tools/misc/dsq/default.nix
@@ -9,42 +9,36 @@
 , python3
 , curl
 , jq
+, p7zip
 , dsq
 }:
 
 buildGoModule rec {
   pname = "dsq";
-  version = "0.16.0";
+  version = "0.20.2";
 
   src = fetchFromGitHub {
     owner = "multiprocessio";
     repo = "dsq";
     rev = version;
-    hash = "sha256-emBLYiNOHYp3XsaY172DDtIdquj3U3U/Q6bogC3rvFQ=";
+    hash = "sha256-dgx1rFdhEtvyH/N3AtQE89ASBoE3CLl+ZFWwWWYe0II=";
   };
 
-  vendorSha256 = "sha256-ZZDZ3FWgOpRJB+X1hrlP8Hh1n3l7jUd39H5MDz88wOs=";
+  vendorSha256 = "sha256-bLaBBWChK2RKXd/rX9m9UfHu8zt0j8TOm5S2M02U91A=";
 
   ldflags = [ "-X" "main.Version=${version}" ];
 
-  checkInputs = [ python3 curl jq ];
+  checkInputs = [ python3 curl jq p7zip ];
 
-  preCheck =
-    let
-      taxiCsv = fetchurl {
-        url = "https://s3.amazonaws.com/nyc-tlc/trip+data/yellow_tripdata_2021-04.csv";
-        hash = "sha256-CXJPraOYAy5tViDcBi9gxI/rJ3ZXqOa/nJ/d+aREV+M=";
-      };
-    in
-    ''
-      substituteInPlace scripts/test.py \
-        --replace '${taxiCsv.url}' file://${taxiCsv} \
-        --replace 'dsq latest' 'dsq ${version}'
-    '';
+  preCheck = ''
+    substituteInPlace scripts/test.py \
+      --replace 'dsq latest' 'dsq ${version}'
+  '';
 
   checkPhase = ''
     runHook preCheck
 
+    7z e testdata/taxi.csv.7z
     cp "$GOPATH/bin/dsq" .
     python3 scripts/test.py
 
diff --git a/pkgs/tools/misc/flameshot/default.nix b/pkgs/tools/misc/flameshot/default.nix
index 82cf7a3b78fd9..4bbe0508c12c5 100644
--- a/pkgs/tools/misc/flameshot/default.nix
+++ b/pkgs/tools/misc/flameshot/default.nix
@@ -10,13 +10,13 @@
 
 mkDerivation rec {
   pname = "flameshot";
-  version = "11.0.0";
+  version = "12.0.0";
 
   src = fetchFromGitHub {
     owner = "flameshot-org";
     repo = "flameshot";
     rev = "v${version}";
-    sha256 = "sha256-SlnEXW3Uhdgl0icwYyYsKQOcYkAtHpAvL6LMXBF2gWM=";
+    sha256 = "sha256-ByW+XYTaeBTTbOaxNeF367nqgnBM+EC8jm+PmwHcVGQ=";
   };
 
   passthru = {
diff --git a/pkgs/tools/misc/qjoypad/default.nix b/pkgs/tools/misc/qjoypad/default.nix
index 0c3b4a9ed2f83..018086e6dc7cb 100644
--- a/pkgs/tools/misc/qjoypad/default.nix
+++ b/pkgs/tools/misc/qjoypad/default.nix
@@ -1,21 +1,19 @@
-{ lib, stdenv, fetchurl, pkg-config, libX11, libXtst, qt4 }:
-stdenv.mkDerivation rec {
+{ lib, mkDerivation, fetchFromGitHub, pkg-config, cmake, libX11, libXtst, qtbase, qttools, qtx11extras }:
+mkDerivation rec {
   pname = "qjoypad";
-  version = "4.1.0";
-  src = fetchurl {
-    url = "mirror://sourceforge/qjoypad/qjoypad-${version}.tar.gz";
-    sha256 = "1jlm7i26nfp185xrl41kz5z6fgvyj51bjpz48cg27xx64y40iamm";
+  version = "4.3.1";
+
+  src = fetchFromGitHub {
+    owner = "panzi";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256:1w26ddxb1xirb7qjf7kv9llxzjhbhcb7warnxbx41qhbni46g26y";
   };
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libX11 libXtst qt4 ];
-  NIX_LDFLAGS = "-lX11";
-  patchPhase = ''
-    cd src
-    substituteInPlace config --replace /bin/bash ${stdenv.shell}
-    mkdir -p $out
-    export NIX_LDFLAGS="$NIX_LDFLAGS -rpath ${libX11}/lib"
-  '';
-  meta = {
+
+  nativeBuildInputs = [ pkg-config cmake ];
+  buildInputs = [ libX11 libXtst qtbase qttools qtx11extras ];
+
+  meta = with lib; {
     description = "A program that lets you use gaming devices anywhere";
     longDescription = ''
       A simple Linux/QT program that lets you use your gaming devices
@@ -33,9 +31,9 @@ stdenv.mkDerivation rec {
       of gaming devices in Linux, and makes the Linux gaming
       experience just a little bit nicer.
     '';
-    homepage = "http://qjoypad.sourceforge.net";
+    homepage = "https://github.com/panzi/qjoypad/";
     license = lib.licenses.gpl2;
-    maintainers = with lib.maintainers; [ astsmtl ];
-    platforms = with lib.platforms; linux;
+    maintainers = with maintainers; [ astsmtl ];
+    platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/tools/misc/time-decode/default.nix b/pkgs/tools/misc/time-decode/default.nix
index 6dbb694770c8d..5dcc64cf1cfdf 100644
--- a/pkgs/tools/misc/time-decode/default.nix
+++ b/pkgs/tools/misc/time-decode/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "time-decode";
-  version = "3.2.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "digitalsleuth";
     repo = "time_decode";
-    rev = "v${version}";
-    sha256 = "1iwqdq1ail04hs8pkb6rxan4ng2jl2iar6pk72skj41xh4qhlyg6";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-J5mgAEANAKKbzRMX/LIpdlnP8GkOXFEOmhEO495Z0p4=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/misc/tmux/default.nix b/pkgs/tools/misc/tmux/default.nix
index fd4361d27678a..44cbe713f096e 100644
--- a/pkgs/tools/misc/tmux/default.nix
+++ b/pkgs/tools/misc/tmux/default.nix
@@ -6,7 +6,7 @@
 , libevent
 , ncurses
 , pkg-config
-, systemd
+, withSystemd ? stdenv.isLinux && !stdenv.hostPlatform.isStatic, systemd
 , utf8proc
 }:
 
@@ -43,13 +43,13 @@ stdenv.mkDerivation rec {
   buildInputs = [
     ncurses
     libevent
-  ] ++ lib.optionals stdenv.isLinux [ systemd ]
+  ] ++ lib.optionals withSystemd [ systemd ]
   ++ lib.optionals stdenv.isDarwin [ utf8proc ];
 
   configureFlags = [
     "--sysconfdir=/etc"
     "--localstatedir=/var"
-  ] ++ lib.optionals stdenv.isLinux [ "--enable-systemd" ]
+  ] ++ lib.optionals withSystemd [ "--enable-systemd" ]
   ++ lib.optionals stdenv.isDarwin [ "--enable-utf8proc" ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index fd038d7acb128..4aee6bdeb5f51 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -25,8 +25,8 @@ buildPythonPackage rec {
   };
 
   patches = [
-    # Fixes throttling on youtube.com. Without the patch downloads are capped at
-    # about 80KiB/s. See, e.g.,
+    # Fixes throttling on youtube.com by decoding a "n-parameter". Without the patch
+    # downloads are capped at about 80KiB/s. See, e.g.,
     #
     #   https://github.com/ytdl-org/youtube-dl/issues/29326
     #
@@ -37,6 +37,20 @@ buildPythonPackage rec {
       url = "https://github.com/ytdl-org/youtube-dl/compare/57044eacebc6f2f3cd83c345e1b6e659a22e4773...1e677567cd083d43f55daef0cc74e5fa24575ae3.diff";
       sha256 = "11s0j3w60r75xx20p0x2j3yc4d3yvz99r0572si8b5qd93lqs4pr";
     })
+    # The above patch may fail to decode the n-parameter (if, say, YouTube is updated). Failure to decode
+    # it blocks the download instead of falling back to the throttled version. The patch below implements
+    # better fallback behaviour.
+    (fetchpatch {
+      name = "avoid-crashing-if-nsig-decode-fails.patch";
+      url = "https://github.com/ytdl-org/youtube-dl/commit/41f0043983c831b7c0c3614340d2f66ec153087b.diff";
+      sha256 = "sha256-a72gWhBXCLjuBBD36PpZ5F/AHBdiBv4W8Wf9g4P/aBY=";
+    })
+    # YouTube changed the n-parameter format in April 2022, so decoder updates are required.
+    (fetchpatch {
+      name = "fix-n-descrambling.patch";
+      url = "https://github.com/ytdl-org/youtube-dl/commit/a0068bd6bec16008bda7a39caecccbf84881c603.diff";
+      sha256 = "sha256-tSuEns4jputa2nOOo6JsFXpK3hvJ/+z1/ymcLsd3A6w=";
+    })
   ];
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
diff --git a/pkgs/tools/networking/brook/default.nix b/pkgs/tools/networking/brook/default.nix
index e0e37e99ac743..b4a5a30beeb35 100644
--- a/pkgs/tools/networking/brook/default.nix
+++ b/pkgs/tools/networking/brook/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "brook";
-  version = "20220515";
+  version = "20220707";
 
   src = fetchFromGitHub {
     owner = "txthinking";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-olYlAuIcK34nNXbfiPT4+u0L3xcxBMMty72FjSeuNqg=";
+    sha256 = "sha256-TlbVXfNUvCHHX0BReSVE6GNfmS+p6lWSdO0OtOC+I2U=";
   };
 
-  vendorSha256 = "sha256-ic5QYRVElEuH4D29PXgTzMHU0KjrxDqcdfg7Kd37/YU=";
+  vendorSha256 = "sha256-MPLM1lBM1K55q6nsfmOekdFlSDmPsLLDv09mD1XqLNo=";
 
   meta = with lib; {
     homepage = "https://github.com/txthinking/brook";
diff --git a/pkgs/tools/networking/mu/default.nix b/pkgs/tools/networking/mu/default.nix
index fd140bfe55edc..b218a19154a5c 100644
--- a/pkgs/tools/networking/mu/default.nix
+++ b/pkgs/tools/networking/mu/default.nix
@@ -1,53 +1,46 @@
-{ lib, stdenv, fetchFromGitHub, sqlite, pkg-config, autoreconfHook, pmccabe
-, xapian, glib, gmime3, texinfo, emacs, guile
-, gtk3, webkitgtk, libsoup, icu
-, makeWrapper
-, withMug ? false
-, batchSize ? null }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, coreutils
+, emacs
+, glib
+, gmime3
+, texinfo
+, xapian
+}:
 
 stdenv.mkDerivation rec {
   pname = "mu";
-  version = "1.6.11";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner  = "djcb";
     repo   = "mu";
-    rev    = version;
-    sha256 = "E/6+vEwYXk65/ZoAtUeTjvg56g6gz+Qtcaz0qwEru6c=";
+    rev    = "v${version}";
+    sha256 = "rb8R04eU/rG7PXx/horYk0+/3AgbxYYZtxy4ACILOZ8=";
   };
 
-  postPatch = lib.optionalString (batchSize != null) ''
-    sed -i lib/mu-store.cc --regexp-extended \
-      -e 's@(constexpr auto BatchSize).*@\1 = ${toString batchSize};@'
-  '';
+  postPatch = ''
+      # Fix mu4e-builddir (set it to $out)
+      substituteInPlace mu4e/mu4e-config.el.in \
+        --replace "@abs_top_builddir@" "$out"
+      substituteInPlace lib/utils/mu-utils.cc \
+        --replace "/bin/rm" "${coreutils}/bin/rm"
+    '';
 
-  buildInputs = [
-    sqlite xapian glib gmime3 texinfo emacs libsoup icu
-  ]
-    # Workaround for https://github.com/djcb/mu/issues/1641
-    ++ lib.optional (!stdenv.isDarwin) guile
-    ++ lib.optionals withMug [ gtk3 webkitgtk ];
+  buildInputs = [ emacs glib gmime3 texinfo xapian ];
 
-  nativeBuildInputs = [ pkg-config autoreconfHook pmccabe makeWrapper ];
+  mesonFlags = [
+    "-Dguile=disabled"
+    "-Dreadline=disabled"
+  ];
 
-  enableParallelBuilding = true;
+  nativeBuildInputs = [ pkg-config meson ninja ];
 
-  preBuild = ''
-    # Fix mu4e-builddir (set it to $out)
-    substituteInPlace mu4e/mu4e-meta.el.in \
-      --replace "@abs_top_builddir@" "$out"
-  '';
-
-  # Make sure included scripts can find their dependencies & optionally install mug
-  postInstall = ''
-    wrapProgram "$out/bin/mu" \
-      --prefix LD_LIBRARY_PATH : "$out/lib" \
-      --prefix GUILE_LOAD_PATH : "$out/share/guile/site/2.2"
-  '' + lib.optionalString withMug ''
-    for f in mug ; do
-      install -m755 toys/$f/$f $out/bin/$f
-    done
-  '';
+  enableParallelBuilding = true;
 
   doCheck = true;
 
@@ -55,7 +48,7 @@ stdenv.mkDerivation rec {
     description = "A collection of utilties for indexing and searching Maildirs";
     license = licenses.gpl3Plus;
     homepage = "https://www.djcbsoftware.nl/code/mu/";
-    changelog = "https://github.com/djcb/mu/releases/tag/${version}";
+    changelog = "https://github.com/djcb/mu/releases/tag/v${version}";
     maintainers = with maintainers; [ antono chvp peterhoeg ];
     platforms = platforms.mesaPlatforms;
   };
diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix
index c85d7ef612812..97a029d353b2d 100644
--- a/pkgs/tools/networking/networkmanager/default.nix
+++ b/pkgs/tools/networking/networkmanager/default.nix
@@ -119,6 +119,22 @@ stdenv.mkDerivation rec {
     # Meson does not support using different directories during build and
     # for installation like Autotools did with flags passed to make install.
     ./fix-install-paths.patch
+
+    (fetchpatch {
+      # Prevent downgrade to plain network on Enhanced Open profiles
+      url = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/b7946e50acc0d20d31b0c1098fdadc2f105ba799.patch";
+      hash = "sha256-CdZiubfqhJQ5w4+s9O8C5WI9Ls/paONzDX4rX6yEmS0=";
+    })
+    (fetchpatch {
+      # Treat OWE BSSIDs as valid candidates for open profiles
+      url = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/dd80cdcc1bd5e2535b8e4a1d1d0c62f1d3328a7c.patch";
+      hash = "sha256-QMZvWN3g8K+UH6y05+RkCmF+gHHU4pB+UXfU770AUis=";
+    })
+    (fetchpatch {
+      # Allow distinguishing pure OWE networks from those with transition mode enabled
+      url = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/13ea8d2e7dddd8279c82230594cea533ca349dd3.patch";
+      hash = "sha256-BiINGzX/Zp8pwdbMiDScrZvrHtH7coXkZm1HScFuFWA=";
+    })
   ];
 
   buildInputs = [
diff --git a/pkgs/tools/networking/offlineimap/default.nix b/pkgs/tools/networking/offlineimap/default.nix
index 98aabadf6da33..aa9c588e25312 100644
--- a/pkgs/tools/networking/offlineimap/default.nix
+++ b/pkgs/tools/networking/offlineimap/default.nix
@@ -32,7 +32,6 @@ python3.pkgs.buildPythonApplication rec {
     certifi
     distro
     imaplib2
-    kerberos
     pysocks
     rfc6555
     urllib3
diff --git a/pkgs/tools/networking/routedns/default.nix b/pkgs/tools/networking/routedns/default.nix
new file mode 100644
index 0000000000000..4cf2c9eeeed8b
--- /dev/null
+++ b/pkgs/tools/networking/routedns/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "routedns";
+  version = "0.1.5";
+
+  src = fetchFromGitHub {
+    owner = "folbricht";
+    repo = "routedns";
+    # https://github.com/folbricht/routedns/issues/237
+    rev = "02f14a567fee2a289810979446f5260b8a31bf73";
+    sha256 = "sha256-oImimNBz1qizUPD6qHi73fGKNCu5cii99GIUo21e+bs=";
+  };
+
+  vendorSha256 = "sha256-T6adpxJgOPGy+UOOlGAAf1gjk1wJxwOc9enfv9X3LBE=";
+
+  subPackages = [ "./cmd/routedns" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/folbricht/routedns";
+    description = "DNS stub resolver, proxy and router";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ jsimonetti ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/vegeta/default.nix b/pkgs/tools/networking/vegeta/default.nix
index 16abe8c60335e..6e7bbaa8366bf 100644
--- a/pkgs/tools/networking/vegeta/default.nix
+++ b/pkgs/tools/networking/vegeta/default.nix
@@ -1,25 +1,40 @@
-{ lib, fetchFromGitHub, buildGoPackage }:
+{ lib
+, fetchFromGitHub
+, buildGoModule
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "vegeta";
   version = "12.8.4";
+  rev = "e04d9c0df8177e8633bff4afe7b39c2f3a9e7dea";
 
   src = fetchFromGitHub {
-    owner  = "tsenart";
-    repo   = pname;
-    rev    = "v${version}";
-    sha256 = "0sw10k4g370c544dgw2c1sqdnxryld8lf6c1wnyknrm3zsfzn1hl";
+    owner = "tsenart";
+    repo = "vegeta";
+    rev = "v${version}";
+    sha256 = "sha256-FAb7nf6jZju95YEZR1GjPnfbsA5M8NcIKQyc8cgEgWs=";
   };
 
-  goPackagePath = "github.com/tsenart/${pname}";
+  vendorSha256 = "sha256-v9Hu9eQJSmm4Glt49F7EN40rKjrg4acyll9Bfgey+Mw=";
 
-  goDeps = ./deps.nix;
+  subPackages = [ "." ];
+
+  ldflags = (lib.mapAttrsToList (n: v: "-X main.${n}=${v}") {
+    Version = version;
+    Commit = rev;
+    Date = "1970-01-01T00:00:00Z";
+  }) ++ [ "-s" "-w" "-extldflags '-static'" ];
 
   meta = with lib; {
     description = "Versatile HTTP load testing tool";
-    license = licenses.mit;
+    longDescription = ''
+      Vegeta is a versatile HTTP load testing tool built out of a need to drill
+      HTTP services with a constant request rate. It can be used both as a
+      command line utility and a library.
+    '';
     homepage = "https://github.com/tsenart/vegeta/";
-    maintainers = [ maintainers.mmahut ];
+    changelog = "https://github.com/tsenart/vegeta/releases/tag/${src.rev}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mmahut ];
   };
 }
-
diff --git a/pkgs/tools/networking/vegeta/deps.nix b/pkgs/tools/networking/vegeta/deps.nix
deleted file mode 100644
index 1a06ad178ec44..0000000000000
--- a/pkgs/tools/networking/vegeta/deps.nix
+++ /dev/null
@@ -1,255 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/alecthomas/jsonschema";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/jsonschema";
-      rev = "f2c93856175a";
-      sha256 = "145w6zg453mbspfyixs71xfjwi3djq20lij1rcgrdcn5gmwj2cal";
-    };
-  }
-  {
-    goPackagePath = "github.com/bmizerany/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bmizerany/perks";
-      rev = "d9a9656a3a4b";
-      sha256 = "0f39b3zfm1zd6xcvlm6szgss026qs84n2j9y5bnb3zxzdkxb9w9n";
-    };
-  }
-  {
-    goPackagePath = "github.com/c2h5oh/datasize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/c2h5oh/datasize";
-      rev = "4eba002a5eae";
-      sha256 = "02sxd659q7m7axfywiqfxk5rh6djh2m5240bin1makldj1nj16j3";
-    };
-  }
-  {
-    goPackagePath = "github.com/dgryski/go-gk";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgryski/go-gk";
-      rev = "201884a44051";
-      sha256 = "17csmdlqibg5g2pjybh4522dis6nklyhjvly55pawy0vprd17agz";
-    };
-  }
-  {
-    goPackagePath = "github.com/dgryski/go-lttb";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgryski/go-lttb";
-      rev = "318fcdf10a77";
-      sha256 = "0cs2rr2j6fbbpgmfxkq39pir4bibfzkfwxvd2cvw30q97cmfpiz3";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/blas";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/blas";
-      rev = "f22b278b28ac";
-      sha256 = "0dh73akv4gazyhva9xbm9xbq786vij8iisivp3p65p6ahf502fs6";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/diff";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/diff";
-      rev = "500114f11e71";
-      sha256 = "1bg4k3bxqb44nz1nmyigr5bx55859n55vvi45w2rq4y5djvpral8";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/floats";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/floats";
-      rev = "c233463c7e82";
-      sha256 = "12m7pa64mk3am2i10agg6c1aqdfgx9i3f4bgf3w7wra8bnnjncp6";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/integrate";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/integrate";
-      rev = "a422b5c0fdf2";
-      sha256 = "01wfav882h3bcp137cd2bsr91hkmmi4d6qwhdm0xv1p2z2qzs7iq";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/internal";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/internal";
-      rev = "f884aa714029";
-      sha256 = "038w8pc82vxq773qg0mw472f3p8h5vkh3ggcdn09qd3s6myp2zq7";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/lapack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/lapack";
-      rev = "e4cdc5a0bff9";
-      sha256 = "046fffskysg0bmha16s5582bimpis0m6qd7c7k1n65a0qhrslli1";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/mathext";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/mathext";
-      rev = "8a4bf007ea55";
-      sha256 = "044xy32mgcjc5948na6f6fgqqq17canw3z6sppidmj52s17p0k7i";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/matrix";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/matrix";
-      rev = "c518dec07be9";
-      sha256 = "0i6pyxxhcy2s9as77g90dsj9xya48775dl5fxgvqal665cxc4l4i";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/stat";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/stat";
-      rev = "41a0da705a5b";
-      sha256 = "0r9mqiy3ma0c15p57bz4xq2vf105s9g1lqysb7ff0nip4050cpvn";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/go-cmp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-cmp";
-      rev = "v0.2.0";
-      sha256 = "1fbv0x27k9sn8svafc0hjwsnckk864lv4yi7bvzrxvmd3d5hskds";
-    };
-  }
-  {
-    goPackagePath = "github.com/influxdata/tdigest";
-    fetch = {
-      type = "git";
-      url = "https://github.com/influxdata/tdigest";
-      rev = "a7d76c6f093a";
-      sha256 = "02jxrb2d1n6zflwa7jhgid5344l6zj4gxg4kis20v7xa6iqrj1ni";
-    };
-  }
-  {
-    goPackagePath = "github.com/mailru/easyjson";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mailru/easyjson";
-      rev = "v0.7.0";
-      sha256 = "13zv5fvjp3nr65lhqhiw6i6mlmqvyls882rlmcas0ab35alsxni8";
-    };
-  }
-  {
-    goPackagePath = "github.com/miekg/dns";
-    fetch = {
-      type = "git";
-      url = "https://github.com/miekg/dns";
-      rev = "v1.1.17";
-      sha256 = "0x0375n7n1qmgyn7yvpr65z4ll4l39q2xagyfafw09h3kkrkpka8";
-    };
-  }
-  {
-    goPackagePath = "github.com/streadway/quantile";
-    fetch = {
-      type = "git";
-      url = "https://github.com/streadway/quantile";
-      rev = "b0c588724d25";
-      sha256 = "1y27nrg7wkyrvw07a5s7wl4lpwxshwyvhzc6i0rzn20dajah2vkh";
-    };
-  }
-  {
-    goPackagePath = "github.com/tsenart/go-tsz";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tsenart/go-tsz";
-      rev = "cdeb9e1e981e";
-      sha256 = "1lgnllx810ly0203jn9vkimcwqv3302mnh9d7mip1yyq4cmvlj3b";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "9756ffdc2472";
-      sha256 = "0q7hxaaq6lp0v8qqzifvysl47z5rfdlrxkh3d29vsl3wyby3dxl8";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "ba9fcec4b297";
-      sha256 = "1hbqvy6r0s5h0dpdqw8fynl3cq0acin3iyqki9xvl5r8h33yb9bx";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "112230192c58";
-      sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "749cb33beabd";
-      sha256 = "0dm3257q3rv2kyn5lmqqim2fqg634v6rhrqq4glvbk4wx4l3v337";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.2";
-      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "2ca718005c18";
-      sha256 = "1nl4cw8vrfigab0hij86vl2mmhfmyim69r7vy5qk2v60g8frvgxg";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/xerrors";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/xerrors";
-      rev = "a985d3407aa7";
-      sha256 = "00wzr5w8aadipgc3rkk8f11i41znskfj9ix5nhhaxyg7isrslgcj";
-    };
-  }
-  {
-    goPackagePath = "pgregory.net/rapid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/flyingmutant/rapid";
-      rev = "v0.3.3";
-      sha256 = "04w4dmx753b2xp5z5br5wxalgkkgag8qpbxics2gdcksqgi85vg3";
-    };
-  }
-]
diff --git a/pkgs/tools/networking/waitron/default.nix b/pkgs/tools/networking/waitron/default.nix
index 4f2f634d4942d..7ef984147a322 100644
--- a/pkgs/tools/networking/waitron/default.nix
+++ b/pkgs/tools/networking/waitron/default.nix
@@ -1,29 +1,38 @@
-{ lib, buildGoPackage, fetchFromGitHub, fetchhg, fetchbzr, fetchsvn }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "waitron";
-  version = "unstable-2020-01-24";
-
-  goPackagePath = "github.com/ns1/waitron";
+  version = "unstable-2020-08-04";
+  rev = "2315857d94e3d1a1e79ac48f8f6a68d59d0ce300";
 
   src = fetchFromGitHub {
     owner = "ns1";
     repo = "waitron";
-    rev = "c96833619cbb0cf2bc71b1d7b534101e139cc6e6";
+    inherit rev;
     sha256 = "sha256-ZkGhEOckIOYGb6Yjr4I4e9cjAHDfksRwHW+zgOMZ/FE=";
   };
 
+  vendorSha256 = "sha256-grQFLo0BIIa/kNKF4vPw/V1WN9sxOucz6+wET2PBU1I=";
+
+  subPackages = [ "." ];
+
   patches = [
     ./staticfiles-directory.patch
   ];
 
-  goDeps = ./deps.nix;
-
-  meta = {
+  meta = with lib; {
     description = "A tool to manage network booting of machines";
+    longDescription = ''
+      Waitron is used to build machines (primarily bare-metal, but anything that
+      understands PXE booting will work) based on definitions from any number of
+      specified inventory sources.
+    '';
     homepage = "https://github.com/ns1/waitron";
-    license =  lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ guibert ];
-    platforms = lib.platforms.linux;
+    license =  licenses.asl20;
+    maintainers = with maintainers; [ guibert ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/waitron/deps.nix b/pkgs/tools/networking/waitron/deps.nix
deleted file mode 100644
index 46369c783184f..0000000000000
--- a/pkgs/tools/networking/waitron/deps.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/flosch/pongo2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/flosch/pongo2";
-      rev = "bbf5a6c351f4d4e883daa40046a404d7553e0a00";
-      sha256 = "0yqh58phznnxakm64w82gawrpndb0r85vsd1s7h244qqrq7w4avq";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/handlers";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/handlers";
-      rev = "f08afc1876ad882db8074bcb8a4cc96107d3a5f4";
-      sha256 = "1ysm6sw3jqa3h8pb5qpqgh44g91c23n3as277sh0vyp7282290jq";
-    };
-  }
-  {
-    goPackagePath = "github.com/juju/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/juju/errors";
-      rev = "d42613fe1ab9e303fc850e7a19fda2e8eeb6516e";
-      sha256 = "0qggzzvh9lzlfk8ixlyw8bw645rh0lrjrd367505hhl6cg18v8yf";
-    };
-  }
-  {
-    goPackagePath = "github.com/julienschmidt/httprouter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/julienschmidt/httprouter";
-      rev = "8c9f31f047a304abedb5614d4a18a843cd5f4a40";
-      sha256 = "00f5ja1yslrjclx3sf29mzpcsrpfd15kkw5ygv7n4jsyb4v3xgj6";
-    };
-  }
-  {
-    goPackagePath = "github.com/satori/go.uuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/satori/go.uuid";
-      rev = "b2ce2384e17bbe0c6d34077efa39dbab3e09123b";
-      sha256 = "1yz4cx02377ijlf8mnn84j1dcmlwh8ncx7y3kw1zg2qw0z4x119c";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "53403b58ad1b561927d19068c655246f2db79d48";
-      sha256 = "1inf7svydzscwv9fcjd2rm61a4xjk6jkswknybmns2n58shimapw";
-    };
-  }
-]
diff --git a/pkgs/tools/nix/alejandra/default.nix b/pkgs/tools/nix/alejandra/default.nix
index 0e7f5e133eaad..5cfacdb50bc04 100644
--- a/pkgs/tools/nix/alejandra/default.nix
+++ b/pkgs/tools/nix/alejandra/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "alejandra";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "kamadorueda";
     repo = "alejandra";
     rev = version;
-    sha256 = "sha256-0AolxQtKj3Oek0WSbODDpPVO5Ih8PXHOA3qXEKPB4dQ=";
+    sha256 = "sha256-A0ruEdPeKIzGYxyXNACnzaKtQUVc30s2ExTUzdFTcWM=";
   };
 
-  cargoSha256 = "sha256-USI98hozlTaTj07tMbCQEWDgRkHsd4PFW1HUpKsNZJA=";
+  cargoSha256 = "sha256-BmpFyVF2fxV3rExI7rpOQlVwHEJNlof44dnUshaO/no=";
 
   passthru.tests = {
     version = testers.testVersion { package = alejandra; };
diff --git a/pkgs/tools/nix/nar-serve/default.nix b/pkgs/tools/nix/nar-serve/default.nix
index 1d7fd6beb4a7d..10ac797578f98 100644
--- a/pkgs/tools/nix/nar-serve/default.nix
+++ b/pkgs/tools/nix/nar-serve/default.nix
@@ -4,16 +4,16 @@
 }:
 buildGoModule rec {
   pname = "nar-serve";
-  version = "0.4.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "numtide";
     repo = "nar-serve";
     rev = "v${version}";
-    hash = "sha256-h/pzKRXgcGTpr1YUKppDa+iTLKak/PGhbYa8ZczWj1U=";
+    hash = "sha256-cSOYHYJJEGzFtkD4mjTmYBiM9CaWKt64xgV/JeNHpfM=";
   };
 
-  vendorSha256 = "sha256-eW+cul/5qJocpKV/6azxj7HTmkezDw6dNubPtAOP5HU=";
+  vendorSha256 = "sha256-RpjLs4+9abbbysYAlPDUXBLe1cz4Lp+QmR1yv+LpYwQ=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/nix/nixel/default.nix b/pkgs/tools/nix/nixel/default.nix
new file mode 100644
index 0000000000000..5ce14a8d312fe
--- /dev/null
+++ b/pkgs/tools/nix/nixel/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, testers
+, nixel
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nixel";
+  version = "4.1.0";
+
+  src = fetchFromGitHub {
+    owner = "kamadorueda";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-dQ3wzBTjteqk9rju+FMAO+ydimnGu24Y2DEDLX/P+1A=";
+  };
+
+  cargoSha256 = "sha256-1OsHs0W3ji9Kgpv7nGY9XyGxJ4c0faN2VuFLsdwkgKY=";
+
+  # Package requires a non reproducible submodule
+  # https://github.com/kamadorueda/nixel/blob/2873bd84bf4fc540d0ae8af062e109cc9ad40454/.gitmodules#L7
+  doCheck = false;
+  #
+  # Let's test it runs
+  passthru.tests = {
+    version = testers.testVersion { package = nixel; };
+  };
+
+  meta = with lib; {
+    description = "Lexer, Parser, Abstract Syntax Tree and Concrete Syntax Tree for the Nix Expressions Language";
+    homepage = "https://github.com/kamadorueda/nixel";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ kamadorueda ];
+  };
+}
diff --git a/pkgs/tools/package-management/appimagekit/default.nix b/pkgs/tools/package-management/appimagekit/default.nix
index 3118b784334b0..151566ba8e8e2 100644
--- a/pkgs/tools/package-management/appimagekit/default.nix
+++ b/pkgs/tools/package-management/appimagekit/default.nix
@@ -96,6 +96,7 @@ in stdenv.mkDerivation rec {
     "-DUSE_SYSTEM_LIBARCHIVE=ON"
     "-DUSE_SYSTEM_GTEST=ON"
     "-DUSE_SYSTEM_MKSQUASHFS=ON"
+    "-DTOOLS_PREFIX=${stdenv.cc.targetPrefix}"
   ];
 
   postInstall = ''
diff --git a/pkgs/tools/package-management/micromamba/default.nix b/pkgs/tools/package-management/micromamba/default.nix
index c1f8fc9c990bd..1f95e41e61031 100644
--- a/pkgs/tools/package-management/micromamba/default.nix
+++ b/pkgs/tools/package-management/micromamba/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
     description = "Reimplementation of the conda package manager";
     homepage = "https://github.com/mamba-org/mamba";
     license = licenses.bsd3;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = with maintainers; [ mausch ];
   };
 }
diff --git a/pkgs/tools/security/bitwarden/default.nix b/pkgs/tools/security/bitwarden/default.nix
index daaf7c087b205..9ae5da86497bd 100644
--- a/pkgs/tools/security/bitwarden/default.nix
+++ b/pkgs/tools/security/bitwarden/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwarden";
-  version = "1.32.1";
+  version = "2022.5.1";
 
   src = fetchurl {
-    url = "https://github.com/bitwarden/desktop/releases/download/v${version}/Bitwarden-${version}-amd64.deb";
-    sha256 = "sha256-G1k8kf00EQVH/z2foH4NHCw82/eTi7BMMfkVtX6IfQo=";
+    url = "https://github.com/bitwarden/clients/releases/download/desktop-v${version}/Bitwarden-${version}-amd64.deb";
+    sha256 = "sha256-L6Mow4wC5PlpR9IYXOztW4FyGDq9wWEuV2PvzQ7M/rU=";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/tools/security/certstrap/default.nix b/pkgs/tools/security/certstrap/default.nix
index ff6522f1d35f3..9edd8b3884f8b 100644
--- a/pkgs/tools/security/certstrap/default.nix
+++ b/pkgs/tools/security/certstrap/default.nix
@@ -1,21 +1,33 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "certstrap";
   version = "1.2.0";
 
-  goPackagePath = "github.com/square/certstrap";
-
   src = fetchFromGitHub {
     owner = "square";
     repo = "certstrap";
     rev = "v${version}";
-    sha256 = "1ymchnn7c9g3pq7rw4lrwsd6z3wfjx90g7qgrw6r5hssl77mnscj";
+    sha256 = "sha256-kmlbz6Faw5INzw+fB1KXjo9vmuaZEp4PvuMldqyFrPo=";
   };
 
+  vendorSha256 = null;
+
+  subPackages = [ "." ];
+
+  ldflags = [ "-X main.release=${version}" ];
+
   meta = with lib; {
-    inherit (src.meta) homepage;
     description = "Tools to bootstrap CAs, certificate requests, and signed certificates";
+    longDescription = ''
+      A simple certificate manager written in Go, to bootstrap your own
+      certificate authority and public key infrastructure. Adapted from etcd-ca.
+    '';
+    homepage = "https://github.com/square/certstrap";
+    changelog = "https://github.com/square/certstrap/releases/tag/${src.rev}";
     license = licenses.asl20;
     maintainers = with maintainers; [ volth ];
   };
diff --git a/pkgs/tools/security/cve-bin-tool/default.nix b/pkgs/tools/security/cve-bin-tool/default.nix
index dd26ce887eaad..ac3771510c38f 100644
--- a/pkgs/tools/security/cve-bin-tool/default.nix
+++ b/pkgs/tools/security/cve-bin-tool/default.nix
@@ -3,10 +3,6 @@
 , fetchFromGitHub
 , jsonschema
 , plotly
-, pytest
-, pytest-xdist
-, pytest-cov
-, pytest-asyncio
 , beautifulsoup4
 , pyyaml
 , isort
@@ -25,16 +21,19 @@
 , cchardet
 , pillow
 , pytestCheckHook
+, xmlschema
+, setuptools
+, packaging
 }:
 buildPythonApplication rec {
   pname = "cve-bin-tool";
-  version = "3.0";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "cve-bin-tool";
     rev = "v${version}";
-    sha256 = "1fmdnlhi03fdr4d4n7ydf6m0gx0cl77n3db8ldbs3m9zryblhzpr";
+    sha256 = "0nz3ax3ldnrzk8694x0p743g5h2zply29ljpn21llbc7ca27zdv9";
   };
 
   # Wants to open a sqlite database, access the internet, etc
@@ -43,10 +42,6 @@ buildPythonApplication rec {
   propagatedBuildInputs = [
     jsonschema
     plotly
-    pytest
-    pytest-xdist
-    pytest-cov
-    pytest-asyncio
     beautifulsoup4
     pyyaml
     isort
@@ -65,6 +60,9 @@ buildPythonApplication rec {
     cchardet
     # needed by brotlipy
     pillow
+    setuptools
+    xmlschema
+    packaging
   ];
 
   checkInputs = [
@@ -75,10 +73,15 @@ buildPythonApplication rec {
     "cve_bin_tool"
   ];
 
+  # required until https://github.com/intel/cve-bin-tool/pull/1665 is merged
+  postPatch = ''
+    sed '/^pytest/d' -i requirements.txt
+  '';
+
   meta = with lib; {
     description = "CVE Binary Checker Tool";
     homepage = "https://github.com/intel/cve-bin-tool";
-    license = licenses.gpl3Only;
+    license = licenses.gpl3Plus;
     maintainers = teams.determinatesystems.members;
   };
 }
diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix
index 62bc16f6a4147..ef09cc1ac71b0 100644
--- a/pkgs/tools/security/fail2ban/default.nix
+++ b/pkgs/tools/security/fail2ban/default.nix
@@ -27,6 +27,12 @@ python3.pkgs.buildPythonApplication rec {
       url = "https://github.com/fail2ban/fail2ban/commit/5ac303df8a171f748330d4c645ccbf1c2c7f3497.patch";
       sha256 = "sha256-aozQJHwPcJTe/D/PLQzBk1YH3OAP6Qm7wO7cai5CVYI=";
     })
+    # fix use of MutableMapping with Python >= 3.10
+    # https://github.com/fail2ban/fail2ban/issues/3142
+    (fetchpatch {
+      url = "https://github.com/fail2ban/fail2ban/commit/294ec73f629d0e29cece3a1eb5dd60b6fccea41f.patch";
+      sha256 = "sha256-Eimm4xjBDYNn5QdTyMqGgT5EXsZdd/txxcWJojXlsFE=";
+    })
   ];
 
   preConfigure = ''
diff --git a/pkgs/tools/security/himitsu-firefox/default.nix b/pkgs/tools/security/himitsu-firefox/default.nix
new file mode 100644
index 0000000000000..b462863011871
--- /dev/null
+++ b/pkgs/tools/security/himitsu-firefox/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromSourcehut
+, hare
+, himitsu
+, zip
+}:
+
+stdenv.mkDerivation rec {
+  pname = "himitsu-firefox";
+  version = "0.3";
+
+  src = fetchFromSourcehut {
+    name = pname + "-src";
+    owner = "~sircmpwn";
+    repo = pname;
+    rev = "d6d0fdb30aefc93f6ff7d48e5737557051f1ffea";
+    hash = "sha256-5RbNdEGPnfDt1KDeU2LnuRsqqqMRyV/Dh2cgEWkz4vQ=";
+  };
+
+  nativeBuildInputs = [
+    hare
+    zip
+  ];
+
+  buildInputs = [
+    himitsu
+  ];
+
+  buildFlags = [ "LIBEXECDIR=$(out)/libexec" ];
+
+  # Only install the native component; per the docs:
+  # > To install the add-on for Firefox ESR, run make install-xpi. Be advised
+  # > that this will probably not work. The recommended installation procedure
+  # > for the native extension is to install it from addons.mozilla.org instead.
+  installTargets = [ "install-native" ];
+  installFlags = [ "PREFIX=" "DESTDIR=$(out)" ];
+
+  meta = with lib; {
+    homepage = "https://git.sr.ht/~sircmpwn/himitsu-firefox";
+    description = "Himitsu integration for Firefox";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ auchter ];
+    inherit (hare.meta) platforms badPlatforms;
+  };
+}
diff --git a/pkgs/tools/security/himitsu/default.nix b/pkgs/tools/security/himitsu/default.nix
new file mode 100644
index 0000000000000..e48de780d72dd
--- /dev/null
+++ b/pkgs/tools/security/himitsu/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, fetchFromSourcehut
+, hare
+, scdoc
+}:
+
+stdenv.mkDerivation rec {
+  pname = "himitsu";
+  version = "0.1";
+
+  src = fetchFromSourcehut {
+    name = pname + "-src";
+    owner = "~sircmpwn";
+    repo = pname;
+    rev = "003c14747fcddceb5359c9503f20c44b15fea5fa";
+    hash = "sha256-tzBTDJKMuFh9anURy1aKQTmt77tI7wZDZQiOUowuomk=";
+  };
+
+  nativeBuildInputs = [
+    hare
+    scdoc
+  ];
+
+  installFlags = [ "PREFIX=" "DESTDIR=$(out)" ];
+
+  meta = with lib; {
+    homepage = "https://himitsustore.org/";
+    description = "A secret storage manager";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ auchter ];
+    inherit (hare.meta) platforms badPlatforms;
+  };
+}
diff --git a/pkgs/tools/security/prs/default.nix b/pkgs/tools/security/prs/default.nix
index 5a020dde9cc43..2a901a599d490 100644
--- a/pkgs/tools/security/prs/default.nix
+++ b/pkgs/tools/security/prs/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "prs";
-  version = "0.3.2";
+  version = "0.3.4";
 
   src = fetchFromGitLab {
     owner = "timvisee";
     repo = "prs";
     rev = "v${version}";
-    sha256 = "sha256-90Ed/mafACSJvH+DjCbdXs3eeyT+pGflRzDD9l3b0/s=";
+    hash = "sha256-dfyTaWwV2hNZPZfvM+AqqR1zbChjT6Y/TEkQPEXRtGA=";
   };
 
-  cargoSha256 = "sha256-5teiF8s11Ml8UtbVn6fXur2OQzE52JZnsgyDihbEFTQ=";
+  cargoHash = "sha256-yf46le0jG4EXo60kGKc0GwSO5vl4Dw0gmYJ4yr+TFdE=";
 
   postPatch = ''
     # The GPGME backend is recommended
diff --git a/pkgs/tools/security/rekor/default.nix b/pkgs/tools/security/rekor/default.nix
index 2ecff27825a3a..99928b96caa49 100644
--- a/pkgs/tools/security/rekor/default.nix
+++ b/pkgs/tools/security/rekor/default.nix
@@ -4,13 +4,13 @@ let
   generic = { pname, packageToBuild, description }:
     buildGoModule rec {
       inherit pname;
-      version = "0.8.1";
+      version = "0.8.2";
 
       src = fetchFromGitHub {
         owner = "sigstore";
         repo = "rekor";
         rev = "v${version}";
-        sha256 = "sha256-QBS9vGKYe7aox0RhgiJ3wp7UmnxAmtox45xKOC0vhj0=";
+        sha256 = "sha256-EaOLqStoZJMTSS6g56UhFQRhuwYBjh/XLRX6JjD17+g=";
         # populate values that require us to use git. By doing this in postFetch we
         # can delete .git afterwards and maintain better reproducibility of the src.
         leaveDotGit = true;
@@ -23,7 +23,7 @@ let
         '';
       };
 
-      vendorSha256 = "sha256-OZyRIi6y47c9eS8GLClgV4JGbSsvjd6KvED3N8LIe6I=";
+      vendorSha256 = "sha256-bvn5TKfTcB/0p47r5kW1P4OlnbWYQpESo9t8IC9f+fM=";
 
       nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/security/schleuder/Gemfile b/pkgs/tools/security/schleuder/Gemfile
new file mode 100644
index 0000000000000..687c293bac913
--- /dev/null
+++ b/pkgs/tools/security/schleuder/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org' do
+  gem 'schleuder'
+end
diff --git a/pkgs/tools/security/schleuder/Gemfile.lock b/pkgs/tools/security/schleuder/Gemfile.lock
new file mode 100644
index 0000000000000..a5b7312901c27
--- /dev/null
+++ b/pkgs/tools/security/schleuder/Gemfile.lock
@@ -0,0 +1,85 @@
+GEM
+  specs:
+
+GEM
+  remote: https://rubygems.org/
+  specs:
+    activemodel (6.1.4.4)
+      activesupport (= 6.1.4.4)
+    activerecord (6.1.4.4)
+      activemodel (= 6.1.4.4)
+      activesupport (= 6.1.4.4)
+    activesupport (6.1.4.4)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 1.6, < 2)
+      minitest (>= 5.1)
+      tzinfo (~> 2.0)
+      zeitwerk (~> 2.3)
+    bcrypt (3.1.16)
+    charlock_holmes (0.7.7)
+    concurrent-ruby (1.1.9)
+    daemons (1.4.1)
+    eventmachine (1.2.7)
+    gpgme (2.0.20)
+      mini_portile2 (~> 2.3)
+    i18n (1.8.11)
+      concurrent-ruby (~> 1.0)
+    mail (2.7.1)
+      mini_mime (>= 0.1.1)
+    mail-gpg (0.4.4)
+      gpgme (~> 2.0, >= 2.0.2)
+      mail (~> 2.5, >= 2.5.3)
+    mini_mime (1.1.2)
+    mini_portile2 (2.7.1)
+    minitest (5.15.0)
+    multi_json (1.15.0)
+    mustermann (1.1.1)
+      ruby2_keywords (~> 0.0.1)
+    rack (2.2.3)
+    rack-protection (2.1.0)
+      rack
+    rake (13.0.6)
+    ruby2_keywords (0.0.5)
+    schleuder (4.0.2)
+      activerecord (~> 6.1.3)
+      bcrypt (~> 3.1.2)
+      charlock_holmes (~> 0.7.6)
+      gpgme (~> 2.0, >= 2.0.19)
+      mail (~> 2.7.1)
+      mail-gpg (~> 0.3)
+      rake (>= 10.5.0)
+      sinatra (~> 2)
+      sinatra-contrib (~> 2)
+      sqlite3 (~> 1.4.2)
+      thin (~> 1)
+      thor (~> 0)
+    sinatra (2.1.0)
+      mustermann (~> 1.0)
+      rack (~> 2.2)
+      rack-protection (= 2.1.0)
+      tilt (~> 2.0)
+    sinatra-contrib (2.1.0)
+      multi_json
+      mustermann (~> 1.0)
+      rack-protection (= 2.1.0)
+      sinatra (= 2.1.0)
+      tilt (~> 2.0)
+    sqlite3 (1.4.2)
+    thin (1.8.1)
+      daemons (~> 1.0, >= 1.0.9)
+      eventmachine (~> 1.0, >= 1.0.4)
+      rack (>= 1, < 3)
+    thor (0.20.3)
+    tilt (2.0.10)
+    tzinfo (2.0.4)
+      concurrent-ruby (~> 1.0)
+    zeitwerk (2.5.3)
+
+PLATFORMS
+  x86_64-linux
+
+DEPENDENCIES
+  schleuder!
+
+BUNDLED WITH
+   2.2.24
diff --git a/pkgs/tools/security/schleuder/cli/Gemfile b/pkgs/tools/security/schleuder/cli/Gemfile
new file mode 100644
index 0000000000000..428e856aecc65
--- /dev/null
+++ b/pkgs/tools/security/schleuder/cli/Gemfile
@@ -0,0 +1,4 @@
+source "https://rubygems.org"
+
+gem "schleuder-cli", git: "https://0xacab.org/schleuder/schleuder-cli", tag: "schleuder-cli-0.1.0"
+
diff --git a/pkgs/tools/security/schleuder/cli/Gemfile.lock b/pkgs/tools/security/schleuder/cli/Gemfile.lock
new file mode 100644
index 0000000000000..bd47b9df7f9a0
--- /dev/null
+++ b/pkgs/tools/security/schleuder/cli/Gemfile.lock
@@ -0,0 +1,21 @@
+GIT
+  remote: https://0xacab.org/schleuder/schleuder-cli
+  revision: 1de2548695d9a74f47b7868954561b48cbc966f9
+  tag: schleuder-cli-0.1.0
+  specs:
+    schleuder-cli (0.1.0)
+      thor (~> 0)
+
+GEM
+  remote: https://rubygems.org/
+  specs:
+    thor (0.20.3)
+
+PLATFORMS
+  x86_64-linux
+
+DEPENDENCIES
+  schleuder-cli!
+
+BUNDLED WITH
+   2.3.6
diff --git a/pkgs/tools/security/schleuder/cli/default.nix b/pkgs/tools/security/schleuder/cli/default.nix
new file mode 100644
index 0000000000000..e34afa699f042
--- /dev/null
+++ b/pkgs/tools/security/schleuder/cli/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, bundlerApp
+, ruby
+, bundlerUpdateScript
+}:
+
+bundlerApp {
+  inherit ruby;
+
+  pname = "schleuder-cli";
+
+  gemdir = ./.;
+
+  installManpages = false;
+
+  exes = [
+    "schleuder-cli"
+  ];
+
+  passthru.updateScript = bundlerUpdateScript "schleuder-cli";
+
+  meta = with lib; {
+    description = "A command line tool to create and manage schleuder-lists";
+    longDescription = ''
+      Schleuder-cli enables creating, configuring, and deleting lists,
+      subscriptions, keys, etc. It uses the Schleuder API, provided by
+      schleuder-api-daemon (part of Schleuder).
+    '';
+    homepage = "https://schleuder.org";
+    changelog = "https://0xacab.org/schleuder/schleuder-cli/-/blob/main/CHANGELOG.md";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/tools/security/schleuder/cli/gemset.nix b/pkgs/tools/security/schleuder/cli/gemset.nix
new file mode 100644
index 0000000000000..45ff62f891370
--- /dev/null
+++ b/pkgs/tools/security/schleuder/cli/gemset.nix
@@ -0,0 +1,25 @@
+{
+  schleuder-cli = {
+    dependencies = ["thor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      fetchSubmodules = false;
+      rev = "1de2548695d9a74f47b7868954561b48cbc966f9";
+      sha256 = "0k4i33w9a0bscw4wbs301vxca367g7pa89y6cr24i0014pbmhs9z";
+      type = "git";
+      url = "https://0xacab.org/schleuder/schleuder-cli";
+    };
+    version = "0.1.0";
+  };
+  thor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+      type = "gem";
+    };
+    version = "0.20.3";
+  };
+}
diff --git a/pkgs/tools/security/schleuder/default.nix b/pkgs/tools/security/schleuder/default.nix
new file mode 100644
index 0000000000000..84597f6f51bf7
--- /dev/null
+++ b/pkgs/tools/security/schleuder/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, bundlerApp
+, ruby
+, bundlerUpdateScript
+, defaultGemConfig
+, nixosTests
+}:
+
+bundlerApp {
+  inherit ruby;
+
+  pname = "schleuder";
+
+  gemdir = ./.;
+
+  exes = [
+    "schleuder"
+    "schleuder-api-daemon"
+  ];
+
+  passthru.updateScript = bundlerUpdateScript "schleuder";
+  passthru.tests = {
+    inherit (nixosTests) schleuder;
+  };
+
+  meta = with lib; {
+    description = "Schleuder is an encrypting mailing list manager with remailing-capabilities";
+    longDescription = ''
+      Schleuder is a group's email-gateway: subscribers can exchange
+      encrypted emails among themselves, receive emails from
+      non-subscribers and send emails to non-subscribers via the list.
+    '';
+    homepage = "https://schleuder.org";
+    changelog = "https://0xacab.org/schleuder/schleuder/blob/main/CHANGELOG.md";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ hexa lheckemann ];
+  };
+}
diff --git a/pkgs/tools/security/schleuder/gemset.nix b/pkgs/tools/security/schleuder/gemset.nix
new file mode 100644
index 0000000000000..9bd9cadbb883b
--- /dev/null
+++ b/pkgs/tools/security/schleuder/gemset.nix
@@ -0,0 +1,316 @@
+{
+  activemodel = {
+    dependencies = ["activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g3qdz8dw6zkgz45jd13lwfdnm7rhgczv1pssw63g9k6qj3bkxjm";
+      type = "gem";
+    };
+    version = "6.1.4.4";
+  };
+  activerecord = {
+    dependencies = ["activemodel" "activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "090d4wl1pq06m9mibpck0m5nm8h45fwhs3fjx27297kjmnv4gzik";
+      type = "gem";
+    };
+    version = "6.1.4.4";
+  };
+  activesupport = {
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rvnz9lsf9mrkpji748sf51f54m027snkw6rm8flyvf7fq18rm98";
+      type = "gem";
+    };
+    version = "6.1.4.4";
+  };
+  bcrypt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02r1c3isfchs5fxivbq99gc3aq4vfyn8snhcy707dal1p8qz12qb";
+      type = "gem";
+    };
+    version = "3.1.16";
+  };
+  charlock_holmes = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hybw8jw9ryvz5zrki3gc9r88jqy373m6v46ynxsdzv1ysiyr40p";
+      type = "gem";
+    };
+    version = "0.7.7";
+  };
+  concurrent-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
+      type = "gem";
+    };
+    version = "1.1.9";
+  };
+  daemons = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07cszb0zl8mqmwhc8a2yfg36vi6lbgrp4pa5bvmryrpcz9v6viwg";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  eventmachine = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  gpgme = {
+    dependencies = ["mini_portile2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xbgh9d8nbvsvyzqnd0mzhz0nr9hx4qn025kmz6d837lry4lc6gw";
+      type = "gem";
+    };
+    version = "2.0.20";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
+      type = "gem";
+    };
+    version = "1.8.11";
+  };
+  mail = {
+    dependencies = ["mini_mime"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
+      type = "gem";
+    };
+    version = "2.7.1";
+  };
+  mail-gpg = {
+    dependencies = ["gpgme" "mail"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rz936m8nacy7agksvpvkf6b37d1h5qvh5xkrjqvv5wbdqs3cyfj";
+      type = "gem";
+    };
+    version = "0.4.4";
+  };
+  mini_mime = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0d3ga166pahsxavzwj19yjj4lr13rw1vsb36s2qs8blcxigrdp6z";
+      type = "gem";
+    };
+    version = "2.7.1";
+  };
+  minitest = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06xf558gid4w8lwx13jwfdafsch9maz8m0g85wnfymqj63x5nbbd";
+      type = "gem";
+    };
+    version = "5.15.0";
+  };
+  multi_json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
+      type = "gem";
+    };
+    version = "1.15.0";
+  };
+  mustermann = {
+    dependencies = ["ruby2_keywords"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ccm54qgshr1lq3pr1dfh7gphkilc19dp63rw6fcx7460pjwy88a";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  rack = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
+      type = "gem";
+    };
+    version = "2.2.3";
+  };
+  rack-protection = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "159a4j4kragqh0z0z8vrpilpmaisnlz3n7kgiyf16bxkwlb3qlhz";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  rake = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      type = "gem";
+    };
+    version = "13.0.6";
+  };
+  ruby2_keywords = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  schleuder = {
+    dependencies = ["activerecord" "bcrypt" "charlock_holmes" "gpgme" "mail" "mail-gpg" "rake" "sinatra" "sinatra-contrib" "sqlite3" "thin" "thor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15j1rfkfvni82msamikynsg48s50hbsx1pxm3y967caq9s80ll6c";
+      type = "gem";
+    };
+    version = "4.0.2";
+  };
+  sinatra = {
+    dependencies = ["mustermann" "rack" "rack-protection" "tilt"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dd53rzpkxgs697pycbhhgc9vcnxra4ly4xar8ni6aiydx2f88zk";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  sinatra-contrib = {
+    dependencies = ["multi_json" "mustermann" "rack-protection" "sinatra" "tilt"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rl1iiafz51yzjd0vchl2lni7lmwppjql6cn1fnfxbma707qlcja";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  sqlite3 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lja01cp9xd5m6vmx99zwn4r7s97r1w5cb76gqd8xhbm1wxyzf78";
+      type = "gem";
+    };
+    version = "1.4.2";
+  };
+  thin = {
+    dependencies = ["daemons" "eventmachine" "rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "123bh7qlv6shk8bg8cjc84ix8bhlfcilwnn3iy6zq3l57yaplm9l";
+      type = "gem";
+    };
+    version = "1.8.1";
+  };
+  thor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+      type = "gem";
+    };
+    version = "0.20.3";
+  };
+  tilt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rn8z8hda4h41a64l0zhkiwz2vxw9b1nb70gl37h1dg2k874yrlv";
+      type = "gem";
+    };
+    version = "2.0.10";
+  };
+  tzinfo = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z";
+      type = "gem";
+    };
+    version = "2.0.4";
+  };
+  zeitwerk = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lmg9x683gr9mkrbq9df2m0zb0650mdfxqna0bs10js44inv7znx";
+      type = "gem";
+    };
+    version = "2.5.3";
+  };
+}
diff --git a/pkgs/tools/security/sslscan/default.nix b/pkgs/tools/security/sslscan/default.nix
index ae94b6e254702..6c112d6488daa 100644
--- a/pkgs/tools/security/sslscan/default.nix
+++ b/pkgs/tools/security/sslscan/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sslscan";
-  version = "2.0.13";
+  version = "2.0.14";
 
   src = fetchFromGitHub {
     owner = "rbsec";
     repo = "sslscan";
     rev = version;
-    sha256 = "sha256-boXp26f8jiw73lMLwUMuAuDBRIw8JzokYadbKx/VeSg=";
+    sha256 = "sha256-CqfxiTRIgrr4J6qThDFqohkxJj5Byf0vQzG+voAEzag=";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/system/btop/default.nix b/pkgs/tools/system/btop/default.nix
index 86547d04e467d..7b18f0ec604fe 100644
--- a/pkgs/tools/system/btop/default.nix
+++ b/pkgs/tools/system/btop/default.nix
@@ -8,8 +8,8 @@
 
 stdenv.mkDerivation rec {
   pname = "btop";
-  version = "1.2.6";
-  hash = "sha256-q1Dpdw7bVSG10xtoUpelRgMrWe71vCWajjsAHjAZzQ4=";
+  version = "1.2.7";
+  hash = "sha256-zQpt/CEWW3oPqPo6SPuawyfLa50y6M4hL07uRO7YjLo=";
 
   src = fetchFromGitHub {
     owner = "aristocratos";
diff --git a/pkgs/tools/system/openipmi/default.nix b/pkgs/tools/system/openipmi/default.nix
index 8a8ac04f3accc..228c305de0c6f 100644
--- a/pkgs/tools/system/openipmi/default.nix
+++ b/pkgs/tools/system/openipmi/default.nix
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
     description = "A user-level library that provides a higher-level abstraction of IPMI and generic services";
     license = with licenses; [ gpl2Only lgpl2Only ];
     platforms = platforms.linux;
-    maintainers = with maintainers; [ arezvov SuperSandro2000 ];
+    maintainers = with maintainers; [ arezvov ] ++ teams.c3d2.members;
   };
 }
diff --git a/pkgs/tools/system/smartmontools/default.nix b/pkgs/tools/system/smartmontools/default.nix
index e72d7ff5e1c20..18dc89a868045 100644
--- a/pkgs/tools/system/smartmontools/default.nix
+++ b/pkgs/tools/system/smartmontools/default.nix
@@ -10,22 +10,22 @@
 }:
 
 let
-  dbrev = "5171";
-  drivedbBranch = "RELEASE_7_2_DRIVEDB";
+  dbrev = "5388";
+  drivedbBranch = "RELEASE_7_3_DRIVEDB";
   driverdb = fetchurl {
     url = "https://sourceforge.net/p/smartmontools/code/${dbrev}/tree/branches/${drivedbBranch}/smartmontools/drivedb.h?format=raw";
-    sha256 = "0vncr98xagbcfsxgfgxsip2qrl9q3y8va19qhv6yknlwbdfap4mn";
+    sha256 = "sha256-0dtLev4JjeHsS259+qOgg19rz4yjkeX4D3ooUgS4RTI=";
     name = "smartmontools-drivedb.h";
   };
 
 in
 stdenv.mkDerivation rec {
   pname = "smartmontools";
-  version = "7.2";
+  version = "7.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/smartmontools/${pname}-${version}.tar.gz";
-    sha256 = "1mlc25sd5rgj5xmzcllci47inmfdw7cp185fday6hc9rwqkqmnaw";
+    sha256 = "sha256-pUT4gI0MWM+w50JMoYQcuFipdJIrA11QXU5MJIvjois=";
   };
 
   patches = [
diff --git a/pkgs/tools/text/cmigemo/default.nix b/pkgs/tools/text/cmigemo/default.nix
index 8bd60b516fd13..1f9ef7701ba16 100644
--- a/pkgs/tools/text/cmigemo/default.nix
+++ b/pkgs/tools/text/cmigemo/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchurl, buildPackages
+{ lib, stdenv, fetchFromGitHub, buildPackages
 , libiconv, nkf, perl, which
 , skk-dicts
 }:
@@ -13,8 +13,8 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "koron";
     repo = "cmigemo";
-    rev = "5c014a885972c77e67d0d17d367d05017c5873f7";
-    sha256 = "0xrblwhaf70m0knkd5584iahaq84rlk0926bhdsrzmakpw77hils";
+    rev = "e0f6145f61e0b7058c3006f344e58571d9fdd83a";
+    sha256 = "00a6kdmxp16b8x0p04ws050y39qspd1bqlfq74bkirc55b77a2m1";
   };
 
   nativeBuildInputs = [ libiconv nkf perl which ];
diff --git a/pkgs/tools/text/dos2unix/default.nix b/pkgs/tools/text/dos2unix/default.nix
index f694b91762c55..6a0c5fc57ee93 100644
--- a/pkgs/tools/text/dos2unix/default.nix
+++ b/pkgs/tools/text/dos2unix/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dos2unix";
-  version = "7.4.2";
+  version = "7.4.3";
 
   src = fetchurl {
     url = "https://waterlan.home.xs4all.nl/dos2unix/${pname}-${version}.tar.gz";
-    sha256 = "00dfsf4rfyjb5j12gan8xjiirm0asshdz6dmd3l34a7ays6wadb0";
+    sha256 = "sha256-to20GVba+TOChCOqMFEOAMEtKe9ZFucV6NTmlP5mynI=";
   };
 
   nativeBuildInputs = [ perl gettext ];
diff --git a/pkgs/tools/text/mdbook/default.nix b/pkgs/tools/text/mdbook/default.nix
index 075dd1b2b5879..57f373a9ce1a5 100644
--- a/pkgs/tools/text/mdbook/default.nix
+++ b/pkgs/tools/text/mdbook/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook";
-  version = "0.4.17";
+  version = "0.4.18";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = "mdBook";
     rev = "v${version}";
-    sha256 = "sha256-08ccRiOBXYqueKfyi/Ry39O2xOXUKishgqhn6RdbvUE=";
+    sha256 = "sha256-lsryNrgjOGdugOhtkNbnYEreF0X1ywLVaFmKUXDf884=";
   };
 
-  cargoSha256 = "sha256-vXUjKpCGlHlBvXLtmGkFtHRxxZakiEzuNzReFGEl6dw=";
+  cargoSha256 = "sha256-l95nbp9PEgO97D1M/R9IB3Xfog6+DkZwyVY2DEl5mG4=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/pkgs/tools/text/nkf/default.nix b/pkgs/tools/text/nkf/default.nix
index a2b5f66a6e915..9a70ea9461af5 100644
--- a/pkgs/tools/text/nkf/default.nix
+++ b/pkgs/tools/text/nkf/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "nkf";
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "0i5dbcb9aipwr8ym4mhvgf1in3frl6y8h8x96cprz9s7b11xz9yi";
   };
 
+  patches = [
+    # Pull upstream fix for parllel build failures
+    (fetchpatch {
+      name = "parallel-install.patch";
+      url = "http://git.osdn.net/view?p=nkf/nkf.git;a=patch;h=9ccff5975bec7963e591e042e1ab1139252a4dc9";
+      sha256 = "00f0x414gfch650b20w0yj5x2bd67hchmadl7v54lk3vdgkc6jwj";
+    })
+  ];
+
   makeFlags = [ "prefix=$(out)" ];
 
   meta = {
diff --git a/pkgs/tools/text/poedit/default.nix b/pkgs/tools/text/poedit/default.nix
index fcb2a7019acad..c64828579c948 100644
--- a/pkgs/tools/text/poedit/default.nix
+++ b/pkgs/tools/text/poedit/default.nix
@@ -1,22 +1,22 @@
-{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, gettext, pkg-config, wxGTK31-gtk3,
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, gettext, pkg-config, wxGTK30-gtk3,
   boost, icu, lucenepp, asciidoc, libxslt, xmlto, gtk3, gtkspell3, pugixml,
   nlohmann_json, hicolor-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "poedit";
-  version = "3.0.1";
+  version = "3.1";
 
   src = fetchFromGitHub {
     owner = "vslavik";
     repo = "poedit";
     rev = "v${version}-oss";
-    sha256 = "sha256-PBAOCAO3OrBE7lOho7nJNEpqwds7XiblN/f+GonrXHA=";
+    sha256 = "sha256-Wxj1xPbtupEnzuvf7JdUgdTxX2oAZDEYk6W4CjrmRRE=";
   };
 
   nativeBuildInputs = [ autoconf automake asciidoc wrapGAppsHook
     libxslt xmlto boost libtool pkg-config ];
 
-  buildInputs = [ lucenepp nlohmann_json wxGTK31-gtk3 icu pugixml gtk3 gtkspell3 hicolor-icon-theme ];
+  buildInputs = [ lucenepp nlohmann_json wxGTK30-gtk3 icu pugixml gtk3 gtkspell3 hicolor-icon-theme ];
 
   propagatedBuildInputs = [ gettext ];
 
diff --git a/pkgs/tools/typesetting/htmldoc/default.nix b/pkgs/tools/typesetting/htmldoc/default.nix
index d4cd1478ac46d..37b0b42d23e5c 100644
--- a/pkgs/tools/typesetting/htmldoc/default.nix
+++ b/pkgs/tools/typesetting/htmldoc/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "htmldoc";
-  version = "1.9.15";
+  version = "1.9.16";
   src = fetchFromGitHub {
     owner = "michaelrsweet";
     repo = "htmldoc";
     rev = "v${version}";
-    sha256 = "sha256-WNsYJacZBYoZ8Bxj+InQ9ePvelqhU5y9nY7aikUNxEk=";
+    sha256 = "117cj5sfzl18gan53ld8lxb0wycizcp9jcakcs3nsvnss99rw3a6";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/video/harvid/default.nix b/pkgs/tools/video/harvid/default.nix
index 729c26de57ea9..90ed6d425869e 100644
--- a/pkgs/tools/video/harvid/default.nix
+++ b/pkgs/tools/video/harvid/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, ffmpeg, libjpeg, libpng, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, ffmpeg, libjpeg, libpng, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "harvid";
@@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-qt6aep7iMF8/lnlT2wLqu6LkFDqzdfsGLZvrOlXttG8=";
   };
 
+  patches = [
+    # Fix pending upstream inclusion to support parallel builds:
+    #   https://github.com/x42/harvid/pull/10
+    (fetchpatch {
+      name = "parallel-build.patch";
+      url = "https://github.com/x42/harvid/commit/a3f85c57ad2559558706d9b22989de36452704d9.patch";
+      sha256 = "sha256-0aBfM/4XEqM7C1nFw996IVwaeL0tNgMUQ1C3kblOobI=";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ ffmpeg libjpeg libpng ];
diff --git a/pkgs/tools/video/rtmpdump/default.nix b/pkgs/tools/video/rtmpdump/default.nix
index 5f301ae88915a..6e05f81fcd8ce 100644
--- a/pkgs/tools/video/rtmpdump/default.nix
+++ b/pkgs/tools/video/rtmpdump/default.nix
@@ -15,13 +15,13 @@ assert (gnutlsSupport || opensslSupport);
 with lib;
 stdenv.mkDerivation {
   pname = "rtmpdump";
-  version = "unstable-2019-03-30";
+  version = "unstable-2021-02-19";
 
   src = fetchgit {
     url = "git://git.ffmpeg.org/rtmpdump";
     # Currently the latest commit is used (a release has not been made since 2011, i.e. '2.4')
-    rev = "c5f04a58fc2aeea6296ca7c44ee4734c18401aa3";
-    sha256 = "07ias612jgmxpam9h418kvlag32da914jsnjsfyafklpnh8gdzjb";
+    rev = "f1b83c10d8beb43fcc70a6e88cf4325499f25857";
+    sha256 = "0vchr0f0d5fi0zaa16jywva5db3x9dyws7clqaq32gwh5drbkvs0";
   };
 
   patches = [
diff --git a/pkgs/tools/x11/xmcp/default.nix b/pkgs/tools/x11/xmcp/default.nix
new file mode 100644
index 0000000000000..178861d637246
--- /dev/null
+++ b/pkgs/tools/x11/xmcp/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, libX11
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xmcp";
+  version = "unstable-2020-10-10";
+
+  src = fetchFromGitHub {
+    owner = "blblapco";
+    repo = "xmcp";
+    rev = "ee56225f1665f9edc04fe5c165809f2fe160a420";
+    sha256 = "sha256-B3YkYrVEg6UJ2ApaVook4N2XvrCboxDMUG5CN9I79Sg=";
+  };
+
+  buildInputs = [ libX11 ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm0755 xmcp $out/bin/xmcp
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tiny color picker for X11";
+    homepage = "https://github.com/blblapco/xmcp";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ azahi ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 3b2a08673c7fa..fdf0e40de72cd 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -619,6 +619,7 @@ mapAliases ({
   iops = throw "iops was removed: upstream is gone"; # Added 2022-02-06
   iproute = iproute2; # moved from top-level 2021-03-14
   ipsecTools = throw "ipsecTools has benn removed, because it was no longer maintained upstream"; # Added 2021-12-15
+  itch-setup = throw "itch-setup has benn removed, use itch instead"; # Added 2022-06-02
 
   ### J ###
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4a664688a7e2a..b7829b4c01568 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1139,6 +1139,8 @@ with pkgs;
 
   asleap = callPackage ../tools/networking/asleap { };
 
+  butler = callPackage ../games/itch/butler.nix { };
+
   cf-vault = callPackage ../tools/admin/cf-vault { };
 
   bikeshed = python3Packages.callPackage ../applications/misc/bikeshed { };
@@ -1581,6 +1583,8 @@ with pkgs;
 
   darktile = callPackage ../applications/terminal-emulators/darktile { };
 
+  dterm = callPackage ../applications/terminal-emulators/dterm { };
+
   eterm = callPackage ../applications/terminal-emulators/eterm { };
 
   foot = callPackage ../applications/terminal-emulators/foot { };
@@ -2083,7 +2087,9 @@ with pkgs;
 
   botamusique = callPackage ../tools/audio/botamusique { };
 
-  boulder = callPackage ../tools/admin/boulder { };
+  boulder = callPackage ../tools/admin/boulder {
+    buildGoModule = buildGo118Module;
+  };
 
   btrfs-heatmap = callPackage ../tools/filesystems/btrfs-heatmap { };
 
@@ -2399,6 +2405,10 @@ with pkgs;
 
   hime = callPackage ../tools/inputmethods/hime {};
 
+  himitsu = callPackage ../tools/security/himitsu { };
+
+  himitsu-firefox = callPackage ../tools/security/himitsu-firefox { };
+
   hinit = haskell.lib.compose.justStaticExecutables haskellPackages.hinit;
 
   hostctl = callPackage ../tools/system/hostctl { };
@@ -2427,8 +2437,6 @@ with pkgs;
 
   itch = callPackage ../games/itch {};
 
-  itch-setup = callPackage ../games/itch-setup {};
-
   lastpass-cli = callPackage ../tools/security/lastpass-cli { };
 
   leetcode-cli = callPackage ../applications/misc/leetcode-cli { };
@@ -4091,6 +4099,8 @@ with pkgs;
 
   nix-direnv = callPackage ../tools/misc/nix-direnv { };
 
+  nixel = callPackage ../tools/nix/nixel { };
+
   nix-output-monitor = callPackage ../tools/nix/nix-output-monitor { };
 
   nix-template = callPackage ../tools/package-management/nix-template {
@@ -5547,6 +5557,10 @@ with pkgs;
     conf = config.schildichat-web.conf or {};
   };
 
+  schleuder = callPackage ../tools/security/schleuder { };
+
+  schleuder-cli = callPackage ../tools/security/schleuder/cli { };
+
   tealdeer = callPackage ../tools/misc/tealdeer {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -7760,14 +7774,6 @@ with pkgs;
 
   mani = callPackage ../development/tools/mani { };
 
-  mapcache = callPackage ../servers/geospatial/mapcache { };
-
-  mapserver = callPackage ../servers/geospatial/mapserver { };
-
-  martin = callPackage ../servers/geospatial/martin {
-    inherit (darwin.apple_sdk.frameworks) Security;
-  };
-
   mask = callPackage ../development/tools/mask { };
 
   mathpix-snipping-tool = callPackage ../tools/misc/mathpix-snipping-tool { };
@@ -8228,6 +8234,8 @@ with pkgs;
 
   longview = callPackage ../servers/monitoring/longview { };
 
+  lorien = callPackage ../applications/graphics/lorien { };
+
   lout = callPackage ../tools/typesetting/lout { };
 
   lr = callPackage ../tools/system/lr { };
@@ -9534,6 +9542,8 @@ with pkgs;
 
   pm2 = nodePackages.pm2;
 
+  pmenu = callPackage ../tools/X11/pmenu { };
+
   pngcheck = callPackage ../tools/graphics/pngcheck { };
 
   pngcrush = callPackage ../tools/graphics/pngcrush { };
@@ -9564,7 +9574,7 @@ with pkgs;
   pod2mdoc = callPackage ../tools/misc/pod2mdoc { };
 
   poedit = callPackage ../tools/text/poedit {
-    wxGTK31-gtk3 = wxGTK31-gtk3.override { withWebKit = true; };
+    wxGTK30-gtk3 = wxGTK30-gtk3.override { withWebKit = true; };
   };
 
   polipo = callPackage ../servers/polipo { };
@@ -9798,7 +9808,7 @@ with pkgs;
 
   qjournalctl = libsForQt5.callPackage ../applications/system/qjournalctl { };
 
-  qjoypad = callPackage ../tools/misc/qjoypad { };
+  qjoypad = libsForQt5.callPackage ../tools/misc/qjoypad { };
 
   qmk = callPackage ../tools/misc/qmk { };
 
@@ -10976,8 +10986,6 @@ with pkgs;
 
   tidy-viewer = callPackage ../tools/text/tidy-viewer { };
 
-  tile38 = callPackage ../servers/geospatial/tile38 { };
-
   tiled = libsForQt5.callPackage ../applications/editors/tiled { };
 
   tiledb = callPackage ../development/libraries/tiledb { };
@@ -11544,6 +11552,14 @@ with pkgs;
 
   woff2 = callPackage ../development/web/woff2 { };
 
+  woodpecker-agent = callPackage ../development/tools/continuous-integration/woodpecker/agent.nix { };
+
+  woodpecker-cli = callPackage ../development/tools/continuous-integration/woodpecker/cli.nix { };
+
+  woodpecker-server = callPackage ../development/tools/continuous-integration/woodpecker/server.nix {
+    woodpecker-frontend = callPackage ../development/tools/continuous-integration/woodpecker/frontend.nix { };
+  };
+
   woof = callPackage ../tools/misc/woof { };
 
   wootility = callPackage ../tools/misc/wootility {
@@ -11592,8 +11608,6 @@ with pkgs;
 
   td = callPackage ../tools/misc/td { };
 
-  tegola = callPackage ../servers/geospatial/tegola {};
-
   tftp-hpa = callPackage ../tools/networking/tftp-hpa {};
 
   tigervnc = callPackage ../tools/admin/tigervnc {};
@@ -12808,6 +12822,9 @@ with pkgs;
     isl = if !stdenv.isDarwin then isl_0_11 else null;
 
     cloog = if !stdenv.isDarwin then cloog_0_18_0 else null;
+
+    # Build fails on Darwin with clang
+    stdenv = if stdenv.isDarwin then gccStdenv else stdenv;
   }));
 
   gcc6 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/6 {
@@ -13211,10 +13228,6 @@ with pkgs;
 
   remarkable2-toolchain = callPackage ../development/tools/misc/remarkable/remarkable2-toolchain { };
 
-  t-rex = callPackage ../servers/geospatial/t-rex {
-    inherit (darwin.apple_sdk.frameworks) Security;
-  };
-
   tacacsplus = callPackage ../servers/tacacsplus { };
 
   tamarin-prover =
@@ -13838,11 +13851,11 @@ with pkgs;
   buildRustCrateHelpers = callPackage ../build-support/rust/build-rust-crate/helpers.nix { };
   cratesIO = callPackage ../build-support/rust/crates-io.nix { };
 
-  cargo-web = callPackage ../development/tools/cargo-web {
+  cargo-web = callPackage ../development/tools/rust/cargo-web {
     inherit (darwin.apple_sdk.frameworks) CoreServices Security;
   };
 
-  cargo-flamegraph = callPackage ../development/tools/cargo-flamegraph {
+  cargo-flamegraph = callPackage ../development/tools/rust/cargo-flamegraph {
     inherit (darwin.apple_sdk.frameworks) Security;
     inherit (linuxPackages) perf;
   };
@@ -13851,9 +13864,9 @@ with pkgs;
 
   defaultCrateOverrides = callPackage ../build-support/rust/default-crate-overrides.nix { };
 
-  cargo-about = callPackage ../tools/package-management/cargo-about { };
+  cargo-about = callPackage ../development/tools/rust/cargo-about { };
   cargo-all-features = callPackage ../development/tools/rust/cargo-all-features { };
-  cargo-audit = callPackage ../tools/package-management/cargo-audit {
+  cargo-audit = callPackage ../development/tools/rust/cargo-audit {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
   cargo-bisect-rustc = callPackage ../development/tools/rust/cargo-bisect-rustc {
@@ -13867,29 +13880,29 @@ with pkgs;
   cargo-deadlinks = callPackage ../development/tools/rust/cargo-deadlinks {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
-  cargo-deb = callPackage ../tools/package-management/cargo-deb {
+  cargo-deb = callPackage ../development/tools/rust/cargo-deb {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
-  cargo-deps = callPackage ../tools/package-management/cargo-deps { };
-  cargo-download = callPackage ../tools/package-management/cargo-download { };
-  cargo-edit = callPackage ../tools/package-management/cargo-edit {
+  cargo-deps = callPackage ../development/tools/rust/cargo-deps { };
+  cargo-download = callPackage ../development/tools/rust/cargo-download { };
+  cargo-edit = callPackage ../development/tools/rust/cargo-edit {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
-  cargo-kcov = callPackage ../tools/package-management/cargo-kcov { };
-  cargo-graph = callPackage ../tools/package-management/cargo-graph { };
-  cargo-license = callPackage ../tools/package-management/cargo-license { };
+  cargo-kcov = callPackage ../development/tools/rust/cargo-kcov { };
+  cargo-graph = callPackage ../development/tools/rust/cargo-graph { };
+  cargo-license = callPackage ../development/tools/rust/cargo-license { };
   cargo-llvm-lines = callPackage ../development/tools/rust/cargo-llvm-lines { };
-  cargo-outdated = callPackage ../tools/package-management/cargo-outdated {
+  cargo-outdated = callPackage ../development/tools/rust/cargo-outdated {
     inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
-  cargo-release = callPackage ../tools/package-management/cargo-release {
+  cargo-release = callPackage ../development/tools/rust/cargo-release {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
   cargo-rr = callPackage ../development/tools/rust/cargo-rr { };
   cargo-tarpaulin = callPackage ../development/tools/analysis/cargo-tarpaulin {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
-  cargo-update = callPackage ../tools/package-management/cargo-update {
+  cargo-update = callPackage ../development/tools/rust/cargo-update {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
@@ -15349,6 +15362,8 @@ with pkgs;
 
   corundum = callPackage ../development/tools/corundum { };
 
+  confluencepot = callPackage ../servers/confluencepot {};
+
   confluent-platform = callPackage ../servers/confluent-platform {};
 
   ctags = callPackage ../development/tools/misc/ctags { };
@@ -21023,6 +21038,8 @@ with pkgs;
 
   tidyp = callPackage ../development/libraries/tidyp { };
 
+  tidal-hifi = callPackage ../applications/audio/tidal-hifi { };
+
   tinycdb = callPackage ../development/libraries/tinycdb { };
 
   tinyxml = tinyxml2;
@@ -21865,7 +21882,9 @@ with pkgs;
     gn = gn1924;
   };
 
-  ergochat = callPackage ../servers/irc/ergochat { };
+  ergochat = callPackage ../servers/irc/ergochat {
+    buildGoModule = buildGo118Module;
+  };
 
   etcd = etcd_3_3;
   etcd_3_3 = callPackage ../servers/etcd/3.3.nix { };
@@ -22102,8 +22121,6 @@ with pkgs;
 
   mattermost-desktop = callPackage ../applications/networking/instant-messengers/mattermost-desktop { };
 
-  mbtileserver = callPackage ../servers/geospatial/mbtileserver { };
-
   memcached = callPackage ../servers/memcached {};
 
   meteor = callPackage ../servers/meteor { };
@@ -22346,10 +22363,6 @@ with pkgs;
 
   tomcat-native = callPackage ../servers/http/tomcat/tomcat-native.nix { };
 
-  pg_featureserv = callPackage ../servers/geospatial/pg_featureserv { };
-
-  pg_tileserv = callPackage ../servers/geospatial/pg_tileserv { };
-
   pies = callPackage ../servers/pies { };
 
   rpcbind = callPackage ../servers/rpcbind { };
@@ -22942,6 +22955,32 @@ with pkgs;
 
   zipkin = callPackage ../servers/monitoring/zipkin { };
 
+  ### SERVERS / GEOSPATIAL
+
+  geoserver = callPackage ../servers/geospatial/geoserver { };
+
+  mapcache = callPackage ../servers/geospatial/mapcache { };
+
+  mapserver = callPackage ../servers/geospatial/mapserver { };
+
+  martin = callPackage ../servers/geospatial/martin {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  mbtileserver = callPackage ../servers/geospatial/mbtileserver { };
+
+  pg_featureserv = callPackage ../servers/geospatial/pg_featureserv { };
+
+  pg_tileserv = callPackage ../servers/geospatial/pg_tileserv { };
+
+  t-rex = callPackage ../servers/geospatial/t-rex {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  tegola = callPackage ../servers/geospatial/tegola { };
+
+  tile38 = callPackage ../servers/geospatial/tile38 { };
+
   ### OS-SPECIFIC
 
   afuse = callPackage ../os-specific/linux/afuse { };
@@ -23444,8 +23483,6 @@ with pkgs;
   linux_5_10_hardened = linuxKernel.kernels.linux_5_10_hardened;
   linuxPackages_5_15_hardened = linuxKernel.packages.linux_5_15_hardened;
   linux_5_15_hardened = linuxKernel.kernels.linux_5_15_hardened;
-  linuxPackages_5_17_hardened = linuxKernel.packages.linux_5_17_hardened;
-  linux_5_17_hardened = linuxKernel.kernels.linux_5_17_hardened;
   linuxPackages_5_18_hardened = linuxKernel.packages.linux_5_18_hardened;
   linux_5_18_hardened = linuxKernel.kernels.linux_5_18_hardened;
 
@@ -25823,7 +25860,7 @@ with pkgs;
 
   complete-alias = callPackage ../tools/misc/complete-alias { };
 
-  confclerk = callPackage ../applications/misc/confclerk { };
+  confclerk = libsForQt5.callPackage ../applications/misc/confclerk { };
 
   copyq = libsForQt5.callPackage ../applications/misc/copyq { };
 
@@ -26759,7 +26796,7 @@ with pkgs;
   fragments = callPackage ../applications/networking/p2p/fragments { };
 
   freecad = libsForQt5.callPackage ../applications/graphics/freecad {
-    boost = python3Packages.boost169;
+    boost = python3Packages.boost;
     inherit (python3Packages)
       GitPython
       matplotlib
@@ -27659,6 +27696,8 @@ with pkgs;
 
   josm = callPackage ../applications/misc/josm { };
 
+  js8call = qt5.callPackage ../applications/radio/js8call { };
+
   jwm = callPackage ../applications/window-managers/jwm { };
 
   jwm-settings-manager = callPackage ../applications/window-managers/jwm/jwm-settings-manager.nix { };
@@ -29849,6 +29888,10 @@ with pkgs;
 
   robustirc-bridge = callPackage ../servers/irc/robustirc-bridge { };
 
+  routedns = callPackage ../tools/networking/routedns {
+    buildGoModule = buildGo118Module;
+  };
+
   skrooge = libsForQt5.callPackage ../applications/office/skrooge {};
 
   smartgithg = callPackage ../applications/version-management/smartgithg {
@@ -30048,7 +30091,9 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  talosctl = callPackage ../applications/networking/cluster/talosctl { };
+  talosctl = callPackage ../applications/networking/cluster/talosctl {
+    buildGoModule = buildGo118Module;
+  };
 
   talentedhack = callPackage ../applications/audio/talentedhack { };
 
@@ -31615,7 +31660,13 @@ with pkgs;
 
   runescape = callPackage ../games/runescape-launcher { };
 
-  sm64ex = callPackage ../games/sm64ex { };
+  sm64ex = callPackage ../games/sm64ex {
+    branch = "sm64ex";
+  };
+
+  sm64ex-coop = callPackage ../games/sm64ex {
+    branch = "sm64ex-coop";
+  };
 
   snipes = callPackage ../games/snipes { };
 
@@ -33603,7 +33654,9 @@ with pkgs;
 
   verifast = callPackage ../applications/science/logic/verifast {};
 
-  veriT = callPackage ../applications/science/logic/verit {};
+  veriT = callPackage ../applications/science/logic/verit {
+    stdenv = gccStdenv;
+  };
 
   why3 = callPackage ../applications/science/logic/why3 { };
 
@@ -33620,7 +33673,7 @@ with pkgs;
   z3 = z3_4_8;
   z3_4_4_0 = callPackage ../applications/science/logic/z3/4.4.0.nix {
     python = python2;
-    stdenv = gcc49Stdenv;
+    stdenv = if stdenv.isDarwin then stdenv else gcc49Stdenv;
   };
   z3-tptp = callPackage ../applications/science/logic/z3/tptp.nix {};
 
@@ -34724,7 +34777,7 @@ with pkgs;
     stdenv = gccStdenv;
   };
 
-  rss-glx = callPackage ../misc/screensavers/rss-glx { stdenv = gcc10StdenvCompat; };
+  rss-glx = callPackage ../misc/screensavers/rss-glx { };
 
   run-scaled = callPackage ../tools/X11/run-scaled { };
 
@@ -35269,19 +35322,16 @@ with pkgs;
 
   mpvc = callPackage ../applications/misc/mpvc { };
 
-  discord = import ../applications/networking/instant-messengers/discord {
+  discord = callPackage ../applications/networking/instant-messengers/discord {
     branch = "stable";
-    inherit pkgs lib stdenv;
   };
 
-  discord-ptb = import ../applications/networking/instant-messengers/discord {
+  discord-ptb = callPackage ../applications/networking/instant-messengers/discord {
     branch = "ptb";
-    inherit pkgs lib stdenv;
   };
 
-  discord-canary = import ../applications/networking/instant-messengers/discord {
+  discord-canary = callPackage ../applications/networking/instant-messengers/discord {
     branch = "canary";
-    inherit pkgs lib stdenv;
   };
 
   golden-cheetah = libsForQt5.callPackage ../applications/misc/golden-cheetah {};
@@ -35604,6 +35654,7 @@ with pkgs;
 
   xsos = callPackage ../os-specific/linux/xsos { };
 
+  xmcp = callPackage ../tools/x11/xmcp { };
 
   zk = callPackage ../applications/office/zk {};
 
diff --git a/pkgs/top-level/config.nix b/pkgs/top-level/config.nix
index e9cb8681f653e..0ab29d8516365 100644
--- a/pkgs/top-level/config.nix
+++ b/pkgs/top-level/config.nix
@@ -50,6 +50,10 @@ let
       feature = "set <literal>enableParallelBuilding</literal> to true by default";
     };
 
+    configurePlatformsByDefault = mkMassRebuild {
+      feature = "set <literal>configurePlatforms</literal> to <literal>[\"build\" \"host\"]</literal> by default";
+    };
+
     contentAddressedByDefault = mkMassRebuild {
       feature = "set <literal>__contentAddressed</literal> to true by default";
     };
diff --git a/pkgs/top-level/dotnet-packages.nix b/pkgs/top-level/dotnet-packages.nix
index 10188cee9148b..732fb66731efe 100644
--- a/pkgs/top-level/dotnet-packages.nix
+++ b/pkgs/top-level/dotnet-packages.nix
@@ -53,8 +53,8 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
 
   SharpZipLib = fetchNuGet {
     pname = "SharpZipLib";
-    version = "0.86.0";
-    sha256 = "01w2038gckfnq31pncrlgm7d0c939pwr1x4jj5450vcqpd4c41jr";
+    version = "1.3.3";
+    sha256 = "sha256-HWEQTKh9Ktwg/zIl079dAiH+ob2ShWFAqLgG6XgIMr4=";
     outputFiles = [ "lib/*" ];
   };
 
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index 6e9f5fd5fc09a..0e61796ef2816 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -162,12 +162,7 @@ in {
 
     linux_5_16 = throw "linux 5.16 was removed because it has reached its end of life upstream";
 
-    linux_5_17 = callPackage ../os-specific/linux/kernel/linux-5.17.nix {
-      kernelPatches = [
-        kernelPatches.bridge_stp_helper
-        kernelPatches.request_key_helper
-      ];
-    };
+    linux_5_17 = throw "linux 5.17 was removed because it has reached its end of life upstream";
 
     linux_5_18 = callPackage ../os-specific/linux/kernel/linux-5.18.nix {
       kernelPatches = [
@@ -189,7 +184,7 @@ in {
        else testing;
 
     linux_testing_bcachefs = callPackage ../os-specific/linux/kernel/linux-testing-bcachefs.nix rec {
-      kernel = linux_5_17;
+      kernel = linux_5_18;
       kernelPatches = kernel.kernelPatches;
    };
 
@@ -243,7 +238,6 @@ in {
     linux_5_4_hardened = hardenedKernelFor kernels.linux_5_4 { };
     linux_5_10_hardened = hardenedKernelFor kernels.linux_5_10 { };
     linux_5_15_hardened = hardenedKernelFor kernels.linux_5_15 { };
-    linux_5_17_hardened = hardenedKernelFor kernels.linux_5_17 { };
     linux_5_18_hardened = hardenedKernelFor kernels.linux_5_18 { };
 
   }));
@@ -282,6 +276,8 @@ in {
 
     apfs = callPackage ../os-specific/linux/apfs { };
 
+    ax99100 = callPackage ../os-specific/linux/ax99100 {};
+
     batman_adv = callPackage ../os-specific/linux/batman-adv {};
 
     bbswitch = callPackage ../os-specific/linux/bbswitch {};
@@ -515,7 +511,7 @@ in {
     linux_5_10 = recurseIntoAttrs (packagesFor kernels.linux_5_10);
     linux_5_15 = recurseIntoAttrs (packagesFor kernels.linux_5_15);
     linux_5_16 = throw "linux 5.16 was removed because it reached its end of life upstream"; # Added 2022-04-23
-    linux_5_17 = recurseIntoAttrs (packagesFor kernels.linux_5_17);
+    linux_5_17 = throw "linux 5.17 was removed because it reached its end of life upstream"; # Added 2022-06-23
     linux_5_18 = recurseIntoAttrs (packagesFor kernels.linux_5_18);
   };
 
@@ -555,7 +551,6 @@ in {
     });
     linux_5_10_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_10 { });
     linux_5_15_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_15 { });
-    linux_5_17_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_17 { });
     linux_5_18_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_18 { });
 
     linux_zen = recurseIntoAttrs (packagesFor kernels.linux_zen);
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 1695de51e6914..df9b8bf3315b4 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -9617,10 +9617,10 @@ let
 
   GnuPGInterface = buildPerlPackage {
     pname = "GnuPG-Interface";
-    version = "1.00";
+    version = "1.02";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JE/JESSE/GnuPG-Interface-1.00.tar.gz";
-      sha256 = "97e9c809491a061b2e99fb4e50c7bf74eb42e1deb11c64b081b21b4dbe6aec2f";
+      url = "mirror://cpan/authors/id/B/BP/BPS/GnuPG-Interface-1.02.tar.gz";
+      sha256 = "c27a48c3d48e1a9205e362eeea66d46b032bd84637991fdf0b13828bcafdd3e6";
     };
     buildInputs = [ pkgs.which pkgs.gnupg1compat ];
     propagatedBuildInputs = [ MooXHandlesVia MooXlate ];
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index 04f93fd015e97..a6c676ea60156 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -69,6 +69,7 @@ mapAliases ({
   dogpile_cache = dogpile-cache; # added 2021-10-28
   dogpile-core = throw "dogpile-core is no longer maintained, use dogpile-cache instead"; # added 2021-11-20
   eebrightbox = throw "eebrightbox is unmaintained upstream and has therefore been removed"; # added 2022-02-03
+  email_validator = email-validator; # added 2022-06-22
   fake_factory = throw "fake_factory has been removed because it is unused and deprecated by upstream since 2016."; # added 2022-05-30
   faulthandler = throw "faulthandler is built into ${python.executable}"; # added 2021-07-12
   flask_testing = flask-testing; # added 2022-04-25
@@ -117,6 +118,7 @@ mapAliases ({
   pycryptodome-test-vectors = throw "pycryptodome-test-vectors has been removed because it is an internal package to pycryptodome"; # added 2022-05-28
   pyialarmxr = pyialarmxr-homeassistant; # added 2022-06-07
   pylibgen = throw "pylibgen is unmaintained upstreamed, and removed from nixpkgs"; # added 2020-06-20
+  PyLD = pyld; # added 2022-06-22
   pymc3 = pymc; # added 2022-06-05, module was rename starting with 4.0.0
   pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
   pyreadability = readability-lxml; # added 2022-05-24
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 9ffa21b269963..1a652fa48d6dc 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1356,11 +1356,6 @@ in {
     enablePython = true;
   });
 
-  boost169 = toPythonModule (pkgs.boost169.override {
-    inherit (self) python numpy;
-    enablePython = true;
-  });
-
   boschshcpy = callPackage ../development/python-modules/boschshcpy { };
 
   boost-histogram = callPackage ../development/python-modules/boost-histogram {
@@ -2739,7 +2734,7 @@ in {
 
   emailthreads = callPackage ../development/python-modules/emailthreads { };
 
-  email_validator = callPackage ../development/python-modules/email-validator { };
+  email-validator = callPackage ../development/python-modules/email-validator { };
 
   embrace = callPackage ../development/python-modules/embrace { };
 
@@ -7557,7 +7552,7 @@ in {
 
   pylaunches = callPackage ../development/python-modules/pylaunches { };
 
-  PyLD = callPackage ../development/python-modules/PyLD { };
+  pyld = callPackage ../development/python-modules/pyld { };
 
   pylev = callPackage ../development/python-modules/pylev { };
 
@@ -10014,6 +10009,8 @@ in {
 
   sphinx-autobuild = callPackage ../development/python-modules/sphinx-autobuild { };
 
+  sphinx-basic-ng = callPackage ../development/python-modules/sphinx-basic-ng { };
+
   sphinx-copybutton = callPackage ../development/python-modules/sphinx-copybutton { };
 
   sphinx-inline-tabs = callPackage ../development/python-modules/sphinx-inline-tabs { };
diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix
index e066d191ef2bf..45874d33b0f22 100644
--- a/pkgs/top-level/release-lib.nix
+++ b/pkgs/top-level/release-lib.nix
@@ -146,7 +146,8 @@ rec {
   packagePlatforms = mapAttrs (name: value:
       if isDerivation value then
         value.meta.hydraPlatforms
-          or (value.meta.platforms or [ "x86_64-linux" ])
+          or (lib.subtractLists (value.meta.badPlatforms or [])
+               (value.meta.platforms or [ "x86_64-linux" ]))
       else if value.recurseForDerivations or false || value.recurseForRelease or false then
         packagePlatforms value
       else