about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools')
-rw-r--r--nixpkgs/pkgs/tools/X11/alttab/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/bgs/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/X11/dex/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/X11/nx-libs/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/X11/opentabletdriver/default.nix120
-rw-r--r--nixpkgs/pkgs/tools/X11/opentabletdriver/deps.nix266
-rw-r--r--nixpkgs/pkgs/tools/X11/opentabletdriver/shell.nix13
-rwxr-xr-xnixpkgs/pkgs/tools/X11/opentabletdriver/update.sh40
-rw-r--r--nixpkgs/pkgs/tools/X11/primus/lib.nix26
-rw-r--r--nixpkgs/pkgs/tools/X11/run-scaled/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/X11/sct/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/X11/skippy-xd/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/X11/virtualgl/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/X11/wmutils-core/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/X11/xdotool/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/xgeometry-select/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/X11/xidlehook/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/xinput_calibrator/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/X11/xob/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/X11/xprintidle-ng/default.nix41
-rw-r--r--nixpkgs/pkgs/tools/admin/acme-sh/default.nix77
-rw-r--r--nixpkgs/pkgs/tools/admin/acme.sh/default.nix44
-rw-r--r--nixpkgs/pkgs/tools/admin/aliyun-cli/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/admin/ansible/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/admin/awscli/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/admin/awscli2/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/admin/awslimitchecker/default.nix58
-rw-r--r--nixpkgs/pkgs/tools/admin/awslimitchecker/version.patch35
-rw-r--r--nixpkgs/pkgs/tools/admin/azure-cli/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix130
-rw-r--r--nixpkgs/pkgs/tools/admin/certigo/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/chamber/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/clair/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/colmena/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/admin/credhub-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/eksctl/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/fioctl/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/admin/fits-cloudctl/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/google-cloud-sdk/data.nix32
-rw-r--r--nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix51
-rwxr-xr-xnixpkgs/pkgs/tools/admin/google-cloud-sdk/update.sh47
-rw-r--r--nixpkgs/pkgs/tools/admin/gtk-vnc/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/iamy/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/lego/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/lxd/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/admin/meshcentral/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/meshcentral/package.json24
-rw-r--r--nixpkgs/pkgs/tools/admin/meshcentral/yarn.lock1279
-rw-r--r--nixpkgs/pkgs/tools/admin/meshcentral/yarn.nix1288
-rw-r--r--nixpkgs/pkgs/tools/admin/netplan/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/admin/procs/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi/data.nix322
-rwxr-xr-xnixpkgs/pkgs/tools/admin/pulumi/update.sh2
-rw-r--r--nixpkgs/pkgs/tools/admin/puppet/puppet-bolt/Gemfile.lock28
-rw-r--r--nixpkgs/pkgs/tools/admin/puppet/puppet-bolt/gemset.nix48
-rw-r--r--nixpkgs/pkgs/tools/admin/realvnc-vnc-viewer/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/admin/salt/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/admin/scaleway-cli/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/admin/stripe-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/synapse-admin/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/admin/tigervnc/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/tightvnc/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/trinsic-cli/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/admin/trivy/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/admin/turbovnc/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/winbox/default.nix79
-rw-r--r--nixpkgs/pkgs/tools/archivers/7zz/default.nix61
-rw-r--r--nixpkgs/pkgs/tools/archivers/arc_unpacker/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/archivers/arj/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/archivers/corearchiver/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/archivers/cpio/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/archivers/pax/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/archivers/tarlz/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/archivers/torrent7z/default.nix53
-rw-r--r--nixpkgs/pkgs/tools/archivers/unar/default.nix70
-rw-r--r--nixpkgs/pkgs/tools/archivers/unrar-wrapper/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/archivers/unrar-wrapper/setup-hook.sh5
-rw-r--r--nixpkgs/pkgs/tools/archivers/unrar/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/archivers/unzoo/default.nix44
-rw-r--r--nixpkgs/pkgs/tools/archivers/wimlib/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/archivers/zpaq/default.upstream6
-rw-r--r--nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.nix20
-rw-r--r--nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.upstream5
-rw-r--r--nixpkgs/pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/acousticbrainz-client/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/audio/alsaequal/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/bash-completion-always-print.patch29
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch65
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/default.nix58
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/imagemagick-nix-path.patch20
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/keyfinder-default-bin.patch26
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch14
-rw-r--r--nixpkgs/pkgs/tools/audio/botamusique/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/audio/botamusique/node-packages.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/botamusique/src.json11
-rw-r--r--nixpkgs/pkgs/tools/audio/isrcsubmit/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/audio/kaldi/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/audio/opl3bankeditor/common.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/stt/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/audio/tts/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/audio/yabridge/default.nix91
-rw-r--r--nixpkgs/pkgs/tools/audio/yabridge/hardcode-dependencies.patch43
-rw-r--r--nixpkgs/pkgs/tools/audio/yabridge/hardcode-wine.patch13
-rw-r--r--nixpkgs/pkgs/tools/audio/yabridgectl/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch8
-rw-r--r--nixpkgs/pkgs/tools/backup/autorestic/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/backup/bakelite/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/backup/borgmatic/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/backup/bupstash/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/backup/burp/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/backup/discordchatexporter-cli/deps.nix28
-rw-r--r--nixpkgs/pkgs/tools/backup/duplicity/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/backup/gamerbackup/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/backup/grab-site/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/backup/hpe-ltfs/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/backup/hpe-ltfs/remove-sysctl.patch14
-rw-r--r--nixpkgs/pkgs/tools/backup/kopia/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/backup/partclone/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/s3ql/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/zbackup/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/backup/zbackup/protobuf-api-change.patch11
-rw-r--r--nixpkgs/pkgs/tools/backup/zfs-prune-snapshots/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/znapzend/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/bluetooth/blueman/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/bluetooth/bluez-tools/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/brasero/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/ccd2iso/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/cdrkit/cdrkit-1.1.11-fno-common.patch11
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/cdrkit/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/cdrtools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/nrg2iso/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/vobsub2srt/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/xorriso/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/compression/advancecomp/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/compression/bsdiff/CVE-2020-14315.patch384
-rw-r--r--nixpkgs/pkgs/tools/compression/bsdiff/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/compression/crabz/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/compression/dtrx/default.nix45
-rw-r--r--nixpkgs/pkgs/tools/compression/flips/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/compression/gzip/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/compression/hacpack/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/compression/imagelol/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/compression/lrzip/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/compression/ouch/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/filesystems/android-file-transfer/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/filesystems/apfsprogs/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/filesystems/bees/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/btrfs-snap/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/filesystems/ceph/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/filesystems/cryfs/default.nix62
-rw-r--r--nixpkgs/pkgs/tools/filesystems/cryfs/use-macfuse.patch207
-rw-r--r--nixpkgs/pkgs/tools/filesystems/davfs2/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/dduper/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/e2fsprogs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/exfatprogs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/fatsort/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/gfs2-utils/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/filesystems/glusterfs/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/filesystems/goofys/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/filesystems/hfsprogs/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/filesystems/httpdirfs/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/filesystems/kio-fuse/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/filesystems/lfs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/filesystems/lizardfs/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/filesystems/mergerfs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/mp3fs/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/filesystems/mp3fs/fix-statfs-operation.patch39
-rw-r--r--nixpkgs/pkgs/tools/filesystems/mtdutils/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/filesystems/mtools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/netatalk/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nilfs-utils/default.nix65
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.nix50
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.patch51
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/cryptsetup.nix38
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/default.nix77
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/dmraid.nix26
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix76
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix53
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/parted.nix61
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pyblock-sysmacros.h.patch12
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pyblock.nix36
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pykickstart.nix30
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pyparted.nix42
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/filesystems/s3backer/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/snapraid/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/sshfs-fuse/common.nix1
-rw-r--r--nixpkgs/pkgs/tools/filesystems/wiimms-iso-tools/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/filesystems/xfsprogs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/filesystems/zpool-iostat-viz/default.nix40
-rw-r--r--nixpkgs/pkgs/tools/games/ajour/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/games/gamemode/preload-nix-workaround.patch2
-rw-r--r--nixpkgs/pkgs/tools/games/joystickwake/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/games/jpsxdec/0001-jpsxdec-hackfix-build-with-newer-JDKs.patch43
-rw-r--r--nixpkgs/pkgs/tools/games/jpsxdec/default.nix84
-rw-r--r--nixpkgs/pkgs/tools/games/minecraft/fabric-installer/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/games/minecraft/optifine/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/games/opentracker/default.nix62
-rw-r--r--nixpkgs/pkgs/tools/games/opentracker/deps.nix228
-rw-r--r--nixpkgs/pkgs/tools/graphics/aaphoto/default.nix48
-rw-r--r--nixpkgs/pkgs/tools/graphics/agi/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/argyllcms/default.nix118
-rw-r--r--nixpkgs/pkgs/tools/graphics/astc-encoder/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/blockhash/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/graphics/escrotum/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/graphics/facedetect/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/graphics/fgallery/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/flam3/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/graphics/gifski/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/glmark2/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/gmic/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/gnuplot/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/goverlay/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/graphics/goverlay/find-xdg-data-files.patch10
-rw-r--r--nixpkgs/pkgs/tools/graphics/graphviz/2.32.nix5
-rw-r--r--nixpkgs/pkgs/tools/graphics/graphviz/base.nix96
-rw-r--r--nixpkgs/pkgs/tools/graphics/graphviz/default.nix119
-rw-r--r--nixpkgs/pkgs/tools/graphics/gromit-mpx/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/ibniz/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/imageworsener/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/ldgallery/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/ldgallery/viewer/node-composition.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/netpbm/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/oxipng/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/pdfredacttools/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/graphics/pdftoipe/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/graphics/perceptualdiff/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/graphics/pfstools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/pngcheck/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/graphics/pngout/default.nix45
-rw-r--r--nixpkgs/pkgs/tools/graphics/pngquant/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/pstoedit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/qrcode/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/graphics/resvg/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/shotgun/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/spirv-cross/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/svgcleaner/Cargo.lock256
-rw-r--r--nixpkgs/pkgs/tools/graphics/svgcleaner/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/graphics/vips/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/viu/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/vulkan-extension-layer/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/vulkan-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/wallutils/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/graphics/wdisplays/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/graphics/zbar/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/zxing/zxing.sh26
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/emote/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx/fcitx-configtool.nix9
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix8
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-m17n.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-libthai/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/interception-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/m17n-db/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/m17n-lib/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/m17n-lib/otf.nix42
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/remote-touchpad/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/skk/skk-dicts/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/touchegg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/0x0/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/misc/android-tools/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/misc/antimicrox/default.nix (renamed from nixpkgs/pkgs/tools/misc/antimicroX/default.nix)23
-rw-r--r--nixpkgs/pkgs/tools/misc/apkeep/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/atuin/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/misc/autorandr/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/misc/bandwidth/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/barman/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/misc/bash_unit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/bat/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/misc/bdf2psf/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/beats/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/bibutils/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/birdfont/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/bitbucket-cli/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/misc/bitwise/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/bkyml/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/blink1-tool/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/bottom-rs/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/broot/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/misc/bunnyfetch/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/byobu/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/calamares/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/chezmoi/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/cht.sh/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/ckb-next/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/clickclack/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/clipnotify/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/cloc/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/misc/cloud-sql-proxy/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/misc/code-minimap/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/colorpicker/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/convbin/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/convimg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/coreshot/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.23-4.cygwin.patch1259
-rw-r--r--nixpkgs/pkgs/tools/misc/coreutils/default.nix50
-rw-r--r--nixpkgs/pkgs/tools/misc/coreutils/disable-seek-hole.patch43
-rw-r--r--nixpkgs/pkgs/tools/misc/coreutils/fix-chmod-exit-code.patch108
-rw-r--r--nixpkgs/pkgs/tools/misc/coreutils/fix-gnulib-tests-arm.patch45
-rw-r--r--nixpkgs/pkgs/tools/misc/coreutils/sys-getdents-undeclared.patch100
-rw-r--r--nixpkgs/pkgs/tools/misc/cpufetch/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/misc/cpuminer-multi/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/misc/czkawka/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/misc/datefmt/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/misc/dateutils/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/ddcutil/default.nix50
-rw-r--r--nixpkgs/pkgs/tools/misc/ddcutil/nixos-paths.diff30
-rw-r--r--nixpkgs/pkgs/tools/misc/debootstrap/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/depotdownloader/default.nix37
-rw-r--r--nixpkgs/pkgs/tools/misc/depotdownloader/deps.nix95
-rwxr-xr-xnixpkgs/pkgs/tools/misc/depotdownloader/fetch-deps.sh22
-rw-r--r--nixpkgs/pkgs/tools/misc/desktop-file-utils/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/diffoscope/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/misc/diffoscope/fix-tests.patch19
-rw-r--r--nixpkgs/pkgs/tools/misc/direnv/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/diskus/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/misc/dua/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/edid-generator/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/enjarify/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/misc/entr/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/esphome/dashboard.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/esphome/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/esptool/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/etcher/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/misc/ethminer/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/ethtool/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/execline/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/fbcat/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/misc/fbmark/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/misc/fclones/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/fd/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/fdupes/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/fend/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/ffsend/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/file/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/misc/flameshot/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/flashrom/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/misc/fluent-bit/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/misc/fluent-bit/fix-luajit-darwin.patch31
-rw-r--r--nixpkgs/pkgs/tools/misc/fluentd/Gemfile.lock159
-rw-r--r--nixpkgs/pkgs/tools/misc/fluentd/gemset.nix285
-rw-r--r--nixpkgs/pkgs/tools/misc/fntsample/default.nix80
-rw-r--r--nixpkgs/pkgs/tools/misc/fortune/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/misc/fpart/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/fsearch/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/fselect/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/fx_cast/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/fzf/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/g933-utils/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/gaphor/default.nix66
-rw-r--r--nixpkgs/pkgs/tools/misc/geekbench/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/git-town/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/gitlint/default.nix54
-rw-r--r--nixpkgs/pkgs/tools/misc/goaccess/default.nix54
-rw-r--r--nixpkgs/pkgs/tools/misc/goreleaser/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/gotify-cli/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/gotify-desktop/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/misc/gparted/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/graylog/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/graylog/plugins.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/grub/2.0x.nix18
-rwxr-xr-xnixpkgs/pkgs/tools/misc/grub/grub1.patches.sh68
-rw-r--r--nixpkgs/pkgs/tools/misc/gwe/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/hashit/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/hdf5/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/hdf5/hdf5-more-determinism.patch15
-rw-r--r--nixpkgs/pkgs/tools/misc/heimdall/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/misc/hiksink/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/misc/hyperfine/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/misc/ibus-theme-tools/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/misc/interactsh/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/ipxe/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/jdupes/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/jsonwatch/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/misc/jugglinglab/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/kak-lsp/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/kepubify/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/keychain/default.nix45
-rw-r--r--nixpkgs/pkgs/tools/misc/keymapviz/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/misc/ksnip/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/less/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/lf/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/libcpuid/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/lighthouse-steamvr/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/misc/lilo/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/livedl/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/lnav/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/loadlibrary/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/logstash/6.x.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/logstash/7.x.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/lsd/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/misc/macchina/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/man-db/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/mandoc/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/mbuffer/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/misc/mc/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/misc/mcfly/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/mdbtools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/me_cleaner/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/memtest86-efi/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/misc/miniserve/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/mktorrent/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/mmctl/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix60
-rw-r--r--nixpkgs/pkgs/tools/misc/mongodb-tools/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/moreutils/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/most/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/most/parallel-make.patch18
-rw-r--r--nixpkgs/pkgs/tools/misc/mstflint/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/misc/multitail/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/misc/mysqltuner/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/nix-direnv/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/nms/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/nncp/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/misc/ntfy/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/misc/nux/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/misc/nvimpager/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/octofetch/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/misc/oggvideotools/default.nix47
-rw-r--r--nixpkgs/pkgs/tools/misc/opencbm/default.nix52
-rw-r--r--nixpkgs/pkgs/tools/misc/opencorsairlink/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/opentelemetry-collector/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/os-prober/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/ostree/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pandoc-lua-filters/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/parallel/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/parquet-tools/default.nix69
-rw-r--r--nixpkgs/pkgs/tools/misc/peep/0001-Add-Cargo.lock-by-running-cargo-vendor.patch570
-rw-r--r--nixpkgs/pkgs/tools/misc/peep/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/misc/pgmetrics/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pipe-rename/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/pipectl/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/misc/pipreqs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pistol/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/plantuml-server/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/plantuml/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pmbootstrap/default.nix92
-rw-r--r--nixpkgs/pkgs/tools/misc/ponysay/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/pre-commit/default.nix57
-rw-r--r--nixpkgs/pkgs/tools/misc/pre-commit/hook-tmpl.patch15
-rw-r--r--nixpkgs/pkgs/tools/misc/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch26
-rw-r--r--nixpkgs/pkgs/tools/misc/procyon/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/misc/profile-cleaner/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pspg/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/qflipper/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/misc/qmk/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/misc/qt5ct/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/rates/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/recoverjpeg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/remind/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/rust-motd/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/misc/s6-portable-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/screen/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/sfeed/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/misc/shadowenv/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/sharedown/default.nix85
-rwxr-xr-xnixpkgs/pkgs/tools/misc/sharedown/update.sh4
-rw-r--r--nixpkgs/pkgs/tools/misc/sharedown/yarn.lock504
-rw-r--r--nixpkgs/pkgs/tools/misc/sharedown/yarndeps.nix472
-rw-r--r--nixpkgs/pkgs/tools/misc/smenu/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/snapper/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/starship/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/staruml/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/stderred/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/misc/steampipe/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/swaglyrics/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/misc/synth/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/sysz/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/tea/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/tealdeer/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/termplay/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/tfk8s/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/misc/thefuck/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/misc/timelimit/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/timidity/default.nix43
-rw-r--r--nixpkgs/pkgs/tools/misc/tio/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/tldr/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/topgrade/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/topicctl/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/misc/toybox/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/trac/default.nix56
-rw-r--r--nixpkgs/pkgs/tools/misc/trash-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/trillian/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/tty-clock/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/misc/tz/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/upterm/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/uwufetch/default.nix47
-rw-r--r--nixpkgs/pkgs/tools/misc/uwufetch/fix-paths.patch22
-rw-r--r--nixpkgs/pkgs/tools/misc/uwuify/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/vector/default.nix49
-rw-r--r--nixpkgs/pkgs/tools/misc/veikk-linux-driver-gui/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/vial/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/viddy/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/vimpager/build.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/vimpager/latest.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/vimwiki-markdown/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/wakatime/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/misc/websocat/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/misc/wlc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/woeusb-ng/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/misc/woeusb/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/x11idle/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/xcp/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/xmlbeans/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/misc/xxv/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/you-get/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/misc/youtube-dl/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/misc/yt-dlp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/ytarchive/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/ytfzf/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/misc/ytfzf/no-update.patch29
-rw-r--r--nixpkgs/pkgs/tools/misc/ytree/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/z-lua/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/zabbix-cli/default.nix37
-rw-r--r--nixpkgs/pkgs/tools/misc/zellij/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/zoxide/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/airfield/node.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/amass/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/assh/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/atinout/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/axel/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/bacnet-stack/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/badvpn/default.nix44
-rw-r--r--nixpkgs/pkgs/tools/networking/badvpn/default.upstream3
-rw-r--r--nixpkgs/pkgs/tools/networking/bgpq3/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/bgpq4/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/bore/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/networking/boundary/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/brook/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/bsd-finger/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/burpsuite/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/bwm-ng/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/networking/calendar-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/cbftp/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/cdpr/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/checkip/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/networking/chrony/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/cjdns/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/cnping/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/networking/connman/connman.nix23
-rw-r--r--nixpkgs/pkgs/tools/networking/connman/connman_dmenu/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/networking/croc/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/curl/7.79.1-darwin-no-systemconfiguration.patch52
-rw-r--r--nixpkgs/pkgs/tools/networking/curl/CVE-2021-22897.patch64
-rw-r--r--nixpkgs/pkgs/tools/networking/curl/CVE-2021-22898.patch25
-rw-r--r--nixpkgs/pkgs/tools/networking/curl/CVE-2021-22901.patch437
-rw-r--r--nixpkgs/pkgs/tools/networking/curl/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/networking/curlie/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/dd-agent/datadog-agent.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/dhcp/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/networking/dhcpcd/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/networking/dhcpdump/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/djbdns/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/networking/djbdns/softlimit.patch12
-rw-r--r--nixpkgs/pkgs/tools/networking/dnscrypt-proxy2/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsperf/default.nix45
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsproxy/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/dnstwist/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/dogdns/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/driftnet/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/driftnet/fix-darwin-build.patch61
-rw-r--r--nixpkgs/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch12
-rw-r--r--nixpkgs/pkgs/tools/networking/drill/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/networking/easyrsa/2.x.nix23
-rw-r--r--nixpkgs/pkgs/tools/networking/eggdrop/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/eternal-terminal/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/fakeroute/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/networking/fast-ssh/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/networking/fastd/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/ferm/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/findomain/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/flannel/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/networking/flannel/plugin.nix13
-rw-r--r--nixpkgs/pkgs/tools/networking/frp/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/gemget/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/networking/getmail6/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/globalprotect-openconnect/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/networking/gobgp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/godns/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/godspeed/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/networking/goimapnotify/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/goimapnotify/deps.nix66
-rw-r--r--nixpkgs/pkgs/tools/networking/gping/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/networking/grpcui/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/grpcurl/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/gupnp-tools/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/networking/gvproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/horst/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/networking/httping/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/networking/httplz/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/hurl/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/i2pd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/inadyn/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/innernet/default.nix40
-rw-r--r--nixpkgs/pkgs/tools/networking/ipinfo/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/isync/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/jnettop/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/kail/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/networking/kail/deps.nix408
-rw-r--r--nixpkgs/pkgs/tools/networking/kapp/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/kea/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/linkchecker/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/lldpd/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/lychee/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/mailsend/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/networking/mailsend/default.upstream3
-rw-r--r--nixpkgs/pkgs/tools/networking/mcrcon/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/minio-client/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/miniupnpc/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/modemmanager/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/mosh/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/networking/mqttui/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/networking/mtr/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/networking/mu/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/mubeng/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/ndn-tools/default.nix47
-rw-r--r--nixpkgs/pkgs/tools/networking/nebula/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/networking/netboot/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/netdiscover/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/networking/nethogs/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/applet/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/nfstrace/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/networking/ngrep/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/ngrok-2/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/nss-mdns/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/networking/ntp/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/networking/ntp/seccomp.patch57
-rw-r--r--nixpkgs/pkgs/tools/networking/oapi-codegen/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/obfs4/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/ocserv/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/offlineimap/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/networking/ofono/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/ookla-speedtest/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/networking/oonf-olsrd2/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/networking/openfortivpn/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/opensnitch/daemon.nix29
-rw-r--r--nixpkgs/pkgs/tools/networking/opensnitch/go-mod.patch24
-rw-r--r--nixpkgs/pkgs/tools/networking/opensnitch/ui.nix18
-rw-r--r--nixpkgs/pkgs/tools/networking/openssh/common.nix58
-rw-r--r--nixpkgs/pkgs/tools/networking/openssh/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/networking/openvpn/openvpn_learnaddress.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/openvpn/update-resolv-conf.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/amule/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/jesec-rtorrent/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix44
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix (renamed from nixpkgs/pkgs/tools/networking/p2p/rtorrent-jesec/default.nix)50
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/libtorrent-jesec/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/libtorrent/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/rakshasa-rtorrent/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/rakshasa-rtorrent/libtorrent.nix48
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/rakshasa-rtorrent/rtorrent.nix68
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/rtorrent/default.nix52
-rw-r--r--nixpkgs/pkgs/tools/networking/pcapfix/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/pirate-get/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/polysh/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/networking/ppp/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/networking/prettyping/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/privoxy/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/proxify/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/radsecproxy/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/redsocks/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/rp-pppoe/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/s5cmd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/s6-dns/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/s6-networking/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/networking/shorewall/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/slowlorust/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/networking/sniffglue/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/socat/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/networking/socat/socat-fix-feature-check-tcpinfo.patch21
-rw-r--r--nixpkgs/pkgs/tools/networking/spiped/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/spoof-mac/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/sshoogr/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/ssldump/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/sstp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/strongswan/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/networking/stubby/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/networking/stunnel/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/subfinder/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/swagger-codegen/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/swagger-codegen3/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/tcpreplay/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/tdns-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/telepresence2/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/networking/tendermint/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/termscp/default.nix48
-rw-r--r--nixpkgs/pkgs/tools/networking/tgt/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/tinyssh/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/networking/tox-node/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/networking/toxvpn/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/unbound/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/networking/urlwatch/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/v2ray/default.nix38
-rwxr-xr-xnixpkgs/pkgs/tools/networking/v2ray/update.sh26
-rw-r--r--nixpkgs/pkgs/tools/networking/vde2/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/networking/vopono/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/vpn-slice/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/networking/vpnc-scripts/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/vpnc/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/networking/vpnc/makefile.patch22
-rw-r--r--nixpkgs/pkgs/tools/networking/vtun/default.nix37
-rw-r--r--nixpkgs/pkgs/tools/networking/waitron/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/wg-friendly-peer-names/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/networking/wifite2/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/networking/wireguard-go/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/wormhole-william/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/wrk/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/xh/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/networking/yggdrasil/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/yrd/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/networking/ytcc/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/networking/zap/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/zerotierone/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/nix/cached-nix-shell/default.nix10
-rwxr-xr-xnixpkgs/pkgs/tools/nix/info/info.sh2
-rw-r--r--nixpkgs/pkgs/tools/nix/nix-output-monitor/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/nix/nixos-generators/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/nix/statix/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/package-management/apk-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/auditwheel/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-about/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-about/zstd-pkg-config.patch39
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-deps/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-edit/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-release/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-update/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/disnix/dydisnix/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/dpkg/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/package-management/emplace/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/home-manager/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/package-management/libdnf/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/microdnf/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/micromamba/default.nix49
-rw-r--r--nixpkgs/pkgs/tools/package-management/nfpm/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-bundle/default.nix48
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-doc/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-du/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-eval-jobs/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-serve/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-template/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-universal-prefetch/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-update/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix/default.nix99
-rw-r--r--nixpkgs/pkgs/tools/package-management/nixpkgs-review/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/package-management/nixui/nixui.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/nox/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/nvd/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/package-management/opkg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/protontricks/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/package-management/protontricks/steam-run.patch34
-rw-r--r--nixpkgs/pkgs/tools/package-management/reuse/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/rpm/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/security/acsccid/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/afl/qemu.nix10
-rw-r--r--nixpkgs/pkgs/tools/security/aflplusplus/qemu.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/age-plugin-yubikey/default.nix37
-rw-r--r--nixpkgs/pkgs/tools/security/arsenal/default.nix37
-rw-r--r--nixpkgs/pkgs/tools/security/b2sum/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/security/b3sum/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/beyond-identity/default.nix89
-rw-r--r--nixpkgs/pkgs/tools/security/bitwarden/default.nix106
-rw-r--r--nixpkgs/pkgs/tools/security/boofuzz/default.nix54
-rw-r--r--nixpkgs/pkgs/tools/security/bpb/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/security/buttercup-desktop/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/security/cariddi/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/ccid/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/cdk-go/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/certipy/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/security/chopchop/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/security/clamav/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/cosign/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/security/creddump/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/security/credslayer/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/security/cve-bin-tool/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/dalfox/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/dnsrecon/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/security/dnsx/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/doppler/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/echidna/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/enpass/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/enum4linux/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/security/expliot/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/fail2ban/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/fierce/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/security/fprintd/tod.nix21
-rw-r--r--nixpkgs/pkgs/tools/security/fprot/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/gau/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/genpass/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/ghdorker/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/security/ghidra/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/gitleaks/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/security/gnupg/1.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/gnupg/1compat.nix3
-rw-r--r--nixpkgs/pkgs/tools/security/gomapenum/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/gosh/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/gospider/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/gpg-tui/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/grype/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/hash-slinger/default.nix60
-rw-r--r--nixpkgs/pkgs/tools/security/hashcat/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/hcxtools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/httpx/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/security/inql/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/security/ioccheck/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/security/jadx/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/security/jwt-cli/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/kbs2/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/keybase/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/keybase/gui.nix7
-rw-r--r--nixpkgs/pkgs/tools/security/keyscope/default.nix49
-rw-r--r--nixpkgs/pkgs/tools/security/keysmith/default.nix40
-rw-r--r--nixpkgs/pkgs/tools/security/knockknock/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/security/kube-hunter/default.nix57
-rw-r--r--nixpkgs/pkgs/tools/security/kubeaudit/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/security/kubescape/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/security/lethe/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/libtpms/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/lmp/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/security/log4j-detect/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/security/log4j-scan/default.nix44
-rw-r--r--nixpkgs/pkgs/tools/security/log4j-sniffer/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/security/log4j-vuln-scanner/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/security/log4jcheck/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/security/log4shell-detector/default.nix40
-rw-r--r--nixpkgs/pkgs/tools/security/logmap/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/security/maigret/default.nix92
-rw-r--r--nixpkgs/pkgs/tools/security/masscan/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock98
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/gemset.nix126
-rwxr-xr-xnixpkgs/pkgs/tools/security/metasploit/update.sh2
-rw-r--r--nixpkgs/pkgs/tools/security/minio-certgen/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/minisign/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/mkp224o/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/mkpasswd/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/nmap/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/nosqli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/nuclei/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/nwipe/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/onioncircuits/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/onlykey/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/onlykey/onlykey.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/open-ecard/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/security/otpauth/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/security/passff-host/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/security/pcsclite/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/security/pcsctools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/pgpdump/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/pinentry/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/security/polkit-gnome/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/pwncat/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/pyrit/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/security/qdigidoc/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/security/qdigidoc/qt5.15.patch39
-rw-r--r--nixpkgs/pkgs/tools/security/rage/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/rbw/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/security/rekor/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/security/rhash/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/security/ripasso/cursive.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/safe/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/security/saml2aws/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/security/sammler/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/scorecard/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/scrypt/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/security/sedutil/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/security/sheesy-cli/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/sn0int/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/snallygaster/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/snowcat/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/security/snowcrash/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/security/srm/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/sslscan/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/stacs/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/security/step-ca/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/security/step-cli/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/security/swtpm/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/security/tboot/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/terrascan/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/theharvester/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/tor/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/security/tor/disable-monotonic-timer-tests.patch28
-rw-r--r--nixpkgs/pkgs/tools/security/tor/tor-arm.nix55
-rw-r--r--nixpkgs/pkgs/tools/security/tor/torsocks.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/tpm-luks/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/tpm2-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/trufflehog/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/vault/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/vault/vault-bin.nix18
-rw-r--r--nixpkgs/pkgs/tools/security/vaultwarden/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/security/vaultwarden/vault.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/verifpal/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/wad/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/security/wapiti/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/security/whispers/default.nix52
-rw-r--r--nixpkgs/pkgs/tools/security/wpscan/Gemfile.lock10
-rw-r--r--nixpkgs/pkgs/tools/security/wpscan/gemset.nix32
-rw-r--r--nixpkgs/pkgs/tools/security/yara/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/yubikey-touch-detector/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/acpica-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/bottom/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/bpytop/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/btop/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/system/clinfo/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/system/collectd/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/system/consul-template/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/daemonize/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/system/das_watchdog/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/datefudge/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/system/efibootmgr/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/efivar/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/system/fcron/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/fio/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/gdu/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/gkraken/default.nix86
-rw-r--r--nixpkgs/pkgs/tools/system/gotop/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/system/gptfdisk/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/gptfdisk/ncurses-6.3.patch96
-rw-r--r--nixpkgs/pkgs/tools/system/gptman/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/honcho/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/system/htop/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/htop/htop-vim.nix22
-rw-r--r--nixpkgs/pkgs/tools/system/hwinfo/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/system/ipmiutil/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/system/kmon/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/system/localtime/default.nix40
-rw-r--r--nixpkgs/pkgs/tools/system/lshw/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/system/natscli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/openipmi/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/system/openipmi/fix-collectd-assertion.diff11
-rw-r--r--nixpkgs/pkgs/tools/system/openseachest/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/system/plan9port/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/system/rocm-smi/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/rsyslog/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/s6-rc/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/s6/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/sg3_utils/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/sleuthkit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/stress-ng/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/system/symlinks/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/system/syslog-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/thinkfan/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/tree/default.nix52
-rw-r--r--nixpkgs/pkgs/tools/system/uefitool/variants.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/uptimed/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/zenith/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/text/anewer/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/text/angle-grinder/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/ansifilter/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/cconv/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/text/chroma/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/text/chroma/src.json11
-rw-r--r--nixpkgs/pkgs/tools/text/cmigemo/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/text/crowdin-cli/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/text/csvdiff/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/text/csview/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/dcs/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/text/difftastic/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/text/dirdiff/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/discount/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/text/discount/parallel-make.patch15
-rw-r--r--nixpkgs/pkgs/tools/text/fanficfare/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/gawk/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/glogg/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/gnugrep/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/gnused/422.nix7
-rw-r--r--nixpkgs/pkgs/tools/text/grin/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/text/groff/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/text/hck/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/text/highlight/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/text/hyx/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/invoice2data/default.nix49
-rw-r--r--nixpkgs/pkgs/tools/text/l2md/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/languagetool/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/mark/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-graphviz/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-plantuml/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/text/mdcat/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/mecab/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/text/mecab/nodic.nix3
-rw-r--r--nixpkgs/pkgs/tools/text/miller/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/morsel/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/text/opencc/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/papertrail/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/text/patchutils/0.4.2.nix8
-rw-r--r--nixpkgs/pkgs/tools/text/patchutils/generic.nix28
-rw-r--r--nixpkgs/pkgs/tools/text/pn/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/poedit/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/text/popfile/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/proselint/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/qshowdiff/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/text/replace/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/ripgrep/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/rust-petname/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/sgml/jade/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/text/sgml/opensp/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/text/shfmt/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/smu/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/snippetpixie/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/source-highlight/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/text/tidy-viewer/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/transifex-client/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/ucg/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/text/ugrep/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/uniscribe/Gemfile3
-rw-r--r--nixpkgs/pkgs/tools/text/uniscribe/Gemfile.lock37
-rw-r--r--nixpkgs/pkgs/tools/text/uniscribe/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/text/uniscribe/gemset.nix1766
-rw-r--r--nixpkgs/pkgs/tools/text/vale/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/vgrep/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/xml/basex/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/text/xml/jing-trang/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/text/xml/jing-trang/no-git-during-build.patch47
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile11
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock131
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix538
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile4
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock57
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix53
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix214
-rw-r--r--nixpkgs/pkgs/tools/typesetting/docbook2x/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/typesetting/docbookrx/Gemfile2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/docbookrx/Gemfile.lock33
-rw-r--r--nixpkgs/pkgs/tools/typesetting/docbookrx/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/typesetting/docbookrx/gemset.nix98
-rw-r--r--nixpkgs/pkgs/tools/typesetting/halibut/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/typesetting/htmldoc/default.nix4
-rwxr-xr-xnixpkgs/pkgs/tools/typesetting/lout/builder.sh32
-rw-r--r--nixpkgs/pkgs/tools/typesetting/lowdown/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/typesetting/odpdown/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/typesetting/pdftk/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/typesetting/pdftk/legacy.nix9
-rw-r--r--nixpkgs/pkgs/tools/typesetting/scdoc/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/typesetting/soupault/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/blahtexml/default.nix48
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/pgf/1.x.nix9
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/pgf/2.x.nix9
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/pgf/3.x.nix9
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix8
-rw-r--r--nixpkgs/pkgs/tools/video/rav1e/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/virtualization/alpine-make-vm-image/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix51
-rw-r--r--nixpkgs/pkgs/tools/virtualization/cloudmonkey/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/virtualization/distrobuilder/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/virtualization/ec2-utils/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/virtualization/euca2ools/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/virtualization/extra-container/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/virtualization/google-compute-engine/default.nix91
-rw-r--r--nixpkgs/pkgs/tools/virtualization/linode-cli/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/virtualization/lxd-image-server/default.nix47
-rw-r--r--nixpkgs/pkgs/tools/virtualization/lxd-image-server/run.patch25
-rw-r--r--nixpkgs/pkgs/tools/virtualization/lxd-image-server/state.patch49
-rw-r--r--nixpkgs/pkgs/tools/virtualization/nixos-shell/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/wayland/cliphist/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/wayland/clipman/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/wayland/swaycwd/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/wayland/swayr/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/wayland/wl-clipboard-x11/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/wayland/wl-mirror/default.nix62
-rw-r--r--nixpkgs/pkgs/tools/wayland/wlogout/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/wayland/wluma/default.nix35
1104 files changed, 17301 insertions, 11695 deletions
diff --git a/nixpkgs/pkgs/tools/X11/alttab/default.nix b/nixpkgs/pkgs/tools/X11/alttab/default.nix
index 591edff2add7..80b87cb2776d 100644
--- a/nixpkgs/pkgs/tools/X11/alttab/default.nix
+++ b/nixpkgs/pkgs/tools/X11/alttab/default.nix
@@ -2,7 +2,7 @@
 libpng, uthash , which, xnee, xorg, python3Packages }:
 
 stdenv.mkDerivation rec {
-  version = "1.6.0";
+  version = "1.6.1";
 
   pname = "alttab";
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "sagb";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-G4tu008IC3RCeCRZVKFPY2+ioLuUa9hDDKUx1q5C5FQ=";
+    sha256 = "sha256-g56207IGNDnBIqZmbpcgOLcfAGKwBE0DYu2Dq0bLS8o=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/X11/bgs/default.nix b/nixpkgs/pkgs/tools/X11/bgs/default.nix
index fc6f7752a3a4..f0150e931551 100644
--- a/nixpkgs/pkgs/tools/X11/bgs/default.nix
+++ b/nixpkgs/pkgs/tools/X11/bgs/default.nix
@@ -1,13 +1,15 @@
-{lib, stdenv, fetchurl, pkg-config, libX11, libXinerama, imlib2}:
+{ lib, stdenv, fetchFromGitHub, pkg-config, libX11, libXinerama, imlib2 }:
 
 stdenv.mkDerivation rec {
 
   pname = "bgs";
   version = "0.8";
 
-  src = fetchurl {
-    url = "https://github.com/Gottox/bgs/archive/v${version}.tar.gz";
-    sha256 = "1rw9ingkkpvvr2dixx126ziim67a54r8k49918h1mbph0fjj08n5";
+  src = fetchFromGitHub {
+    owner = "Gottox";
+    repo = "bgs";
+    rev = "v${version}";
+    sha256 = "V8GP+xLSiCvaYZt8Bi3/3KlTBaGnMYQUeNCHwH6Ejzo=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/tools/X11/dex/default.nix b/nixpkgs/pkgs/tools/X11/dex/default.nix
index dd1953d783a0..c0d1c5e6e4a1 100644
--- a/nixpkgs/pkgs/tools/X11/dex/default.nix
+++ b/nixpkgs/pkgs/tools/X11/dex/default.nix
@@ -1,13 +1,12 @@
 { lib, stdenv, fetchFromGitHub, python3 }:
 
 stdenv.mkDerivation rec {
-  program = "dex";
-  name = "${program}-${version}";
+  pname = "dex";
   version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "jceb";
-    repo = program;
+    repo = pname;
     rev = "v${version}";
     sha256 = "03aapcywnz4kl548cygpi25m8adwbmqlmwgxa66v4156ax9dqs86";
   };
diff --git a/nixpkgs/pkgs/tools/X11/nx-libs/default.nix b/nixpkgs/pkgs/tools/X11/nx-libs/default.nix
index 022111e4b314..ed28cfbb8d87 100644
--- a/nixpkgs/pkgs/tools/X11/nx-libs/default.nix
+++ b/nixpkgs/pkgs/tools/X11/nx-libs/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, autoconf, automake, fetchFromGitHub, libgcc, libjpeg_turbo
+{ lib, stdenv, autoconf, automake, fetchFromGitHub, fetchpatch
+, libgcc, libjpeg_turbo
 , libpng, libtool, libxml2, pkg-config, which, xorg
 , libtirpc
 }:
@@ -12,6 +13,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-qVOdD85sBMxKYx1cSLAGKeODsKKAm9UPBmYzPBbBOzQ=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "binutils-2.36.patch";
+      url = "https://github.com/ArcticaProject/nx-libs/commit/605a266911b50ababbb3f8a8b224efb42743379c.patch";
+      sha256 = "sha256-kk5ms3i0PrHL74I4OlsqDrdDcCJ0us03cQcBy4zjAoQ=";
+    })
+  ];
+
   nativeBuildInputs = [ autoconf automake libtool pkg-config which
     xorg.gccmakedep xorg.imake ];
   buildInputs = [ libgcc libjpeg_turbo libpng libxml2 xorg.fontutil
diff --git a/nixpkgs/pkgs/tools/X11/opentabletdriver/default.nix b/nixpkgs/pkgs/tools/X11/opentabletdriver/default.nix
index b205f959ee35..ff2472294eed 100644
--- a/nixpkgs/pkgs/tools/X11/opentabletdriver/default.nix
+++ b/nixpkgs/pkgs/tools/X11/opentabletdriver/default.nix
@@ -1,11 +1,8 @@
-{ stdenv
-, lib
+{ lib
+, buildDotnetModule
 , fetchFromGitHub
 , fetchurl
-, linkFarmFromDrvs
 , dotnetCorePackages
-, dotnetPackages
-, dpkg
 , gtk3
 , libX11
 , libXrandr
@@ -15,16 +12,12 @@
 , udev
 , copyDesktopItems
 , makeDesktopItem
-, makeWrapper
 , nixosTests
 , wrapGAppsHook
+, dpkg
 }:
 
-let
-  dotnet-sdk = dotnetCorePackages.sdk_5_0;
-  dotnet-runtime = dotnetCorePackages.runtime_5_0;
-in
-stdenv.mkDerivation rec {
+buildDotnetModule rec {
   pname = "OpenTabletDriver";
   version = "0.5.3.3";
 
@@ -40,23 +33,22 @@ stdenv.mkDerivation rec {
     sha256 = "0v03qiiz28k1yzgxf5qc1mdg2n7kjx6h8vpx9dxz342wwbgqg6ic";
   };
 
+  dotnet-sdk = dotnetCorePackages.sdk_5_0;
+  dotnet-runtime = dotnetCorePackages.runtime_5_0;
+
+  dotnetInstallFlags = [ "--framework=net5" ];
+
+  projectFile = [ "OpenTabletDriver.Console" "OpenTabletDriver.Daemon" "OpenTabletDriver.UX.Gtk" ];
+  nugetDeps = ./deps.nix;
+
+  executables = [ "OpenTabletDriver.Console" "OpenTabletDriver.Daemon" "OpenTabletDriver.UX.Gtk" ];
+
   nativeBuildInputs = [
-    dotnet-sdk
-    dotnetPackages.Nuget
-    dpkg
     copyDesktopItems
-    makeWrapper
     wrapGAppsHook
+    dpkg
   ];
 
-  nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./deps.nix {
-    fetchNuGet = { name, version, sha256 }: fetchurl {
-      name = "nuget-${name}-${version}.nupkg";
-      url = "https://www.nuget.org/api/v2/package/${name}/${version}";
-      inherit sha256;
-    };
-  });
-
   runtimeDeps = [
     gtk3
     libX11
@@ -67,80 +59,27 @@ stdenv.mkDerivation rec {
     udev
   ];
 
-  configurePhase = ''
-    runHook preConfigure
-
-    export HOME=$(mktemp -d)
-    export DOTNET_CLI_TELEMETRY_OPTOUT=1
-    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+  doCheck = true;
+  testProjectFile = "OpenTabletDriver.Tests/OpenTabletDriver.Tests.csproj";
 
-    nuget sources Add -Name nixos -Source "$PWD/nixos"
-    nuget init "$nugetDeps" "$PWD/nixos"
-
-    # FIXME: https://github.com/NuGet/Home/issues/4413
-    mkdir -p $HOME/.nuget/NuGet
-    cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet
-
-    for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do
-        dotnet restore --source "$PWD/nixos" $project
-    done
-
-    runHook postConfigure
-  '';
-
-  buildPhase = ''
-    runHook preBuild
-
-    for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do
-        dotnet build $project \
-            --no-restore \
-            --configuration Release \
-            --framework net5
-    done
-
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do
-      dotnet publish $project \
-          --no-build \
-          --no-self-contained \
-          --configuration Release \
-          --framework net5 \
-          --output $out/lib
-    done
+  # Require networking
+  disabledTests = [
+    "OpenTabletDriver.Tests.PluginRepositoryTest.ExpandRepositoryTarballFork"
+    "OpenTabletDriver.Tests.PluginRepositoryTest.ExpandRepositoryTarball"
+  ];
 
+  postInstall = ''
     # Give a more "*nix" name to the binaries
-    makeWrapper $out/lib/OpenTabletDriver.Console $out/bin/otd \
-        "''${gappsWrapperArgs[@]}" \
-        --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
-        --set DOTNET_ROOT "${dotnet-runtime}" \
-        --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}"
-
-    makeWrapper $out/lib/OpenTabletDriver.Daemon $out/bin/otd-daemon \
-        "''${gappsWrapperArgs[@]}" \
-        --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
-        --set DOTNET_ROOT "${dotnet-runtime}" \
-        --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}"
-
-    makeWrapper $out/lib/OpenTabletDriver.UX.Gtk $out/bin/otd-gui \
-        "''${gappsWrapperArgs[@]}" \
-        --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
-        --set DOTNET_ROOT "${dotnet-runtime}" \
-        --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}"
-
-    mkdir -p $out/lib/OpenTabletDriver
-    cp -rv ./OpenTabletDriver/Configurations $out/lib/OpenTabletDriver
+    mv $out/bin/OpenTabletDriver.Console $out/bin/otd
+    mv $out/bin/OpenTabletDriver.Daemon $out/bin/otd-daemon
+    mv $out/bin/OpenTabletDriver.UX.Gtk $out/bin/otd-gui
+
+    cp -r ./OpenTabletDriver/Configurations $out/lib/${pname}
     install -Dm644 $src/OpenTabletDriver.UX/Assets/otd.png -t $out/share/pixmaps
 
     # TODO: Ideally this should be build from OpenTabletDriver/OpenTabletDriver-udev instead
     dpkg-deb --fsys-tarfile ${debPkg} | tar xf - ./usr/lib/udev/rules.d/99-opentabletdriver.rules
     install -Dm644 ./usr/lib/udev/rules.d/99-opentabletdriver.rules -t $out/lib/udev/rules.d
-
-    runHook postInstall
   '';
 
   desktopItems = [
@@ -155,9 +94,6 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  dontWrapGApps = true;
-  dontStrip = true;
-
   passthru = {
     updateScript = ./update.sh;
     tests = {
diff --git a/nixpkgs/pkgs/tools/X11/opentabletdriver/deps.nix b/nixpkgs/pkgs/tools/X11/opentabletdriver/deps.nix
index 33891b633829..f1fc303d8cfc 100644
--- a/nixpkgs/pkgs/tools/X11/opentabletdriver/deps.nix
+++ b/nixpkgs/pkgs/tools/X11/opentabletdriver/deps.nix
@@ -1,94 +1,176 @@
 { fetchNuGet }: [
-  (fetchNuGet { name = "AtkSharp"; version = "3.24.24.34"; sha256 = "1jn1vgi9xm0jp7769k6sbdi8d273kigjrsh93i6s4c03hqxv7cqs"; })
-  (fetchNuGet { name = "CairoSharp"; version = "3.24.24.34"; sha256 = "0pydn1k0cam1gclg9sc1sbnmbyzh28qlc5qanyxcylwghink3kgz"; })
-  (fetchNuGet { name = "Eto.Forms"; version = "2.5.10"; sha256 = "1d71wglk4ixfqfbm6sxmj753x5iwbar8i9zzjy3bh64fy1dn8lz7"; })
-  (fetchNuGet { name = "Eto.Forms"; version = "2.5.11"; sha256 = "0h86jc19wy3ssj7pb34w1h02v92mg29gdipszwjs3y15piy66z3s"; })
-  (fetchNuGet { name = "Eto.Platform.Gtk"; version = "2.5.11"; sha256 = "1s9njz7l9zghrbzli7lbiav5ss3glqf17npj07f3jldd933nb95j"; })
-  (fetchNuGet { name = "GdkSharp"; version = "3.24.24.34"; sha256 = "0r0x0yib7chwsyrbpvicrfwldwqx5lyqq4p86zaxpmzd6zdaj0x5"; })
-  (fetchNuGet { name = "GioSharp"; version = "3.24.24.34"; sha256 = "02hxvgjd4w9jpzbkk7qf9q9bkvyp5hfzwxfqp10vg5lpl9yl3xpx"; })
-  (fetchNuGet { name = "GLibSharp"; version = "3.24.24.34"; sha256 = "0kvp033fgdwc8p2abfp5z9pzq66cvwbnjfvr4v4bkpy5s5h181kq"; })
-  (fetchNuGet { name = "GtkSharp"; version = "3.24.24.34"; sha256 = "0028hzmmqyfx87qqmaf9cgb5psn7gkbmqvixcid67x1d6mzxjicb"; })
-  (fetchNuGet { name = "HidSharpCore"; version = "1.2.1.1"; sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll"; })
-  (fetchNuGet { name = "MessagePack"; version = "2.1.194"; sha256 = "1v2gyd9sd6hppfhlzngmzzhnpr39b95rwrqq0r9zzp480b6vzaj0"; })
-  (fetchNuGet { name = "MessagePack.Annotations"; version = "2.1.194"; sha256 = "1jkhq3hiy4brvzsywl4p4jb9jrnzs3vmgr3s8fxpb1dzafadw8b0"; })
-  (fetchNuGet { name = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.1"; sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.4.1"; sha256 = "0z6d1i6xcf0c00z6rs75rgw4ncs9q2m8amasf6mmbf40fm02ry7g"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.1.1"; sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "3.0.0"; sha256 = "1bk8r4r3ihmi6322jmcag14jmw11mjqys202azqjzglcx59pxh51"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
-  (fetchNuGet { name = "Microsoft.VisualStudio.Threading"; version = "16.7.56"; sha256 = "13x0xrsjxd86clf9cjjwmpzlyp8pkrf13riya7igs8zy93zw2qap"; })
-  (fetchNuGet { name = "Microsoft.VisualStudio.Threading.Analyzers"; version = "16.7.56"; sha256 = "04v9df0k7bsc0rzgkw4mnvi43pdrh42vk6xdcwn9m6im33m0nnz2"; })
-  (fetchNuGet { name = "Microsoft.VisualStudio.Validation"; version = "15.5.31"; sha256 = "1ah99rn922qa0sd2k3h64m324f2r32pw8cn4cfihgvwx4qdrpmgw"; })
-  (fetchNuGet { name = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
-  (fetchNuGet { name = "Microsoft.Win32.Registry"; version = "4.6.0"; sha256 = "0i4y782yrqqyx85pg597m20gm0v126w0j9ddk5z7xb3crx4z9f2s"; })
-  (fetchNuGet { name = "Nerdbank.Streams"; version = "2.6.77"; sha256 = "13dnfwxa8syx7vfjmd5pcrqz31k0q8y3mmh6yz6bmljhjri65q5c"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
-  (fetchNuGet { name = "Octokit"; version = "0.50.0"; sha256 = "1ignj5i6a1c19qqrw00wlr9fdjmwrxkxz7gdxj0x653w84gbv7qq"; })
-  (fetchNuGet { name = "PangoSharp"; version = "3.24.24.34"; sha256 = "1r0h14cklglfpv1lhv93cxmzi2w7d5s03gzpq3j5dmrz43flg9zw"; })
-  (fetchNuGet { name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i"; })
-  (fetchNuGet { name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r"; })
-  (fetchNuGet { name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3"; })
-  (fetchNuGet { name = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
-  (fetchNuGet { name = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6"; })
-  (fetchNuGet { name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438"; })
-  (fetchNuGet { name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj"; })
-  (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
-  (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6"; })
-  (fetchNuGet { name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1"; })
-  (fetchNuGet { name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c"; })
-  (fetchNuGet { name = "SharpZipLib"; version = "1.3.1"; sha256 = "09zypjfils38143da507s5fi4hzvdlz32wfav219hksnpl35y8x0"; })
-  (fetchNuGet { name = "StreamJsonRpc"; version = "2.6.121"; sha256 = "0xzvpk17w2skndzdg47j7gkrrvw6521db4mv8lc3v8hm97vs9m76"; })
-  (fetchNuGet { name = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
-  (fetchNuGet { name = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
-  (fetchNuGet { name = "System.Collections.Immutable"; version = "1.7.1"; sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; })
-  (fetchNuGet { name = "System.CommandLine"; version = "2.0.0-beta1.20253.1"; sha256 = "16saf1fm9q80bb624fkqz0ksrwpnbw9617d7xg3jib7a2wgagm2r"; })
-  (fetchNuGet { name = "System.ComponentModel.Annotations"; version = "4.7.0"; sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z"; })
-  (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
-  (fetchNuGet { name = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
-  (fetchNuGet { name = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
-  (fetchNuGet { name = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
-  (fetchNuGet { name = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
-  (fetchNuGet { name = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
-  (fetchNuGet { name = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
-  (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
-  (fetchNuGet { name = "System.IO.Pipelines"; version = "4.7.2"; sha256 = "16v4qaypm72cfsfqr8z3k6yrpzn0m3apgkh6aljfwpycdk150sf9"; })
-  (fetchNuGet { name = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
-  (fetchNuGet { name = "System.Net.Http"; version = "4.3.4"; sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl"; })
-  (fetchNuGet { name = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
-  (fetchNuGet { name = "System.Net.WebSockets"; version = "4.3.0"; sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p"; })
-  (fetchNuGet { name = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
-  (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.6.0"; sha256 = "0hry2k6b7kicg4zxnq0hhn0ys52711pxy7l9v5sp7gvp9cicwpgp"; })
-  (fetchNuGet { name = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
-  (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
-  (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
-  (fetchNuGet { name = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { name = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
-  (fetchNuGet { name = "System.Security.AccessControl"; version = "4.6.0"; sha256 = "1wl1dyghi0qhpap1vgfhg2ybdyyhy9vc2a7dpm1xb30vfgmlkjmf"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
-  (fetchNuGet { name = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
-  (fetchNuGet { name = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
-  (fetchNuGet { name = "System.Security.Principal.Windows"; version = "4.6.0"; sha256 = "1jmfzfz1n8hp63s5lja5xxpzkinbp6g59l3km9h8avjiisdrg5wm"; })
-  (fetchNuGet { name = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
-  (fetchNuGet { name = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
-  (fetchNuGet { name = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Dataflow"; version = "4.11.1"; sha256 = "09fbfsiay1xcbpvnq2j38b6mb2scvf0s8mpn78bcqsldidg7k2vw"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
-  (fetchNuGet { name = "WaylandNET"; version = "0.2.0"; sha256 = "1qjpvra08vdqdw4j1gamz6451x5sd5r1j86lsvrl8akq4nymfr8k"; })
+  (fetchNuGet { pname = "AtkSharp"; version = "3.24.24.34"; sha256 = "1jn1vgi9xm0jp7769k6sbdi8d273kigjrsh93i6s4c03hqxv7cqs"; })
+  (fetchNuGet { pname = "CairoSharp"; version = "3.24.24.34"; sha256 = "0pydn1k0cam1gclg9sc1sbnmbyzh28qlc5qanyxcylwghink3kgz"; })
+  (fetchNuGet { pname = "coverlet.collector"; version = "3.0.3"; sha256 = "1igcqqr2kh6w9qx0h89y6c2zg4g2h7g8kc2lv5pz3xk6nd8iv7pw"; })
+  (fetchNuGet { pname = "Eto.Forms"; version = "2.5.10"; sha256 = "1d71wglk4ixfqfbm6sxmj753x5iwbar8i9zzjy3bh64fy1dn8lz7"; })
+  (fetchNuGet { pname = "Eto.Forms"; version = "2.5.11"; sha256 = "0h86jc19wy3ssj7pb34w1h02v92mg29gdipszwjs3y15piy66z3s"; })
+  (fetchNuGet { pname = "Eto.Platform.Gtk"; version = "2.5.11"; sha256 = "1s9njz7l9zghrbzli7lbiav5ss3glqf17npj07f3jldd933nb95j"; })
+  (fetchNuGet { pname = "GdkSharp"; version = "3.24.24.34"; sha256 = "0r0x0yib7chwsyrbpvicrfwldwqx5lyqq4p86zaxpmzd6zdaj0x5"; })
+  (fetchNuGet { pname = "GioSharp"; version = "3.24.24.34"; sha256 = "02hxvgjd4w9jpzbkk7qf9q9bkvyp5hfzwxfqp10vg5lpl9yl3xpx"; })
+  (fetchNuGet { pname = "GLibSharp"; version = "3.24.24.34"; sha256 = "0kvp033fgdwc8p2abfp5z9pzq66cvwbnjfvr4v4bkpy5s5h181kq"; })
+  (fetchNuGet { pname = "GtkSharp"; version = "3.24.24.34"; sha256 = "0028hzmmqyfx87qqmaf9cgb5psn7gkbmqvixcid67x1d6mzxjicb"; })
+  (fetchNuGet { pname = "HidSharpCore"; version = "1.2.1.1"; sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll"; })
+  (fetchNuGet { pname = "MessagePack"; version = "2.1.194"; sha256 = "1v2gyd9sd6hppfhlzngmzzhnpr39b95rwrqq0r9zzp480b6vzaj0"; })
+  (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.1.194"; sha256 = "1jkhq3hiy4brvzsywl4p4jb9jrnzs3vmgr3s8fxpb1dzafadw8b0"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.1"; sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw"; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "16.9.1"; sha256 = "18isx8w4kwnlk6hq5ay8i4lgzwhx0zg9brayfdk2lakagvv6yyaf"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.4.1"; sha256 = "0z6d1i6xcf0c00z6rs75rgw4ncs9q2m8amasf6mmbf40fm02ry7g"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.1"; sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "3.0.0"; sha256 = "1bk8r4r3ihmi6322jmcag14jmw11mjqys202azqjzglcx59pxh51"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.9.1"; sha256 = "1761mvkp5mwhw150fvazdhh4ybvxpvx05g9znf8n1fqx832wxrw5"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "16.9.1"; sha256 = "1igpx7ldxqx9fkrbhakd2bybc0dgpvj86zr30vpfj31ncm6lp4id"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "16.9.1"; sha256 = "1frx5r7l0jd3j6my4s2qas13fkljgfn87a84xk8l7sisafpfsvzp"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading"; version = "16.7.56"; sha256 = "13x0xrsjxd86clf9cjjwmpzlyp8pkrf13riya7igs8zy93zw2qap"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading.Analyzers"; version = "16.7.56"; sha256 = "04v9df0k7bsc0rzgkw4mnvi43pdrh42vk6xdcwn9m6im33m0nnz2"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Validation"; version = "15.5.31"; sha256 = "1ah99rn922qa0sd2k3h64m324f2r32pw8cn4cfihgvwx4qdrpmgw"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.6.0"; sha256 = "0i4y782yrqqyx85pg597m20gm0v126w0j9ddk5z7xb3crx4z9f2s"; })
+  (fetchNuGet { pname = "MSTest.TestAdapter"; version = "2.1.2"; sha256 = "1390nyc0sf5c4j75cq58bzqjcw77sp2lmpllmm5sp8ysi0fjyfs5"; })
+  (fetchNuGet { pname = "MSTest.TestFramework"; version = "2.1.2"; sha256 = "1617q2accpa8fwy9n1snmjxyx2fz3phks62mdi45cl65kdin0x4z"; })
+  (fetchNuGet { pname = "Nerdbank.Streams"; version = "2.6.77"; sha256 = "13dnfwxa8syx7vfjmd5pcrqz31k0q8y3mmh6yz6bmljhjri65q5c"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
+  (fetchNuGet { pname = "Octokit"; version = "0.50.0"; sha256 = "1ignj5i6a1c19qqrw00wlr9fdjmwrxkxz7gdxj0x653w84gbv7qq"; })
+  (fetchNuGet { pname = "PangoSharp"; version = "3.24.24.34"; sha256 = "1r0h14cklglfpv1lhv93cxmzi2w7d5s03gzpq3j5dmrz43flg9zw"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c"; })
+  (fetchNuGet { pname = "SharpZipLib"; version = "1.3.1"; sha256 = "09zypjfils38143da507s5fi4hzvdlz32wfav219hksnpl35y8x0"; })
+  (fetchNuGet { pname = "StreamJsonRpc"; version = "2.6.121"; sha256 = "0xzvpk17w2skndzdg47j7gkrrvw6521db4mv8lc3v8hm97vs9m76"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.7.1"; sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; })
+  (fetchNuGet { pname = "System.CommandLine"; version = "2.0.0-beta1.20253.1"; sha256 = "16saf1fm9q80bb624fkqz0ksrwpnbw9617d7xg3jib7a2wgagm2r"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.7.0"; sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
+  (fetchNuGet { pname = "System.Diagnostics.TextWriterTraceListener"; version = "4.3.0"; sha256 = "09db74f36wkwg30f7v7zhz1yhkyrnl5v6bdwljq1jdfgzcfch7c3"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
+  (fetchNuGet { pname = "System.Diagnostics.TraceSource"; version = "4.3.0"; sha256 = "1kyw4d7dpjczhw6634nrmg7yyyzq72k75x38y0l0nwhigdlp1766"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
+  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "4.7.2"; sha256 = "16v4qaypm72cfsfqr8z3k6yrpzn0m3apgkh6aljfwpycdk150sf9"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.3.4"; sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
+  (fetchNuGet { pname = "System.Net.WebSockets"; version = "4.3.0"; sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.6.0"; sha256 = "0hry2k6b7kicg4zxnq0hhn0ys52711pxy7l9v5sp7gvp9cicwpgp"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.6.0"; sha256 = "1wl1dyghi0qhpap1vgfhg2ybdyyhy9vc2a7dpm1xb30vfgmlkjmf"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.6.0"; sha256 = "1jmfzfz1n8hp63s5lja5xxpzkinbp6g59l3km9h8avjiisdrg5wm"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "4.11.1"; sha256 = "09fbfsiay1xcbpvnq2j38b6mb2scvf0s8mpn78bcqsldidg7k2vw"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
+  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
+  (fetchNuGet { pname = "WaylandNET"; version = "0.2.0"; sha256 = "1qjpvra08vdqdw4j1gamz6451x5sd5r1j86lsvrl8akq4nymfr8k"; })
 ]
diff --git a/nixpkgs/pkgs/tools/X11/opentabletdriver/shell.nix b/nixpkgs/pkgs/tools/X11/opentabletdriver/shell.nix
deleted file mode 100644
index bb60dfd50397..000000000000
--- a/nixpkgs/pkgs/tools/X11/opentabletdriver/shell.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ pkgs ? import ../../../../. { } }:
-
-with pkgs;
-
-mkShell {
-  packages = [
-    common-updater-scripts
-    nuget-to-nix
-    curl
-    dotnetCorePackages.sdk_5_0
-    jq
-  ];
-}
diff --git a/nixpkgs/pkgs/tools/X11/opentabletdriver/update.sh b/nixpkgs/pkgs/tools/X11/opentabletdriver/update.sh
index b73a5a4b7ca9..20820eb69d2e 100755
--- a/nixpkgs/pkgs/tools/X11/opentabletdriver/update.sh
+++ b/nixpkgs/pkgs/tools/X11/opentabletdriver/update.sh
@@ -1,16 +1,15 @@
 #!/usr/bin/env nix-shell
-#!nix-shell shell.nix -i bash
-
+#!nix-shell -i bash -p curl gnused jq common-updater-scripts nuget-to-nix dotnet-sdk_5
 set -eo pipefail
-
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
 deps_file="$(realpath "./deps.nix")"
 
-new_version="$(curl -s "https://api.github.com/repos/OpenTabletDriver/OpenTabletDriver/releases" | jq -r '.[0].tag_name' | sed 's|[^0-9.]||g')"
+new_version="$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s "https://api.github.com/repos/OpenTabletDriver/OpenTabletDriver/releases" | jq -r  'map(select(.prerelease == false)) | .[0].tag_name' | cut -c2-)"
 old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
+
 if [[ "$new_version" == "$old_version" ]]; then
-  echo "Up to date"
+  echo "Already up to date!"
   [[ "${1}" != "--force" ]] && exit 0
 fi
 
@@ -22,37 +21,22 @@ newDebSha256=$(nix-prefetch-url "$newDebPkgUrl")
 echo "oldDebSha256: $oldDebSha256 newDebSha256: $newDebSha256"
 sed -i ./default.nix -re "s|\"$oldDebSha256\"|\"$newDebSha256\"|"
 
-cd ../../../..
+pushd ../../../..
 update-source-version opentabletdriver "$new_version"
-store_src="$(nix-build . -A opentabletdriver.src --no-out-link)"
+store_src="$(nix-build -A opentabletdriver.src --no-out-link)"
 src="$(mktemp -d /tmp/opentabletdriver-src.XXX)"
-echo "Temp src dir: $src"
 cp -rT "$store_src" "$src"
 chmod -R +w "$src"
 
 pushd "$src"
+trap "rm -rf $src" EXIT
 
-# Setup empty nuget package folder to force reinstall.
-mkdir ./nuget_tmp.packages
-cat >./nuget_tmp.config <<EOF
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <packageSources>
-    <add key="nuget" value="https://api.nuget.org/v3/index.json" />
-  </packageSources>
-  <config>
-    <add key="globalPackagesFolder" value="$(realpath ./nuget_tmp.packages)" />
-  </config>
-</configuration>
-EOF
-
+export DOTNET_NOLOGO=1
 export DOTNET_CLI_TELEMETRY_OPTOUT=1
 
-for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do
-    dotnet restore $project --configfile ./nuget_tmp.config
+mkdir ./nuget_pkgs
+for project in OpenTabletDriver.{Console,Daemon,UX.Gtk,Tests}; do
+  dotnet restore $project --packages ./nuget_pkgs
 done
 
-nuget-to-nix ./nuget_tmp.packages > "$deps_file"
-
-popd
-rm -r "$src"
+nuget-to-nix ./nuget_pkgs > "$deps_file"
diff --git a/nixpkgs/pkgs/tools/X11/primus/lib.nix b/nixpkgs/pkgs/tools/X11/primus/lib.nix
index d2f779ddd724..43e0a8233fd0 100644
--- a/nixpkgs/pkgs/tools/X11/primus/lib.nix
+++ b/nixpkgs/pkgs/tools/X11/primus/lib.nix
@@ -1,5 +1,10 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
-, libX11, libGL, mesa
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, libX11
+, libGL
+, mesa
 , nvidia_x11 ? null
 , libglvnd
 }:
@@ -10,8 +15,10 @@ let
     else if nvidia_x11.useGLVND then libglvnd
     else nvidia_x11;
 
-in stdenv.mkDerivation {
-  name = "primus-lib-2015-04-28";
+in
+stdenv.mkDerivation {
+  pname = "primus-lib";
+  version = "unstable-2015-04-28";
 
   src = fetchFromGitHub {
     owner = "amonakov";
@@ -30,11 +37,12 @@ in stdenv.mkDerivation {
 
   buildInputs = [ libX11 libGL ];
 
-  makeFlags = [ "LIBDIR=$(out)/lib"
-                "PRIMUS_libGLa=${aPackage}/lib/libGL.so"
-                "PRIMUS_libGLd=${libGL}/lib/libGL.so"
-                "PRIMUS_LOAD_GLOBAL=${mesa}/lib/libglapi.so"
-              ];
+  makeFlags = [
+    "LIBDIR=$(out)/lib"
+    "PRIMUS_libGLa=${aPackage}/lib/libGL.so"
+    "PRIMUS_libGLd=${libGL}/lib/libGL.so"
+    "PRIMUS_LOAD_GLOBAL=${mesa}/lib/libglapi.so"
+  ];
 
   installPhase = ''
     ln -s $out/lib/libGL.so.1 $out/lib/libGL.so
diff --git a/nixpkgs/pkgs/tools/X11/run-scaled/default.nix b/nixpkgs/pkgs/tools/X11/run-scaled/default.nix
index 012eedf07791..d62b38bdf287 100644
--- a/nixpkgs/pkgs/tools/X11/run-scaled/default.nix
+++ b/nixpkgs/pkgs/tools/X11/run-scaled/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, makeWrapper, bc, xorgserver, xpra, xrandr }:
 
 stdenv.mkDerivation {
-  version = "git-2018-06-03";
+  version = "unstable-2018-06-03";
   pname = "run-scaled";
 
   src = fetchFromGitHub {
-    owner  = "kaueraal";
-    repo   = "run_scaled";
-    rev    = "fa71b3c17e627a96ff707ad69f1def5361f2245c";
+    owner = "kaueraal";
+    repo = "run_scaled";
+    rev = "fa71b3c17e627a96ff707ad69f1def5361f2245c";
     sha256 = "1ma4ax7ydq4xvyzrc4zapihmf7v3d9zl9mbi8bgpps7nlgz544ys";
   };
 
diff --git a/nixpkgs/pkgs/tools/X11/sct/default.nix b/nixpkgs/pkgs/tools/X11/sct/default.nix
index 0d74206155ab..5b361e924eb7 100644
--- a/nixpkgs/pkgs/tools/X11/sct/default.nix
+++ b/nixpkgs/pkgs/tools/X11/sct/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchurl, libX11, libXrandr }:
 
 stdenv.mkDerivation rec {
-  name = "sct";
+  pname = "sct";
+  version = "unstable-2015-11-16";
 
   src = fetchurl {
     url = "http://www.tedunangst.com/flak/files/sct.c";
diff --git a/nixpkgs/pkgs/tools/X11/skippy-xd/default.nix b/nixpkgs/pkgs/tools/X11/skippy-xd/default.nix
index 0519f2c42044..255d4c34e58d 100644
--- a/nixpkgs/pkgs/tools/X11/skippy-xd/default.nix
+++ b/nixpkgs/pkgs/tools/X11/skippy-xd/default.nix
@@ -1,14 +1,33 @@
-{lib, stdenv, fetchgit, xorgproto, libX11, libXft, libXcomposite, libXdamage
-, libXext, libXinerama, libjpeg, giflib, pkg-config
+{ lib
+, stdenv
+, fetchgit
+, xorgproto
+, libX11
+, libXft
+, libXcomposite
+, libXdamage
+, libXext
+, libXinerama
+, libjpeg
+, giflib
+, pkg-config
 }:
 let
   buildInputs = [
-    xorgproto libX11 libXft libXcomposite libXdamage libXext
-    libXinerama libjpeg giflib pkg-config
+    xorgproto
+    libX11
+    libXft
+    libXcomposite
+    libXdamage
+    libXext
+    libXinerama
+    libjpeg
+    giflib
+    pkg-config
   ];
 in
 stdenv.mkDerivation rec {
-  version = "git-2015-03-01";
+  version = "unstable-2015-03-01";
   pname = "skippy-xd";
   inherit buildInputs;
   src = fetchgit {
@@ -16,14 +35,14 @@ stdenv.mkDerivation rec {
     rev = "397216ca67";
     sha256 = "0zcjacilmsv69rv85j6nfr6pxy8z36w1sjz0dbjg6s5m4kga1zl8";
   };
-  makeFlags = ["PREFIX=$(out)"];
+  makeFlags = [ "PREFIX=$(out)" ];
   preInstall = ''
     sed -e "s@/etc/xdg@$out&@" -i Makefile
   '';
   meta = {
     description = "Expose-style compositing-based standalone window switcher";
-    license = lib.licenses.gpl2Plus ;
-    maintainers = [lib.maintainers.raskin];
+    license = lib.licenses.gpl2Plus;
+    maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/X11/virtualgl/default.nix b/nixpkgs/pkgs/tools/X11/virtualgl/default.nix
index fe5ac9410a67..05c0f1c69b40 100644
--- a/nixpkgs/pkgs/tools/X11/virtualgl/default.nix
+++ b/nixpkgs/pkgs/tools/X11/virtualgl/default.nix
@@ -4,7 +4,8 @@
 }:
 
 stdenv.mkDerivation {
-  name = "virtualgl-${lib.getVersion virtualglLib}";
+  pname = "virtualgl";
+  version = lib.getVersion virtualglLib;
 
   paths = [ virtualglLib ];
 
diff --git a/nixpkgs/pkgs/tools/X11/wmutils-core/default.nix b/nixpkgs/pkgs/tools/X11/wmutils-core/default.nix
index 9250a10064ff..e2cb8cd8f43a 100644
--- a/nixpkgs/pkgs/tools/X11/wmutils-core/default.nix
+++ b/nixpkgs/pkgs/tools/X11/wmutils-core/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, libxcb, xcbutil, xcb-util-cursor }:
+{ lib, stdenv, fetchFromGitHub, libxcb, xcbutil, xcb-util-cursor }:
 
 stdenv.mkDerivation rec {
   pname = "wmutils-core";
-  version = "1.5";
+  version = "1.6";
 
-  src = fetchurl {
-    url = "https://github.com/wmutils/core/archive/v${version}.tar.gz";
-    sha256 = "0wk39aq2lrnc0wjs8pv3cigw3lwy2qzaw0v61bwknd5wabm25bvj";
+  src = fetchFromGitHub {
+    owner = "wmutils";
+    repo = "core";
+    rev = "v${version}";
+    sha256 = "sha256-Nv8ZTi3qVQyOkwyErjtE6/lLCubcLM2BRTY48r1HhHo=";
   };
 
   buildInputs = [ libxcb xcbutil xcb-util-cursor ];
diff --git a/nixpkgs/pkgs/tools/X11/xdotool/default.nix b/nixpkgs/pkgs/tools/X11/xdotool/default.nix
index b9eca0d893a5..736c05c7c7db 100644
--- a/nixpkgs/pkgs/tools/X11/xdotool/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xdotool/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xdotool";
-  version = "3.20210903.1";
+  version = "3.20211022.1";
 
   src = fetchFromGitHub {
     owner = "jordansissel";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fmz/CJm1GgNOYjOfC6uNwDa8jV+GczPw8m6Qb2jw3rE=";
+    sha256 = "sha256-XFiaiHHtUSNFw+xhUR29+2RUHOa+Eyj1HHfjCUjwd9k=";
   };
 
   nativeBuildInputs = [ pkg-config perl ];
diff --git a/nixpkgs/pkgs/tools/X11/xgeometry-select/default.nix b/nixpkgs/pkgs/tools/X11/xgeometry-select/default.nix
index 87c643af483d..9f9b50feab90 100644
--- a/nixpkgs/pkgs/tools/X11/xgeometry-select/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xgeometry-select/default.nix
@@ -1,8 +1,7 @@
 { lib, stdenv, fetchurl, libX11 }:
 
 stdenv.mkDerivation rec {
-  name     = "${baseName}-${version}";
-  baseName = "xgeometry-select";
+  pname = "xgeometry-select";
   version  = "0.1";
 
   src = fetchurl {
@@ -15,12 +14,12 @@ stdenv.mkDerivation rec {
   buildInputs = [ libX11 ];
 
   buildPhase = ''
-    gcc -Wall -lX11 ${src} -o ${baseName}
+    gcc -Wall -lX11 ${src} -o xgeometry-select
   '';
 
   installPhase = ''
     mkdir -p $out/bin
-    mv -v ${baseName} $out/bin
+    mv -v xgeometry-select $out/bin
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/X11/xidlehook/default.nix b/nixpkgs/pkgs/tools/X11/xidlehook/default.nix
index ac5d6fc964bb..a19de0530bd1 100644
--- a/nixpkgs/pkgs/tools/X11/xidlehook/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xidlehook/default.nix
@@ -25,12 +25,14 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1pl7f8fhxfcy0c6c08vkagp0x1ak96vc5wgamigrk1nkd6l371lb";
   };
 
-  cargoBuildFlags = lib.optionals (!stdenv.isLinux) [ "--no-default-features" "--features" "pulse" ];
   cargoSha256 = "1y7m61j07gvqfqz97mda39nc602sv7a826c06m8l22i7z380xfms";
 
   buildInputs = [ xlibsWrapper xorg.libXScrnSaver libpulseaudio ] ++ lib.optional stdenv.isDarwin Security;
   nativeBuildInputs = [ pkg-config patchelf python3 ];
 
+  buildNoDefaultFeatures = !stdenv.isLinux;
+  buildFeatures = lib.optional (!stdenv.isLinux) "pulse";
+
   postFixup = lib.optionalString stdenv.isLinux ''
     RPATH="$(patchelf --print-rpath $out/bin/xidlehook)"
     patchelf --set-rpath "$RPATH:${libpulseaudio}/lib" $out/bin/xidlehook
diff --git a/nixpkgs/pkgs/tools/X11/xinput_calibrator/default.nix b/nixpkgs/pkgs/tools/X11/xinput_calibrator/default.nix
index 2f74db17c372..2e5a4eca2910 100644
--- a/nixpkgs/pkgs/tools/X11/xinput_calibrator/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xinput_calibrator/default.nix
@@ -1,11 +1,14 @@
-{ lib, stdenv, fetchurl, libXi, xorgproto, autoconf, automake, libtool, m4, xlibsWrapper, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, libXi, xorgproto, autoconf, automake, libtool, m4, xlibsWrapper, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "xinput_calibrator";
   version = "0.7.5";
-  src = fetchurl {
-    url = "https://github.com/tias/${pname}/archive/v${version}.tar.gz";
-    sha256 = "d8edbf84523d60f52311d086a1e3ad0f3536f448360063dd8029bf6290aa65e9";
+
+  src = fetchFromGitHub {
+    owner = "tias";
+    repo = "xinput_calibrator";
+    rev = "v${version}";
+    sha256 = "5ZkNw+CKNUcPt1PY5PLzB/OT2wcf5n3UcaQlmMcwRVE=";
   };
 
   preConfigure = "./autogen.sh --with-gui=X11";
diff --git a/nixpkgs/pkgs/tools/X11/xob/default.nix b/nixpkgs/pkgs/tools/X11/xob/default.nix
index 754904449efa..71e50248df97 100644
--- a/nixpkgs/pkgs/tools/X11/xob/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xob/default.nix
@@ -2,17 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "xob";
-  version = "0.2";
+  version = "0.3";
 
   src = fetchFromGitHub {
     owner = "florentc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0jbj61adwrpscfaadjman4hbyxhxv3ac8b4d88d623samx6kbvkk";
+    sha256 = "1x4aafiyd9k4y8cmvn7rgfif3g5s5hhlbj5nz71qsyqg21nn7hrw";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ xorg.libX11 libconfig ];
+  buildInputs = [ xorg.libX11 xorg.libXrender libconfig ];
 
   makeFlags = [ "prefix=$(out)" ];
 
@@ -20,16 +20,16 @@ stdenv.mkDerivation rec {
     description = "A lightweight overlay bar for the X Window System";
     longDescription = ''
       A lightweight configurable overlay volume/backlight/progress/anything bar
-      for the X Window System. Each time a new value is read on the standard
-      input, it is displayed as a tv-like bar over other windows. It then
-      vanishes after a configurable amount of time. A value followed by a bang
-      '!' is displayed using an alternate color to account for special states
-      (e.g. muted audio). There is also support for overflows (when the value
-      exceeds the maximum).
+      for the X Window System (and Wayland compositors with XWayland). Each
+      time a new value is read on the standard input, it is displayed as a
+      tv-like bar over other windows. It then vanishes after a configurable
+      amount of time. A value followed by a bang '!' is displayed using an
+      alternate color to account for special states (e.g. muted audio). There
+      is also support for overflows (when the value exceeds the maximum).
     '';
     inherit (src.meta) homepage;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ florentc ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/X11/xprintidle-ng/default.nix b/nixpkgs/pkgs/tools/X11/xprintidle-ng/default.nix
index 61e48de7f5e1..fdb3b7c58a56 100644
--- a/nixpkgs/pkgs/tools/X11/xprintidle-ng/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xprintidle-ng/default.nix
@@ -1,11 +1,24 @@
-{ lib, stdenv, fetchFromGitHub, libX11, libXScrnSaver, libXext, gnulib
-  , autoconf, automake, libtool, gettext, pkg-config
-  , git, perl, texinfo, help2man
+{ lib
+, stdenv
+, fetchFromGitHub
+, libX11
+, libXScrnSaver
+, libXext
+, gnulib
+, autoconf
+, automake
+, libtool
+, gettext
+, pkg-config
+, git
+, perl
+, texinfo
+, help2man
 }:
 
 stdenv.mkDerivation rec {
   pname = "xprintidle-ng";
-  version = "git-2015-09-01";
+  version = "unstable-2015-09-01";
 
   src = fetchFromGitHub {
     owner = "taktoa";
@@ -20,8 +33,16 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [
-    autoconf automake gettext git gnulib
-    help2man libtool perl pkg-config texinfo
+    autoconf
+    automake
+    gettext
+    git
+    gnulib
+    help2man
+    libtool
+    perl
+    pkg-config
+    texinfo
   ];
 
   configurePhase = ''
@@ -30,15 +51,17 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [
-    libX11 libXScrnSaver libXext
+    libX11
+    libXScrnSaver
+    libXext
   ];
 
   meta = {
-    inherit  version;
+    inherit version;
     description = "A command-line tool to print idle time from libXss";
     homepage = "http://taktoa.me/xprintidle-ng/";
     license = lib.licenses.gpl2;
-    maintainers = [lib.maintainers.raskin];
+    maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/acme-sh/default.nix b/nixpkgs/pkgs/tools/admin/acme-sh/default.nix
new file mode 100644
index 000000000000..f9fda024cf16
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/acme-sh/default.nix
@@ -0,0 +1,77 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, coreutils
+, curl
+, dnsutils
+, gnugrep
+, gnused
+, iproute2
+, makeWrapper
+, openssl
+, socat
+, unixtools
+}:
+
+stdenv.mkDerivation rec {
+  pname = "acme.sh";
+  version = "3.0.1";
+
+  src = fetchFromGitHub {
+    owner = "acmesh-official";
+    repo = "acme.sh";
+    rev = version;
+    sha256 = "sha256-CqgaE8SfMPEyr97t/yfh9FqvdRPWIQiu/jkWAvurUyQ=";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  installPhase = let
+    binPath = lib.makeBinPath [
+      coreutils
+      curl
+      dnsutils
+      gnugrep
+      gnused
+      openssl
+      socat
+      (if stdenv.isLinux then iproute2 else unixtools.netstat)
+    ];
+  in
+    ''
+    runHook preInstall
+
+    mkdir -p $out $out/bin $out/libexec
+    cp -R $src/* $_
+    makeWrapper $out/libexec/acme.sh $out/bin/acme.sh \
+      --prefix PATH : "${binPath}"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://acme.sh/";
+    description = "A pure Unix shell script implementing ACME client protocol";
+    longDescription = ''
+      An ACME Shell script: acme.sh
+
+      - An ACME protocol client written purely in Shell (Unix shell) language.
+      - Full ACME protocol implementation.
+      - Support ECDSA certs
+      - Support SAN and wildcard certs
+      - Simple, powerful and very easy to use. You only need 3 minutes to learn it.
+      - Bash, dash and sh compatible.
+      - Purely written in Shell with no dependencies on python.
+      - Just one script to issue, renew and install your certificates automatically.
+      - DOES NOT require root/sudoer access.
+      - Docker ready
+      - IPv6 ready
+      - Cron job notifications for renewal or error etc.
+    '';
+    license = licenses.gpl3Only;
+    maintainers = teams.serokell.members;
+    inherit (coreutils.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/admin/acme.sh/default.nix b/nixpkgs/pkgs/tools/admin/acme.sh/default.nix
deleted file mode 100644
index efa565bc3e70..000000000000
--- a/nixpkgs/pkgs/tools/admin/acme.sh/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper, curl, openssl, socat, iproute2,
-  unixtools, dnsutils, coreutils, gnugrep, gnused }:
-stdenv.mkDerivation rec {
-  pname = "acme.sh";
-  version = "3.0.0";
-
-  src = fetchFromGitHub {
-    owner = "Neilpang";
-    repo = "acme.sh";
-    rev = version;
-    sha256 = "sha256-KWSDAHzvNl8Iao13OV/ExRoKqkc9nouWim+bAN1V+Jo=";
-  };
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out $out/bin $out/libexec
-    cp -R $src/* $_
-    makeWrapper $out/libexec/acme.sh $out/bin/acme.sh \
-      --prefix PATH : "${
-        lib.makeBinPath [
-          coreutils
-          gnugrep
-          gnused
-          socat
-          openssl
-          curl
-          dnsutils
-          (if stdenv.isLinux then iproute2 else unixtools.netstat)
-        ]
-      }"
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "A pure Unix shell script implementing ACME client protocol";
-    homepage = "https://acme.sh/";
-    license = licenses.gpl3;
-    maintainers = teams.serokell.members;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/admin/aliyun-cli/default.nix b/nixpkgs/pkgs/tools/admin/aliyun-cli/default.nix
new file mode 100644
index 000000000000..a42ba2e73bb3
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/aliyun-cli/default.nix
@@ -0,0 +1,32 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "aliyun-cli";
+  version = "3.0.102";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "aliyun";
+    repo = pname;
+    fetchSubmodules = true;
+    sha256 = "sha256-DUNWfwLA7if9NVUaUlwfW0i2CVcZyg2gIKmi1Nu485k=";
+  };
+
+  vendorSha256 = "sha256-c7LsCNcxdHwDBEknXJt9AyrmFcem8YtUYy06vNDBdDY=";
+
+  subPackages = [ "main" ];
+
+  ldFlags = [ "-s" "-w" "-X github.com/aliyun/aliyun-cli/cli.Version=${version}" ];
+
+  postInstall = ''
+    mv $out/bin/main $out/bin/aliyun
+  '';
+
+  meta = with lib; {
+    description = "Tool to manage and use Alibaba Cloud resources through a command line interface";
+    homepage = "https://github.com/aliyun/aliyun-cli";
+    changelog = "https://github.com/aliyun/aliyun-cli/raw/v${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ornxka ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/admin/ansible/default.nix b/nixpkgs/pkgs/tools/admin/ansible/default.nix
index 4c66bda06f73..6be403b9e534 100644
--- a/nixpkgs/pkgs/tools/admin/ansible/default.nix
+++ b/nixpkgs/pkgs/tools/admin/ansible/default.nix
@@ -1,9 +1,19 @@
-{ python3Packages, fetchurl, fetchFromGitHub }:
+{ python3Packages, fetchFromGitHub }:
 
 rec {
-  ansible = ansible_2_11;
+  ansible = ansible_2_12;
 
-  ansible_2_11 = python3Packages.toPythonApplication python3Packages.ansible-core;
+  ansible_2_12 = python3Packages.toPythonApplication python3Packages.ansible-core;
+
+  ansible_2_11 = python3Packages.toPythonApplication (python3Packages.ansible-core.overridePythonAttrs (old: rec {
+    pname = "ansible-core";
+    version = "2.11.6";
+
+    src = python3Packages.fetchPypi {
+      inherit pname version;
+      sha256 = "sha256-k9UCg8fFtHbev4PcCJs/Z5uTmouae11ijSjar7s9MDo=";
+    };
+  }));
 
   ansible_2_10 = python3Packages.toPythonApplication python3Packages.ansible-base;
 
diff --git a/nixpkgs/pkgs/tools/admin/awscli/default.nix b/nixpkgs/pkgs/tools/admin/awscli/default.nix
index d11ed86e088c..754b2e8cea6a 100644
--- a/nixpkgs/pkgs/tools/admin/awscli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awscli/default.nix
@@ -1,5 +1,4 @@
 { lib
-, nixosTests
 , python3
 , groff
 , less
@@ -21,22 +20,20 @@ let
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli";
-  version = "1.20.54"; # N.B: if you change this, change botocore and boto3 to a matching version too
+  version = "1.22.14"; # N.B: if you change this, change botocore and boto3 to a matching version too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-stnuPobBKIpKA4iTKGTO5kmMEl7grFdZNryz40S599M=";
+    sha256 = "sha256-FTGtUqdjZel8XqSrO3s3XQNqR6fyTO3mc1gyIQfk9n8=";
   };
 
   # https://github.com/aws/aws-cli/issues/4837
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "docutils>=0.10,<0.16" "docutils>=0.10"
+      --replace "docutils>=0.10,<0.16" "docutils>=0.10" \
+      --replace "rsa>=3.1.2,<4.8" "rsa<5,>=3.1.2"
   '';
 
-  # No tests included
-  doCheck = false;
-
   propagatedBuildInputs = [
     botocore
     bcdoc
@@ -62,10 +59,18 @@ with py.pkgs; buildPythonApplication rec {
 
   passthru = {
     python = py; # for aws_shell
-
-    tests = { inherit (nixosTests) awscli; };
   };
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    $out/bin/aws --version | grep "${py.pkgs.botocore.version}"
+    $out/bin/aws --version | grep "${version}"
+
+    runHook postInstallCheck
+  '';
+
   meta = with lib; {
     homepage = "https://aws.amazon.com/cli/";
     description = "Unified tool to manage your AWS services";
diff --git a/nixpkgs/pkgs/tools/admin/awscli2/default.nix b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
index cf765a53c53f..6726fde94f49 100644
--- a/nixpkgs/pkgs/tools/admin/awscli2/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
@@ -1,22 +1,22 @@
-{ lib, python3, groff, less, fetchFromGitHub, fetchpatch }:
+{ lib, python3, groff, less, fetchFromGitHub }:
 let
   py = python3.override {
     packageOverrides = self: super: {
       awscrt = super.awscrt.overridePythonAttrs (oldAttrs: rec {
-        version = "0.11.24";
+        version = "0.12.4";
         src = self.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
-          sha256 = "sha256-uKpovKQEvwCFvgVw7/W1QtAffo48D5sIWav+XgcBYv8=";
+          sha256 = "sha256:1cmfkcv2zzirxsb989vx1hvna9nv24pghcvypl0zaxsjphv97mka";
         };
       });
       botocore = super.botocore.overridePythonAttrs (oldAttrs: rec {
-        version = "2.0.0dev148";
+        version = "2.0.0dev155";
         src = fetchFromGitHub {
           owner = "boto";
           repo = "botocore";
-          rev = "c0734f100f61bbef413cb04d9890bbffbccd230f";
-          sha256 = "sha256-ndSJdBF3NMNtpyHgYAksCUBDqlwPhugTkIK6Nby20oI=";
+          rev = "7083e5c204e139dc41f646e0ad85286b5e7c0c23";
+          sha256 = "sha256-aiCc/CXoTem0a9wI/AMBRK3g2BXJi7LpnUY/BxBEKVM=";
         };
         propagatedBuildInputs = super.botocore.propagatedBuildInputs ++ [py.pkgs.awscrt];
       });
@@ -40,24 +40,17 @@ let
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli2";
-  version = "2.2.40"; # N.B: if you change this, change botocore to a matching version too
+  version = "2.3.4"; # N.B: if you change this, change botocore to a matching version too
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-cli";
     rev = version;
-    sha256 = "sha256-IHnNRER9ePKVI9ez15HgxLDR1n6QR0iRESgNqbxQPx8=";
+    sha256 = "sha256-C/NrU+1AixuN4T1N5Zs8xduUQiwuQWvXkitQRnPJdNw=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/mgorny/aws-cli/commit/85361123d2fa12eaedf912c046ffe39aebdd2bad.patch";
-      sha256 = "sha256-1Rb+/CY7ze1/DbJ6TfqHF01cfI2vixZ1dT91bmHTg/A=";
-    })
-  ];
-
   postPatch = ''
-    substituteInPlace setup.py \
+    substituteInPlace setup.cfg \
       --replace "colorama>=0.2.5,<0.4.4" "colorama" \
       --replace "cryptography>=3.3.2,<3.4.0" "cryptography" \
       --replace "docutils>=0.10,<0.16" "docutils" \
@@ -67,7 +60,7 @@ with py.pkgs; buildPythonApplication rec {
       --replace "distro>=1.5.0,<1.6.0" "distro"
   '';
 
-  checkInputs = [ jsonschema mock nose ];
+  checkInputs = [ jsonschema mock pytestCheckHook pytest-xdist ];
 
   propagatedBuildInputs = [
     awscrt
@@ -82,7 +75,7 @@ with py.pkgs; buildPythonApplication rec {
     prompt-toolkit
     pyyaml
     rsa
-    ruamel_yaml
+    ruamel-yaml
     s3transfer
     six
     wcwidth
@@ -93,8 +86,6 @@ with py.pkgs; buildPythonApplication rec {
 
     # https://github.com/NixOS/nixpkgs/issues/16144#issuecomment-225422439
     export HOME=$TMP
-
-    AWS_TEST_COMMAND=$out/bin/aws python scripts/ci/run-tests
   '';
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/tools/admin/awslimitchecker/default.nix b/nixpkgs/pkgs/tools/admin/awslimitchecker/default.nix
new file mode 100644
index 000000000000..54cf59942233
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/awslimitchecker/default.nix
@@ -0,0 +1,58 @@
+{ lib, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "awslimitchecker";
+  version = "12.0.0";
+
+  src = fetchFromGitHub {
+    owner = "jantman";
+    repo = "awslimitchecker";
+    rev = version;
+    sha256 = "1p6n4kziyl6sfq7vgga9v88ddwh3sgnfb1m1cx6q25n0wyl7phgv";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    boto3
+    botocore
+    pytz
+    termcolor
+    versionfinder
+  ];
+
+  checkInputs = with python3Packages; [
+    freezegun
+    onetimepass
+    pytestCheckHook
+    pyotp
+    testfixtures
+  ];
+
+  patches = [
+    # Fix the version lookup to use only the hardcoded version in the source package
+    ./version.patch
+  ];
+
+  pytestFlagsArray = [
+    "awslimitchecker/tests"
+  ];
+
+  disabledTestPaths = [
+    # AWS tests that use the network
+    "awslimitchecker/tests/services"
+    "awslimitchecker/tests/test_checker.py"
+    "awslimitchecker/tests/test_runner.py"
+
+    # the version lookup tests as patched above
+    "awslimitchecker/tests/test_version.py"
+  ];
+
+  pythonImportsCheck = [ "awslimitchecker.checker" ];
+
+  meta = with lib; {
+    homepage = "http://awslimitchecker.readthedocs.org";
+    changelog = "https://github.com/jantman/awslimitchecker/blob/${version}/CHANGES.rst";
+    description = "A script and python package to check your AWS service limits and usage via boto3";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ zakame ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/admin/awslimitchecker/version.patch b/nixpkgs/pkgs/tools/admin/awslimitchecker/version.patch
new file mode 100644
index 000000000000..6556fb39a5f2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/awslimitchecker/version.patch
@@ -0,0 +1,35 @@
+--- a/awslimitchecker/version.py
++++ b/awslimitchecker/version.py
+@@ -111,32 +106,5 @@ def _get_version_info():
+     :returns: awslimitchecker version
+     :rtype: str
+     """
+-    if os.environ.get('VERSIONCHECK_DEBUG', '') != 'true':
+-        for lname in ['versionfinder', 'pip', 'git']:
+-            l = logging.getLogger(lname)
+-            l.setLevel(logging.CRITICAL)
+-            l.propagate = True
+-    try:
+-        vinfo = find_version('awslimitchecker')
+-        dirty = ''
+-        if vinfo.git_is_dirty:
+-            dirty = '*'
+-        tag = vinfo.git_tag
+-        if tag is not None:
+-            tag += dirty
+-        commit = vinfo.git_commit
+-        if commit is not None:
+-            if len(commit) > 7:
+-                commit = commit[:8]
+-            commit += dirty
+-        return AWSLimitCheckerVersion(
+-            vinfo.version,
+-            vinfo.url,
+-            tag=tag,
+-            commit=commit
+-        )
+-    except Exception:
+-        logger.exception("Error checking installed version; this installation "
+-                         "may not be in compliance with the AGPLv3 license:")
+     # fall back to returning just the hard-coded release information
+     return AWSLimitCheckerVersion(_VERSION, _PROJECT_URL)
diff --git a/nixpkgs/pkgs/tools/admin/azure-cli/default.nix b/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
index 4f0609d0a55a..728fcf6eec5b 100644
--- a/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, python3, fetchFromGitHub, installShellFiles }:
 
 let
-  version = "2.28.1";
+  version = "2.30.0";
   srcName = "azure-cli-${version}-src";
 
   src = fetchFromGitHub {
@@ -9,13 +9,12 @@ let
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    sha256 = "sha256-9EkCScEj5kuKtkfnCmFUZg/qDzvmI3rvDS+NtkZC7sk=";
+    sha256 = "sha256-b4hNacraNomhiFGEiHcMweqbEq3vTHus+xbFPv5X5HQ=";
   };
 
   # put packages that needs to be overriden in the py package scope
   py = import ./python-packages.nix {
-    inherit stdenv lib src version;
-    python = python3;
+    inherit stdenv lib src version python3;
   };
 in
 py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
@@ -26,10 +25,11 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
 
   prePatch = ''
     substituteInPlace setup.py \
-      --replace "javaproperties==0.5.1" "javaproperties" \
+      --replace "chardet~=3.0.4" "chardet" \
+      --replace "javaproperties~=0.5.1" "javaproperties" \
       --replace "pytz==2019.1" "pytz" \
       --replace "scp~=0.13.2" "scp" \
-      --replace "jsondiff==1.2.0" "jsondiff~=1.2" \
+      --replace "jsondiff~=1.2.0" "jsondiff~=1.2" \
       --replace "antlr4-python3-runtime~=4.7.2" "antlr4-python3-runtime~=4.7" \
       --replace "mock~=4.0" "mock"
 
@@ -55,6 +55,7 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-identity
     azure-keyvault
     azure-keyvault-administration
+    azure-keyvault-keys
     azure-loganalytics
     azure-mgmt-advisor
     azure-mgmt-apimanagement
@@ -115,6 +116,7 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-mgmt-servicebus
     azure-mgmt-servicefabric
     azure-mgmt-servicefabricmanagedclusters
+    azure-mgmt-servicelinker
     azure-mgmt-signalr
     azure-mgmt-sql
     azure-mgmt-sqlvirtualmachine
diff --git a/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix b/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
index b50543dbe3d2..ab8528595a09 100644
--- a/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -1,24 +1,7 @@
-{ stdenv, python, lib, src, version }:
+{ stdenv, python3, lib, src, version }:
 
 let
-  buildAzureCliPackage = with py.pkgs; attrs: buildPythonPackage (attrs // {
-    # Remove overly restrictive version contraints and obsolete namespace setup
-    prePatch = (attrs.prePatch or "") + ''
-      rm -f azure_bdist_wheel.py tox.ini
-      substituteInPlace setup.py \
-        --replace "cryptography>=3.2,<3.4" "cryptography"
-      sed -i "/azure-namespace-package/c\ " setup.cfg
-    '';
-
-    # Prevent these __init__'s from violating PEP420, only needed for python2
-    pythonNamespaces = [ "azure.cli" ];
-
-    checkInputs = [ mock pytest ] ++ (attrs.checkInputs or []);
-    checkPhase = attrs.checkPhase or ''
-      cd azure
-      HOME=$TMPDIR pytest
-    '';
-  });
+  buildAzureCliPackage = with py.pkgs; attrs: buildPythonPackage attrs;
 
   overrideAzureMgmtPackage = package: version: extension: sha256:
     # check to make sure overriding is even necessary
@@ -42,7 +25,7 @@ let
       pythonNamespaces = [ "azure.mgmt" ];
     });
 
-  py = python.override {
+  py = python3.override {
     packageOverrides = self: super: {
       inherit buildAzureCliPackage;
 
@@ -55,6 +38,7 @@ let
 
         propagatedBuildInputs = with self; [
           adal
+          antlr4-python3-runtime
           argcomplete
           azure-common
           azure-cli-telemetry
@@ -80,9 +64,7 @@ let
           requests
           six
           tabulate
-        ]
-        ++ lib.optionals isPy3k [ antlr4-python3-runtime ]
-        ++ lib.optionals (!isPy3k) [ enum34 futures antlr4-python2-runtime ndg-httpsclient ];
+        ];
 
         postPatch = ''
           substituteInPlace setup.py \
@@ -91,12 +73,14 @@ let
             --replace "cryptography>=3.2,<3.4" "cryptography"
         '';
 
+        checkInputs = with self; [ pytest ];
         doCheck = stdenv.isLinux;
         # ignore tests that does network call, or assume powershell
         checkPhase = ''
           rm azure/{,cli/}__init__.py
           python -c 'import azure.common; print(azure.common)'
-          PYTHONPATH=$PWD:$PYTHONPATH HOME=$TMPDIR pytest \
+          PYTHONPATH=$PWD:${src}/src/azure-cli-testsdk:$PYTHONPATH HOME=$TMPDIR pytest \
+            azure/cli/core/tests \
             --ignore=azure/cli/core/tests/test_profile.py \
             --ignore=azure/cli/core/tests/test_generic_update.py \
             -k 'not metadata_url and not test_send_raw_requests and not test_format_styled_text_legacy_powershell'
@@ -126,6 +110,7 @@ let
             --replace "portalocker~=1.6" "portalocker"
         '';
 
+        checkInputs = [ py.pkgs.pytest ];
         # ignore flaky test
         checkPhase = ''
           cd azure
@@ -133,9 +118,6 @@ let
         '';
       };
 
-      azure-appconfiguration = overrideAzureMgmtPackage super.azure-appconfiguration "1.1.1" "zip"
-        "sha256-uDzSy2PZMiXehOJ6u/wFkhL43id2b0xY3Tq7g53/C+Q=";
-
       azure-batch = overrideAzureMgmtPackage super.azure-batch "11.0.0" "zip"
         "83d7a2b0be42ca456ac2b56fa3dc6ce704c130e888d37d924072c1d3718f32da";
 
@@ -157,14 +139,14 @@ let
       azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "1.0.0" "zip"
         "75103fb4541aeae30bb687dee1fedd9ca65530e6b97b2d9ea87f74816905202a";
 
-      azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "9.1.0b1" "zip"
-        "sha256-O/6dE6lUnowYTWwQLWt3u1dwV4jBof+Jok0PUhFEEs0=";
+      azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "10.0.0" "zip"
+        "bdc479b3bbcac423943d63e746a81dd5fc80b46a4dbb4393e760016e3fa4f74a";
 
       azure-mgmt-recoveryservices = overrideAzureMgmtPackage super.azure-mgmt-recoveryservices "2.0.0" "zip"
         "sha256-p9MTfVxGD1CsLUQGHWCnC08nedTKhEt3QZtXJeZeCb4=";
 
-      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "0.14.0" "zip"
-        "sha256-sXGUQEO6tba3m1l+0Iir/eptTt+XRXyTr8FxbDzr6I0=";
+      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "3.0.0" "zip"
+        "sha256-GZJIayjd1tT1l/0wBCF80sr09NyKDOcSJrWudnrOOhg=";
 
       azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "19.0.0" "zip"
         "bbb60bb9419633c2339569d4e097908638c7944e782b5aef0f5d9535085a9100";
@@ -175,20 +157,20 @@ let
       azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "12.0.0" "zip"
         "73054bd19866577e7e327518afc8f47e1639a11aea29a7466354b81804f4a676";
 
-      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "22.1.0" "zip"
-        "sha256-Kq1BSEOu4PVEJ/iH91NsxRVdaFJyjUTf7vYzrFITX9w=";
+      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "23.1.0" "zip"
+        "sha256-N+zUTEnOyn18lDHlkUj+vRXX/sJhZR7XLd1YdV50ULA=";
 
       azure-mgmt-consumption = overrideAzureMgmtPackage super.azure-mgmt-consumption "2.0.0" "zip"
         "12ai4qps73ivawh0yzvgb148ksx02r30pqlvfihx497j62gsi1cs";
 
-      azure-mgmt-containerinstance = overrideAzureMgmtPackage super.azure-mgmt-containerinstance "8.0.0" "zip"
-        "7aeb380af71fc35a71d6752fa25eb5b95fdb2a0027fa32e6f50bce87e2622916";
+      azure-mgmt-containerinstance = overrideAzureMgmtPackage super.azure-mgmt-containerinstance "9.1.0" "zip"
+        "sha256-N+zUTEnOyn18lDHlkUj+vRXX/sJhZR7XLd1YdV50ULA=";
 
       azure-mgmt-containerservice = overrideAzureMgmtPackage super.azure-mgmt-containerservice "16.1.0" "zip"
         "sha256-NlTIrOK4ho0OqcTHjHT1HobiMzDH2KY20TIlN0fm8/Q=";
 
-      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "6.4.0" "zip"
-        "fb6b8ab80ab97214b94ae9e462ba1c459b68a3af296ffc26317ebd3ff500e00b";
+      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "7.0.0b2" "zip"
+        "sha256-hVvYW9gkfTVMwis3IdD0JXYDxdKcyyzIFx3hNk7VMLI=";
 
       azure-mgmt-databoxedge = overrideAzureMgmtPackage super.azure-mgmt-databoxedge "1.0.0" "zip"
         "04090062bc1e8f00c2f45315a3bceb0fb3b3479ec1474d71b88342e13499b087";
@@ -217,8 +199,8 @@ let
       azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip"
         "1397ksrd61jv7400mgn8sqngp6ahir55fyq9n5k69wk88169qm2r";
 
-      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "4.0.0" "zip"
-        "7195e413a0764684cd42bec9e429c13c290db9ab5c465dbed586a6f6d0ec8a42";
+      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "5.1.0" "zip"
+        "7195e413a0764684cd42bec9e429c13c290db9ab5c465dbed586a6f6d0ec8a4a";
 
       azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "8.0.0" "zip"
         "407c2dacb33513ffbe9ca4be5addb5e9d4bae0cb7efa613c3f7d531ef7bf8de8";
@@ -226,8 +208,8 @@ let
       azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "11.0.0" "zip"
         "41671fc6e95180fb6147cb40567410c34b85fb69bb0a9b3e09feae1ff370ee9d";
 
-      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "19.0.0" "zip"
-        "5e39a26ae81fa58c13c02029700f8c7b22c3fd832a294c543e3156a91b9459e8";
+      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "19.1.0" "zip"
+        "sha256-Yu9/6LqY5WQStDTJw13HVbPF5GnywBu+0s4NEpc6BEs=";
 
       azure-mgmt-maps = overrideAzureMgmtPackage super.azure-mgmt-maps "2.0.0" "zip"
         "384e17f76a68b700a4f988478945c3a9721711c0400725afdfcb63cf84e85f0e";
@@ -250,8 +232,8 @@ let
       azure-mgmt-privatedns = overrideAzureMgmtPackage super.azure-mgmt-privatedns "1.0.0" "zip"
         "b60f16e43f7b291582c5f57bae1b083096d8303e9d9958e2c29227a55cc27c45";
 
-      azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "2.0.0" "zip"
-        "0040e1c9c795f7bebe43647ff30b62cb0db7175175df5cbfa1e554a6a277b81e";
+      azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "4.0.0" "zip"
+        "sha256-5XQ3qTPn3qmwYY/nkODa3GP5hXc1NhrItfXoBiucKg0=";
 
       azure-mgmt-redhatopenshift = overrideAzureMgmtPackage super.azure-mgmt-redhatopenshift "1.0.0" "zip"
         "94cd41f1ebd82e40620fd3e6d88f666b5c19ac7cf8b4e8edadb9721bd7c80980";
@@ -265,8 +247,8 @@ let
       azure-mgmt-search = overrideAzureMgmtPackage super.azure-mgmt-search "8.0.0" "zip"
         "a96d50c88507233a293e757202deead980c67808f432b8e897c4df1ca088da7e";
 
-      azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "1.0.0" "zip"
-        "ae1cff598dfe80e93406e524c55c3f2cbffced9f9b7a5577e3375008a4c3bcad";
+      azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "2.0.0b1" "zip"
+        "sha256-8Ksa08w8EeZEKXIk2AQ4zHCmfvTDwzV/k9I67CVusIQ=";
 
       azure-mgmt-signalr = overrideAzureMgmtPackage super.azure-mgmt-signalr "1.0.0b2" "zip"
         "sha256-FTxY8qoihHG4OZuKT3sRRlKfORbIoqDqug9Ko+6S9dw=";
@@ -277,26 +259,26 @@ let
       azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "1.0.0b1" "zip"
         "sha256-SrFTvU+67U3CpMLPZMawXuRdSIbTsfav2jFZIsZWPmw=";
 
-      azure-mgmt-synapse = overrideAzureMgmtPackage super.azure-mgmt-synapse "2.0.0" "zip"
-        "bec6bdfaeb55b4fdd159f2055e8875bf50a720bb0fce80a816e92a2359b898c8";
+      azure-mgmt-synapse = overrideAzureMgmtPackage super.azure-mgmt-synapse "2.1.0b2" "zip"
+        "sha256-/BAxKDttp/tS/X45y8X4KBm5qxtNuVXhrc5qB3A+wRE=";
 
-      azure-mgmt-datamigration = overrideAzureMgmtPackage super.azure-mgmt-datamigration "9.0.0" "zip"
-        "sha256-cDc9vrNad2ikc0G7O1cMVZGXvBujb8j4vxUTnkyLrXA=";
+      azure-mgmt-datamigration = overrideAzureMgmtPackage super.azure-mgmt-datamigration "10.0.0" "zip"
+        "5cee70f97fe3a093c3cb70c2a190c2df936b772e94a09ef7e3deb1ed177c9f32";
 
       azure-mgmt-relay = overrideAzureMgmtPackage super.azure-mgmt-relay "0.1.0" "zip"
         "1jss6qhvif8l5s0lblqw3qzijjf0h88agciiydaa7f4q577qgyfr";
 
-      azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "4.1.0" "zip"
-        "186g70slb259ybrr69zr2ibbmqgplnpncwxzg0nxp6rd7pml7d85";
+      azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "9.1.0" "zip"
+        "0ba9f10e1e8d03247a316e777d6f27fabf268d596dda2af56ac079fcdf5e7afe";
 
-      azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "9.1.0" "zip"
-        "sha256-zTXoHEo8+BKt5L3PH3zPS1t4qAHvlnNAASpqyf5h3tI=";
+      azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "9.2.0" "zip"
+        "sha256-N+zUTEnOyn18lDHlkUj+vRXX/sJhZR7XLd1YdV50ULA=";
 
       azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "11.0.0" "zip"
         "28e7070001e7208cdb6c2ad253ec78851abdd73be482230d2c0874eed5bc0907";
 
-      azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "8.1.0" "zip"
-        "62efbb03275d920894d79879ad0ed59605163abd32177dcf24e90c1862ebccbd";
+      azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "8.2.0" "zip"
+        "f2bcdbcf0b9fdc2df0df9eccb77cb489091d3c670ed53cba77e5ffd734e9539b";
 
       azure-mgmt-monitor = overrideAzureMgmtPackage super.azure-mgmt-monitor "2.0.0" "zip"
         "e7f7943fe8f0efe98b3b1996cdec47c709765257a6e09e7940f7838a0f829e82";
@@ -310,8 +292,8 @@ let
       azure-mgmt-authorization = overrideAzureMgmtPackage super.azure-mgmt-authorization "0.61.0" "zip"
         "0xfvx2dvfj3fbz4ngn860ipi4v6gxqajyjc8x92r8knhmniyxk7m";
 
-      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "18.0.0" "zip"
-        "d17beb34273797fa89863632ff0e1eb9b6a55198abb8c7f05d84980762e5f71f";
+      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "19.0.0" "zip"
+        "f05963e5a8696d0fd4dcadda4feecb9b382a380d2e461b3647704ac787d79876";
 
       azure-mgmt-servicebus = overrideAzureMgmtPackage super.azure-mgmt-servicebus "6.0.0" "zip"
         "f6c64ed97d22d0c03c4ca5fc7594bd0f3d4147659c10110160009b93f541298e";
@@ -319,11 +301,22 @@ let
       azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "1.0.0" "zip"
         "de35e117912832c1a9e93109a8d24cab94f55703a9087b2eb1c5b0655b3b1913";
 
-      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "8.0.0" "zip"
-        "2c43f1a62e5b83304392b0ad7cfdaeef2ef2f47cb3fdfa2577b703b6ea126000";
+      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "9.0.0" "zip"
+        "41ebdc69c0d1f81d25dd30438c14fff4331f66639f55805b918b9649eaffe78a";
+
+      azure-multiapi-storage = overrideAzureMgmtPackage super.azure-multiapi-storage "0.7.0" "tar.gz"
+        "cd4f184be8c9ca8aca969f93ed50dc7fe556d28ca11520440fc182cf876abdf9";
 
-      azure-multiapi-storage = overrideAzureMgmtPackage super.azure-multiapi-storage "0.6.2" "tar.gz"
-        "74061f99730fa82c54d9b8ab3c7d6e219da3f30912740ecf0456b20cb3555ebc";
+      azure-appconfiguration = super.azure-appconfiguration.overrideAttrs(oldAttrs: rec {
+        version = "1.1.1";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "sha256-uDzSy2PZMiXehOJ6u/wFkhL43id2b0xY3Tq7g53/C+Q=";
+          extension = "zip";
+        };
+      });
 
       azure-graphrbac = super.azure-graphrbac.overrideAttrs(oldAttrs: rec {
         version = "0.60.0";
@@ -355,11 +348,11 @@ let
       });
 
       azure-synapse-artifacts = super.azure-synapse-artifacts.overrideAttrs(oldAttrs: rec {
-        version = "0.6.0";
+        version = "0.8.0";
         src = super.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
-          sha256 = "ec113d37386b8787862baaf9da0318364a008004a377d20fdfca31cfe8d16210";
+          sha256 = "sha256-PU/f0L1maYT3vce8DHpgGMNaXUaoGjLdGTsHwDtSi3I=";
           extension = "zip";
         };
       });
@@ -420,6 +413,17 @@ let
         };
       });
 
+      azure-keyvault-keys = super.azure-keyvault-keys.overridePythonAttrs(oldAttrs: rec {
+        version = "4.5.0b4";
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          extension = "zip";
+          sha256 = "sha256-f43ZTMFc0IVIaa69gEZFOLALREcx3RRCFoYDY2FYLrY=";
+        };
+      });
+
+
       # part of azure.mgmt.datalake namespace
       azure-mgmt-datalake-analytics = super.azure-mgmt-datalake-analytics.overrideAttrs(oldAttrs: rec {
         version = "0.2.1";
diff --git a/nixpkgs/pkgs/tools/admin/certigo/default.nix b/nixpkgs/pkgs/tools/admin/certigo/default.nix
index 422c6da82d2f..ff5d6c8f56fa 100644
--- a/nixpkgs/pkgs/tools/admin/certigo/default.nix
+++ b/nixpkgs/pkgs/tools/admin/certigo/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "certigo";
-  version = "1.12.1";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = "square";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0siwbxxzknmbsjy23d0lvh591ngabqhr2g8mip0siwa7c1y7ivv4";
+    sha256 = "sha256-3VysSE4N2MlNDOZ27RbCe8rUuYChU5Z3L/CIhtvMp38=";
   };
 
-  vendorSha256 = "1l6ajfl04rfbssvijgd5jrppmqc5svfrswdx01x007lr8rvdfd94";
+  vendorSha256 = "sha256-0wul0f8T7E4cXbsNee1j1orUgjrAToqDLgwCjiyii1Y=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/admin/chamber/default.nix b/nixpkgs/pkgs/tools/admin/chamber/default.nix
index 45c62fd42f92..777366e16c0f 100644
--- a/nixpkgs/pkgs/tools/admin/chamber/default.nix
+++ b/nixpkgs/pkgs/tools/admin/chamber/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "chamber";
-  version = "2.10.3";
+  version = "2.10.7";
 
   src = fetchFromGitHub {
     owner = "segmentio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nIIoU+iz2uOglNaqGIhQ2kUjpFOyOx+flXXwu02UG6Y=";
+    sha256 = "sha256-HpxHGbgPdu92ha0QO15x1rrJikDmpSA8E8YdgjzQ/Mw=";
   };
 
   CGO_ENABLED = 0;
diff --git a/nixpkgs/pkgs/tools/admin/clair/default.nix b/nixpkgs/pkgs/tools/admin/clair/default.nix
index ab9ebc013b80..bfeb636cb16e 100644
--- a/nixpkgs/pkgs/tools/admin/clair/default.nix
+++ b/nixpkgs/pkgs/tools/admin/clair/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "clair";
-  version = "4.3.0";
+  version = "4.3.5";
 
   src = fetchFromGitHub {
     owner = "quay";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9IRoDvvhUMXTiMl2Jj4NFlTJD7QSXsVxjoDVTlqTsWg=";
+    sha256 = "sha256-XV1lSEg6ksa5Y1jPKpVw3l+3pWkf6iBrJ+TBqVoj60k=";
   };
 
-  vendorSha256 = "sha256-9BG10+aOysFZmGytDhz11u/2uJQq4LnceCsotJIZ62U=";
+  vendorSha256 = "sha256-U5uPTd9RHJnt3It7iluu73ihuDiIl3kCy/1f2bRqhBY=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/admin/colmena/default.nix b/nixpkgs/pkgs/tools/admin/colmena/default.nix
new file mode 100644
index 000000000000..e95475be3395
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/colmena/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, rustPlatform, fetchFromGitHub, installShellFiles, colmena, testVersion }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "colmena";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "zhaofengli";
+    repo = "colmena";
+    rev = "v${version}";
+    sha256 = "sha256-WY8SYapnDcfaoLr1iFgwc9/E7xSfOFN2AvMDpk74AI8=";
+  };
+
+  cargoSha256 = "sha256-ZNSg3hXWKHNQ9yHJS1qW3tFYwzU4ZDa1N0yvoGLmWns=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
+    installShellCompletion --cmd colmena \
+      --bash <($out/bin/colmena gen-completions bash) \
+      --zsh <($out/bin/colmena gen-completions zsh) \
+      --fish <($out/bin/colmena gen-completions fish)
+  '';
+
+  # Recursive Nix is not stable yet
+  doCheck = false;
+
+  passthru = {
+    # We guarantee CLI and Nix API stability for the same minor version
+    apiVersion = builtins.concatStringsSep "." (lib.take 2 (lib.splitString "." version));
+
+    tests.version = testVersion { package = colmena; };
+  };
+
+  meta = with lib; {
+    description = "A simple, stateless NixOS deployment tool";
+    homepage = "https://zhaofengli.github.io/colmena/${passthru.apiVersion}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zhaofengli ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/admin/credhub-cli/default.nix b/nixpkgs/pkgs/tools/admin/credhub-cli/default.nix
index 9cfb23ab9daa..844b65e0f6c3 100644
--- a/nixpkgs/pkgs/tools/admin/credhub-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/credhub-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "credhub-cli";
-  version = "2.9.0";
+  version = "2.9.1";
 
   src = fetchFromGitHub {
     owner = "cloudfoundry-incubator";
     repo = "credhub-cli";
     rev = version;
-    sha256 = "1j0i0b79ph2i52cj0qln8wvp6gwhl73akkn026h27vvmlw9sndc2";
+    sha256 = "sha256-2+KOf6VQ1jTXfFE+Ptd3iiOEhvENU0XUclQ+e85DpUo=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/admin/eksctl/default.nix b/nixpkgs/pkgs/tools/admin/eksctl/default.nix
index 9b318ec462fb..7208e4e8cdd5 100644
--- a/nixpkgs/pkgs/tools/admin/eksctl/default.nix
+++ b/nixpkgs/pkgs/tools/admin/eksctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.69.0";
+  version = "0.76.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "sha256-mRY/czMf6KefYCqfCVRtcHuUuqAxyPUd8TJmx7vzOsk=";
+    sha256 = "sha256-KhAS8JUM6dobcSJ/QaRhxv2jNpn6AFqiDRCdxeKHwZE=";
   };
 
-  vendorSha256 = "sha256-cUo+tcHhnbJbn3HS/I8lnkvfv+6+htIs1dMtKuEArQg=";
+  vendorSha256 = "sha256-6eiJR7DRx3zYKT3B1wBTGSvPQwYw3815K1V/Y9aBX5E=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix b/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
index 4bf2049d97ac..182e594084ee 100644
--- a/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "exoscale-cli";
-  version = "1.44.0";
+  version = "1.49.2";
 
   src = fetchFromGitHub {
     owner  = "exoscale";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-1ntKm6OA20+/gMVufbmM6fZ2UIXG/0SzH9vZQUvsIUQ=";
+    sha256 = "sha256-8v+U0h0+3NVSXBlulOKY0A5oDlqkgNZPoyflRNycDxU=";
   };
 
   goPackagePath = "github.com/exoscale/cli";
diff --git a/nixpkgs/pkgs/tools/admin/fioctl/default.nix b/nixpkgs/pkgs/tools/admin/fioctl/default.nix
index 98e68c10fb9d..21bf7ae6a572 100644
--- a/nixpkgs/pkgs/tools/admin/fioctl/default.nix
+++ b/nixpkgs/pkgs/tools/admin/fioctl/default.nix
@@ -2,18 +2,16 @@
 
 buildGoModule rec {
   pname = "fioctl";
-  version = "0.20";
+  version = "0.22";
 
   src = fetchFromGitHub {
     owner = "foundriesio";
     repo = "fioctl";
     rev = "v${version}";
-    sha256 = "sha256-vc+V69cyJZSJa6GXUUNYeXdKvmUrVIQhsBykptcl85s=";
+    sha256 = "sha256-8YIboaLFc1nliNQJPyTd/JseTbvk2aBTjVEpW3mTkZg=";
   };
 
-  vendorSha256 = "sha256-SuUY4xwinky5QO+GxyotrFiYX1LnWQNjwWXIUpfVHUE=";
-
-  runVend = true;
+  vendorSha256 = "sha256-oA8/9LjMRM1RXKKDWhcbt2qr/4T7YgOq92U2mF9E+sw=";
 
   ldflags = [
     "-s" "-w" "-X github.com/foundriesio/fioctl/subcommands/version.Commit=${src.rev}"
diff --git a/nixpkgs/pkgs/tools/admin/fits-cloudctl/default.nix b/nixpkgs/pkgs/tools/admin/fits-cloudctl/default.nix
index c96c6c0ad090..a71f6e8f6347 100644
--- a/nixpkgs/pkgs/tools/admin/fits-cloudctl/default.nix
+++ b/nixpkgs/pkgs/tools/admin/fits-cloudctl/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "fits-cloudctl";
-  version = "0.10.0";
+  version = "0.10.5";
 
   src = fetchFromGitHub {
     owner = "fi-ts";
     repo = "cloudctl";
     rev = "v${version}";
-    sha256 = "09v5fgqf4c2d6k2z638g29mcsmdisg3zfq1g7330wsd7yaxv9m23";
+    sha256 = "sha256-l01c1tjS0L+T/kHreYx3A5/N/oRDuDywXS/GAvUCxSk=";
   };
 
-  vendorSha256 = "1rdqih04mlp33m69y9zxm4llx8cafwqhjhfxw873s8b35j0xz2m5";
+  vendorSha256 = "sha256-iJlNNovsIgTOPfAzwqkumrmCQu2xI/neqH+Z4tvSXeY=";
 
   meta = with lib; {
     description = "Command-line client for FI-TS Finance Cloud Native services";
diff --git a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/data.nix b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/data.nix
new file mode 100644
index 000000000000..4c546b0631e2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/data.nix
@@ -0,0 +1,32 @@
+# DO NOT EDIT! This file is generated automatically by update.sh
+{ }:
+{
+  version = "367.0.0";
+  googleCloudSdkPkgs = {
+    x86_64-linux =
+      {
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-367.0.0-linux-x86_64.tar.gz";
+        sha256 = "1zhymqk0ax8qjywwa9w3dvhia8khwkq9xaza5vnbg8arcnf8ncll";
+      };
+    x86_64-darwin =
+      {
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-367.0.0-darwin-x86_64.tar.gz";
+        sha256 = "0cq22jgmsclp6gaylbh53fbwvl8hi4zswknb6kwqmadhd35a6347";
+      };
+    aarch64-linux =
+      {
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-367.0.0-linux-arm.tar.gz";
+        sha256 = "1vmg5665m0hwy8kd4snc1hq7qk81pdmyk94ryg8zpjliwmna65iy";
+      };
+    aarch64-darwin =
+      {
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-367.0.0-darwin-arm.tar.gz";
+        sha256 = "00p0ww72sn4l9cjcjcml43hj0hlbmcnc1razg99fx1s88h0v928n";
+      };
+    i686-linux =
+      {
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-367.0.0-linux-x86.tar.gz";
+        sha256 = "1pyjb53imjrfn2izyl60kasysi11virybvnsr2sn1c5d97lx1aah";
+      };
+  };
+}
diff --git a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
index e0206b120a5b..f0b0c042cbe4 100644
--- a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -7,7 +7,7 @@
 #   3) used by `google-cloud-sdk` only on GCE guests
 #
 
-{ stdenv, lib, fetchurl, makeWrapper, python, openssl, jq, with-gce ? false }:
+{ stdenv, lib, fetchurl, makeWrapper, nixosTests, python, openssl, jq, with-gce ? false }:
 
 let
   pythonEnv = python.withPackages (p: with p; [
@@ -17,39 +17,15 @@ let
     crcmod
   ] ++ lib.optional (with-gce) google-compute-engine);
 
-  baseUrl = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads";
-  sources = name: system: {
-    x86_64-darwin = {
-      url = "${baseUrl}/${name}-darwin-x86_64.tar.gz";
-      sha256 = "0cjy6znhpv90mj7463lghmzhivwhaxa7q9da37wdpwh53h7kf05r";
-    };
-
-    aarch64-darwin = {
-      url = "${baseUrl}/${name}-darwin-arm.tar.gz";
-      sha256 = "0phby3s9375zyphjwk1hrpr8fiybik1ag3yfnpmi7msq54lf4h3x";
-    };
-
-    x86_64-linux = {
-      url = "${baseUrl}/${name}-linux-x86_64.tar.gz";
-      sha256 = "0j1n8mzck3sizjslm12x4lgxklw1xvbxp2186xnxm4pmj4kwp4k1";
-    };
-
-    i686-linux = {
-      url = "${baseUrl}/${name}-linux-x86.tar.gz";
-      sha256 = "1sll47bhd4x5r0z65325ak0wbbky07qbzqkf7w97nilv7wz5dgxa";
-    };
-
-    aarch64-linux = {
-      url = "${baseUrl}/${name}-linux-arm.tar.gz";
-      sha256 = "1jk17fn3q1i625q1cdyxlvv58rw9ma7lwvngc04jqrccczsl1jqr";
-    };
-  }.${system} or (throw "Unsupported system: ${system}");
+  data = import ./data.nix { };
+  sources = system:
+    data.googleCloudSdkPkgs.${system} or (throw "Unsupported system: ${system}");
 
 in stdenv.mkDerivation rec {
   pname = "google-cloud-sdk";
-  version = "360.0.0";
+  inherit (data) version;
 
-  src = fetchurl (sources "${pname}-${version}" stdenv.hostPlatform.system);
+  src = fetchurl (sources stdenv.hostPlatform.system);
 
   buildInputs = [ python ];
 
@@ -99,6 +75,13 @@ in stdenv.mkDerivation rec {
     mv $out/google-cloud-sdk/completion.bash.inc $out/share/bash-completion/completions/gcloud
     ln -s $out/share/bash-completion/completions/gcloud $out/share/bash-completion/completions/gsutil
 
+    # setup zsh completion
+    mkdir -p $out/share/zsh/site-functions
+    mv $out/google-cloud-sdk/completion.zsh.inc $out/share/zsh/site-functions/_gcloud
+    ln -s $out/share/zsh/site-functions/_gcloud $out/share/zsh/site-functions/_gsutil
+    # zsh doesn't load completions from $FPATH without #compdef as the first line
+    sed -i '1 i #compdef gcloud' $out/share/zsh/site-functions/_gcloud
+
     # This directory contains compiled mac binaries. We used crcmod from
     # nixpkgs instead.
     rm -r $out/google-cloud-sdk/platform/gsutil/third_party/crcmod \
@@ -117,14 +100,20 @@ in stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/gcloud version --format json | jq '."Google Cloud SDK"' | grep "${version}"
+  '';
+
   meta = with lib; {
     description = "Tools for the google cloud platform";
     longDescription = "The Google Cloud SDK. This package has the programs: gcloud, gsutil, and bq";
     # This package contains vendored dependencies. All have free licenses.
     license = licenses.free;
     homepage = "https://cloud.google.com/sdk/";
+    changelog = "https://cloud.google.com/sdk/docs/release-notes";
     maintainers = with maintainers; [ iammrinal0 pradyuman stephenmw zimbatm ];
-    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
+    platforms = builtins.attrNames data.googleCloudSdkPkgs;
     mainProgram = "gcloud";
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/update.sh b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/update.sh
new file mode 100755
index 000000000000..ac6bee4dfe64
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/update.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p nix
+
+BASE_URL="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk"
+
+# Version of Google Cloud SDK from
+# https://cloud.google.com/sdk/docs/release-notes
+VERSION="367.0.0"
+
+function genMainSrc() {
+    local url="${BASE_URL}-${VERSION}-${1}-${2}.tar.gz"
+    local sha256
+    sha256=$(nix-prefetch-url "$url")
+    echo "      {"
+    echo "        url = \"${url}\";"
+    echo "        sha256 = \"${sha256}\";"
+    echo "      };"
+}
+
+{
+    cat <<EOF
+# DO NOT EDIT! This file is generated automatically by update.sh
+{ }:
+{
+  version = "${VERSION}";
+  googleCloudSdkPkgs = {
+EOF
+
+    echo "    x86_64-linux ="
+    genMainSrc "linux" "x86_64"
+
+    echo "    x86_64-darwin ="
+    genMainSrc "darwin" "x86_64"
+
+    echo "    aarch64-linux ="
+    genMainSrc "linux" "arm"
+
+    echo "    aarch64-darwin ="
+    genMainSrc "darwin" "arm"
+
+    echo "    i686-linux ="
+    genMainSrc "linux" "x86"
+
+    echo "  };"
+    echo "}"
+
+} >data.nix
diff --git a/nixpkgs/pkgs/tools/admin/gtk-vnc/default.nix b/nixpkgs/pkgs/tools/admin/gtk-vnc/default.nix
index 5e00e487e23e..060c95a8f767 100644
--- a/nixpkgs/pkgs/tools/admin/gtk-vnc/default.nix
+++ b/nixpkgs/pkgs/tools/admin/gtk-vnc/default.nix
@@ -15,6 +15,7 @@
 , vala
 , gettext
 , perl
+, python3
 , gnome
 , gdk-pixbuf
 , zlib
@@ -22,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gtk-vnc";
-  version = "1.2.0";
+  version = "1.3.0";
 
   outputs = [ "out" "bin" "man" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0jmr6igyzcj2wmx5v5ywaazvdz3hx6a6rys26yb4l4s71l281bvs";
+    sha256 = "X6qlgjuMvowLC6HkVsTnDEsa5mhcn+gaQoLZjPAKIR0=";
   };
 
   nativeBuildInputs = [
@@ -39,6 +40,7 @@ stdenv.mkDerivation rec {
     vala
     gettext
     perl # for pod2man
+    python3
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/admin/iamy/default.nix b/nixpkgs/pkgs/tools/admin/iamy/default.nix
index 6ee5f3f880bb..467f0ffbce0a 100644
--- a/nixpkgs/pkgs/tools/admin/iamy/default.nix
+++ b/nixpkgs/pkgs/tools/admin/iamy/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "iamy";
-  version = "2.3.2";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "99designs";
     repo = "iamy";
     rev = "v${version}";
-    sha256 = "1fypc6yjnhlpk7zhb2lvah2ikh2zji9sll55rqjbr3i4j02h484z";
+    sha256 = "sha256-oH3ijZaWXI0TdVQN9gzp5ypWzY7OqSxDh7VBoZo42Cs=";
   };
 
-  vendorSha256 = "0c4g1zr0wl118g41hqri0vwvfin39yvgs214w3spw8ggjcj6bzph";
+  vendorSha256 = "sha256-/IUYM3pTvcHXw8t5MW6JUEWdxegFuQC8zkiySp8VEgE=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/admin/lego/default.nix b/nixpkgs/pkgs/tools/admin/lego/default.nix
index 83d16c3eb772..cec4f2981298 100644
--- a/nixpkgs/pkgs/tools/admin/lego/default.nix
+++ b/nixpkgs/pkgs/tools/admin/lego/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "lego";
-  version = "4.5.2";
+  version = "4.5.3";
 
   src = fetchFromGitHub {
     owner = "go-acme";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ytU1G0kT8/sx9kR8yrrGqUta+vi96aCovoABit0857g=";
+    sha256 = "sha256-xvTV6jZmQWs6g8Oq+IrwPZVS3fzY1/adg7IWh189ftU=";
   };
 
   vendorSha256 = "sha256-EK2E2YWdk2X1awdUhMOJh+qr+jnnftnKuPPpiHzXZHk=";
diff --git a/nixpkgs/pkgs/tools/admin/lxd/default.nix b/nixpkgs/pkgs/tools/admin/lxd/default.nix
index 12ea0f7a55d0..8a3ece8e0f90 100644
--- a/nixpkgs/pkgs/tools/admin/lxd/default.nix
+++ b/nixpkgs/pkgs/tools/admin/lxd/default.nix
@@ -1,31 +1,23 @@
-{ lib, hwdata, pkg-config, lxc, buildGoPackage, fetchurl
+{ lib, hwdata, pkg-config, lxc, buildGoPackage, fetchurl, fetchpatch
 , makeWrapper, acl, rsync, gnutar, xz, btrfs-progs, gzip, dnsmasq, attr
-, squashfsTools, iproute2, iptables, ebtables, iptables-nftables-compat, libcap
+, squashfsTools, iproute2, iptables, libcap
 , dqlite, raft-canonical, sqlite-replication, udev
 , writeShellScriptBin, apparmor-profiles, apparmor-parser
 , criu
 , bash
 , installShellFiles
-, nftablesSupport ? false
 , nixosTests
 }:
 
-let
-  networkPkgs = if nftablesSupport then
-    [ iptables-nftables-compat ]
-  else
-    [ iptables ebtables ];
-
-in
 buildGoPackage rec {
   pname = "lxd";
-  version = "4.19";
+  version = "4.21";
 
   goPackagePath = "github.com/lxc/lxd";
 
   src = fetchurl {
     url = "https://linuxcontainers.org/downloads/lxd/lxd-${version}.tar.gz";
-    sha256 = "0mxbzg8xra0qpd3g3z1b230f0519h56x4jnn09lbbqa92p5zck3f";
+    sha256 = "1b2jls3jgvgdl0136nar8zm3hfrp0gqxxq9fh7vxc52r1aslarvs";
   };
 
   postPatch = ''
@@ -45,7 +37,7 @@ buildGoPackage rec {
     rm $out/bin/{deps,macaroon-identity,generate}
 
     wrapProgram $out/bin/lxd --prefix PATH : ${lib.makeBinPath (
-      networkPkgs
+      [ iptables ]
       ++ [ acl rsync gnutar xz btrfs-progs gzip dnsmasq squashfsTools iproute2 bash criu attr ]
       ++ [ (writeShellScriptBin "apparmor_parser" ''
              exec '${apparmor-parser}/bin/apparmor_parser' -I '${apparmor-profiles}/etc/apparmor.d' "$@"
diff --git a/nixpkgs/pkgs/tools/admin/meshcentral/default.nix b/nixpkgs/pkgs/tools/admin/meshcentral/default.nix
index 070d6ef8c211..0b397b541e53 100644
--- a/nixpkgs/pkgs/tools/admin/meshcentral/default.nix
+++ b/nixpkgs/pkgs/tools/admin/meshcentral/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchpatch, fetchzip, yarn2nix-moretea, nodejs, jq, dos2unix }:
 
 yarn2nix-moretea.mkYarnPackage rec {
-  version = "0.8.98";
+  version = "0.9.56";
 
   src = fetchzip {
     url = "https://registry.npmjs.org/meshcentral/-/meshcentral-${version}.tgz";
-    sha256 = "0120csvak07mkgaiq4sxyslcipgfgal0mhd8gwywcij2s71a3n26";
+    sha256 = "0yjl931yfn2cz60gh00wyv5zxzqmw9s0r4nf1friqhxs37055278";
   };
 
   packageJSON = ./package.json;
@@ -28,6 +28,8 @@ yarn2nix-moretea.mkYarnPackage rec {
 
   publishBinsFor = [ ];
 
+  passthru.updateScript = ./update.sh;
+
   meta = with lib; {
     description = "Computer management web app";
     homepage = "https://meshcentral.com/info/";
diff --git a/nixpkgs/pkgs/tools/admin/meshcentral/package.json b/nixpkgs/pkgs/tools/admin/meshcentral/package.json
index 99125c15e10a..7d92ea8606d6 100644
--- a/nixpkgs/pkgs/tools/admin/meshcentral/package.json
+++ b/nixpkgs/pkgs/tools/admin/meshcentral/package.json
@@ -1,6 +1,6 @@
 {
   "name": "meshcentral",
-  "version": "0.8.98",
+  "version": "0.9.56",
   "keywords": [
     "Remote Device Management",
     "Remote Device Monitoring",
@@ -39,19 +39,21 @@
     "body-parser": "^1.19.0",
     "cbor": "~5.2.0",
     "compression": "^1.7.4",
-    "cookie-session": "^2.0.0-beta.3",
+    "cookie-session": "^1.4.0",
     "express": "^4.17.0",
     "express-handlebars": "^3.1.0",
     "express-ws": "^4.0.0",
     "ipcheck": "^0.1.0",
-    "minimist": "^1.2.0",
+    "minimist": "^1.2.5",
     "multiparty": "^4.2.1",
-    "nedb": "^1.8.0",
+    "@yetzt/nedb": "^1.8.0",
     "node-forge": "^0.10.0",
     "ws": "^5.2.3",
-    "xmldom": "^0.5.0",
     "yauzl": "^2.10.0"
   },
+  "engines": {
+    "node": ">=10.0.0"
+  },
   "repository": {
     "type": "git",
     "url": "https://github.com/Ylianst/MeshCentral.git"
@@ -68,10 +70,9 @@
     "passport-saml": "*",
     "ws": "5.2.3",
     "cbor": "5.2.0",
-    "nedb": "*",
+    "@yetzt/nedb": "*",
     "https": "*",
     "yauzl": "*",
-    "xmldom": "*",
     "ipcheck": "*",
     "express": "*",
     "archiver": "4.0.2",
@@ -80,9 +81,9 @@
     "express-ws": "4.0.0",
     "compression": "*",
     "body-parser": "*",
-    "cookie-session": "*",
+    "cookie-session": "1.4.0",
     "express-handlebars": "*",
-    "node-windows": "*",
+    "node-windows": "0.1.4",
     "loadavg-windows": "*",
     "node-sspi": "*",
     "ldapauth-fork": "*",
@@ -93,8 +94,10 @@
     "aedes": "0.39.0",
     "mysql": "*",
     "@mysql/xdevapi": "*",
-    "mongodb": "*",
+    "mongodb": "4.1.0",
     "saslprep": "*",
+    "pg": "8.7.1",
+    "pgtools": "0.3.2",
     "mariadb": "*",
     "node-vault": "*",
     "semver": "*",
@@ -114,6 +117,7 @@
     "otplib": "10.2.3",
     "twilio": "*",
     "plivo": "*",
+    "telnyx": "*",
     "web-push": "*",
     "node-xcs": "*",
     "modern-syslog": "*",
diff --git a/nixpkgs/pkgs/tools/admin/meshcentral/yarn.lock b/nixpkgs/pkgs/tools/admin/meshcentral/yarn.lock
index 6d00c730024e..96e80b306bfd 100644
--- a/nixpkgs/pkgs/tools/admin/meshcentral/yarn.lock
+++ b/nixpkgs/pkgs/tools/admin/meshcentral/yarn.lock
@@ -2,138 +2,138 @@
 # yarn lockfile v1
 
 
-"@babel/code-frame@^7.14.5":
-  version "7.14.5"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb"
-  integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==
+"@babel/code-frame@^7.16.0":
+  version "7.16.0"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431"
+  integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==
   dependencies:
-    "@babel/highlight" "^7.14.5"
+    "@babel/highlight" "^7.16.0"
 
-"@babel/generator@^7.15.0", "@babel/generator@^7.4.0":
-  version "7.15.0"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15"
-  integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==
+"@babel/generator@^7.16.0", "@babel/generator@^7.4.0":
+  version "7.16.0"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2"
+  integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==
   dependencies:
-    "@babel/types" "^7.15.0"
+    "@babel/types" "^7.16.0"
     jsesc "^2.5.1"
     source-map "^0.5.0"
 
-"@babel/helper-function-name@^7.14.5":
-  version "7.14.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4"
-  integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==
+"@babel/helper-function-name@^7.16.0":
+  version "7.16.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481"
+  integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==
   dependencies:
-    "@babel/helper-get-function-arity" "^7.14.5"
-    "@babel/template" "^7.14.5"
-    "@babel/types" "^7.14.5"
+    "@babel/helper-get-function-arity" "^7.16.0"
+    "@babel/template" "^7.16.0"
+    "@babel/types" "^7.16.0"
 
-"@babel/helper-get-function-arity@^7.14.5":
-  version "7.14.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815"
-  integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==
+"@babel/helper-get-function-arity@^7.16.0":
+  version "7.16.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa"
+  integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==
   dependencies:
-    "@babel/types" "^7.14.5"
+    "@babel/types" "^7.16.0"
 
-"@babel/helper-hoist-variables@^7.14.5":
-  version "7.14.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d"
-  integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==
+"@babel/helper-hoist-variables@^7.16.0":
+  version "7.16.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a"
+  integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==
   dependencies:
-    "@babel/types" "^7.14.5"
+    "@babel/types" "^7.16.0"
 
-"@babel/helper-split-export-declaration@^7.14.5":
-  version "7.14.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a"
-  integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==
+"@babel/helper-split-export-declaration@^7.16.0":
+  version "7.16.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438"
+  integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==
   dependencies:
-    "@babel/types" "^7.14.5"
+    "@babel/types" "^7.16.0"
 
-"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9":
-  version "7.14.9"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48"
-  integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==
+"@babel/helper-validator-identifier@^7.15.7":
+  version "7.15.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389"
+  integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==
 
-"@babel/highlight@^7.14.5":
-  version "7.14.5"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
-  integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
+"@babel/highlight@^7.16.0":
+  version "7.16.0"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a"
+  integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==
   dependencies:
-    "@babel/helper-validator-identifier" "^7.14.5"
+    "@babel/helper-validator-identifier" "^7.15.7"
     chalk "^2.0.0"
     js-tokens "^4.0.0"
 
-"@babel/parser@^7.14.5", "@babel/parser@^7.15.0", "@babel/parser@^7.4.3":
-  version "7.15.0"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.0.tgz#b6d6e29058ca369127b0eeca2a1c4b5794f1b6b9"
-  integrity sha512-0v7oNOjr6YT9Z2RAOTv4T9aP+ubfx4Q/OhVtAet7PFDt0t9Oy6Jn+/rfC6b8HJ5zEqrQCiMxJfgtHpmIminmJQ==
+"@babel/parser@^7.16.0", "@babel/parser@^7.16.3", "@babel/parser@^7.4.3":
+  version "7.16.4"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e"
+  integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==
 
-"@babel/template@^7.14.5", "@babel/template@^7.4.0":
-  version "7.14.5"
-  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4"
-  integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==
+"@babel/template@^7.16.0", "@babel/template@^7.4.0":
+  version "7.16.0"
+  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6"
+  integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==
   dependencies:
-    "@babel/code-frame" "^7.14.5"
-    "@babel/parser" "^7.14.5"
-    "@babel/types" "^7.14.5"
+    "@babel/code-frame" "^7.16.0"
+    "@babel/parser" "^7.16.0"
+    "@babel/types" "^7.16.0"
 
 "@babel/traverse@^7.4.3":
-  version "7.15.0"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98"
-  integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==
-  dependencies:
-    "@babel/code-frame" "^7.14.5"
-    "@babel/generator" "^7.15.0"
-    "@babel/helper-function-name" "^7.14.5"
-    "@babel/helper-hoist-variables" "^7.14.5"
-    "@babel/helper-split-export-declaration" "^7.14.5"
-    "@babel/parser" "^7.15.0"
-    "@babel/types" "^7.15.0"
+  version "7.16.3"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787"
+  integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==
+  dependencies:
+    "@babel/code-frame" "^7.16.0"
+    "@babel/generator" "^7.16.0"
+    "@babel/helper-function-name" "^7.16.0"
+    "@babel/helper-hoist-variables" "^7.16.0"
+    "@babel/helper-split-export-declaration" "^7.16.0"
+    "@babel/parser" "^7.16.3"
+    "@babel/types" "^7.16.0"
     debug "^4.1.0"
     globals "^11.1.0"
 
-"@babel/types@^7.14.5", "@babel/types@^7.15.0", "@babel/types@^7.4.0":
-  version "7.15.0"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd"
-  integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==
+"@babel/types@^7.16.0", "@babel/types@^7.4.0":
+  version "7.16.0"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba"
+  integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==
   dependencies:
-    "@babel/helper-validator-identifier" "^7.14.9"
+    "@babel/helper-validator-identifier" "^7.15.7"
     to-fast-properties "^2.0.0"
 
 "@mysql/xdevapi@*":
-  version "8.0.26"
-  resolved "https://registry.yarnpkg.com/@mysql/xdevapi/-/xdevapi-8.0.26.tgz#bdf5752553c53c32d665bfa3034f21fbfa989611"
-  integrity sha512-YiBW91Z4igfUil6y6+kWV2BNlD3JQvBgVjwIfpbuPdOGiPwh/eb6zc1fyFSxa5sY3PmMKc/7v4nhdauwPLyUwA==
+  version "8.0.27"
+  resolved "https://registry.yarnpkg.com/@mysql/xdevapi/-/xdevapi-8.0.27.tgz#1e19335dee89d413c7ffbfd29340a92930d2e9c6"
+  integrity sha512-8CVaCDxqXp6qDizxlO/GYPWv2NsYnXXPQygDHFH2rkow2Pi6zlYF7k+mIeRkH4KLZZQ+HZCfjJQkKB1kN5zTzg==
   dependencies:
     google-protobuf "3.14.0"
     parsimmon "1.16.0"
 
-"@sendgrid/client@^7.4.3":
-  version "7.4.3"
-  resolved "https://registry.yarnpkg.com/@sendgrid/client/-/client-7.4.3.tgz#bc71aae05de2cd9aa607f4eb1d886711d09f9595"
-  integrity sha512-tTaHx893w5iqG0sVtUnMyRchuwYF95k4UOkmov1MouMIeMUbNvbalITo7cG7YSXUTY9rT2t4eBY6HcEBCVeqfg==
+"@sendgrid/client@^7.6.0":
+  version "7.6.0"
+  resolved "https://registry.yarnpkg.com/@sendgrid/client/-/client-7.6.0.tgz#f90cb8759c96e1d90224f29ad98f8fdc2be287f3"
+  integrity sha512-cpBVZKLlMTO+vpE18krTixubYmZa98oTbLkqBDuTiA3zRkW+urrxg7pDR24TkI35Mid0Zru8jDHwnOiqrXu0TA==
   dependencies:
-    "@sendgrid/helpers" "^7.4.3"
-    axios "^0.21.1"
+    "@sendgrid/helpers" "^7.6.0"
+    axios "^0.21.4"
 
-"@sendgrid/helpers@^7.4.3":
-  version "7.4.3"
-  resolved "https://registry.yarnpkg.com/@sendgrid/helpers/-/helpers-7.4.3.tgz#231a4405266cfa291054df8b668fe3a4dc9387aa"
-  integrity sha512-Wt+68g1sVEM5UspJh34O/cxtv6BBbtAIk7U9B3PB2ySOtPs9e6hI1QkgYVwpNmkt7k2p86muUNyma/Aig25agg==
+"@sendgrid/helpers@^7.6.0":
+  version "7.6.0"
+  resolved "https://registry.yarnpkg.com/@sendgrid/helpers/-/helpers-7.6.0.tgz#b381bfab391bcd66c771811b22bb6bb2d5c1dfc6"
+  integrity sha512-0uWD+HSXLl4Z/X3cN+UMQC20RE7xwAACgppnfjDyvKG0KvJcUgDGz7HDdQkiMUdcVWfmyk6zKSg7XKfKzBjTwA==
   dependencies:
     deepmerge "^4.2.2"
 
 "@sendgrid/mail@*":
-  version "7.4.5"
-  resolved "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-7.4.5.tgz#22cef36e793134833b36aff5d3f4f53e8f81dd52"
-  integrity sha512-adXMvrTUOlYr7+UTigZRGSYR9vheBv1y4fF2mugn29NBdQMfcQPGLQ5vIHgSAfcboBFCagZdamZqM5FeSGU0Hw==
+  version "7.6.0"
+  resolved "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-7.6.0.tgz#e74ee30110527feab5d3b83d68af0cd94537f6d2"
+  integrity sha512-0KdaSZzflJD/vUAZjB3ALBIuaVGoLq22hrb2fvQXZHRepU/yhRNlEOqrr05MfKBnKskzq1blnD1J0fHxiwaolw==
   dependencies:
-    "@sendgrid/client" "^7.4.3"
-    "@sendgrid/helpers" "^7.4.3"
+    "@sendgrid/client" "^7.6.0"
+    "@sendgrid/helpers" "^7.6.0"
 
-"@tootallnate/once@1":
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
-  integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
+"@tootallnate/once@2":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
+  integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
 
 "@types/geojson@^7946.0.7":
   version "7946.0.8"
@@ -148,14 +148,14 @@
     "@types/node" "*"
 
 "@types/node@*":
-  version "16.4.13"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-16.4.13.tgz#7dfd9c14661edc65cccd43a29eb454174642370d"
-  integrity sha512-bLL69sKtd25w7p1nvg9pigE4gtKVpGTPojBFLMkGHXuUgap2sLqQt2qUnqmVCDfzGUL0DRNZP+1prIZJbMeAXg==
+  version "16.11.11"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz#6ea7342dfb379ea1210835bada87b3c512120234"
+  integrity sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==
 
 "@types/node@^14.14.14", "@types/node@^14.14.28":
-  version "14.17.9"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.9.tgz#b97c057e6138adb7b720df2bd0264b03c9f504fd"
-  integrity sha512-CMjgRNsks27IDwI785YMY0KLt3co/c0cQ5foxHYv/shC2w8oOnVwz5Ubq1QG5KzrcW+AXk6gzdnxIkDnTvzu3g==
+  version "14.18.0"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.0.tgz#98df2397f6936bfbff4f089e40e06fa5dd88d32a"
+  integrity sha512-0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ==
 
 "@types/webidl-conversions@*":
   version "6.1.1"
@@ -170,6 +170,11 @@
     "@types/node" "*"
     "@types/webidl-conversions" "*"
 
+"@xmldom/xmldom@^0.7.0", "@xmldom/xmldom@^0.7.5":
+  version "0.7.5"
+  resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.5.tgz#09fa51e356d07d0be200642b0e4f91d8e6dd408d"
+  integrity sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==
+
 "@xmpp/base64@^0.9.0":
   version "0.9.0"
   resolved "https://registry.yarnpkg.com/@xmpp/base64/-/base64-0.9.0.tgz#f5914c2b7228d833020af991a2a207267fc8fcf4"
@@ -380,6 +385,22 @@
   dependencies:
     ltx "^2.8.1"
 
+"@yetzt/binary-search-tree@^0.2.6":
+  version "0.2.6"
+  resolved "https://registry.yarnpkg.com/@yetzt/binary-search-tree/-/binary-search-tree-0.2.6.tgz#91b2d861c089da0bfbeceb5deeca57b81c4210ec"
+  integrity sha512-e/8wt8AAumI8VK5sv09b3IgWuRoblXJ5z0SQYfrL2nap89oKihvVaP1zy3FzD5NaeRi1X0gdXZA9lB3QAZILBg==
+
+"@yetzt/nedb@^1.8.0":
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/@yetzt/nedb/-/nedb-1.8.0.tgz#c0e03bfd5f9e76045d4e4baacbebd271cb221258"
+  integrity sha512-1hUV/eIPSCRb4Vs9dgLekBCCawWNtf29immIF9kvzxnnnEoWgyFSDZgFvlFCiQ3Bzo8ifXn92HDS3l9fNvmtzA==
+  dependencies:
+    "@yetzt/binary-search-tree" "^0.2.6"
+    async "^3.2.0"
+    localforage "^1.9.0"
+    mkdirp "^1.0.4"
+    underscore "^1.13.1"
+
 abab@^2.0.3, abab@^2.0.5:
   version "2.0.5"
   resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
@@ -451,10 +472,10 @@ acorn@^7.1.1:
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
   integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
 
-acorn@^8.2.4:
-  version "8.4.1"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c"
-  integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==
+acorn@^8.5.0:
+  version "8.6.0"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895"
+  integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==
 
 aedes-packet@^1.0.0:
   version "1.0.0"
@@ -766,9 +787,9 @@ asn1.js@^5.3.0:
     safer-buffer "^2.1.0"
 
 asn1@^0.2.4, asn1@~0.2.3:
-  version "0.2.4"
-  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
-  integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
+  version "0.2.6"
+  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
+  integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==
   dependencies:
     safer-buffer "~2.1.0"
 
@@ -792,11 +813,6 @@ async-limiter@~1.0.0:
   resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
   integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
 
-async@0.2.10:
-  version "0.2.10"
-  resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
-  integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E=
-
 async@^2.0.1:
   version "2.6.3"
   resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
@@ -805,9 +821,9 @@ async@^2.0.1:
     lodash "^4.17.14"
 
 async@^3.2.0, async@~3.2.0:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz#d3274ec66d107a47476a4c49136aacdb00665fc8"
-  integrity sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz#2eb7671034bb2194d45d30e31e24ec7e7f9670cd"
+  integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==
 
 asynckit@^0.4.0:
   version "0.4.0"
@@ -829,13 +845,20 @@ aws4@^1.8.0:
   resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
   integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
 
-axios@0.21.1, axios@^0.21.1:
+axios@0.21.1:
   version "0.21.1"
   resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
   integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==
   dependencies:
     follow-redirects "^1.10.0"
 
+axios@^0.21.1, axios@^0.21.4:
+  version "0.21.4"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
+  integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
+  dependencies:
+    follow-redirects "^1.14.0"
+
 babel-cli@^6.16.0:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1"
@@ -1387,13 +1410,6 @@ binary-extensions@^1.0.0:
   resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
   integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
 
-binary-search-tree@0.2.5:
-  version "0.2.5"
-  resolved "https://registry.yarnpkg.com/binary-search-tree/-/binary-search-tree-0.2.5.tgz#7dbb3b210fdca082450dad2334c304af39bdc784"
-  integrity sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=
-  dependencies:
-    underscore "~1.4.4"
-
 binary-search@1.3.6:
   version "1.3.6"
   resolved "https://registry.yarnpkg.com/binary-search/-/binary-search-1.3.6.tgz#e32426016a0c5092f0f3598836a1c7da3560565c"
@@ -1428,7 +1444,7 @@ bl@^4.0.2, bl@^4.0.3:
     inherits "^2.0.4"
     readable-stream "^3.4.0"
 
-bluebird@^3.5.0:
+bluebird@^3.3.5, bluebird@^3.5.0:
   version "3.7.2"
   resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
   integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
@@ -1510,9 +1526,9 @@ bson@^1.1.4:
   integrity sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==
 
 bson@^4.4.0:
-  version "4.4.1"
-  resolved "https://registry.yarnpkg.com/bson/-/bson-4.4.1.tgz#682c3cb8b90b222414ce14ef8398154ba2cc21bc"
-  integrity sha512-Uu4OCZa0jouQJCKOk1EmmyqtdWAP5HVLru4lQxTwzJzxT+sJ13lVpEZU/MATDxtHiekWMAL84oQY3Xn1LpJVSg==
+  version "4.6.0"
+  resolved "https://registry.yarnpkg.com/bson/-/bson-4.6.0.tgz#15c3b39ba3940c3d915a0c44d51459f4b4fbf1b2"
+  integrity sha512-8jw1NU1hglS+Da1jDOUYuNcBJ4cNHCFIqzlwoFNnsTOg2R/ox0aTYcTiBN4dzRa9q7Cvy6XErh3L8ReTEb9AQQ==
   dependencies:
     buffer "^5.6.0"
 
@@ -1526,6 +1542,11 @@ buffer-equal-constant-time@1.0.1:
   resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
   integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
 
+buffer-writer@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04"
+  integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==
+
 buffer@^5.1.0, buffer@^5.5.0, buffer@^5.6.0:
   version "5.7.1"
   resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
@@ -1624,6 +1645,11 @@ camelcase@^1.0.2:
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
   integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=
 
+camelcase@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
+  integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo=
+
 camelcase@^5.0.0:
   version "5.3.1"
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
@@ -1725,9 +1751,9 @@ class-utils@^0.3.5:
     static-extend "^0.1.1"
 
 clean-css@^4.2.1:
-  version "4.2.3"
-  resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
-  integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==
+  version "4.2.4"
+  resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178"
+  integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==
   dependencies:
     source-map "~0.6.0"
 
@@ -1750,6 +1776,15 @@ cliui@^2.1.0:
     right-align "^0.1.1"
     wordwrap "0.0.2"
 
+cliui@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
+  integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=
+  dependencies:
+    string-width "^1.0.1"
+    strip-ansi "^3.0.1"
+    wrap-ansi "^2.0.0"
+
 cliui@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
@@ -1759,6 +1794,11 @@ cliui@^5.0.0:
     strip-ansi "^5.2.0"
     wrap-ansi "^5.1.0"
 
+code-point-at@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+  integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
+
 collect-all@^1.0.2, collect-all@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/collect-all/-/collect-all-1.0.4.tgz#50cd7119ac24b8e12a661f0f8c3aa0ea7222ddfc"
@@ -2011,15 +2051,14 @@ convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0:
   dependencies:
     safe-buffer "~5.1.1"
 
-cookie-session@^2.0.0-beta.3:
-  version "2.0.0-rc.1"
-  resolved "https://registry.yarnpkg.com/cookie-session/-/cookie-session-2.0.0-rc.1.tgz#66fa03f26e5873d681d70f14bff5e48a94c53d37"
-  integrity sha512-zg80EsLe7S1J4y0XxV7SZ8Fbi90ZZoampuX2bfYDOvJfc//98sSlZC41YDzTTjtVbeU1VlVdBbldXOOyi5xzEw==
+cookie-session@1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/cookie-session/-/cookie-session-1.4.0.tgz#c325aea685ceb9c8e4fd00b0313a46d547747380"
+  integrity sha512-0hhwD+BUIwMXQraiZP/J7VP2YFzqo6g4WqZlWHtEHQ22t0MeZZrNBSCxC1zcaLAs8ApT3BzAKizx9gW/AP9vNA==
   dependencies:
     cookies "0.8.0"
-    debug "3.2.6"
+    debug "2.6.9"
     on-headers "~1.0.2"
-    safe-buffer "5.2.0"
 
 cookie-signature@1.0.6:
   version "1.0.6"
@@ -2049,11 +2088,16 @@ core-js@^2.0.1, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0:
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
   integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
 
-core-util-is@1.0.2, core-util-is@~1.0.0:
+core-util-is@1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
   integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
 
+core-util-is@~1.0.0:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
+  integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+
 cp-file@^6.2.0:
   version "6.2.0"
   resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-6.2.0.tgz#40d5ea4a1def2a9acdd07ba5c0b0246ef73dc10d"
@@ -2139,10 +2183,10 @@ crypt@0.0.2:
   resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
   integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=
 
-cssom@^0.4.4:
-  version "0.4.4"
-  resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
-  integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==
+cssom@^0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36"
+  integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==
 
 cssom@~0.3.6:
   version "0.3.8"
@@ -2163,14 +2207,14 @@ dashdash@^1.12.0:
   dependencies:
     assert-plus "^1.0.0"
 
-data-urls@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b"
-  integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==
+data-urls@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.1.tgz#597fc2ae30f8bc4dbcf731fcd1b1954353afc6f8"
+  integrity sha512-Ds554NeT5Gennfoo9KN50Vh6tpgtvYEwraYjejXnyTpu1C7oXKxdFk75REooENHE8ndTVOJuv+BEs4/J/xcozw==
   dependencies:
     abab "^2.0.3"
-    whatwg-mimetype "^2.3.0"
-    whatwg-url "^8.0.0"
+    whatwg-mimetype "^3.0.0"
+    whatwg-url "^10.0.0"
 
 dateformat@~3.0.3:
   version "3.0.3"
@@ -2178,9 +2222,9 @@ dateformat@~3.0.3:
   integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
 
 dayjs@^1.8.29:
-  version "1.10.6"
-  resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.6.tgz#288b2aa82f2d8418a6c9d4df5898c0737ad02a63"
-  integrity sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw==
+  version "1.10.7"
+  resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468"
+  integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==
 
 ddata@~0.1.25:
   version "0.1.28"
@@ -2210,26 +2254,19 @@ debug@3.1.0:
   dependencies:
     ms "2.0.0"
 
-debug@3.2.6:
-  version "3.2.6"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
-  integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
-  dependencies:
-    ms "^2.1.1"
-
-debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
-  version "4.3.2"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
-  integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
+debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2:
+  version "4.3.3"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
+  integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
   dependencies:
     ms "2.1.2"
 
-decamelize@^1.0.0, decamelize@^1.2.0:
+decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
   integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
 
-decimal.js@^10.2.1:
+decimal.js@^10.3.1:
   version "10.3.1"
   resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783"
   integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==
@@ -2245,9 +2282,9 @@ deep-extend@~0.4.1:
   integrity sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=
 
 deep-is@~0.1.3:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
-  integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+  integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
 
 deepmerge@^4.2.2:
   version "4.2.2"
@@ -2301,9 +2338,9 @@ delayed-stream@~1.0.0:
   integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
 
 denque@^1.4.1, denque@^1.5.0:
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.0.tgz#773de0686ff2d8ec2ff92914316a47b73b1c73de"
-  integrity sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.1.tgz#07f670e29c9a78f8faecb2566a1e2c11929c5cbf"
+  integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==
 
 depd@~1.1.2:
   version "1.1.2"
@@ -2363,12 +2400,12 @@ dmd@^1.4.1:
     string-tools "^1.0.0"
     walk-back "^2.0.1"
 
-domexception@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304"
-  integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==
+domexception@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673"
+  integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==
   dependencies:
-    webidl-conversions "^5.0.0"
+    webidl-conversions "^7.0.0"
 
 dtrace-provider@~0.8:
   version "0.8.8"
@@ -2419,7 +2456,7 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1:
   dependencies:
     once "^1.4.0"
 
-error-ex@^1.3.1:
+error-ex@^1.2.0, error-ex@^1.3.1:
   version "1.3.2"
   resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
   integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
@@ -2467,9 +2504,9 @@ esprima@*, esprima@^4.0.0, esprima@^4.0.1:
   integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
 
 estraverse@^5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
-  integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+  integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
 
 esutils@^2.0.2:
   version "2.0.3"
@@ -2641,9 +2678,9 @@ extsprintf@1.3.0:
   integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
 
 extsprintf@^1.2.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
-  integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
+  integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
 
 fast-deep-equal@^3.1.1:
   version "3.1.3"
@@ -2666,9 +2703,11 @@ fast-text-encoding@^1.0.0:
   integrity sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==
 
 fast-xml-parser@^3.19.0:
-  version "3.19.0"
-  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz#cb637ec3f3999f51406dd8ff0e6fc4d83e520d01"
-  integrity sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==
+  version "3.21.1"
+  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz#152a1d51d445380f7046b304672dd55d15c9e736"
+  integrity sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==
+  dependencies:
+    strnum "^1.0.4"
 
 fastfall@^1.5.1:
   version "1.5.1"
@@ -2678,9 +2717,9 @@ fastfall@^1.5.1:
     reusify "^1.0.0"
 
 fastparallel@^2.3.0:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/fastparallel/-/fastparallel-2.4.0.tgz#65fbec1a5e5902494be772cf5765cbaaece08688"
-  integrity sha512-sacwQ7wwKlQXsa7TN24UvMBLZNLmVcPhmxccC9riFqb3N+fSczJL8eWdnZodZ/KijGVgNBBfvF/NeXER08uXnQ==
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/fastparallel/-/fastparallel-2.4.1.tgz#0d984a5813ffa67f30b4a5cb4cb8cbe61c7ee5a5"
+  integrity sha512-qUmhxPgNHmvRjZKBFUNI0oZuuH9OlSIOXmJ98lhKPxMZZ7zS/Fi0wRHOihDSz0R1YiIOjxzOY4bq65YTcdBi2Q==
   dependencies:
     reusify "^1.0.4"
     xtend "^4.0.2"
@@ -2798,6 +2837,14 @@ find-replace@^1, find-replace@^1.0.2:
     array-back "^1.0.4"
     test-value "^2.1.0"
 
+find-up@^1.0.0:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+  integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=
+  dependencies:
+    path-exists "^2.0.0"
+    pinkie-promise "^2.0.0"
+
 find-up@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
@@ -2838,10 +2885,10 @@ flagged-respawn@^1.0.1:
   resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41"
   integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==
 
-follow-redirects@^1.10.0:
-  version "1.14.1"
-  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43"
-  integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==
+follow-redirects@^1.10.0, follow-redirects@^1.14.0:
+  version "1.14.5"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.5.tgz#f09a5848981d3c772b5392309778523f8d85c381"
+  integrity sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==
 
 for-in@^1.0.1, for-in@^1.0.2:
   version "1.0.2"
@@ -2875,15 +2922,6 @@ forever-agent@~0.6.1:
   resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
   integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
 
-form-data@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
-  integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
-  dependencies:
-    asynckit "^0.4.0"
-    combined-stream "^1.0.8"
-    mime-types "^2.1.12"
-
 form-data@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
@@ -2963,24 +3001,29 @@ function-bind@^1.1.1:
   integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
 
 gaxios@^4.0.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.0.tgz#ad4814d89061f85b97ef52aed888c5dbec32f774"
-  integrity sha512-pHplNbslpwCLMyII/lHPWFQbJWOX0B3R1hwBEOvzYi1GmdKZruuEHK4N9V6f7tf1EaPYyF80mui1+344p6SmLg==
+  version "4.3.2"
+  resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.2.tgz#845827c2dc25a0213c8ab4155c7a28910f5be83f"
+  integrity sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==
   dependencies:
     abort-controller "^3.0.0"
     extend "^3.0.2"
     https-proxy-agent "^5.0.0"
     is-stream "^2.0.0"
-    node-fetch "^2.3.0"
+    node-fetch "^2.6.1"
 
 gcp-metadata@^4.2.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.3.0.tgz#0423d06becdbfb9cbb8762eaacf14d5324997900"
-  integrity sha512-L9XQUpvKJCM76YRSmcxrR4mFPzPGsgZUH+GgHMxAET8qc6+BhRJq63RLhWakgEO2KKVgeSDVfyiNjkGSADwNTA==
+  version "4.3.1"
+  resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.3.1.tgz#fb205fe6a90fef2fd9c85e6ba06e5559ee1eefa9"
+  integrity sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==
   dependencies:
     gaxios "^4.0.0"
     json-bigint "^1.0.0"
 
+get-caller-file@^1.0.1:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
+  integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
+
 get-caller-file@^2.0.1:
   version "2.0.5"
   resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
@@ -3001,9 +3044,9 @@ get-value@^2.0.3, get-value@^2.0.6:
   integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
 
 getobject@~1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/getobject/-/getobject-1.0.1.tgz#17d86a05913c15d173a5bcf8662dc7c7ac5ce147"
-  integrity sha512-tj18lLe+917AACr6BdVoUuHnBPTVd9BEJp1vxnMZ58ztNvuxz9Ufa+wf3g37tlGITH35jggwZ2d9lcgHJJgXfQ==
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/getobject/-/getobject-1.0.2.tgz#25ec87a50370f6dcc3c6ba7ef43c4c16215c4c89"
+  integrity sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==
 
 getpass@^0.1.1:
   version "0.1.7"
@@ -3048,10 +3091,10 @@ glob@^6.0.1:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
-glob@^7.1.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.6:
-  version "7.1.7"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
-  integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
+glob@^7.1.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
+  integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
   dependencies:
     fs.realpath "^1.0.0"
     inflight "^1.0.4"
@@ -3071,6 +3114,18 @@ glob@~5.0.0:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
+glob@~7.1.6:
+  version "7.1.7"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
+  integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
+  dependencies:
+    fs.realpath "^1.0.0"
+    inflight "^1.0.4"
+    inherits "2"
+    minimatch "^3.0.4"
+    once "^1.3.0"
+    path-is-absolute "^1.0.0"
+
 global-modules@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
@@ -3102,9 +3157,9 @@ globals@^9.18.0:
   integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
 
 google-auth-library@^7.0.2:
-  version "7.5.0"
-  resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.5.0.tgz#6b0a623dfb4ee7a8d93a0d25455031d1baf86181"
-  integrity sha512-iRMwc060kiA6ncZbAoQN90nlwT8jiHVmippofpMgo4YFEyRBaPouyM7+ZB742wKetByyy+TahshVRTx0tEyXGQ==
+  version "7.10.3"
+  resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.10.3.tgz#e553683315b3095eebef3a8c019c09446cb75a3c"
+  integrity sha512-VBwUCrjR+/p/J4ifSZRXG0XEc3Cm+2xnFrJi3A9DC2GzbCUK5j+R6CfqS7jyu1Hureb1PV53ZXZS1QV9PYUCrw==
   dependencies:
     arrify "^2.0.0"
     base64-js "^1.3.0"
@@ -3117,9 +3172,9 @@ google-auth-library@^7.0.2:
     lru-cache "^6.0.0"
 
 google-p12-pem@^3.0.3:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.1.tgz#98fb717b722d12196a3e5b550c44517562269859"
-  integrity sha512-e9CwdD2QYkpvJsktki3Bm8P8FSGIneF+/42a9F9QHcQvJ73C2RoYZdrwRl6BhwksWtzl65gT4OnBROhUIFw95Q==
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.2.tgz#c3d61c2da8e10843ff830fdb0d2059046238c1d4"
+  integrity sha512-tjf3IQIt7tWCDsa0ofDQ1qqSCNzahXDxdAGJDbruWqu3eCg5CKLYKN+hi0s6lfvzYZ1GDVr+oDF9OOWlDSdf0A==
   dependencies:
     node-forge "^0.10.0"
 
@@ -3129,9 +3184,9 @@ google-protobuf@3.14.0:
   integrity sha512-bwa8dBuMpOxg7COyqkW6muQuvNnWgVN8TX/epDRGW5m0jcrmq2QJyCyiV8ZE2/6LaIIqJtiv9bYokFhfpy/o6w==
 
 googleapis-common@^5.0.2:
-  version "5.0.4"
-  resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-5.0.4.tgz#d47ba164dce40ff32f35319e56d1d67209ae25c3"
-  integrity sha512-clr6NSAoIeTrQ/ESl/OmH4uuvPUq4XgiyPAnTIrItOWyM/YKYsXgzpPNkmP6D6LNd/UoTnymcyLNuMPh0ibzXg==
+  version "5.0.5"
+  resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-5.0.5.tgz#4c7160be1ed7e4cc8cdbcdb6eac8a4b3a61dd782"
+  integrity sha512-o2dgoW4x4fLIAN+IVAOccz3mEH8Lj1LP9c9BSSvkNJEn+U7UZh0WSr4fdH08x5VH7+sstIpd1lOYFZD0g7j4pw==
   dependencies:
     extend "^3.0.2"
     gaxios "^4.0.0"
@@ -3141,9 +3196,9 @@ googleapis-common@^5.0.2:
     uuid "^8.0.0"
 
 googleapis@*:
-  version "83.0.0"
-  resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-83.0.0.tgz#045399fe8403d8516add6aa90802dda604fcfe20"
-  integrity sha512-/xzWnSPfZC6jwoq4bY8gMauGHF2kIbWZJ6bPgMUzI4zUGAhGD7YttHtbZX6Vz/eYIviYaQtL7HIvw5Jnei/TzA==
+  version "92.0.0"
+  resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-92.0.0.tgz#291b9826a5a4509a9e9a6974ef942328857bfe18"
+  integrity sha512-5HgJg7XvqEEJ+GO+2gvnzd5cAcDuSS/VB6nW7thoyj2GMq9nH4VvJwncSevinjLCnv06a+VSxrXNiL5vePHojA==
   dependencies:
     google-auth-library "^7.0.2"
     googleapis-common "^5.0.2"
@@ -3229,9 +3284,9 @@ grunt@^1.0.1:
     rimraf "~3.0.2"
 
 gtoken@^5.0.4:
-  version "5.3.0"
-  resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.0.tgz#6536eb2880d9829f0b9d78f756795d4d9064b217"
-  integrity sha512-mCcISYiaRZrJpfqOs0QWa6lfEM/C1V9ASkzFmuz43XBb5s1Vynh+CZy1ECeeJXVGx2PRByjYzb4Y4/zr1byr0w==
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.1.tgz#c1c2598a826f2b5df7c6bb53d7be6cf6d50c3c78"
+  integrity sha512-yqOREjzLHcbzz1UrQoxhBtpk8KjrVhuqPE7od1K2uhyxG2BHjKZetlbLw/SPZak/QqTIQW+addS+EcjqQsZbwQ==
   dependencies:
     gaxios "^4.0.0"
     google-p12-pem "^3.0.3"
@@ -3427,12 +3482,12 @@ hot-patcher@^0.5.0:
   resolved "https://registry.yarnpkg.com/hot-patcher/-/hot-patcher-0.5.0.tgz#9d401424585aaf3a91646b816ceff40eb6a916b9"
   integrity sha512-2Uu2W0s8+dnqXzdlg0MRsRzPoDCs1wVjOGSyMRRaMzLDX4bgHw6xDYKccsWafXPPxQpkQfEjgW6+17pwcg60bw==
 
-html-encoding-sniffer@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3"
-  integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==
+html-encoding-sniffer@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9"
+  integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==
   dependencies:
-    whatwg-encoding "^1.0.5"
+    whatwg-encoding "^2.0.0"
 
 html-escaper@^2.0.0:
   version "2.0.2"
@@ -3475,22 +3530,22 @@ http-errors@~1.7.2:
     toidentifier "1.0.0"
 
 http-errors@~1.8.0:
-  version "1.8.0"
-  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507"
-  integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==
+  version "1.8.1"
+  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c"
+  integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==
   dependencies:
     depd "~1.1.2"
     inherits "2.0.4"
     setprototypeof "1.2.0"
     statuses ">= 1.5.0 < 2"
-    toidentifier "1.0.0"
+    toidentifier "1.0.1"
 
-http-proxy-agent@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a"
-  integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==
+http-proxy-agent@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
+  integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
   dependencies:
-    "@tootallnate/once" "1"
+    "@tootallnate/once" "2"
     agent-base "6"
     debug "4"
 
@@ -3530,7 +3585,7 @@ iconv-lite@0.4.24, iconv-lite@~0.4.13:
   dependencies:
     safer-buffer ">= 2.1.2 < 3"
 
-iconv-lite@^0.6.3:
+iconv-lite@0.6.3, iconv-lite@^0.6.3:
   version "0.6.3"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
   integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
@@ -3594,6 +3649,11 @@ invariant@^2.2.2:
   dependencies:
     loose-envify "^1.0.0"
 
+invert-kv@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+  integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
+
 ipaddr.js@1.9.1:
   version "1.9.1"
   resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
@@ -3644,9 +3704,9 @@ is-buffer@^1.1.5, is-buffer@~1.1.6:
   integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
 
 is-core-module@^2.2.0:
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491"
-  integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==
+  version "2.8.0"
+  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548"
+  integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==
   dependencies:
     has "^1.0.3"
 
@@ -3721,6 +3781,13 @@ is-finite@^1.0.0:
   resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3"
   integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==
 
+is-fullwidth-code-point@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+  integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
+  dependencies:
+    number-is-nan "^1.0.0"
+
 is-fullwidth-code-point@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
@@ -3734,9 +3801,9 @@ is-glob@^2.0.0, is-glob@^2.0.1:
     is-extglob "^1.0.0"
 
 is-glob@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
-  integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+  integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
   dependencies:
     is-extglob "^2.1.1"
 
@@ -3815,6 +3882,11 @@ is-unc-path@^1.0.0:
   dependencies:
     unc-path-regex "^0.1.2"
 
+is-utf8@^0.2.0:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
+  integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
+
 is-windows@^1.0.1, is-windows@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
@@ -4005,22 +4077,22 @@ jsdoc2md-stats@^1.0.3:
     feature-detect-es6 "^1.3.1"
 
 jsdom@*:
-  version "16.7.0"
-  resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710"
-  integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==
+  version "19.0.0"
+  resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-19.0.0.tgz#93e67c149fe26816d38a849ea30ac93677e16b6a"
+  integrity sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==
   dependencies:
     abab "^2.0.5"
-    acorn "^8.2.4"
+    acorn "^8.5.0"
     acorn-globals "^6.0.0"
-    cssom "^0.4.4"
+    cssom "^0.5.0"
     cssstyle "^2.3.0"
-    data-urls "^2.0.0"
-    decimal.js "^10.2.1"
-    domexception "^2.0.1"
+    data-urls "^3.0.1"
+    decimal.js "^10.3.1"
+    domexception "^4.0.0"
     escodegen "^2.0.0"
-    form-data "^3.0.0"
-    html-encoding-sniffer "^2.0.1"
-    http-proxy-agent "^4.0.1"
+    form-data "^4.0.0"
+    html-encoding-sniffer "^3.0.0"
+    http-proxy-agent "^5.0.0"
     https-proxy-agent "^5.0.0"
     is-potential-custom-element-name "^1.0.1"
     nwsapi "^2.2.0"
@@ -4029,13 +4101,13 @@ jsdom@*:
     symbol-tree "^3.2.4"
     tough-cookie "^4.0.0"
     w3c-hr-time "^1.0.2"
-    w3c-xmlserializer "^2.0.0"
-    webidl-conversions "^6.1.0"
-    whatwg-encoding "^1.0.5"
-    whatwg-mimetype "^2.3.0"
-    whatwg-url "^8.5.0"
-    ws "^7.4.6"
-    xml-name-validator "^3.0.0"
+    w3c-xmlserializer "^3.0.0"
+    webidl-conversions "^7.0.0"
+    whatwg-encoding "^2.0.0"
+    whatwg-mimetype "^3.0.0"
+    whatwg-url "^10.0.0"
+    ws "^8.2.3"
+    xml-name-validator "^4.0.0"
 
 jsesc@^1.3.0:
   version "1.3.0"
@@ -4069,10 +4141,10 @@ json-schema-traverse@^0.4.1:
   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
   integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
 
-json-schema@0.2.3:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
-  integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
+json-schema@0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
+  integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
 
 json-stringify-safe@~5.0.1:
   version "5.0.1"
@@ -4101,13 +4173,13 @@ jsonwebtoken@^8.5.1:
     semver "^5.6.0"
 
 jsprim@^1.2.2:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
-  integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
+  version "1.4.2"
+  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb"
+  integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==
   dependencies:
     assert-plus "1.0.0"
     extsprintf "1.3.0"
-    json-schema "0.2.3"
+    json-schema "0.4.0"
     verror "1.10.0"
 
 jwa@^1.4.1:
@@ -4203,12 +4275,19 @@ lazy-cache@^1.0.3:
   integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4=
 
 lazystream@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
-  integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638"
+  integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==
   dependencies:
     readable-stream "^2.0.5"
 
+lcid@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
+  integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
+  dependencies:
+    invert-kv "^1.0.0"
+
 ldap-filter@^0.3.3:
   version "0.3.3"
   resolved "https://registry.yarnpkg.com/ldap-filter/-/ldap-filter-0.3.3.tgz#2b14c68a2a9d4104dbdbc910a1ca85fd189e9797"
@@ -4269,6 +4348,17 @@ liftup@~3.0.1:
     rechoir "^0.7.0"
     resolve "^1.19.0"
 
+load-json-file@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
+  integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=
+  dependencies:
+    graceful-fs "^4.1.2"
+    parse-json "^2.2.0"
+    pify "^2.0.0"
+    pinkie-promise "^2.0.0"
+    strip-bom "^2.0.0"
+
 load-json-file@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
@@ -4286,10 +4376,10 @@ loadavg-windows@*:
   dependencies:
     weak-daemon "1.0.3"
 
-localforage@^1.3.0:
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.9.0.tgz#f3e4d32a8300b362b4634cc4e066d9d00d2f09d1"
-  integrity sha512-rR1oyNrKulpe+VM9cYmcFn6tsHuokyVHFaCM3+osEmxaHTbEk8oQu6eGDfS6DQLWi/N67XRmB8ECG37OES368g==
+localforage@^1.9.0:
+  version "1.10.0"
+  resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.10.0.tgz#5c465dc5f62b2807c3a84c0c6a1b1b3212781dd4"
+  integrity sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==
   dependencies:
     lie "3.1.1"
 
@@ -4301,6 +4391,11 @@ locate-path@^3.0.0:
     p-locate "^3.0.0"
     path-exists "^3.0.0"
 
+lodash.assign@^4.1.0, lodash.assign@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
+  integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=
+
 lodash.defaults@^4.2.0:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
@@ -4443,9 +4538,9 @@ map-visit@^1.0.0:
     object-visit "^1.0.0"
 
 mariadb@*:
-  version "2.5.4"
-  resolved "https://registry.yarnpkg.com/mariadb/-/mariadb-2.5.4.tgz#c66daa35e2768b8c714c758453531c06ae4927f4"
-  integrity sha512-4vQgMRyBIN9EwSQG0vzjR9D8bscPH0dGPJt67qVlOkHSiSm0xUatg1Pft4o1LzORgeOW4PheiY/HBE9bYYmNCA==
+  version "2.5.5"
+  resolved "https://registry.yarnpkg.com/mariadb/-/mariadb-2.5.5.tgz#a9aff9f1e57231a415a21254489439beb501c803"
+  integrity sha512-6dklvcKWuuaV1JjAwnE2ezR+jTt7JrZHftgeHHBmjB0wgfaUpdxol1DPWclwMcCrsO9yoM0FuCOiCcCgXc//9Q==
   dependencies:
     "@types/geojson" "^7946.0.7"
     "@types/node" "^14.14.28"
@@ -4556,17 +4651,17 @@ micromatch@^4.0.2:
     braces "^3.0.1"
     picomatch "^2.2.3"
 
-mime-db@1.49.0, "mime-db@>= 1.43.0 < 2":
-  version "1.49.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed"
-  integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==
+mime-db@1.51.0, "mime-db@>= 1.43.0 < 2":
+  version "1.51.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c"
+  integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==
 
 mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24:
-  version "2.1.32"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5"
-  integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==
+  version "2.1.34"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24"
+  integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==
   dependencies:
-    mime-db "1.49.0"
+    mime-db "1.51.0"
 
 mime@1.6.0:
   version "1.6.0"
@@ -4614,7 +4709,7 @@ minimatch@^2.0.1:
   dependencies:
     brace-expansion "^1.0.0"
 
-minimist@^1.2.0, minimist@^1.2.5:
+minimist@^1.2.5:
   version "1.2.5"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
@@ -4644,7 +4739,7 @@ mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1:
   dependencies:
     minimist "^1.2.5"
 
-mkdirp@~1.0.4:
+mkdirp@^1.0.4, mkdirp@~1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
   integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
@@ -4657,9 +4752,9 @@ modern-syslog@*:
     nan "^2.13.2"
 
 moment-timezone@^0.5.33:
-  version "0.5.33"
-  resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.33.tgz#b252fd6bb57f341c9b59a5ab61a8e51a73bbd22c"
-  integrity sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==
+  version "0.5.34"
+  resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.34.tgz#a75938f7476b88f155d3504a9343f7519d9a405c"
+  integrity sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==
   dependencies:
     moment ">= 2.9.0"
 
@@ -4669,14 +4764,14 @@ moment-timezone@^0.5.33:
   integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
 
 mongodb-connection-string-url@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-1.1.0.tgz#0bd769f16aa1767758c119c275ea22bb5110915f"
-  integrity sha512-g0Qaj4AzIaktWKBkfjMjwzvBzZQN1mtb2DVOTbjdvlaqTa5lGLcnTeh0/9R9mPiIt2lvRGOrDgUdazeP5rD9oA==
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-1.1.2.tgz#a115902fee402b9b24a80c16ced94818daedad91"
+  integrity sha512-mp5lv4guWuykOpkwNNqQ0tKKytuJUjL/aC/bu/DqoJVWL5NSh4j/u+gJ+EiOdweLujHyq6JZZqcTVipHhL5xRg==
   dependencies:
     "@types/whatwg-url" "^8.0.0"
     whatwg-url "^8.4.0"
 
-mongodb@*:
+mongodb@4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.1.0.tgz#f491de5d52003f41dffbc6ebfd8b95be21174d63"
   integrity sha512-Gx9U9MsFWgJ3E0v4oHAdWvYTGBznNYPCkhmD/3i/kPTY/URnPfHD5/6VoKUFrdgQTK3icFiM9976hVbqCRBO9Q==
@@ -4688,14 +4783,14 @@ mongodb@*:
     saslprep "^1.0.0"
 
 mongodb@^3.3.2:
-  version "3.6.11"
-  resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.6.11.tgz#8a59a0491a92b00a8c925f72ed9d9a5b054aebb2"
-  integrity sha512-4Y4lTFHDHZZdgMaHmojtNAlqkvddX2QQBEN0K//GzxhGwlI9tZ9R0vhbjr1Decw+TF7qK0ZLjQT292XgHRRQgw==
+  version "3.7.3"
+  resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.7.3.tgz#b7949cfd0adc4cc7d32d3f2034214d4475f175a5"
+  integrity sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==
   dependencies:
     bl "^2.2.1"
     bson "^1.1.4"
     denque "^1.4.1"
-    optional-require "^1.0.3"
+    optional-require "^1.1.8"
     safe-buffer "^5.1.2"
   optionalDependencies:
     saslprep "^1.0.0"
@@ -4784,7 +4879,7 @@ mysql@*:
     safe-buffer "5.1.2"
     sqlstring "2.3.1"
 
-nan@^2.12.1, nan@^2.13.2, nan@^2.14.0, nan@^2.14.1, nan@^2.14.2:
+nan@^2.12.1, nan@^2.13.2, nan@^2.14.0, nan@^2.14.1, nan@^2.15.0:
   version "2.15.0"
   resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
   integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
@@ -4816,17 +4911,6 @@ ncp@~2.0.0:
   resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
   integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=
 
-nedb@^1.8.0:
-  version "1.8.0"
-  resolved "https://registry.yarnpkg.com/nedb/-/nedb-1.8.0.tgz#0e3502cd82c004d5355a43c9e55577bd7bd91d88"
-  integrity sha1-DjUCzYLABNU1WkPJ5VV3vXvZHYg=
-  dependencies:
-    async "0.2.10"
-    binary-search-tree "0.2.5"
-    localforage "^1.3.0"
-    mkdirp "~0.5.1"
-    underscore "~1.4.4"
-
 negotiator@0.6.2:
   version "0.6.2"
   resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
@@ -4859,10 +4943,12 @@ node-addon-api@^1.7.1:
   resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d"
   integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==
 
-node-fetch@^2.3.0:
-  version "2.6.1"
-  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
-  integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
+node-fetch@^2.3.0, node-fetch@^2.6.1:
+  version "2.6.6"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.6.tgz#1751a7c01834e8e1697758732e9efb6eeadfaf89"
+  integrity sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==
+  dependencies:
+    whatwg-url "^5.0.0"
 
 node-forge@^0.10.0:
   version "0.10.0"
@@ -4896,13 +4982,12 @@ node-vault@*:
     request-promise-native "1.0.7"
     tv4 "^1.2.7"
 
-node-windows@*:
-  version "0.1.14"
-  resolved "https://registry.yarnpkg.com/node-windows/-/node-windows-0.1.14.tgz#31bb0503da3bc637f2bfaa8b266640a2e92d891f"
-  integrity sha1-MbsFA9o7xjfyv6qLJmZAouktiR8=
+node-windows@0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/node-windows/-/node-windows-0.1.4.tgz#23d5ee98b6b8290e0a3da9998ee638845fedcb1b"
+  integrity sha1-I9XumLa4KQ4KPamZjuY4hF/tyxs=
   dependencies:
-    optimist "~0.6.0"
-    xml "0.0.12"
+    optimist "~0.3.5"
 
 node-xcs@*:
   version "0.1.7"
@@ -4913,9 +4998,9 @@ node-xcs@*:
     "@xmpp/debug" "^0.9.2"
 
 nodemailer@*:
-  version "6.6.3"
-  resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.6.3.tgz#31fb53dd4d8ae16fc088a65cb9ffa8d928a69b48"
-  integrity sha512-faZFufgTMrphYoDjvyVpbpJcYzwyFnbAMmQtj1lVBYAUSm3SOy2fIdd9+Mr4UxPosBa0JRw9bJoIwQn+nswiew==
+  version "6.7.2"
+  resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.2.tgz#44b2ad5f7ed71b7067f7a21c4fedabaec62b85e0"
+  integrity sha512-Dz7zVwlef4k5R71fdmxwR8Q39fiboGbu3xgswkzGwczUfjp873rVxt1O46+Fh0j1ORnAC6L9+heI8uUpO6DT7Q==
 
 nofilter@^1.0.4:
   version "1.0.4"
@@ -4959,6 +5044,11 @@ normalize-path@^3.0.0:
   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
   integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
 
+number-is-nan@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+  integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
+
 nwsapi@^2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
@@ -5025,9 +5115,9 @@ object-get@^2.0.0, object-get@^2.0.2, object-get@^2.1.0:
   integrity sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==
 
 object-inspect@^1.9.0:
-  version "1.11.0"
-  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1"
-  integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.1.tgz#d4bd7d7de54b9a75599f59a00bd698c1f1c6549b"
+  integrity sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==
 
 object-keys@^1.0.12, object-keys@^1.1.1:
   version "1.1.1"
@@ -5127,7 +5217,7 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
   dependencies:
     wrappy "1"
 
-optimist@^0.6.1, optimist@~0.6.0:
+optimist@^0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
   integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
@@ -5135,10 +5225,17 @@ optimist@^0.6.1, optimist@~0.6.0:
     minimist "~0.0.1"
     wordwrap "~0.0.2"
 
-optional-require@^1.0.3:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/optional-require/-/optional-require-1.1.4.tgz#8af7da26b17da76abbf8a1c46e2e148a63813c0e"
-  integrity sha512-YIabCRxu1Qqlxowh5MBaT8vrvC5fa5QehT4iJw8OthkTC1ZXe7aMxtZHtwnNwJRfFgiqPof2RZeguXo4weS9mA==
+optimist@~0.3.5:
+  version "0.3.7"
+  resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9"
+  integrity sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=
+  dependencies:
+    wordwrap "~0.0.2"
+
+optional-require@^1.1.8:
+  version "1.1.8"
+  resolved "https://registry.yarnpkg.com/optional-require/-/optional-require-1.1.8.tgz#16364d76261b75d964c482b2406cb824d8ec44b7"
+  integrity sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==
   dependencies:
     require-at "^1.0.6"
 
@@ -5159,6 +5256,13 @@ os-homedir@^1.0.0, os-homedir@^1.0.1:
   resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
   integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
 
+os-locale@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
+  integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=
+  dependencies:
+    lcid "^1.0.0"
+
 os-tmpdir@^1.0.0, os-tmpdir@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@@ -5217,6 +5321,11 @@ package-hash@^3.0.0:
     lodash.flattendeep "^4.4.0"
     release-zalgo "^1.0.0"
 
+packet-reader@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74"
+  integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==
+
 param-case@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
@@ -5243,6 +5352,13 @@ parse-glob@^3.0.4:
     is-extglob "^1.0.0"
     is-glob "^2.0.0"
 
+parse-json@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+  integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
+  dependencies:
+    error-ex "^1.2.0"
+
 parse-json@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
@@ -5312,9 +5428,9 @@ passport-oauth1@1.x.x:
     utils-merge "1.x.x"
 
 passport-oauth2@1.x.x:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.6.0.tgz#5f599735e0ea40ea3027643785f81a3a9b4feb50"
-  integrity sha512-emXPLqLcVEcLFR/QvQXZcwLmfK8e9CqvMgmOFJxcNT3okSFMtUbRRKpY20x5euD+01uHsjjCa07DYboEeLXYiw==
+  version "1.6.1"
+  resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.6.1.tgz#c5aee8f849ce8bd436c7f81d904a3cd1666f181b"
+  integrity sha512-ZbV43Hq9d/SBSYQ22GOiglFsjsD1YY/qdiptA+8ej+9C1dL1TVB+mBE5kDH/D4AJo50+2i8f4bx0vg4/yDDZCQ==
   dependencies:
     base64url "3.x.x"
     oauth "0.9.x"
@@ -5339,17 +5455,17 @@ passport-reddit@*:
     pkginfo "0.3.x"
 
 passport-saml@*:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/passport-saml/-/passport-saml-3.1.1.tgz#257470003366e06ce3c5738aa64a1209a0f4d7e7"
-  integrity sha512-45YXn/BUdzMSx27lEmY0EMXck+qgR8jdnsdgNbnG5HNzwGbcSLcTkH5AoULW+6gd5fcG1rcMDtKyIJwTIMJA6A==
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/passport-saml/-/passport-saml-3.2.0.tgz#72ec8203df6dd872a205b8d5f578859a4e723e42"
+  integrity sha512-EUzL+Wk8ZVdvOYhCBTkUrR1fwuMwF9za1FinFabP5Tl9qeJktsJWfoiBz7Fk6jQvpLwfnfryGdvwcOlGVct41A==
   dependencies:
-    debug "^4.3.1"
+    "@xmldom/xmldom" "^0.7.5"
+    debug "^4.3.2"
     passport-strategy "^1.0.0"
-    xml-crypto "^2.1.2"
-    xml-encryption "^1.2.4"
+    xml-crypto "^2.1.3"
+    xml-encryption "^1.3.0"
     xml2js "^0.4.23"
     xmlbuilder "^15.1.1"
-    xmldom "^0.6.0"
 
 passport-strategy@1.x.x, passport-strategy@^1.0.0:
   version "1.0.0"
@@ -5365,13 +5481,20 @@ passport-twitter@*:
     xtraverse "0.1.x"
 
 passport@*:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.1.tgz#941446a21cb92fc688d97a0861c38ce9f738f270"
-  integrity sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/passport/-/passport-0.5.0.tgz#7914aaa55844f9dce8c3aa28f7d6b73647ee0169"
+  integrity sha512-ln+ue5YaNDS+fes6O5PCzXKSseY5u8MYhX9H5Co4s+HfYI5oqvnHKoOORLYDUPh+8tHvrxugF2GFcUA1Q1Gqfg==
   dependencies:
     passport-strategy "1.x.x"
     pause "0.0.1"
 
+path-exists@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+  integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=
+  dependencies:
+    pinkie-promise "^2.0.0"
+
 path-exists@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -5409,6 +5532,15 @@ path-to-regexp@0.1.7:
   resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
   integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
 
+path-type@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
+  integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=
+  dependencies:
+    graceful-fs "^4.1.2"
+    pify "^2.0.0"
+    pinkie-promise "^2.0.0"
+
 path-type@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
@@ -5431,11 +5563,77 @@ performance-now@^2.1.0:
   resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
   integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
 
+pg-connection-string@^2.4.0, pg-connection-string@^2.5.0:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34"
+  integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==
+
+pg-int8@1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
+  integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
+
+pg-pool@^3.4.1:
+  version "3.4.1"
+  resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.4.1.tgz#0e71ce2c67b442a5e862a9c182172c37eda71e9c"
+  integrity sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ==
+
+pg-protocol@^1.5.0:
+  version "1.5.0"
+  resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.5.0.tgz#b5dd452257314565e2d54ab3c132adc46565a6a0"
+  integrity sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==
+
+pg-types@^2.1.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3"
+  integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==
+  dependencies:
+    pg-int8 "1.0.1"
+    postgres-array "~2.0.0"
+    postgres-bytea "~1.0.0"
+    postgres-date "~1.0.4"
+    postgres-interval "^1.1.0"
+
+pg@8.7.1, pg@^8.4.0:
+  version "8.7.1"
+  resolved "https://registry.yarnpkg.com/pg/-/pg-8.7.1.tgz#9ea9d1ec225980c36f94e181d009ab9f4ce4c471"
+  integrity sha512-7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA==
+  dependencies:
+    buffer-writer "2.0.0"
+    packet-reader "1.0.0"
+    pg-connection-string "^2.5.0"
+    pg-pool "^3.4.1"
+    pg-protocol "^1.5.0"
+    pg-types "^2.1.0"
+    pgpass "1.x"
+
+pgpass@1.x:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.4.tgz#85eb93a83800b20f8057a2b029bf05abaf94ea9c"
+  integrity sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==
+  dependencies:
+    split2 "^3.1.1"
+
+pgtools@0.3.2:
+  version "0.3.2"
+  resolved "https://registry.yarnpkg.com/pgtools/-/pgtools-0.3.2.tgz#df11d54057c889e27ba891664efda69de1b7a0fe"
+  integrity sha512-o9iI8CrJohpjt3hgoJuEC18oYrt/iLsc3BYtW6kP/0T7EyQ9T/WlnuzyKcC2GtfutREfXCmwaUcbqPrLw8sjng==
+  dependencies:
+    bluebird "^3.3.5"
+    pg "^8.4.0"
+    pg-connection-string "^2.4.0"
+    yargs "^5.0.0"
+
 picomatch@^2.2.3:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
   integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
 
+pify@^2.0.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+  integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
+
 pify@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
@@ -5446,6 +5644,18 @@ pify@^4.0.1:
   resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
   integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
 
+pinkie-promise@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+  integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
+  dependencies:
+    pinkie "^2.0.0"
+
+pinkie@^2.0.0:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+  integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
+
 pkg-dir@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
@@ -5466,9 +5676,9 @@ please-upgrade-node@^3.2.0:
     semver-compare "^1.0.0"
 
 plivo@*:
-  version "4.20.1"
-  resolved "https://registry.yarnpkg.com/plivo/-/plivo-4.20.1.tgz#032366930f930debab6497b2def2ab07e46361dc"
-  integrity sha512-0f3l/FBc00hz/BXF9Pyl1HgqWWI2XW9CLGlQN284YQqlt54T0vI5AaPd3GRlDxb6tI95u9UATTwbOgNKe5WJVQ==
+  version "4.25.0"
+  resolved "https://registry.yarnpkg.com/plivo/-/plivo-4.25.0.tgz#ba496e0e75dcbe5747d5770e6e07fd9eb153d7dd"
+  integrity sha512-pe3Frvgpk5ks5DwTbUN9DJTNIw2pV2Yip8DXfmBW34SCPdxyXUqsAw8TurDEjxTWEIuck4e4JizpQyv/V9T2tg==
   dependencies:
     "@types/node" "^14.14.14"
     axios "^0.21.1"
@@ -5494,6 +5704,28 @@ posix-character-classes@^0.1.0:
   resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
   integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
 
+postgres-array@~2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e"
+  integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==
+
+postgres-bytea@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35"
+  integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=
+
+postgres-date@~1.0.4:
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8"
+  integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==
+
+postgres-interval@^1.1.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695"
+  integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==
+  dependencies:
+    xtend "^4.0.0"
+
 precond@0.2:
   version "0.2.3"
   resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac"
@@ -5598,10 +5830,10 @@ qs@6.7.0:
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
   integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
 
-qs@^6.7.0, qs@^6.9.4:
-  version "6.10.1"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a"
-  integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==
+qs@^6.6.0, qs@^6.7.0, qs@^6.9.4:
+  version "6.10.2"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.2.tgz#c1431bea37fc5b24c5bdbafa20f16bdf2a4b9ffe"
+  integrity sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw==
   dependencies:
     side-channel "^1.0.4"
 
@@ -5663,6 +5895,14 @@ raw-body@2.4.0:
     iconv-lite "0.4.24"
     unpipe "1.0.0"
 
+read-pkg-up@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
+  integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=
+  dependencies:
+    find-up "^1.0.0"
+    read-pkg "^1.0.0"
+
 read-pkg-up@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978"
@@ -5671,6 +5911,15 @@ read-pkg-up@^4.0.0:
     find-up "^3.0.0"
     read-pkg "^3.0.0"
 
+read-pkg@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
+  integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=
+  dependencies:
+    load-json-file "^1.0.0"
+    normalize-package-data "^2.3.2"
+    path-type "^1.0.0"
+
 read-pkg@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
@@ -5680,7 +5929,7 @@ read-pkg@^3.0.0:
     normalize-package-data "^2.3.2"
     path-type "^3.0.0"
 
-"readable-stream@2 || 3", readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
+"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
   version "3.6.0"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
   integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -5932,6 +6181,11 @@ require-directory@^2.1.1:
   resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
   integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
 
+require-main-filename@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+  integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
+
 require-main-filename@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
@@ -6036,11 +6290,6 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
 
-safe-buffer@5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
-  integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
-
 safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
   version "5.2.1"
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
@@ -6213,9 +6462,9 @@ side-channel@^1.0.4:
     object-inspect "^1.9.0"
 
 signal-exit@^3.0.0, signal-exit@^3.0.2:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
-  integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
+  version "3.0.6"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af"
+  integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==
 
 slash@^1.0.0:
   version "1.0.0"
@@ -6342,9 +6591,9 @@ spdx-expression-parse@^3.0.0:
     spdx-license-ids "^3.0.0"
 
 spdx-license-ids@^3.0.0:
-  version "3.0.9"
-  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f"
-  integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==
+  version "3.0.11"
+  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95"
+  integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==
 
 split-string@^3.0.1, split-string@^3.0.2:
   version "3.1.0"
@@ -6353,6 +6602,13 @@ split-string@^3.0.1, split-string@^3.0.2:
   dependencies:
     extend-shallow "^3.0.0"
 
+split2@^3.1.1:
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f"
+  integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==
+  dependencies:
+    readable-stream "^3.0.0"
+
 sprintf-js@^1.0.3:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
@@ -6369,15 +6625,15 @@ sqlstring@2.3.1:
   integrity sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=
 
 ssh2@*:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.2.0.tgz#177a46bb12b7ef2b7bce28bdcbd7eae3cbc50045"
-  integrity sha512-vklfVRyylayGV/zMwVEkTC9kBhA3t264hoUHV/yGuunBJh6uBGP1VlzhOp8EsqxpKnG0xkLE1qHZlU0+t8Vh6Q==
+  version "1.5.0"
+  resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.5.0.tgz#4dc559ba98a1cbb420e8d42998dfe35d0eda92bc"
+  integrity sha512-iUmRkhH9KGeszQwDW7YyyqjsMTf4z+0o48Cp4xOwlY5LjtbIAvyd3fwnsoUZW/hXmTCRA3yt7S/Jb9uVjErVlA==
   dependencies:
     asn1 "^0.2.4"
     bcrypt-pbkdf "^1.0.2"
   optionalDependencies:
     cpu-features "0.0.2"
-    nan "^2.14.2"
+    nan "^2.15.0"
 
 sshpk@^1.7.0:
   version "1.16.1"
@@ -6447,6 +6703,15 @@ string-tools@^1.0.0:
   resolved "https://registry.yarnpkg.com/string-tools/-/string-tools-1.0.0.tgz#c69a9d5788858997da66f1d923ba7113ea466b5a"
   integrity sha1-xpqdV4iFiZfaZvHZI7pxE+pGa1o=
 
+string-width@^1.0.1, string-width@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+  integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
+  dependencies:
+    code-point-at "^1.0.0"
+    is-fullwidth-code-point "^1.0.0"
+    strip-ansi "^3.0.0"
+
 string-width@^3.0.0, string-width@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
@@ -6470,7 +6735,7 @@ string_decoder@~1.1.1:
   dependencies:
     safe-buffer "~5.1.0"
 
-strip-ansi@^3.0.0:
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
   integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
@@ -6484,6 +6749,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
   dependencies:
     ansi-regex "^4.1.0"
 
+strip-bom@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
+  integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=
+  dependencies:
+    is-utf8 "^0.2.0"
+
 strip-bom@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
@@ -6494,6 +6766,11 @@ strip-json-comments@~2.0.1:
   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
   integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
 
+strnum@^1.0.4:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db"
+  integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==
+
 supports-color@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
@@ -6558,6 +6835,17 @@ tar-stream@^2.1.2, tar-stream@^2.2.0:
     inherits "^2.0.3"
     readable-stream "^3.1.1"
 
+telnyx@*:
+  version "1.23.0"
+  resolved "https://registry.yarnpkg.com/telnyx/-/telnyx-1.23.0.tgz#0d949a11f7c819b0d5ce8ae8c36b80bd02e351c8"
+  integrity sha512-hmXxXVyj+Fi+ips7KwmgUYQrzHCIyGo8bjm/B8tsCAJ7PZ0V3LO330CVOk0gPdlcZxIkITaXWB51swrbK09Wew==
+  dependencies:
+    lodash.isplainobject "^4.0.6"
+    qs "^6.6.0"
+    safe-buffer "^5.1.1"
+    tweetnacl "^1.0.1"
+    uuid "^3.3.2"
+
 temp-path@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/temp-path/-/temp-path-1.0.0.tgz#24b1543973ab442896d9ad367dd9cbdbfafe918b"
@@ -6666,6 +6954,11 @@ toidentifier@1.0.0:
   resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
   integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
 
+toidentifier@1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
+  integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+
 tough-cookie@^2.3.3, tough-cookie@~2.5.0:
   version "2.5.0"
   resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
@@ -6698,6 +6991,18 @@ tr46@^2.1.0:
   dependencies:
     punycode "^2.1.1"
 
+tr46@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9"
+  integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==
+  dependencies:
+    punycode "^2.1.1"
+
+tr46@~0.0.3:
+  version "0.0.3"
+  resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+  integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
+
 trim-right@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
@@ -6725,12 +7030,17 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
   resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
   integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
 
+tweetnacl@^1.0.1:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
+  integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
+
 twilio@*:
-  version "3.66.1"
-  resolved "https://registry.yarnpkg.com/twilio/-/twilio-3.66.1.tgz#8435441ca45b0c7cb3761c4ba3011ca32e75ba69"
-  integrity sha512-BmIgfx2VuS7tj4IscBhyEj7CdmtfIaaJ1IuNeGoJFYBx5xikpuwkR0Ceo5CNtK5jnN3SCKmxHxToec/MYEXl0A==
+  version "3.71.3"
+  resolved "https://registry.yarnpkg.com/twilio/-/twilio-3.71.3.tgz#a446d2b49f8c1ed60b0dd830c919921358c17203"
+  integrity sha512-m9eda9fvkHxMMDHRtXj8WKI0ViP4EG4xS5au5ay3ScfModhBZ1ZtyfWZ0AfWI++A7a1T1j3ZVNIZ+AMLwxSffw==
   dependencies:
-    axios "^0.21.1"
+    axios "^0.21.4"
     dayjs "^1.8.29"
     https-proxy-agent "^5.0.0"
     jsonwebtoken "^8.5.1"
@@ -6739,7 +7049,7 @@ twilio@*:
     qs "^6.9.4"
     rootpath "^0.1.2"
     scmp "^2.1.0"
-    url-parse "^1.5.0"
+    url-parse "^1.5.3"
     xmlbuilder "^13.0.2"
 
 type-check@~0.3.2:
@@ -6773,9 +7083,9 @@ uglify-js@^2.6:
     uglify-to-browserify "~1.0.0"
 
 uglify-js@^3.1.4, uglify-js@^3.5.1:
-  version "3.14.1"
-  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.1.tgz#e2cb9fe34db9cb4cf7e35d1d26dfea28e09a7d06"
-  integrity sha512-JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g==
+  version "3.14.4"
+  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.4.tgz#68756f17d1b90b9d289341736cb9a567d6882f90"
+  integrity sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==
 
 uglify-to-browserify@~1.0.0:
   version "1.0.2"
@@ -6790,9 +7100,9 @@ uid-safe@2.1.5:
     random-bytes "~1.0.0"
 
 uid2@0.0.x:
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82"
-  integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=
+  version "0.0.4"
+  resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.4.tgz#033f3b1d5d32505f5ce5f888b9f3b667123c0a44"
+  integrity sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==
 
 unc-path-regex@^0.1.2:
   version "0.1.2"
@@ -6807,10 +7117,10 @@ underscore.string@~3.3.5:
     sprintf-js "^1.0.3"
     util-deprecate "^1.0.2"
 
-underscore@~1.4.4:
-  version "1.4.4"
-  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604"
-  integrity sha1-YaajIBBiKvoHljvzJSA88SI51gQ=
+underscore@^1.13.1:
+  version "1.13.1"
+  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1"
+  integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==
 
 underscore@~1.8.3:
   version "1.8.3"
@@ -6872,7 +7182,7 @@ url-join@^4.0.1:
   resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7"
   integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==
 
-url-parse@^1.5.0, url-parse@^1.5.1:
+url-parse@^1.5.3:
   version "1.5.3"
   resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862"
   integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==
@@ -6980,13 +7290,13 @@ vary@~1.1.2:
   integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
 
 vasync@^2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/vasync/-/vasync-2.2.0.tgz#cfde751860a15822db3b132bc59b116a4adaf01b"
-  integrity sha1-z951GGChWCLbOxMrxZsRakra8Bs=
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/vasync/-/vasync-2.2.1.tgz#d881379ff3685e4affa8e775cf0fd369262a201b"
+  integrity sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==
   dependencies:
     verror "1.10.0"
 
-verror@1.10.0, verror@^1.8.1:
+verror@1.10.0:
   version "1.10.0"
   resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
   integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
@@ -6995,6 +7305,15 @@ verror@1.10.0, verror@^1.8.1:
     core-util-is "1.0.2"
     extsprintf "^1.2.0"
 
+verror@^1.8.1:
+  version "1.10.1"
+  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz#4bf09eeccf4563b109ed4b3d458380c972b0cdeb"
+  integrity sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==
+  dependencies:
+    assert-plus "^1.0.0"
+    core-util-is "1.0.2"
+    extsprintf "^1.2.0"
+
 w3c-hr-time@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
@@ -7002,12 +7321,12 @@ w3c-hr-time@^1.0.2:
   dependencies:
     browser-process-hrtime "^1.0.0"
 
-w3c-xmlserializer@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a"
-  integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==
+w3c-xmlserializer@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz#06cdc3eefb7e4d0b20a560a5a3aeb0d2d9a65923"
+  integrity sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==
   dependencies:
-    xml-name-validator "^3.0.0"
+    xml-name-validator "^4.0.0"
 
 walk-back@^2.0.1:
   version "2.0.1"
@@ -7037,9 +7356,9 @@ web-push@*:
     urlsafe-base64 "^1.0.0"
 
 webdav@*:
-  version "4.6.0"
-  resolved "https://registry.yarnpkg.com/webdav/-/webdav-4.6.0.tgz#b12d3631562ed4a7d665dd1757349682dfc8f441"
-  integrity sha512-amL/NeZ73xe8cNC+uqAF3mOC/j5dNoNWlZswYCd7DKxhnZM7dViAVSv6gdCYeGAETjPEZVubcKDDRwGKz9ShQQ==
+  version "4.7.0"
+  resolved "https://registry.yarnpkg.com/webdav/-/webdav-4.7.0.tgz#3964c72c1d5dc9854c0031b43e464f260f22476e"
+  integrity sha512-R1WZl/JeFPAmSEn1EPCmxSdPY8IxS/P0qnxAzBeRqEewpxVJ/UiCMJwXHLpyVsKYA1PIb1dYv+UTQsbNaQnLBw==
   dependencies:
     axios "^0.21.1"
     base-64 "^1.0.0"
@@ -7052,31 +7371,52 @@ webdav@*:
     nested-property "^4.0.0"
     path-posix "^1.0.0"
     url-join "^4.0.1"
-    url-parse "^1.5.1"
+    url-parse "^1.5.3"
 
-webidl-conversions@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff"
-  integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==
+webidl-conversions@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+  integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
 
 webidl-conversions@^6.1.0:
   version "6.1.0"
   resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514"
   integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==
 
-whatwg-encoding@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
-  integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==
+webidl-conversions@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a"
+  integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
+
+whatwg-encoding@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53"
+  integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==
   dependencies:
-    iconv-lite "0.4.24"
+    iconv-lite "0.6.3"
 
-whatwg-mimetype@^2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
-  integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
+whatwg-mimetype@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7"
+  integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==
+
+whatwg-url@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-10.0.0.tgz#37264f720b575b4a311bd4094ed8c760caaa05da"
+  integrity sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==
+  dependencies:
+    tr46 "^3.0.0"
+    webidl-conversions "^7.0.0"
 
-whatwg-url@^8.0.0, whatwg-url@^8.4.0, whatwg-url@^8.5.0:
+whatwg-url@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
+  integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
+  dependencies:
+    tr46 "~0.0.3"
+    webidl-conversions "^3.0.0"
+
+whatwg-url@^8.4.0:
   version "8.7.0"
   resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77"
   integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==
@@ -7085,6 +7425,11 @@ whatwg-url@^8.0.0, whatwg-url@^8.4.0, whatwg-url@^8.5.0:
     tr46 "^2.1.0"
     webidl-conversions "^6.1.0"
 
+which-module@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
+  integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=
+
 which-module@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
@@ -7116,6 +7461,11 @@ window-size@0.1.0:
   resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
   integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=
 
+window-size@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075"
+  integrity sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=
+
 word-wrap@~1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
@@ -7154,6 +7504,14 @@ wordwrapjs@^2.0.0-0:
     reduce-flatten "^1.0.1"
     typical "^2.6.0"
 
+wrap-ansi@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+  integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
+  dependencies:
+    string-width "^1.0.1"
+    strip-ansi "^3.0.1"
+
 wrap-ansi@^5.1.0:
   version "5.1.0"
   resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
@@ -7184,33 +7542,38 @@ ws@5.2.3, ws@^5.2.0:
   dependencies:
     async-limiter "~1.0.0"
 
-ws@^7.0.0, ws@^7.4.6:
-  version "7.5.3"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74"
-  integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==
+ws@^7.0.0:
+  version "7.5.6"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b"
+  integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==
 
-xml-crypto@^2.1.2:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/xml-crypto/-/xml-crypto-2.1.2.tgz#501506d42e466f6cd908c5a03182217231b4e4b8"
-  integrity sha512-DBhZXtBjENtLwJmeJhLUBwUm9YWNjCRvAx6ESP4VJyM9PDuKqZu2Fp5Y5HKqcdJT7vV7eI25Z4UBMezji6QloQ==
+ws@^8.2.3:
+  version "8.3.0"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.3.0.tgz#7185e252c8973a60d57170175ff55fdbd116070d"
+  integrity sha512-Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw==
+
+xml-crypto@^2.1.3:
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/xml-crypto/-/xml-crypto-2.1.3.tgz#6a7272b610ea3e4ea7f13e9e4876f1b20cbc32c8"
+  integrity sha512-MpXZwnn9JK0mNPZ5mnFIbNnQa+8lMGK4NtnX2FlJMfMWR60sJdFO9X72yO6ji068pxixzk53O7x0/iSKh6IhyQ==
   dependencies:
-    xmldom "^0.6.0"
+    "@xmldom/xmldom" "^0.7.0"
     xpath "0.0.32"
 
-xml-encryption@^1.2.4:
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/xml-encryption/-/xml-encryption-1.2.4.tgz#767d13f9ff2f979ff5657b93bd72aa729d34b66c"
-  integrity sha512-+4aSBIv/lwmv5PntfYsZyelOnCcyDmCt/MNxXUukRGlcWW8DObJ26obbVX3iXYRdqkLqbv3AKk8ntNCGKIq/UQ==
+xml-encryption@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/xml-encryption/-/xml-encryption-1.3.0.tgz#4cad44a59bf8bdec76d7865ce0b89e13c09962f4"
+  integrity sha512-3P8C4egMMxSR1BmsRM+fG16a3WzOuUEQKS2U4c3AZ5v7OseIfdUeVkD8dwxIhuLryFZSRWUL5OP6oqkgU7hguA==
   dependencies:
+    "@xmldom/xmldom" "^0.7.0"
     escape-html "^1.0.3"
     node-forge "^0.10.0"
-    xmldom "~0.6.0"
     xpath "0.0.32"
 
-xml-name-validator@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
-  integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
+xml-name-validator@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835"
+  integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
 
 xml2js@^0.4.19, xml2js@^0.4.23:
   version "0.4.23"
@@ -7220,11 +7583,6 @@ xml2js@^0.4.19, xml2js@^0.4.23:
     sax ">=0.6.0"
     xmlbuilder "~11.0.0"
 
-xml@0.0.12:
-  version "0.0.12"
-  resolved "https://registry.yarnpkg.com/xml/-/xml-0.0.12.tgz#f08b347109912be00285785f46f15ad8e50a5f67"
-  integrity sha1-8Is0cQmRK+AChXhfRvFa2OUKX2c=
-
 xmlbuilder@^13.0.2:
   version "13.0.2"
   resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7"
@@ -7255,16 +7613,6 @@ xmldom@0.1.x:
   resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff"
   integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==
 
-xmldom@^0.5.0:
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e"
-  integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==
-
-xmldom@^0.6.0, xmldom@~0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.6.0.tgz#43a96ecb8beece991cef382c08397d82d4d0c46f"
-  integrity sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==
-
 xpath@0.0.32:
   version "0.0.32"
   resolved "https://registry.yarnpkg.com/xpath/-/xpath-0.0.32.tgz#1b73d3351af736e17ec078d6da4b8175405c48af"
@@ -7282,6 +7630,11 @@ xtraverse@0.1.x:
   dependencies:
     xmldom "0.1.x"
 
+y18n@^3.2.1:
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696"
+  integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==
+
 y18n@^4.0.0:
   version "4.0.3"
   resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
@@ -7305,6 +7658,14 @@ yargs-parser@^13.0.0, yargs-parser@^13.1.2:
     camelcase "^5.0.0"
     decamelize "^1.2.0"
 
+yargs-parser@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-3.2.0.tgz#5081355d19d9d0c8c5d81ada908cb4e6d186664f"
+  integrity sha1-UIE1XRnZ0MjF2BrakIy05tGGZk8=
+  dependencies:
+    camelcase "^3.0.0"
+    lodash.assign "^4.1.0"
+
 yargs@^13.2.2:
   version "13.3.2"
   resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
@@ -7321,6 +7682,26 @@ yargs@^13.2.2:
     y18n "^4.0.0"
     yargs-parser "^13.1.2"
 
+yargs@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-5.0.0.tgz#3355144977d05757dbb86d6e38ec056123b3a66e"
+  integrity sha1-M1UUSXfQV1fbuG1uOOwFYSOzpm4=
+  dependencies:
+    cliui "^3.2.0"
+    decamelize "^1.1.1"
+    get-caller-file "^1.0.1"
+    lodash.assign "^4.2.0"
+    os-locale "^1.4.0"
+    read-pkg-up "^1.0.1"
+    require-directory "^2.1.1"
+    require-main-filename "^1.0.1"
+    set-blocking "^2.0.0"
+    string-width "^1.0.2"
+    which-module "^1.0.0"
+    window-size "^0.2.0"
+    y18n "^3.2.1"
+    yargs-parser "^3.2.0"
+
 yargs@~3.10.0:
   version "3.10.0"
   resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
diff --git a/nixpkgs/pkgs/tools/admin/meshcentral/yarn.nix b/nixpkgs/pkgs/tools/admin/meshcentral/yarn.nix
index 2fd6d9007521..fd4fe90755b5 100644
--- a/nixpkgs/pkgs/tools/admin/meshcentral/yarn.nix
+++ b/nixpkgs/pkgs/tools/admin/meshcentral/yarn.nix
@@ -2,139 +2,139 @@
   offline_cache = linkFarm "offline" packages;
   packages = [
     {
-      name = "_babel_code_frame___code_frame_7.14.5.tgz";
+      name = "_babel_code_frame___code_frame_7.16.0.tgz";
       path = fetchurl {
-        name = "_babel_code_frame___code_frame_7.14.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz";
-        sha1 = "23b08d740e83f49c5e59945fbf1b43e80bbf4edb";
+        name = "_babel_code_frame___code_frame_7.16.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz";
+        sha1 = "0dfc80309beec8411e65e706461c408b0bb9b431";
       };
     }
     {
-      name = "_babel_generator___generator_7.15.0.tgz";
+      name = "_babel_generator___generator_7.16.0.tgz";
       path = fetchurl {
-        name = "_babel_generator___generator_7.15.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz";
-        sha1 = "a7d0c172e0d814974bad5aa77ace543b97917f15";
+        name = "_babel_generator___generator_7.16.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz";
+        sha1 = "d40f3d1d5075e62d3500bccb67f3daa8a95265b2";
       };
     }
     {
-      name = "_babel_helper_function_name___helper_function_name_7.14.5.tgz";
+      name = "_babel_helper_function_name___helper_function_name_7.16.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_function_name___helper_function_name_7.14.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz";
-        sha1 = "89e2c474972f15d8e233b52ee8c480e2cfcd50c4";
+        name = "_babel_helper_function_name___helper_function_name_7.16.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz";
+        sha1 = "b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481";
       };
     }
     {
-      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.14.5.tgz";
+      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.16.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.14.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz";
-        sha1 = "25fbfa579b0937eee1f3b805ece4ce398c431815";
+        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.16.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz";
+        sha1 = "0088c7486b29a9cb5d948b1a1de46db66e089cfa";
       };
     }
     {
-      name = "_babel_helper_hoist_variables___helper_hoist_variables_7.14.5.tgz";
+      name = "_babel_helper_hoist_variables___helper_hoist_variables_7.16.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_hoist_variables___helper_hoist_variables_7.14.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz";
-        sha1 = "e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d";
+        name = "_babel_helper_hoist_variables___helper_hoist_variables_7.16.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz";
+        sha1 = "4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a";
       };
     }
     {
-      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.14.5.tgz";
+      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.16.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.14.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz";
-        sha1 = "22b23a54ef51c2b7605d851930c1976dd0bc693a";
+        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.16.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz";
+        sha1 = "29672f43663e936df370aaeb22beddb3baec7438";
       };
     }
     {
-      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.9.tgz";
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.15.7.tgz";
       path = fetchurl {
-        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.9.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz";
-        sha1 = "6654d171b2024f6d8ee151bf2509699919131d48";
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.15.7.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz";
+        sha1 = "220df993bfe904a4a6b02ab4f3385a5ebf6e2389";
       };
     }
     {
-      name = "_babel_highlight___highlight_7.14.5.tgz";
+      name = "_babel_highlight___highlight_7.16.0.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.14.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz";
-        sha1 = "6861a52f03966405001f6aa534a01a24d99e8cd9";
+        name = "_babel_highlight___highlight_7.16.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz";
+        sha1 = "6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a";
       };
     }
     {
-      name = "_babel_parser___parser_7.15.0.tgz";
+      name = "_babel_parser___parser_7.16.4.tgz";
       path = fetchurl {
-        name = "_babel_parser___parser_7.15.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.0.tgz";
-        sha1 = "b6d6e29058ca369127b0eeca2a1c4b5794f1b6b9";
+        name = "_babel_parser___parser_7.16.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz";
+        sha1 = "d5f92f57cf2c74ffe9b37981c0e72fee7311372e";
       };
     }
     {
-      name = "_babel_template___template_7.14.5.tgz";
+      name = "_babel_template___template_7.16.0.tgz";
       path = fetchurl {
-        name = "_babel_template___template_7.14.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz";
-        sha1 = "a9bc9d8b33354ff6e55a9c60d1109200a68974f4";
+        name = "_babel_template___template_7.16.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz";
+        sha1 = "d16a35ebf4cd74e202083356fab21dd89363ddd6";
       };
     }
     {
-      name = "_babel_traverse___traverse_7.15.0.tgz";
+      name = "_babel_traverse___traverse_7.16.3.tgz";
       path = fetchurl {
-        name = "_babel_traverse___traverse_7.15.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz";
-        sha1 = "4cca838fd1b2a03283c1f38e141f639d60b3fc98";
+        name = "_babel_traverse___traverse_7.16.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.3.tgz";
+        sha1 = "f63e8a938cc1b780f66d9ed3c54f532ca2d14787";
       };
     }
     {
-      name = "_babel_types___types_7.15.0.tgz";
+      name = "_babel_types___types_7.16.0.tgz";
       path = fetchurl {
-        name = "_babel_types___types_7.15.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz";
-        sha1 = "61af11f2286c4e9c69ca8deb5f4375a73c72dcbd";
+        name = "_babel_types___types_7.16.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz";
+        sha1 = "db3b313804f96aadd0b776c4823e127ad67289ba";
       };
     }
     {
-      name = "_mysql_xdevapi___xdevapi_8.0.26.tgz";
+      name = "_mysql_xdevapi___xdevapi_8.0.27.tgz";
       path = fetchurl {
-        name = "_mysql_xdevapi___xdevapi_8.0.26.tgz";
-        url  = "https://registry.yarnpkg.com/@mysql/xdevapi/-/xdevapi-8.0.26.tgz";
-        sha1 = "bdf5752553c53c32d665bfa3034f21fbfa989611";
+        name = "_mysql_xdevapi___xdevapi_8.0.27.tgz";
+        url  = "https://registry.yarnpkg.com/@mysql/xdevapi/-/xdevapi-8.0.27.tgz";
+        sha1 = "1e19335dee89d413c7ffbfd29340a92930d2e9c6";
       };
     }
     {
-      name = "_sendgrid_client___client_7.4.3.tgz";
+      name = "_sendgrid_client___client_7.6.0.tgz";
       path = fetchurl {
-        name = "_sendgrid_client___client_7.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/@sendgrid/client/-/client-7.4.3.tgz";
-        sha1 = "bc71aae05de2cd9aa607f4eb1d886711d09f9595";
+        name = "_sendgrid_client___client_7.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sendgrid/client/-/client-7.6.0.tgz";
+        sha1 = "f90cb8759c96e1d90224f29ad98f8fdc2be287f3";
       };
     }
     {
-      name = "_sendgrid_helpers___helpers_7.4.3.tgz";
+      name = "_sendgrid_helpers___helpers_7.6.0.tgz";
       path = fetchurl {
-        name = "_sendgrid_helpers___helpers_7.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/@sendgrid/helpers/-/helpers-7.4.3.tgz";
-        sha1 = "231a4405266cfa291054df8b668fe3a4dc9387aa";
+        name = "_sendgrid_helpers___helpers_7.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sendgrid/helpers/-/helpers-7.6.0.tgz";
+        sha1 = "b381bfab391bcd66c771811b22bb6bb2d5c1dfc6";
       };
     }
     {
-      name = "_sendgrid_mail___mail_7.4.5.tgz";
+      name = "_sendgrid_mail___mail_7.6.0.tgz";
       path = fetchurl {
-        name = "_sendgrid_mail___mail_7.4.5.tgz";
-        url  = "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-7.4.5.tgz";
-        sha1 = "22cef36e793134833b36aff5d3f4f53e8f81dd52";
+        name = "_sendgrid_mail___mail_7.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-7.6.0.tgz";
+        sha1 = "e74ee30110527feab5d3b83d68af0cd94537f6d2";
       };
     }
     {
-      name = "_tootallnate_once___once_1.1.2.tgz";
+      name = "_tootallnate_once___once_2.0.0.tgz";
       path = fetchurl {
-        name = "_tootallnate_once___once_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz";
-        sha1 = "ccb91445360179a04e7fe6aff78c00ffc1eeaf82";
+        name = "_tootallnate_once___once_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz";
+        sha1 = "f544a148d3ab35801c1f633a7441fd87c2e484bf";
       };
     }
     {
@@ -154,19 +154,19 @@
       };
     }
     {
-      name = "_types_node___node_16.4.13.tgz";
+      name = "_types_node___node_16.11.11.tgz";
       path = fetchurl {
-        name = "_types_node___node_16.4.13.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-16.4.13.tgz";
-        sha1 = "7dfd9c14661edc65cccd43a29eb454174642370d";
+        name = "_types_node___node_16.11.11.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz";
+        sha1 = "6ea7342dfb379ea1210835bada87b3c512120234";
       };
     }
     {
-      name = "_types_node___node_14.17.9.tgz";
+      name = "_types_node___node_14.18.0.tgz";
       path = fetchurl {
-        name = "_types_node___node_14.17.9.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.17.9.tgz";
-        sha1 = "b97c057e6138adb7b720df2bd0264b03c9f504fd";
+        name = "_types_node___node_14.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.18.0.tgz";
+        sha1 = "98df2397f6936bfbff4f089e40e06fa5dd88d32a";
       };
     }
     {
@@ -186,6 +186,14 @@
       };
     }
     {
+      name = "_xmldom_xmldom___xmldom_0.7.5.tgz";
+      path = fetchurl {
+        name = "_xmldom_xmldom___xmldom_0.7.5.tgz";
+        url  = "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.5.tgz";
+        sha1 = "09fa51e356d07d0be200642b0e4f91d8e6dd408d";
+      };
+    }
+    {
       name = "_xmpp_base64___base64_0.9.0.tgz";
       path = fetchurl {
         name = "_xmpp_base64___base64_0.9.0.tgz";
@@ -394,6 +402,22 @@
       };
     }
     {
+      name = "_yetzt_binary_search_tree___binary_search_tree_0.2.6.tgz";
+      path = fetchurl {
+        name = "_yetzt_binary_search_tree___binary_search_tree_0.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/@yetzt/binary-search-tree/-/binary-search-tree-0.2.6.tgz";
+        sha1 = "91b2d861c089da0bfbeceb5deeca57b81c4210ec";
+      };
+    }
+    {
+      name = "_yetzt_nedb___nedb_1.8.0.tgz";
+      path = fetchurl {
+        name = "_yetzt_nedb___nedb_1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/@yetzt/nedb/-/nedb-1.8.0.tgz";
+        sha1 = "c0e03bfd5f9e76045d4e4baacbebd271cb221258";
+      };
+    }
+    {
       name = "abab___abab_2.0.5.tgz";
       path = fetchurl {
         name = "abab___abab_2.0.5.tgz";
@@ -482,11 +506,11 @@
       };
     }
     {
-      name = "acorn___acorn_8.4.1.tgz";
+      name = "acorn___acorn_8.6.0.tgz";
       path = fetchurl {
-        name = "acorn___acorn_8.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz";
-        sha1 = "56c36251fc7cabc7096adc18f05afe814321a28c";
+        name = "acorn___acorn_8.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz";
+        sha1 = "e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895";
       };
     }
     {
@@ -802,11 +826,11 @@
       };
     }
     {
-      name = "asn1___asn1_0.2.4.tgz";
+      name = "asn1___asn1_0.2.6.tgz";
       path = fetchurl {
-        name = "asn1___asn1_0.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
-        sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
+        name = "asn1___asn1_0.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz";
+        sha1 = "0d3a7bb6e64e02a90c0303b31f292868ea09a08d";
       };
     }
     {
@@ -842,14 +866,6 @@
       };
     }
     {
-      name = "async___async_0.2.10.tgz";
-      path = fetchurl {
-        name = "async___async_0.2.10.tgz";
-        url  = "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz";
-        sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
-      };
-    }
-    {
       name = "async___async_2.6.3.tgz";
       path = fetchurl {
         name = "async___async_2.6.3.tgz";
@@ -858,11 +874,11 @@
       };
     }
     {
-      name = "async___async_3.2.1.tgz";
+      name = "async___async_3.2.2.tgz";
       path = fetchurl {
-        name = "async___async_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz";
-        sha1 = "d3274ec66d107a47476a4c49136aacdb00665fc8";
+        name = "async___async_3.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz";
+        sha1 = "2eb7671034bb2194d45d30e31e24ec7e7f9670cd";
       };
     }
     {
@@ -906,6 +922,14 @@
       };
     }
     {
+      name = "axios___axios_0.21.4.tgz";
+      path = fetchurl {
+        name = "axios___axios_0.21.4.tgz";
+        url  = "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz";
+        sha1 = "c67b90dc0568e5c1cf2b0b858c43ba28e2eda575";
+      };
+    }
+    {
       name = "babel_cli___babel_cli_6.26.0.tgz";
       path = fetchurl {
         name = "babel_cli___babel_cli_6.26.0.tgz";
@@ -1386,14 +1410,6 @@
       };
     }
     {
-      name = "binary_search_tree___binary_search_tree_0.2.5.tgz";
-      path = fetchurl {
-        name = "binary_search_tree___binary_search_tree_0.2.5.tgz";
-        url  = "https://registry.yarnpkg.com/binary-search-tree/-/binary-search-tree-0.2.5.tgz";
-        sha1 = "7dbb3b210fdca082450dad2334c304af39bdc784";
-      };
-    }
-    {
       name = "binary_search___binary_search_1.3.6.tgz";
       path = fetchurl {
         name = "binary_search___binary_search_1.3.6.tgz";
@@ -1514,11 +1530,11 @@
       };
     }
     {
-      name = "bson___bson_4.4.1.tgz";
+      name = "bson___bson_4.6.0.tgz";
       path = fetchurl {
-        name = "bson___bson_4.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/bson/-/bson-4.4.1.tgz";
-        sha1 = "682c3cb8b90b222414ce14ef8398154ba2cc21bc";
+        name = "bson___bson_4.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/bson/-/bson-4.6.0.tgz";
+        sha1 = "15c3b39ba3940c3d915a0c44d51459f4b4fbf1b2";
       };
     }
     {
@@ -1538,6 +1554,14 @@
       };
     }
     {
+      name = "buffer_writer___buffer_writer_2.0.0.tgz";
+      path = fetchurl {
+        name = "buffer_writer___buffer_writer_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz";
+        sha1 = "ce7eb81a38f7829db09c873f2fbb792c0c98ec04";
+      };
+    }
+    {
       name = "buffer___buffer_5.7.1.tgz";
       path = fetchurl {
         name = "buffer___buffer_5.7.1.tgz";
@@ -1634,6 +1658,14 @@
       };
     }
     {
+      name = "camelcase___camelcase_3.0.0.tgz";
+      path = fetchurl {
+        name = "camelcase___camelcase_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz";
+        sha1 = "32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a";
+      };
+    }
+    {
       name = "camelcase___camelcase_5.3.1.tgz";
       path = fetchurl {
         name = "camelcase___camelcase_5.3.1.tgz";
@@ -1730,11 +1762,11 @@
       };
     }
     {
-      name = "clean_css___clean_css_4.2.3.tgz";
+      name = "clean_css___clean_css_4.2.4.tgz";
       path = fetchurl {
-        name = "clean_css___clean_css_4.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz";
-        sha1 = "507b5de7d97b48ee53d84adb0160ff6216380f78";
+        name = "clean_css___clean_css_4.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz";
+        sha1 = "733bf46eba4e607c6891ea57c24a989356831178";
       };
     }
     {
@@ -1754,6 +1786,14 @@
       };
     }
     {
+      name = "cliui___cliui_3.2.0.tgz";
+      path = fetchurl {
+        name = "cliui___cliui_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz";
+        sha1 = "120601537a916d29940f934da3b48d585a39213d";
+      };
+    }
+    {
       name = "cliui___cliui_5.0.0.tgz";
       path = fetchurl {
         name = "cliui___cliui_5.0.0.tgz";
@@ -1762,6 +1802,14 @@
       };
     }
     {
+      name = "code_point_at___code_point_at_1.1.0.tgz";
+      path = fetchurl {
+        name = "code_point_at___code_point_at_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
+        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+      };
+    }
+    {
       name = "collect_all___collect_all_1.0.4.tgz";
       path = fetchurl {
         name = "collect_all___collect_all_1.0.4.tgz";
@@ -2010,11 +2058,11 @@
       };
     }
     {
-      name = "cookie_session___cookie_session_2.0.0_rc.1.tgz";
+      name = "cookie_session___cookie_session_1.4.0.tgz";
       path = fetchurl {
-        name = "cookie_session___cookie_session_2.0.0_rc.1.tgz";
-        url  = "https://registry.yarnpkg.com/cookie-session/-/cookie-session-2.0.0-rc.1.tgz";
-        sha1 = "66fa03f26e5873d681d70f14bff5e48a94c53d37";
+        name = "cookie_session___cookie_session_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/cookie-session/-/cookie-session-1.4.0.tgz";
+        sha1 = "c325aea685ceb9c8e4fd00b0313a46d547747380";
       };
     }
     {
@@ -2066,6 +2114,14 @@
       };
     }
     {
+      name = "core_util_is___core_util_is_1.0.3.tgz";
+      path = fetchurl {
+        name = "core_util_is___core_util_is_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz";
+        sha1 = "a6042d3634c2b27e9328f837b965fac83808db85";
+      };
+    }
+    {
       name = "cp_file___cp_file_6.2.0.tgz";
       path = fetchurl {
         name = "cp_file___cp_file_6.2.0.tgz";
@@ -2146,11 +2202,11 @@
       };
     }
     {
-      name = "cssom___cssom_0.4.4.tgz";
+      name = "cssom___cssom_0.5.0.tgz";
       path = fetchurl {
-        name = "cssom___cssom_0.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz";
-        sha1 = "5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10";
+        name = "cssom___cssom_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz";
+        sha1 = "d254fa92cd8b6fbd83811b9fbaed34663cc17c36";
       };
     }
     {
@@ -2178,11 +2234,11 @@
       };
     }
     {
-      name = "data_urls___data_urls_2.0.0.tgz";
+      name = "data_urls___data_urls_3.0.1.tgz";
       path = fetchurl {
-        name = "data_urls___data_urls_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz";
-        sha1 = "156485a72963a970f5d5821aaf642bef2bf2db9b";
+        name = "data_urls___data_urls_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.1.tgz";
+        sha1 = "597fc2ae30f8bc4dbcf731fcd1b1954353afc6f8";
       };
     }
     {
@@ -2194,11 +2250,11 @@
       };
     }
     {
-      name = "dayjs___dayjs_1.10.6.tgz";
+      name = "dayjs___dayjs_1.10.7.tgz";
       path = fetchurl {
-        name = "dayjs___dayjs_1.10.6.tgz";
-        url  = "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.6.tgz";
-        sha1 = "288b2aa82f2d8418a6c9d4df5898c0737ad02a63";
+        name = "dayjs___dayjs_1.10.7.tgz";
+        url  = "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz";
+        sha1 = "2cf5f91add28116748440866a0a1d26f3a6ce468";
       };
     }
     {
@@ -2226,19 +2282,11 @@
       };
     }
     {
-      name = "debug___debug_3.2.6.tgz";
+      name = "debug___debug_4.3.3.tgz";
       path = fetchurl {
-        name = "debug___debug_3.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz";
-        sha1 = "e83d17de16d8a7efb7717edbe5fb10135eee629b";
-      };
-    }
-    {
-      name = "debug___debug_4.3.2.tgz";
-      path = fetchurl {
-        name = "debug___debug_4.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz";
-        sha1 = "f0a49c18ac8779e31d4a0c6029dfb76873c7428b";
+        name = "debug___debug_4.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz";
+        sha1 = "04266e0b70a98d4462e6e288e38259213332b664";
       };
     }
     {
@@ -2274,11 +2322,11 @@
       };
     }
     {
-      name = "deep_is___deep_is_0.1.3.tgz";
+      name = "deep_is___deep_is_0.1.4.tgz";
       path = fetchurl {
-        name = "deep_is___deep_is_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
-        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+        name = "deep_is___deep_is_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz";
+        sha1 = "a6f2dce612fadd2ef1f519b73551f17e85199831";
       };
     }
     {
@@ -2346,11 +2394,11 @@
       };
     }
     {
-      name = "denque___denque_1.5.0.tgz";
+      name = "denque___denque_1.5.1.tgz";
       path = fetchurl {
-        name = "denque___denque_1.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/denque/-/denque-1.5.0.tgz";
-        sha1 = "773de0686ff2d8ec2ff92914316a47b73b1c73de";
+        name = "denque___denque_1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/denque/-/denque-1.5.1.tgz";
+        sha1 = "07f670e29c9a78f8faecb2566a1e2c11929c5cbf";
       };
     }
     {
@@ -2410,11 +2458,11 @@
       };
     }
     {
-      name = "domexception___domexception_2.0.1.tgz";
+      name = "domexception___domexception_4.0.0.tgz";
       path = fetchurl {
-        name = "domexception___domexception_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz";
-        sha1 = "fb44aefba793e1574b0af6aed2801d057529f304";
+        name = "domexception___domexception_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz";
+        sha1 = "4ad1be56ccadc86fc76d033353999a8037d03673";
       };
     }
     {
@@ -2538,11 +2586,11 @@
       };
     }
     {
-      name = "estraverse___estraverse_5.2.0.tgz";
+      name = "estraverse___estraverse_5.3.0.tgz";
       path = fetchurl {
-        name = "estraverse___estraverse_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz";
-        sha1 = "307df42547e6cc7324d3cf03c155d5cdb8c53880";
+        name = "estraverse___estraverse_5.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz";
+        sha1 = "2eea5290702f26ab8fe5370370ff86c965d21123";
       };
     }
     {
@@ -2706,11 +2754,11 @@
       };
     }
     {
-      name = "extsprintf___extsprintf_1.4.0.tgz";
+      name = "extsprintf___extsprintf_1.4.1.tgz";
       path = fetchurl {
-        name = "extsprintf___extsprintf_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
-        sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
+        name = "extsprintf___extsprintf_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz";
+        sha1 = "8d172c064867f235c0c84a596806d279bf4bcc07";
       };
     }
     {
@@ -2746,11 +2794,11 @@
       };
     }
     {
-      name = "fast_xml_parser___fast_xml_parser_3.19.0.tgz";
+      name = "fast_xml_parser___fast_xml_parser_3.21.1.tgz";
       path = fetchurl {
-        name = "fast_xml_parser___fast_xml_parser_3.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz";
-        sha1 = "cb637ec3f3999f51406dd8ff0e6fc4d83e520d01";
+        name = "fast_xml_parser___fast_xml_parser_3.21.1.tgz";
+        url  = "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz";
+        sha1 = "152a1d51d445380f7046b304672dd55d15c9e736";
       };
     }
     {
@@ -2762,11 +2810,11 @@
       };
     }
     {
-      name = "fastparallel___fastparallel_2.4.0.tgz";
+      name = "fastparallel___fastparallel_2.4.1.tgz";
       path = fetchurl {
-        name = "fastparallel___fastparallel_2.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/fastparallel/-/fastparallel-2.4.0.tgz";
-        sha1 = "65fbec1a5e5902494be772cf5765cbaaece08688";
+        name = "fastparallel___fastparallel_2.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/fastparallel/-/fastparallel-2.4.1.tgz";
+        sha1 = "0d984a5813ffa67f30b4a5cb4cb8cbe61c7ee5a5";
       };
     }
     {
@@ -2882,6 +2930,14 @@
       };
     }
     {
+      name = "find_up___find_up_1.1.2.tgz";
+      path = fetchurl {
+        name = "find_up___find_up_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz";
+        sha1 = "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f";
+      };
+    }
+    {
       name = "find_up___find_up_3.0.0.tgz";
       path = fetchurl {
         name = "find_up___find_up_3.0.0.tgz";
@@ -2922,11 +2978,11 @@
       };
     }
     {
-      name = "follow_redirects___follow_redirects_1.14.1.tgz";
+      name = "follow_redirects___follow_redirects_1.14.5.tgz";
       path = fetchurl {
-        name = "follow_redirects___follow_redirects_1.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz";
-        sha1 = "d9114ded0a1cfdd334e164e6662ad02bfd91ff43";
+        name = "follow_redirects___follow_redirects_1.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.5.tgz";
+        sha1 = "f09a5848981d3c772b5392309778523f8d85c381";
       };
     }
     {
@@ -2970,14 +3026,6 @@
       };
     }
     {
-      name = "form_data___form_data_3.0.1.tgz";
-      path = fetchurl {
-        name = "form_data___form_data_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz";
-        sha1 = "ebd53791b78356a99af9a300d4282c4d5eb9755f";
-      };
-    }
-    {
       name = "form_data___form_data_4.0.0.tgz";
       path = fetchurl {
         name = "form_data___form_data_4.0.0.tgz";
@@ -3074,19 +3122,27 @@
       };
     }
     {
-      name = "gaxios___gaxios_4.3.0.tgz";
+      name = "gaxios___gaxios_4.3.2.tgz";
       path = fetchurl {
-        name = "gaxios___gaxios_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.0.tgz";
-        sha1 = "ad4814d89061f85b97ef52aed888c5dbec32f774";
+        name = "gaxios___gaxios_4.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.2.tgz";
+        sha1 = "845827c2dc25a0213c8ab4155c7a28910f5be83f";
       };
     }
     {
-      name = "gcp_metadata___gcp_metadata_4.3.0.tgz";
+      name = "gcp_metadata___gcp_metadata_4.3.1.tgz";
       path = fetchurl {
-        name = "gcp_metadata___gcp_metadata_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.3.0.tgz";
-        sha1 = "0423d06becdbfb9cbb8762eaacf14d5324997900";
+        name = "gcp_metadata___gcp_metadata_4.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.3.1.tgz";
+        sha1 = "fb205fe6a90fef2fd9c85e6ba06e5559ee1eefa9";
+      };
+    }
+    {
+      name = "get_caller_file___get_caller_file_1.0.3.tgz";
+      path = fetchurl {
+        name = "get_caller_file___get_caller_file_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
+        sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
       };
     }
     {
@@ -3114,11 +3170,11 @@
       };
     }
     {
-      name = "getobject___getobject_1.0.1.tgz";
+      name = "getobject___getobject_1.0.2.tgz";
       path = fetchurl {
-        name = "getobject___getobject_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/getobject/-/getobject-1.0.1.tgz";
-        sha1 = "17d86a05913c15d173a5bcf8662dc7c7ac5ce147";
+        name = "getobject___getobject_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/getobject/-/getobject-1.0.2.tgz";
+        sha1 = "25ec87a50370f6dcc3c6ba7ef43c4c16215c4c89";
       };
     }
     {
@@ -3162,11 +3218,11 @@
       };
     }
     {
-      name = "glob___glob_7.1.7.tgz";
+      name = "glob___glob_7.2.0.tgz";
       path = fetchurl {
-        name = "glob___glob_7.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz";
-        sha1 = "3b193e9233f01d42d0b3f78294bbeeb418f94a90";
+        name = "glob___glob_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz";
+        sha1 = "d15535af7732e02e948f4c41628bd910293f6023";
       };
     }
     {
@@ -3178,6 +3234,14 @@
       };
     }
     {
+      name = "glob___glob_7.1.7.tgz";
+      path = fetchurl {
+        name = "glob___glob_7.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz";
+        sha1 = "3b193e9233f01d42d0b3f78294bbeeb418f94a90";
+      };
+    }
+    {
       name = "global_modules___global_modules_1.0.0.tgz";
       path = fetchurl {
         name = "global_modules___global_modules_1.0.0.tgz";
@@ -3210,19 +3274,19 @@
       };
     }
     {
-      name = "google_auth_library___google_auth_library_7.5.0.tgz";
+      name = "google_auth_library___google_auth_library_7.10.3.tgz";
       path = fetchurl {
-        name = "google_auth_library___google_auth_library_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.5.0.tgz";
-        sha1 = "6b0a623dfb4ee7a8d93a0d25455031d1baf86181";
+        name = "google_auth_library___google_auth_library_7.10.3.tgz";
+        url  = "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.10.3.tgz";
+        sha1 = "e553683315b3095eebef3a8c019c09446cb75a3c";
       };
     }
     {
-      name = "google_p12_pem___google_p12_pem_3.1.1.tgz";
+      name = "google_p12_pem___google_p12_pem_3.1.2.tgz";
       path = fetchurl {
-        name = "google_p12_pem___google_p12_pem_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.1.tgz";
-        sha1 = "98fb717b722d12196a3e5b550c44517562269859";
+        name = "google_p12_pem___google_p12_pem_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.2.tgz";
+        sha1 = "c3d61c2da8e10843ff830fdb0d2059046238c1d4";
       };
     }
     {
@@ -3234,19 +3298,19 @@
       };
     }
     {
-      name = "googleapis_common___googleapis_common_5.0.4.tgz";
+      name = "googleapis_common___googleapis_common_5.0.5.tgz";
       path = fetchurl {
-        name = "googleapis_common___googleapis_common_5.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-5.0.4.tgz";
-        sha1 = "d47ba164dce40ff32f35319e56d1d67209ae25c3";
+        name = "googleapis_common___googleapis_common_5.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-5.0.5.tgz";
+        sha1 = "4c7160be1ed7e4cc8cdbcdb6eac8a4b3a61dd782";
       };
     }
     {
-      name = "googleapis___googleapis_83.0.0.tgz";
+      name = "googleapis___googleapis_92.0.0.tgz";
       path = fetchurl {
-        name = "googleapis___googleapis_83.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/googleapis/-/googleapis-83.0.0.tgz";
-        sha1 = "045399fe8403d8516add6aa90802dda604fcfe20";
+        name = "googleapis___googleapis_92.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/googleapis/-/googleapis-92.0.0.tgz";
+        sha1 = "291b9826a5a4509a9e9a6974ef942328857bfe18";
       };
     }
     {
@@ -3314,11 +3378,11 @@
       };
     }
     {
-      name = "gtoken___gtoken_5.3.0.tgz";
+      name = "gtoken___gtoken_5.3.1.tgz";
       path = fetchurl {
-        name = "gtoken___gtoken_5.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.0.tgz";
-        sha1 = "6536eb2880d9829f0b9d78f756795d4d9064b217";
+        name = "gtoken___gtoken_5.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.1.tgz";
+        sha1 = "c1c2598a826f2b5df7c6bb53d7be6cf6d50c3c78";
       };
     }
     {
@@ -3546,11 +3610,11 @@
       };
     }
     {
-      name = "html_encoding_sniffer___html_encoding_sniffer_2.0.1.tgz";
+      name = "html_encoding_sniffer___html_encoding_sniffer_3.0.0.tgz";
       path = fetchurl {
-        name = "html_encoding_sniffer___html_encoding_sniffer_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz";
-        sha1 = "42a6dc4fd33f00281176e8b23759ca4e4fa185f3";
+        name = "html_encoding_sniffer___html_encoding_sniffer_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz";
+        sha1 = "2cb1a8cf0db52414776e5b2a7a04d5dd98158de9";
       };
     }
     {
@@ -3586,19 +3650,19 @@
       };
     }
     {
-      name = "http_errors___http_errors_1.8.0.tgz";
+      name = "http_errors___http_errors_1.8.1.tgz";
       path = fetchurl {
-        name = "http_errors___http_errors_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz";
-        sha1 = "75d1bbe497e1044f51e4ee9e704a62f28d336507";
+        name = "http_errors___http_errors_1.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz";
+        sha1 = "7c3f28577cbc8a207388455dbd62295ed07bd68c";
       };
     }
     {
-      name = "http_proxy_agent___http_proxy_agent_4.0.1.tgz";
+      name = "http_proxy_agent___http_proxy_agent_5.0.0.tgz";
       path = fetchurl {
-        name = "http_proxy_agent___http_proxy_agent_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz";
-        sha1 = "8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a";
+        name = "http_proxy_agent___http_proxy_agent_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz";
+        sha1 = "5129800203520d434f142bc78ff3c170800f2b43";
       };
     }
     {
@@ -3730,6 +3794,14 @@
       };
     }
     {
+      name = "invert_kv___invert_kv_1.0.0.tgz";
+      path = fetchurl {
+        name = "invert_kv___invert_kv_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz";
+        sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6";
+      };
+    }
+    {
       name = "ipaddr.js___ipaddr.js_1.9.1.tgz";
       path = fetchurl {
         name = "ipaddr.js___ipaddr.js_1.9.1.tgz";
@@ -3794,11 +3866,11 @@
       };
     }
     {
-      name = "is_core_module___is_core_module_2.5.0.tgz";
+      name = "is_core_module___is_core_module_2.8.0.tgz";
       path = fetchurl {
-        name = "is_core_module___is_core_module_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz";
-        sha1 = "f754843617c70bfd29b7bd87327400cda5c18491";
+        name = "is_core_module___is_core_module_2.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz";
+        sha1 = "0321336c3d0925e497fd97f5d95cb114a5ccd548";
       };
     }
     {
@@ -3890,6 +3962,14 @@
       };
     }
     {
+      name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+      path = fetchurl {
+        name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+      };
+    }
+    {
       name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
       path = fetchurl {
         name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
@@ -3906,11 +3986,11 @@
       };
     }
     {
-      name = "is_glob___is_glob_4.0.1.tgz";
+      name = "is_glob___is_glob_4.0.3.tgz";
       path = fetchurl {
-        name = "is_glob___is_glob_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
-        sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
+        name = "is_glob___is_glob_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz";
+        sha1 = "64f61e42cbbb2eec2071a9dac0b28ba1e65d5084";
       };
     }
     {
@@ -4018,6 +4098,14 @@
       };
     }
     {
+      name = "is_utf8___is_utf8_0.2.1.tgz";
+      path = fetchurl {
+        name = "is_utf8___is_utf8_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz";
+        sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
+      };
+    }
+    {
       name = "is_windows___is_windows_1.0.2.tgz";
       path = fetchurl {
         name = "is_windows___is_windows_1.0.2.tgz";
@@ -4194,11 +4282,11 @@
       };
     }
     {
-      name = "jsdom___jsdom_16.7.0.tgz";
+      name = "jsdom___jsdom_19.0.0.tgz";
       path = fetchurl {
-        name = "jsdom___jsdom_16.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz";
-        sha1 = "918ae71965424b197c819f8183a754e18977b710";
+        name = "jsdom___jsdom_19.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsdom/-/jsdom-19.0.0.tgz";
+        sha1 = "93e67c149fe26816d38a849ea30ac93677e16b6a";
       };
     }
     {
@@ -4250,11 +4338,11 @@
       };
     }
     {
-      name = "json_schema___json_schema_0.2.3.tgz";
+      name = "json_schema___json_schema_0.4.0.tgz";
       path = fetchurl {
-        name = "json_schema___json_schema_0.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
-        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+        name = "json_schema___json_schema_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz";
+        sha1 = "f7de4cf6efab838ebaeb3236474cbba5a1930ab5";
       };
     }
     {
@@ -4282,11 +4370,11 @@
       };
     }
     {
-      name = "jsprim___jsprim_1.4.1.tgz";
+      name = "jsprim___jsprim_1.4.2.tgz";
       path = fetchurl {
-        name = "jsprim___jsprim_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
-        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+        name = "jsprim___jsprim_1.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz";
+        sha1 = "712c65533a15c878ba59e9ed5f0e26d5b77c5feb";
       };
     }
     {
@@ -4402,11 +4490,19 @@
       };
     }
     {
-      name = "lazystream___lazystream_1.0.0.tgz";
+      name = "lazystream___lazystream_1.0.1.tgz";
       path = fetchurl {
-        name = "lazystream___lazystream_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz";
-        sha1 = "f6995fe0f820392f61396be89462407bb77168e4";
+        name = "lazystream___lazystream_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz";
+        sha1 = "494c831062f1f9408251ec44db1cba29242a2638";
+      };
+    }
+    {
+      name = "lcid___lcid_1.0.0.tgz";
+      path = fetchurl {
+        name = "lcid___lcid_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz";
+        sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835";
       };
     }
     {
@@ -4458,6 +4554,14 @@
       };
     }
     {
+      name = "load_json_file___load_json_file_1.1.0.tgz";
+      path = fetchurl {
+        name = "load_json_file___load_json_file_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz";
+        sha1 = "956905708d58b4bab4c2261b04f59f31c99374c0";
+      };
+    }
+    {
       name = "load_json_file___load_json_file_4.0.0.tgz";
       path = fetchurl {
         name = "load_json_file___load_json_file_4.0.0.tgz";
@@ -4474,11 +4578,11 @@
       };
     }
     {
-      name = "localforage___localforage_1.9.0.tgz";
+      name = "localforage___localforage_1.10.0.tgz";
       path = fetchurl {
-        name = "localforage___localforage_1.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/localforage/-/localforage-1.9.0.tgz";
-        sha1 = "f3e4d32a8300b362b4634cc4e066d9d00d2f09d1";
+        name = "localforage___localforage_1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/localforage/-/localforage-1.10.0.tgz";
+        sha1 = "5c465dc5f62b2807c3a84c0c6a1b1b3212781dd4";
       };
     }
     {
@@ -4490,6 +4594,14 @@
       };
     }
     {
+      name = "lodash.assign___lodash.assign_4.2.0.tgz";
+      path = fetchurl {
+        name = "lodash.assign___lodash.assign_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz";
+        sha1 = "0d99f3ccd7a6d261d19bdaeb9245005d285808e7";
+      };
+    }
+    {
       name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
       path = fetchurl {
         name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
@@ -4690,11 +4802,11 @@
       };
     }
     {
-      name = "mariadb___mariadb_2.5.4.tgz";
+      name = "mariadb___mariadb_2.5.5.tgz";
       path = fetchurl {
-        name = "mariadb___mariadb_2.5.4.tgz";
-        url  = "https://registry.yarnpkg.com/mariadb/-/mariadb-2.5.4.tgz";
-        sha1 = "c66daa35e2768b8c714c758453531c06ae4927f4";
+        name = "mariadb___mariadb_2.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/mariadb/-/mariadb-2.5.5.tgz";
+        sha1 = "a9aff9f1e57231a415a21254489439beb501c803";
       };
     }
     {
@@ -4794,19 +4906,19 @@
       };
     }
     {
-      name = "mime_db___mime_db_1.49.0.tgz";
+      name = "mime_db___mime_db_1.51.0.tgz";
       path = fetchurl {
-        name = "mime_db___mime_db_1.49.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz";
-        sha1 = "f3dfde60c99e9cf3bc9701d687778f537001cbed";
+        name = "mime_db___mime_db_1.51.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz";
+        sha1 = "d9ff62451859b18342d960850dc3cfb77e63fb0c";
       };
     }
     {
-      name = "mime_types___mime_types_2.1.32.tgz";
+      name = "mime_types___mime_types_2.1.34.tgz";
       path = fetchurl {
-        name = "mime_types___mime_types_2.1.32.tgz";
-        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz";
-        sha1 = "1d00e89e7de7fe02008db61001d9e02852670fd5";
+        name = "mime_types___mime_types_2.1.34.tgz";
+        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz";
+        sha1 = "5a712f9ec1503511a945803640fafe09d3793c24";
       };
     }
     {
@@ -4914,11 +5026,11 @@
       };
     }
     {
-      name = "moment_timezone___moment_timezone_0.5.33.tgz";
+      name = "moment_timezone___moment_timezone_0.5.34.tgz";
       path = fetchurl {
-        name = "moment_timezone___moment_timezone_0.5.33.tgz";
-        url  = "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.33.tgz";
-        sha1 = "b252fd6bb57f341c9b59a5ab61a8e51a73bbd22c";
+        name = "moment_timezone___moment_timezone_0.5.34.tgz";
+        url  = "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.34.tgz";
+        sha1 = "a75938f7476b88f155d3504a9343f7519d9a405c";
       };
     }
     {
@@ -4930,11 +5042,11 @@
       };
     }
     {
-      name = "mongodb_connection_string_url___mongodb_connection_string_url_1.1.0.tgz";
+      name = "mongodb_connection_string_url___mongodb_connection_string_url_1.1.2.tgz";
       path = fetchurl {
-        name = "mongodb_connection_string_url___mongodb_connection_string_url_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-1.1.0.tgz";
-        sha1 = "0bd769f16aa1767758c119c275ea22bb5110915f";
+        name = "mongodb_connection_string_url___mongodb_connection_string_url_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-1.1.2.tgz";
+        sha1 = "a115902fee402b9b24a80c16ced94818daedad91";
       };
     }
     {
@@ -4946,11 +5058,11 @@
       };
     }
     {
-      name = "mongodb___mongodb_3.6.11.tgz";
+      name = "mongodb___mongodb_3.7.3.tgz";
       path = fetchurl {
-        name = "mongodb___mongodb_3.6.11.tgz";
-        url  = "https://registry.yarnpkg.com/mongodb/-/mongodb-3.6.11.tgz";
-        sha1 = "8a59a0491a92b00a8c925f72ed9d9a5b054aebb2";
+        name = "mongodb___mongodb_3.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/mongodb/-/mongodb-3.7.3.tgz";
+        sha1 = "b7949cfd0adc4cc7d32d3f2034214d4475f175a5";
       };
     }
     {
@@ -5074,14 +5186,6 @@
       };
     }
     {
-      name = "nedb___nedb_1.8.0.tgz";
-      path = fetchurl {
-        name = "nedb___nedb_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/nedb/-/nedb-1.8.0.tgz";
-        sha1 = "0e3502cd82c004d5355a43c9e55577bd7bd91d88";
-      };
-    }
-    {
       name = "negotiator___negotiator_0.6.2.tgz";
       path = fetchurl {
         name = "negotiator___negotiator_0.6.2.tgz";
@@ -5130,11 +5234,11 @@
       };
     }
     {
-      name = "node_fetch___node_fetch_2.6.1.tgz";
+      name = "node_fetch___node_fetch_2.6.6.tgz";
       path = fetchurl {
-        name = "node_fetch___node_fetch_2.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz";
-        sha1 = "045bd323631f76ed2e2b55573394416b639a0052";
+        name = "node_fetch___node_fetch_2.6.6.tgz";
+        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.6.tgz";
+        sha1 = "1751a7c01834e8e1697758732e9efb6eeadfaf89";
       };
     }
     {
@@ -5170,11 +5274,11 @@
       };
     }
     {
-      name = "node_windows___node_windows_0.1.14.tgz";
+      name = "node_windows___node_windows_0.1.4.tgz";
       path = fetchurl {
-        name = "node_windows___node_windows_0.1.14.tgz";
-        url  = "https://registry.yarnpkg.com/node-windows/-/node-windows-0.1.14.tgz";
-        sha1 = "31bb0503da3bc637f2bfaa8b266640a2e92d891f";
+        name = "node_windows___node_windows_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/node-windows/-/node-windows-0.1.4.tgz";
+        sha1 = "23d5ee98b6b8290e0a3da9998ee638845fedcb1b";
       };
     }
     {
@@ -5186,11 +5290,11 @@
       };
     }
     {
-      name = "nodemailer___nodemailer_6.6.3.tgz";
+      name = "nodemailer___nodemailer_6.7.2.tgz";
       path = fetchurl {
-        name = "nodemailer___nodemailer_6.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.6.3.tgz";
-        sha1 = "31fb53dd4d8ae16fc088a65cb9ffa8d928a69b48";
+        name = "nodemailer___nodemailer_6.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.2.tgz";
+        sha1 = "44b2ad5f7ed71b7067f7a21c4fedabaec62b85e0";
       };
     }
     {
@@ -5242,6 +5346,14 @@
       };
     }
     {
+      name = "number_is_nan___number_is_nan_1.0.1.tgz";
+      path = fetchurl {
+        name = "number_is_nan___number_is_nan_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
+        sha1 = "097b602b53422a522c1afb8790318336941a011d";
+      };
+    }
+    {
       name = "nwsapi___nwsapi_2.2.0.tgz";
       path = fetchurl {
         name = "nwsapi___nwsapi_2.2.0.tgz";
@@ -5298,11 +5410,11 @@
       };
     }
     {
-      name = "object_inspect___object_inspect_1.11.0.tgz";
+      name = "object_inspect___object_inspect_1.11.1.tgz";
       path = fetchurl {
-        name = "object_inspect___object_inspect_1.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz";
-        sha1 = "9dceb146cedd4148a0d9e51ab88d34cf509922b1";
+        name = "object_inspect___object_inspect_1.11.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.1.tgz";
+        sha1 = "d4bd7d7de54b9a75599f59a00bd698c1f1c6549b";
       };
     }
     {
@@ -5418,11 +5530,19 @@
       };
     }
     {
-      name = "optional_require___optional_require_1.1.4.tgz";
+      name = "optimist___optimist_0.3.7.tgz";
       path = fetchurl {
-        name = "optional_require___optional_require_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/optional-require/-/optional-require-1.1.4.tgz";
-        sha1 = "8af7da26b17da76abbf8a1c46e2e148a63813c0e";
+        name = "optimist___optimist_0.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz";
+        sha1 = "c90941ad59e4273328923074d2cf2e7cbc6ec0d9";
+      };
+    }
+    {
+      name = "optional_require___optional_require_1.1.8.tgz";
+      path = fetchurl {
+        name = "optional_require___optional_require_1.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/optional-require/-/optional-require-1.1.8.tgz";
+        sha1 = "16364d76261b75d964c482b2406cb824d8ec44b7";
       };
     }
     {
@@ -5442,6 +5562,14 @@
       };
     }
     {
+      name = "os_locale___os_locale_1.4.0.tgz";
+      path = fetchurl {
+        name = "os_locale___os_locale_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz";
+        sha1 = "20f9f17ae29ed345e8bde583b13d2009803c14d9";
+      };
+    }
+    {
       name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
       path = fetchurl {
         name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
@@ -5506,6 +5634,14 @@
       };
     }
     {
+      name = "packet_reader___packet_reader_1.0.0.tgz";
+      path = fetchurl {
+        name = "packet_reader___packet_reader_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz";
+        sha1 = "9238e5480dedabacfe1fe3f2771063f164157d74";
+      };
+    }
+    {
       name = "param_case___param_case_2.1.1.tgz";
       path = fetchurl {
         name = "param_case___param_case_2.1.1.tgz";
@@ -5530,6 +5666,14 @@
       };
     }
     {
+      name = "parse_json___parse_json_2.2.0.tgz";
+      path = fetchurl {
+        name = "parse_json___parse_json_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz";
+        sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9";
+      };
+    }
+    {
       name = "parse_json___parse_json_4.0.0.tgz";
       path = fetchurl {
         name = "parse_json___parse_json_4.0.0.tgz";
@@ -5618,11 +5762,11 @@
       };
     }
     {
-      name = "passport_oauth2___passport_oauth2_1.6.0.tgz";
+      name = "passport_oauth2___passport_oauth2_1.6.1.tgz";
       path = fetchurl {
-        name = "passport_oauth2___passport_oauth2_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.6.0.tgz";
-        sha1 = "5f599735e0ea40ea3027643785f81a3a9b4feb50";
+        name = "passport_oauth2___passport_oauth2_1.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.6.1.tgz";
+        sha1 = "c5aee8f849ce8bd436c7f81d904a3cd1666f181b";
       };
     }
     {
@@ -5642,11 +5786,11 @@
       };
     }
     {
-      name = "passport_saml___passport_saml_3.1.1.tgz";
+      name = "passport_saml___passport_saml_3.2.0.tgz";
       path = fetchurl {
-        name = "passport_saml___passport_saml_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/passport-saml/-/passport-saml-3.1.1.tgz";
-        sha1 = "257470003366e06ce3c5738aa64a1209a0f4d7e7";
+        name = "passport_saml___passport_saml_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/passport-saml/-/passport-saml-3.2.0.tgz";
+        sha1 = "72ec8203df6dd872a205b8d5f578859a4e723e42";
       };
     }
     {
@@ -5666,11 +5810,19 @@
       };
     }
     {
-      name = "passport___passport_0.4.1.tgz";
+      name = "passport___passport_0.5.0.tgz";
       path = fetchurl {
-        name = "passport___passport_0.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/passport/-/passport-0.4.1.tgz";
-        sha1 = "941446a21cb92fc688d97a0861c38ce9f738f270";
+        name = "passport___passport_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/passport/-/passport-0.5.0.tgz";
+        sha1 = "7914aaa55844f9dce8c3aa28f7d6b73647ee0169";
+      };
+    }
+    {
+      name = "path_exists___path_exists_2.1.0.tgz";
+      path = fetchurl {
+        name = "path_exists___path_exists_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz";
+        sha1 = "0feb6c64f0fc518d9a754dd5efb62c7022761f4b";
       };
     }
     {
@@ -5730,6 +5882,14 @@
       };
     }
     {
+      name = "path_type___path_type_1.1.0.tgz";
+      path = fetchurl {
+        name = "path_type___path_type_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz";
+        sha1 = "59c44f7ee491da704da415da5a4070ba4f8fe441";
+      };
+    }
+    {
       name = "path_type___path_type_3.0.0.tgz";
       path = fetchurl {
         name = "path_type___path_type_3.0.0.tgz";
@@ -5762,6 +5922,70 @@
       };
     }
     {
+      name = "pg_connection_string___pg_connection_string_2.5.0.tgz";
+      path = fetchurl {
+        name = "pg_connection_string___pg_connection_string_2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz";
+        sha1 = "538cadd0f7e603fc09a12590f3b8a452c2c0cf34";
+      };
+    }
+    {
+      name = "pg_int8___pg_int8_1.0.1.tgz";
+      path = fetchurl {
+        name = "pg_int8___pg_int8_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz";
+        sha1 = "943bd463bf5b71b4170115f80f8efc9a0c0eb78c";
+      };
+    }
+    {
+      name = "pg_pool___pg_pool_3.4.1.tgz";
+      path = fetchurl {
+        name = "pg_pool___pg_pool_3.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.4.1.tgz";
+        sha1 = "0e71ce2c67b442a5e862a9c182172c37eda71e9c";
+      };
+    }
+    {
+      name = "pg_protocol___pg_protocol_1.5.0.tgz";
+      path = fetchurl {
+        name = "pg_protocol___pg_protocol_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.5.0.tgz";
+        sha1 = "b5dd452257314565e2d54ab3c132adc46565a6a0";
+      };
+    }
+    {
+      name = "pg_types___pg_types_2.2.0.tgz";
+      path = fetchurl {
+        name = "pg_types___pg_types_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz";
+        sha1 = "2d0250d636454f7cfa3b6ae0382fdfa8063254a3";
+      };
+    }
+    {
+      name = "pg___pg_8.7.1.tgz";
+      path = fetchurl {
+        name = "pg___pg_8.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/pg/-/pg-8.7.1.tgz";
+        sha1 = "9ea9d1ec225980c36f94e181d009ab9f4ce4c471";
+      };
+    }
+    {
+      name = "pgpass___pgpass_1.0.4.tgz";
+      path = fetchurl {
+        name = "pgpass___pgpass_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.4.tgz";
+        sha1 = "85eb93a83800b20f8057a2b029bf05abaf94ea9c";
+      };
+    }
+    {
+      name = "pgtools___pgtools_0.3.2.tgz";
+      path = fetchurl {
+        name = "pgtools___pgtools_0.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/pgtools/-/pgtools-0.3.2.tgz";
+        sha1 = "df11d54057c889e27ba891664efda69de1b7a0fe";
+      };
+    }
+    {
       name = "picomatch___picomatch_2.3.0.tgz";
       path = fetchurl {
         name = "picomatch___picomatch_2.3.0.tgz";
@@ -5770,6 +5994,14 @@
       };
     }
     {
+      name = "pify___pify_2.3.0.tgz";
+      path = fetchurl {
+        name = "pify___pify_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz";
+        sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
+      };
+    }
+    {
       name = "pify___pify_3.0.0.tgz";
       path = fetchurl {
         name = "pify___pify_3.0.0.tgz";
@@ -5786,6 +6018,22 @@
       };
     }
     {
+      name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
+      path = fetchurl {
+        name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
+        sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
+      };
+    }
+    {
+      name = "pinkie___pinkie_2.0.4.tgz";
+      path = fetchurl {
+        name = "pinkie___pinkie_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz";
+        sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
+      };
+    }
+    {
       name = "pkg_dir___pkg_dir_3.0.0.tgz";
       path = fetchurl {
         name = "pkg_dir___pkg_dir_3.0.0.tgz";
@@ -5810,11 +6058,11 @@
       };
     }
     {
-      name = "plivo___plivo_4.20.1.tgz";
+      name = "plivo___plivo_4.25.0.tgz";
       path = fetchurl {
-        name = "plivo___plivo_4.20.1.tgz";
-        url  = "https://registry.yarnpkg.com/plivo/-/plivo-4.20.1.tgz";
-        sha1 = "032366930f930debab6497b2def2ab07e46361dc";
+        name = "plivo___plivo_4.25.0.tgz";
+        url  = "https://registry.yarnpkg.com/plivo/-/plivo-4.25.0.tgz";
+        sha1 = "ba496e0e75dcbe5747d5770e6e07fd9eb153d7dd";
       };
     }
     {
@@ -5834,6 +6082,38 @@
       };
     }
     {
+      name = "postgres_array___postgres_array_2.0.0.tgz";
+      path = fetchurl {
+        name = "postgres_array___postgres_array_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz";
+        sha1 = "48f8fce054fbc69671999329b8834b772652d82e";
+      };
+    }
+    {
+      name = "postgres_bytea___postgres_bytea_1.0.0.tgz";
+      path = fetchurl {
+        name = "postgres_bytea___postgres_bytea_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
+        sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
+      };
+    }
+    {
+      name = "postgres_date___postgres_date_1.0.7.tgz";
+      path = fetchurl {
+        name = "postgres_date___postgres_date_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz";
+        sha1 = "51bc086006005e5061c591cee727f2531bf641a8";
+      };
+    }
+    {
+      name = "postgres_interval___postgres_interval_1.2.0.tgz";
+      path = fetchurl {
+        name = "postgres_interval___postgres_interval_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz";
+        sha1 = "b460c82cb1587507788819a06aa0fffdb3544695";
+      };
+    }
+    {
       name = "precond___precond_0.2.3.tgz";
       path = fetchurl {
         name = "precond___precond_0.2.3.tgz";
@@ -5978,11 +6258,11 @@
       };
     }
     {
-      name = "qs___qs_6.10.1.tgz";
+      name = "qs___qs_6.10.2.tgz";
       path = fetchurl {
-        name = "qs___qs_6.10.1.tgz";
-        url  = "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz";
-        sha1 = "4931482fa8d647a5aab799c5271d2133b981fb6a";
+        name = "qs___qs_6.10.2.tgz";
+        url  = "https://registry.yarnpkg.com/qs/-/qs-6.10.2.tgz";
+        sha1 = "c1431bea37fc5b24c5bdbafa20f16bdf2a4b9ffe";
       };
     }
     {
@@ -6058,6 +6338,14 @@
       };
     }
     {
+      name = "read_pkg_up___read_pkg_up_1.0.1.tgz";
+      path = fetchurl {
+        name = "read_pkg_up___read_pkg_up_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz";
+        sha1 = "9d63c13276c065918d57f002a57f40a1b643fb02";
+      };
+    }
+    {
       name = "read_pkg_up___read_pkg_up_4.0.0.tgz";
       path = fetchurl {
         name = "read_pkg_up___read_pkg_up_4.0.0.tgz";
@@ -6066,6 +6354,14 @@
       };
     }
     {
+      name = "read_pkg___read_pkg_1.1.0.tgz";
+      path = fetchurl {
+        name = "read_pkg___read_pkg_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz";
+        sha1 = "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28";
+      };
+    }
+    {
       name = "read_pkg___read_pkg_3.0.0.tgz";
       path = fetchurl {
         name = "read_pkg___read_pkg_3.0.0.tgz";
@@ -6322,6 +6618,14 @@
       };
     }
     {
+      name = "require_main_filename___require_main_filename_1.0.1.tgz";
+      path = fetchurl {
+        name = "require_main_filename___require_main_filename_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz";
+        sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
+      };
+    }
+    {
       name = "require_main_filename___require_main_filename_2.0.0.tgz";
       path = fetchurl {
         name = "require_main_filename___require_main_filename_2.0.0.tgz";
@@ -6458,14 +6762,6 @@
       };
     }
     {
-      name = "safe_buffer___safe_buffer_5.2.0.tgz";
-      path = fetchurl {
-        name = "safe_buffer___safe_buffer_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha1 = "b74daec49b1148f88c64b68d49b1e815c1f2f519";
-      };
-    }
-    {
       name = "safe_buffer___safe_buffer_5.2.1.tgz";
       path = fetchurl {
         name = "safe_buffer___safe_buffer_5.2.1.tgz";
@@ -6666,11 +6962,11 @@
       };
     }
     {
-      name = "signal_exit___signal_exit_3.0.3.tgz";
+      name = "signal_exit___signal_exit_3.0.6.tgz";
       path = fetchurl {
-        name = "signal_exit___signal_exit_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz";
-        sha1 = "a1410c2edd8f077b08b4e253c8eacfcaf057461c";
+        name = "signal_exit___signal_exit_3.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz";
+        sha1 = "24e630c4b0f03fea446a2bd299e62b4a6ca8d0af";
       };
     }
     {
@@ -6802,11 +7098,11 @@
       };
     }
     {
-      name = "spdx_license_ids___spdx_license_ids_3.0.9.tgz";
+      name = "spdx_license_ids___spdx_license_ids_3.0.11.tgz";
       path = fetchurl {
-        name = "spdx_license_ids___spdx_license_ids_3.0.9.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz";
-        sha1 = "8a595135def9592bda69709474f1cbeea7c2467f";
+        name = "spdx_license_ids___spdx_license_ids_3.0.11.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz";
+        sha1 = "50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95";
       };
     }
     {
@@ -6818,6 +7114,14 @@
       };
     }
     {
+      name = "split2___split2_3.2.2.tgz";
+      path = fetchurl {
+        name = "split2___split2_3.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz";
+        sha1 = "bf2cf2a37d838312c249c89206fd7a17dd12365f";
+      };
+    }
+    {
       name = "sprintf_js___sprintf_js_1.1.2.tgz";
       path = fetchurl {
         name = "sprintf_js___sprintf_js_1.1.2.tgz";
@@ -6842,11 +7146,11 @@
       };
     }
     {
-      name = "ssh2___ssh2_1.2.0.tgz";
+      name = "ssh2___ssh2_1.5.0.tgz";
       path = fetchurl {
-        name = "ssh2___ssh2_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/ssh2/-/ssh2-1.2.0.tgz";
-        sha1 = "177a46bb12b7ef2b7bce28bdcbd7eae3cbc50045";
+        name = "ssh2___ssh2_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/ssh2/-/ssh2-1.5.0.tgz";
+        sha1 = "4dc559ba98a1cbb420e8d42998dfe35d0eda92bc";
       };
     }
     {
@@ -6930,6 +7234,14 @@
       };
     }
     {
+      name = "string_width___string_width_1.0.2.tgz";
+      path = fetchurl {
+        name = "string_width___string_width_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
+        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+      };
+    }
+    {
       name = "string_width___string_width_3.1.0.tgz";
       path = fetchurl {
         name = "string_width___string_width_3.1.0.tgz";
@@ -6970,6 +7282,14 @@
       };
     }
     {
+      name = "strip_bom___strip_bom_2.0.0.tgz";
+      path = fetchurl {
+        name = "strip_bom___strip_bom_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz";
+        sha1 = "6219a85616520491f35788bdbf1447a99c7e6b0e";
+      };
+    }
+    {
       name = "strip_bom___strip_bom_3.0.0.tgz";
       path = fetchurl {
         name = "strip_bom___strip_bom_3.0.0.tgz";
@@ -6986,6 +7306,14 @@
       };
     }
     {
+      name = "strnum___strnum_1.0.5.tgz";
+      path = fetchurl {
+        name = "strnum___strnum_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz";
+        sha1 = "5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db";
+      };
+    }
+    {
       name = "supports_color___supports_color_2.0.0.tgz";
       path = fetchurl {
         name = "supports_color___supports_color_2.0.0.tgz";
@@ -7058,6 +7386,14 @@
       };
     }
     {
+      name = "telnyx___telnyx_1.23.0.tgz";
+      path = fetchurl {
+        name = "telnyx___telnyx_1.23.0.tgz";
+        url  = "https://registry.yarnpkg.com/telnyx/-/telnyx-1.23.0.tgz";
+        sha1 = "0d949a11f7c819b0d5ce8ae8c36b80bd02e351c8";
+      };
+    }
+    {
       name = "temp_path___temp_path_1.0.0.tgz";
       path = fetchurl {
         name = "temp_path___temp_path_1.0.0.tgz";
@@ -7186,6 +7522,14 @@
       };
     }
     {
+      name = "toidentifier___toidentifier_1.0.1.tgz";
+      path = fetchurl {
+        name = "toidentifier___toidentifier_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz";
+        sha1 = "3be34321a88a820ed1bd80dfaa33e479fbb8dd35";
+      };
+    }
+    {
       name = "tough_cookie___tough_cookie_2.5.0.tgz";
       path = fetchurl {
         name = "tough_cookie___tough_cookie_2.5.0.tgz";
@@ -7218,6 +7562,22 @@
       };
     }
     {
+      name = "tr46___tr46_3.0.0.tgz";
+      path = fetchurl {
+        name = "tr46___tr46_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz";
+        sha1 = "555c4e297a950617e8eeddef633c87d4d9d6cbf9";
+      };
+    }
+    {
+      name = "tr46___tr46_0.0.3.tgz";
+      path = fetchurl {
+        name = "tr46___tr46_0.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz";
+        sha1 = "8184fd347dac9cdc185992f3a6622e14b9d9ab6a";
+      };
+    }
+    {
       name = "trim_right___trim_right_1.0.1.tgz";
       path = fetchurl {
         name = "trim_right___trim_right_1.0.1.tgz";
@@ -7258,11 +7618,19 @@
       };
     }
     {
-      name = "twilio___twilio_3.66.1.tgz";
+      name = "tweetnacl___tweetnacl_1.0.3.tgz";
       path = fetchurl {
-        name = "twilio___twilio_3.66.1.tgz";
-        url  = "https://registry.yarnpkg.com/twilio/-/twilio-3.66.1.tgz";
-        sha1 = "8435441ca45b0c7cb3761c4ba3011ca32e75ba69";
+        name = "tweetnacl___tweetnacl_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz";
+        sha1 = "ac0af71680458d8a6378d0d0d050ab1407d35596";
+      };
+    }
+    {
+      name = "twilio___twilio_3.71.3.tgz";
+      path = fetchurl {
+        name = "twilio___twilio_3.71.3.tgz";
+        url  = "https://registry.yarnpkg.com/twilio/-/twilio-3.71.3.tgz";
+        sha1 = "a446d2b49f8c1ed60b0dd830c919921358c17203";
       };
     }
     {
@@ -7298,11 +7666,11 @@
       };
     }
     {
-      name = "uglify_js___uglify_js_3.14.1.tgz";
+      name = "uglify_js___uglify_js_3.14.4.tgz";
       path = fetchurl {
-        name = "uglify_js___uglify_js_3.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.1.tgz";
-        sha1 = "e2cb9fe34db9cb4cf7e35d1d26dfea28e09a7d06";
+        name = "uglify_js___uglify_js_3.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.4.tgz";
+        sha1 = "68756f17d1b90b9d289341736cb9a567d6882f90";
       };
     }
     {
@@ -7322,11 +7690,11 @@
       };
     }
     {
-      name = "uid2___uid2_0.0.3.tgz";
+      name = "uid2___uid2_0.0.4.tgz";
       path = fetchurl {
-        name = "uid2___uid2_0.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz";
-        sha1 = "483126e11774df2f71b8b639dcd799c376162b82";
+        name = "uid2___uid2_0.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/uid2/-/uid2-0.0.4.tgz";
+        sha1 = "033f3b1d5d32505f5ce5f888b9f3b667123c0a44";
       };
     }
     {
@@ -7346,11 +7714,11 @@
       };
     }
     {
-      name = "underscore___underscore_1.4.4.tgz";
+      name = "underscore___underscore_1.13.1.tgz";
       path = fetchurl {
-        name = "underscore___underscore_1.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz";
-        sha1 = "61a6a32010622afa07963bf325203cf12239d604";
+        name = "underscore___underscore_1.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz";
+        sha1 = "0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1";
       };
     }
     {
@@ -7570,11 +7938,11 @@
       };
     }
     {
-      name = "vasync___vasync_2.2.0.tgz";
+      name = "vasync___vasync_2.2.1.tgz";
       path = fetchurl {
-        name = "vasync___vasync_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/vasync/-/vasync-2.2.0.tgz";
-        sha1 = "cfde751860a15822db3b132bc59b116a4adaf01b";
+        name = "vasync___vasync_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/vasync/-/vasync-2.2.1.tgz";
+        sha1 = "d881379ff3685e4affa8e775cf0fd369262a201b";
       };
     }
     {
@@ -7586,6 +7954,14 @@
       };
     }
     {
+      name = "verror___verror_1.10.1.tgz";
+      path = fetchurl {
+        name = "verror___verror_1.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz";
+        sha1 = "4bf09eeccf4563b109ed4b3d458380c972b0cdeb";
+      };
+    }
+    {
       name = "w3c_hr_time___w3c_hr_time_1.0.2.tgz";
       path = fetchurl {
         name = "w3c_hr_time___w3c_hr_time_1.0.2.tgz";
@@ -7594,11 +7970,11 @@
       };
     }
     {
-      name = "w3c_xmlserializer___w3c_xmlserializer_2.0.0.tgz";
+      name = "w3c_xmlserializer___w3c_xmlserializer_3.0.0.tgz";
       path = fetchurl {
-        name = "w3c_xmlserializer___w3c_xmlserializer_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz";
-        sha1 = "3e7104a05b75146cc60f564380b7f683acf1020a";
+        name = "w3c_xmlserializer___w3c_xmlserializer_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz";
+        sha1 = "06cdc3eefb7e4d0b20a560a5a3aeb0d2d9a65923";
       };
     }
     {
@@ -7634,19 +8010,19 @@
       };
     }
     {
-      name = "webdav___webdav_4.6.0.tgz";
+      name = "webdav___webdav_4.7.0.tgz";
       path = fetchurl {
-        name = "webdav___webdav_4.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/webdav/-/webdav-4.6.0.tgz";
-        sha1 = "b12d3631562ed4a7d665dd1757349682dfc8f441";
+        name = "webdav___webdav_4.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/webdav/-/webdav-4.7.0.tgz";
+        sha1 = "3964c72c1d5dc9854c0031b43e464f260f22476e";
       };
     }
     {
-      name = "webidl_conversions___webidl_conversions_5.0.0.tgz";
+      name = "webidl_conversions___webidl_conversions_3.0.1.tgz";
       path = fetchurl {
-        name = "webidl_conversions___webidl_conversions_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz";
-        sha1 = "ae59c8a00b121543a2acc65c0434f57b0fc11aff";
+        name = "webidl_conversions___webidl_conversions_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz";
+        sha1 = "24534275e2a7bc6be7bc86611cc16ae0a5654871";
       };
     }
     {
@@ -7658,19 +8034,43 @@
       };
     }
     {
-      name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
+      name = "webidl_conversions___webidl_conversions_7.0.0.tgz";
+      path = fetchurl {
+        name = "webidl_conversions___webidl_conversions_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz";
+        sha1 = "256b4e1882be7debbf01d05f0aa2039778ea080a";
+      };
+    }
+    {
+      name = "whatwg_encoding___whatwg_encoding_2.0.0.tgz";
+      path = fetchurl {
+        name = "whatwg_encoding___whatwg_encoding_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz";
+        sha1 = "e7635f597fd87020858626805a2729fa7698ac53";
+      };
+    }
+    {
+      name = "whatwg_mimetype___whatwg_mimetype_3.0.0.tgz";
       path = fetchurl {
-        name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz";
-        sha1 = "5abacf777c32166a51d085d6b4f3e7d27113ddb0";
+        name = "whatwg_mimetype___whatwg_mimetype_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz";
+        sha1 = "5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7";
       };
     }
     {
-      name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
+      name = "whatwg_url___whatwg_url_10.0.0.tgz";
       path = fetchurl {
-        name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz";
-        sha1 = "3d4b1e0312d2079879f826aff18dbeeca5960fbf";
+        name = "whatwg_url___whatwg_url_10.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-10.0.0.tgz";
+        sha1 = "37264f720b575b4a311bd4094ed8c760caaa05da";
+      };
+    }
+    {
+      name = "whatwg_url___whatwg_url_5.0.0.tgz";
+      path = fetchurl {
+        name = "whatwg_url___whatwg_url_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz";
+        sha1 = "966454e8765462e37644d3626f6742ce8b70965d";
       };
     }
     {
@@ -7682,6 +8082,14 @@
       };
     }
     {
+      name = "which_module___which_module_1.0.0.tgz";
+      path = fetchurl {
+        name = "which_module___which_module_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz";
+        sha1 = "bba63ca861948994ff307736089e3b96026c2a4f";
+      };
+    }
+    {
       name = "which_module___which_module_2.0.0.tgz";
       path = fetchurl {
         name = "which_module___which_module_2.0.0.tgz";
@@ -7722,6 +8130,14 @@
       };
     }
     {
+      name = "window_size___window_size_0.2.0.tgz";
+      path = fetchurl {
+        name = "window_size___window_size_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz";
+        sha1 = "b4315bb4214a3d7058ebeee892e13fa24d98b075";
+      };
+    }
+    {
       name = "word_wrap___word_wrap_1.2.3.tgz";
       path = fetchurl {
         name = "word_wrap___word_wrap_1.2.3.tgz";
@@ -7770,6 +8186,14 @@
       };
     }
     {
+      name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+      path = fetchurl {
+        name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
+        sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
+      };
+    }
+    {
       name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
       path = fetchurl {
         name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
@@ -7802,51 +8226,51 @@
       };
     }
     {
-      name = "ws___ws_7.5.3.tgz";
+      name = "ws___ws_7.5.6.tgz";
       path = fetchurl {
-        name = "ws___ws_7.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz";
-        sha1 = "160835b63c7d97bfab418fc1b8a9fced2ac01a74";
+        name = "ws___ws_7.5.6.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz";
+        sha1 = "e59fc509fb15ddfb65487ee9765c5a51dec5fe7b";
       };
     }
     {
-      name = "xml_crypto___xml_crypto_2.1.2.tgz";
+      name = "ws___ws_8.3.0.tgz";
       path = fetchurl {
-        name = "xml_crypto___xml_crypto_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/xml-crypto/-/xml-crypto-2.1.2.tgz";
-        sha1 = "501506d42e466f6cd908c5a03182217231b4e4b8";
+        name = "ws___ws_8.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-8.3.0.tgz";
+        sha1 = "7185e252c8973a60d57170175ff55fdbd116070d";
       };
     }
     {
-      name = "xml_encryption___xml_encryption_1.2.4.tgz";
+      name = "xml_crypto___xml_crypto_2.1.3.tgz";
       path = fetchurl {
-        name = "xml_encryption___xml_encryption_1.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/xml-encryption/-/xml-encryption-1.2.4.tgz";
-        sha1 = "767d13f9ff2f979ff5657b93bd72aa729d34b66c";
+        name = "xml_crypto___xml_crypto_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/xml-crypto/-/xml-crypto-2.1.3.tgz";
+        sha1 = "6a7272b610ea3e4ea7f13e9e4876f1b20cbc32c8";
       };
     }
     {
-      name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
+      name = "xml_encryption___xml_encryption_1.3.0.tgz";
       path = fetchurl {
-        name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz";
-        sha1 = "6ae73e06de4d8c6e47f9fb181f78d648ad457c6a";
+        name = "xml_encryption___xml_encryption_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/xml-encryption/-/xml-encryption-1.3.0.tgz";
+        sha1 = "4cad44a59bf8bdec76d7865ce0b89e13c09962f4";
       };
     }
     {
-      name = "xml2js___xml2js_0.4.23.tgz";
+      name = "xml_name_validator___xml_name_validator_4.0.0.tgz";
       path = fetchurl {
-        name = "xml2js___xml2js_0.4.23.tgz";
-        url  = "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz";
-        sha1 = "a0c69516752421eb2ac758ee4d4ccf58843eac66";
+        name = "xml_name_validator___xml_name_validator_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz";
+        sha1 = "79a006e2e63149a8600f15430f0a4725d1524835";
       };
     }
     {
-      name = "xml___xml_0.0.12.tgz";
+      name = "xml2js___xml2js_0.4.23.tgz";
       path = fetchurl {
-        name = "xml___xml_0.0.12.tgz";
-        url  = "https://registry.yarnpkg.com/xml/-/xml-0.0.12.tgz";
-        sha1 = "f08b347109912be00285785f46f15ad8e50a5f67";
+        name = "xml2js___xml2js_0.4.23.tgz";
+        url  = "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz";
+        sha1 = "a0c69516752421eb2ac758ee4d4ccf58843eac66";
       };
     }
     {
@@ -7898,22 +8322,6 @@
       };
     }
     {
-      name = "xmldom___xmldom_0.5.0.tgz";
-      path = fetchurl {
-        name = "xmldom___xmldom_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz";
-        sha1 = "193cb96b84aa3486127ea6272c4596354cb4962e";
-      };
-    }
-    {
-      name = "xmldom___xmldom_0.6.0.tgz";
-      path = fetchurl {
-        name = "xmldom___xmldom_0.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.6.0.tgz";
-        sha1 = "43a96ecb8beece991cef382c08397d82d4d0c46f";
-      };
-    }
-    {
       name = "xpath___xpath_0.0.32.tgz";
       path = fetchurl {
         name = "xpath___xpath_0.0.32.tgz";
@@ -7938,6 +8346,14 @@
       };
     }
     {
+      name = "y18n___y18n_3.2.2.tgz";
+      path = fetchurl {
+        name = "y18n___y18n_3.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz";
+        sha1 = "85c901bd6470ce71fc4bb723ad209b70f7f28696";
+      };
+    }
+    {
       name = "y18n___y18n_4.0.3.tgz";
       path = fetchurl {
         name = "y18n___y18n_4.0.3.tgz";
@@ -7970,6 +8386,14 @@
       };
     }
     {
+      name = "yargs_parser___yargs_parser_3.2.0.tgz";
+      path = fetchurl {
+        name = "yargs_parser___yargs_parser_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-3.2.0.tgz";
+        sha1 = "5081355d19d9d0c8c5d81ada908cb4e6d186664f";
+      };
+    }
+    {
       name = "yargs___yargs_13.3.2.tgz";
       path = fetchurl {
         name = "yargs___yargs_13.3.2.tgz";
@@ -7978,6 +8402,14 @@
       };
     }
     {
+      name = "yargs___yargs_5.0.0.tgz";
+      path = fetchurl {
+        name = "yargs___yargs_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-5.0.0.tgz";
+        sha1 = "3355144977d05757dbb86d6e38ec056123b3a66e";
+      };
+    }
+    {
       name = "yargs___yargs_3.10.0.tgz";
       path = fetchurl {
         name = "yargs___yargs_3.10.0.tgz";
diff --git a/nixpkgs/pkgs/tools/admin/netplan/default.nix b/nixpkgs/pkgs/tools/admin/netplan/default.nix
index 77f2ad26de1d..b298078aae35 100644
--- a/nixpkgs/pkgs/tools/admin/netplan/default.nix
+++ b/nixpkgs/pkgs/tools/admin/netplan/default.nix
@@ -20,7 +20,6 @@ stdenv.mkDerivation rec {
     repo = "netplan";
     rev = version;
     hash = "sha256-d8Ze8S/w2nyJkATzLfizMqmr7ad2wrK1mjADClee6WE=";
-    fetchSubmodules = false;
   };
 
   nativeBuildInputs = [
@@ -39,12 +38,14 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    substituteInPlace netplan/cli/utils.py --replace "/lib/netplan/generate" "$out/lib/netplan/generate"
-    substituteInPlace netplan/cli/utils.py --replace "ctypes.util.find_library('netplan')" "\"$out/lib/libnetplan.so\""
+    substituteInPlace netplan/cli/utils.py \
+      --replace "/lib/netplan/generate" "$out/lib/netplan/generate" \
+      --replace "ctypes.util.find_library('netplan')" "\"$out/lib/libnetplan.so\""
 
-    substituteInPlace Makefile --replace 'SYSTEMD_GENERATOR_DIR=' 'SYSTEMD_GENERATOR_DIR ?= ' \
-        --replace 'SYSTEMD_UNIT_DIR=' 'SYSTEMD_UNIT_DIR ?= ' \
-        --replace 'BASH_COMPLETIONS_DIR=' 'BASH_COMPLETIONS_DIR ?= '
+    substituteInPlace Makefile \
+      --replace 'SYSTEMD_GENERATOR_DIR=' 'SYSTEMD_GENERATOR_DIR ?= ' \
+      --replace 'SYSTEMD_UNIT_DIR=' 'SYSTEMD_UNIT_DIR ?= ' \
+      --replace 'BASH_COMPLETIONS_DIR=' 'BASH_COMPLETIONS_DIR ?= '
 
     # from upstream https://github.com/canonical/netplan/blob/ee0d5df7b1dfbc3197865f02c724204b955e0e58/rpm/netplan.spec#L81
     sed -e "s/-Werror//g" -i Makefile
diff --git a/nixpkgs/pkgs/tools/admin/procs/default.nix b/nixpkgs/pkgs/tools/admin/procs/default.nix
index b25d1795bfdf..7f4068afca19 100644
--- a/nixpkgs/pkgs/tools/admin/procs/default.nix
+++ b/nixpkgs/pkgs/tools/admin/procs/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "procs";
-  version = "0.11.9";
+  version = "0.11.13";
 
   src = fetchFromGitHub {
     owner = "dalance";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zqRjMCyFT7knI1/zH+RF1pA/OKaDhJZLLjWJhfmqopE=";
+    sha256 = "sha256-OgV4iqtGpia8l+GCySDD+aRIk1mNnJCB0OqZzITTj2I=";
   };
 
-  cargoSha256 = "sha256-W/ZMDbHC1VsllTSxCt77n4eb8Xgfj9YNx5NG5u+D+qA=";
+  cargoSha256 = "sha256-d5GsCzigR5A1pJnvs6rjqMJqUB+H52Gaa1SzkHK5X+Y=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -29,6 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dalance/procs";
     changelog = "https://github.com/dalance/procs/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ dalance Br1ght0ne ];
+    maintainers = with maintainers; [ dalance Br1ght0ne SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/pulumi/data.nix b/nixpkgs/pkgs/tools/admin/pulumi/data.nix
index 39ee5a67a5d6..0786f5b017a5 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi/data.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi/data.nix
@@ -1,392 +1,392 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "3.14.0";
+  version = "3.19.0";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.14.0-linux-x64.tar.gz";
-        sha256 = "02s759rm633h4v5a1s3jxwvkahfjrbkz561spijrp3mihrws3xhb";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.19.0-linux-x64.tar.gz";
+        sha256 = "12q3zhwpy8hrg8ivihzqac82xpgj216nscfz66rwhys1aajdvlih";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.8.1-linux-amd64.tar.gz";
-        sha256 = "0k67bsqiqalqrifd6r7nm6c2g4ckrfhh7a7nfgfmpvqs7cxx1kfm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.10.1-linux-amd64.tar.gz";
+        sha256 = "0hl67xg538arbn7p7qqlx6my9c1ql1q62azwiivrjpj81pfkvx76";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.5.0-linux-amd64.tar.gz";
-        sha256 = "0zvzck8xnv4q3614525y9afmgm3hgidvrz09rbrmqmr9h7ca26hr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.7.0-linux-amd64.tar.gz";
+        sha256 = "1xw8yq4q7d727zqyvc6lfrlf1pl4j0wzmcx5r3gqgv5p44w858vm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.2.0-linux-amd64.tar.gz";
-        sha256 = "1lmy0dmpspzflc9z8p4w1cz47lbqnbkq8dng3v40lpbs75pnprvs";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-linux-amd64.tar.gz";
+        sha256 = "05nfdwgfzi5f3hgj2g6dccaidqf9a9xzlv5vp3cd1rsxd159yk9j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.22.0-linux-amd64.tar.gz";
-        sha256 = "0jl4ic18kf0qcys5mhp6ar4p1bj6ndhi11b51dvzdj5lb39dv43q";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.29.0-linux-amd64.tar.gz";
+        sha256 = "1y5qspns2zab5k1ajkqkh48li0mvyz1wxjx5svdrzca89bnz63rq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.4.0-linux-amd64.tar.gz";
-        sha256 = "0jmbfy6y0l7zpzwndz6xj6jv20ax9rbg8nbqwcadjf96a3zglwhf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.0-linux-amd64.tar.gz";
+        sha256 = "1f21pz6v6bkx5vb02g113l97q5gw9aj459klq4dc9j75mgfdzvfz";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.0.0-linux-amd64.tar.gz";
         sha256 = "1p21963qr8rdl5jp7f05j02yq0ab3flybvzjn7xadcl7m85mkyxh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.2.0-linux-amd64.tar.gz";
-        sha256 = "1h5159y7xlslnijs8lpi4vqgvj2px6whxk9m17p9n7wiyqbmd5na";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.4.0-linux-amd64.tar.gz";
+        sha256 = "14kz4ywhwb0lcsf3nbr9c884x83jdlbxmcg3g9jaq7r739fawpi9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.24.1-linux-amd64.tar.gz";
-        sha256 = "0rmzb3wn5hmx8z8ly85spizinp6ja861k05fhw7l63zhqr8pnls2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.30.0-linux-amd64.tar.gz";
+        sha256 = "1brn2xfvjds5vfpy08r9syss723jw2whn82c8jsfggzfr978i2xh";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-linux-amd64.tar.gz";
         sha256 = "1ixmsxawp0qbyjs37c74gcvj2icpbda6znl17yp9bhiyvnrdvxn7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.3.0-linux-amd64.tar.gz";
-        sha256 = "1f995sg2p1hpqagygsvyfq97gcmy4a925274p96vhy517568d5jg";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.4.0-linux-amd64.tar.gz";
+        sha256 = "0wzbwpnnjm8lnph6kh2nrb0ns2v4y70sp10pp9qnwhcxggqjpb5r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.1.0-linux-amd64.tar.gz";
-        sha256 = "0g392a6zyycdijjn0nswf2x5h31x1hcffgwwkmbjr304n2ycbb50";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-linux-amd64.tar.gz";
+        sha256 = "0nri27c71kf3pjivd0w9ymkl4rn39flh5n2rphi4gn6v4kfb1192";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.3.1-linux-amd64.tar.gz";
-        sha256 = "0jy4k731libkyycm5n1nab1vi9iwmmckghg0ywvskk4mgki5hh1m";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.6.0-linux-amd64.tar.gz";
+        sha256 = "1z43qiwyh9ql1kkmdxxnlbsimfihlr8iby93kzipf62wg9y9ag3b";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.5.0-linux-amd64.tar.gz";
-        sha256 = "194kym832zfnf58z44y5n789xsvqp2dr3jy5sffqqhfrgcgabvr2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.7.0-linux-amd64.tar.gz";
+        sha256 = "195259nlcpwl84kl7bf8k4das4444kc3pigv9jzz9z4cynpdqqp4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.2.0-linux-amd64.tar.gz";
-        sha256 = "057h706kl0c1qq5x0iprikpglllcrb4bfixf5vv3jk8q9s44qbwj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.4.0-linux-amd64.tar.gz";
+        sha256 = "0cn25lrd9f8x7ygaq2074dqv59hh71mfprzjpscl8l7zz3ssh8y9";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-linux-amd64.tar.gz";
         sha256 = "0ffqah4anhdacmfb8n3hdq17jhqq0qclc0l0cq77hvhvgn39yy4r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.7.0-linux-amd64.tar.gz";
-        sha256 = "11mxcinj2s42mzskdh1hx9l8p4jb04ds4xsz6i8k0wffwx5l0p97";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.10.0-linux-amd64.tar.gz";
+        sha256 = "19y5gm5s7ps0cwdv8j7lnlx1r4c94qf6cdc28z725wpyyq1grc38";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.2.2-linux-amd64.tar.gz";
         sha256 = "0glbjhgrb2hiyhd6kwmy7v384j8zw641pw9737g1fczv3x16a3s3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.0.0-linux-amd64.tar.gz";
-        sha256 = "0bp7ki3slszmy1vh4a5d4y4fhbvafrazj1cjf081xv91gi99xxz6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.0-linux-amd64.tar.gz";
+        sha256 = "0w4604mgkq56ilr1k088piwkk676iwqwy2mync9di5iyig0cnrr1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.24.0-linux-amd64.tar.gz";
-        sha256 = "1dznd4c8kpy6mwwb170nfl1m2dmrp6f4jalmk3bdfqscm4xhvk3q";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.3.0-linux-amd64.tar.gz";
+        sha256 = "1a2529yxrjj0gv89sbk74j1nrphwbbbl6x3hl3pv525xqg6j3r95";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.0.0-linux-amd64.tar.gz";
-        sha256 = "04gaimdzh04v7f11xw1b7p95rbb142kbnix1zqas68wd6vpw9kyp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-linux-amd64.tar.gz";
+        sha256 = "0lj01hyjyq3qazkryvvxkx6nwai3bac9shqxb6hcqv4pfdjzzxhr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.2.0-linux-amd64.tar.gz";
-        sha256 = "0d88xfi7zzmpyrnvakwxsyavdx6d5hmfrcf4jhmd53mni0m0551l";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.3.1-linux-amd64.tar.gz";
+        sha256 = "0kx0scva1r44ibfqjl7wwcy0fyywrmixdnx0c57fmf5qm2vlfr34";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.5.1-linux-amd64.tar.gz";
-        sha256 = "0cb2b4rrz7zvdpnf0iff21y4kass7gqfimj854fh6za012j18fnx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.0.0-linux-amd64.tar.gz";
+        sha256 = "16y17hkzp6i3dqv3b41xkl05awkmhpki1bqnnwgl5318hbkvnwab";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.0.1-linux-amd64.tar.gz";
-        sha256 = "0xrq4ffkaa0z5w2g7b9fdll3sh8wpzd6fg0xay7hfzjnl65dl3mp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-linux-amd64.tar.gz";
+        sha256 = "0hl5liyga4iz7j3wy3qicx43d4mijnqayrnmpa5rws29lambgrql";
       }
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.14.0-darwin-x64.tar.gz";
-        sha256 = "1lisk9wr5p866x2hxvlz7nhz0xybhag7wgqk23x0lariln9z5na6";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.19.0-darwin-x64.tar.gz";
+        sha256 = "0sp519ks3glfpmdpmss4pnfnd41ab28k7lm74yl9g96980pcrypd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.8.1-darwin-amd64.tar.gz";
-        sha256 = "103syjj8vla8lygyl5h7ilwm9kl6vxzyn6fdrkz0xcvlhqm1xr30";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.10.1-darwin-amd64.tar.gz";
+        sha256 = "0pqcra8fi3kfg1d6ndpbgmzd3przsxrnypa84vsr933x9cp1748l";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.5.0-darwin-amd64.tar.gz";
-        sha256 = "129gwj053dz8bhl3al5svvg4zb031ccvyxdf4hf5c1c69jhch4zl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.7.0-darwin-amd64.tar.gz";
+        sha256 = "0pk15lbjnrq5ria8c6j8ygbq5gngmmb9g9c1sigfxp9iwlfbpa6k";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.2.0-darwin-amd64.tar.gz";
-        sha256 = "1j7z5dbqzsdq1q8ks9g5pwzyc3ml6avhhp6xj94dzdhskl6pd8w5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-darwin-amd64.tar.gz";
+        sha256 = "0q19sh7l1mjl40i5vdsrjfldncxnicalmlgv3yjkw5xpxkgr98z0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.22.0-darwin-amd64.tar.gz";
-        sha256 = "15c5rh0ix7zxn128kangd5x2x1n61xv9d443a7cbriibwvdkvv0j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.29.0-darwin-amd64.tar.gz";
+        sha256 = "1c47ihgvz95r2dzd1s856l0bxh3myvqxmm2izjkpx9il7cqrf1rf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.4.0-darwin-amd64.tar.gz";
-        sha256 = "0vd527sx49shr3mpbm5bs4sspmm6vsjli6zlbl5w61y85jp2as1m";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.0-darwin-amd64.tar.gz";
+        sha256 = "09hb618pjfz930i9f9vb5qw9im7c8fwrrz5gbpm37zaskamvx7cw";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.0.0-darwin-amd64.tar.gz";
         sha256 = "1idvdcmbbia0cwkw5v7zp7695p1a6sfmrgsfmzn0r9p8lyg66k8w";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.2.0-darwin-amd64.tar.gz";
-        sha256 = "0r2ykjwam5m2mfiibhq993s8n5pzmks837cwb57jwgwx8lc3ra4x";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.4.0-darwin-amd64.tar.gz";
+        sha256 = "15aj3vpafrb6hfrmi46pf6z3wj4y84dljsfzrvd6b5v0svmlr90d";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.24.1-darwin-amd64.tar.gz";
-        sha256 = "06lfimnlns1bfvks0kv5rjcnz6dvdk38npigyigsk9vqs0idcfi3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.30.0-darwin-amd64.tar.gz";
+        sha256 = "050iqf2fls9r81kq5rimnh41gs8pp29scx31l8i2ff0bq5gvbg3h";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-darwin-amd64.tar.gz";
         sha256 = "1dy4n03xvirg6fihiid786d88qlkyqkvk4fq6ggnxc92620x7342";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.3.0-darwin-amd64.tar.gz";
-        sha256 = "12nba4xjcrh4g9iy3mqalk56bga4l3izqm9rj0fg3cyivr9fffvr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.4.0-darwin-amd64.tar.gz";
+        sha256 = "0p3zkgr557ngl6pjdidrp76b741nkdsw4s7wf1aj4mpw74fshm3g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.1.0-darwin-amd64.tar.gz";
-        sha256 = "0awksrbsmvkgfszdsxfv8wfs1m16y1551jnz0rf51dq0cn9963hq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-darwin-amd64.tar.gz";
+        sha256 = "06s58xlwm3wf7895bzsqx4jsfb0kbxanzlaf21jff45y62nk1f1p";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.3.1-darwin-amd64.tar.gz";
-        sha256 = "1x73niikvanfzfbkwnfjy4r4qzzrss3g18p4mqpakkg4h16r3vgk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.6.0-darwin-amd64.tar.gz";
+        sha256 = "0x74zlpzy1ajc9y0jkj32vhn4yn2rhldapdn0zlky7ss844a2gfk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.5.0-darwin-amd64.tar.gz";
-        sha256 = "1gf83dv5wqvmx8ll7my3c8biklrddjrv069g97d3n510m0k7w85w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.7.0-darwin-amd64.tar.gz";
+        sha256 = "0rggsafqsby8jy905xj0f6m75f2n0mf2z2wcjrsns3fcgcw322q1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.2.0-darwin-amd64.tar.gz";
-        sha256 = "0sss5mjjwwgvayqjvk7j4wpsrwmk8yzx3phnjxvq2mb7c4d25why";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.4.0-darwin-amd64.tar.gz";
+        sha256 = "1pmkwii8bsrr5k3lm0j2hr2fpzrcrwbbfisygr49w5cngx44k5sa";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-darwin-amd64.tar.gz";
         sha256 = "0j8ysk4wh78xhk3nv6c1dvvyw5ihs7amwlyqicch52yc6jq3v5a6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.7.0-darwin-amd64.tar.gz";
-        sha256 = "173vqfihlbrn7dzxml9lsswalp0hvnp46bjb6bqwiyhsw0f8zak9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.10.0-darwin-amd64.tar.gz";
+        sha256 = "115lcaqkliaxqg27hb1j773299kgs44d3l7p2da9kzla3sk7dps0";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.2.2-darwin-amd64.tar.gz";
         sha256 = "0621njipng32x43lw8n49mapq10lnvibg8vlvgciqsfvrbpz1yp5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.0.0-darwin-amd64.tar.gz";
-        sha256 = "1i73sxh6vf6adg6as1q1mab3fcjm7ma7gixj2b0y0d2a5d78lhpa";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.0-darwin-amd64.tar.gz";
+        sha256 = "03f0k13qyi40hvhkfnwrdadxv5r1r2jphrf49nq81l35knqvs7fs";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.24.0-darwin-amd64.tar.gz";
-        sha256 = "1jxrz82cadmqkd1d26bj5r3bphvzz5z20shjai351hlh9aa3bv2h";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.3.0-darwin-amd64.tar.gz";
+        sha256 = "1vdfvybqnvd0s8ln6340608vg00l2zhsndg8r03js57a5asmakyf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.0.0-darwin-amd64.tar.gz";
-        sha256 = "18vrp0zzi92x4l5nkjszvd0zr7pk6nl6s3h5a3hvsz5qrj2830q3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-darwin-amd64.tar.gz";
+        sha256 = "0fhhc2k0g8mpxzcgci4jl3m59q3n8w3nka94l0n7r9cvs81099n6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.2.0-darwin-amd64.tar.gz";
-        sha256 = "12mkr0xczdnp21k0k7qn4r3swkaq3pr6v2z853p1db7ksz5kds23";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.3.1-darwin-amd64.tar.gz";
+        sha256 = "0bdhzbhzjdypf5xr756wx061myml9w765zmff7k7pw438hpzln2p";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.5.1-darwin-amd64.tar.gz";
-        sha256 = "1n82xwkngql039m3pa1pwa8wvqg089mr8xnai67jyj1kryjsij56";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.0.0-darwin-amd64.tar.gz";
+        sha256 = "0wry626g455r4lp8cfhjlg2zqwbgvbm2pk1qf9kwsisg1fszpq7a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.0.1-darwin-amd64.tar.gz";
-        sha256 = "1qb2gaiinclmbswyn5aakwjmm3gaggscckb1q2syx69k42hvp3s3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-darwin-amd64.tar.gz";
+        sha256 = "1wkyjxgrp3llvis3yjdnw65chscmxxcwigkr71i2crj28db8fhwx";
       }
     ];
     aarch64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.14.0-linux-arm64.tar.gz";
-        sha256 = "041lmx5d1c8ls48mv56jchvk714rqw7jywywdgm6d6ipq7h5d67k";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.19.0-linux-arm64.tar.gz";
+        sha256 = "1s0k743s7b6d2dccbia8909h7a7xjr8526h3ywkncqxam1gfjjlv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.8.1-linux-arm64.tar.gz";
-        sha256 = "0rijbqaw584b5c0kihrs80cv46s06yv3a68yz1dwa8sl7adi7n9p";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.10.1-linux-arm64.tar.gz";
+        sha256 = "1zcpqjlgpkjzk2bdy8gcnhpfgzadc7r8z2vb5xc4vvf5q3q25sxy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.5.0-linux-arm64.tar.gz";
-        sha256 = "165yambk3grc2mxk4md4cn7zl8kjqbp4pqjagnsyyi1fz9vl974i";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.7.0-linux-arm64.tar.gz";
+        sha256 = "07j1gbmmciw9nyy4khhcfj8ayb91pwgrvghwr2i67f9prs570a79";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.2.0-linux-arm64.tar.gz";
-        sha256 = "0mddv37k87wiygh6x9bnxpcr721qbmbqf6l5zk3xl61n56j8qyb1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-linux-arm64.tar.gz";
+        sha256 = "0j2c23ii4dn9yhpw6nymij65gv82y1xp4gi8lgxxf41b1i9bpb2i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.22.0-linux-arm64.tar.gz";
-        sha256 = "19aiksm4d4jxs9gw7rdr77ag58fy1v7gkk6r730imgq0d8vsacm1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.29.0-linux-arm64.tar.gz";
+        sha256 = "1fr593m1g2y3k8qw1j20ssv2jd3c5m3cr6h4p5v6fng2ph3m3v7i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.4.0-linux-arm64.tar.gz";
-        sha256 = "0ybw5cbiw64zmaqjwlfk5b73h5sy0pk40f15hq41d9rdkc0sypxi";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.0-linux-arm64.tar.gz";
+        sha256 = "1m5gnc0a6svhzd27z0m151pzws6n3vsgj8bha7jl77znzxqrlxz1";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.0.0-linux-arm64.tar.gz";
         sha256 = "0k4yi9xqrmd5m99lr27h672ycwyh138d9jhh3wvgpmnjpdxy28jm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.2.0-linux-arm64.tar.gz";
-        sha256 = "1sc8rf930cz6nkyhqn6p0h7450iqzdsrlw2smhp8yyjjvcjmsksf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.4.0-linux-arm64.tar.gz";
+        sha256 = "06ii12cl7wsfs9pwjkwz01szacg686vfzc6i253l6xvmmiqp6q0j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.24.1-linux-arm64.tar.gz";
-        sha256 = "1bvzazdis423vb1r30q15q1irh07kgymv5ikzmvrygf4hm3aph06";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.30.0-linux-arm64.tar.gz";
+        sha256 = "02whsgdx0cd8nblfjgymsay9vyfmv8aah2y5nqkl7c6dzrlqllav";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-linux-arm64.tar.gz";
         sha256 = "12iv8vjnal2ym70rxmdnvi02x6md7fxi8jbzhzfw526pzqs1dc47";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.3.0-linux-arm64.tar.gz";
-        sha256 = "1pjvrhmci1fbakx74yndjhkvxxy4yfnwrwbk12dyb3mxc07iycfj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.4.0-linux-arm64.tar.gz";
+        sha256 = "1hiqcy51ag4y8j47di5h07mnplrhpc5f406ab6car2c06fwr2wdn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.1.0-linux-arm64.tar.gz";
-        sha256 = "1hicy131pj6z4ni074f34qhvjyycjxl0024iir5021g1scm3hp7w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-linux-arm64.tar.gz";
+        sha256 = "14v7wm2gkhd064drw2l894dacdsm5lnndii5qzl5hsl6p9a5m970";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.3.1-linux-arm64.tar.gz";
-        sha256 = "0aqr1q113cydg9n0j9kjhl39cm7vwws2c1q2cqyp451w60q29cmp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.6.0-linux-arm64.tar.gz";
+        sha256 = "0rp8qfrm3kgmr19ryg259m3n48wf5fyyff1bvnjinivq5irvl4j9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.5.0-linux-arm64.tar.gz";
-        sha256 = "0ap4izb3507rw965qvww1nd2h9jz7ilav92fjdhhvf33g44r6r8y";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.7.0-linux-arm64.tar.gz";
+        sha256 = "0al7hrf3ymsq0h611j4f5i8k94rr19i44ym1gschmn7byn0v3ksa";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.2.0-linux-arm64.tar.gz";
-        sha256 = "06xdcm0cg3sh92fvwy8l4c0k91fah7hdxjb6mjchas2wk4q32vhq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.4.0-linux-arm64.tar.gz";
+        sha256 = "0sfnic280p76d2aa635h1jgjx5lbf1fgm6bkrvq5nx6i5x9vy05x";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-linux-arm64.tar.gz";
         sha256 = "1lh1g90ab4blqmvx0yfp516hfsd6n1y751ab7fzhv7hcajf3klvi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.7.0-linux-arm64.tar.gz";
-        sha256 = "0yzv0knff1rw89nj0jiivjnzshq3x1gh7q1ybbdgy5nlpc5ys5rf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.10.0-linux-arm64.tar.gz";
+        sha256 = "1hik4456fdln7hxiw02856v02v0m33zsyiad40c9wg4n772ybchy";
       }
       # pulumi-resource-packet skipped (does not exist on remote)
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.0.0-linux-arm64.tar.gz";
-        sha256 = "0mwpbvv62k8fg07447wwfigs4li4n78fswpzwi4alsjrkqlmw9dj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.0-linux-arm64.tar.gz";
+        sha256 = "1cz42cbvx4nah5jj712rf1r8r6p35ip6xl1kjgvxlrr23kq5vdjk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.24.0-linux-arm64.tar.gz";
-        sha256 = "1b8fi56wkk753w6ip1nkrksyk8qd5ypdbaq668pk60l3jb0c9mad";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.3.0-linux-arm64.tar.gz";
+        sha256 = "06pag44k2rg5dhq2x0xrcqs365p49f9fkbp78rb8k31skvlc27jh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.0.0-linux-arm64.tar.gz";
-        sha256 = "1slrl020xl092hjfr92zjf8i2ys8vzr3nxqh65fhnl0fzfsllvn0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-linux-arm64.tar.gz";
+        sha256 = "17iaf72dzy108v1njan21n72a5gzxbycq396hjh293a141kppn1m";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.2.0-linux-arm64.tar.gz";
-        sha256 = "1l7zpvacq6kyzj8n82drs9gdfa16k4j945w8nsd0z33byrswxr3w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.3.1-linux-arm64.tar.gz";
+        sha256 = "13p2gg9ihwkyx35r7ilkp56qrrj4kcg4x1v8gspsbbahb9cbagvk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.5.1-linux-arm64.tar.gz";
-        sha256 = "0kxi3fm2463bq6n0bnf0sbf4zjhg0c86bxw52dlmc8kp2zqc6lr3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.0.0-linux-arm64.tar.gz";
+        sha256 = "01rxaqzb72y56cwah90ypgrlg8jlajvyb7n6cakhvnn98nb281fi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.0.1-linux-arm64.tar.gz";
-        sha256 = "03z7b32l2jp1si13qy2rjvkjw789sqaypza7q2k4vhwaxyiw715z";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-linux-arm64.tar.gz";
+        sha256 = "1f7h6xl3jk9y29ffjxv9r4a748fwip17x7pazs62zwc3h10a65ac";
       }
     ];
     aarch64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.14.0-darwin-arm64.tar.gz";
-        sha256 = "06qc42gb2w2qjy2mz5shh082607395jq0js34wlqq61jgjzpca5l";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.19.0-darwin-arm64.tar.gz";
+        sha256 = "097sqsm53wdal1vnklqcxz8ys95w5ffw0n2gcx5rrgcld3fnrrc6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.8.1-darwin-arm64.tar.gz";
-        sha256 = "1wqkm32lkwff5gwn7dbznzx5rcbcysj2mx4ip77whba59ikfchsj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.10.1-darwin-arm64.tar.gz";
+        sha256 = "1laqs75i8fnzg7zzf3v73xxvg1k4n5qazays1wh6id3wamx5mgk4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.5.0-darwin-arm64.tar.gz";
-        sha256 = "18q0gizvn8jjyrvz6j2jv1xqca3pqdi5jk7qk44dyqwd8rq99a8i";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.7.0-darwin-arm64.tar.gz";
+        sha256 = "12xnw6gp38dfgc6qvxbipbsv7yqidjazrzjj40aaknk5cqgr0b0f";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.2.0-darwin-arm64.tar.gz";
-        sha256 = "0fj1ai1kv8xgmsvfbmy5gsinxag70rx9a9gkifqgcpn3r9mj48ks";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-darwin-arm64.tar.gz";
+        sha256 = "1i5ipmidg0yspayxyglbjaihajhj1bsk46saxkncfrkvqnh4iq50";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.22.0-darwin-arm64.tar.gz";
-        sha256 = "09v28dgrs5a4w8qn4v4zwrn7n7cn2475a2jh9qz3g2ljaj0086fd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.29.0-darwin-arm64.tar.gz";
+        sha256 = "0dz698vijizcrfrv4ss4qadxnmklxpz78bwgv4x4crvwr3hjlamr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.4.0-darwin-arm64.tar.gz";
-        sha256 = "1iyc67r551bi1h20lfb2qp5b2ds8kf09gklbaz73k90hcrf0g9la";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.0-darwin-arm64.tar.gz";
+        sha256 = "1ziyhvjwkzq0wvxfxbprpprm8hcch75ifrij6fzlw3z0hxdd1bjf";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.0.0-darwin-arm64.tar.gz";
         sha256 = "0fsmmgq0hvzyrw6vrdf3pppxjcj94fxxp52dl73r4f5wjkays33c";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.2.0-darwin-arm64.tar.gz";
-        sha256 = "1c3pchbnk6dsnxsl02ypq7s4mmkxdgxszdhql1klpx5js7i1lv8k";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.4.0-darwin-arm64.tar.gz";
+        sha256 = "0sgg8bnsi5yyfv8gwzy8jw3f0fmkvizrgzh4jyc802qqc449p1ix";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.24.1-darwin-arm64.tar.gz";
-        sha256 = "0fafl5zpnzkncvi52qw6f4898yia8p0whvr41m3g8cxcp6nyr0ij";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.30.0-darwin-arm64.tar.gz";
+        sha256 = "11bhs20hpmgcyvpha8pbg8gd9v2r1fahjsaiif5fdx9dvpqmnsmi";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-darwin-arm64.tar.gz";
         sha256 = "0jrihnwfh5wvc95nipqv7ak77kq9xj0pk5hlapv9w2ls5pwykv0r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.3.0-darwin-arm64.tar.gz";
-        sha256 = "0p7hmdax7bzn93mv6l79g3g38fh1axnryyq8sg3h16wj8gcc8kq5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.4.0-darwin-arm64.tar.gz";
+        sha256 = "18ggnqx9zh8kl5h6nn2sa4zxvyby9pvscrvqnsam2l9yjv86r7i0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.1.0-darwin-arm64.tar.gz";
-        sha256 = "118kszs5y3ajh702dyy4wivwdima30s3spbr3cdm9g7aabqhl5l6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-darwin-arm64.tar.gz";
+        sha256 = "0n60fk2nyb1idf4rdc61jxjpzpw4v9106gwn6r1by10g8f1712yr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.3.1-darwin-arm64.tar.gz";
-        sha256 = "0qkarpxgb3bpxn75pvxvvsphc9m71778ffyynl1nph5sz64p5wc2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.6.0-darwin-arm64.tar.gz";
+        sha256 = "1kg60sfa570k55p3fvqa952k1m17z9amr168m4lzqcdp63bfrzay";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.5.0-darwin-arm64.tar.gz";
-        sha256 = "1y0wc1279ka05ng7wq6skmwyrmp1sb2sc64wiqx52napxvzjpv9r";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.7.0-darwin-arm64.tar.gz";
+        sha256 = "13wxbpsqsh3prq6j12ih6cx6pcrfp97d0i5b7mk3d9imj3qdyf8x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.2.0-darwin-arm64.tar.gz";
-        sha256 = "0sg5c85dd0gvy9977igj1b06pdy2my62208fcfy11xf6bf1wqqvi";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.4.0-darwin-arm64.tar.gz";
+        sha256 = "0830la5hb84nv077mlsymrhl4ny4j1xvmqlpvy4r5kldrx0h9pa8";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-darwin-arm64.tar.gz";
         sha256 = "1z0gd0fagv55dl3ki340h0ljw7dqj8818w4072pc5xxy5id90gb0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.7.0-darwin-arm64.tar.gz";
-        sha256 = "0nk3p9y0b0a8ig20mgpcddw2d58i3zp94kmz3wv0arkh8h8wl749";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.10.0-darwin-arm64.tar.gz";
+        sha256 = "1agi0dpck35rqsvxikdcl6xl2fpha2l4144mzgyslki4q86rqmhs";
       }
       # pulumi-resource-packet skipped (does not exist on remote)
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.0.0-darwin-arm64.tar.gz";
-        sha256 = "1hzhlxbwji4p8apx4rnqllsgf1k11w49rplz0syzmzb2fxpkif75";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.0-darwin-arm64.tar.gz";
+        sha256 = "1hinrhq950ah3ngszm2d9hn6i327lxfl0f9d83nxiknzpw395glw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.24.0-darwin-arm64.tar.gz";
-        sha256 = "0nh8305b6qlqr63xaacxs3v804dhrwdz179xlzdgzf9550zdqb39";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.3.0-darwin-arm64.tar.gz";
+        sha256 = "094zffj64rymjcgncbxwkdh6vp7g8s6f1nync9066jh29qzll6mf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.0.0-darwin-arm64.tar.gz";
-        sha256 = "10a2f5kdgk3jcd1441zbfcfnrl5zj6ks832jjmbyym33by7scvgc";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-darwin-arm64.tar.gz";
+        sha256 = "0kym9f36h8b7s1smlmgazbzv8jjfpwxk6wv036bhx2xm3ysc7rgp";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.2.0-darwin-arm64.tar.gz";
-        sha256 = "1rmvc2kgjmb978sfmlga6xy4i0f629lk1l95i30wg0rmj1hx3dag";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.3.1-darwin-arm64.tar.gz";
+        sha256 = "1qixa4vsak042vxqv7xsggvdcqyfs8sl10hnf3chdx2xwspm8hjy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.5.1-darwin-arm64.tar.gz";
-        sha256 = "0h9lj565slf1gvzkk8vlk285jgssi62kmayim8473fgbgp3yj6jr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.0.0-darwin-arm64.tar.gz";
+        sha256 = "0lh4b6z75yg7zss59bfwmsp2dfryk867845jw5655g7ya15n99da";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.0.1-darwin-arm64.tar.gz";
-        sha256 = "0ci3xnxnwrk6dds21yifis1mrz24z2nxqdbya0qpqprkq6syvx41";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-darwin-arm64.tar.gz";
+        sha256 = "1915f5d24vfrwgzvs5nkj5p05fjgqjyxpm54ym2wshl9s4fjb6sp";
       }
     ];
   };
diff --git a/nixpkgs/pkgs/tools/admin/pulumi/update.sh b/nixpkgs/pkgs/tools/admin/pulumi/update.sh
index abc91c18ae3b..051cf4c90b00 100755
--- a/nixpkgs/pkgs/tools/admin/pulumi/update.sh
+++ b/nixpkgs/pkgs/tools/admin/pulumi/update.sh
@@ -6,7 +6,7 @@ API_URL="https://api.github.com/repos/pulumi"
 
 # Version of Pulumi from
 # https://www.pulumi.com/docs/get-started/install/versions/
-VERSION="3.14.0"
+VERSION="3.19.0"
 
 # A hashmap containing a plugin's name and it's respective repository inside
 # Pulumi's Github organization
diff --git a/nixpkgs/pkgs/tools/admin/puppet/puppet-bolt/Gemfile.lock b/nixpkgs/pkgs/tools/admin/puppet/puppet-bolt/Gemfile.lock
index 4d5554b1173a..ff3a8eda88f6 100644
--- a/nixpkgs/pkgs/tools/admin/puppet/puppet-bolt/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/admin/puppet/puppet-bolt/Gemfile.lock
@@ -4,20 +4,20 @@ GEM
     CFPropertyList (2.3.6)
     addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
-    aws-eventstream (1.1.1)
-    aws-partitions (1.493.0)
-    aws-sdk-core (3.119.1)
+    aws-eventstream (1.2.0)
+    aws-partitions (1.516.0)
+    aws-sdk-core (3.121.2)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.239.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-ec2 (1.260.0)
-      aws-sdk-core (~> 3, >= 3.119.0)
+    aws-sdk-ec2 (1.271.0)
+      aws-sdk-core (~> 3, >= 3.121.2)
       aws-sigv4 (~> 1.1)
-    aws-sigv4 (1.2.4)
+    aws-sigv4 (1.4.0)
       aws-eventstream (~> 1, >= 1.0.2)
     bindata (2.4.10)
-    bolt (3.17.0)
+    bolt (3.19.0)
       CFPropertyList (~> 2.2)
       addressable (~> 2.5)
       aws-sdk-ec2 (~> 1)
@@ -35,7 +35,7 @@ GEM
       puppet-resource_api (>= 1.8.1)
       puppet-strings (~> 2.3)
       puppetfile-resolver (~> 0.5)
-      r10k (~> 3.1)
+      r10k (~> 3.10)
       ruby_smb (~> 1.0)
       terminal-table (~> 1.8)
       winrm (~> 2.0)
@@ -47,7 +47,7 @@ GEM
     cri (2.15.10)
     deep_merge (1.2.1)
     erubi (1.10.0)
-    facter (4.2.3)
+    facter (4.2.5)
       hocon (~> 1.3)
       thor (>= 1.0.1, < 2.0)
     faraday (0.17.4)
@@ -55,7 +55,7 @@ GEM
     faraday_middleware (0.14.0)
       faraday (>= 0.7.4, < 1.0)
     fast_gettext (1.1.2)
-    ffi (1.15.3)
+    ffi (1.15.4)
     gettext (3.2.9)
       locale (>= 2.0.5)
       text (>= 1.3.0)
@@ -100,7 +100,7 @@ GEM
       faraday
       net-http-persistent
     public_suffix (4.0.6)
-    puppet (7.10.0)
+    puppet (7.12.0)
       concurrent-ruby (~> 1.0)
       deep_merge (~> 1.0)
       facter (> 2.0.1, < 5)
@@ -125,7 +125,7 @@ GEM
     puppetfile-resolver (0.5.0)
       molinillo (~> 0.6)
       semantic_puppet (~> 1.0)
-    r10k (3.11.0)
+    r10k (3.12.1)
       colored2 (= 3.1.2)
       cri (= 2.15.10)
       fast_gettext (~> 1.1.0)
@@ -135,7 +135,7 @@ GEM
       log4r (= 1.1.10)
       multi_json (~> 1.10)
       puppet_forge (~> 2.3.0)
-    rgen (0.8.2)
+    rgen (0.9.0)
     ruby_smb (1.1.0)
       bindata
       rubyntlm
@@ -148,7 +148,7 @@ GEM
       unicode-display_width (~> 1.1, >= 1.1.1)
     text (1.3.1)
     thor (1.1.0)
-    unicode-display_width (1.7.0)
+    unicode-display_width (1.8.0)
     windows_error (0.1.2)
     winrm (2.3.6)
       builder (>= 2.1.2)
diff --git a/nixpkgs/pkgs/tools/admin/puppet/puppet-bolt/gemset.nix b/nixpkgs/pkgs/tools/admin/puppet/puppet-bolt/gemset.nix
index 9ea6423f29d9..12126edfc829 100644
--- a/nixpkgs/pkgs/tools/admin/puppet/puppet-bolt/gemset.nix
+++ b/nixpkgs/pkgs/tools/admin/puppet/puppet-bolt/gemset.nix
@@ -15,20 +15,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jfki5ikfr8ln5cdgv4iv1643kax0bjpp29jh78chzy713274jh3";
+      sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz";
       type = "gem";
     };
-    version = "1.1.1";
+    version = "1.2.0";
   };
   aws-partitions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qq2fsccafv3lag6c86xai9nbiszfhzfdj9hla9iphjpa1wlfqcp";
+      sha256 = "1jx44f1hc41712k8fqmzrbpqs2j9yl0msdqcmmfp0pirkbqw6ri0";
       type = "gem";
     };
-    version = "1.493.0";
+    version = "1.516.0";
   };
   aws-sdk-core = {
     dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
@@ -36,10 +36,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l09wjfa3y38jc5njqcxmj4f6gra79adhxzmsym2cvcrazcv272w";
+      sha256 = "0d44wgbzlwc6gb2ql9cayljdwhlvz9byp2grk0n9favb7rq42fwc";
       type = "gem";
     };
-    version = "3.119.1";
+    version = "3.121.2";
   };
   aws-sdk-ec2 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -47,10 +47,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07l9nsd9fk42qbc727s73qylrrbag6l1qig5xgcfqjh2m2qjb9b4";
+      sha256 = "0k85khm2c53y2sq29c9rg5kmjm1fnw2glgpjsl6hbh8cq3ciaain";
       type = "gem";
     };
-    version = "1.260.0";
+    version = "1.271.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -58,10 +58,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cb9hsg0x9v4yk6sxif8968sg646qphmsjaqy9z8p7y3my5bkrf0";
+      sha256 = "1wh1y79v0s4zgby2m79bnifk65hwf5pvk2yyrxzn2jkjjq8f8fqa";
       type = "gem";
     };
-    version = "1.2.4";
+    version = "1.4.0";
   };
   bindata = {
     groups = ["default"];
@@ -79,10 +79,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zszklla2j1dh4w9drz03zn20ls5im4vji5wsvn6zbyaj2ivkdiq";
+      sha256 = "0jmknsa10zazwba1mi19awywk14vj0danppx1hqzmmrpp0af98if";
       type = "gem";
     };
-    version = "3.17.0";
+    version = "3.19.0";
   };
   builder = {
     groups = ["default"];
@@ -170,10 +170,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08n13ygl2fripg9a8wxf2p6qpv48dkmq079cbcpw3g351pq38gzk";
+      sha256 = "1mhq4rmyc60ijzw6f6sbphyb76vlwcgbaqyqw6y7wb8qdisn19wc";
       type = "gem";
     };
-    version = "4.2.3";
+    version = "4.2.5";
   };
   faraday = {
     dependencies = ["multipart-post"];
@@ -212,10 +212,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wgvaclp4h9y8zkrgz8p2hqkrgr4j7kz0366mik0970w532cbmcq";
+      sha256 = "0ssxcywmb3flxsjdg13is6k01807zgzasdhj4j48dm7ac59cmksn";
       type = "gem";
     };
-    version = "1.15.3";
+    version = "1.15.4";
   };
   gettext = {
     dependencies = ["locale" "text"];
@@ -503,10 +503,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bfqwz6jyx746sf06bh14blf1g2xh7lv5bqpradzpfkxgxcy9j2b";
+      sha256 = "02d9rqbqlmdbw6zh89zwh27ra6pqspcv5afqbpj1yrvg1k6cliri";
       type = "gem";
     };
-    version = "7.10.0";
+    version = "7.12.0";
   };
   puppet-resource_api = {
     dependencies = ["hocon"];
@@ -558,20 +558,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "004z9nhgc3w33snrcyjikhrw53nk5nprysq9l3dkssv79ygfw5dg";
+      sha256 = "05qwvwgh08g5pw1cxikb7hpg0ia6nisva1gwpj0d9gb9wacml2qh";
       type = "gem";
     };
-    version = "3.11.0";
+    version = "3.12.1";
   };
   rgen = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "077kbdnn4cp6jks0w4xsybpiw2cc8y2c7hw7zx5dpf9cwzl7mq0p";
+      sha256 = "18ryflbkc2pvbb7jwl35pnyb1mlx9fby85dnqi7hsbz78mzsf87n";
       type = "gem";
     };
-    version = "0.8.2";
+    version = "0.9.0";
   };
   ruby_smb = {
     dependencies = ["bindata" "rubyntlm" "windows_error"];
@@ -660,10 +660,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
+      sha256 = "1204c1jx2g89pc25qk5150mk7j5k90692i7ihgfzqnad6qni74h2";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "1.8.0";
   };
   windows_error = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/admin/realvnc-vnc-viewer/default.nix b/nixpkgs/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
index 690c215471cf..2e8eabfc1a36 100644
--- a/nixpkgs/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
+++ b/nixpkgs/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
@@ -2,18 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "realvnc-vnc-viewer";
-  version = "6.21.406";
+  version = "6.21.920";
 
   src = {
     "x86_64-linux" = fetchurl {
       url = "https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-${version}-Linux-x64.rpm";
-      sha256 = "0rnizzanaykqg1vfy56p8abc4fmgpbibj54j4c1v81zsj3kmahka";
+      sha256 = "1qghc5380h4b2pczksmky3kcffz5wn9shw033w4f969wl96p31fz";
     };
     "i686-linux" = fetchurl {
       url = "https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-${version}-Linux-x86.rpm";
-      sha256 = "1rlxfiqymi1licn2spyiqa00kiwzhdr0pkh7vv3ai6gb9f6phk31";
+      sha256 = "034iwqxpqhnm6i292fakva7vkwrrzamwcvbm7xyccpd54adj0grn";
     };
-  }.${stdenv.system};
+  }.${stdenv.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   nativeBuildInputs = [ autoPatchelfHook rpmextract ];
   buildInputs = [ libX11 libXext ];
diff --git a/nixpkgs/pkgs/tools/admin/salt/default.nix b/nixpkgs/pkgs/tools/admin/salt/default.nix
index 9e411e1ae3a4..6f7b86f04489 100644
--- a/nixpkgs/pkgs/tools/admin/salt/default.nix
+++ b/nixpkgs/pkgs/tools/admin/salt/default.nix
@@ -5,20 +5,36 @@
   # passing them in this array enables Salt to find them.
 , extraInputs ? []
 }:
-python3.pkgs.buildPythonApplication rec {
+
+let
+  py = python3.override {
+    packageOverrides = self: super: {
+      # Incompatible with pyzmq 22
+      pyzmq = super.pyzmq.overridePythonAttrs (oldAttrs: rec {
+        version = "21.0.2";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "CYwTxhmJE8KgaQI1+nTS5JFhdV9mtmO+rsiWUVVMx5w=";
+        };
+      });
+   };
+  };
+in
+py.pkgs.buildPythonApplication rec {
   pname = "salt";
-  version = "3003.3";
+  version = "3004";
 
-  src = python3.pkgs.fetchPypi {
+  src = py.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "pvnIyLXiYA6oYgtKZzcd4XYRvrT42X5LubCzCKN+0eI=";
+    sha256 = "PVNWG8huAU3KLsPcmBB5vgTVXqBHiQyr3iXlsQv6WxM=";
   };
 
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = with py.pkgs; [
     distro
     jinja2
     markupsafe
     msgpack
+    psutil
     pycryptodomex
     pyyaml
     pyzmq
diff --git a/nixpkgs/pkgs/tools/admin/scaleway-cli/default.nix b/nixpkgs/pkgs/tools/admin/scaleway-cli/default.nix
index 2a8f0d1f1148..2576208e8d22 100644
--- a/nixpkgs/pkgs/tools/admin/scaleway-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/scaleway-cli/default.nix
@@ -1,18 +1,21 @@
-{ lib, fetchFromGitHub, buildGoPackage }:
+{ lib, fetchFromGitHub, buildGoModule }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "scaleway-cli";
-  version = "1.20";
-
-  goPackagePath = "github.com/scaleway/scaleway-cli";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "scaleway";
     repo = "scaleway-cli";
     rev = "v${version}";
-    sha256 = "14likzp3hl04nq9nmpmh9m5zqjyspy5cyk20dkh03c1nhkd4vcnx";
+    sha256 = "yYzcziEKPSiMvw9LWd60MkHmYFAvN7Qza6Z117NOOv0=";
   };
 
+  vendorSha256 = "0V9sHi/E095txnfF8YFW5O7o0e1H3sdn3tw5LqB92tI=";
+
+  # some tests require network access to scaleway's API, failing when sandboxed
+  doCheck = false;
+
   meta = with lib; {
     description = "Interact with Scaleway API from the command line";
     homepage = "https://github.com/scaleway/scaleway-cli";
diff --git a/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix b/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix
index 549b60c6dbeb..e843c0d347a0 100644
--- a/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "stripe-cli";
-  version = "1.7.3";
+  version = "1.7.9";
 
   src = fetchFromGitHub {
     owner = "stripe";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Hlh2nfqQD+HMoJ2n1vfffn5ieEKSMtXpdoM0ydFQqrc=";
+    sha256 = "sha256-rCo3iHLfiEH/+APNztKKSdoJerz161jF7sNx8qTFw3U=";
   };
 
-  vendorSha256 = "sha256-DTNwgerJ7qZxH4imdrST7TaR20oevDluEDgAlubg5hw=";
+  vendorSha256 = "sha256-Duu6lP87KKLC1eGIebycBSIPw7FN6BBxPexize9+jPE=";
 
   subPackages = [
     "cmd/stripe"
diff --git a/nixpkgs/pkgs/tools/admin/synapse-admin/default.nix b/nixpkgs/pkgs/tools/admin/synapse-admin/default.nix
new file mode 100644
index 000000000000..8ca0816f9e42
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/synapse-admin/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, stdenv
+, fetchzip
+}:
+
+stdenv.mkDerivation rec {
+  pname = "synapse-admin";
+  version = "0.8.3";
+
+  src = fetchzip {
+    url = "https://github.com/Awesome-Technologies/synapse-admin/releases/download/${version}/synapse-admin-${version}.tar.gz";
+    hash = "sha256-LAdMxzUffnykiDHvQYu9uNxK4428Q9CxQY2q02AcUco=";
+  };
+
+  installPhase = ''
+    cp -r . $out
+  '';
+
+  meta = with lib; {
+    description = "Admin UI for Synapse Homeservers";
+    homepage = "https://github.com/Awesome-Technologies/synapse-admin";
+    license = licenses.apsl20;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ mkg20001 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/admin/tigervnc/default.nix b/nixpkgs/pkgs/tools/admin/tigervnc/default.nix
index 1ef584ec977f..1824265b84af 100644
--- a/nixpkgs/pkgs/tools/admin/tigervnc/default.nix
+++ b/nixpkgs/pkgs/tools/admin/tigervnc/default.nix
@@ -12,14 +12,14 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "1.11.0";
+  version = "1.12.0";
   pname = "tigervnc";
 
   src = fetchFromGitHub {
     owner = "TigerVNC";
     repo = "tigervnc";
     rev = "v${version}";
-    sha256 = "sha256-IX39oEhTyk7NV+9dD9mFtes22fBdMTAVIv5XkqFK560=";
+    sha256 = "sha256-77X+AvHFWfYYIio3c+EYf11jg/1IbYhNUweRIDHMOZw=";
   };
 
 
diff --git a/nixpkgs/pkgs/tools/admin/tightvnc/default.nix b/nixpkgs/pkgs/tools/admin/tightvnc/default.nix
index 0da2e7875f08..e466b95c4f00 100644
--- a/nixpkgs/pkgs/tools/admin/tightvnc/default.nix
+++ b/nixpkgs/pkgs/tools/admin/tightvnc/default.nix
@@ -82,5 +82,9 @@ stdenv.mkDerivation rec {
 
     maintainers = [];
     platforms = lib.platforms.unix;
+
+    knownVulnerabilities = [ "CVE-2021-42785" ];
+    # Unfortunately, upstream doesn't maintain the 1.3 branch anymore, and the
+    # new 2.x branch is substantially different (requiring either Windows or Java)
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/trinsic-cli/default.nix b/nixpkgs/pkgs/tools/admin/trinsic-cli/default.nix
new file mode 100644
index 000000000000..fb129760dc2f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/trinsic-cli/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, rustPlatform, fetchurl, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "trinsic-cli";
+  version = "1.1.2";
+
+  src = fetchurl {
+    url = "https://github.com/trinsic-id/sdk/releases/download/v${version}/trinsic-cli-vendor-${version}.tar.gz";
+    sha256 = "7e5377e8460ebb1253b9974e02d0077ffc58f2b4712cf7896f1bef7e9f580cd4";
+  };
+
+  cargoVendorDir = "vendor";
+  doCheck = false;
+
+  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+
+  meta = with lib; {
+    description = "Trinsic CLI";
+    longDescription = ''
+      Command line interface for Trinsic Ecosystems
+    '';
+    homepage = "https://trinsic.id/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ tmarkovski ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/admin/trivy/default.nix b/nixpkgs/pkgs/tools/admin/trivy/default.nix
index c3b90d99bafb..957ad7f51efc 100644
--- a/nixpkgs/pkgs/tools/admin/trivy/default.nix
+++ b/nixpkgs/pkgs/tools/admin/trivy/default.nix
@@ -1,25 +1,34 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.19.2";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-aYPG0xvuijASKXBGgB+6UyF9bmeU8l5snOoPWI8Ewh8=";
+    sha256 = "sha256-DH4vr6WiGwzT9zTMs/UqVoCHhpOSoT5t8P9plTPt8ZQ=";
   };
 
-  vendorSha256 = "sha256-4FO6/1eNyxy/CH7XMUkLfRqEg2+XUXL1gKleL6o4EoM=";
+  vendorSha256 = "sha256-1m3izHfxMUvUiz21NRjqdNS95sXf8Rwlu5TuQ411190=";
 
   excludedPackages = "misc";
 
   ldflags = [
-    "-s" "-w" "-X main.version=v${version}"
+    "-s"
+    "-w"
+    "-X main.version=v${version}"
   ];
 
+  # Tests requires network access
+  doCheck = false;
+
   doInstallCheck = true;
+
   installCheckPhase = ''
     runHook preInstallCheck
     $out/bin/trivy --help
diff --git a/nixpkgs/pkgs/tools/admin/turbovnc/default.nix b/nixpkgs/pkgs/tools/admin/turbovnc/default.nix
index c0af38e10f3b..26916cc5598c 100644
--- a/nixpkgs/pkgs/tools/admin/turbovnc/default.nix
+++ b/nixpkgs/pkgs/tools/admin/turbovnc/default.nix
@@ -22,13 +22,13 @@
 
 stdenv.mkDerivation rec {
   pname = "turbovnc";
-  version = "2.2.6";
+  version = "2.2.7";
 
   src = fetchFromGitHub {
     owner = "TurboVNC";
     repo = "turbovnc";
     rev = version;
-    sha256 = "sha256-HSppHPBBkTf+88ZBaYG6JK4A/5lOBCxPFv6898TD7PE=";
+    sha256 = "sha256-mEdatfTBx4nNmMTgv1Z+xefPFEiE2rCrsxyB7Dd03rg=";
   };
 
   # TODO:
diff --git a/nixpkgs/pkgs/tools/admin/winbox/default.nix b/nixpkgs/pkgs/tools/admin/winbox/default.nix
new file mode 100644
index 000000000000..38b7318746d0
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/winbox/default.nix
@@ -0,0 +1,79 @@
+{ lib
+, stdenv
+, fetchurl
+, makeDesktopItem
+, makeWrapper
+, symlinkJoin
+, writeShellScriptBin
+
+, wine
+, use64 ? false
+}:
+
+let
+  inherit (lib) last splitString;
+
+  pname = "winbox";
+  version = "3.32";
+  name = "${pname}-${version}";
+
+  executable = fetchurl (if use64 then {
+    url = "https://download.mikrotik.com/winbox/${version}/${pname}64.exe";
+    sha256 = "1gf0zdn4ahfp08fn5w0nzigwldl3bjqcj2f08rcvyn0mbwar4znn";
+  } else {
+    url = "https://download.mikrotik.com/winbox/${version}/${pname}.exe";
+    sha256 = "18rmbnv7iwba19sfh4q4wfwh385snrmpvs6dyad2s9rv7vh2nch7";
+  });
+  # This is from the winbox AUR package:
+  # https://aur.archlinux.org/cgit/aur.git/tree/winbox64?h=winbox64&id=8edd93792af84e87592e8645ca09e9795931e60e
+  wrapper = writeShellScriptBin pname ''
+    export WINEPREFIX="''${WINBOX_HOME:-"''${XDG_DATA_HOME:-"''${HOME}/.local/share"}/winbox"}/wine"
+    export WINEARCH=${if use64 then "win64" else "win32"}
+    export WINEDLLOVERRIDES="mscoree=" # disable mono
+    export WINEDEBUG=-all
+    if [ ! -d "$WINEPREFIX" ] ; then
+      mkdir -p "$WINEPREFIX"
+      ${wine}/bin/wineboot -u
+    fi
+
+    ${wine}/bin/wine ${executable} "$@"
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = pname;
+    desktopName = "Winbox";
+    comment = "GUI administration for Mikrotik RouterOS";
+    exec = pname;
+    icon = pname;
+    type = "Application";
+    categories = "Utility";
+    extraDesktopEntries = {
+      StartupWMClass = last (splitString "/" executable);
+    };
+  };
+
+  # The icon is also from the winbox AUR package (see above).
+  icon = fetchurl {
+    name = "winbox.png";
+    url = "https://aur.archlinux.org/cgit/aur.git/plain/winbox.png?h=winbox";
+    sha256 = "sha256-YD6u2N+1thRnEsXO6AHm138fRda9XEtUX5+EGTg004A=";
+  };
+in
+symlinkJoin {
+  inherit name pname version;
+  paths = [ wrapper desktopItem ];
+
+  postBuild = ''
+    mkdir -p "$out/share/pixmaps"
+    ln -s "${icon}" "$out/share/pixmaps/${pname}.png"
+  '';
+
+  meta = with lib; {
+    description = "Graphical configuration utility for RouterOS-based devices";
+    homepage = "https://mikrotik.com";
+    downloadPage = "https://mikrotik.com/download";
+    changelog = "https://wiki.mikrotik.com/wiki/Winbox_changelog";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ yrd ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/archivers/7zz/default.nix b/nixpkgs/pkgs/tools/archivers/7zz/default.nix
index 63e603353409..8d23b3a5c3c3 100644
--- a/nixpkgs/pkgs/tools/archivers/7zz/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/7zz/default.nix
@@ -1,47 +1,48 @@
-{ lib, stdenv, fetchurl, autoPatchelfHook }:
+{ stdenv, lib, fetchurl, p7zip }:
 
-let platform =       if stdenv.isi686    then "x86"
-                else if stdenv.isx86_64  then "x64"
-                else if stdenv.isAarch32 then "arm"
-                else if stdenv.isAarch64 then "arm64"
-                else throw "Unsupported architecture";
+# https://sourceforge.net/p/sevenzip/discussion/45797/thread/7fe6c21efa/
+stdenv.mkDerivation rec {
+  pname = "7zz";
+  version = "21.04";
 
-    url = "https://7-zip.org/a/7z2101-linux-${platform}.tar.xz";
+  src = fetchurl {
+    url = "https://7-zip.org/a/7z${lib.replaceStrings ["." ] [""] version}-src.7z";
+    sha256 = "sha256-XmuEyIJAJQM0ZbgrW02lQ2rp4KFDBjLXKRaTfY+VCOg=";
+  };
 
-    hashes = {
-      x86 = "0k6vg85ld8i2pcv5sv3xbvf3swqh9qj8hf2jcpadssys3yyidqyj";
-      x64 = "1yfanx98fizj8d2s87yxgsy30zydx7h5w9wf4wy3blgsp0vkbjb3";
-      arm = "04iah9vijm86r8rbkhxig86fx3lpag4xi7i3vq7gfrlwkymclhm1";
-      arm64 = "0a26ginpb22aydcyvffxpbi7lxh4sgs9gb6cj96qqx7cnf7bk2ri";
-    };
-    sha256 = hashes."${platform}";
+  sourceRoot = "CPP/7zip/Bundles/Alone2";
 
-in stdenv.mkDerivation {
-  pname = "7zz";
-  version = "21.01";
+  # we need https://github.com/nidud/asmc/tree/master/source/asmc/linux in order
+  # to build with the optimized assembler but that doesn't support building with
+  # GCC: https://github.com/nidud/asmc/issues/8
+  makefile = "../../cmpl_gcc.mak"; # "../../cmpl_gcc_x64.mak";
 
-  src = fetchurl { inherit url sha256; };
-  sourceRoot = ".";
+  NIX_CFLAGS_COMPILE = [ "-Wno-error=maybe-uninitialized" ];
 
-  nativeBuildInputs = [ autoPatchelfHook ];
-  buildInputs = [ stdenv.cc.cc.lib ];
+  nativeBuildInputs = [ p7zip ];
 
-  dontBuild = true;
+  enableParallelBuilding = true;
 
   installPhase = ''
     runHook preInstall
-    install -D -t $out/bin 7zz
+
+    install -Dm555 -t $out/bin b/g/7zz
+    install -Dm444 -t $out/share/doc/${pname} ../../../../DOC/*.txt
+
     runHook postInstall
   '';
 
-  meta = with lib; {
-    description = "Command line archiver utility";
-    homepage = "https://www.7-zip.org";
+  doInstallCheck = true;
 
-    # source not released yet. will be under LGPL 2.1+ with RAR exception
-    license = licenses.unfree;
+  installCheckPhase = ''
+    $out/bin/7zz --help | grep ${version}
+  '';
 
-    platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" ];
-    maintainers = with maintainers; [ anna328p ];
+  meta = with lib; {
+    description = "Command line archiver utility";
+    homepage = "https://7zip.org";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ anna328p peterhoeg ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/archivers/arc_unpacker/default.nix b/nixpkgs/pkgs/tools/archivers/arc_unpacker/default.nix
index edf67f2f963b..7fbd93023970 100644
--- a/nixpkgs/pkgs/tools/archivers/arc_unpacker/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/arc_unpacker/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, makeWrapper, boost, libpng, libiconv
-, libjpeg, zlib, openssl, libwebp, catch }:
+, libjpeg, zlib, openssl, libwebp, catch2 }:
 
 stdenv.mkDerivation rec {
   pname = "arc_unpacker";
@@ -15,12 +15,12 @@ stdenv.mkDerivation rec {
     sha256 = "1xxrc9nww0rla3yh10z6glv05ax4rynwwbd0cdvkp7gyqzrv97xp";
   };
 
-  nativeBuildInputs = [ cmake makeWrapper catch ];
+  nativeBuildInputs = [ cmake makeWrapper catch2 ];
   buildInputs = [ boost libpng libjpeg zlib openssl libwebp ]
     ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
   postPatch = ''
-    cp ${catch}/include/catch/catch.hpp tests/test_support/catch.h
+    cp ${catch2}/include/catch2/catch.hpp tests/test_support/catch.h
   '';
 
   checkPhase = ''
@@ -45,8 +45,8 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  # A few tests fail on aarch64
-  doCheck = !stdenv.isAarch64;
+  # A few tests fail on aarch64-linux
+  doCheck = !(stdenv.isLinux && stdenv.isAarch64);
 
   meta = with lib; {
     description = "A tool to extract files from visual novel archives";
diff --git a/nixpkgs/pkgs/tools/archivers/arj/default.nix b/nixpkgs/pkgs/tools/archivers/arj/default.nix
index e09e390fa473..6f365e226e20 100644
--- a/nixpkgs/pkgs/tools/archivers/arj/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/arj/default.nix
@@ -128,6 +128,11 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook ];
 
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace environ.c \
+        --replace "  #include <sys/statfs.h>" "  #include <sys/mount.h>"
+  '';
+
   preAutoreconf = ''
     cd gnu
   '';
diff --git a/nixpkgs/pkgs/tools/archivers/corearchiver/default.nix b/nixpkgs/pkgs/tools/archivers/corearchiver/default.nix
deleted file mode 100644
index 217520dde994..000000000000
--- a/nixpkgs/pkgs/tools/archivers/corearchiver/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ mkDerivation, lib, fetchFromGitLab, qtbase, libarchive, libarchive-qt, libcprime, cmake, ninja, }:
-
-mkDerivation rec {
-  pname = "corearchiver";
-  version = "4.2.0";
-
-  src = fetchFromGitLab {
-    owner = "cubocore/coreapps";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-FJGsQp1lbsrvlzKPiTv/FC9RH2+JRwwIvkLDTFW8t5s=";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    ninja
-  ];
-
-  buildInputs = [
-    qtbase
-    libcprime
-    libarchive-qt
-    libarchive
-  ];
-
-  meta = with lib; {
-    description = "Archiver from the C Suite to create and extract archives";
-    homepage = "https://gitlab.com/cubocore/coreapps/corearchiver";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ dan4ik605743 ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/archivers/cpio/default.nix b/nixpkgs/pkgs/tools/archivers/cpio/default.nix
index 1ae8de975a5e..274fe0ac8326 100644
--- a/nixpkgs/pkgs/tools/archivers/cpio/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/cpio/default.nix
@@ -30,6 +30,8 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  separateDebugInfo = true;
+
   preConfigure = lib.optionalString stdenv.isCygwin ''
     sed -i gnu/fpending.h -e 's,include <stdio_ext.h>,,'
   '';
diff --git a/nixpkgs/pkgs/tools/archivers/pax/default.nix b/nixpkgs/pkgs/tools/archivers/pax/default.nix
index d554ea4dade3..cfba3754c819 100644
--- a/nixpkgs/pkgs/tools/archivers/pax/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/pax/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, utmp }:
 
 stdenv.mkDerivation rec {
   pname = "pax";
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1p18nxijh323f4i1s2pg7pcr0557xljl5avv8ll5s9nfr34r5j0w";
   };
 
+  buildInputs = lib.optional stdenv.isDarwin utmp;
+
   buildPhase = ''
     sh Build.sh -r -tpax
   '';
diff --git a/nixpkgs/pkgs/tools/archivers/tarlz/default.nix b/nixpkgs/pkgs/tools/archivers/tarlz/default.nix
new file mode 100644
index 000000000000..1e1842d2907e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/archivers/tarlz/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchurl, lzip, lzlib, texinfo }:
+
+stdenv.mkDerivation rec {
+  pname = "tarlz";
+  version = "0.21";
+  outputs = [ "out" "man" "info" ];
+
+  nativeBuildInputs = [ lzip texinfo ];
+  buildInputs = [ lzlib ];
+
+  src = fetchurl {
+    url = "mirror://savannah/lzip/${pname}/${pname}-${version}.tar.lz";
+    sha256 = "sha256-D5chEt0/Emo5TVoEEHaVzLu55gPnsZM2e9FxRgfgrfQ=";
+  };
+
+  enableParallelBuilding = true;
+  makeFlags = [ "CXX:=$(CXX)" ];
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://www.nongnu.org/lzip/${pname}.html";
+    description =
+      "Massively parallel combined implementation of the tar archiver and the lzip compressor";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ehmry ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/archivers/torrent7z/default.nix b/nixpkgs/pkgs/tools/archivers/torrent7z/default.nix
new file mode 100644
index 000000000000..74eaa4409f75
--- /dev/null
+++ b/nixpkgs/pkgs/tools/archivers/torrent7z/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "torrent7z";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "BubblesInTheTub";
+    repo = pname;
+    rev = version;
+    sha256 = "Y2tr0+z9uij4Ifi6FfWRN24BwcDXUZKVLkLtKUiVjU4=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "fix-gcc10-compilation.patch"; # Fix compilation on GCC 10. This patch is included on the latest commit
+      url =
+        "https://github.com/paulyc/torrent7z/commit/5958f42a364c430b3ed4ac68911bbbea1f967fc4.patch";
+      sha256 = "vJOv1sG9XwTvvxQiWew0H5ALoUb9wIAouzTsTvKHuPI=";
+    })
+  ];
+
+  buildInputs = [ ncurses ];
+
+  hardeningDisable = [ "format" ];
+
+  postPatch = ''
+    # Remove non-free RAR source code
+    # (see DOC/License.txt, https://fedoraproject.org/wiki/Licensing:Unrar)
+    rm -r linux_src/p7zip_4.65/CPP/7zip/Compress/Rar*
+    find . -name makefile'*' -exec sed -i '/Rar/d' {} +
+  '';
+
+  preConfigure = ''
+    mkdir linux_src/p7zip_4.65/bin
+    cd linux_src/p7zip_4.65/CPP/7zip/Bundles/Alone
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ../../../../bin/t7z $out/bin
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/BubblesInTheTub/torrent7z";
+    description = "A fork of torrent7z, viz a derivative of 7zip that produces invariant .7z archives for torrenting";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ cirno-999 ];
+    mainProgram = "t7z";
+    # RAR code is under non-free UnRAR license, but we remove it
+    license = licenses.gpl3Only;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/archivers/unar/default.nix b/nixpkgs/pkgs/tools/archivers/unar/default.nix
index f3f7b32e1192..5ce51fb0134e 100644
--- a/nixpkgs/pkgs/tools/archivers/unar/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/unar/default.nix
@@ -1,4 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, installShellFiles, gnustep, bzip2, zlib, icu, openssl, wavpack }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, installShellFiles
+, gnustep
+, bzip2
+, zlib
+, icu
+, openssl
+, wavpack
+, xcbuildHook
+, Foundation
+, AppKit
+}:
 
 stdenv.mkDerivation rec {
   pname = "unar";
@@ -12,35 +25,54 @@ stdenv.mkDerivation rec {
     sha256 = "0p846q1l66k3rnd512sncp26zpv411b8ahi145sghfcsz9w8abc4";
   };
 
-  postPatch = ''
-    for f in Makefile.linux ../UniversalDetector/Makefile.linux ; do
-      substituteInPlace $f \
-        --replace "= gcc" "=${stdenv.cc.targetPrefix}cc" \
-        --replace "= g++" "=${stdenv.cc.targetPrefix}c++" \
-        --replace "-DGNU_RUNTIME=1" "" \
-        --replace "-fgnu-runtime" "-fobjc-nonfragile-abi"
-    done
+  postPatch =
+    if stdenv.isDarwin then ''
+      substituteInPlace "./XADMaster.xcodeproj/project.pbxproj" \
+        --replace "libstdc++.6.dylib" "libc++.1.dylib"
+    '' else ''
+      for f in Makefile.linux ../UniversalDetector/Makefile.linux ; do
+        substituteInPlace $f \
+          --replace "= gcc" "=${stdenv.cc.targetPrefix}cc" \
+          --replace "= g++" "=${stdenv.cc.targetPrefix}c++" \
+          --replace "-DGNU_RUNTIME=1" "" \
+          --replace "-fgnu-runtime" "-fobjc-nonfragile-abi"
+      done
 
-    # we need to build inside this directory as well, so we have to make it writeable
-    chmod +w ../UniversalDetector -R
-  '';
+      # we need to build inside this directory as well, so we have to make it writeable
+      chmod +w ../UniversalDetector -R
+    '';
 
-  buildInputs = [ gnustep.base bzip2 icu openssl wavpack zlib ];
+  buildInputs = [ bzip2 icu openssl wavpack zlib ] ++
+    lib.optionals stdenv.isLinux [ gnustep.base ] ++
+    lib.optionals stdenv.isDarwin [ Foundation AppKit ];
 
-  nativeBuildInputs = [ gnustep.make installShellFiles ];
+  nativeBuildInputs = [ installShellFiles ] ++
+    lib.optionals stdenv.isLinux [ gnustep.make ] ++
+    lib.optionals stdenv.isDarwin [ xcbuildHook ];
+
+  xcbuildFlags = lib.optionals stdenv.isDarwin [
+    "-target unar"
+    "-target lsar"
+    "-configuration Release"
+    "MACOSX_DEPLOYMENT_TARGET=10.12"
+    # Fix "ld: file not found: /nix/store/*-clang-7.1.0/lib/arc/libarclite_macosx." error
+    # Disabling ARC may leak memory, however since this program is generally not used for
+    # long periods of time, it shouldn't be an issue
+    "CLANG_LINK_OBJC_RUNTIME=NO"
+  ];
+
+  makefile = lib.optionalString (!stdenv.isDarwin) "Makefile.linux";
 
   enableParallelBuilding = true;
 
   dontConfigure = true;
 
-  makefile = "Makefile.linux";
-
   sourceRoot = "./source/XADMaster";
 
   installPhase = ''
     runHook preInstall
 
-    install -Dm555 -t $out/bin lsar unar
+    install -Dm555 -t $out/bin ${lib.optionalString stdenv.isDarwin "Products/Release/"}{lsar,unar}
     for f in lsar unar; do
       installManPage ./Extra/$f.?
       installShellCompletion --bash --name $f ./Extra/$f.bash_completion
@@ -60,7 +92,7 @@ stdenv.mkDerivation rec {
       ADF, DMS, LZX, PowerPacker, LBR, Squeeze, Crunch, and other old formats.
     '';
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ peterhoeg ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ peterhoeg thiagokokada ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/archivers/unrar-wrapper/default.nix b/nixpkgs/pkgs/tools/archivers/unrar-wrapper/default.nix
new file mode 100644
index 000000000000..7452969cbdb4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/archivers/unrar-wrapper/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildPythonApplication, fetchFromGitHub, unar }:
+
+buildPythonApplication rec {
+  pname = "unrar-wrapper";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "openSUSE";
+    repo = "unrar_wrapper";
+    rev = "unrar_wrapper-${version}";
+    sha256 = "sha256-HjrUif8MrbtLjRQMAPZ/Y2o43rGSDj0HHY4fZQfKz5w=";
+  };
+
+  makeWrapperArgs = [
+    "--prefix" "PATH" ":" "${lib.makeBinPath [ unar ]}"
+  ];
+
+  postFixup = ''
+    ln -s $out/bin/unrar_wrapper $out/bin/unrar
+    rm -rf $out/nix-support/propagated-build-inputs
+  '';
+
+  setupHook = ./setup-hook.sh;
+
+  meta = with lib; {
+    homepage = "https://github.com/openSUSE/unrar_wrapper";
+    description = "Backwards compatibility between unar and unrar";
+    longDescription = ''
+      unrar_wrapper is a wrapper python script that transforms the basic UnRAR commands
+      to unar and lsar calls in order to provide a backwards compatibility.
+    '';
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ artturin ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/archivers/unrar-wrapper/setup-hook.sh b/nixpkgs/pkgs/tools/archivers/unrar-wrapper/setup-hook.sh
new file mode 100644
index 000000000000..41d6a5cd217b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/archivers/unrar-wrapper/setup-hook.sh
@@ -0,0 +1,5 @@
+unpackCmdHooks+=(_tryUnrar)
+_tryUnrar() {
+    if ! [[ "$curSrc" =~ \.rar$ ]]; then return 1; fi
+    unrar x "$curSrc" >/dev/null
+}
diff --git a/nixpkgs/pkgs/tools/archivers/unrar/default.nix b/nixpkgs/pkgs/tools/archivers/unrar/default.nix
index 25c8ce9b5586..b0c8a5b9ef6d 100644
--- a/nixpkgs/pkgs/tools/archivers/unrar/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/unrar/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "unrar";
-  version = "6.0.7";
+  version = "6.1.3";
 
   src = fetchurl {
     url = "https://www.rarlab.com/rar/unrarsrc-${version}.tar.gz";
-    sha256 = "sha256-pwKZQgBsvM7T87cyLsGXaD+Oe+QIlyyggJmxlsA49Rg=";
+    sha256 = "sha256-0FAiRCAJICp5LliL7FiSHBI/8Eb8dV9/InKHGlvXljY=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/archivers/unzoo/default.nix b/nixpkgs/pkgs/tools/archivers/unzoo/default.nix
new file mode 100644
index 000000000000..a24b490279b7
--- /dev/null
+++ b/nixpkgs/pkgs/tools/archivers/unzoo/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "unzoo";
+  version = "4.4";
+
+  src = fetchFromGitHub {
+    owner = "museoa";
+    repo = pname;
+    rev = version;
+    hash = "sha256-oPq1I7EsvHaJ7anHbm/KWrYrxJkM79rLhgRfSAdoLtk=";
+  };
+
+  outputs = [ "out" "doc" ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    ${stdenv.cc.targetPrefix}cc -o unzoo -DSYS_IS_UNIX src/unzoo.c
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $doc/share/doc/${pname}
+    cp unzoo $out/bin
+    cp README.TXT $doc/share/doc/${pname}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://github.com/museoa/unzoo/";
+    description = "Manipulate archives of files in Zoo compressed form";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/archivers/wimlib/default.nix b/nixpkgs/pkgs/tools/archivers/wimlib/default.nix
index cca62edfce6d..fa698c1d3e5a 100644
--- a/nixpkgs/pkgs/tools/archivers/wimlib/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/wimlib/default.nix
@@ -8,7 +8,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.13.4";
+  version = "1.13.5";
   pname = "wimlib";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://wimlib.net/downloads/${pname}-${version}.tar.gz";
-    sha256 = "sha256-S4fdCtnMGljO5XIa/ruYAR2rVJ5y8rVVM/MV8Isu3hI=";
+    sha256 = "sha256-MvzJ6bFEt8sdtMhuEEyngoPNwiXhP+grJzZgWGrv4yM=";
   };
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/tools/archivers/zpaq/default.upstream b/nixpkgs/pkgs/tools/archivers/zpaq/default.upstream
deleted file mode 100644
index 84daee900cec..000000000000
--- a/nixpkgs/pkgs/tools/archivers/zpaq/default.upstream
+++ /dev/null
@@ -1,6 +0,0 @@
-url http://mattmahoney.net/dc/zpaq.html
-version_link 'zpaq[0-9]+[.]zip'
-version "[^0-9]*([0-9]+)[^0-9]*" '\1'
-name zpaq
-attribute_name zpaq
-minimize_overwrite
diff --git a/nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.nix b/nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.nix
index c2f214ea2a62..1d674911f49e 100644
--- a/nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.nix
+++ b/nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.nix
@@ -1,25 +1,17 @@
 { lib, stdenv, fetchurl, unzip }:
 
 let
-  # Generated upstream information
-  s = rec {
-    baseName="zpaqd";
-    version="715";
-    name="${baseName}-${version}";
-    hash="0868lynb45lm79yvx5f10lj5h6bfv0yck8whcls2j080vmk3n7rk";
-    url="http://mattmahoney.net/dc/zpaqd715.zip";
-    sha256="0868lynb45lm79yvx5f10lj5h6bfv0yck8whcls2j080vmk3n7rk";
-  };
-
   compileFlags = lib.concatStringsSep " " ([ "-O3" "-DNDEBUG" ]
     ++ lib.optional (stdenv.hostPlatform.isUnix) "-Dunix -pthread"
     ++ lib.optional (!stdenv.hostPlatform.isx86) "-DNOJIT");
 in
-stdenv.mkDerivation {
-  inherit (s) name version;
+stdenv.mkDerivation rec {
+  pname = "zpaqd";
+  version = "715";
 
   src = fetchurl {
-    inherit (s) url sha256;
+    url = "http://mattmahoney.net/dc/zpaqd${version}.zip";
+    sha256 = "sha256-Mx87Zt0AASk0ZZCjyTzYbhlYJAXBlb59OpUWsqynyCA=";
   };
 
   sourceRoot = ".";
@@ -41,7 +33,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "ZPAQ archive (de)compressor and algorithm development tool";
-    license = licenses.gpl3Plus ;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.upstream b/nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.upstream
deleted file mode 100644
index ef83c58e4600..000000000000
--- a/nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.upstream
+++ /dev/null
@@ -1,5 +0,0 @@
-url http://mattmahoney.net/dc/zpaqutil.html
-version_link 'zpaqd[0-9]+[.]zip'
-version "[^0-9]*([0-9]+)[^0-9]*" '\1'
-name zpaqd
-attribute_name zpaqd
diff --git a/nixpkgs/pkgs/tools/audio/abcmidi/default.nix b/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
index 073d61a3d4c0..48b4e88b0ae8 100644
--- a/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
+++ b/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "abcMIDI";
-  version = "2021.09.15";
+  version = "2021.12.12";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    sha256 = "sha256-BrEgvrAHNfJpFTlI8tec+9w3G+5YR15lbzh/RKKpQ1c=";
+    hash = "sha256-34yRMa68x93u8/fGTzflh1L/Lf7ULPXsDaC7GUy+i8g=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/audio/acousticbrainz-client/default.nix b/nixpkgs/pkgs/tools/audio/acousticbrainz-client/default.nix
index a08710fe1219..651605679684 100644
--- a/nixpkgs/pkgs/tools/audio/acousticbrainz-client/default.nix
+++ b/nixpkgs/pkgs/tools/audio/acousticbrainz-client/default.nix
@@ -36,6 +36,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/MTG/acousticbrainz-client";
     # essentia-extractor is only available for those platforms
     platforms = [ "x86_64-linux" "i686-linux" ];
-    maintainers = with maintainers; [ eduardosm ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/alsaequal/default.nix b/nixpkgs/pkgs/tools/audio/alsaequal/default.nix
index c6c25fd39966..13e3e756b6ac 100644
--- a/nixpkgs/pkgs/tools/audio/alsaequal/default.nix
+++ b/nixpkgs/pkgs/tools/audio/alsaequal/default.nix
@@ -3,7 +3,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "alsaequal";
+  pname = "alsaequal";
   version = "0.6";
 
   src = fetchurl {
diff --git a/nixpkgs/pkgs/tools/audio/beets/bash-completion-always-print.patch b/nixpkgs/pkgs/tools/audio/beets/bash-completion-always-print.patch
index 7bc3e57117e3..8a31fe22f728 100644
--- a/nixpkgs/pkgs/tools/audio/beets/bash-completion-always-print.patch
+++ b/nixpkgs/pkgs/tools/audio/beets/bash-completion-always-print.patch
@@ -1,33 +1,34 @@
 diff --git i/beets/ui/commands.py w/beets/ui/commands.py
-index 4d010f4b..0b023585 100755
+index 3a337401..d08a6763 100755
 --- i/beets/ui/commands.py
 +++ w/beets/ui/commands.py
-@@ -1741,20 +1741,6 @@ default_commands.append(config_cmd)
+@@ -1759,21 +1759,6 @@ default_commands.append(config_cmd)
  def print_completion(*args):
      for line in completion_script(default_commands + plugins.commands()):
-         print_(line, end=u'')
+         print_(line, end='')
 -    if not any(map(os.path.isfile, BASH_COMPLETION_PATHS)):
--        log.warning(u'Warning: Unable to find the bash-completion package. '
--                    u'Command line completion might not work.')
+-        log.warning('Warning: Unable to find the bash-completion package. '
+-                    'Command line completion might not work.')
+-
 -
 -BASH_COMPLETION_PATHS = map(syspath, [
--    u'/etc/bash_completion',
--    u'/usr/share/bash-completion/bash_completion',
--    u'/usr/local/share/bash-completion/bash_completion',
+-    '/etc/bash_completion',
+-    '/usr/share/bash-completion/bash_completion',
+-    '/usr/local/share/bash-completion/bash_completion',
 -    # SmartOS
--    u'/opt/local/share/bash-completion/bash_completion',
+-    '/opt/local/share/bash-completion/bash_completion',
 -    # Homebrew (before bash-completion2)
--    u'/usr/local/etc/bash_completion',
+-    '/usr/local/etc/bash_completion',
 -])
 -
  
  def completion_script(commands):
      """Yield the full completion shell script as strings.
 diff --git i/test/test_ui.py w/test/test_ui.py
-index 5cfed1fd..9d3dc458 100644
+index 9804b0a1..c3b53243 100644
 --- i/test/test_ui.py
 +++ w/test/test_ui.py
-@@ -1230,12 +1230,7 @@ class CompletionTest(_common.TestCase, TestHelper):
+@@ -1229,12 +1229,7 @@ class CompletionTest(_common.TestCase, TestHelper):
                                    stdout=subprocess.PIPE, env=env)
  
          # Load bash_completion library.
@@ -36,8 +37,8 @@ index 5cfed1fd..9d3dc458 100644
 -                bash_completion = path
 -                break
 -        else:
--            self.skipTest(u'bash-completion script not found')
-+        self.skipTest(u'bash-completion script not found')
+-            self.skipTest('bash-completion script not found')
++        self.skipTest('bash-completion script not found')
          try:
              with open(util.syspath(bash_completion), 'rb') as f:
                  tester.stdin.writelines(f)
diff --git a/nixpkgs/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch b/nixpkgs/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch
index bcc77179d796..1bc178934486 100644
--- a/nixpkgs/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch
+++ b/nixpkgs/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch
@@ -1,43 +1,34 @@
 diff --git i/beetsplug/convert.py w/beetsplug/convert.py
-index 70363f6e..2962aa4f 100644
+index 6bc07c28..039fb452 100644
 --- i/beetsplug/convert.py
 +++ w/beetsplug/convert.py
-@@ -81,7 +81,7 @@ def get_format(fmt=None):
-         command = config['convert']['command'].as_str()
-     elif 'opts' in keys:
-         # Undocumented option for backwards compatibility with < 1.3.1.
--        command = u'ffmpeg -i $source -y {0} $dest'.format(
-+        command = u'@ffmpeg@/bin/ffmpeg -i $source -y {0} $dest'.format(
-             config['convert']['opts'].as_str()
-         )
-     if 'extension' in keys:
-@@ -121,22 +121,22 @@ class ConvertPlugin(BeetsPlugin):
-             u'id3v23': u'inherit',
-             u'formats': {
-                 u'aac': {
--                    u'command': u'ffmpeg -i $source -y -vn -acodec aac '
-+                    u'command': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec aac '
-                                 u'-aq 1 $dest',
-                     u'extension': u'm4a',
+@@ -118,22 +118,22 @@ class ConvertPlugin(BeetsPlugin):
+             'id3v23': 'inherit',
+             'formats': {
+                 'aac': {
+-                    'command': 'ffmpeg -i $source -y -vn -acodec aac '
++                    'command': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec aac '
+                     '-aq 1 $dest',
+                     'extension': 'm4a',
                  },
-                 u'alac': {
--                    u'command': u'ffmpeg -i $source -y -vn -acodec alac $dest',
-+                    u'command': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec alac $dest',
-                     u'extension': u'm4a',
+                 'alac': {
+-                    'command': 'ffmpeg -i $source -y -vn -acodec alac $dest',
++                    'command': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec alac $dest',
+                     'extension': 'm4a',
                  },
--                u'flac': u'ffmpeg -i $source -y -vn -acodec flac $dest',
--                u'mp3': u'ffmpeg -i $source -y -vn -aq 2 $dest',
-+                u'flac': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec flac $dest',
-+                u'mp3': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -aq 2 $dest',
-                 u'opus':
--                    u'ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest',
-+                    u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest',
-                 u'ogg':
--                    u'ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest',
-+                    u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest',
-                 u'wma':
--                    u'ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest',
-+                    u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest',
+-                'flac': 'ffmpeg -i $source -y -vn -acodec flac $dest',
+-                'mp3': 'ffmpeg -i $source -y -vn -aq 2 $dest',
++                'flac': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec flac $dest',
++                'mp3': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -aq 2 $dest',
+                 'opus':
+-                    'ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest',
++                    '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest',
+                 'ogg':
+-                    'ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest',
++                    '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest',
+                 'wma':
+-                    'ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest',
++                    '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest',
              },
-             u'max_bitrate': 500,
-             u'auto': False,
+             'max_bitrate': 500,
+             'auto': False,
diff --git a/nixpkgs/pkgs/tools/audio/beets/default.nix b/nixpkgs/pkgs/tools/audio/beets/default.nix
index 7114d6801b47..6789bd5f9622 100644
--- a/nixpkgs/pkgs/tools/audio/beets/default.nix
+++ b/nixpkgs/pkgs/tools/audio/beets/default.nix
@@ -1,6 +1,18 @@
-{ stdenv, lib, fetchFromGitHub, writeScript, glibcLocales, diffPlugins, substituteAll
-, pythonPackages, imagemagick, gobject-introspection, gst_all_1
-, runtimeShell, unstableGitUpdater
+{ stdenv
+, lib
+, fetchFromGitHub
+, writeScript
+, glibcLocales
+, diffPlugins
+, substituteAll
+, pythonPackages
+# can be null, if you wish to disable a reference to it. It's needed for the
+# artresizer, see:
+# https://beets.readthedocs.io/en/v1.6.0/plugins/fetchart.html#image-resizing
+, imagemagick
+, gobject-introspection
+, gst_all_1
+, runtimeShell
 
 # external plugins package set
 , beetsExternalPlugins
@@ -73,9 +85,9 @@ let
   };
 
   pluginsWithoutDeps = [
-    "bareasc" "bench" "bpd" "bpm" "bucket" "duplicates" "edit" "embedart"
+    "albumtypes" "bareasc" "bench" "bpd" "bpm" "bucket" "duplicates" "edit" "embedart"
     "export" "filefilter" "fish" "freedesktop" "fromfilename" "ftintitle" "fuzzy"
-    "hook" "ihate" "importadded" "importfeeds" "info" "inline" "ipfs"
+    "hook" "ihate" "importadded" "importfeeds" "info" "inline" "ipfs" "gmusic"
     "mbcollection" "mbsubmit" "mbsync" "metasync" "missing" "parentwork" "permissions" "play"
     "plexupdate" "random" "rewrite" "scrub" "smartplaylist" "spotify" "the"
     "types" "unimported" "zero"
@@ -89,24 +101,15 @@ let
   testShell = "${bashInteractive}/bin/bash --norc";
   completion = "${bash-completion}/share/bash-completion/bash_completion";
 
-  # This is a stripped down beets for testing of the external plugins.
-  externalTestArgs.beets = (lib.beets.override {
-    enableAlternatives = false;
-    enableCopyArtifacts = false;
-    enableExtraFiles = false;
-  }).overrideAttrs (lib.const {
-    doInstallCheck = false;
-  });
-
 in pythonPackages.buildPythonApplication rec {
   pname = "beets";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "beetbox";
     repo = "beets";
     rev = "v${version}";
-    sha256 = "sha256-yQMCJUwpjDDhPffBS6LUq6z4iT1VyFQE0R27XEbYXbY=";
+    sha256 = "sha256-fT+rCJJQR7bdfAcmeFRaknmh4ZOP4RCx8MXpq7/D8tM=";
   };
 
   propagatedBuildInputs = [
@@ -152,7 +155,6 @@ in pythonPackages.buildPythonApplication rec {
   ;
 
   buildInputs = [
-    imagemagick
   ] ++ (with gst_all_1; [
     gst-plugins-base
     gst-plugins-good
@@ -167,7 +169,7 @@ in pythonPackages.buildPythonApplication rec {
     responses
     # Although considered as plugin dependencies, they are needed for the
     # tests, for disabling them via an override makes the build fail. see:
-    # https://github.com/beetbox/beets/blob/v1.4.9/setup.py
+    # https://github.com/beetbox/beets/blob/v1.6.0/setup.py
     pylast
     mpd2
     discogs-client
@@ -177,10 +179,14 @@ in pythonPackages.buildPythonApplication rec {
   patches = [
     # Bash completion fix for Nix
     ./bash-completion-always-print.patch
-    # From some reason upstream assumes the program 'keyfinder-cli' is located
-    # in the path as `KeyFinder`
-    ./keyfinder-default-bin.patch
   ]
+    # Fix path to imagemagick, used for the artresizer.py file. This reference
+    # to imagemagick might be expensive for some people, so the patch can be
+    # disabled if imagemagick is set to null
+    ++ lib.optional (imagemagick != null) (substituteAll {
+      src = ./imagemagick-nix-path.patch;
+      inherit imagemagick;
+    })
     # We need to force ffmpeg as the default, since we do not package
     # bs1770gain, and set the absolute path there, to avoid impurities.
     ++ lib.optional enableReplaygain (substituteAll {
@@ -200,13 +206,10 @@ in pythonPackages.buildPythonApplication rec {
 
   # Disable failing tests
   postPatch = ''
-    sed -i -e '/assertIn.*item.*path/d' test/test_info.py
     echo echo completion tests passed > test/rsrc/test_completion.sh
 
+    # https://github.com/beetbox/beets/issues/1187
     sed -i -e 's/len(mf.images)/0/' test/test_zero.py
-
-    # Google Play Music was discontinued
-    rm -r beetsplug/gmusic.py
   '';
 
   postInstall = ''
@@ -256,7 +259,10 @@ in pythonPackages.buildPythonApplication rec {
     runHook postInstallCheck
   '';
 
-  makeWrapperArgs = [ "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\"" "--set GST_PLUGIN_SYSTEM_PATH_1_0 \"$GST_PLUGIN_SYSTEM_PATH_1_0\"" ];
+  makeWrapperArgs = [
+    "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\""
+    "--set GST_PLUGIN_SYSTEM_PATH_1_0 \"$GST_PLUGIN_SYSTEM_PATH_1_0\""
+  ];
 
   passthru = {
     # FIXME: remove in favor of pkgs.beetsExternalPlugins
diff --git a/nixpkgs/pkgs/tools/audio/beets/imagemagick-nix-path.patch b/nixpkgs/pkgs/tools/audio/beets/imagemagick-nix-path.patch
new file mode 100644
index 000000000000..9a77703ede7c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/beets/imagemagick-nix-path.patch
@@ -0,0 +1,20 @@
+diff --git i/beets/util/artresizer.py w/beets/util/artresizer.py
+index 8683e228..2f38b4d6 100644
+--- i/beets/util/artresizer.py
++++ w/beets/util/artresizer.py
+@@ -334,13 +334,8 @@ class ArtResizer(metaclass=Shareable):
+         # not, fall back to the older, separate convert and identify
+         # commands.
+         if self.method[0] == IMAGEMAGICK:
+-            self.im_legacy = self.method[2]
+-            if self.im_legacy:
+-                self.im_convert_cmd = ['convert']
+-                self.im_identify_cmd = ['identify']
+-            else:
+-                self.im_convert_cmd = ['magick']
+-                self.im_identify_cmd = ['magick', 'identify']
++            self.im_convert_cmd = ['@imagemagick@/bin/magick']
++            self.im_identify_cmd = ['@imagemagick@/bin/magick', 'identify']
+ 
+     def resize(
+         self, maxwidth, path_in, path_out=None, quality=0, max_filesize=0
diff --git a/nixpkgs/pkgs/tools/audio/beets/keyfinder-default-bin.patch b/nixpkgs/pkgs/tools/audio/beets/keyfinder-default-bin.patch
deleted file mode 100644
index ec6bc3a5561c..000000000000
--- a/nixpkgs/pkgs/tools/audio/beets/keyfinder-default-bin.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/beetsplug/keyfinder.py b/beetsplug/keyfinder.py
-index 702003f0..08689cd8 100644
---- a/beetsplug/keyfinder.py
-+++ b/beetsplug/keyfinder.py
-@@ -31,7 +31,7 @@ class KeyFinderPlugin(BeetsPlugin):
-     def __init__(self):
-         super(KeyFinderPlugin, self).__init__()
-         self.config.add({
--            u'bin': u'KeyFinder',
-+            u'bin': u'keyfinder-cli',
-             u'auto': True,
-             u'overwrite': False,
-         })
-diff --git a/test/test_keyfinder.py b/test/test_keyfinder.py
-index c8735e47..d7d670a4 100644
---- a/test/test_keyfinder.py
-+++ b/test/test_keyfinder.py
-@@ -44,7 +44,7 @@ class KeyFinderTest(unittest.TestCase, TestHelper):
-         item.load()
-         self.assertEqual(item['initial_key'], 'C#m')
-         command_output.assert_called_with(
--            ['KeyFinder', '-f', util.syspath(item.path)])
-+            ['keyfinder-cli', util.syspath(item.path)])
-
-     def test_add_key_on_import(self, command_output):
-         command_output.return_value = util.CommandOutput(b"dbm", b"")
diff --git a/nixpkgs/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch b/nixpkgs/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch
index 0ceba3c09442..e441997cae58 100644
--- a/nixpkgs/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch
+++ b/nixpkgs/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch
@@ -1,26 +1,26 @@
 diff --git i/beetsplug/replaygain.py w/beetsplug/replaygain.py
-index 9d6fa23c..c5800039 100644
+index b6297d93..5c1cbbc0 100644
 --- i/beetsplug/replaygain.py
 +++ w/beetsplug/replaygain.py
-@@ -391,7 +391,7 @@ class FfmpegBackend(Backend):
+@@ -139,7 +139,7 @@ class FfmpegBackend(Backend):
  
      def __init__(self, config, log):
-         super(FfmpegBackend, self).__init__(config, log)
+         super().__init__(config, log)
 -        self._ffmpeg_path = "ffmpeg"
 +        self._ffmpeg_path = "@ffmpeg@/bin/ffmpeg"
  
          # check that ffmpeg is installed
          try:
-@@ -1228,11 +1228,10 @@ class ReplayGainPlugin(BeetsPlugin):
+@@ -975,11 +975,10 @@ class ReplayGainPlugin(BeetsPlugin):
      def __init__(self):
-         super(ReplayGainPlugin, self).__init__()
+         super().__init__()
  
 -        # default backend is 'command' for backward-compatibility.
          self.config.add({
              'overwrite': False,
              'auto': True,
--            'backend': u'command',
-+            'backend': u'ffmpeg',
+-            'backend': 'command',
++            'backend': 'ffmpeg',
              'threads': cpu_count(),
              'parallel_on_import': False,
              'per_disc': False,
diff --git a/nixpkgs/pkgs/tools/audio/botamusique/default.nix b/nixpkgs/pkgs/tools/audio/botamusique/default.nix
index 36bd13433386..a1c78768f6ab 100644
--- a/nixpkgs/pkgs/tools/audio/botamusique/default.nix
+++ b/nixpkgs/pkgs/tools/audio/botamusique/default.nix
@@ -9,6 +9,7 @@
 
 # For the update script
 , coreutils
+, curl
 , nix-prefetch-git
 , jq
 , nodePackages
@@ -16,7 +17,7 @@
 let
   nodejs = pkgs.nodejs-12_x;
   nodeEnv = import ../../../development/node-packages/node-env.nix {
-    inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
+    inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
     inherit pkgs nodejs;
     libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
   };
@@ -41,7 +42,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "botamusique";
-  version = "unstable-${lib.substring 0 10 srcJson.date}";
+  version = srcJson.version;
 
   inherit src;
 
@@ -67,21 +68,21 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [
-    python3Packages.wrapPython
-    nodejs
     makeWrapper
+    nodejs
+    python3Packages.wrapPython
   ];
 
   pythonPath = with python3Packages; [
-    pymumble
-    packaging
-    magic
-    requests
-    youtube-dl
     flask
+    magic
     mutagen
+    packaging
     pillow
+    pymumble
     pyradios
+    requests
+    yt-dlp
   ];
 
   buildPhase = ''
@@ -118,9 +119,17 @@ stdenv.mkDerivation rec {
   '';
 
   passthru.updateScript = pkgs.writeShellScript "botamusique-updater" ''
-    export PATH=${lib.makeBinPath [ coreutils nix-prefetch-git jq nodePackages.node2nix ]}
+    export PATH=${lib.makeBinPath [ coreutils curl nix-prefetch-git jq nodePackages.node2nix ]}
+    set -ex
+
+    OWNER=azlux
+    REPO=botamusique
+    VERSION=$(curl https://api.github.com/repos/$OWNER/$REPO/releases/latest | jq -r '.tag_name')
 
-    nix-prefetch-git https://github.com/azlux/botamusique > ${toString ./src.json}
+    nix-prefetch-git --rev "$VERSION" --url https://github.com/$OWNER/$REPO | \
+      jq > ${toString ./src.json } \
+        --arg version "$VERSION" \
+        '.version |= $version'
     path=$(jq '.path' -r < ${toString ./src.json})
 
     tmp=$(mktemp -d)
@@ -129,7 +138,7 @@ stdenv.mkDerivation rec {
     # botamusique doesn't have a version in its package.json
     # But that's needed for node2nix
     jq < "$path"/web/package.json > "$tmp/package.json" \
-      --arg version "0.0.0" \
+      --arg version "$VERSION" \
       '.version |= $version'
 
     node2nix \
diff --git a/nixpkgs/pkgs/tools/audio/botamusique/node-packages.nix b/nixpkgs/pkgs/tools/audio/botamusique/node-packages.nix
index 89c7d8d98036..afff50cb922b 100644
--- a/nixpkgs/pkgs/tools/audio/botamusique/node-packages.nix
+++ b/nixpkgs/pkgs/tools/audio/botamusique/node-packages.nix
@@ -4526,8 +4526,8 @@ let
   args = {
     name = "botamusique";
     packageName = "botamusique";
-    version = "0.0.0";
-    src = ../../../../../../../../../tmp/tmp.IOzfGq3zuo;
+    version = "7.2.2";
+    src = ../../../../../../../../../tmp/tmp.axdirie3HR;
     dependencies = [
       sources."@babel/code-frame-7.10.4"
       sources."@babel/compat-data-7.12.7"
diff --git a/nixpkgs/pkgs/tools/audio/botamusique/src.json b/nixpkgs/pkgs/tools/audio/botamusique/src.json
index ab5c4819ecbe..22a9c01bce73 100644
--- a/nixpkgs/pkgs/tools/audio/botamusique/src.json
+++ b/nixpkgs/pkgs/tools/audio/botamusique/src.json
@@ -1,11 +1,12 @@
 {
   "url": "https://github.com/azlux/botamusique",
-  "rev": "3733353170e1d24b5f3ce2a21643c27ca2a39835",
-  "date": "2021-09-01T12:19:37+02:00",
-  "path": "/nix/store/07vl4lhi6dshh4n7pcyrxvy9m028rrbr-botamusique",
-  "sha256": "0cggan70zymbh9iwggq9a04zkky86k9cncprxb9nnr35gp4l4992",
+  "rev": "9b9b4e40ce7b077ebfa3b9be08d32025d1e43bc3",
+  "date": "2021-10-27T02:29:59+02:00",
+  "path": "/nix/store/9gxn2bw0757yrmx0xhhwq642lixyy88x-botamusique",
+  "sha256": "07n6nyi84ddqp2x8xrds7q83yfqapl5qhkcprzjsmvxhv4a3ar8q",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
-  "leaveDotGit": false
+  "leaveDotGit": false,
+  "version": "7.2.2"
 }
diff --git a/nixpkgs/pkgs/tools/audio/isrcsubmit/default.nix b/nixpkgs/pkgs/tools/audio/isrcsubmit/default.nix
index 457ca2b0d1c7..530094b8506c 100644
--- a/nixpkgs/pkgs/tools/audio/isrcsubmit/default.nix
+++ b/nixpkgs/pkgs/tools/audio/isrcsubmit/default.nix
@@ -19,6 +19,6 @@ python3Packages.buildPythonApplication rec {
     description = "Script to submit ISRCs from disc to MusicBrainz";
     license = licenses.gpl3Plus;
     homepage = "http://jonnyjd.github.io/musicbrainz-isrcsubmit/";
-    maintainers = with maintainers; [ eduardosm ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/kaldi/default.nix b/nixpkgs/pkgs/tools/audio/kaldi/default.nix
index ef725408b13e..662a6f2b5348 100644
--- a/nixpkgs/pkgs/tools/audio/kaldi/default.nix
+++ b/nixpkgs/pkgs/tools/audio/kaldi/default.nix
@@ -17,19 +17,19 @@ let
   openfst = fetchFromGitHub {
     owner = "kkm000";
     repo = "openfst";
-    rev = "0bca6e76d24647427356dc242b0adbf3b5f1a8d9";
-    sha256 = "1802rr14a03zl1wa5a0x1fa412kcvbgprgkadfj5s6s3agnn11rx";
+    rev = "338225416178ac36b8002d70387f5556e44c8d05";
+    sha256 = "sha256-MGEUuw7ex+WcujVdxpO2Bf5sB6Z0edcAeLGqW/Lo1Hs=";
   };
 in
 stdenv.mkDerivation {
   pname = "kaldi";
-  version = "2020-12-26";
+  version = "2021-12-03";
 
   src = fetchFromGitHub {
     owner = "kaldi-asr";
     repo = "kaldi";
-    rev = "813b73185a18725e4f6021981d17221d6ee23a19";
-    sha256 = "sha256-lTqXTG5ZTPmhCgt+BVzOwjKEIj+bLGUa+IxJq+XtHUg=";
+    rev = "2b016ab8cb018e031ab3bf01ec36cc2950c7e509";
+    sha256 = "sha256-R8CrY7cwU5XfeGEgeFuZ0ApsEcEmWN/lrZaCjz85tyk=";
   };
 
   cmakeFlags = [
@@ -37,6 +37,8 @@ stdenv.mkDerivation {
     "-DBUILD_SHARED_LIBS=on"
   ];
 
+  enableParallelBuilding = true;
+
   preConfigure = ''
     mkdir bin
     cat > bin/git <<'EOF'
diff --git a/nixpkgs/pkgs/tools/audio/opl3bankeditor/common.nix b/nixpkgs/pkgs/tools/audio/opl3bankeditor/common.nix
index 9f6972ce9540..04f4d3aae5ab 100644
--- a/nixpkgs/pkgs/tools/audio/opl3bankeditor/common.nix
+++ b/nixpkgs/pkgs/tools/audio/opl3bankeditor/common.nix
@@ -53,7 +53,6 @@ mkDerivation rec {
     mv "${binname}.app" $out/Applications/
 
     install_name_tool -change {,${qwt}/lib/}libqwt.6.dylib "$out/Applications/${binname}.app/Contents/MacOS/${binname}"
-    wrapQtApp "$out/Applications/${binname}.app/Contents/MacOS/${binname}"
 
     ln -s "$out/Applications/${binname}.app/Contents/MacOS/${binname}" $out/bin/${mainProgram}
   '';
diff --git a/nixpkgs/pkgs/tools/audio/stt/default.nix b/nixpkgs/pkgs/tools/audio/stt/default.nix
index 7834f87a0517..c8fff7ddbb4a 100644
--- a/nixpkgs/pkgs/tools/audio/stt/default.nix
+++ b/nixpkgs/pkgs/tools/audio/stt/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = https://github.com/coqui-ai/STT;
+    homepage = "https://github.com/coqui-ai/STT";
     description = "Deep learning toolkit for Speech-to-Text, battle-tested in research and production";
     license = licenses.mpl20;
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/tools/audio/tts/default.nix b/nixpkgs/pkgs/tools/audio/tts/default.nix
index d15a03bc83ee..40399f26998e 100644
--- a/nixpkgs/pkgs/tools/audio/tts/default.nix
+++ b/nixpkgs/pkgs/tools/audio/tts/default.nix
@@ -1,7 +1,6 @@
 { lib
 , python3
 , fetchFromGitHub
-, fetchpatch
 }:
 
 # USAGE:
@@ -16,18 +15,19 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "tts";
-  version = "0.3.1";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "coqui-ai";
     repo = "TTS";
     rev = "v${version}";
-    sha256 = "sha256-/CeetLm3jgS5Q69zTVkLm+Wh4nD7D4c6j9MTujMc3fU=";
+    sha256 = "sha256-8a68iFbqqKwtZvufu1Vnv6hGHIQ3HU34wjuQsmr1NUA=";
   };
 
   postPatch = ''
     sed -i requirements.txt \
       -e 's!librosa==[^"]*!librosa!' \
+      -e 's!gruut\[.*\]~=2.0.0!gruut!' \
       -e 's!mecab-python3==[^"]*!mecab-python3!' \
       -e 's!numba==[^"]*!numba!' \
       -e 's!numpy==[^"]*!numpy!' \
@@ -86,6 +86,7 @@ python3.pkgs.buildPythonApplication rec {
     "test_multiscale_stft_loss"
     # Requires network acccess to download models
     "test_synthesize"
+    "test_run_all_models"
   ];
 
   preCheck = ''
diff --git a/nixpkgs/pkgs/tools/audio/yabridge/default.nix b/nixpkgs/pkgs/tools/audio/yabridge/default.nix
index ac5767b24219..c468a845a1a6 100644
--- a/nixpkgs/pkgs/tools/audio/yabridge/default.nix
+++ b/nixpkgs/pkgs/tools/audio/yabridge/default.nix
@@ -2,88 +2,80 @@
 , multiStdenv
 , fetchFromGitHub
 , substituteAll
+, pkgsi686Linux
+, libnotify
 , meson
 , ninja
 , pkg-config
 , wine
 , boost
 , libxcb
-, pkgsi686Linux
+, nix-update-script
 }:
 
 let
   # Derived from subprojects/bitsery.wrap
-  bitsery = rec {
-    version = "5.2.0";
-    src = fetchFromGitHub {
-      owner = "fraillt";
-      repo = "bitsery";
-      rev = "v${version}";
-      hash = "sha256-Bxdtjn2v2lP2lCnvjzmct6QHT7FpwmXoSZtd2oEFS4w=";
-    };
+  bitsery = fetchFromGitHub {
+    owner = "fraillt";
+    repo = "bitsery";
+    rev = "c0fc083c9de805e5825d7553507569febf6a6f93";
+    sha256 = "sha256-VwzVtxt+E/SVcxqIJw8BKPO2q7bu/hkhY+nB7FHrZpY=";
   };
 
   # Derived from subprojects/function2.wrap
-  function2 = rec {
-    version = "4.1.0";
-    src = fetchFromGitHub {
-      owner = "Naios";
-      repo = "function2";
-      rev = version;
-      hash = "sha256-JceZU8ZvtYhFheh8BjMvjjZty4hcYxHEK+IIo5X4eSk=";
-    };
+  function2 = fetchFromGitHub {
+    owner = "Naios";
+    repo = "function2";
+    rev = "02ca99831de59c7c3a4b834789260253cace0ced";
+    sha256 = "sha256-wrt+fCcM6YD4ZRZYvqqB+fNakCNmltdPZKlNkPLtgMs=";
   };
 
   # Derived from subprojects/tomlplusplus.wrap
-  tomlplusplus = rec {
-    version = "2.1.0";
-    src = fetchFromGitHub {
-      owner = "marzer";
-      repo = "tomlplusplus";
-      rev = "v${version}";
-      hash = "sha256-i6yAEqwkinkPEzzb6ynXytS1SEOUDwi8SixMf62NVzs=";
-    };
+  tomlplusplus = fetchFromGitHub {
+    owner = "marzer";
+    repo = "tomlplusplus";
+    rev = "47216c8a73d77e7431ec536fb3e251aed06cc420";
+    sha256 = "sha256-cwAzWu5j3ch/56a6JmEoKCsxVNTk6tiZswNdNT6qzX0=";
   };
 
   # Derived from vst3.wrap
-  vst3 = rec {
-    version = "3.7.2_build_28-patched";
-    src = fetchFromGitHub {
-      owner = "robbert-vdh";
-      repo = "vst3sdk";
-      rev = "v${version}";
-      fetchSubmodules = true;
-      sha256 = "sha256-39pvfcg4fvf7DAbAPzEHA1ja1LFL6r88nEwNYwaDC8w=";
-    };
+  vst3 = fetchFromGitHub {
+    owner = "robbert-vdh";
+    repo = "vst3sdk";
+    rev = "v3.7.3_build_20-patched";
+    fetchSubmodules = true;
+    sha256 = "sha256-m2y7No7BNbIjLNgdAqIAEr6UuAZZ/wwM2+iPWKK17gQ=";
   };
 in multiStdenv.mkDerivation rec {
   pname = "yabridge";
-  version = "3.5.2";
+  version = "3.7.0";
 
   # NOTE: Also update yabridgectl's cargoHash when this is updated
   src = fetchFromGitHub {
     owner = "robbert-vdh";
     repo = pname;
     rev = version;
-    hash = "sha256-SLiksc8lQo2A5sefKbcaJyhi8vPdp2p2Jbc7bvM0sDw=";
+    sha256 = "sha256-dz7kScNrVUsjokJntzUCJzDIboqi3vQI+RpXl0UFmUQ=";
   };
 
   # Unpack subproject sources
   postUnpack = ''(
     cd "$sourceRoot/subprojects"
-    cp -R --no-preserve=mode,ownership ${bitsery.src} bitsery-${bitsery.version}
-    tar -xf bitsery-patch-${bitsery.version}.tar.xz
-    cp -R --no-preserve=mode,ownership ${function2.src} function2-${function2.version}
-    tar -xf function2-patch-${function2.version}.tar.xz
-    cp -R --no-preserve=mode,ownership ${tomlplusplus.src} tomlplusplus
-    cp -R --no-preserve=mode,ownership ${vst3.src} vst3
+    cp -R --no-preserve=mode,ownership ${bitsery} bitsery
+    cp packagefiles/bitsery/* bitsery
+    cp -R --no-preserve=mode,ownership ${function2} function2
+    cp packagefiles/function2/* function2
+    cp -R --no-preserve=mode,ownership ${tomlplusplus} tomlplusplus
+    cp -R --no-preserve=mode,ownership ${vst3} vst3
   )'';
 
   patches = [
-    # Hard code wine path so wine version is correct in logs
+    # Hard code bitbridge & runtime dependencies
     (substituteAll {
-      src = ./hardcode-wine.patch;
-      inherit wine;
+      src = ./hardcode-dependencies.patch;
+      boost32 = pkgsi686Linux.boost;
+      libxcb32 = pkgsi686Linux.xorg.libxcb;
+      inherit libnotify wine;
     })
   ];
 
@@ -120,11 +112,6 @@ in multiStdenv.mkDerivation rec {
     "-Dtomlplusplus:BUILD_TESTS=disabled"
   ];
 
-  preConfigure = ''
-    sed -i "214s|xcb.*|xcb_32bit_dep = winegcc.find_library('xcb', dirs: [ '${lib.getLib pkgsi686Linux.xorg.libxcb}/lib', ])|" meson.build
-    sed -i "192 i '${lib.getLib pkgsi686Linux.boost}/lib'," meson.build
-  '';
-
   installPhase = ''
     runHook preInstall
     mkdir -p "$out/bin" "$out/lib"
@@ -143,6 +130,10 @@ in multiStdenv.mkDerivation rec {
     done
   '';
 
+  passthru.updateScript = nix-update-script {
+    attrPath = pname;
+  };
+
   meta = with lib; {
     description = "Yet Another VST bridge, run Windows VST2 plugins under Linux";
     homepage = "https://github.com/robbert-vdh/yabridge";
diff --git a/nixpkgs/pkgs/tools/audio/yabridge/hardcode-dependencies.patch b/nixpkgs/pkgs/tools/audio/yabridge/hardcode-dependencies.patch
new file mode 100644
index 000000000000..255b0eb88cb1
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/yabridge/hardcode-dependencies.patch
@@ -0,0 +1,43 @@
+diff --git a/meson.build b/meson.build
+index 8eae0442..ec0649da 100644
+--- a/meson.build
++++ b/meson.build
+@@ -196,6 +196,7 @@ if with_32bit_libraries or with_bitbridge
+       'boost_filesystem',
+       static : with_static_boost,
+       dirs : [
++        '@boost32@/lib',
+         # Used by Arch based distros
+         '/usr/local/lib32',
+         '/usr/lib32',
+@@ -219,7 +220,7 @@ if is_64bit_system
+   xcb_64bit_dep = dependency('xcb')
+ endif
+ if with_32bit_libraries or with_bitbridge
+-  xcb_32bit_dep = winegcc.find_library('xcb')
++  xcb_32bit_dep = winegcc.find_library('xcb', dirs: ['@libxcb32@/lib'])
+ endif
+ 
+ # These are all headers-only libraries, and thus won't require separate 32-bit
+diff --git a/src/plugin/utils.cpp b/src/plugin/utils.cpp
+index 6e32b4c9..f6eb09eb 100644
+--- a/src/plugin/utils.cpp
++++ b/src/plugin/utils.cpp
+@@ -107,7 +107,7 @@ std::string PluginInfo::wine_version() const {
+         access(wineloader_path.c_str(), X_OK) == 0) {
+         wine_path = wineloader_path;
+     } else {
+-        wine_path = bp::search_path("wine").string();
++        wine_path = "@wine@/bin/wine";
+     }
+ 
+     bp::ipstream output;
+@@ -436,7 +436,7 @@ Configuration load_config_for(const fs::path& yabridge_path) {
+ bool send_notification(const std::string& title,
+                        const std::string body,
+                        bool append_origin) {
+-    const fs::path notify_send_path = bp::search_path("notify-send");
++    const fs::path notify_send_path = "@libnotify@/bin/notify-send";
+     if (notify_send_path.empty()) {
+         return false;
+     }
diff --git a/nixpkgs/pkgs/tools/audio/yabridge/hardcode-wine.patch b/nixpkgs/pkgs/tools/audio/yabridge/hardcode-wine.patch
deleted file mode 100644
index d58aedeb27ff..000000000000
--- a/nixpkgs/pkgs/tools/audio/yabridge/hardcode-wine.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/plugin/utils.cpp b/src/plugin/utils.cpp
-index 7fb7d1b3..eb227101 100644
---- a/src/plugin/utils.cpp
-+++ b/src/plugin/utils.cpp
-@@ -105,5 +105,5 @@ std::string PluginInfo::wine_version() const {
-         access(wineloader_path.c_str(), X_OK) == 0) {
-         wine_path = wineloader_path;
-     } else {
--        wine_path = bp::search_path("wine").string();
-+        wine_path = "@wine@/bin/wine";
-     }
-
-     bp::ipstream output;
diff --git a/nixpkgs/pkgs/tools/audio/yabridgectl/default.nix b/nixpkgs/pkgs/tools/audio/yabridgectl/default.nix
index 35c8b0c5aeff..902734de0bd0 100644
--- a/nixpkgs/pkgs/tools/audio/yabridgectl/default.nix
+++ b/nixpkgs/pkgs/tools/audio/yabridgectl/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
 
   src = yabridge.src;
   sourceRoot = "source/tools/yabridgectl";
-  cargoHash = "sha256-2x3qB0LbCBUZ4zqKIXPtYdWis+4QANTaJdFvoFbccGE=";
+  cargoSha256 = "sha256-/VREh/f4bAt2DXCqK0noEjn+4hcK5VZUn+gdbYbeAmk=";
 
   patches = [
     # By default, yabridgectl locates libyabridge.so by using
diff --git a/nixpkgs/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch b/nixpkgs/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch
index ec42f98a2e82..7b8e10b2ba81 100644
--- a/nixpkgs/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch
+++ b/nixpkgs/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch
@@ -1,5 +1,5 @@
 diff --git a/tools/yabridgectl/src/config.rs b/tools/yabridgectl/src/config.rs
-index 6e05e34..656eef3 100644
+index bc5ccfc4..c6d119bc 100644
 --- a/tools/yabridgectl/src/config.rs
 +++ b/tools/yabridgectl/src/config.rs
 @@ -23,6 +23,7 @@ use std::collections::{BTreeMap, BTreeSet, HashSet};
@@ -10,7 +10,7 @@ index 6e05e34..656eef3 100644
  use std::path::{Path, PathBuf};
  use which::which;
  use xdg::BaseDirectories;
-@@ -222,34 +223,24 @@ impl Config {
+@@ -233,34 +234,24 @@ impl Config {
                  }
              }
              None => {
@@ -56,10 +56,10 @@ index 6e05e34..656eef3 100644
                          ));
                      }
 diff --git a/tools/yabridgectl/src/main.rs b/tools/yabridgectl/src/main.rs
-index ce701b8..b6b9633 100644
+index 8c273f92..432619ec 100644
 --- a/tools/yabridgectl/src/main.rs
 +++ b/tools/yabridgectl/src/main.rs
-@@ -150,7 +150,7 @@ fn main() -> Result<()> {
+@@ -148,7 +148,7 @@ fn main() -> Result<()> {
                          .about("Path to the directory containing 'libyabridge-{vst2,vst3}.so'")
                          .long_about(
                              "Path to the directory containing 'libyabridge-{vst2,vst3}.so'. If this \
diff --git a/nixpkgs/pkgs/tools/backup/autorestic/default.nix b/nixpkgs/pkgs/tools/backup/autorestic/default.nix
index ab299db1c675..8aed05cd6aef 100644
--- a/nixpkgs/pkgs/tools/backup/autorestic/default.nix
+++ b/nixpkgs/pkgs/tools/backup/autorestic/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "autorestic";
-  version = "1.2.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "cupcakearmy";
     repo = pname;
     rev = "v${version}";
-    sha256 = "yQgSJ0SQNWPMyrYn8rep+1b549HP8sOERh+kOiAK3+c=";
+    sha256 = "sha256-6/t7k0PNcRuCsIAV1iyDxDqsgm2fpBj+26MfvebNEBM=";
   };
 
-  vendorSha256 = "7648gAguqeqLKFS9xRcx20wpSLb+ykZ7rOqR5PKe71o=";
+  vendorSha256 = "sha256-eKsPdmPJXiCwvb2A28tNxF4xStry3iA6aLb+XYFJYSg=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/backup/bakelite/default.nix b/nixpkgs/pkgs/tools/backup/bakelite/default.nix
new file mode 100644
index 000000000000..15ddd3e2ea63
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/bakelite/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "bakelite";
+  version = "unstable-2021-10-19";
+
+  src = fetchFromGitHub {
+    owner = "richfelker";
+    repo = pname;
+    rev = "5fc3cf9704dbaa191b95f97d2a700588ea878a36";
+    sha256 = "xoGor8KMG1vU6hP6v6gHcADKjVpaClvkivxkcPUJtss=";
+  };
+
+  hardeningEnable = [ "pie" ];
+  buildFlags = [ "CFLAGS=-D_GNU_SOURCE" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp bakelite $out/bin
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/richfelker/bakelite";
+    description = "Incremental backup with strong cryptographic confidentality";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ mvs ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/backup/borgmatic/default.nix b/nixpkgs/pkgs/tools/backup/borgmatic/default.nix
index 2fe7d0866745..904e64704c90 100644
--- a/nixpkgs/pkgs/tools/backup/borgmatic/default.nix
+++ b/nixpkgs/pkgs/tools/backup/borgmatic/default.nix
@@ -21,7 +21,7 @@ python3Packages.buildPythonApplication rec {
     borgbackup
     colorama
     jsonschema
-    ruamel_yaml
+    ruamel-yaml
     requests
     setuptools
   ];
diff --git a/nixpkgs/pkgs/tools/backup/bupstash/default.nix b/nixpkgs/pkgs/tools/backup/bupstash/default.nix
index ccf9115c1e75..91876f68d4a6 100644
--- a/nixpkgs/pkgs/tools/backup/bupstash/default.nix
+++ b/nixpkgs/pkgs/tools/backup/bupstash/default.nix
@@ -1,16 +1,16 @@
 { lib, fetchFromGitHub, installShellFiles, rustPlatform, ronn, pkg-config, libsodium }:
 rustPlatform.buildRustPackage rec {
   pname = "bupstash";
-  version = "0.10.2";
+  version = "0.10.3";
 
   src = fetchFromGitHub {
     owner = "andrewchambers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-0PKQYvKmAGP4/15nKhB+aZh8PF9dtDFjXEuPCA5tDYk=";
+    sha256 = "sha256-YN5pIXJRTQXqFGuXvyoSlYJEjAZ4wIYEKjEeF8qIJCI=";
   };
 
-  cargoSha256 = "sha256-6zVWKVtTL6zbB4Uulq+sK4vm3qAC0B5kf0DmDv5aneo=";
+  cargoSha256 = "sha256-Erpg+Sktx+L2X9k6g1ngOyM8MNoucGcScOSPMB7vld8=";
 
   nativeBuildInputs = [ ronn pkg-config installShellFiles ];
   buildInputs = [ libsodium ];
diff --git a/nixpkgs/pkgs/tools/backup/burp/default.nix b/nixpkgs/pkgs/tools/backup/burp/default.nix
index 00b2c71037a8..187fe71896d6 100644
--- a/nixpkgs/pkgs/tools/backup/burp/default.nix
+++ b/nixpkgs/pkgs/tools/backup/burp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config
 , acl, librsync, ncurses, openssl, zlib, uthash }:
 
 stdenv.mkDerivation rec {
@@ -12,6 +12,15 @@ stdenv.mkDerivation rec {
     sha256 = "1zhq240kz881vs2s620qp0kifmgr582caalm85ls789w9rmdkhjl";
   };
 
+  patches = [
+    # Pull upstream fix for ncurses-6.3 support
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/grke/burp/commit/1d6c931af7c11f164cf7ad3479781e8f03413496.patch";
+      sha256 = "14sfbfahlankz3xg6v10i8fnmpnmqpp73q9xm0l0hnjh25igv6bl";
+    })
+  ];
+
   nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ librsync ncurses openssl zlib uthash ]
     ++ lib.optional (!stdenv.isDarwin) acl;
diff --git a/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/deps.nix b/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/deps.nix
index 7b34bccecb5c..172fe928dd77 100644
--- a/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/deps.nix
+++ b/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/deps.nix
@@ -1,16 +1,16 @@
 { fetchNuGet }: [
-  (fetchNuGet { name = "CliFx"; version = "2.0.6"; sha256 = "09yyjgpp52b0r3mqlvx75ld4vjp8hry7ql7r20nnvj0lach6fyh6"; })
-  (fetchNuGet { name = "Gress"; version = "1.2.0"; sha256 = "0aidc9whi0718gh896j7xkyndki9x7rifd8n1n681afb2zbxw4bn"; })
-  (fetchNuGet { name = "JsonExtensions"; version = "1.1.0"; sha256 = "1fqxb2jdbvjgg135wmy890qf63r056dq16jy7wgzkgp21m3j0lgy"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.19"; sha256 = "10fs93kg8vhhm1l05815m8yqz796i6gk824pk1bps239mshmkybr"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; })
-  (fetchNuGet { name = "MiniRazor.CodeGen"; version = "2.1.4"; sha256 = "1856hfw2wl3ilxmpg4jmwpigmq0rm50i9pmy3sq8f1xc8j44kzl2"; })
-  (fetchNuGet { name = "MiniRazor.Runtime"; version = "2.1.4"; sha256 = "1pc3kjbnz810a8bb94k6355rflmayigfmpfmc4jzzx6l6iavnnc4"; })
-  (fetchNuGet { name = "Polly"; version = "7.2.2"; sha256 = "0s15n5zwj44i6sw3v40ca8l6j0ijydxcakvad49j52rp49iwrmkn"; })
-  (fetchNuGet { name = "Spectre.Console"; version = "0.41.0"; sha256 = "104vyzwbbq5m75dm31xk7ilvmik8hw1cj3bc301a8w6gq8i0fpk3"; })
-  (fetchNuGet { name = "Superpower"; version = "2.3.0"; sha256 = "0bdsc3c0d6jb0wr67siqfba0ldl0jxbwis6xr0whzqzf6m2cyahm"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.0"; sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30"; })
-  (fetchNuGet { name = "Tyrrrz.Extensions"; version = "1.6.5"; sha256 = "1yzsii1pbp6b066wxwwws310p7h809apl81bhb8ad55hqlzy1rg3"; })
-  (fetchNuGet { name = "Wcwidth"; version = "0.2.0"; sha256 = "0p7zaisix9ql4v5nyl9gfc93xcyj74j01rwvgm7jw29js3wlj10s"; })
+  (fetchNuGet { pname = "CliFx"; version = "2.0.6"; sha256 = "09yyjgpp52b0r3mqlvx75ld4vjp8hry7ql7r20nnvj0lach6fyh6"; })
+  (fetchNuGet { pname = "Gress"; version = "1.2.0"; sha256 = "0aidc9whi0718gh896j7xkyndki9x7rifd8n1n681afb2zbxw4bn"; })
+  (fetchNuGet { pname = "JsonExtensions"; version = "1.1.0"; sha256 = "1fqxb2jdbvjgg135wmy890qf63r056dq16jy7wgzkgp21m3j0lgy"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.21"; sha256 = "01kbhi29lhv6mg1zfsyakz3z8hfbxnc0kxy0fczl8xqviik9svx7"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; })
+  (fetchNuGet { pname = "MiniRazor.CodeGen"; version = "2.1.4"; sha256 = "1856hfw2wl3ilxmpg4jmwpigmq0rm50i9pmy3sq8f1xc8j44kzl2"; })
+  (fetchNuGet { pname = "MiniRazor.Runtime"; version = "2.1.4"; sha256 = "1pc3kjbnz810a8bb94k6355rflmayigfmpfmc4jzzx6l6iavnnc4"; })
+  (fetchNuGet { pname = "Polly"; version = "7.2.2"; sha256 = "0s15n5zwj44i6sw3v40ca8l6j0ijydxcakvad49j52rp49iwrmkn"; })
+  (fetchNuGet { pname = "Spectre.Console"; version = "0.41.0"; sha256 = "104vyzwbbq5m75dm31xk7ilvmik8hw1cj3bc301a8w6gq8i0fpk3"; })
+  (fetchNuGet { pname = "Superpower"; version = "2.3.0"; sha256 = "0bdsc3c0d6jb0wr67siqfba0ldl0jxbwis6xr0whzqzf6m2cyahm"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.0"; sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30"; })
+  (fetchNuGet { pname = "Tyrrrz.Extensions"; version = "1.6.5"; sha256 = "1yzsii1pbp6b066wxwwws310p7h809apl81bhb8ad55hqlzy1rg3"; })
+  (fetchNuGet { pname = "Wcwidth"; version = "0.2.0"; sha256 = "0p7zaisix9ql4v5nyl9gfc93xcyj74j01rwvgm7jw29js3wlj10s"; })
 ]
diff --git a/nixpkgs/pkgs/tools/backup/duplicity/default.nix b/nixpkgs/pkgs/tools/backup/duplicity/default.nix
index cbbd86e01675..232108d8e9f2 100644
--- a/nixpkgs/pkgs/tools/backup/duplicity/default.nix
+++ b/nixpkgs/pkgs/tools/backup/duplicity/default.nix
@@ -138,7 +138,7 @@ pythonPackages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Encrypted bandwidth-efficient backup using the rsync algorithm";
-    homepage = "https://www.nongnu.org/duplicity";
+    homepage = "https://duplicity.gitlab.io/duplicity-web/";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/tools/backup/gamerbackup/default.nix b/nixpkgs/pkgs/tools/backup/gamerbackup/default.nix
index 5512ce2b7b12..dcdaafb4e54f 100644
--- a/nixpkgs/pkgs/tools/backup/gamerbackup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/gamerbackup/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule {
   pname = "gb-backup";
-  version = "unstable-2021-04-07";
+  version = "unstable-2021-10-27";
 
   src = fetchFromGitHub {
     owner = "leijurv";
     repo = "gb";
-    rev = "904813bf0bbce048af5795618d58c0b1953f9ff8";
-    sha256 = "111jrcv4x38sc19xha5q3pd2297s13qh1maa7sa1k09hgypvgsxf";
+    rev = "61383d445af7b035fb8e1df0cacc424340dd16df";
+    sha256 = "sha256-YRrD2gW+gzxD2JwadCbF/SBSsHeeGPsa8kKZHHAytVo=";
   };
 
-  vendorSha256 = "0m2aa6p04b4fs7zncar1mlykc94pp527phv71cdsbx58jgsm1jnx";
+  vendorSha256 = "sha256-H3Zf4VNJVX9C3GTeqU4YhNqCIQz1R55MfhrygDgJTxc=";
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -23,6 +23,7 @@ buildGoModule {
 
   meta = with lib; {
     description = "Gamer Backup, a super opinionated cloud backup system";
+    homepage = "https://github.com/leijurv/gb";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ babbaj ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/backup/grab-site/default.nix b/nixpkgs/pkgs/tools/backup/grab-site/default.nix
index 2f2f01356b47..fe6496bf212b 100644
--- a/nixpkgs/pkgs/tools/backup/grab-site/default.nix
+++ b/nixpkgs/pkgs/tools/backup/grab-site/default.nix
@@ -1,8 +1,15 @@
-{ lib, python37, fetchFromGitHub }:
+{ lib, python38, fetchFromGitHub }:
 let
-  python = python37.override {
+  python = python38.override {
     self = python;
     packageOverrides = self: super: {
+      sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec {
+        version = "1.3.24";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "ebbb777cbf9312359b897bf81ba00dae0f5cb69fba2a18265dcc18a6f5ef7519";
+        };
+      });
       tornado = super.tornado_4;
     };
   };
@@ -10,18 +17,18 @@ let
 in
 with python.pkgs; buildPythonApplication rec {
   pname = "grab-site";
-  version = "2.2.0";
+  version = "2.2.2";
 
   src = fetchFromGitHub {
     rev = version;
     owner = "ArchiveTeam";
     repo = "grab-site";
-    sha256 = "1jxcv9dral6h7vfpfqkp1yif6plj0vspzakymkj8hfl75nh0wpv8";
+    sha256 = "0af53g703kqpxa6bn72mb2l5l0qrjknq5wqwl4wryyscdp4xabx4";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace '"wpull @ https://github.com/ArchiveTeam/ludios_wpull/tarball/master#egg=wpull-3.0.7"' '"wpull"'
+      --replace '"wpull @ https://github.com/ArchiveTeam/ludios_wpull/tarball/master#egg=wpull-${ludios_wpull.version}"' '"wpull"'
   '';
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/backup/hpe-ltfs/default.nix b/nixpkgs/pkgs/tools/backup/hpe-ltfs/default.nix
index ec8e6392e9cf..5ce6b287e932 100644
--- a/nixpkgs/pkgs/tools/backup/hpe-ltfs/default.nix
+++ b/nixpkgs/pkgs/tools/backup/hpe-ltfs/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fuse, icu, pkg-config, libxml2, libuuid }:
+{ lib, stdenv, fetchFromGitHub, fuse, icu66, pkg-config, libxml2, libuuid }:
 
 stdenv.mkDerivation rec {
   version = "3.4.2_Z7550-02501";
@@ -13,10 +13,15 @@ stdenv.mkDerivation rec {
 
   sourceRoot = "source/ltfs";
 
+  # include sys/sysctl.h is deprecated in glibc. The sysctl calls are only used
+  # for Apple to determine the kernel version. Because this build only targets
+  # Linux is it safe to remove.
+  patches = [ ./remove-sysctl.patch ];
+
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [
-    fuse icu libxml2 libuuid
+    fuse icu66 libxml2 libuuid
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/backup/hpe-ltfs/remove-sysctl.patch b/nixpkgs/pkgs/tools/backup/hpe-ltfs/remove-sysctl.patch
new file mode 100644
index 000000000000..35b56522a5bb
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/hpe-ltfs/remove-sysctl.patch
@@ -0,0 +1,14 @@
+diff --git a/src/libltfs/arch/arch_info.c b/src/libltfs/arch/arch_info.c
+index 179428f..114acf0 100644
+--- a/src/libltfs/arch/arch_info.c
++++ b/src/libltfs/arch/arch_info.c
+@@ -47,9 +47,6 @@
+ */
+ 
+ #include "libltfs/ltfs.h"
+-#ifndef mingw_PLATFORM
+-#include <sys/sysctl.h>
+-#endif
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <unistd.h>
diff --git a/nixpkgs/pkgs/tools/backup/kopia/default.nix b/nixpkgs/pkgs/tools/backup/kopia/default.nix
index ee9739bfac28..a878bcf6c043 100644
--- a/nixpkgs/pkgs/tools/backup/kopia/default.nix
+++ b/nixpkgs/pkgs/tools/backup/kopia/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGo117Module, fetchFromGitHub }:
 
-buildGoModule rec {
+buildGo117Module rec {
   pname = "kopia";
-  version = "0.9.2";
+  version = "0.9.8";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-C1KLwl+hwyoRUK4GrDhj1Wwx4Fut+QuhgTFagyQeldc=";
+    sha256 = "sha256-7Bvgtp6egZqpTv4Ac+OUkhKzTZhRRMwpdvwOCBA6Dso=";
   };
 
-  vendorSha256 = "sha256-v81YkImg8GdI5locfsU4dg2JyO7XB24mfHRIZ+k8QBA=";
+  vendorSha256 = "sha256-/dCRM61Zl5YbIb0mKhcyLU15nQhR31QAaq+5TwRK4pM=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/backup/partclone/default.nix b/nixpkgs/pkgs/tools/backup/partclone/default.nix
index 06c207471577..4686fcd3e647 100644
--- a/nixpkgs/pkgs/tools/backup/partclone/default.nix
+++ b/nixpkgs/pkgs/tools/backup/partclone/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "partclone";
-  version = "0.3.17";
+  version = "0.3.18";
 
   src = fetchFromGitHub {
     owner = "Thomas-Tsai";
     repo = "partclone";
     rev = version;
-    sha256 = "sha256-tMdBo26JvHxbVI/Y2KDMejH+YT4IVx2H/y36u9ss0C8=";
+    sha256 = "sha256-cSxQJmuKm54AzIQbsEZhv/I8hfpaGroszdWqbRb3Ht4=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/tools/backup/s3ql/default.nix b/nixpkgs/pkgs/tools/backup/s3ql/default.nix
index 00d3b427d60e..50b5279383db 100644
--- a/nixpkgs/pkgs/tools/backup/s3ql/default.nix
+++ b/nixpkgs/pkgs/tools/backup/s3ql/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "s3ql";
-  version = "3.7.3";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "release-${version}";
-    sha256 = "042fvkvranfnv2xxxz9d92cgia14p1hwmpjgm0rr94pjd36n1sfs";
+    sha256 = "0a6ll5vs7faj1klfz3j674399qfbhy3blp3c5wwsqvcdkpcjcx11";
   };
 
   checkInputs = [ which ] ++ (with python3Packages; [ cython pytest pytest-trio ]);
diff --git a/nixpkgs/pkgs/tools/backup/zbackup/default.nix b/nixpkgs/pkgs/tools/backup/zbackup/default.nix
index 795a45f8864d..ee5cc6fd89e9 100644
--- a/nixpkgs/pkgs/tools/backup/zbackup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/zbackup/default.nix
@@ -1,4 +1,8 @@
-{ lib, stdenv, fetchFromGitHub, cmake, zlib, openssl, protobuf, protobufc, lzo, libunwind }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch
+, cmake, protobufc
+, libunwind, lzo, openssl, protobuf, zlib
+}:
+
 stdenv.mkDerivation rec {
   pname = "zbackup";
   version = "1.4.4";
@@ -10,6 +14,12 @@ stdenv.mkDerivation rec {
     hash = "sha256-9Fk4EhEeQ2J4Kirc7oad4CzmW70Mmza6uozd87qfgZI=";
   };
 
+  patches = [
+    # compare with https://github.com/zbackup/zbackup/pull/158;
+    # but that doesn't apply cleanly to this version
+    ./protobuf-api-change.patch
+  ];
+
   buildInputs = [ zlib openssl protobuf lzo libunwind ];
   nativeBuildInputs = [ cmake protobufc ];
 
diff --git a/nixpkgs/pkgs/tools/backup/zbackup/protobuf-api-change.patch b/nixpkgs/pkgs/tools/backup/zbackup/protobuf-api-change.patch
new file mode 100644
index 000000000000..d071709878be
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/zbackup/protobuf-api-change.patch
@@ -0,0 +1,11 @@
+--- a/backup_restorer.cc
++++ b/backup_restorer.cc
+@@ -48,7 +48,7 @@
+   // TODO: this disables size checks for each separate message. Figure a better
+   // way to do this while keeping them enabled. It seems we need to create an
+   // instance of CodedInputStream for each message, but it might be expensive
+-  cis.SetTotalBytesLimit( backupData.size(), -1 );
++  cis.SetTotalBytesLimit( backupData.size() );
+ 
+   // Used when emitting chunks
+   string chunk;
diff --git a/nixpkgs/pkgs/tools/backup/zfs-prune-snapshots/default.nix b/nixpkgs/pkgs/tools/backup/zfs-prune-snapshots/default.nix
index f8a3adfecda6..ee60eb040116 100644
--- a/nixpkgs/pkgs/tools/backup/zfs-prune-snapshots/default.nix
+++ b/nixpkgs/pkgs/tools/backup/zfs-prune-snapshots/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, go-md2man }:
 
 stdenv.mkDerivation rec {
-  version = "1.1.0";
+  version = "1.3.0";
   pname = "zfs-prune-snapshots";
 
   src = fetchFromGitHub {
     owner = "bahamas10";
     repo = pname;
     rev = "v${version}";
-    sha256 = "09dz9v6m47dxfvfncz0k926dqfhagm87kd33dcw66cbw15ac3spx";
+    sha256 = "sha256-udzC4AUXk7h7HpRcz0V+kPECzATAYZtX8z2fvKPCZ/c=";
   };
 
   nativeBuildInputs = [ go-md2man ];
diff --git a/nixpkgs/pkgs/tools/backup/znapzend/default.nix b/nixpkgs/pkgs/tools/backup/znapzend/default.nix
index 9c3e4fca95de..5ea220f9e255 100644
--- a/nixpkgs/pkgs/tools/backup/znapzend/default.nix
+++ b/nixpkgs/pkgs/tools/backup/znapzend/default.nix
@@ -2,32 +2,32 @@
 
 let
   # when upgrade znapzend, check versions of Perl libs here: https://github.com/oetiker/znapzend/blob/master/cpanfile
-  # pinned versions are listed at https://github.com/oetiker/znapzend/blob/master/thirdparty/cpanfile-5.26.1.snapshot
-  Mojolicious-8-35 = perlPackages.buildPerlPackage rec {
+  # pinned versions are listed at https://github.com/oetiker/znapzend/blob/master/thirdparty/cpanfile-5.30.snapshot
+  Mojolicious' = perlPackages.buildPerlPackage rec {
     pname = "Mojolicious";
-    version = "8.35";
+    version = "8.73";
     src = fetchurl {
       url = "mirror://cpan/authors/id/S/SR/SRI/${pname}-${version}.tar.gz";
-      sha256 = "1bll0ahh5v1y3x0ql29klwsa68cj46wzqc385srsnn2m8kh2ak8h";
+      sha256 = "118y2264f89bbp5ly2dh36xjq25jk85s2ssxa3y4gsgsk6sjzzk1";
     };
   };
-  MojoIOLoopForkCall-0-20 = perlPackages.buildPerlModule rec {
+  MojoIOLoopForkCall' = perlPackages.buildPerlModule rec {
     pname = "Mojo-IOLoop-ForkCall";
     version = "0.20";
     src = fetchurl {
       url = "mirror://cpan/authors/id/J/JB/JBERGER/${pname}-${version}.tar.gz";
       sha256 = "19pih5x0ayxs2m8j29qwdpi6ky3w4ghv6vrmax3ix9r59hj6569b";
     };
-    propagatedBuildInputs = [ perlPackages.IOPipely Mojolicious-8-35 ];
+    propagatedBuildInputs = [ perlPackages.IOPipely Mojolicious' ];
   };
 
   perl' = perl.withPackages (p:
-    [ MojoIOLoopForkCall-0-20
+    [ MojoIOLoopForkCall'
       p.TAPParserSourceHandlerpgTAP
     ]);
 
-  version = "0.20.0";
-  checksum = "15lb5qwksa508m9bj6d3n4rrjpakfaas9qxspg408bcqfp7pqjw3";
+  version = "0.21.0";
+  sha256 = "1lg46rf2ahlclan29zx8ag5k4fjp28sc9l02z76f0pvdlj4qnihl";
 in
 stdenv.mkDerivation {
   pname = "znapzend";
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
     owner = "oetiker";
     repo = "znapzend";
     rev = "v${version}";
-    sha256 = checksum;
+    inherit sha256;
   };
 
   buildInputs = [ wget perl' ];
diff --git a/nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix b/nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix
index 95413986e8a4..2ef7fedefc40 100644
--- a/nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix
+++ b/nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "blueberry";
-  version = "1.4.4";
+  version = "1.4.6";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-dz0uGesyuQVXI7aEONCeOsa2vVw5yuStSFPnrqv2VcM=";
+    sha256 = "sha256-4SKEkoIEflOX5WXJ7X3onrieecT2NoH/eV3H3Cx/SYQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/bluetooth/blueman/default.nix b/nixpkgs/pkgs/tools/bluetooth/blueman/default.nix
index 528f0999b2c6..e6c2fabeae90 100644
--- a/nixpkgs/pkgs/tools/bluetooth/blueman/default.nix
+++ b/nixpkgs/pkgs/tools/bluetooth/blueman/default.nix
@@ -9,11 +9,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "blueman";
-  version = "2.2.2";
+  version = "2.2.3";
 
   src = fetchurl {
     url = "https://github.com/blueman-project/blueman/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-Ge1ZsaE09YT8AF9HKV/vZAqXCf2bmyMHOI4RKjLs0PY=";
+    sha256 = "sha256-bt15Haav2PYQ/7CNUTjPz1DmJXrTDvrWhih/OivhBuk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/bluetooth/bluez-tools/default.nix b/nixpkgs/pkgs/tools/bluetooth/bluez-tools/default.nix
index 6b87a54be63a..dfb7147d08eb 100644
--- a/nixpkgs/pkgs/tools/bluetooth/bluez-tools/default.nix
+++ b/nixpkgs/pkgs/tools/bluetooth/bluez-tools/default.nix
@@ -2,14 +2,13 @@
 , fetchFromGitHub, glib, pkg-config }:
 
 stdenv.mkDerivation rec {
-  date    = "2016-12-12";
-  name    = "bluez-tools-${date}";
-  rev     = "97efd29";
+  version = "unstable-2016-12-12";
+  pname = "bluez-tools";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "khvzak";
     repo = "bluez-tools";
+    rev = "97efd293491ad7ec96a655665339908f2478b3d1";
     sha256 = "08xp77sf5wnq5086halmyk3vla4bfls06q1zrqdcq36hw6d409i6";
   };
 
diff --git a/nixpkgs/pkgs/tools/cd-dvd/brasero/default.nix b/nixpkgs/pkgs/tools/cd-dvd/brasero/default.nix
index ea720f4f3eb2..2107d4ed0824 100644
--- a/nixpkgs/pkgs/tools/cd-dvd/brasero/default.nix
+++ b/nixpkgs/pkgs/tools/cd-dvd/brasero/default.nix
@@ -12,7 +12,7 @@ in stdenv.mkDerivation rec {
   pname = "brasero";
 
   src = fetchurl {
-    url = "http://download.gnome.org/sources/brasero/${major}/${pname}-${version}.tar.xz";
+    url = "mirror://gnome/sources/brasero/${major}/${pname}-${version}.tar.xz";
     sha256 = "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8";
   };
 
diff --git a/nixpkgs/pkgs/tools/cd-dvd/ccd2iso/default.nix b/nixpkgs/pkgs/tools/cd-dvd/ccd2iso/default.nix
index ad3fee9792c6..1fe606e6acc2 100644
--- a/nixpkgs/pkgs/tools/cd-dvd/ccd2iso/default.nix
+++ b/nixpkgs/pkgs/tools/cd-dvd/ccd2iso/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     description = "CloneCD to ISO converter";
     homepage = "https://sourceforge.net/projects/ccd2iso/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ yegortimoshenko ];
+    maintainers = with maintainers; [ yana ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/cd-dvd/cdrkit/cdrkit-1.1.11-fno-common.patch b/nixpkgs/pkgs/tools/cd-dvd/cdrkit/cdrkit-1.1.11-fno-common.patch
new file mode 100644
index 000000000000..c7db796cfcfc
--- /dev/null
+++ b/nixpkgs/pkgs/tools/cd-dvd/cdrkit/cdrkit-1.1.11-fno-common.patch
@@ -0,0 +1,11 @@
+--- a/genisoimage/genisoimage.h
++++ b/genisoimage/genisoimage.h
+@@ -377,7 +377,7 @@ extern int	use_fileversion;
+ extern int	split_SL_component;
+ extern int	split_SL_field;
+ extern char	*trans_tbl;
+-char		*outfile;
++extern char	*outfile;
+ 
+ #define	JMAX		64	/* maximum Joliet file name length (spec) */
+ #define	JLONGMAX	103	/* out of spec Joliet file name length */
diff --git a/nixpkgs/pkgs/tools/cd-dvd/cdrkit/default.nix b/nixpkgs/pkgs/tools/cd-dvd/cdrkit/default.nix
index 1bc84cf59dfe..e3d53297193f 100644
--- a/nixpkgs/pkgs/tools/cd-dvd/cdrkit/default.nix
+++ b/nixpkgs/pkgs/tools/cd-dvd/cdrkit/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   # efi-boot-patch extracted from http://arm.koji.fedoraproject.org/koji/rpminfo?rpmID=174244
-  patches = [ ./include-path.patch ./cdrkit-1.1.9-efi-boot.patch ];
+  patches = [ ./include-path.patch ./cdrkit-1.1.9-efi-boot.patch ./cdrkit-1.1.11-fno-common.patch ];
 
   postInstall = ''
     # file name compatibility with the old cdrecord (growisofs wants this name)
diff --git a/nixpkgs/pkgs/tools/cd-dvd/cdrtools/default.nix b/nixpkgs/pkgs/tools/cd-dvd/cdrtools/default.nix
index bca1a1c689c3..f49826b99bfa 100644
--- a/nixpkgs/pkgs/tools/cd-dvd/cdrtools/default.nix
+++ b/nixpkgs/pkgs/tools/cd-dvd/cdrtools/default.nix
@@ -16,6 +16,10 @@ stdenv.mkDerivation rec {
     sed "/\.mk3/d" -i libschily/Targets.man
     substituteInPlace man/Makefile --replace "man4" ""
     substituteInPlace RULES/rules.prg --replace "/bin/" ""
+  '' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
+    ln -sv i386-darwin-clang64.rul RULES/arm64-darwin-cc.rul
+    ln -sv i386-darwin-clang64.rul RULES/arm64-darwin-clang.rul
+    ln -sv i386-darwin-clang64.rul RULES/arm64-darwin-clang64.rul
   '';
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/tools/cd-dvd/nrg2iso/default.nix b/nixpkgs/pkgs/tools/cd-dvd/nrg2iso/default.nix
index e57948a80dd6..c0f74b8cddc7 100644
--- a/nixpkgs/pkgs/tools/cd-dvd/nrg2iso/default.nix
+++ b/nixpkgs/pkgs/tools/cd-dvd/nrg2iso/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nrg2iso";
-  version = "0.4";
+  version = "0.4.1";
 
   src = fetchurl {
     url = "http://gregory.kokanosky.free.fr/v4/linux/${pname}-${version}.tar.gz";
-    sha256 = "18sam7yy50rbfhjixwd7wx7kmfn1x1y5j80vwfxi5v408s39s115";
+    sha256 = "sha256-O+NqQWdY/BkQRztJqNrfKiqj1R8ZdhlzNrwXS8HjBuU=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/default.nix b/nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/default.nix
index 334b3abdfc95..b5f33f7a6585 100644
--- a/nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/default.nix
+++ b/nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/default.nix
@@ -1,6 +1,8 @@
 { lib, stdenv, fetchurl, fetchpatch
 , autoPatchelfHook, makeWrapper
 , hexdump, exfat, dosfstools, e2fsprogs, xz, util-linux, bash, parted
+, withGtk3 ? true, gtk3
+, withQt5 ? false, qt5
 }:
 
 let arch = {
@@ -9,16 +11,22 @@ let arch = {
   aarch64-linux = "aarch64";
   mipsel-linux = "mips64el";
 }.${stdenv.hostPlatform.system} or (throw "Unsupported platform ${stdenv.hostPlatform.system}");
+defaultGuiType = if withGtk3 then "gtk3"
+                 else if withQt5 then "qt5"
+                 else "";
 in stdenv.mkDerivation rec {
   pname = "ventoy-bin";
-  version = "1.0.51";
+  version = "1.0.56";
 
-  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
-  buildInputs = [ hexdump exfat dosfstools e2fsprogs xz util-linux bash parted ];
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper ]
+    ++ lib.optional withQt5 qt5.wrapQtAppsHook;
+  buildInputs = [ hexdump exfat dosfstools e2fsprogs xz util-linux bash parted ]
+    ++ lib.optional withGtk3 gtk3
+    ++ lib.optional withQt5 qt5.qtbase;
 
   src = fetchurl {
     url = "https://github.com/ventoy/Ventoy/releases/download/v${version}/ventoy-${version}-linux.tar.gz";
-    sha256 = "81ae02a06b132b5965dd09c9b64e000a6dafa1d57e03d8564feefda14ef1ee02";
+    sha256 = "da53d51e653092a170c11dd560e0ad6fb27c497dd77ad0ba483c32935c069dea";
   };
   patches = [
     (fetchpatch {
@@ -53,12 +61,13 @@ in stdenv.mkDerivation rec {
 
     # Cleanup.
     case "$ARCH" in
-        x86_64) rm -r tool/{i386,aarch64,mips64el};;
-        i386) rm -r tool/{x86_64,aarch64,mips64el};;
-        aarch64) rm -r tool/{x86_64,i386,mips64el};;
-        mips64el) rm -r tool/{x86_64,i386,aarch64};;
+        x86_64) rm -r {tool/,VentoyGUI.}{i386,aarch64,mips64el};;
+        i386) rm -r {tool/,VentoyGUI.}{x86_64,aarch64,mips64el};;
+        aarch64) rm -r {tool/,VentoyGUI.}{x86_64,i386,mips64el};;
+        mips64el) rm -r {tool/,VentoyGUI.}{x86_64,i386,aarch64};;
     esac
     rm README
+    rm tool/"$ARCH"/Ventoy2Disk.gtk2
 
     # Copy from "$src" to "$out".
     mkdir -p "$out"/bin "$VENTOY_PATH"
@@ -72,6 +81,15 @@ in stdenv.mkDerivation rec {
                     --prefix PATH : "${lib.makeBinPath buildInputs}" \
                     --run "cd '$VENTOY_PATH' || exit 1"
     done
+  '' + lib.optionalString (withGtk3 || withQt5) ''
+    echo "${defaultGuiType}" > "$VENTOY_PATH/ventoy_gui_type"
+    makeWrapper "$VENTOY_PATH/VentoyGUI.$ARCH" "$out/bin/ventoy-gui" \
+                --prefix PATH : "${lib.makeBinPath buildInputs}" \
+                --run "cd '$VENTOY_PATH' || exit 1"
+  '' + lib.optionalString (!withGtk3) ''
+    rm "$out"/share/ventoy/tool/"$ARCH"/Ventoy2Disk.gtk3
+  '' + lib.optionalString (!withQt5) ''
+    rm "$out"/share/ventoy/tool/"$ARCH"/Ventoy2Disk.qt5
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/cd-dvd/vobsub2srt/default.nix b/nixpkgs/pkgs/tools/cd-dvd/vobsub2srt/default.nix
index 54df481cd676..624bcc08b41f 100644
--- a/nixpkgs/pkgs/tools/cd-dvd/vobsub2srt/default.nix
+++ b/nixpkgs/pkgs/tools/cd-dvd/vobsub2srt/default.nix
@@ -1,8 +1,8 @@
 { lib, stdenv, fetchgit, cmake, libtiff, pkg-config, tesseract }:
 
 stdenv.mkDerivation rec {
-  pname = "vobsub2srt-git";
-  version = "20140817-${builtins.substring 0 7 rev}";
+  pname = "vobsub2srt";
+  version = "unstable-2014-08-17";
   rev = "a6abbd61127a6392d420bbbebdf7612608c943c2";
 
   src = fetchgit {
diff --git a/nixpkgs/pkgs/tools/cd-dvd/xorriso/default.nix b/nixpkgs/pkgs/tools/cd-dvd/xorriso/default.nix
index e1cd7cc4046e..2dd1b24adbba 100644
--- a/nixpkgs/pkgs/tools/cd-dvd/xorriso/default.nix
+++ b/nixpkgs/pkgs/tools/cd-dvd/xorriso/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, lib, stdenv, libcdio, zlib, bzip2, readline, acl, attr, libiconv }:
 
 stdenv.mkDerivation rec {
-  name = "xorriso-${version}";
+  pname = "xorriso";
   version = "1.5.4.pl02";
 
   src = fetchurl {
-    url = "mirror://gnu/xorriso/${name}.tar.gz";
+    url = "mirror://gnu/xorriso/xorriso-${version}.tar.gz";
     sha256 = "sha256-Psc5PUqdy/X3QwnCikFfVSJ+xidwuVrpk6yNejsVKXI=";
   };
 
diff --git a/nixpkgs/pkgs/tools/compression/advancecomp/default.nix b/nixpkgs/pkgs/tools/compression/advancecomp/default.nix
index 7f8733b9b4ec..00ce6af1d593 100644
--- a/nixpkgs/pkgs/tools/compression/advancecomp/default.nix
+++ b/nixpkgs/pkgs/tools/compression/advancecomp/default.nix
@@ -26,6 +26,13 @@ stdenv.mkDerivation rec {
       sha256 = "0cdv9g87c1y8zwhqkd9ba2zjw4slcvg7yzcqv43idvnwb5fl29n7";
       excludes = [ "doc/history.d" ];
     })
+
+    # Pull upstream fix for gcc-11:
+    (fetchpatch {
+      name = "gcc-11.patch";
+      url = "https://github.com/amadvance/advancecomp/commit/7b08f7a2af3f66ab95437e4490499cebb20e5e41.patch";
+      sha256 = "0gpppq6b760m1429g7d808ipdgb4lrqc1b6xk2457y66pbaiwc9s";
+    })
   ];
 
   # autover.sh relies on 'git describe', which obviously doesn't work as we're not cloning
diff --git a/nixpkgs/pkgs/tools/compression/bsdiff/CVE-2020-14315.patch b/nixpkgs/pkgs/tools/compression/bsdiff/CVE-2020-14315.patch
new file mode 100644
index 000000000000..bb7ff41284eb
--- /dev/null
+++ b/nixpkgs/pkgs/tools/compression/bsdiff/CVE-2020-14315.patch
@@ -0,0 +1,384 @@
+Description: patch for CVE-2020-14315
+ A memory corruption vulnerability is present in bspatch as shipped in
+ Colin Percival’s bsdiff tools version 4.3. Insufficient checks when
+ handling external inputs allows an attacker to bypass the sanity checks
+ in place and write out of a dynamically allocated buffer boundaries.
+Source: https://svnweb.freebsd.org/base/head/usr.bin/bsdiff/bspatch/bspatch.c?revision=352742&view=co
+Author: tony mancill <tmancill@debian.org>
+Comment: The patch was created by comparing the Debian sources to the
+ "Confirmed Patched Version" [1] documented in the
+ X41 D-SEC GmbH Security Advisory: X41-2020-006 [2].
+ References to FreeBSD capsicum have been dropped.  Definitions for
+ TYPE_MINIMUM and TYPE_MAXIMUM have been borrowed from the Debian
+ coreutils package sources but originate in gnulib [3] and are used to
+ define OFF_MIN and OFF_MAX (limits of off_t). Whitespace changes from
+ the confirmed patched version are also included and keep the difference
+ between the Debian sources and the confirmed patched version minimal.
+ .
+ [1] https://svnweb.freebsd.org/base/head/usr.bin/bsdiff/bspatch/bspatch.c?revision=352742&view=co
+ [2] https://www.openwall.com/lists/oss-security/2020/07/09/2
+ [3] https://www.gnu.org/software/gnulib/
+Last-Update: 2021-04-03
+Forwarded: not-needed
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=964796
+
+--- a/bspatch.c
++++ b/bspatch.c
+@@ -1,4 +1,6 @@
+ /*-
++ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
++ *
+  * Copyright 2003-2005 Colin Percival
+  * All rights reserved
+  *
+@@ -24,56 +26,148 @@
+  * POSSIBILITY OF SUCH DAMAGE.
+  */
+ 
++#include <sys/cdefs.h>
+ #if 0
+-__FBSDID("$FreeBSD: src/usr.bin/bsdiff/bspatch/bspatch.c,v 1.1 2005/08/06 01:59:06 cperciva Exp $");
++__FBSDID("$FreeBSD$");
+ #endif
+ 
+ #include <bzlib.h>
+-#include <stdlib.h>
++#include <err.h>
++#include <fcntl.h>
++#include <libgen.h>
++#include <limits.h>
++#include <stdint.h>
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <string.h>
+-#include <err.h>
+ #include <unistd.h>
+-#include <fcntl.h>
++
++#ifndef O_BINARY
++#define O_BINARY 0
++#endif
++#define HEADER_SIZE 32
++
++/* TYPE_MINIMUM and TYPE_MAXIMUM taken from coreutils */
++#ifndef TYPE_MINIMUM
++#define TYPE_MINIMUM(t) \
++  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
++#endif
++#ifndef TYPE_MAXIMUM
++#define TYPE_MAXIMUM(t) \
++  ((t) ((t) 0 < (t) -1 \
++        ? (t) -1 \
++        : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
++#endif
++
++#ifndef OFF_MAX
++#define OFF_MAX TYPE_MAXIMUM(off_t)
++#endif
++
++#ifndef OFF_MIN
++#define OFF_MIN TYPE_MINIMUM(off_t)
++#endif
++
++static char *newfile;
++static int dirfd = -1;
++
++static void
++exit_cleanup(void)
++{
++
++	if (dirfd != -1 && newfile != NULL)
++		if (unlinkat(dirfd, newfile, 0))
++			warn("unlinkat");
++}
++
++static inline off_t
++add_off_t(off_t a, off_t b)
++{
++	off_t result;
++
++#if __GNUC__ >= 5
++	if (__builtin_add_overflow(a, b, &result))
++		errx(1, "Corrupt patch");
++#else
++	if ((b > 0 && a > OFF_MAX - b) || (b < 0 && a < OFF_MIN - b))
++		errx(1, "Corrupt patch");
++	result = a + b;
++#endif
++	return result;
++}
+ 
+ static off_t offtin(u_char *buf)
+ {
+ 	off_t y;
+ 
+-	y=buf[7]&0x7F;
+-	y=y*256;y+=buf[6];
+-	y=y*256;y+=buf[5];
+-	y=y*256;y+=buf[4];
+-	y=y*256;y+=buf[3];
+-	y=y*256;y+=buf[2];
+-	y=y*256;y+=buf[1];
+-	y=y*256;y+=buf[0];
++	y = buf[7] & 0x7F;
++	y = y * 256; y += buf[6];
++	y = y * 256; y += buf[5];
++	y = y * 256; y += buf[4];
++	y = y * 256; y += buf[3];
++	y = y * 256; y += buf[2];
++	y = y * 256; y += buf[1];
++	y = y * 256; y += buf[0];
+ 
+-	if(buf[7]&0x80) y=-y;
++	if (buf[7] & 0x80)
++		y = -y;
+ 
+-	return y;
++	return (y);
+ }
+ 
+-int main(int argc,char * argv[])
++static void
++usage(void)
+ {
+-	FILE * f, * cpf, * dpf, * epf;
+-	BZFILE * cpfbz2, * dpfbz2, * epfbz2;
++
++	fprintf(stderr, "usage: bspatch oldfile newfile patchfile\n");
++	exit(1);
++}
++
++int main(int argc, char *argv[])
++{
++	FILE *f, *cpf, *dpf, *epf;
++	BZFILE *cpfbz2, *dpfbz2, *epfbz2;
++	char *directory, *namebuf;
+ 	int cbz2err, dbz2err, ebz2err;
+-	int fd;
+-	ssize_t oldsize,newsize;
+-	ssize_t bzctrllen,bzdatalen;
+-	u_char header[32],buf[8];
++	int newfd, oldfd;
++	off_t oldsize, newsize;
++	off_t bzctrllen, bzdatalen;
++	u_char header[HEADER_SIZE], buf[8];
+ 	u_char *old, *new;
+-	off_t oldpos,newpos;
++	off_t oldpos, newpos;
+ 	off_t ctrl[3];
+-	off_t lenread;
+-	off_t i;
++	off_t i, lenread, offset;
+ 
+-	if(argc!=4) errx(1,"usage: %s oldfile newfile patchfile\n",argv[0]);
++	if (argc != 4)
++		usage();
+ 
+ 	/* Open patch file */
+-	if ((f = fopen(argv[3], "r")) == NULL)
++	if ((f = fopen(argv[3], "rb")) == NULL)
++		err(1, "fopen(%s)", argv[3]);
++	/* Open patch file for control block */
++	if ((cpf = fopen(argv[3], "rb")) == NULL)
++		err(1, "fopen(%s)", argv[3]);
++	/* open patch file for diff block */
++	if ((dpf = fopen(argv[3], "rb")) == NULL)
+ 		err(1, "fopen(%s)", argv[3]);
++	/* open patch file for extra block */
++	if ((epf = fopen(argv[3], "rb")) == NULL)
++		err(1, "fopen(%s)", argv[3]);
++	/* open oldfile */
++	if ((oldfd = open(argv[1], O_RDONLY | O_BINARY, 0)) < 0)
++		err(1, "open(%s)", argv[1]);
++	/* open directory where we'll write newfile */
++	if ((namebuf = strdup(argv[2])) == NULL ||
++	    (directory = dirname(namebuf)) == NULL ||
++	    (dirfd = open(directory, O_DIRECTORY)) < 0)
++		err(1, "open %s", argv[2]);
++	free(namebuf);
++	if ((newfile = basename(argv[2])) == NULL)
++		err(1, "basename");
++	/* open newfile */
++	if ((newfd = openat(dirfd, newfile,
++	    O_CREAT | O_TRUNC | O_WRONLY | O_BINARY, 0666)) < 0)
++		err(1, "open(%s)", argv[2]);
++	atexit(exit_cleanup);
+ 
+ 	/*
+ 	File format:
+@@ -90,104 +185,104 @@
+ 	*/
+ 
+ 	/* Read header */
+-	if (fread(header, 1, 32, f) < 32) {
++	if (fread(header, 1, HEADER_SIZE, f) < HEADER_SIZE) {
+ 		if (feof(f))
+-			errx(1, "Corrupt patch\n");
++			errx(1, "Corrupt patch");
+ 		err(1, "fread(%s)", argv[3]);
+ 	}
+ 
+ 	/* Check for appropriate magic */
+ 	if (memcmp(header, "BSDIFF40", 8) != 0)
+-		errx(1, "Corrupt patch\n");
++		errx(1, "Corrupt patch");
+ 
+ 	/* Read lengths from header */
+-	bzctrllen=offtin(header+8);
+-	bzdatalen=offtin(header+16);
+-	newsize=offtin(header+24);
+-	if((bzctrllen<0) || (bzdatalen<0) || (newsize<0))
+-		errx(1,"Corrupt patch\n");
++	bzctrllen = offtin(header + 8);
++	bzdatalen = offtin(header + 16);
++	newsize = offtin(header + 24);
++	if (bzctrllen < 0 || bzctrllen > OFF_MAX - HEADER_SIZE ||
++	    bzdatalen < 0 || bzctrllen + HEADER_SIZE > OFF_MAX - bzdatalen ||
++	    newsize < 0 || newsize > SSIZE_MAX)
++		errx(1, "Corrupt patch");
+ 
+ 	/* Close patch file and re-open it via libbzip2 at the right places */
+ 	if (fclose(f))
+ 		err(1, "fclose(%s)", argv[3]);
+-	if ((cpf = fopen(argv[3], "r")) == NULL)
+-		err(1, "fopen(%s)", argv[3]);
+-	if (fseeko(cpf, 32, SEEK_SET))
+-		err(1, "fseeko(%s, %lld)", argv[3],
+-		    (long long)32);
++	offset = HEADER_SIZE;
++	if (fseeko(cpf, offset, SEEK_SET))
++		err(1, "fseeko(%s, %jd)", argv[3], (intmax_t)offset);
+ 	if ((cpfbz2 = BZ2_bzReadOpen(&cbz2err, cpf, 0, 0, NULL, 0)) == NULL)
+ 		errx(1, "BZ2_bzReadOpen, bz2err = %d", cbz2err);
+-	if ((dpf = fopen(argv[3], "r")) == NULL)
+-		err(1, "fopen(%s)", argv[3]);
+-	if (fseeko(dpf, 32 + bzctrllen, SEEK_SET))
+-		err(1, "fseeko(%s, %lld)", argv[3],
+-		    (long long)(32 + bzctrllen));
++	offset = add_off_t(offset, bzctrllen);
++	if (fseeko(dpf, offset, SEEK_SET))
++		err(1, "fseeko(%s, %jd)", argv[3], (intmax_t)offset);
+ 	if ((dpfbz2 = BZ2_bzReadOpen(&dbz2err, dpf, 0, 0, NULL, 0)) == NULL)
+ 		errx(1, "BZ2_bzReadOpen, bz2err = %d", dbz2err);
+-	if ((epf = fopen(argv[3], "r")) == NULL)
+-		err(1, "fopen(%s)", argv[3]);
+-	if (fseeko(epf, 32 + bzctrllen + bzdatalen, SEEK_SET))
+-		err(1, "fseeko(%s, %lld)", argv[3],
+-		    (long long)(32 + bzctrllen + bzdatalen));
++	offset = add_off_t(offset, bzdatalen);
++	if (fseeko(epf, offset, SEEK_SET))
++		err(1, "fseeko(%s, %jd)", argv[3], (intmax_t)offset);
+ 	if ((epfbz2 = BZ2_bzReadOpen(&ebz2err, epf, 0, 0, NULL, 0)) == NULL)
+ 		errx(1, "BZ2_bzReadOpen, bz2err = %d", ebz2err);
+ 
+-	if(((fd=open(argv[1],O_RDONLY,0))<0) ||
+-		((oldsize=lseek(fd,0,SEEK_END))==-1) ||
+-		((old=malloc(oldsize+1))==NULL) ||
+-		(lseek(fd,0,SEEK_SET)!=0) ||
+-		(read(fd,old,oldsize)!=oldsize) ||
+-		(close(fd)==-1)) err(1,"%s",argv[1]);
+-	if((new=malloc(newsize+1))==NULL) err(1,NULL);
+-
+-	oldpos=0;newpos=0;
+-	while(newpos<newsize) {
++	if ((oldsize = lseek(oldfd, 0, SEEK_END)) == -1 ||
++	    oldsize > SSIZE_MAX ||
++	    (old = malloc(oldsize)) == NULL ||
++	    lseek(oldfd, 0, SEEK_SET) != 0 ||
++	    read(oldfd, old, oldsize) != oldsize ||
++	    close(oldfd) == -1)
++		err(1, "%s", argv[1]);
++	if ((new = malloc(newsize)) == NULL)
++		err(1, NULL);
++
++	oldpos = 0;
++	newpos = 0;
++	while (newpos < newsize) {
+ 		/* Read control data */
+-		for(i=0;i<=2;i++) {
++		for (i = 0; i <= 2; i++) {
+ 			lenread = BZ2_bzRead(&cbz2err, cpfbz2, buf, 8);
+ 			if ((lenread < 8) || ((cbz2err != BZ_OK) &&
+ 			    (cbz2err != BZ_STREAM_END)))
+-				errx(1, "Corrupt patch\n");
+-			ctrl[i]=offtin(buf);
+-		};
++				errx(1, "Corrupt patch");
++			ctrl[i] = offtin(buf);
++		}
+ 
+ 		/* Sanity-check */
+-		if ((ctrl[0] < 0) || (ctrl[1] < 0))
+-			errx(1,"Corrupt patch\n");
++		if (ctrl[0] < 0 || ctrl[0] > INT_MAX ||
++		    ctrl[1] < 0 || ctrl[1] > INT_MAX)
++			errx(1, "Corrupt patch");
+ 
+ 		/* Sanity-check */
+-		if(newpos+ctrl[0]>newsize)
+-			errx(1,"Corrupt patch\n");
++		if (add_off_t(newpos, ctrl[0]) > newsize)
++			errx(1, "Corrupt patch");
+ 
+ 		/* Read diff string */
+ 		lenread = BZ2_bzRead(&dbz2err, dpfbz2, new + newpos, ctrl[0]);
+ 		if ((lenread < ctrl[0]) ||
+ 		    ((dbz2err != BZ_OK) && (dbz2err != BZ_STREAM_END)))
+-			errx(1, "Corrupt patch\n");
++			errx(1, "Corrupt patch");
+ 
+ 		/* Add old data to diff string */
+-		for(i=0;i<ctrl[0];i++)
+-			if((oldpos+i>=0) && (oldpos+i<oldsize))
+-				new[newpos+i]+=old[oldpos+i];
++		for (i = 0; i < ctrl[0]; i++)
++			if (add_off_t(oldpos, i) < oldsize)
++				new[newpos + i] += old[oldpos + i];
+ 
+ 		/* Adjust pointers */
+-		newpos+=ctrl[0];
+-		oldpos+=ctrl[0];
++		newpos = add_off_t(newpos, ctrl[0]);
++		oldpos = add_off_t(oldpos, ctrl[0]);
+ 
+ 		/* Sanity-check */
+-		if(newpos+ctrl[1]>newsize)
+-			errx(1,"Corrupt patch\n");
++		if (add_off_t(newpos, ctrl[1]) > newsize)
++			errx(1, "Corrupt patch");
+ 
+ 		/* Read extra string */
+ 		lenread = BZ2_bzRead(&ebz2err, epfbz2, new + newpos, ctrl[1]);
+ 		if ((lenread < ctrl[1]) ||
+ 		    ((ebz2err != BZ_OK) && (ebz2err != BZ_STREAM_END)))
+-			errx(1, "Corrupt patch\n");
++			errx(1, "Corrupt patch");
+ 
+ 		/* Adjust pointers */
+-		newpos+=ctrl[1];
+-		oldpos+=ctrl[2];
+-	};
++		newpos = add_off_t(newpos, ctrl[1]);
++		oldpos = add_off_t(oldpos, ctrl[2]);
++	}
+ 
+ 	/* Clean up the bzip2 reads */
+ 	BZ2_bzReadClose(&cbz2err, cpfbz2);
+@@ -197,12 +292,13 @@
+ 		err(1, "fclose(%s)", argv[3]);
+ 
+ 	/* Write the new file */
+-	if(((fd=open(argv[2],O_CREAT|O_TRUNC|O_WRONLY,0666))<0) ||
+-		(write(fd,new,newsize)!=newsize) || (close(fd)==-1))
+-		err(1,"%s",argv[2]);
++	if (write(newfd, new, newsize) != newsize || close(newfd) == -1)
++		err(1, "%s", argv[2]);
++	/* Disable atexit cleanup */
++	newfile = NULL;
+ 
+ 	free(new);
+ 	free(old);
+ 
+-	return 0;
++	return (0);
+ }
diff --git a/nixpkgs/pkgs/tools/compression/bsdiff/default.nix b/nixpkgs/pkgs/tools/compression/bsdiff/default.nix
index 8f8818781ab4..b8a86eae89bd 100644
--- a/nixpkgs/pkgs/tools/compression/bsdiff/default.nix
+++ b/nixpkgs/pkgs/tools/compression/bsdiff/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, bzip2 }:
+{ lib, stdenv, fetchurl, fetchpatch, bzip2 }:
 
 stdenv.mkDerivation rec {
   pname = "bsdiff";
@@ -10,7 +10,27 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ bzip2 ];
-  patches = [ ./include-systypes.patch ];
+  patches = [
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/b/bsdiff/4.3-22/debian/patches/20-CVE-2014-9862.patch";
+      sha256 = "sha256-3UuUfNvShQ8fLqxCKUTb/n4BmjL4+Nl7aEqCxYrrERQ=";
+    })
+    ./CVE-2020-14315.patch
+    ./include-systypes.patch
+  ] ++ lib.optional stdenv.hostPlatform.isLinux [
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/b/bsdiff/4.3-22/debian/patches/30-bug-632585-mmap-src-file-instead-of-malloc-read-it.patch";
+      sha256 = "sha256-esbhz2/efUiuQDuF7LGfSeEn3/f1WbqCxQpTs2A0ulI=";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/b/bsdiff/4.3-22/debian/patches/31-bug-632585-mmap-dst-file-instead-of-malloc-read-it.patch";
+      sha256 = "sha256-Of4aOcI0rsgdRzPqyw2VRn2p9wQuo3hdlgDTBdXGzoc=";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/b/bsdiff/4.3-22/debian/patches/32-bug-632585-use-int32_t-instead-off_t-for-file-size.patch";
+      sha256 = "sha256-SooFnFK4uKNXvXQb/LEcH8GocnRtkryExI4b3BZTsAY=";
+    })
+  ];
 
   buildPhase = ''
     $CC -O3 -lbz2 bspatch.c -o bspatch
diff --git a/nixpkgs/pkgs/tools/compression/crabz/default.nix b/nixpkgs/pkgs/tools/compression/crabz/default.nix
index ab5cc94b43a1..5eafb3f56145 100644
--- a/nixpkgs/pkgs/tools/compression/crabz/default.nix
+++ b/nixpkgs/pkgs/tools/compression/crabz/default.nix
@@ -29,6 +29,15 @@ rustPlatform.buildRustPackage rec {
     Security
   ];
 
+  # link System as a dylib instead of a framework on macos
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    core_affinity=../$(stripHash $cargoDeps)/core_affinity
+    oldHash=$(sha256sum $core_affinity/src/lib.rs | cut -d " " -f 1)
+    substituteInPlace $core_affinity/src/lib.rs --replace framework dylib
+    substituteInPlace $core_affinity/.cargo-checksum.json \
+      --replace $oldHash $(sha256sum $core_affinity/src/lib.rs | cut -d " " -f 1)
+  '';
+
   meta = with lib; {
     description = "A cross platform, fast, compression and decompression tool";
     homepage = "https://github.com/sstadick/crabz";
diff --git a/nixpkgs/pkgs/tools/compression/dtrx/default.nix b/nixpkgs/pkgs/tools/compression/dtrx/default.nix
deleted file mode 100644
index 6c4f2f6e854e..000000000000
--- a/nixpkgs/pkgs/tools/compression/dtrx/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ lib, fetchurl, python2Packages
-, gnutar, unzip, lhasa, rpm, binutils, cpio, gzip, p7zip, cabextract, unrar, unshield
-, bzip2, xz, lzip
-# unzip is handled by p7zip
-, unzipSupport ? false
-, unrarSupport ? false }:
-
-let
-  archivers = lib.makeBinPath ([ gnutar lhasa rpm binutils cpio gzip p7zip cabextract unshield ]
-  ++ lib.optional (unzipSupport) unzip
-  ++ lib.optional (unrarSupport) unrar
-  ++ [ bzip2 xz lzip ]);
-
-in python2Packages.buildPythonApplication rec {
-  pname = "dtrx";
-  version = "7.1";
-
-  src = fetchurl {
-    url = "https://brettcsmith.org/2007/dtrx/dtrx-${version}.tar.gz";
-    sha256 = "15yf4n27zbhvv0byfv3i89wl5zn6jc2wbc69lk5a3m6rx54gx6hw";
-  };
-
-  postInstall = ''
-    wrapProgram "$out/bin/dtrx" --prefix PATH : "${archivers}"
-  '';
-
-  checkPhase = ''
-    python2 tests/compare.py
-  '';
-
-  checkInputs = with python2Packages; [
-    pyyaml
-  ];
-
-  # custom test suite fails
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Do The Right Extraction: A tool for taking the hassle out of extracting archives";
-    homepage = "https://brettcsmith.org/2007/dtrx/";
-    license = licenses.gpl3Plus;
-    maintainers = [ maintainers.spwhitt ];
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/compression/flips/default.nix b/nixpkgs/pkgs/tools/compression/flips/default.nix
index b4a79aac2127..024ff5fbe9f1 100644
--- a/nixpkgs/pkgs/tools/compression/flips/default.nix
+++ b/nixpkgs/pkgs/tools/compression/flips/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "flips";
-  version = "unstable-2021-05-18";
+  version = "unstable-2021-10-28";
 
   src = fetchFromGitHub {
     owner = "Alcaro";
     repo = "Flips";
-    rev = "3476e5e46fc6f10df475f0cad1714358ba04c756";
-    sha256 = "0s13qrmqfmlb2vy0smpgw39vjkl8vzsmpzk52jnc9r7b4hisii39";
+    rev = "3a8733e74c9bdbb6b89da2b45913a0be3d0e1866";
+    sha256 = "1jik580mz2spik5mgh60h93ryaj5x8dffncnr1lwija0v803xld7";
   };
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/tools/compression/gzip/default.nix b/nixpkgs/pkgs/tools/compression/gzip/default.nix
index 6bcd5ae0c427..8bec5b481c90 100644
--- a/nixpkgs/pkgs/tools/compression/gzip/default.nix
+++ b/nixpkgs/pkgs/tools/compression/gzip/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gzip";
-  version = "1.10";
+  version = "1.11";
 
   src = fetchurl {
     url = "mirror://gnu/gzip/${pname}-${version}.tar.xz";
-    sha256 = "1h6p374d3j8d4cdfydzls021xa2yby8myc0h8d6m8bc7k6ncq9c4";
+    sha256 = "01vrly90rvc98af6rcmrb3gwv1l6pylasvsdka23dffwizb9b6lv";
   };
 
   outputs = [ "out" "man" "info" ];
diff --git a/nixpkgs/pkgs/tools/compression/hacpack/default.nix b/nixpkgs/pkgs/tools/compression/hacpack/default.nix
index e60d483574bd..34722d52ccfd 100644
--- a/nixpkgs/pkgs/tools/compression/hacpack/default.nix
+++ b/nixpkgs/pkgs/tools/compression/hacpack/default.nix
@@ -15,6 +15,9 @@ stdenv.mkDerivation rec {
     mv config.mk.template config.mk
   '';
 
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+  enableParallelBuilding = true;
+
   installPhase = ''
     mkdir -p $out/bin
     cp ./hacpack $out/bin
diff --git a/nixpkgs/pkgs/tools/compression/imagelol/default.nix b/nixpkgs/pkgs/tools/compression/imagelol/default.nix
index d54d2da2f90e..187435d4eb34 100644
--- a/nixpkgs/pkgs/tools/compression/imagelol/default.nix
+++ b/nixpkgs/pkgs/tools/compression/imagelol/default.nix
@@ -12,6 +12,14 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  # fix for case-sensitive filesystems
+  # https://github.com/MCredstoner2004/ImageLOL/issues/1
+  postPatch = ''
+    mv imagelol src
+    substituteInPlace CMakeLists.txt \
+      --replace 'add_subdirectory("imagelol")' 'add_subdirectory("src")'
+  '';
+
   nativeBuildInputs = [ cmake ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/compression/lrzip/default.nix b/nixpkgs/pkgs/tools/compression/lrzip/default.nix
index 02f62c3e3c01..4fe5512b4c6f 100644
--- a/nixpkgs/pkgs/tools/compression/lrzip/default.nix
+++ b/nixpkgs/pkgs/tools/compression/lrzip/default.nix
@@ -1,17 +1,33 @@
-{ lib, stdenv, fetchurl, zlib, lzo, bzip2, lz4, nasm, perl }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, zlib, lzo, bzip2, lz4, nasm, perl }:
 
+let
+  inherit (stdenv.hostPlatform) isx86;
+in
 stdenv.mkDerivation rec {
   pname = "lrzip";
   version = "0.641";
 
-  src = fetchurl {
-    url = "http://ck.kolivas.org/apps/lrzip/${pname}-${version}.tar.xz";
-    sha256 = "0ziyanspd96dc3lp2qdcylc7aq8dhb511jhqrhxvlp502fjqjqrc";
+  src = fetchFromGitHub {
+    owner = "ckolivas";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-253CH6TiHWyr13C76y9PXjyB7gj2Bhd2VRgJ5r+cm/g=";
   };
 
-  buildInputs = [ zlib lzo bzip2 lz4 nasm perl ];
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    # Building the ASM/x86 directory creates an empty archive,
+    # which fails on darwin, so remove it
+    # https://github.com/ckolivas/lrzip/issues/193
+    # https://github.com/Homebrew/homebrew-core/pull/85360
+    substituteInPlace lzma/Makefile.am --replace "SUBDIRS = C ASM/x86" "SUBDIRS = C"
+    substituteInPlace configure.ac --replace "-f elf64" "-f macho64"
+  '';
 
-  configureFlags = [
+  nativeBuildInputs = [ autoreconfHook perl ] ++ lib.optionals isx86 [ nasm ];
+
+  buildInputs = [ zlib lzo bzip2 lz4 ];
+
+  configureFlags = lib.optionals (!isx86) [
     "--disable-asm"
   ];
 
diff --git a/nixpkgs/pkgs/tools/compression/ouch/default.nix b/nixpkgs/pkgs/tools/compression/ouch/default.nix
index c451b40fcf5c..3051c705c5fe 100644
--- a/nixpkgs/pkgs/tools/compression/ouch/default.nix
+++ b/nixpkgs/pkgs/tools/compression/ouch/default.nix
@@ -1,22 +1,48 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, help2man
+, installShellFiles
+, pkg-config
+, bzip2
+, xz
+, zlib
+, zstd
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "ouch";
-  version = "0.2.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "ouch-org";
     repo = pname;
     rev = version;
-    sha256 = "sha256-OhEr/HvwgDkB8h3cpayOlnrs6OXiwAsQUH9XGqi5rpc=";
+    sha256 = "sha256-I9CgkYxcK+Ih9UlcYBa8QAZZsPvzPUK5ZUYKPxzgs38=";
   };
 
-  cargoSha256 = "sha256-lKsB75Lb9IYS80qu4jaIpnbEOr4Ow9M5S45Kk03An2o=";
+  cargoSha256 = "sha256-jEprWtIl5LihD9fOMYHGGlk0+h4woUlwUWNfSkd2t10=";
+
+  nativeBuildInputs = [ help2man installShellFiles pkg-config ];
+
+  buildInputs = [ bzip2 xz zlib zstd ];
+
+  buildFeatures = [ "zstd/pkg-config" ];
+
+  postInstall = ''
+    help2man $out/bin/ouch > ouch.1
+    installManPage ouch.1
+
+    completions=($releaseDir/build/ouch-*/out/completions)
+    installShellCompletion $completions/ouch.{bash,fish} --zsh $completions/_ouch
+  '';
+
+  GEN_COMPLETIONS = 1;
 
   meta = with lib; {
     description = "A command-line utility for easily compressing and decompressing files and directories";
     homepage = "https://github.com/ouch-org/ouch";
     license = licenses.mit;
-    maintainers = [ maintainers.psibi ];
+    maintainers = with maintainers; [ figsoda psibi ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/android-file-transfer/default.nix b/nixpkgs/pkgs/tools/filesystems/android-file-transfer/default.nix
index a8511f8b99ae..b355b0eb6864 100644
--- a/nixpkgs/pkgs/tools/filesystems/android-file-transfer/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/android-file-transfer/default.nix
@@ -29,9 +29,6 @@ mkDerivation rec {
   postInstall = lib.optionalString stdenv.isDarwin ''
     mkdir $out/Applications
     mv $out/*.app $out/Applications
-    for f in $out/Applications/android-file-transfer.app/Contents/MacOS/*; do
-      wrapQtApp "$f"
-    done
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/filesystems/apfsprogs/default.nix b/nixpkgs/pkgs/tools/filesystems/apfsprogs/default.nix
index 04e7cd89ae4b..2c2aa108077f 100644
--- a/nixpkgs/pkgs/tools/filesystems/apfsprogs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/apfsprogs/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation {
   pname = "apfsprogs";
-  version = "unstable-2021-08-24";
+  version = "unstable-2021-10-26";
 
   src = fetchFromGitHub {
     owner = "linux-apfs";
     repo = "apfsprogs";
-    rev = "5efac5a701bcb56e23cfc182b5b3901bff27d343";
-    sha256 = "sha256-vQE586HwrPkF0uaTKrJ7yXb24ntRI0QmBla7N2ErAU8=";
+    rev = "05ecfa367a8142e289dc76333294271b5edfe395";
+    sha256 = "sha256-McGQG8f12DTp/It8KjMHGyfE5tgmgLd7MZlZIn/xC+E=";
   };
 
   buildPhase = ''
@@ -23,8 +23,8 @@ stdenv.mkDerivation {
 
   installPhase = ''
     runHook preInstall
-    make -C apfsck install BINDIR="$out/bin" MANDIR="$out/share/man8" $installFlags
-    make -C mkapfs install BINDIR="$out/bin" MANDIR="$out/share/man8" $installFlags
+    make -C apfsck install DESTDIR="$out" $installFlags
+    make -C mkapfs install DESTDIR="$out" $installFlags
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix b/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix
index bdb7e55b5cf5..cb8d74aa1618 100644
--- a/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix
@@ -22,24 +22,24 @@
 
 stdenv.mkDerivation {
   pname = "bcachefs-tools";
-  version = "unstable-2021-10-01";
+  version = "unstable-2021-12-25";
 
   src = fetchFromGitHub {
     owner = "koverstreet";
     repo = "bcachefs-tools";
-    rev = "37850436dd7dfbe67738749c4d4a2506ffff1ec3";
-    sha256 = "040vgxrimahmfs9rhlggfwg0bzl7h9j2ksx3563rh63asjwlhnhi";
+    rev = "07b18011cc885f0ef5cadc299d0321322f442388";
+    sha256 = "0yvdbjasl05w1afiszygrfv7hn39fxx7kcy42vk39rb6fb3xpvzy";
   };
 
   postPatch = ''
+    patchShebangs .
     substituteInPlace Makefile \
       --replace "pytest-3" "pytest --verbose" \
       --replace "INITRAMFS_DIR=/etc/initramfs-tools" \
-                "INITRAMFS_DIR=${placeholder "out"}/etc/initramfs-tools" \
-      --replace "doc/macro2rst.py" "python3 doc/macro2rst.py"
+                "INITRAMFS_DIR=${placeholder "out"}/etc/initramfs-tools"
   '';
 
-  nativeBuildInputs = [ pkg-config docutils ];
+  nativeBuildInputs = [ pkg-config docutils python3Packages.python ];
 
   buildInputs = [
     libuuid libscrypt libsodium keyutils liburcu zlib libaio
@@ -65,6 +65,6 @@ stdenv.mkDerivation {
     homepage = "https://bcachefs.org/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ davidak chiiruno ];
-    platforms = [ "x86_64-linux" ]; # does not build on aarch64, see https://github.com/koverstreet/bcachefs-tools/issues/39
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/bees/default.nix b/nixpkgs/pkgs/tools/filesystems/bees/default.nix
index c82ea23debd9..0837762fa443 100644
--- a/nixpkgs/pkgs/tools/filesystems/bees/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/bees/default.nix
@@ -14,13 +14,13 @@ let
 
   bees = stdenv.mkDerivation rec {
     pname = "bees";
-    version = "0.6.5";
+    version = "0.7";
 
     src = fetchFromGitHub {
       owner = "Zygo";
       repo = "bees";
       rev = "v${version}";
-      sha256 = "11ppbf23b8ngzfy02am0skxlybzmgsp6kna21jimb01x9pp1q7l7";
+      sha256 = "sha256-hD6/pMRnQgPqL1M6QOuRka6ESJv9kjeKy+29nRMTY1o=";
     };
 
     buildInputs = [
diff --git a/nixpkgs/pkgs/tools/filesystems/btrfs-snap/default.nix b/nixpkgs/pkgs/tools/filesystems/btrfs-snap/default.nix
new file mode 100644
index 000000000000..e43380e6792e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/btrfs-snap/default.nix
@@ -0,0 +1,32 @@
+{ bash, btrfs-progs, coreutils, fetchFromGitHub, gnugrep, lib, makeWrapper, stdenvNoCC, util-linuxMinimal }:
+stdenvNoCC.mkDerivation rec {
+  pname = "btrfs-snap";
+  version = "1.7.3";
+  src = fetchFromGitHub {
+    owner = "jf647";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-SDzLjgNRuR9XpmcYCD9T10MLS+//+pWFGDiTAb8NiLQ=";
+  };
+  buildInputs = [ bash ];
+  nativeBuildInputs = [ makeWrapper ];
+  dontConfigure = true;
+  dontBuild = true;
+  installPhase = ''
+    mkdir -p $out/bin
+    cp btrfs-snap $out/bin/
+    wrapProgram $out/bin/btrfs-snap --prefix PATH : ${lib.makeBinPath [
+      btrfs-progs       # btrfs
+      coreutils         # cut, date, head, ls, mkdir, readlink, stat, tail, touch, test, [
+      gnugrep           # grep
+      util-linuxMinimal # logger, mount
+    ]}
+  '';
+  meta = with lib; {
+    description = "btrfs-snap creates and maintains the history of snapshots of btrfs filesystems.";
+    homepage = "https://github.com/jf647/btrfs-snap";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ lionello ];
+    platforms = platforms.linux;
+ };
+}
diff --git a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
index 0f28ad144169..2c6175bec13e 100644
--- a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
@@ -85,7 +85,7 @@ let
   };
 
   getMeta = description: with lib; {
-     homepage = "https://ceph.com/";
+     homepage = "https://ceph.io/";
      inherit description;
      license = with licenses; [ lgpl21 gpl2 bsd3 mit publicDomain ];
      maintainers = with maintainers; [ adev ak johanot krav ];
@@ -104,21 +104,7 @@ let
     meta = getMeta "Ceph common module for code shared by manager modules";
   };
 
-  python = python3.override {
-    packageOverrides = self: super: {
-      # scipy > 1.3 breaks diskprediction_local, leading to mgr hang on startup
-      # Bump once these issues are resolved:
-      # https://tracker.ceph.com/issues/42764 https://tracker.ceph.com/issues/45147
-      scipy = super.scipy.overridePythonAttrs (oldAttrs: rec {
-        version = "1.3.3";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "02iqb7ws7fw5fd1a83hx705pzrw1imj7z0bphjsl4bfvw254xgv4";
-        };
-        doCheck = false;
-      });
-    };
-  };
+  python = python3;
 
   ceph-python-env = python.withPackages (ps: [
     ps.sphinx
@@ -146,10 +132,10 @@ let
   ]);
   sitePackages = ceph-python-env.python.sitePackages;
 
-  version = "16.2.6";
+  version = "16.2.7";
   src = fetchurl {
     url = "http://download.ceph.com/tarballs/ceph-${version}.tar.gz";
-    sha256 = "sha256-TXGyZnyVTYAf7G7BcTv3dAfK/54JfOKObcyTRhCrnYA=";
+    sha256 = "0n7vpdcxji49bqaa5b7zxif1r80rrkbh0dfacbibvf20kzzbn2fz";
   };
 in rec {
   ceph = stdenv.mkDerivation {
@@ -239,13 +225,16 @@ in rec {
   };
 
   ceph-client = runCommand "ceph-client-${version}" {
-      meta = getMeta "Tools needed to mount Ceph's RADOS Block Devices";
+      meta = getMeta "Tools needed to mount Ceph's RADOS Block Devices/Cephfs";
     } ''
       mkdir -p $out/{bin,etc,${sitePackages},share/bash-completion/completions}
       cp -r ${ceph}/bin/{ceph,.ceph-wrapped,rados,rbd,rbdmap} $out/bin
       cp -r ${ceph}/bin/ceph-{authtool,conf,dencoder,rbdnamer,syn} $out/bin
       cp -r ${ceph}/bin/rbd-replay* $out/bin
-      cp -r ${ceph}/${sitePackages} $out/${sitePackages}
+      cp -r ${ceph}/sbin/mount.ceph $out/bin
+      cp -r ${ceph}/sbin/mount.fuse.ceph $out/bin
+      ln -s bin $out/sbin
+      cp -r ${ceph}/${sitePackages}/* $out/${sitePackages}
       cp -r ${ceph}/etc/bash_completion.d $out/share/bash-completion/completions
       # wrapPythonPrograms modifies .ceph-wrapped, so lets just update its paths
       substituteInPlace $out/bin/ceph          --replace ${ceph} $out
diff --git a/nixpkgs/pkgs/tools/filesystems/cryfs/default.nix b/nixpkgs/pkgs/tools/filesystems/cryfs/default.nix
index 0da6c4c20994..6d93717dd9c8 100644
--- a/nixpkgs/pkgs/tools/filesystems/cryfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/cryfs/default.nix
@@ -1,48 +1,38 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
-, cmake, pkg-config, python3, gtest
-, boost, cryptopp, curl, fuse, openssl
+{ lib, stdenv, fetchFromGitHub
+, cmake, pkg-config, python3
+, boost175, curl, fuse, openssl, range-v3, spdlog
+# cryptopp and gtest on standby - using the vendored ones for now
+# see https://github.com/cryfs/cryfs/issues/369
+, llvmPackages
 }:
 
 stdenv.mkDerivation rec {
   pname = "cryfs";
-  version = "0.10.2";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
-    owner  = "cryfs";
-    repo   = "cryfs";
-    rev    = version;
-    sha256 = "1m6rcc82hbaiwcwcvf5xmxma8n0jal9zhcykv9xgwiax4ny0l8kz";
+    owner = pname;
+    repo = pname;
+    rev = version;
+    hash = "sha256-029foKJklyOv8qHvgds/yRZ9n1/iA+U7n4O5FViHCOE=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "cryfs-0.10.2-install-targets.patch";
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/cryfs/files/cryfs-0.10.2-install-targets.patch?id=192ac7421ddd4093125f4997898fb62e8a140a44";
-      sha256 = "1jz6gpi1i7dnfm88a6n3mccwfmsmvg0d0bmp3fmqqrkbcg7in00l";
-    })
-    (fetchpatch {
-      name = "cryfs-0.10.2-unbundle-libs.patch";
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/cryfs/files/cryfs-0.10.2-unbundle-libs.patch?id=192ac7421ddd4093125f4997898fb62e8a140a44";
-      sha256 = "0hzss5rawcjrh8iqzc40w5yjhxdqya4gbg6dzap70180s50mahzs";
-    })
-
-    # Backported from https://github.com/cryfs/cryfs/pull/378
-    ./use-macfuse.patch
-  ];
-
   postPatch = ''
     patchShebangs src
 
-    # remove tests that require network access:
+    # remove tests that require network access
     substituteInPlace test/cpp-utils/CMakeLists.txt \
       --replace "network/CurlHttpClientTest.cpp" "" \
       --replace "network/FakeHttpClientTest.cpp" ""
 
     # remove CLI test trying to access /dev/fuse
     substituteInPlace test/cryfs-cli/CMakeLists.txt \
-      --replace "CliTest_IntegrityCheck.cpp" ""
+      --replace "CliTest_IntegrityCheck.cpp" "" \
+      --replace "CliTest_Setup.cpp" "" \
+      --replace "CliTest_WrongEnvironment.cpp" "" \
+      --replace "CryfsUnmountTest.cpp" ""
 
-    # downsize large file test as 4.5G is too big for Hydra:
+    # downsize large file test as 4.5G is too big for Hydra
     substituteInPlace test/cpp-utils/data/DataTest.cpp \
       --replace "(4.5L*1024*1024*1024)" "(0.5L*1024*1024*1024)"
   '';
@@ -51,32 +41,38 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
 
-  buildInputs = [ boost cryptopp curl fuse openssl ];
+  buildInputs = [ boost175 curl fuse openssl range-v3 spdlog ]
+    ++ lib.optional stdenv.cc.isClang llvmPackages.openmp;
 
-  checkInputs = [ gtest ];
+  #checkInputs = [ gtest ];
 
   cmakeFlags = [
+    "-DDEPENDENCY_CONFIG='../cmake-utils/DependenciesFromLocalSystem.cmake'"
     "-DCRYFS_UPDATE_CHECKS:BOOL=FALSE"
     "-DBoost_USE_STATIC_LIBS:BOOL=FALSE" # this option is case sensitive
-    "-DUSE_SYSTEM_LIBS:BOOL=TRUE"
     "-DBUILD_TESTING:BOOL=${if doCheck then "TRUE" else "FALSE"}"
-  ] ++ lib.optional doCheck "-DCMAKE_PREFIX_PATH=${gtest.dev}/lib/cmake";
+  ]; # ++ lib.optional doCheck "-DCMAKE_PREFIX_PATH=${gtest.dev}/lib/cmake";
 
   # macFUSE needs to be installed for the test to succeed on Darwin
   doCheck = !stdenv.isDarwin;
 
   checkPhase = ''
+    runHook preCheck
+    export HOME=$(mktemp -d)
+
     # Skip CMakeFiles directory and tests depending on fuse (does not work well with sandboxing)
     SKIP_IMPURE_TESTS="CMakeFiles|fspp|my-gtest-main"
 
-    for t in $(ls -d test/*/ | egrep -v "$SKIP_IMPURE_TESTS"); do
+    for t in $(ls -d test/*/ | grep -E -v "$SKIP_IMPURE_TESTS") ; do
       "./$t$(basename $t)-test"
     done
+
+    runHook postCheck
   '';
 
   meta = with lib; {
     description = "Cryptographic filesystem for the cloud";
-    homepage    = "https://www.cryfs.org";
+    homepage    = "https://www.cryfs.org/";
     license     = licenses.lgpl3;
     maintainers = with maintainers; [ peterhoeg c0bw3b ];
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/filesystems/cryfs/use-macfuse.patch b/nixpkgs/pkgs/tools/filesystems/cryfs/use-macfuse.patch
deleted file mode 100644
index 47e7845cf3dc..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/cryfs/use-macfuse.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-diff --git a/.travisci/install.sh b/.travisci/install.sh
-index 9057a75b..2929c360 100755
---- a/.travisci/install.sh
-+++ b/.travisci/install.sh
-@@ -6,12 +6,11 @@ set -e
- if [ "${CXX}" == "g++" ]; then
-     # We need to uninstall oclint because it creates a /usr/local/include/c++ symlink that clashes with the gcc5 package
-     # see https://github.com/Homebrew/homebrew-core/issues/21172
--    brew cask uninstall oclint
-+    brew uninstall oclint
-     brew install gcc@7
- fi
- 
--brew cask install osxfuse
--brew install libomp
-+brew install libomp pkg-config macfuse
- 
- # By default, travis only fetches the newest 50 commits. We need more in case we're further from the last version tag, so the build doesn't fail because it can't generate the version number.
- git fetch --unshallow --tags
-diff --git a/README.md b/README.md
-index b0f4a684..7001119a 100644
---- a/README.md
-+++ b/README.md
-@@ -19,7 +19,7 @@ OSX
- 
- CryFS is distributed via Homebrew. Just do
- 
--    brew cask install osxfuse
-+    brew install osxfuse
-     brew install cryfs
-     
- Windows (experimental)
-@@ -45,6 +45,7 @@ Requirements
-   - Git (for getting the source code)
-   - GCC version >= 5.0 or Clang >= 4.0
-   - CMake version >= 3.0 
-+  - pkg-config (on Unix)
-   - libcurl4 (including development headers)
-   - Boost libraries version >= 1.65.1 (including development headers)
-     - filesystem
-@@ -53,20 +54,20 @@ Requirements
-     - program_options
-     - thread
-   - SSL development libraries (including development headers, e.g. libssl-dev)
--  - libFUSE version >= 2.8.6 (including development headers), on Mac OS X instead install osxfuse from https://osxfuse.github.io/
-+  - libFUSE version >= 2.8.6 (including development headers), on Mac OS X instead install macFUSE from https://osxfuse.github.io/
-   - Python >= 2.7
-   - OpenMP
- 
- You can use the following commands to install these requirements
- 
-         # Ubuntu
--        $ sudo apt install git g++ cmake make libcurl4-openssl-dev libboost-filesystem-dev libboost-system-dev libboost-chrono-dev libboost-program-options-dev libboost-thread-dev libssl-dev libfuse-dev python
-+        $ sudo apt install git g++ cmake make pkg-config libcurl4-openssl-dev libboost-filesystem-dev libboost-system-dev libboost-chrono-dev libboost-program-options-dev libboost-thread-dev libssl-dev libfuse-dev python
- 
-         # Fedora
--        sudo dnf install git gcc-c++ cmake make libcurl-devel boost-devel boost-static openssl-devel fuse-devel python
-+        sudo dnf install git gcc-c++ cmake make pkgconf libcurl-devel boost-devel boost-static openssl-devel fuse-devel python
- 
-         # Macintosh
--        brew install cmake boost openssl libomp
-+        brew install cmake pkg-config boost openssl libomp
- 
- Build & Install
- ---------------
-@@ -116,17 +117,17 @@ On most systems, CMake should find the libraries automatically. However, that do
- 
-         cmake .. -DBoost_USE_STATIC_LIBS=off
- 
--2. **Fuse/Osxfuse library not found**
-+2. **Fuse library not found**
- 
-     Pass in the library path with
- 
--        cmake .. -DFUSE_LIB_PATH=/path/to/fuse/or/osxfuse
-+        PKG_CONFIG_PATH=/path-to-fuse-or-macFUSE/lib/pkgconfig cmake ..
- 
--3. **Fuse/Osxfuse headers not found**
-+3. **Fuse headers not found**
- 
-     Pass in the include path with
- 
--        cmake .. -DCMAKE_CXX_FLAGS="-I/path/to/fuse/or/osxfuse/headers"
-+        PKG_CONFIG_PATH=/path-to-fuse-or-macFUSE/lib/pkgconfig cmake ..
- 
- 4. **Openssl headers not found**
- 
-diff --git a/cmake-utils/utils.cmake b/cmake-utils/utils.cmake
-index da4dff8c..66021c5c 100644
---- a/cmake-utils/utils.cmake
-+++ b/cmake-utils/utils.cmake
-@@ -157,33 +157,6 @@ function(require_clang_version VERSION)
-     endif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- endfunction(require_clang_version)
- 
--##################################################
--# Find the location of a library and return its full path in OUTPUT_VARIABLE.
--# If PATH_VARIABLE points to a defined variable, then the library will only be searched in this path.
--# If PATH_VARIABLE points to a undefined variable, default system locations will be searched.
--#
--# Uses (the following will search for fuse in system locations by default, and if the user passes -DFUSE_LIB_PATH to cmake, it will only search in this path.
--#  find_library_with_path(MYLIBRARY fuse FUSE_LIB_PATH)
--#  target_link_library(target ${MYLIBRARY})
--##################################################
--function(find_library_with_path OUTPUT_VARIABLE LIBRARY_NAME PATH_VARIABLE)
--    if(${PATH_VARIABLE})
--        find_library(${OUTPUT_VARIABLE} ${LIBRARY_NAME} PATHS ${${PATH_VARIABLE}} NO_DEFAULT_PATH)
--        if (${OUTPUT_VARIABLE} MATCHES NOTFOUND)
--            message(FATAL_ERROR "Didn't find ${LIBRARY_NAME} in path specified by the ${PATH_VARIABLE} parameter (${${PATH_VARIABLE}}). Pass in the correct path or remove the parameter to try common system locations.")
--        else(${OUTPUT_VARIABLE} MATCHES NOTFOUND)
--            message(STATUS "Found ${LIBRARY_NAME} in user-defined path ${${PATH_VARIABLE}}")
--        endif(${OUTPUT_VARIABLE} MATCHES NOTFOUND)
--    else(${PATH_VARIABLE})
--        find_library(${OUTPUT_VARIABLE} ${LIBRARY_NAME})
--        if (${OUTPUT_VARIABLE} MATCHES NOTFOUND)
--            message(FATAL_ERROR "Didn't find ${LIBRARY_NAME} library. If ${LIBRARY_NAME} is installed, try passing in the library location with -D${PATH_VARIABLE}=/path/to/${LIBRARY_NAME}/lib.")
--        else(${OUTPUT_VARIABLE} MATCHES NOTFOUND)
--            message(STATUS "Found ${LIBRARY_NAME} in system location")
--        endif(${OUTPUT_VARIABLE} MATCHES NOTFOUND)
--    endif(${PATH_VARIABLE})
--endfunction(find_library_with_path)
--
- include(cmake-utils/TargetArch.cmake)
- function(get_target_architecture output_var)
- 	target_architecture(local_output_var)
-diff --git a/src/fspp/fuse/CMakeLists.txt b/src/fspp/fuse/CMakeLists.txt
-index b991bd72..8df3dbb7 100644
---- a/src/fspp/fuse/CMakeLists.txt
-+++ b/src/fspp/fuse/CMakeLists.txt
-@@ -35,12 +35,12 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
-     DESTINATION "${CMAKE_INSTALL_BINDIR}"
-   )
- 
--elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
--  set(CMAKE_FIND_FRAMEWORK LAST)
--  find_library_with_path(FUSE "osxfuse" FUSE_LIB_PATH)
--  target_link_libraries(${PROJECT_NAME} PUBLIC ${FUSE})
--else() # Linux
--  find_library_with_path(FUSE "fuse" FUSE_LIB_PATH)
--  target_link_libraries(${PROJECT_NAME} PUBLIC ${FUSE})
-+else() # Linux and macOS
-+  find_package(PkgConfig REQUIRED)
-+  pkg_check_modules(Fuse REQUIRED IMPORTED_TARGET fuse)
-+  target_link_libraries(${PROJECT_NAME} PUBLIC PkgConfig::Fuse)
- endif()
- 
-+if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-+  set(CMAKE_FIND_FRAMEWORK LAST)
-+endif()
-diff --git a/src/fspp/fuse/Fuse.cpp b/src/fspp/fuse/Fuse.cpp
-index 52cd5644..df0b400d 100644
---- a/src/fspp/fuse/Fuse.cpp
-+++ b/src/fspp/fuse/Fuse.cpp
-@@ -295,7 +295,7 @@ vector<char *> Fuse::_build_argv(const bf::path &mountdir, const vector<string>
-   // Make volume name default to mountdir on macOS
-   _add_fuse_option_if_not_exists(&argv, "volname", mountdir.filename().string());
- #endif
--  // TODO Also set read/write size for osxfuse. The options there are called differently.
-+  // TODO Also set read/write size for macFUSE. The options there are called differently.
-   // large_read not necessary because reads are large anyhow. This option is only important for 2.4.
-   //argv.push_back(_create_c_string("-o"));
-   //argv.push_back(_create_c_string("large_read"));
-diff --git a/src/fspp/fuse/params.h b/src/fspp/fuse/params.h
-index 4a45ef79..9903ac82 100644
---- a/src/fspp/fuse/params.h
-+++ b/src/fspp/fuse/params.h
-@@ -3,14 +3,6 @@
- #define MESSMER_FSPP_FUSE_PARAMS_H_
- 
- #define FUSE_USE_VERSION 26
--#if defined(__linux__) || defined(__FreeBSD__)
- #include <fuse.h>
--#elif __APPLE__
--#include <osxfuse/fuse.h>
--#elif defined(_MSC_VER)
--#include <fuse.h> // Dokany fuse
--#else
--#error System not supported
--#endif
- 
- #endif
-diff --git a/src/fspp/impl/FilesystemImpl.cpp b/src/fspp/impl/FilesystemImpl.cpp
-index bc0ffbd7..23b28601 100644
---- a/src/fspp/impl/FilesystemImpl.cpp
-+++ b/src/fspp/impl/FilesystemImpl.cpp
-@@ -321,7 +321,7 @@ void FilesystemImpl::statfs(struct ::statvfs *fsstat) {
-   fsstat->f_namemax = stat.max_filename_length;
- 
-   //f_frsize, f_favail, f_fsid and f_flag are ignored in fuse, see http://fuse.sourcearchive.com/documentation/2.7.0/structfuse__operations_4e765e29122e7b6b533dc99849a52655.html#4e765e29122e7b6b533dc99849a52655
--  fsstat->f_frsize = fsstat->f_bsize; // even though this is supposed to be ignored, osxfuse needs it.
-+  fsstat->f_frsize = fsstat->f_bsize; // even though this is supposed to be ignored, macFUSE needs it.
- }
- 
- void FilesystemImpl::createSymlink(const bf::path &to, const bf::path &from, ::uid_t uid, ::gid_t gid) {
-diff --git a/test/fspp/testutils/FuseThread.cpp b/test/fspp/testutils/FuseThread.cpp
-index 277a2dac..7f3638db 100644
---- a/test/fspp/testutils/FuseThread.cpp
-+++ b/test/fspp/testutils/FuseThread.cpp
-@@ -23,7 +23,7 @@ void FuseThread::start(const bf::path &mountDir, const vector<string> &fuseOptio
-   //Wait until it is running (busy waiting is simple and doesn't hurt much here)
-   while(!_fuse->running()) {}
- #ifdef __APPLE__
--  // On Mac OS X, _fuse->running() returns true too early, because osxfuse calls init() when it's not ready yet. Give it a bit time.
-+  // On Mac OS X, _fuse->running() returns true too early, because macFUSE calls init() when it's not ready yet. Give it a bit time.
-   std::this_thread::sleep_for(std::chrono::milliseconds(200));
- #endif
- }
diff --git a/nixpkgs/pkgs/tools/filesystems/davfs2/default.nix b/nixpkgs/pkgs/tools/filesystems/davfs2/default.nix
index 2b573f9afdb1..ab9609635c5e 100644
--- a/nixpkgs/pkgs/tools/filesystems/davfs2/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/davfs2/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "davfs2";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchurl {
     url = "mirror://savannah/davfs2/davfs2-${version}.tar.gz";
-    sha256 = "sha256-LmtnVoW9kXdyvmDwmZrgmMgPef8g3BMej+xFR8u2O1A=";
+    sha256 = "sha256-zj65SOzlgqUck0zLDMcOZZg5FycXyv8XP2ml4q+QxcA=";
   };
 
   buildInputs = [ neon zlib ];
diff --git a/nixpkgs/pkgs/tools/filesystems/dduper/default.nix b/nixpkgs/pkgs/tools/filesystems/dduper/default.nix
index 5d91e8d0dcc6..e7eecbf766ee 100644
--- a/nixpkgs/pkgs/tools/filesystems/dduper/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/dduper/default.nix
@@ -5,8 +5,8 @@ let
     patches = [
       (fetchpatch {
         name = "0001-Print-csum-for-a-given-file-on-stdout.patch";
-        url = "https://raw.githubusercontent.com/Lakshmipathi/dduper/8fab08e0f1901bf54411d25f1767b48c978074cb/patch/btrfs-progs-v5.9/0001-Print-csum-for-a-given-file-on-stdout.patch";
-        sha256 = "1li9lslrap70ibad8sij3bgpxn5lqs0j10l60bmy3c36y866q3g1";
+        url = "https://raw.githubusercontent.com/Lakshmipathi/dduper/f45d04854a40cb52ae0e6736916d5955cb68b8ee/patch/btrfs-progs-v5.12.1/0001-Print-csum-for-a-given-file-on-stdout.patch";
+        sha256 = "0c7dd44q2ww6k9nk5dh6m0f0wbd8x84vb2m61fk6a44nsv2fwz1x";
       })
     ];
   });
diff --git a/nixpkgs/pkgs/tools/filesystems/e2fsprogs/default.nix b/nixpkgs/pkgs/tools/filesystems/e2fsprogs/default.nix
index 327ddbf8d6dd..5f1775e77e09 100644
--- a/nixpkgs/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "e2fsprogs";
-  version = "1.46.2";
+  version = "1.46.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-958mtPZb3AWfyhLh7GowQMPOGlA/tw65Fb7nGQOBXNU=";
+    sha256 = "0ra2d1wasksy1zy3rgviwdni40dnamchisjrrqqi940y545m493m";
   };
 
   outputs = [ "bin" "dev" "out" "man" "info" ];
diff --git a/nixpkgs/pkgs/tools/filesystems/exfatprogs/default.nix b/nixpkgs/pkgs/tools/filesystems/exfatprogs/default.nix
index 88e50a2adc3a..7bce3ffcf666 100644
--- a/nixpkgs/pkgs/tools/filesystems/exfatprogs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/exfatprogs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exfatprogs";
-  version = "1.1.2";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "19pbybgbfnvjb3n944ihrn1r8ch4dm8dr0d44d6w7p63dcp372xy";
+    sha256 = "sha256-idP3wEGGJcSH4DDFLj1XPRKcLkFEsvtv0ytK89bmj5I=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook file ];
diff --git a/nixpkgs/pkgs/tools/filesystems/fatsort/default.nix b/nixpkgs/pkgs/tools/filesystems/fatsort/default.nix
index 7c9edf2f84d9..6db496242d24 100644
--- a/nixpkgs/pkgs/tools/filesystems/fatsort/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/fatsort/default.nix
@@ -1,12 +1,12 @@
 {lib, stdenv, fetchurl, help2man}:
 
 stdenv.mkDerivation rec {
-  version = "1.6.3.622";
+  version = "1.6.4.625";
   pname = "fatsort";
 
   src = fetchurl {
     url = "mirror://sourceforge/fatsort/${pname}-${version}.tar.xz";
-    sha256 = "1z2nabm38lg56h05yx3jjsndbqxk1zbjcisrczzamypn13m98728";
+    sha256 = "sha256-mm+JoGQLt4LYL/I6eAyfCuw9++RoLAqO2hV+CBBkLq0=";
   };
 
   patches = [ ./fatsort-Makefiles.patch ];
diff --git a/nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix b/nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix
index 3fc319d5b748..28109560ac29 100644
--- a/nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fuse-overlayfs";
-  version = "1.7.1";
+  version = "1.8";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wSJjA9eZCb3DJed07xuCS0M7ey3DnyuIlp9kvFvDDC8=";
+    sha256 = "sha256-VqtBJ8HRyhjwKVoRu6+EArZMVbzXkaK89yV56MzRUJo=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix b/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix
index 4f739769807b..b22273095fa1 100644
--- a/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "gcsfuse";
-  version = "0.36.0";
+  version = "0.38.0";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    sha256 = "sha256-qsvHqSvMG7VwRtNmyun2oO+ZRZ1D1spefTeUXrWGSNk=";
+    sha256 = "sha256-5qn20Vqtvuld9/IBW/3j+8C3ac8xJ9kRMTiL6GsOrrE=";
   };
 
   goPackagePath = "github.com/googlecloudplatform/gcsfuse";
diff --git a/nixpkgs/pkgs/tools/filesystems/gfs2-utils/default.nix b/nixpkgs/pkgs/tools/filesystems/gfs2-utils/default.nix
index ba479b87aa92..3f68888776cb 100644
--- a/nixpkgs/pkgs/tools/filesystems/gfs2-utils/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/gfs2-utils/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl
+{ lib, stdenv, fetchurl, fetchpatch
 , autoreconfHook, bison, flex, pkg-config
 , bzip2, check, ncurses, util-linux, zlib
 }:
@@ -12,6 +12,20 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-gwKxBBG5PtG4/RxX4sUC25ZeG8K2urqVkFDKL7NS4ZI=";
   };
 
+  patches = [
+    # pull pending upstream inclusion fix for ncurses-6.3: sent upstream over email.
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://pagure.io/fork/slyfox/gfs2-utils/c/c927b635f380cca77665195a3aaae804d92870a4.patch";
+      sha256 = "sha256-0M1xAqRXoUi2el03WODF/nqEe9JEE5GehMWs776QZNI=";
+    })
+  ];
+  postPatch = ''
+    # Apply fix for ncurses-6.3. Upstream development branch already reworked the code.
+    # To be removed on next reelase.
+    substituteInPlace gfs2/edit/gfs2hex.c --replace 'printw(title);' 'printw("%s",title);'
+  '';
+
   outputs = [ "bin" "doc" "out" "man" ];
 
   nativeBuildInputs = [ autoreconfHook bison flex pkg-config ];
diff --git a/nixpkgs/pkgs/tools/filesystems/glusterfs/default.nix b/nixpkgs/pkgs/tools/filesystems/glusterfs/default.nix
index 9933498d07e5..dab69649fdcf 100644
--- a/nixpkgs/pkgs/tools/filesystems/glusterfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/glusterfs/default.nix
@@ -1,8 +1,8 @@
-{lib, stdenv, fetchFromGitHub, fuse, bison, flex_2_5_35, openssl, python3, ncurses, readline,
+{lib, stdenv, fetchFromGitHub, fuse, bison, flex, openssl, python3, ncurses, readline,
  autoconf, automake, libtool, pkg-config, zlib, libaio, libxml2, acl, sqlite,
  liburcu, liburing, attr, makeWrapper, coreutils, gnused, gnugrep, which,
  openssh, gawk, findutils, util-linux, lvm2, btrfs-progs, e2fsprogs, xfsprogs, systemd,
- rsync, glibc, rpcsvc-proto, libtirpc
+ rsync, glibc, rpcsvc-proto, libtirpc, gperftools, nixosTests
 }:
 let
   # NOTE: On each glusterfs release, it should be checked if gluster added
@@ -14,9 +14,9 @@ let
   #       can help with finding new Python scripts.
 
   buildInputs = [
-    fuse bison flex_2_5_35 openssl ncurses readline
+    fuse bison flex openssl ncurses readline
     autoconf automake libtool pkg-config zlib libaio libxml2
-    acl sqlite liburcu attr makeWrapper util-linux libtirpc
+    acl sqlite liburcu attr makeWrapper util-linux libtirpc gperftools
     liburing
     (python3.withPackages (pkgs: [
       pkgs.flask
@@ -55,13 +55,13 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "glusterfs";
-  version = "9.3";
+  version = "10.0";
 
   src = fetchFromGitHub {
     owner = "gluster";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xV7griN453f63jwX5jTdW0KJdLi14Km7JengbNeh4iI=";
+    sha256 = "sha256-n6HdXs5kLbEI8Gaw2KBtO3i8hhadb+MsshUve/DOYg0=";
   };
   inherit buildInputs propagatedBuildInputs;
 
@@ -85,14 +85,15 @@ in stdenv.mkDerivation rec {
   # but fails when the version is empty.
   # See upstream GlusterFS bug https://bugzilla.redhat.com/show_bug.cgi?id=1452705
   preConfigure = ''
+    patchShebangs build-aux/pkg-version
     echo "v${version}" > VERSION
     ./autogen.sh
     export PYTHON=${python3}/bin/python
-    '';
+  '';
 
   configureFlags = [
     "--localstatedir=/var"
-    ];
+  ];
 
   nativeBuildInputs = [ rpcsvc-proto ];
 
@@ -179,7 +180,11 @@ in stdenv.mkDerivation rec {
 
     # this gets falsely loaded as module by glusterfind
     rm -r $out/bin/conf.py
-    '';
+  '';
+
+  passthru.tests = {
+    glusterfs = nixosTests.glusterfs;
+  };
 
   meta = with lib; {
     description = "Distributed storage system";
diff --git a/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix b/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix
index 2211d0e3103e..a0c598c1f2bf 100644
--- a/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix
@@ -12,16 +12,16 @@
 
 buildGoModule rec {
   pname = "gocryptfs";
-  version = "2.1";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "rfjakob";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nACBEOL/vnqxdAGI37k9bxgQKgpi35/tsuCxsQ9I2sw=";
+    sha256 = "sha256-qERtX9UcdMolbffzPiVQlblirzJ5baOmHonJIO8ang0=";
   };
 
-  vendorSha256 = "sha256-Q/oBT5xdLpgQCIk7KES6c8+BaCQVUIwCwVufl4oTFRs=";
+  vendorSha256 = "sha256-yJ7RYwhArgmGlFmSplrX1hiLkc7FkS1qQCUcRlbnNWQ=";
 
   nativeBuildInputs = [
     makeWrapper
diff --git a/nixpkgs/pkgs/tools/filesystems/goofys/default.nix b/nixpkgs/pkgs/tools/filesystems/goofys/default.nix
index 94ce7be08e55..16c555473f3c 100644
--- a/nixpkgs/pkgs/tools/filesystems/goofys/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/goofys/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildGoModule
 , fetchFromGitHub
 }:
@@ -29,6 +30,7 @@ buildGoModule {
     description = "A high-performance, POSIX-ish Amazon S3 file system written in Go.";
     license = [ lib.licenses.mit ];
     maintainers = [ lib.maintainers.adisbladis ];
+    broken = stdenv.isDarwin; # needs to update gopsutil to at least v3.21.3 to include https://github.com/shirou/gopsutil/pull/1042
   };
 
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/hfsprogs/default.nix b/nixpkgs/pkgs/tools/filesystems/hfsprogs/default.nix
index 8a2a8572b5ca..877d95c5b3d9 100644
--- a/nixpkgs/pkgs/tools/filesystems/hfsprogs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/hfsprogs/default.nix
@@ -1,12 +1,11 @@
 { lib, stdenv, fetchurl, openssl, libbsd }:
 
-let version = "332.25";
-    package_name = "hfsprogs"; in
-stdenv.mkDerivation {
-  name = "${package_name}-${version}";
+stdenv.mkDerivation rec {
+  version = "332.25";
+  pname = "hfsprogs";
   srcs = [
     (fetchurl {
-      url = "http://ftp.de.debian.org/debian/pool/main/h/hfsprogs/${package_name}_${version}-11.debian.tar.gz";
+      url = "http://ftp.de.debian.org/debian/pool/main/h/hfsprogs/hfsprogs_${version}-11.debian.tar.gz";
       sha256 = "62d9b8599c66ebffbc57ce5d776e20b41341130d9b27341d63bda08460ebde7c";
     })
     (fetchurl {
@@ -29,13 +28,13 @@ stdenv.mkDerivation {
   installPhase = ''
     # Create required package directories
     install -m 755 -d "$out/bin"
-    install -m 755 -d "$out/share/${package_name}"
+    install -m 755 -d "$out/share/hfsprogs"
     install -m 755 -d "$out/share/man/man8/"
     # Copy executables
     install -m 755 "newfs_hfs.tproj/newfs_hfs" "$out/bin/mkfs.hfsplus"
     install -m 755 "fsck_hfs.tproj/fsck_hfs" "$out/bin/fsck.hfsplus"
     # Copy shared data
-    install -m 644 "newfs_hfs.tproj/hfsbootdata.img" "$out/share/${package_name}/hfsbootdata"
+    install -m 644 "newfs_hfs.tproj/hfsbootdata.img" "$out/share/hfsprogs/hfsbootdata"
     # Copy man pages
     install -m 644 "newfs_hfs.tproj/newfs_hfs.8" "$out/share/man/man8/mkfs.hfsplus.8"
     install -m 644 "fsck_hfs.tproj/fsck_hfs.8" "$out/share/man/man8/fsck.hfsplus.8"
diff --git a/nixpkgs/pkgs/tools/filesystems/httpdirfs/default.nix b/nixpkgs/pkgs/tools/filesystems/httpdirfs/default.nix
new file mode 100644
index 000000000000..e027d5dd8df5
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/httpdirfs/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, pkg-config, curl, expat, fuse, gumbo, libuuid }:
+
+stdenv.mkDerivation rec {
+  pname = "httpdirfs";
+  version = "1.2.3";
+
+  src = fetchFromGitHub {
+    owner = "fangfufu";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-rdeBlAV3t/si9x488tirUGLZRYAxh13zdRIQe0OPd+A=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ curl expat fuse gumbo libuuid ];
+
+  makeFlags = [ "prefix=${placeholder "out"}" ];
+
+  meta = with lib; {
+    description = "A FUSE filesystem for HTTP directory listings";
+    homepage = "https://github.com/fangfufu/httpdirfs";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ sbruder schnusch ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/filesystems/kio-fuse/default.nix b/nixpkgs/pkgs/tools/filesystems/kio-fuse/default.nix
new file mode 100644
index 000000000000..a68165956eb3
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/kio-fuse/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, mkDerivation
+, fetchgit
+, cmake
+, extra-cmake-modules
+, kio
+, fuse3
+}:
+
+mkDerivation rec {
+  pname = "kio-fuse";
+  version = "5.0.1";
+
+  src = fetchgit {
+    url = "https://invent.kde.org/system/kio-fuse.git";
+    sha256 = "sha256-LSFbFCaEPkQTk1Rg9xpueBOQpkbr/tgYxLD31F6i/qE=";
+    rev = "v${version}";
+  };
+
+  nativeBuildInputs = [ cmake extra-cmake-modules ];
+
+  buildInputs = [ kio fuse3 ];
+
+  meta = with lib; {
+    description = "FUSE Interface for KIO";
+    homepage = "https://invent.kde.org/system/kio-fuse";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ _1000teslas ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/filesystems/lfs/default.nix b/nixpkgs/pkgs/tools/filesystems/lfs/default.nix
index d1988183bf19..38746981588e 100644
--- a/nixpkgs/pkgs/tools/filesystems/lfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/lfs/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lfs";
-  version = "1.1.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "v${version}";
-    sha256 = "gez5q1niIhzWJpsEkbVRuQFILo3tTO8aJq7ewZArJ5M=";
+    sha256 = "sha256-3zGCVT3SfQm72CF2MasT7k5r1Jx9DRUrXKHBSpvcv10=";
   };
 
-  cargoSha256 = "2U1xDG4bTimtmjwZ1z9ErlaOcBNJdRcHlEWVaiGg01M=";
+  cargoSha256 = "sha256-Q4eNvOY5c4KybDKVhcOznxGPUgyjgEYPD8+9r6sECXA=";
 
   meta = with lib; {
     description = "Get information on your mounted disks";
diff --git a/nixpkgs/pkgs/tools/filesystems/lizardfs/default.nix b/nixpkgs/pkgs/tools/filesystems/lizardfs/default.nix
index a9e0cd12d9d4..aa2260cb374d 100644
--- a/nixpkgs/pkgs/tools/filesystems/lizardfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/lizardfs/default.nix
@@ -17,7 +17,6 @@
 , judy
 , pam
 , spdlog
-, fmt
 , systemdMinimal
 , zlib # optional
 }:
@@ -37,7 +36,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     db fuse asciidoc libxml2 libxslt docbook_xml_dtd_412 docbook_xsl
-    zlib boost judy pam spdlog fmt python3 systemdMinimal
+    zlib boost judy pam spdlog python3 systemdMinimal
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/filesystems/mergerfs/default.nix b/nixpkgs/pkgs/tools/filesystems/mergerfs/default.nix
index 6f0a40d76afe..9a221dcfc2f6 100644
--- a/nixpkgs/pkgs/tools/filesystems/mergerfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/mergerfs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mergerfs";
-  version = "2.32.4";
+  version = "2.33.3";
 
   src = fetchFromGitHub {
     owner = "trapexit";
     repo = pname;
     rev = version;
-    sha256 = "sha256-VTnAAJWya1JLZA0gjzpUsdnO5XQP8sJzEP8qHBH+t5k=";
+    sha256 = "sha256-hZA7AkFEuSHp84Zn+m9+VVr4UewbbzeQL1n2bkUOX0Y=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/filesystems/mp3fs/default.nix b/nixpkgs/pkgs/tools/filesystems/mp3fs/default.nix
index 1b80adc843a6..6f872500e6b1 100644
--- a/nixpkgs/pkgs/tools/filesystems/mp3fs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/mp3fs/default.nix
@@ -1,18 +1,35 @@
-{ lib, stdenv, fetchurl, flac, fuse, lame, libid3tag, pkg-config }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, flac
+, fuse
+, lame
+, libid3tag
+, libvorbis
+, autoreconfHook
+, pkg-config
+, pandoc
+}:
 
 stdenv.mkDerivation rec {
   pname = "mp3fs";
-  version = "0.91";
+  version = "1.1.1";
 
-  src = fetchurl {
-    url = "https://github.com/khenriks/mp3fs/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "14ngiqg24p3a0s6hp33zjl4i46d8qn4v9id36psycq3n3csmwyx4";
+  src = fetchFromGitHub {
+    owner = "khenriks";
+    repo = "mp3fs";
+    rev = "v${version}";
+    sha256 = "sha256-dF+DfkNKvYOucS6KjYR1MMGxayM+1HVS8mbmaavmgKM=";
   };
 
-  patches = [ ./fix-statfs-operation.patch ];
+  postPatch = ''
+    substituteInPlace src/mp3fs.cc \
+      --replace "#include <fuse_darwin.h>" "" \
+      --replace "osxfuse_version()" "fuse_version()"
+  '';
 
-  buildInputs = [ flac fuse lame libid3tag ];
-  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ flac fuse lame libid3tag libvorbis ];
+  nativeBuildInputs = [ autoreconfHook pkg-config pandoc ];
 
   enableParallelBuilding = true;
 
@@ -20,13 +37,14 @@ stdenv.mkDerivation rec {
     description = "FUSE file system that transparently transcodes to MP3";
     longDescription = ''
       A read-only FUSE filesystem which transcodes between audio formats
-      (currently only FLAC to MP3) on the fly when files are opened and read.
-      It can let you use a FLAC collection with software and/or hardware
-      which only understands the MP3 format, or transcode files through
-      simple drag-and-drop in a file browser.
+      (currently FLAC and Ogg Vorbis to MP3) on the fly when opened and read.
+      This can let you use a FLAC or Ogg Vorbis collection with software
+      and/or hardware which only understands the MP3 format, or transcode
+      files through simple drag-and-drop in a file browser.
     '';
     homepage = "https://khenriks.github.io/mp3fs/";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
+    maintainers = with maintainers; [ Luflosi ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/mp3fs/fix-statfs-operation.patch b/nixpkgs/pkgs/tools/filesystems/mp3fs/fix-statfs-operation.patch
deleted file mode 100644
index 9b3094e60053..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/mp3fs/fix-statfs-operation.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From fea072084ff9d7c4d2c688059a2462bb0e59a2ec Mon Sep 17 00:00:00 2001
-From: K Henriksson <kthenriksson@gmail.com>
-Date: Wed, 27 Aug 2014 21:55:18 -0700
-Subject: [PATCH] Fix statfs operation
-
-The statfs implementation does not properly translate names back to the
-original, since the major encoding rewrite. This corrects that, and
-should fix issue #27.
----
- src/fuseops.c | 15 +++++++++++++--
- 1 file changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/src/fuseops.c b/src/fuseops.c
-index e7b4e7e..c333cbd 100644
---- a/src/fuseops.c
-+++ b/src/fuseops.c
-@@ -337,9 +337,20 @@ static int mp3fs_statfs(const char *path, struct statvfs *stbuf) {
-     if (!origpath) {
-         goto translate_fail;
-     }
--    
-+
-+    /* pass-through for regular files */
-+    if (statvfs(origpath, stbuf) == 0) {
-+        goto passthrough;
-+    } else {
-+        /* Not really an error. */
-+        errno = 0;
-+    }
-+
-+    find_original(origpath);
-+
-     statvfs(origpath, stbuf);
--    
-+
-+passthrough:
-     free(origpath);
- translate_fail:
-     return -errno;
diff --git a/nixpkgs/pkgs/tools/filesystems/mtdutils/default.nix b/nixpkgs/pkgs/tools/filesystems/mtdutils/default.nix
index c4bf545a7d52..2e58018bf18d 100644
--- a/nixpkgs/pkgs/tools/filesystems/mtdutils/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/mtdutils/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     downloadPage = "https://git.infradead.org/mtd-utils.git";
     license = licenses.gpl2Plus;
     homepage = "http://www.linux-mtd.infradead.org/";
-    maintainers = with maintainers; [ viric superherointj ];
+    maintainers = with maintainers; [ viric ];
     platforms = with platforms; linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/mtools/default.nix b/nixpkgs/pkgs/tools/filesystems/mtools/default.nix
index 41259f2a45e5..1f474f5beb07 100644
--- a/nixpkgs/pkgs/tools/filesystems/mtools/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/mtools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mtools";
-  version = "4.0.35";
+  version = "4.0.36";
 
   src = fetchurl {
     url = "mirror://gnu/mtools/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-NHaeFzdR0vDYkaCMdsgEJ+kpuO5DQ4AZuGZsw9ekR0k=";
+    sha256 = "sha256-5cDlrfLfu59yZJ06gpn/b7c/Jp+DMKKXXZG8xQVSQPQ=";
   };
 
   patches = lib.optional stdenv.isDarwin ./UNUSED-darwin.patch;
diff --git a/nixpkgs/pkgs/tools/filesystems/netatalk/default.nix b/nixpkgs/pkgs/tools/filesystems/netatalk/default.nix
index 258b25c3693c..e5e873b9ac56 100644
--- a/nixpkgs/pkgs/tools/filesystems/netatalk/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/netatalk/default.nix
@@ -1,6 +1,6 @@
-{ fetchurl, lib, stdenv, autoreconfHook, pkg-config, perl, python
+{ fetchurl, lib, stdenv, autoreconfHook, pkg-config, perl, python3
 , db, libgcrypt, avahi, libiconv, pam, openssl, acl
-, ed, libtirpc, libevent
+, ed, libtirpc, libevent, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
@@ -15,9 +15,14 @@ stdenv.mkDerivation rec {
   patches = [
     ./no-suid.patch
     ./omitLocalstatedirCreation.patch
+    (fetchpatch {
+      name = "make-afpstats-python3-compatible.patch";
+      url = "https://github.com/Netatalk/Netatalk/commit/916b515705cf7ba28dc53d13202811c6e1fe6a9e.patch";
+      sha256 = "sha256-DAABpYjQPJLsQBhmtP30gA357w0Qn+AsnFgAeyDC/Rg=";
+    })
   ];
 
-  nativeBuildInputs = [ autoreconfHook pkg-config perl python python.pkgs.wrapPython ];
+  nativeBuildInputs = [ autoreconfHook pkg-config perl python3 python3.pkgs.wrapPython ];
 
   buildInputs = [ db libgcrypt avahi libiconv pam openssl acl libevent ];
 
@@ -46,7 +51,7 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    buildPythonPath ${python.pkgs.dbus-python}
+    buildPythonPath ${python3.pkgs.dbus-python}
     patchPythonScript $out/bin/afpstats
   '';
 
diff --git a/nixpkgs/pkgs/tools/filesystems/nilfs-utils/default.nix b/nixpkgs/pkgs/tools/filesystems/nilfs-utils/default.nix
index 0639c6a6f21b..3c2dfaf2f1d3 100644
--- a/nixpkgs/pkgs/tools/filesystems/nilfs-utils/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/nilfs-utils/default.nix
@@ -1,46 +1,35 @@
-{ lib, stdenv, fetchurl, fetchpatch, libuuid, libselinux }:
-let
-  sourceInfo = rec {
-    version = "2.2.7";
-    url = "http://nilfs.sourceforge.net/download/nilfs-utils-${version}.tar.bz2";
-    sha256 = "01f09bvjk2crx65pxmxiw362wkkl3v2v144dfn3i7bk5gz253xic";
-    baseName = "nilfs-utils";
-    name = "${baseName}-${version}";
-  };
-in
-stdenv.mkDerivation {
-  src = fetchurl {
-    url = sourceInfo.url;
-    sha256 = sourceInfo.sha256;
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, libuuid, libselinux
+, e2fsprogs }:
+
+stdenv.mkDerivation rec {
+  pname = "nilfs-utils";
+  version = "2.2.8";
+
+  src = fetchFromGitHub {
+    owner = "nilfs-dev";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "094mw7dsyppyiyzfdnf3f5hlkrh4bidk1kvvpn1kcvw5vn2xpfk7";
   };
 
-  inherit (sourceInfo) name version;
-  buildInputs = [libuuid libselinux];
+  nativeBuildInputs = [ autoreconfHook ];
 
-  preConfigure = ''
-    sed -e '/sysconfdir=\/etc/d; ' -i configure
-    sed -e "s@sbindir=/sbin@sbindir=$out/sbin@" -i configure
-    sed -e 's@/sbin/@'"$out"'/sbin/@' -i ./lib/cleaner*.c
+  buildInputs = [ libuuid libselinux ];
+
+  postPatch = ''
+    # Fix up hardcoded paths.
+    substituteInPlace lib/cleaner_exec.c --replace /sbin/ $out/bin/
+    substituteInPlace sbin/mkfs/mkfs.c --replace /sbin/ ${lib.getBin e2fsprogs}/bin/
   '';
 
-  patches = [
-    # Fix w/musl
-    (fetchpatch {
-      url = "https://github.com/nilfs-dev/nilfs-utils/commit/115fe4b976858c487cf83065f513d8626089579a.patch";
-      sha256 = "0h89jz9l5d4rqj647ljbnv451l4ncqpsvzj0v70mn5391hfwsjlv";
-    })
-    (fetchpatch {
-      url =  "https://github.com/nilfs-dev/nilfs-utils/commit/51b32c614be9e98c32de7f531ee600ca0740946f.patch";
-      sha256 = "1ycq83c6jjy74aif47v075k5y2szzwhq6mbcrpd1z4b4i1x6yhpn";
-    })
-  ];
+  # According to upstream, libmount should be detected automatically but the
+  # build system fails to do this. This is likely a bug with their build system
+  # hence it is explicitly enabled here.
+  configureFlags = [ "--with-libmount" ];
 
-  configureFlags = [
-    "--with-libmount"
-  ] ++ 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"
+  installFlags = [
+    "sysconfdir=${placeholder "out"}/etc"
+    "root_sbindir=${placeholder "out"}/sbin"
   ];
 
   # FIXME: https://github.com/NixOS/patchelf/pull/98 is in, but stdenv
@@ -49,7 +38,7 @@ stdenv.mkDerivation {
   # To make sure patchelf doesn't mistakenly keep the reference via
   # build directory
   postInstall = ''
-    find . -name .libs | xargs rm -rf
+    find . -name .libs -exec rm -rf -- {} +
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.nix b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
deleted file mode 100644
index 94ed258d3322..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-# FIXME: Unify with pkgs/development/python-modules/blivet/default.nix.
-
-{ lib, fetchurl, buildPythonApplication, pykickstart, pyparted, pyblock
-, libselinux, cryptsetup, multipath_tools, lsof, util-linux
-, useNixUdev ? true, systemd ? null
-# useNixUdev is here for bw compatibility
-}:
-
-assert useNixUdev -> systemd != null;
-
-buildPythonApplication rec {
-  pname = "blivet";
-  version = "0.17-1";
-
-  src = fetchurl {
-    url = "https://git.fedorahosted.org/cgit/blivet.git/snapshot/"
-        + "${pname}-${version}.tar.bz2";
-    sha256 = "1k3mws2q0ryb7422mml6idmaasz2i2v6ngyvg6d976dx090qnmci";
-  };
-
-  patches = [ ./blivet.patch ];
-
-  postPatch = ''
-    sed -i -e 's|"multipath"|"${multipath_tools}/sbin/multipath"|' \
-      blivet/devicelibs/mpath.py blivet/devices.py
-    sed -i -e '/"wipefs"/ {
-      s|wipefs|${util-linux.bin}/sbin/wipefs|
-      s/-f/--force/
-    }' blivet/formats/__init__.py
-    sed -i -e 's|"lsof"|"${lsof}/bin/lsof"|' blivet/formats/fs.py
-    sed -i -r -e 's|"(u?mount)"|"${util-linux.bin}/bin/\1"|' blivet/util.py
-    sed -i -e '/find_library/,/find_library/ {
-      c libudev = "${lib.getLib systemd}/lib/libudev.so.1"
-    }' blivet/pyudev.py
-  '';
-
-  propagatedBuildInputs = [
-    pykickstart pyparted pyblock libselinux cryptsetup
-  ] ++ lib.optional useNixUdev systemd;
-
-  # tests are currently _heavily_ broken upstream
-  doCheck = false;
-
-  meta = with lib; {
-    homepage = "https://fedoraproject.org/wiki/Blivet";
-    description = "Module for management of a system's storage configuration";
-    license = with licenses; [ gpl2Plus lgpl21Plus ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.patch b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.patch
deleted file mode 100644
index d53231a84fd6..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff --git a/blivet/pyudev.py b/blivet/pyudev.py
-index 705b93d..7268d71 100644
---- a/blivet/pyudev.py
-+++ b/blivet/pyudev.py
-@@ -7,9 +7,9 @@ from ctypes import *
- 
- 
- # XXX this one may need some tweaking...
--def find_library(name, somajor=0):
-+def find_library(name):
-     env = os.environ.get("LD_LIBRARY_PATH")
--    common = ["/lib64", "/lib"]
-+    common = ["/lib64", "/lib", "/lib/x86_64-linux-gnu", "/lib/i686-linux-gnu"]
- 
-     if env:
-         libdirs = env.split(":") + common
-@@ -19,7 +19,7 @@ def find_library(name, somajor=0):
-     libdirs = filter(os.path.isdir, libdirs)
- 
-     for dir in libdirs:
--        files = fnmatch.filter(os.listdir(dir), "lib%s.so.%d" % (name, somajor))
-+        files = fnmatch.filter(os.listdir(dir), "lib%s.so.*" % name)
-         files = [os.path.join(dir, file) for file in files]
- 
-         if files:
-@@ -32,11 +32,10 @@ def find_library(name, somajor=0):
- 
- # find the udev library
- name = "udev"
--somajor = 1
--libudev = find_library(name=name, somajor=somajor)
-+libudev = find_library(name)
- 
- if not libudev or not os.path.exists(libudev):
--    raise ImportError, "No library named %s.%d" % (name, somajor)
-+    raise ImportError, "No library named lib%s.so" % name
- 
- # load the udev library
- libudev = CDLL(libudev)
-diff --git a/blivet/deviceaction.py b/blivet/deviceaction.py
-index 705b93d..60f8f32 100644
---- a/blivet/deviceaction.py
-+++ b/blivet/deviceaction.py
-@@ -467,6 +467,7 @@ def execute(self):
- 
-                 self.device.disk.format.commitToDisk()
- 
-+            self.device.setup()
-             self.device.format.create(device=self.device.path,
-                                       options=self.device.formatArgs)
- 
diff --git a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/cryptsetup.nix b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/cryptsetup.nix
deleted file mode 100644
index 6e372b75a7d7..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/cryptsetup.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv, fetchurl, fetchpatch, lvm2, libgcrypt, libuuid, pkg-config, popt
-, enablePython ? true, python ? null
-}:
-
-assert enablePython -> python != null;
-
-stdenv.mkDerivation rec {
-  name = "cryptsetup-1.6.3";
-
-  src = fetchurl {
-    url = "http://cryptsetup.googlecode.com/files/${name}.tar.bz2";
-    sha256 = "1n1qk5chyjspbiianrdb55fhb4wl0vfyqz2br05vfb24v4qlgbx2";
-  };
-
-  patches = [
-    # Fix build with glibc >= 2.28
-    # https://github.com/NixOS/nixpkgs/issues/86403
-    (fetchpatch {
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/cryptsetup/files/cryptsetup-1.7.1-sysmacros.patch?id=d72316f97ebcc7fe622b21574442a9ac59b9115f";
-      sha256 = "0xbhazgl44bimqhcrhajk016w9wi7bkrgwyfq13xmrvyrllqvgdx";
-    })
-  ];
-
-  configureFlags = [ "--enable-cryptsetup-reencrypt" ]
-                ++ lib.optional enablePython "--enable-python";
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ lvm2 libgcrypt libuuid popt ]
-             ++ lib.optional enablePython python;
-
-  meta = with lib; {
-    homepage = "http://code.google.com/p/cryptsetup/";
-    description = "LUKS for dm-crypt";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ ];
-    platforms = with platforms; linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/default.nix b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/default.nix
deleted file mode 100644
index 7b773a61a5f2..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/default.nix
+++ /dev/null
@@ -1,77 +0,0 @@
-{ lib, stdenv, fetchurl, python, buildPythonApplication
-, libselinux
-# Propagated to blivet
-, useNixUdev ? true
-# Needed by NixOps
-, udevSoMajor ? null
-# Propagated dependencies
-, pkgs, urlgrabber
-}:
-
-let
-  blivet = import ./blivet.nix {
-    inherit lib fetchurl buildPythonApplication;
-    inherit pykickstart pyparted pyblock cryptsetup libselinux multipath_tools;
-    inherit useNixUdev;
-    inherit (pkgs) lsof util-linux systemd;
-  };
-
-  cryptsetup = import ./cryptsetup.nix {
-    inherit lib stdenv fetchurl python;
-    inherit (pkgs) fetchpatch pkg-config libgcrypt libuuid popt lvm2;
-  };
-
-  dmraid = import ./dmraid.nix {
-    inherit lib stdenv fetchurl lvm2;
-  };
-
-  lvm2 = import ./lvm2.nix {
-    inherit lib stdenv fetchurl;
-    inherit (pkgs) fetchpatch pkg-config util-linux systemd coreutils;
-  };
-
-  multipath_tools = import ./multipath-tools.nix {
-    inherit lib stdenv fetchurl lvm2;
-    inherit (pkgs) fetchpatch readline systemd libaio gzip;
-  };
-
-  parted = import ./parted.nix {
-    inherit lib stdenv fetchurl;
-    inherit (pkgs) fetchpatch util-linux readline libuuid gettext check lvm2;
-  };
-
-  pyblock = import ./pyblock.nix {
-    inherit lib stdenv fetchurl python lvm2 dmraid;
-  };
-
-  pykickstart = import ./pykickstart.nix {
-    inherit lib fetchurl python buildPythonApplication urlgrabber;
-  };
-
-  pyparted = import ./pyparted.nix {
-    inherit lib stdenv fetchurl python buildPythonApplication parted;
-    inherit (pkgs) pkg-config e2fsprogs;
-  };
-
-in buildPythonApplication rec {
-  pname = "nixpart";
-  version = "0.4.1";
-  disabled = python.isPy3k;
-
-  src = fetchurl {
-    url = "https://github.com/NixOS/nixpart/archive/v${version}.tar.gz";
-    sha256 = "0avwd8p47xy9cydlbjxk8pj8q75zyl68gw2w6fnkk78dcb1a3swp";
-  };
-
-  propagatedBuildInputs = [ blivet ];
-
-  doCheck = false;
-
-  meta = with lib; {
-    description = "NixOS storage manager/partitioner";
-    homepage = "https://github.com/NixOS/nixpart";
-    license = licenses.gpl2Plus;
-    maintainers = [ maintainers.aszlig ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/dmraid.nix b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/dmraid.nix
deleted file mode 100644
index c5d8eebc47ca..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/dmraid.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, stdenv, fetchurl, lvm2 }:
-
-stdenv.mkDerivation rec {
-  name = "dmraid-1.0.0.rc15";
-
-  src = fetchurl {
-    url = "https://people.redhat.com/~heinzm/sw/dmraid/src/old/${name}.tar.bz2";
-    sha256 = "01bcaq0sc329ghgj7f182xws7jgjpdc41bvris8fsiprnxc7511h";
-  };
-
-  preConfigure = "cd */";
-
-  buildInputs = [ lvm2 ];
-
-  meta = with lib; {
-    description = "Old-style RAID configuration utility";
-    longDescription = ''
-      Old RAID configuration utility (still under development, though).
-      It is fully compatible with modern kernels and mdadm recognizes
-      its volumes. May be needed for rescuing an older system or nuking
-      the metadata when reformatting.
-    '';
-    maintainers = [ maintainers.raskin ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
deleted file mode 100644
index ca349c7f42e4..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
+++ /dev/null
@@ -1,76 +0,0 @@
-{ lib, stdenv, fetchurl, fetchpatch, pkg-config, systemd, util-linux, coreutils }:
-
-let
-  v = "2.02.106";
-in
-
-stdenv.mkDerivation {
-  name = "lvm2-${v}";
-
-  src = fetchurl {
-    url = "ftp://sources.redhat.com/pub/lvm2/releases/LVM2.${v}.tgz";
-    sha256 = "0nr833bl0q4zq52drjxmmpf7bs6kqxwa5kahwwxm9411khkxz0vc";
-  };
-
-  patches = [
-    # Fix build with glibc >= 2.28
-    # https://github.com/NixOS/nixpkgs/issues/86403
-    (fetchpatch {
-      url = "https://github.com/lvmteam/lvm2/commit/92d5a8441007f578e000b492cecf67d6b8a87405.patch";
-      sha256 = "1yqd6jng0b370k53vks1shg57yhfyribhpmv19km5zsjqf0qqx2d";
-      excludes = [
-        "libdm/libdm-stats.c"
-      ];
-    })
-  ];
-
-  configureFlags = [
-    "--disable-readline"
-    "--enable-udev_rules"
-    "--enable-udev_sync"
-    "--enable-pkg-config"
-    "--enable-applib"
-  ];
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ systemd ];
-
-  preConfigure =
-    ''
-      substituteInPlace scripts/lvmdump.sh \
-        --replace /usr/bin/tr ${coreutils}/bin/tr
-      substituteInPlace scripts/lvm2_activation_generator_systemd_red_hat.c \
-        --replace /usr/sbin/lvm $out/sbin/lvm \
-        --replace /usr/bin/udevadm ${systemd}/bin/udevadm
-
-      sed -i /DEFAULT_SYS_DIR/d Makefile.in
-      sed -i /DEFAULT_PROFILE_DIR/d conf/Makefile.in
-    '';
-
-  enableParallelBuilding = true;
-
-  #patches = [ ./purity.patch ];
-
-  # To prevent make install from failing.
-  installFlags = [ "OWNER=" "GROUP=" "confdir=${placeholder "out"}/etc" ];
-
-  # Install systemd stuff.
-  #installTargets = "install install_systemd_generators install_systemd_units install_tmpfiles_configuration";
-
-  postInstall =
-    ''
-      substituteInPlace $out/lib/udev/rules.d/13-dm-disk.rules \
-        --replace $out/sbin/blkid ${util-linux.bin}/sbin/blkid
-
-      # Systemd stuff
-      mkdir -p $out/etc/systemd/system $out/lib/systemd/system-generators
-      cp scripts/blk_availability_systemd_red_hat.service $out/etc/systemd/system
-      cp scripts/lvm2_activation_generator_systemd_red_hat $out/lib/systemd/system-generators
-    '';
-
-  meta = with lib; {
-    homepage = "http://sourceware.org/lvm2/";
-    description = "Tools to support Logical Volume Management (LVM) on Linux";
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
deleted file mode 100644
index 976a3ce2567a..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-# FIXME: unify with pkgs/os-specific/linux/multipath-tools/default.nix.
-
-{ lib, stdenv, fetchurl, fetchpatch, lvm2, libaio, gzip, readline, systemd }:
-
-stdenv.mkDerivation rec {
-  name = "multipath-tools-0.4.9";
-
-  src = fetchurl {
-    url = "http://christophe.varoqui.free.fr/multipath-tools/${name}.tar.bz2";
-    sha256 = "04n7kazp1zrlqfza32phmqla0xkcq4zwn176qff5ida4a60whi4d";
-  };
-
-  patches = [
-    # Fix build with glibc >= 2.28
-    # https://github.com/NixOS/nixpkgs/issues/86403
-    (fetchpatch {
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/multipath-tools/files/multipath-tools-0.6.4-sysmacros.patch?id=eb22b954c177b5c1e2b6ed5c7cdd02f40f40d757";
-      sha256 = "1an0cgmz7g03c4qjimhpm9fcf2iswws18lwqxi688k87qm3xb5qd";
-      excludes = [
-        "libmultipath/util.c"
-      ];
-    })
-  ];
-
-  sourceRoot = ".";
-
-  buildInputs = [ lvm2 libaio readline gzip ];
-
-  preBuild =
-    ''
-      makeFlagsArray=(GZIP="-9" prefix=$out mandir=$out/share/man/man8 man5dir=$out/share/man/man5 LIB=lib)
-
-      substituteInPlace multipath/Makefile --replace /etc $out/etc
-      substituteInPlace kpartx/Makefile --replace /etc $out/etc
-
-      substituteInPlace kpartx/kpartx.rules --replace /sbin/kpartx $out/sbin/kpartx
-      substituteInPlace kpartx/kpartx_id --replace /sbin/dmsetup ${lvm2}/sbin/dmsetup
-
-      substituteInPlace libmultipath/defaults.h --replace /lib/udev/scsi_id ${lib.getLib systemd}/lib/udev/scsi_id
-      substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${lib.getLib systemd}/lib/udev/scsi_id
-
-      sed -i -re '
-         s,^( *#define +DEFAULT_MULTIPATHDIR\>).*,\1 "'"$out/lib/multipath"'",
-      ' libmultipath/defaults.h
-
-    '';
-
-  meta = with lib; {
-    description = "Tools for the Linux multipathing driver";
-    homepage = "http://christophe.varoqui.free.fr/";
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/parted.nix b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/parted.nix
deleted file mode 100644
index 2891f990afb0..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/parted.nix
+++ /dev/null
@@ -1,61 +0,0 @@
-{ lib,stdenv, fetchurl, fetchpatch, lvm2, libuuid, gettext, readline
-, util-linux, check
-, enableStatic ? stdenv.hostPlatform.isStatic
-}:
-
-stdenv.mkDerivation rec {
-  name = "parted-3.1";
-
-  src = fetchurl {
-    url = "mirror://gnu/parted/${name}.tar.xz";
-    sha256 = "05fa4m1bky9d13hqv91jlnngzlyn7y4rnnyq6d86w0dg3vww372y";
-  };
-
-  patches = [
-    # Fix build with glibc >= 2.28
-    # https://github.com/NixOS/nixpkgs/issues/86403
-    (fetchpatch {
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-block/parted/files/parted-3.2-sysmacros.patch?id=8e2414f551c14166f259f9a25a594aec7a5b9ea0";
-      sha256 = "0fdgifjbri7n28hv74zksac05gw72p2czzvyar0jp62b9dnql3mp";
-    })
-  ];
-
-  buildInputs = [ libuuid ]
-    ++ lib.optional (readline != null) readline
-    ++ lib.optional (gettext != null) gettext
-    ++ lib.optional (lvm2 != null) lvm2;
-
-  configureFlags =
-       (if (readline != null)
-        then [ "--with-readline" ]
-        else [ "--without-readline" ])
-    ++ lib.optional (lvm2 == null) "--disable-device-mapper"
-    ++ lib.optional enableStatic "--enable-static";
-
-  doCheck = true;
-  checkInputs = [ check util-linux ];
-
-  meta = with lib; {
-    description = "Create, destroy, resize, check, and copy partitions";
-
-    longDescription = ''
-      GNU Parted is an industrial-strength package for creating, destroying,
-      resizing, checking and copying partitions, and the file systems on
-      them.  This is useful for creating space for new operating systems,
-      reorganising disk usage, copying data on hard disks and disk imaging.
-
-      It contains a library, libparted, and a command-line frontend, parted,
-      which also serves as a sample implementation and script backend.
-    '';
-
-    homepage = "https://www.gnu.org/software/parted/";
-    license = licenses.gpl3Plus;
-
-    maintainers = [
-      # Add your name here!
-    ];
-
-    # GNU Parted requires libuuid, which is part of util-linux-ng.
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pyblock-sysmacros.h.patch b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pyblock-sysmacros.h.patch
deleted file mode 100644
index b8ab7bd53b2b..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pyblock-sysmacros.h.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/dm.c b/dm.c
-index 5daa0e5..d5b84c8 100644
---- a/dm.c
-+++ b/dm.c
-@@ -19,6 +19,7 @@
- #define _GNU_SOURCE
- #include <sys/stat.h>
- #include <sys/types.h>
-+#include <sys/sysmacros.h>
- #include <unistd.h>
- #include <fcntl.h>
- #include <stdarg.h>
diff --git a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pyblock.nix b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pyblock.nix
deleted file mode 100644
index ddf260300fbc..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pyblock.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, stdenv, fetchurl, python, lvm2, dmraid }:
-
-stdenv.mkDerivation rec {
-  pname = "pyblock";
-  version = "0.53";
-  md5_path = "f6d33a8362dee358517d0a9e2ebdd044";
-
-  src = fetchurl {
-    url = "https://src.fedoraproject.org/repo/pkgs/python-pyblock/"
-        + "${pname}-${version}.tar.bz2/${md5_path}/${pname}-${version}.tar.bz2";
-    sha256 = "f6cef88969300a6564498557eeea1d8da58acceae238077852ff261a2cb1d815";
-  };
-
-  patches = [
-    # Fix build with glibc >= 2.28
-    # https://github.com/NixOS/nixpkgs/issues/86403
-    ./pyblock-sysmacros.h.patch
-  ];
-
-  postPatch = ''
-    sed -i -e 's|/usr/include/python|${python}/include/python|' \
-           -e 's/-Werror *//' -e 's|/usr/|'"$out"'/|' Makefile
-  '';
-
-  buildInputs = [ python lvm2 dmraid ];
-
-  makeFlags = [
-    "USESELINUX=0"
-    "SITELIB=$(out)/lib/${python.libPrefix}/site-packages"
-  ];
-
-  meta = with lib; {
-    description = "Interface for working with block devices";
-    license = licenses.gpl2Plus;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pykickstart.nix b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pykickstart.nix
deleted file mode 100644
index 092db8ee7c4c..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pykickstart.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib, python, buildPythonApplication, fetchurl, urlgrabber }:
-
-buildPythonApplication rec {
-  pname = "pykickstart";
-  version = "1.99.39";
-  md5_path = "d249f60aa89b1b4facd63f776925116d";
-
-  src = fetchurl {
-    url = "https://src.fedoraproject.org/repo/pkgs/pykickstart/"
-        + "${pname}-${version}.tar.gz/${md5_path}/${pname}-${version}.tar.gz";
-    sha256 = "e0d0f98ac4c5607e6a48d5c1fba2d50cc804de1081043f9da68cbfc69cad957a";
-  };
-
-  postPatch = ''
-    sed -i -e "s/for tst in tstList/for tst in sorted(tstList, \
-               key=lambda m: m.__name__)/" tests/baseclass.py
-  '';
-
-  propagatedBuildInputs = [ urlgrabber ];
-
-  checkPhase = ''
-    ${python}/bin/${python.executable} tests/baseclass.py -vv
-  '';
-
-  meta = with lib; {
-    homepage = "http://fedoraproject.org/wiki/Pykickstart";
-    description = "Read and write Fedora kickstart files";
-    license = licenses.gpl2Plus;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pyparted.nix b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pyparted.nix
deleted file mode 100644
index 9d1eff2bab77..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/pyparted.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib, stdenv, fetchurl, pkg-config, python, buildPythonApplication, parted, e2fsprogs }:
-
-buildPythonApplication rec {
-  pname = "pyparted";
-  version = "3.10";
-
-  src = fetchurl {
-    url = "https://fedorahosted.org/releases/p/y/pyparted/${pname}-${version}.tar.gz";
-    sha256 = "17wq4invmv1nfazaksf59ymqyvgv3i8h4q03ry2az0s9lldyg3dv";
-  };
-
-  postPatch = ''
-    sed -i -e 's|/sbin/mke2fs|${e2fsprogs}&|' tests/baseclass.py
-    sed -i -e '
-      s|e\.path\.startswith("/tmp/temp-device-")|"temp-device-" in e.path|
-    ' tests/test__ped_ped.py
-  '' + lib.optionalString stdenv.isi686 ''
-    # remove some integers in this test case which overflow on 32bit systems
-    sed -i -r -e '/class *UnitGetSizeTestCase/,/^$/{/[0-9]{11}/d}' \
-      tests/test__ped_ped.py
-  '';
-
-  preConfigure = ''
-    PATH="${parted}/sbin:$PATH"
-  '';
-
-  nativeBuildInputs = [ pkg-config ];
-
-  propagatedBuildInputs = [ parted ];
-
-  checkPhase = ''
-    patchShebangs Makefile
-    make test PYTHON=${python.executable}
-  '';
-
-  meta = with lib; {
-    homepage = "https://fedorahosted.org/pyparted/";
-    description = "Python interface for libparted";
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/filesystems/nixpart/default.nix b/nixpkgs/pkgs/tools/filesystems/nixpart/default.nix
deleted file mode 100644
index 80ae8ca2b3cd..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ lib, fetchurl, buildPythonApplication, blivet }:
-
-buildPythonApplication rec {
-  pname = "nixpart";
-  version = "1.0.0";
-
-  src = fetchurl {
-    url = "https://github.com/aszlig/nixpart/archive/v${version}.tar.gz";
-    sha256 = "0avwd8p47xy9cydlbjxk8pj8q75zyl68gw2w6fnkk78dcb1a3swp";
-  };
-
-  propagatedBuildInputs = [ blivet ];
-
-  meta = {
-    description = "NixOS storage manager/partitioner";
-    license = lib.licenses.gpl2Plus;
-    maintainers = [ lib.maintainers.aszlig ];
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/filesystems/s3backer/default.nix b/nixpkgs/pkgs/tools/filesystems/s3backer/default.nix
index 35d0b7af0736..d0a1e0916367 100644
--- a/nixpkgs/pkgs/tools/filesystems/s3backer/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/s3backer/default.nix
@@ -4,10 +4,10 @@
 
 stdenv.mkDerivation rec {
   pname = "s3backer";
-  version = "1.6.2";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
-    sha256 = "sha256-b64EEES7gO9s24hk3sZMd9guEhJNfc3DV4/NnBIcJYw=";
+    sha256 = "sha256-DOf+kpflDd2U1nXDLKYts/yf121CrBFIBI47OQa5XBs=";
     rev = version;
     repo = "s3backer";
     owner = "archiecobbs";
diff --git a/nixpkgs/pkgs/tools/filesystems/snapraid/default.nix b/nixpkgs/pkgs/tools/filesystems/snapraid/default.nix
index d854558b7920..9f5980a07e7d 100644
--- a/nixpkgs/pkgs/tools/filesystems/snapraid/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/snapraid/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "snapraid";
-  version = "11.5";
+  version = "12.0";
 
   src = fetchFromGitHub {
     owner = "amadvance";
     repo = "snapraid";
     rev = "v${version}";
-    sha256 = "0dlhdsmq5l208zldfr9z9g0p67wry81dr0r23lpybb5c9fm2f2rm";
+    sha256 = "sha256-CcJaxnbRvGYiQjU38qnTgNyim5aDQWmxhQv16ZT1F00=";
   };
 
   VERSION = version;
diff --git a/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/common.nix b/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/common.nix
index f85faa712dd4..187efa1604e0 100644
--- a/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/common.nix
+++ b/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/common.nix
@@ -56,6 +56,7 @@ in stdenv.mkDerivation rec {
     longDescription = macfuse-stubs.warning;
     homepage = "https://github.com/libfuse/sshfs";
     license = licenses.gpl2Plus;
+    mainProgram = "sshfs";
     maintainers = with maintainers; [ primeos ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/wiimms-iso-tools/default.nix b/nixpkgs/pkgs/tools/filesystems/wiimms-iso-tools/default.nix
index 70c445014098..2b107d1af191 100644
--- a/nixpkgs/pkgs/tools/filesystems/wiimms-iso-tools/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/wiimms-iso-tools/default.nix
@@ -1,7 +1,7 @@
-{lib, stdenv, fetchurl, zlib, ncurses, fuse}:
+{lib, stdenv, fetchurl, fetchpatch, zlib, ncurses, fuse}:
 
 stdenv.mkDerivation rec {
-  name = "wiimms-iso-tools";
+  pname = "wiimms-iso-tools";
   version = "3.02a";
 
   src = fetchurl {
@@ -11,7 +11,19 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ zlib ncurses fuse ];
 
-  patches = [ ./fix-paths.diff ];
+  patches = [
+    ./fix-paths.diff
+
+    # Pull pending upstream fix for ncurses-6.3:
+    #  https://github.com/Wiimm/wiimms-iso-tools/pull/14
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/Wiimm/wiimms-iso-tools/commit/3f1e84ec6915cc4f658092d33411985bd3eaf4e6.patch";
+      sha256 = "18cfri4y1082phg6fzh402gk5ri24wr8ff4zl8v5rlgjndh610im";
+      stripLen = 1;
+    })
+  ];
+
   postPatch = ''
     patchShebangs setup.sh
     patchShebangs gen-template.sh
diff --git a/nixpkgs/pkgs/tools/filesystems/xfsprogs/default.nix b/nixpkgs/pkgs/tools/filesystems/xfsprogs/default.nix
index 85efb13b82ef..730932141b54 100644
--- a/nixpkgs/pkgs/tools/filesystems/xfsprogs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/xfsprogs/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, buildPackages, fetchpatch, fetchurl, autoconf, automake, gettext, libtool, pkg-config
+{ lib, stdenv, buildPackages, fetchurl, autoconf, automake, gettext, libtool, pkg-config
 , icu, libuuid, readline, inih
 }:
 
 stdenv.mkDerivation rec {
   pname = "xfsprogs";
-  version = "5.11.0";
+  version = "5.13.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/fs/xfs/xfsprogs/${pname}-${version}.tar.xz";
-    sha256 = "0lxks616nmdk8zkdbwpq5sf9zz19smgy5rpmp3hpk2mvrl7kk70f";
+    sha256 = "sha256-ThQtS6vghq35AW2MYGyAWCnaCORjiaRDP0A0YgT5DNs=";
   };
 
   outputs = [ "bin" "dev" "out" "doc" ];
diff --git a/nixpkgs/pkgs/tools/filesystems/zpool-iostat-viz/default.nix b/nixpkgs/pkgs/tools/filesystems/zpool-iostat-viz/default.nix
new file mode 100644
index 000000000000..f5eb7c7f02ef
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/zpool-iostat-viz/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, fetchFromGitHub
+, python3Packages
+, installShellFiles
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "zpool-iostat-viz";
+  version = "unstable-2021-11-13";
+
+  src = fetchFromGitHub {
+    owner = "chadmiller";
+    repo = pname;
+    rev = "cdd8f3d882ab7a9990fb2d26af3e5b2bcc4bb312";
+    sha256 = "sha256-vNXD5SauBpCtP7VPTumQ0/wXfW0PjtooS21cjpAole8=";
+  };
+
+  nativeBuildInputs = [
+    installShellFiles
+    python3Packages.wrapPython
+  ];
+
+  # There is no setup.py
+  dontConfigure = true;
+  dontBuild = true;
+  doCheck = false;
+
+  installPhase = ''
+    wrapPythonPrograms
+    install -D zpool-iostat-viz $out/bin/zpool-iostat-viz
+    installManPage zpool-iostat-viz.1
+  '';
+
+  meta = with lib; {
+    description = "\"zpool iostats\" for humans; find the slow parts of your ZFS pool";
+    homepage = "https://github.com/chadmiller/zpool-iostat-viz";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ julm ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/games/ajour/default.nix b/nixpkgs/pkgs/tools/games/ajour/default.nix
index ed75e347db0b..49fef3edca9f 100644
--- a/nixpkgs/pkgs/tools/games/ajour/default.nix
+++ b/nixpkgs/pkgs/tools/games/ajour/default.nix
@@ -11,6 +11,7 @@
 , kdialog
 , zenity
 , openssl
+, libglvnd
 , libX11
 , libxcb
 , libXcursor
@@ -23,6 +24,7 @@
 
 let
   rpathLibs = [
+    libglvnd
     libXcursor
     libXi
     libxkbcommon
@@ -34,16 +36,16 @@ let
 
 in rustPlatform.buildRustPackage rec {
   pname = "Ajour";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "casperstorm";
     repo = "ajour";
     rev = version;
-    sha256 = "sha256-tUm5d2JTvYyNFnKgId8mivWTB+v4TURZX293fMd11pk=";
+    sha256 = "sha256-oVaNLclU0EVNtxAASE8plXcC+clkwhBeb9pz1vXufV0=";
   };
 
-  cargoSha256 = "sha256-SPmfXJLIA4OGEm/S2mi5xmIE9ng7hY3aHm/PCT7pg0E=";
+  cargoSha256 = "sha256-Q+wYBLsZN8YQtUJfrxmjImbnWRPmngJPB8sDG65LuJY=";
 
   nativeBuildInputs = [
     autoPatchelfHook
diff --git a/nixpkgs/pkgs/tools/games/gamemode/preload-nix-workaround.patch b/nixpkgs/pkgs/tools/games/gamemode/preload-nix-workaround.patch
index 06989ff984ab..9c8db37f5d91 100644
--- a/nixpkgs/pkgs/tools/games/gamemode/preload-nix-workaround.patch
+++ b/nixpkgs/pkgs/tools/games/gamemode/preload-nix-workaround.patch
@@ -6,7 +6,7 @@ index 573b3e4..6f2799e 100755
  
  # ld will find the right path to load the library, including for 32-bit apps.
  LD_PRELOAD="${GAMEMODEAUTO_NAME}${LD_PRELOAD:+:$LD_PRELOAD}"
-+LD_LIBRARY_PATH="@libraryPath@${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
++LD_LIBRARY_PATH="@libraryPath@${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
  
 -exec env LD_PRELOAD="${LD_PRELOAD}" $GAMEMODERUNEXEC "$@"
 +exec env LD_PRELOAD="${LD_PRELOAD}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" $GAMEMODERUNEXEC "$@"
diff --git a/nixpkgs/pkgs/tools/games/joystickwake/default.nix b/nixpkgs/pkgs/tools/games/joystickwake/default.nix
index 4f324c36d84a..f8f962f6eef7 100644
--- a/nixpkgs/pkgs/tools/games/joystickwake/default.nix
+++ b/nixpkgs/pkgs/tools/games/joystickwake/default.nix
@@ -1,13 +1,13 @@
 { lib, python3, fetchFromGitHub }:
 python3.pkgs.buildPythonApplication rec {
   pname = "joystickwake";
-  version = "0.2.5";
+  version = "0.3";
 
   src = fetchFromGitHub {
     owner = "foresto";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1yhzv4gbz0c0ircxk91m1d4ygf14mla137z4nfxggmbvjs0aa4y0";
+    sha256 = "0f990bvykjjq2rzzbm158kajnqxigfzcrzap11dc415wkvn25k6q";
   };
 
   propagatedBuildInputs = with python3.pkgs; [ pyudev xlib ];
diff --git a/nixpkgs/pkgs/tools/games/jpsxdec/0001-jpsxdec-hackfix-build-with-newer-JDKs.patch b/nixpkgs/pkgs/tools/games/jpsxdec/0001-jpsxdec-hackfix-build-with-newer-JDKs.patch
new file mode 100644
index 000000000000..17899ef328f1
--- /dev/null
+++ b/nixpkgs/pkgs/tools/games/jpsxdec/0001-jpsxdec-hackfix-build-with-newer-JDKs.patch
@@ -0,0 +1,43 @@
+From 52662c71f7b043f374d4062d07a28b59ef010cbe Mon Sep 17 00:00:00 2001
+From: Zane van Iperen <zane@zanevaniperen.com>
+Date: Wed, 22 Sep 2021 18:41:36 +1000
+Subject: [PATCH] jpsxdec: hackfix build with newer JDKs
+
+---
+ jpsxdec/build.xml | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/jpsxdec/build.xml b/jpsxdec/build.xml
+index 713941c..f5aa902 100644
+--- a/jpsxdec/build.xml
++++ b/jpsxdec/build.xml
+@@ -43,8 +43,8 @@
+     <property name="build-lgpl.dir" location="${working.dir}/build-lgpl"/>
+     <property name="testbuild.dir"  location="${working.dir}/build-test"/>
+ 
+-    <property name="javac.target.ver" value="1.6"/>
+-    <property name="javac.source.ver" value="1.6" />
++    <property name="javac.target.ver" value="1.8"/>
++    <property name="javac.source.ver" value="1.8" />
+ 
+     <!-- output -->
+     <property name="release.dir"       location="${working.dir}/release"/>
+@@ -76,7 +76,6 @@
+             <compilerarg value="-Xlint:static"/>
+             <compilerarg value="-Xlint:unchecked"/>
+             <compilerarg value="-Xlint:varargs"/>
+-            <compilerarg value="-Werror"/>
+         </javac>
+ 
+         <!-- Copy over resources -->
+@@ -109,7 +108,6 @@
+             <compilerarg value="-Xlint:static"/>
+             <compilerarg value="-Xlint:unchecked"/>
+             <compilerarg value="-Xlint:varargs"/>
+-            <compilerarg value="-Werror"/>
+         </javac>
+             
+         <!-- Copy over resources -->
+-- 
+2.31.1
+
diff --git a/nixpkgs/pkgs/tools/games/jpsxdec/default.nix b/nixpkgs/pkgs/tools/games/jpsxdec/default.nix
new file mode 100644
index 000000000000..2c18f29bbf33
--- /dev/null
+++ b/nixpkgs/pkgs/tools/games/jpsxdec/default.nix
@@ -0,0 +1,84 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, jdk
+/*
+ * jPSXdec needs to be built with no later than JDK8, but
+ * should be run with the latest to get HiDPI fixes, etc.
+ */
+, jre ? jdk
+, ant
+, unoconv
+, makeWrapper
+, makeDesktopItem
+}:
+let
+  pname = "jpsxdec";
+  version = "1.05";
+
+  description = "Cross-platform PlayStation 1 audio and video converter";
+
+  desktopItem = makeDesktopItem {
+    name = pname;
+    exec = pname;
+    icon = pname;
+    comment = description;
+    desktopName = "jPSXdec";
+    categories = "AudioVideo;Utility;";
+  };
+in
+stdenv.mkDerivation rec {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "m35";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0wnfvvcyldf699b08lzlc0gshl7rn09a6q4i7jmr41izlcdszdbz";
+  };
+
+  nativeBuildInputs = [ ant jdk unoconv makeWrapper ];
+  buildInputs = [ jre ];
+
+  patches = [
+    ./0001-jpsxdec-hackfix-build-with-newer-JDKs.patch
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    cd jpsxdec
+    mkdir -p _ant/release/doc/
+    unoconv -d document -f pdf -o _ant/release/doc/jPSXdec-manual.pdf doc/jPSXdec-manual.odt
+
+    ant release
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,share/pixmaps}
+    mv _ant/release $out/jpsxdec
+
+    makeWrapper ${jre}/bin/java $out/bin/jpsxdec \
+      --add-flags "-jar $out/jpsxdec/jpsxdec.jar"
+
+    cp ${src}/jpsxdec/src/jpsxdec/gui/icon48.png $out/share/pixmaps/${pname}.png
+    ln -s ${desktopItem}/share/applications $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    inherit description;
+    homepage = "https://jpsxdec.blogspot.com/";
+    platforms = platforms.all;
+    license = {
+      url = "https://raw.githubusercontent.com/m35/jpsxdec/readme/.github/LICENSE.md";
+      free = true;
+    };
+    maintainers = with maintainers; [ zane ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/games/minecraft/fabric-installer/default.nix b/nixpkgs/pkgs/tools/games/minecraft/fabric-installer/default.nix
index ef978875049e..41754ce872da 100644
--- a/nixpkgs/pkgs/tools/games/minecraft/fabric-installer/default.nix
+++ b/nixpkgs/pkgs/tools/games/minecraft/fabric-installer/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fabric-installer";
-  version = "0.7.4";
+  version = "0.10.2";
 
   src = fetchurl {
     url = "https://maven.fabricmc.net/net/fabricmc/fabric-installer/${version}/fabric-installer-${version}.jar";
-    sha256 = "0s3nmwpq1qg90c27qh4anvvsg4yzsgcp6kwsb35fsiaaakxn0b8r";
+    sha256 = "sha256-xjnL1nURAr4z2OZKEqiC/E6+rSvDpxrfGwm/5Bvxxno=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/tools/games/minecraft/optifine/default.nix b/nixpkgs/pkgs/tools/games/minecraft/optifine/default.nix
index 06425e6b67ef..b7ca74822c40 100644
--- a/nixpkgs/pkgs/tools/games/minecraft/optifine/default.nix
+++ b/nixpkgs/pkgs/tools/games/minecraft/optifine/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "optifine";
-  version = "1.16.5_HD_U_G8";
+  version = "1.18.1_HD_U_H4";
 
   src = fetchurl {
     url = "https://optifine.net/download?f=OptiFine_${version}.jar";
-    sha256 = "0ks91d6n4vkgb5ykdrc67br2c69nqjr0xhp7rrkybg24xn8bqxiw";
+    sha256 = "325168569b21a2dcde82999876f69ec9d8af75202a7021691f2abede4d81dcec";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/tools/games/opentracker/default.nix b/nixpkgs/pkgs/tools/games/opentracker/default.nix
new file mode 100644
index 000000000000..a66d6f4aef53
--- /dev/null
+++ b/nixpkgs/pkgs/tools/games/opentracker/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, stdenv
+, buildDotnetModule
+, fetchFromGitHub
+, autoPatchelfHook
+, wrapGAppsHook
+, dotnetCorePackages
+, fontconfig
+, gtk3
+, openssl
+, libX11
+, libXi
+, xinput
+}:
+
+buildDotnetModule rec {
+  pname = "opentracker";
+  version = "1.8.2";
+
+  src = fetchFromGitHub {
+    owner = "trippsc2";
+    repo = pname;
+    rev = version;
+    sha256 = "0nsmyb1wd86465iri9jxl3jp74gxkscvnmr3687ddbia3dv4fz0z";
+  };
+
+  dotnet-runtime = dotnetCorePackages.runtime_3_1;
+  nugetDeps = ./deps.nix;
+
+  projectFile = "OpenTracker.sln";
+  executables = [ "OpenTracker" ];
+
+  doCheck = true;
+  dotnet-test-sdk = dotnetCorePackages.sdk_3_1;
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    stdenv.cc.cc.lib
+    fontconfig
+  ];
+
+  runtimeDeps = [
+    gtk3
+    openssl
+    libX11
+    libXi
+    xinput
+  ];
+
+  autoPatchelfIgnoreMissingDeps = true; # Attempts to patchelf unneeded SOs
+
+  meta = with lib; {
+    description = "A tracking application for A Link to the Past Randomizer";
+    homepage = "https://github.com/trippsc2/OpenTracker";
+    license = licenses.mit;
+    maintainers = [ maintainers.ivar ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/games/opentracker/deps.nix b/nixpkgs/pkgs/tools/games/opentracker/deps.nix
new file mode 100644
index 000000000000..7898441d5395
--- /dev/null
+++ b/nixpkgs/pkgs/tools/games/opentracker/deps.nix
@@ -0,0 +1,228 @@
+{ fetchNuGet }: [
+  (fetchNuGet { pname = "Autofac"; version = "6.0.0"; sha256 = "1faz8j3caqh4f2w4bcicz5x67f63f6463jikg89sr9qmqbv778hn"; })
+  (fetchNuGet { pname = "Autofac"; version = "6.1.0"; sha256 = "0g1iic7y19rm536dzsllabw7phbgb6wzghhpfmdxz7yp7zrfjk15"; })
+  (fetchNuGet { pname = "Autofac.Extras.Moq"; version = "6.0.0"; sha256 = "1jbdzwr712iq11s3i24a4b7g6025djkmf40fcrfiqkihvdrfprcw"; })
+  (fetchNuGet { pname = "Avalonia"; version = "0.10.0"; sha256 = "0wf8nqdj0xi6drzw676vm5ac2kaxcd76af4y1cirfw4j7lxvs344"; })
+  (fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2020091801"; sha256 = "04jm83cz7vkhhr6n2c9hya2k8i2462xbf6np4bidk55as0jdq43a"; })
+  (fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "0.10.0"; sha256 = "0yry5kwbp03lznv2zay39p2ry2jsdf7s1syjzf93dd64pgl5bwpk"; })
+  (fetchNuGet { pname = "Avalonia.Desktop"; version = "0.10.0"; sha256 = "1vwaxxnzcgkdrxvrkjcxpc9c839pxmm6ajq83xiqzn5f4vvx29di"; })
+  (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "0.10.0"; sha256 = "1fw6bbbm7g1w4s6hyskkx7p59i3p965bly8p50dmfs31ls01jfrx"; })
+  (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "0.10.0"; sha256 = "08z3vybk474yxaipd7nqqr9xycgprggcri4lp61ns3p3fj599ydp"; })
+  (fetchNuGet { pname = "Avalonia.Markup.Xaml.Loader"; version = "0.10.0"; sha256 = "05wdf7gc5v03gia29srq44g49ijqg45vygargm087m2s63i134jk"; })
+  (fetchNuGet { pname = "Avalonia.Native"; version = "0.10.0"; sha256 = "1kfzn349rllp7ngydvxqn84hmgxrkbgf7mgrqwcagq809f73mzyp"; })
+  (fetchNuGet { pname = "Avalonia.ReactiveUI"; version = "0.10.0"; sha256 = "0azkwfi72gy7158fpfs6i0iixixy00zfkgsh939pfzy7fkz5pq8m"; })
+  (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "0.10.0"; sha256 = "0527966nmjdhzdq6dwhjhyc79kmy56ymhxsmrp344jn43d67kmnr"; })
+  (fetchNuGet { pname = "Avalonia.Skia"; version = "0.10.0"; sha256 = "1d5w7pl1xx9l250mhdq3jnpy5zl77j8n3ccjjxfg8sc7rnyd2fx9"; })
+  (fetchNuGet { pname = "Avalonia.Win32"; version = "0.10.0"; sha256 = "0lyfmhh0q1dzzb5blp76phj894wl6ab0kn1pcprxqvj94dcwric8"; })
+  (fetchNuGet { pname = "Avalonia.X11"; version = "0.10.0"; sha256 = "0asja6g20c6wzxmvx0knkdk6f5fbrx99n82zcrj4y2irhmmzjhxy"; })
+  (fetchNuGet { pname = "Avalonia.Xaml.Behaviors"; version = "0.10.0"; sha256 = "10g6i9y00a13cy3y889y3z8i5p5arpif53q3xx9k6k0qzcq6zq51"; })
+  (fetchNuGet { pname = "Avalonia.Xaml.Interactions"; version = "0.10.0"; sha256 = "0s1mha3m912lmzaw87a841807fcx150vmhwcbfb8mnhqf6qgdwjy"; })
+  (fetchNuGet { pname = "Avalonia.Xaml.Interactions.DragAndDrop"; version = "0.10.0"; sha256 = "1hi9ii7r6xr6avac0a2fs1fq9x34iw23hn1qmnzskbj6jz1pzsbj"; })
+  (fetchNuGet { pname = "Avalonia.Xaml.Interactivity"; version = "0.10.0"; sha256 = "0nqpxbn390g98vyhvp4rvbchxlrcc8vkjjkakgz15crk1irf941b"; })
+  (fetchNuGet { pname = "Castle.Core"; version = "4.0.0"; sha256 = "10zq7mb1gvm946grw7fxa5dh1xwccqmk5jmwx6pqn7kbjp9frkpy"; })
+  (fetchNuGet { pname = "DotNet.Bundle"; version = "0.9.13"; sha256 = "0awzvk62hgszm9b8ar87y862aj8nlm77d7hgfmp84mxny0ag03jl"; })
+  (fetchNuGet { pname = "DynamicData"; version = "7.1.1"; sha256 = "14xcqkw87zbjljy1pb727kwq5a4dfmsf5vg99fq0xxb71q828nvh"; })
+  (fetchNuGet { pname = "HarfBuzzSharp"; version = "2.6.1.7"; sha256 = "0xm4dr6cs5n1ywbbpp1jrxfk8rn1iy61kdm29kb6bqj1q0gv8zyv"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.6.1.7"; sha256 = "1slackrhcwsjn3f6sa0nlrcynzmx5pbqv8j33l9w6z9w7ssq4wkn"; })
+  (fetchNuGet { pname = "JetBrains.Annotations"; version = "2020.3.0"; sha256 = "04xlfqnfg3069f014q8f0vx7y70m8nldbf9fia4b50bp3rry2lv2"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "3.1.21"; sha256 = "056g9nv8a7n8zdbgzmyzmn3pbg52yq2kv5d1rcp7h6plwzgpiwql"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "3.1.21"; sha256 = "0akdzi35497v8yxr3a9q1g26cnx9vxnwv81kwxi293jklwnx8gsr"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "3.1.21"; sha256 = "16kya6xvi7k42sr8bxgpbz9116dj7g3i18ylpvji9qngdx41891v"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "3.1.21"; sha256 = "0rd3w3i6fzwhi71jcr8i0mchgfgpp1a0qhancg4dxsva032as4s6"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.2"; sha256 = "162vb5894zxps0cf5n9gc08an7gwybzz87allx3lsszvllr9ldx4"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.9.0"; sha256 = "1x6l6kn8iv5gk1545nxs2gwzkb8gj4sb9kryai132l7yg9afjqik"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.9.0"; sha256 = "0crb9x5rhija8y7b0iya9axcvinz2hv3bgf80bvz7kv6zpbpszkz"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.9.0"; sha256 = "0hrihj0q96vjlbfvkq9l4maqdf6rqdznr7cpj82iw51n8kbzj8s3"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.NetAnalyzers"; version = "5.0.3"; sha256 = "1l0zg9wl8yapjq9g2d979zhsmdkr8kfybmxnl7kvgkgldf114fbg"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.9.0"; sha256 = "0kds9i8bla540787qchbzayrg50ai40pxyai2vihc1m2l39h4mdf"; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "16.9.1"; sha256 = "18isx8w4kwnlk6hq5ay8i4lgzwhx0zg9brayfdk2lakagvv6yyaf"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.21"; sha256 = "01kbhi29lhv6mg1zfsyakz3z8hfbxnc0kxy0fczl8xqviik9svx7"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.21"; sha256 = "1s5g9gk0hvs268q2zpc32m0my2m2ivlmsmza86797a9vkxr6pzw6"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "3.1.21"; sha256 = "0dl4yakfmdkx6xr18f09cdnl11b4fyp23jg3msr8a25zqdqvcr29"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "3.1.21"; sha256 = "1l5wh5c9bgnzph07cd72q08mr87lsczwl0vy0rzrsi7xpzryvw7l"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "3.1.21"; sha256 = "13692wqcww0w6x4nhyxpxwprdg6mx9xmlvv38m6fvp6g0m27r43v"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "3.1.21"; sha256 = "1p7fpcmx4m2374zjfh53i3mv4lkr8xrkz5lnawv95s7j005m07pc"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "3.1.21"; sha256 = "02zgxzf8l607mh17900n7msga0yfcnqgd70rj1rlwj23plifykx1"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "3.1.21"; sha256 = "1gsrajdhlyndwb0s1c03cbm7wh1yfiwpk075nrlfvicbc4m7h347"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.1"; sha256 = "12ilya3x6g5frbwmh41mwygax9v8vrycq3vnzhv3r258jwv69974"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "5.0.0"; sha256 = "0z3qyv7qal5irvabc8lmkh58zsl42mrzd1i0sssvzhv4q4kl3cg6"; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.9.1"; sha256 = "1761mvkp5mwhw150fvazdhh4ybvxpvx05g9znf8n1fqx832wxrw5"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "16.9.1"; sha256 = "1igpx7ldxqx9fkrbhakd2bybc0dgpvj86zr30vpfj31ncm6lp4id"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "16.9.1"; sha256 = "1frx5r7l0jd3j6my4s2qas13fkljgfn87a84xk8l7sisafpfsvzp"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
+  (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "5.0.0"; sha256 = "0sja4ba0mrvdamn0r9mhq38b9dxi08yb3c1hzh29n1z6ws1hlrcq"; })
+  (fetchNuGet { pname = "Moq"; version = "4.7.0"; sha256 = "1y1lzg7scrzl5x8cxsbrgkpg79mf3v0ylnpgjw8q6hib2rhsi8ff"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.3"; sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
+  (fetchNuGet { pname = "Packaging.Targets"; version = "0.1.155"; sha256 = "0iija7gskcbrj8qgj5lqxqsfpz8k58fbvjnix6rccpzgvb16dkhy"; })
+  (fetchNuGet { pname = "ReactiveUI"; version = "12.1.1"; sha256 = "1mwv9fi2zazp9ddwci9xfzrmi4pyp8n69r8ilc4lp5lvr1c6chih"; })
+  (fetchNuGet { pname = "ReactiveUI"; version = "13.2.2"; sha256 = "1f9jh3d8lblqpva4iy5c6qvnya3cc0fp6mva3f9z3q7ll8v4h62h"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.0.0"; sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
+  (fetchNuGet { pname = "Serilog"; version = "2.10.0"; sha256 = "08bih205i632ywryn3zxkhb15dwgyaxbhmm1z3b5nmby9fb25k7v"; })
+  (fetchNuGet { pname = "Serilog.Sinks.File"; version = "4.1.0"; sha256 = "1ry7p9hf1zlnai1j5zjhjp4dqm2agsbpq6cvxgpf5l8m26x6mgca"; })
+  (fetchNuGet { pname = "Serilog.Sinks.File"; version = "5.0.0-dev-00909"; sha256 = "1rz1zzyamnl8g4ccscaaij2bkhpd4md4sr9k28i0zwvij4kpj22z"; })
+  (fetchNuGet { pname = "SkiaSharp"; version = "2.80.2"; sha256 = "17n0f4gfxz69fzd7zmgimbxfja15vq902arap2rqjr1hxp8sck7g"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.80.2"; sha256 = "1951b7rpisaymb37j846jq01pjd05l4fjlnf56blh33ihxyj2jzi"; })
+  (fetchNuGet { pname = "Splat"; version = "10.0.1"; sha256 = "18fzrn7xwjzxj4v3drs8djd3yf14bnq5n9n8vdnwfa1zk5jqpsb9"; })
+  (fetchNuGet { pname = "Splat"; version = "9.6.1"; sha256 = "1sd3gbcv21vwl3spcpmy4d7nzcs0x6m72qj8qfbv4dvgpvbv5sdy"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
+  (fetchNuGet { pname = "System.Collections.NonGeneric"; version = "4.0.1"; sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d"; })
+  (fetchNuGet { pname = "System.Collections.Specialized"; version = "4.0.1"; sha256 = "1wbv7y686p5x169rnaim7sln67ivmv6r57falrnx8aap9y33mam9"; })
+  (fetchNuGet { pname = "System.ComponentModel"; version = "4.0.1"; sha256 = "0v4qpmqlzyfad2kswxxj2frnaqqhz9201c3yn8fmmarx5vlzg52z"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; })
+  (fetchNuGet { pname = "System.ComponentModel.Primitives"; version = "4.1.0"; sha256 = "0wb5mnaag0w4fnyc40x19j8v2vshxp266razw64bcqfyj1whb1q0"; })
+  (fetchNuGet { pname = "System.ComponentModel.TypeConverter"; version = "4.1.0"; sha256 = "178cva9p1cs043h5n2fry5xkzr3wc9n0hwbxa8m3ymld9m6wcv0y"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.7.1"; sha256 = "1mivaifniyrqwlnvzsfaxzrh2sd981bwzs3cbvs5wi7jjzbcqr4p"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "5.0.1"; sha256 = "0mzw44wsm87vpslb9sn7rirxynpq9m3b00l7gl0q71m8shfh66qs"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
+  (fetchNuGet { pname = "System.Diagnostics.TraceSource"; version = "4.0.0"; sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.Drawing.Common"; version = "5.0.1"; sha256 = "14h722wq58k1wmgxmpws91xc7kh8109ijw0hcxjq9qkbhbi6pwmb"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
+  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
+  (fetchNuGet { pname = "System.Linq.Queryable"; version = "4.0.1"; sha256 = "11jn9k34g245yyf260gr3ldzvaqa9477w2c5nhb1p8vjx4xm3qaw"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
+  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
+  (fetchNuGet { pname = "System.Reactive"; version = "5.0.0"; sha256 = "1lafmpnadhiwxyd543kraxa3jfdpm6ipblxrjlibym9b1ykpr5ik"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.3.1"; sha256 = "03ch4d2acf6q037a4njxpll2kkx3dwzlg07yxr4z5m6j1kqgmm27"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.6.0"; sha256 = "0xmzi2gpbmgyfr75p24rqqsba3cmrqgmcv45lsqp5amgrdwd0f0m"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.3.0"; sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
+  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
+  (fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
+  (fetchNuGet { pname = "System.Xml.XmlDocument"; version = "4.0.1"; sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1"; })
+  (fetchNuGet { pname = "System.Xml.XmlSerializer"; version = "4.0.11"; sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z"; })
+  (fetchNuGet { pname = "ThemeEditor.Controls.ColorPicker"; version = "0.10.0"; sha256 = "0sib6cf2xkss48rm3shbwr57rbzz7d2zq0fvjp0hwsa1mb985p2b"; })
+  (fetchNuGet { pname = "Tmds.DBus"; version = "0.9.1"; sha256 = "095vinsbb9pbphbhh7x7rxvs8a3b9w1nnz7gxn9bw5is01qnhgdm"; })
+  (fetchNuGet { pname = "WebSocketSharp-netstandard"; version = "1.0.1"; sha256 = "0q89wiqpli72333zsa04d1vzq9xj0583hn5mih9sdd84myksz5b0"; })
+  (fetchNuGet { pname = "xunit"; version = "2.4.1"; sha256 = "0xf3kaywpg15flqaqfgywqyychzk15kz0kz34j21rcv78q9ywq20"; })
+  (fetchNuGet { pname = "xunit.abstractions"; version = "2.0.3"; sha256 = "00wl8qksgkxld76fgir3ycc5rjqv1sqds6x8yx40927q5py74gfh"; })
+  (fetchNuGet { pname = "xunit.analyzers"; version = "0.10.0"; sha256 = "15n02q3akyqbvkp8nq75a8rd66d4ax0rx8fhdcn8j78pi235jm7j"; })
+  (fetchNuGet { pname = "xunit.assert"; version = "2.4.1"; sha256 = "1imynzh80wxq2rp9sc4gxs4x1nriil88f72ilhj5q0m44qqmqpc6"; })
+  (fetchNuGet { pname = "xunit.core"; version = "2.4.1"; sha256 = "1nnb3j4kzmycaw1g76ii4rfqkvg6l8gqh18falwp8g28h802019a"; })
+  (fetchNuGet { pname = "xunit.extensibility.core"; version = "2.4.1"; sha256 = "103qsijmnip2pnbhciqyk2jyhdm6snindg5z2s57kqf5pcx9a050"; })
+  (fetchNuGet { pname = "xunit.extensibility.execution"; version = "2.4.1"; sha256 = "1pbilxh1gp2ywm5idfl0klhl4gb16j86ib4x83p8raql1dv88qia"; })
+  (fetchNuGet { pname = "xunit.runner.console"; version = "2.4.1"; sha256 = "13ykz9anhz72xc4q6byvdfwrp54hlcbl6zsfapwfhnzyvfgb9w13"; })
+  (fetchNuGet { pname = "xunit.runner.visualstudio"; version = "2.4.3"; sha256 = "0j1d0rbcm7pp6dypi61sjxp8l22sv261252z55b243l39jgv2rp3"; })
+]
diff --git a/nixpkgs/pkgs/tools/graphics/aaphoto/default.nix b/nixpkgs/pkgs/tools/graphics/aaphoto/default.nix
new file mode 100644
index 000000000000..744985acfd59
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/aaphoto/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchurl
+, jasper
+, libpng
+, libjpeg
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "aaphoto";
+  version = "0.45";
+
+  src = fetchurl {
+    url = "http://log69.com/downloads/aaphoto_sources_${version}.tar.gz";
+    sha256 = "sha256-06koJM7jNVFqVgqg6BmOZ74foqk6yjUIFnwULzPZ4go=";
+  };
+
+  buildInputs = [
+    jasper
+    libpng
+    libjpeg
+    zlib
+  ];
+
+  postInstall = ''
+    install -Dm644 NEWS README REMARKS TODO -t $out/share/doc/${pname}
+  '';
+
+  meta = with lib; {
+    homepage = "http://log69.com/aaphoto_en.html";
+    description = "Free and open source automatic photo adjusting software";
+    longDescription = ''
+      Auto Adjust Photo tries to give a solution for the automatic color
+      correction of photos. This means setting the contrast, color balance,
+      saturation and gamma levels of the image by analization.
+
+      This can be a solution for those kind of users who are not able to manage
+      and correct images with complicated graphical softwares, or just simply
+      don't intend to spend a lot of time with manually correcting the images
+      one-by-one.
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+    broken = stdenv.isDarwin; # aaphoto.c:237:10: fatal error: 'omp.h' file not found
+  };
+}
diff --git a/nixpkgs/pkgs/tools/graphics/agi/default.nix b/nixpkgs/pkgs/tools/graphics/agi/default.nix
index 7aaf28764d2b..f1fcf458e63d 100644
--- a/nixpkgs/pkgs/tools/graphics/agi/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/agi/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "agi";
-  version = "2.1.0-dev-20210820";
+  version = "2.1.0-dev-20210924";
 
   src = fetchzip {
     url = "https://github.com/google/agi-dev-releases/releases/download/v${version}/agi-${version}-linux.zip";
-    sha256 = "sha256-XsjWrih+8D3z1I41N5ZoLar/+5FV9mPN9aMbyZK2m/0=";
+    sha256 = "sha256-OX26qoyJMG54BA/62GbGRjqdYA7n56SUVVOcdyVAGmM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/graphics/argyllcms/default.nix b/nixpkgs/pkgs/tools/graphics/argyllcms/default.nix
index ceca22eca35d..9c17990ee67a 100644
--- a/nixpkgs/pkgs/tools/graphics/argyllcms/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/argyllcms/default.nix
@@ -4,92 +4,97 @@
 
 stdenv.mkDerivation rec {
   pname = "argyllcms";
-  version = "2.2.1";
+  version = "2.3.0";
 
   src = fetchzip {
     # Kind of flacky URL, it was reaturning 406 and inconsistent binaries for a
     # while on me. It might be good to find a mirror
     url = "https://www.argyllcms.com/Argyll_V${version}_src.zip";
-    sha256 = "sha256-umY3wQfG26Okqnw+MCUnlwWTAyJ6MR/FHe5oe61KBh0=";
+    sha256 = "sha256-UNjCcqJgbRSox55OP3pLdKFHY0NPLHEq3nwqvxWre7U=";
   };
 
-  # The contents of this file comes from the Jamtop file from the
-  # root of the ArgyllCMS distribution, rewritten to pick up Nixpkgs
-  # library paths. When ArgyllCMS is updated, make sure that changes
-  # in that file is reflected here.
-  jamTop = writeText "argyllcms_jamtop" ''
-    DESTDIR = "/" ;
-    REFSUBDIR = "share/argyllcms" ;
+  nativeBuildInputs = [ jam unzip ];
 
-    # Keep this DESTDIR anchored to Jamtop. PREFIX is used literally
-    ANCHORED_PATH_VARS = DESTDIR ;
+  postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+    substituteInPlace Jambase \
+      --replace "-m64" ""
+  '';
 
-    # Tell standalone libraries that they are part of Argyll:
-    DEFINES += ARGYLLCMS ;
+  preConfigure = let
+    # The contents of this file comes from the Jamtop file from the
+    # root of the ArgyllCMS distribution, rewritten to pick up Nixpkgs
+    # library paths. When ArgyllCMS is updated, make sure that changes
+    # in that file is reflected here.
+    jamTop = writeText "argyllcms_jamtop" ''
+      DESTDIR = "/" ;
+      REFSUBDIR = "share/argyllcms" ;
 
-    # enable serial instruments & support
-    USE_SERIAL = true ;
+      # Keep this DESTDIR anchored to Jamtop. PREFIX is used literally
+      ANCHORED_PATH_VARS = DESTDIR ;
 
-    # enable fast serial instruments & support
-    USE_FAST_SERIAL = true ;                # (Implicit in USE_SERIAL too)
+      # Tell standalone libraries that they are part of Argyll:
+      DEFINES += ARGYLLCMS ;
 
-    # enable USB instruments & support
-    USE_USB = true ;
+      # enable serial instruments & support
+      USE_SERIAL = true ;
 
-    # enable dummy Demo Instrument (only if code is available)
-    USE_DEMOINST = true ;
+      # enable fast serial instruments & support
+      USE_FAST_SERIAL = true ;                # (Implicit in USE_SERIAL too)
 
-    # enable Video Test Patch Generator and 3DLUT device support
-    # (V2.0.0 and above)
-    USE_VTPGLUT = false ;
+      # enable USB instruments & support
+      USE_USB = true ;
 
-    # enable Printer device support
-    USE_PRINTER = false ;
+      # enable dummy Demo Instrument (only if code is available)
+      USE_DEMOINST = true ;
 
-    # enable CMF Measurement device and accessory support (if present)
-    USE_CMFM = false ;
+      # enable Video Test Patch Generator and 3DLUT device support
+      # (V2.0.0 and above)
+      USE_VTPGLUT = false ;
 
-    # Use ArgyllCMS version of libusb (deprecated - don't use)
-    USE_LIBUSB = false ;
+      # enable Printer device support
+      USE_PRINTER = false ;
 
-    # Compile in graph plotting code (Not fully implemented)
-    USE_PLOT = true ;		# [true]
+      # enable CMF Measurement device and accessory support (if present)
+      USE_CMFM = false ;
 
-    JPEGLIB = ;
-    JPEGINC = ;
-    HAVE_JPEG = true ;
+      # Use ArgyllCMS version of libusb (deprecated - don't use)
+      USE_LIBUSB = false ;
 
-    TIFFLIB = ;
-    TIFFINC = ;
-    HAVE_TIFF = true ;
+      # Compile in graph plotting code (Not fully implemented)
+      USE_PLOT = true ;		# [true]
 
-    PNGLIB = ;
-    PNGINC = ;
-    HAVE_PNG = true ;
+      JPEGLIB = ;
+      JPEGINC = ;
+      HAVE_JPEG = true ;
 
-    ZLIB = ;
-    ZINC = ;
-    HAVE_Z = true ;
+      TIFFLIB = ;
+      TIFFINC = ;
+      HAVE_TIFF = true ;
 
-    SSLLIB = ;
-    SSLINC = ;
-    HAVE_SSL = true ;
+      PNGLIB = ;
+      PNGINC = ;
+      HAVE_PNG = true ;
 
-    LINKFLAGS +=
-      ${lib.concatStringsSep " " (map (x: "-L${x}/lib") buildInputs)}
-      -ldl -lrt -lX11 -lXext -lXxf86vm -lXinerama -lXrandr -lXau -lXdmcp -lXss
-      -ljpeg -ltiff -lpng -lssl ;
-  '';
+      ZLIB = ;
+      ZINC = ;
+      HAVE_Z = true ;
 
-  nativeBuildInputs = [ jam unzip ];
+      SSLLIB = ;
+      SSLINC = ;
+      HAVE_SSL = true ;
 
-  preConfigure = ''
+      LINKFLAGS +=
+        ${lib.concatStringsSep " " (map (x: "-L${x}/lib") buildInputs)}
+        -ldl -lrt -lX11 -lXext -lXxf86vm -lXinerama -lXrandr -lXau -lXdmcp -lXss
+        -ljpeg -ltiff -lpng -lssl ;
+    '';
+  in ''
     cp ${jamTop} Jamtop
     substituteInPlace Makefile --replace "-j 3" "-j $NIX_BUILD_CORES"
     # Remove tiff, jpg and png to be sure the nixpkgs-provided ones are used
     rm -rf tiff jpg png
 
-    unset AR
+    export AR="$AR rusc"
   '';
 
   buildInputs = [
@@ -110,6 +115,9 @@ stdenv.mkDerivation rec {
     mkdir -p $out/etc/udev/rules.d
     sed -i '/udev-acl/d' usb/55-Argyll.rules
     cp -v usb/55-Argyll.rules $out/etc/udev/rules.d/
+
+    sed -i -e 's/^CREATED .*/CREATED "'"$(date -d @$SOURCE_DATE_EPOCH)"'"/g' $out/share/argyllcms/RefMediumGamut.gam
+
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/graphics/astc-encoder/default.nix b/nixpkgs/pkgs/tools/graphics/astc-encoder/default.nix
index d5754c7baeb3..a982d329f90b 100644
--- a/nixpkgs/pkgs/tools/graphics/astc-encoder/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/astc-encoder/default.nix
@@ -31,13 +31,13 @@ with rec {
 
 gccStdenv.mkDerivation rec {
   pname = "astc-encoder";
-  version = "3.2";
+  version = "3.3";
 
   src = fetchFromGitHub {
     owner = "ARM-software";
     repo = "astc-encoder";
     rev = version;
-    sha256 = "sha256-1GVMzM4+viVqurkzJqTL3Yszld5zLmpjygT/z74HMLs=";
+    sha256 = "sha256-5E26QzphF5HwVTH+92S4rT3IUAp9ravT/wxsmaH9IAM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/graphics/blockhash/default.nix b/nixpkgs/pkgs/tools/graphics/blockhash/default.nix
index b3426722f79f..4f63cf90a3ae 100644
--- a/nixpkgs/pkgs/tools/graphics/blockhash/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/blockhash/default.nix
@@ -1,23 +1,23 @@
-{ lib, stdenv, fetchFromGitHub, python2, pkg-config, imagemagick, wafHook }:
+{ lib, stdenv, fetchFromGitHub, python3, pkg-config, imagemagick, wafHook }:
 
 stdenv.mkDerivation rec {
   pname = "blockhash";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "commonsmachinery";
     repo = "blockhash";
     rev = "v${version}";
-    sha256 = "0m7ikppl42iicgmwsb7baajmag7v0p1ab06xckifvrr0zm21bq9p";
+    sha256 = "0x3lvhnkb4c3pyq6p81qnnqimz35wpippiac506dgjx3b1848v35";
   };
 
-  nativeBuildInputs = [ python2 pkg-config wafHook ];
+  nativeBuildInputs = [ python3 pkg-config wafHook ];
   buildInputs = [ imagemagick ];
 
   strictDeps = true;
 
   meta = with lib; {
-    homepage = "http://blockhash.io/";
+    homepage = "https://github.com/commonsmachinery/blockhash";
     description = ''
       This is a perceptual image hash calculation tool based on algorithm
       descibed in Block Mean Value Based Image Perceptual Hashing by Bian Yang,
diff --git a/nixpkgs/pkgs/tools/graphics/escrotum/default.nix b/nixpkgs/pkgs/tools/graphics/escrotum/default.nix
index 6a0a2b2683d9..08136f57ef88 100644
--- a/nixpkgs/pkgs/tools/graphics/escrotum/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/escrotum/default.nix
@@ -1,18 +1,35 @@
-{ lib, python2Packages, fetchFromGitHub
+{ lib, python3Packages, fetchFromGitHub
+, gtk3
+, pango
+, gobject-introspection
+, wrapGAppsHook
 }:
 
-with python2Packages; buildPythonApplication {
+with python3Packages; buildPythonApplication {
   pname = "escrotum";
-  version = "unstable-2019-06-10";
+  version = "unstable-2020-12-07";
 
   src = fetchFromGitHub {
     owner  = "Roger";
     repo   = "escrotum";
-    rev    = "f6c300315cb4402e37f16b56aad2d206e24c5281";
-    sha256 = "0x7za74lkwn3v6j9j04ifgdwdlx9akh1izkw7vkkzj9ag9qjrzb0";
+    rev    = "a41d0f11bb6af4f08e724b8ccddf8513d905c0d1";
+    sha256 = "sha256-z0AyTbOEE60j/883X17mxgoaVlryNtn0dfEB0C18G2s=";
   };
 
-  propagatedBuildInputs = [ pygtk numpy ];
+  buildInputs = [
+    gtk3
+    pango
+  ];
+
+  nativeBuildInputs = [
+    gobject-introspection
+    wrapGAppsHook
+  ];
+
+  propagatedBuildInputs = [ pygobject3 xcffib pycairo numpy ];
+
+  # Cannot find pango without strictDeps = false
+  strictDeps = false;
 
   outputs = [ "out" "man" ];
 
diff --git a/nixpkgs/pkgs/tools/graphics/facedetect/default.nix b/nixpkgs/pkgs/tools/graphics/facedetect/default.nix
index 26a9b3e24bd5..d62f077e06d7 100644
--- a/nixpkgs/pkgs/tools/graphics/facedetect/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/facedetect/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, python2Packages }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, python3Packages }:
 
 stdenv.mkDerivation rec {
   pname = "facedetect";
@@ -11,14 +11,22 @@ stdenv.mkDerivation rec {
     sha256 = "0mddh71cjbsngpvjli406ndi2x613y39ydgb8bi4z1jp063865sd";
   };
 
-  buildInputs = [ python2Packages.python python2Packages.wrapPython ];
-  pythonPath = [ python2Packages.numpy python2Packages.opencv4 ];
+  patches = [
+    (fetchpatch {
+      name = "python3-support.patch";
+      url = "https://gitlab.com/wavexx/facedetect/-/commit/8037d4406eb76dd5c106819f72c3562f8b255b5b.patch";
+      sha256 = "1752k37pbkigiwglx99ba9360ahzzrrb65a8d77k3xs4c3bcmk2p";
+    })
+  ];
+
+  buildInputs = [ python3Packages.python python3Packages.wrapPython ];
+  pythonPath = [ python3Packages.numpy python3Packages.opencv4 ];
 
   dontConfigure = true;
 
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace facedetect \
-      --replace /usr/share/opencv "${python2Packages.opencv4}/share/opencv4"
+      --replace /usr/share/opencv "${python3Packages.opencv4}/share/opencv4"
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/graphics/fgallery/default.nix b/nixpkgs/pkgs/tools/graphics/fgallery/default.nix
index 484a11e322a2..66f8d8d84100 100644
--- a/nixpkgs/pkgs/tools/graphics/fgallery/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/fgallery/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Static photo gallery generator";
-    homepage = "http://www.thregr.org/~wavexx/software/fgallery/";
+    homepage = "https://www.thregr.org/~wavexx/software/fgallery/";
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = [ maintainers.bjornfor ];
diff --git a/nixpkgs/pkgs/tools/graphics/flam3/default.nix b/nixpkgs/pkgs/tools/graphics/flam3/default.nix
index bd959e3227e7..01e3693259a5 100644
--- a/nixpkgs/pkgs/tools/graphics/flam3/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/flam3/default.nix
@@ -1,24 +1,42 @@
-{lib, stdenv, fetchFromGitHub, zlib, libpng, libxml2, libjpeg }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, libjpeg
+, libpng
+, libxml2
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "flam3";
-  version = "3.1.1-${lib.strings.substring 0 7 rev}";
-  rev = "e0801543538451234d7a8a240ba3b417cbda5b21";
+  version = "3.1.1+date=2018-04-12";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "scottdraves";
     repo = pname;
-    sha256 = "18iyj16k0sn3fs52fj23lj31xi4avlddhbib6kk309576nlxp17w";
+    rev = "7fb50c82e90e051f00efcc3123d0e06de26594b2";
+    hash = "sha256-cKRfmTcyWY2LyxqojTzxD2wnxu5eh3emHi51bhS3gYg=";
   };
 
-  buildInputs = [ zlib libpng libxml2 libjpeg ];
+  buildInputs = [
+    libjpeg
+    libpng
+    libxml2
+    zlib
+  ];
 
   meta = with lib; {
-    description = "Cosmic recursive fractal flames";
     homepage = "https://flam3.com/";
-    maintainers = with maintainers; [ ];
-    platforms = platforms.linux;
+    description = "Cosmic recursive fractal flames";
+    longDescription = ''
+      Flames are algorithmically generated images and animations. The software
+      was originally written in 1992 and released as open source, aka free
+      software. Over the years it has been greatly expanded, and is now widely
+      used to create art and special effects. The shape and color of each image
+      is specified by a long string of numbers - a genetic code of sorts.
+    '';
     license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/gifski/default.nix b/nixpkgs/pkgs/tools/graphics/gifski/default.nix
index f79b15a9890a..fcbed6d4fa13 100644
--- a/nixpkgs/pkgs/tools/graphics/gifski/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/gifski/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gifski";
-  version = "1.4.3";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "ImageOptim";
     repo = "gifski";
     rev = version;
-    sha256 = "034csv43vc0q2ycwjfskv1zx08c40ykf1m22fh9wvms0860k2ysn";
+    sha256 = "sha256-x2p+6m1pwXhmI9JvGUgLhxrGwpJa/e2wb5wOFdKQ2xg=";
   };
 
-  cargoSha256 = "0jgwf30gqwwpaf2g5zbsglcmsa00vixrnlizvcd41afi1wkjgiyd";
+  cargoSha256 = "sha256-8t7VhPby56UX2LlD2xcJKkWamuJxN9LiVEQPEa78EQQ=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/graphics/glmark2/default.nix b/nixpkgs/pkgs/tools/graphics/glmark2/default.nix
index 642944812577..9615b57e0c1a 100644
--- a/nixpkgs/pkgs/tools/graphics/glmark2/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/glmark2/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "glmark2";
-  version = "2021.02";
+  version = "2021.12";
 
   src = fetchFromGitHub {
     owner = "glmark2";
     repo = "glmark2";
     rev = version;
-    sha256 = "1a75gg1dn03d3jq7n74wsw7kc14ildbb8azzbj4k28xik1m6khr9";
+    sha256 = "sha256-S6KkazkG+kdx02MPwrYvCFWSOtM6t5xT0OTE9PLCzas=";
   };
 
   nativeBuildInputs = [ pkg-config wafHook makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/graphics/gmic/default.nix b/nixpkgs/pkgs/tools/graphics/gmic/default.nix
index d12a213a31e5..a046aca799c9 100644
--- a/nixpkgs/pkgs/tools/graphics/gmic/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/gmic/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gmic";
-  version = "2.9.8";
+  version = "3.0.0";
 
   outputs = [ "out" "lib" "dev" "man" ];
 
   src = fetchurl {
     url = "https://gmic.eu/files/source/gmic_${version}.tar.gz";
-    sha256 = "sha256-GNa7xzGuO02oplasGJR2eTsRGp3Rn3LbIxLwdN983II=";
+    sha256 = "sha256-PwVruebb8GdK9Mjc5Z9BmBchh2Yvf7s2zGPryMG3ESA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/graphics/gnuplot/default.nix b/nixpkgs/pkgs/tools/graphics/gnuplot/default.nix
index 741468dfd994..c6c90442ddce 100644
--- a/nixpkgs/pkgs/tools/graphics/gnuplot/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/gnuplot/default.nix
@@ -58,8 +58,6 @@ in
        --prefix PATH : '${coreutils}/bin' \
        --prefix PATH : '${fontconfig.bin}/bin' \
        --run '. ${./set-gdfontpath-from-fontconfig.sh}'
-  '' + lib.optionalString (stdenv.isDarwin && withQt) ''
-     wrapQtApp $out/bin/gnuplot
   '';
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/tools/graphics/goverlay/default.nix b/nixpkgs/pkgs/tools/graphics/goverlay/default.nix
index 2296743694ee..e1e5c36ee8bc 100644
--- a/nixpkgs/pkgs/tools/graphics/goverlay/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/goverlay/default.nix
@@ -5,19 +5,23 @@
 , fetchFromGitHub
 , fpc
 , lazarus-qt
-, qt5
-, libX11
+, wrapQtAppsHook
+, breeze-qt5
+, libGL
+, libGLU
 , libqt5pas
+, libX11
 , coreutils
 , git
 , gnugrep
 , libnotify
-, mesa-demos
 , polkit
 , procps
 , systemd
+, util-linux
 , vulkan-tools
 , which
+, nix-update-script
 }:
 
 let
@@ -34,13 +38,13 @@ let
   '';
 in stdenv.mkDerivation rec {
   pname = "goverlay";
-  version = "0.6";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "benjamimgois";
     repo = pname;
     rev = version;
-    hash = "sha256-E4SMUL9rpDSSdprX4fPyGCHCowdQavjhGIhV3r4jeiw=";
+    sha256 = "sha256-oXkGrMHjs8uui0pzGYW8jnttet/5IX0r8eat0n5saFk=";
   };
 
   outputs = [ "out" "man" ];
@@ -61,15 +65,18 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [
     fpc
     lazarus-qt
-    qt5.wrapQtAppsHook
+    wrapQtAppsHook
   ];
 
   buildInputs = [
-    libX11
+    breeze-qt5
+    libGL
+    libGLU
     libqt5pas
+    libX11
   ];
 
-  NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath buildInputs}";
+  NIX_LDFLAGS = "-lGLU -rpath ${lib.makeLibraryPath buildInputs}";
 
   buildPhase = ''
     runHook preBuild
@@ -85,10 +92,10 @@ in stdenv.mkDerivation rec {
       git
       gnugrep
       libnotify
-      mesa-demos
       polkit
       procps
       systemd
+      util-linux.bin
       vulkan-tools
       which
     ]}"
@@ -98,6 +105,10 @@ in stdenv.mkDerivation rec {
     "--set QT_QPA_PLATFORM xcb"
   ];
 
+  passthru.updateScript = nix-update-script {
+    attrPath = pname;
+  };
+
   meta = with lib; {
     description = "An opensource project that aims to create a Graphical UI to help manage Linux overlays";
     homepage = "https://github.com/benjamimgois/goverlay";
diff --git a/nixpkgs/pkgs/tools/graphics/goverlay/find-xdg-data-files.patch b/nixpkgs/pkgs/tools/graphics/goverlay/find-xdg-data-files.patch
index 51d4dcdc54ed..17ba9ed1140e 100644
--- a/nixpkgs/pkgs/tools/graphics/goverlay/find-xdg-data-files.patch
+++ b/nixpkgs/pkgs/tools/graphics/goverlay/find-xdg-data-files.patch
@@ -1,8 +1,8 @@
 diff --git a/overlayunit.pas b/overlayunit.pas
-index de8725f..005f171 100644
+index 97a088d..4c42414 100644
 --- a/overlayunit.pas
 +++ b/overlayunit.pas
-@@ -5377,7 +5377,7 @@ begin
+@@ -5007,7 +5007,7 @@ begin
     //Determine Mangohud dependency status
  
            //locate MangoHud and store result in tmp folder
@@ -11,7 +11,7 @@ index de8725f..005f171 100644
  
            // Assign Text file dependency_mangohud to variable mangohudVAR
            AssignFile(mangohudVAR, '/tmp/goverlay/dependency_mangohud');
-@@ -5386,7 +5386,7 @@ begin
+@@ -5016,7 +5016,7 @@ begin
            CloseFile(mangohudVAR);
  
            // Read String and store value on mangohuddependencyVALUE based on result
@@ -20,7 +20,7 @@ index de8725f..005f171 100644
            mangohuddependencyVALUE := 1
            else
            mangohuddependencyVALUE := 0;
-@@ -5395,7 +5395,7 @@ begin
+@@ -5025,7 +5025,7 @@ begin
     //Determine vkBasalt dependency staus
  
             //locate vkBasalt and store result in tmp folder
@@ -29,7 +29,7 @@ index de8725f..005f171 100644
  
             // Assign Text file dependency_mangohud to variable mangohudVAR
             AssignFile(vkbasaltVAR, '/tmp/goverlay/dependency_vkbasalt');
-@@ -5404,7 +5404,7 @@ begin
+@@ -5034,7 +5034,7 @@ begin
             CloseFile(vkbasaltVAR);
  
             // Read String and store value on vkbasaltdependencyVALUE based on result
diff --git a/nixpkgs/pkgs/tools/graphics/graphviz/2.32.nix b/nixpkgs/pkgs/tools/graphics/graphviz/2.32.nix
deleted file mode 100644
index 544949f33b71..000000000000
--- a/nixpkgs/pkgs/tools/graphics/graphviz/2.32.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-import ./base.nix {
-  rev = "10c3c34c5198beacfba950764f34960c6884a34f";
-  version = "2.32.0";
-  sha256 = "18b2wnz6xk8hndy7dlr1vn9vziyryyflh747n9966778gmh8bick";
-}
diff --git a/nixpkgs/pkgs/tools/graphics/graphviz/base.nix b/nixpkgs/pkgs/tools/graphics/graphviz/base.nix
deleted file mode 100644
index f225f2196cc8..000000000000
--- a/nixpkgs/pkgs/tools/graphics/graphviz/base.nix
+++ /dev/null
@@ -1,96 +0,0 @@
-{ rev, sha256, version }:
-
-{ lib, stdenv, fetchFromGitLab, autoreconfHook, pkg-config, cairo, expat, flex
-, fontconfig, gd, gettext, gts, libdevil, libjpeg, libpng, libtool, pango
-, bison, fetchpatch, xorg, ApplicationServices, python3 }:
-
-let
-  inherit (lib) optional optionals optionalString;
-  raw_patch =
-    # https://gitlab.com/graphviz/graphviz/issues/1367 CVE-2018-10196
-    fetchpatch {
-      name = "CVE-2018-10196.patch";
-      url = "https://gitlab.com/graphviz/graphviz/uploads/30f8f0b00e357c112ac35fb20241604a/p.diff";
-      sha256 = "074qx6ch9blrnlilmz7p96fkiz2va84x2fbqdza5k4808rngirc7";
-      excludes = ["tests/*"]; # we don't run them and they don't apply
-    };
-  # the patch needs a small adaption for older versions
-  patchToUse = if lib.versionAtLeast version "2.37" then raw_patch else
-  stdenv.mkDerivation {
-    inherit (raw_patch) name;
-    buildCommand = "sed s/dot_root/agroot/g ${raw_patch} > $out";
-  };
-  # 2.42 has the patch included
-  patches = optional (lib.versionOlder version "2.42") patchToUse
-  ++ optionals (lib.versionOlder version "2.46.0") [
-    (fetchpatch {
-      name = "CVE-2020-18032.patch";
-      url = "https://gitlab.com/graphviz/graphviz/-/commit/784411ca3655c80da0f6025ab20634b2a6ff696b.patch";
-      sha256 = "1nkw9ism8lkfvxsp5fh95i2l5s5cbjsidbb3g1kjfv10rxkyb41m";
-    })
-  ];
-in
-
-stdenv.mkDerivation {
-  pname = "graphviz";
-  inherit version;
-
-  src = fetchFromGitLab {
-    owner = "graphviz";
-    repo = "graphviz";
-    inherit sha256 rev;
-  };
-
-  nativeBuildInputs = [ autoreconfHook pkg-config python3 ];
-
-  buildInputs = [
-    libpng libjpeg expat bison libtool fontconfig gd gts libdevil flex pango
-    gettext
-  ] ++ optionals (xorg != null) (with xorg; [ libXrender libXaw libXpm ])
-    ++ optionals (stdenv.isDarwin) [ ApplicationServices ];
-
-  hardeningDisable = [ "fortify" ];
-
-  CPPFLAGS = lib.optionalString (xorg != null && stdenv.isDarwin)
-    "-I${cairo.dev}/include/cairo";
-
-  configureFlags = [
-    "--with-ltdl-lib=${libtool.lib}/lib"
-    "--with-ltdl-include=${libtool}/include"
-  ] ++ lib.optional (xorg == null) "--without-x";
-
-  inherit patches;
-
-  postPatch = ''
-    for f in $(find . -name Makefile.in); do
-      substituteInPlace $f --replace "-lstdc++" "-lc++"
-    done
-  '';
-
-  # ''
-  #   substituteInPlace rtest/rtest.sh \
-  #     --replace "/bin/ksh" "${mksh}/bin/mksh"
-  # '';
-
-  doCheck = false; # fails with "Graphviz test suite requires ksh93" which is not in nixpkgs
-
-  preAutoreconf = "./autogen.sh";
-
-  postFixup = optionalString (xorg != null) ''
-    substituteInPlace $out/bin/dotty --replace '`which lefty`' $out/bin/lefty
-    substituteInPlace $out/bin/vimdot \
-      --replace /usr/bin/vi '$(command -v vi)' \
-      --replace /usr/bin/vim '$(command -v vim)' \
-      --replace /usr/bin/vimdot $out/bin/vimdot \
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    homepage = "https://graphviz.org";
-    description = "Graph visualization tools";
-    license = licenses.epl10;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ bjornfor raskin ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/graphics/graphviz/default.nix b/nixpkgs/pkgs/tools/graphics/graphviz/default.nix
index 5031aad7480d..e2c5f9f63fc5 100644
--- a/nixpkgs/pkgs/tools/graphics/graphviz/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/graphviz/default.nix
@@ -1,5 +1,114 @@
-import ./base.nix rec {
-  rev = "887cd2207e6858ff2c0fe6e461dd309a435c8d5a"; # use rev as tags have disappeared before
-  version = "2.47.3";
-  sha256 = "sha256-WUu3eAycG/oHTnT7HiZvf0B45I8miYolwRi9fHfA3uA=";
- }
+{ lib
+, stdenv
+, fetchFromGitLab
+, autoreconfHook
+, pkg-config
+, cairo
+, expat
+, flex
+, fontconfig
+, gd
+, gts
+, libdevil
+, libjpeg
+, libpng
+, libtool
+, pango
+, bash
+, bison
+, fetchpatch
+, xorg
+, ApplicationServices
+, python3
+, withXorg ? true
+}:
+
+let
+  inherit (lib) optional optionals optionalString;
+in
+stdenv.mkDerivation {
+  pname = "graphviz";
+  version = "2.49.3";
+
+  src = fetchFromGitLab {
+    owner = "graphviz";
+    repo = "graphviz";
+    # use rev as tags have disappeared before
+    rev = "3425dae078262591d04fec107ec71ab010651852";
+    sha256 = "1qvyjly7r1ihacdvxq0r59l4csr09sc05palpshzqsiz2wb1izk0";
+  };
+
+  patches = [
+    # Fix cross.
+    # https://gitlab.com/graphviz/graphviz/-/merge_requests/2281
+    # Remove when version > 2.49.3.
+    (fetchpatch {
+      url = "https://gitlab.com/graphviz/graphviz/-/commit/0cdb89acbb0caf5baf3d04a8821c9d0dfe065ea8.patch";
+      sha256 = "130mqlxzhzaz3vp4ccaq7z7fd9q6vjxmimz70g8y818igsbb13rf";
+    })
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    python3
+    bison
+    flex
+  ];
+
+  buildInputs = [
+    libpng
+    libjpeg
+    expat
+    fontconfig
+    gd
+    gts
+    libdevil
+    pango
+    bash
+  ] ++ optionals withXorg (with xorg; [ libXrender libXaw libXpm ])
+  ++ optionals stdenv.isDarwin [ ApplicationServices ];
+
+  hardeningDisable = [ "fortify" ];
+
+  configureFlags = [
+    "--with-ltdl-lib=${libtool.lib}/lib"
+    "--with-ltdl-include=${libtool}/include"
+  ] ++ lib.optional (xorg == null) "--without-x";
+
+  enableParallelBuilding = true;
+
+  CPPFLAGS = lib.optionalString (withXorg && stdenv.isDarwin)
+    "-I${cairo.dev}/include/cairo";
+
+  # ''
+  #   substituteInPlace rtest/rtest.sh \
+  #     --replace "/bin/ksh" "${mksh}/bin/mksh"
+  # '';
+
+  doCheck = false; # fails with "Graphviz test suite requires ksh93" which is not in nixpkgs
+
+  postPatch = ''
+    for f in $(find . -name Makefile.in); do
+      substituteInPlace $f --replace "-lstdc++" "-lc++"
+    done
+  '';
+
+  preAutoreconf = "./autogen.sh";
+
+  postFixup = optionalString withXorg ''
+    substituteInPlace $out/bin/dotty --replace '`which lefty`' $out/bin/lefty
+    substituteInPlace $out/bin/vimdot \
+      --replace /usr/bin/vi '$(command -v vi)' \
+      --replace /usr/bin/vim '$(command -v vim)' \
+      --replace /usr/bin/vimdot $out/bin/vimdot \
+  '';
+
+  meta = with lib; {
+    homepage = "https://graphviz.org";
+    description = "Graph visualization tools";
+    license = licenses.epl10;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ bjornfor raskin ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/graphics/gromit-mpx/default.nix b/nixpkgs/pkgs/tools/graphics/gromit-mpx/default.nix
index 710ed04006c4..9af99a58098b 100644
--- a/nixpkgs/pkgs/tools/graphics/gromit-mpx/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/gromit-mpx/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config
 , gtk, glib, pcre, libappindicator, libpthreadstubs, libXdmcp
-, libxkbcommon, epoxy, at-spi2-core, dbus, libdbusmenu
+, libxkbcommon, libepoxy, at-spi2-core, dbus, libdbusmenu
 , wrapGAppsHook
 }:
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config wrapGAppsHook ];
   buildInputs = [
     gtk glib pcre libappindicator libpthreadstubs
-    libXdmcp libxkbcommon epoxy at-spi2-core
+    libXdmcp libxkbcommon libepoxy at-spi2-core
     dbus libdbusmenu
   ];
 
diff --git a/nixpkgs/pkgs/tools/graphics/ibniz/default.nix b/nixpkgs/pkgs/tools/graphics/ibniz/default.nix
index 227ab5d082dc..a74267846c1d 100644
--- a/nixpkgs/pkgs/tools/graphics/ibniz/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/ibniz/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Virtual machine designed for extremely compact low-level audiovisual programs";
-    homepage = "http://www.pelulamu.net/ibniz/";
+    homepage = "https://github.com/viznut/IBNIZ";
     license = licenses.zlib;
     platforms = platforms.linux;
     maintainers = [ maintainers.dezgeg ];
diff --git a/nixpkgs/pkgs/tools/graphics/imageworsener/default.nix b/nixpkgs/pkgs/tools/graphics/imageworsener/default.nix
index 120643ddde05..126bcfefc80d 100644
--- a/nixpkgs/pkgs/tools/graphics/imageworsener/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/imageworsener/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "imageworsener";
-  version = "1.3.3";
+  version = "1.3.4";
 
   src = fetchurl {
     url = "https://entropymine.com/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "099ymaqk7gj0plmdx7fxabbdx2n03d25r00ly0vf6cx37mgnwjvw";
+    sha256 = "1dhjhlfrdng50dxxd306adzm54ir62pz99h4v0yi6rg56nxv5q5s";
   };
 
   postPatch = ''
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     homepage = "https://entropymine.com/imageworsener/";
     changelog = "https://github.com/jsummers/${pname}/blob/${version}/changelog.txt";
     license = licenses.mit;
-    maintainers = with maintainers; [ emily ];
+    maintainers = with maintainers; [ emily smitop ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/ldgallery/default.nix b/nixpkgs/pkgs/tools/graphics/ldgallery/default.nix
index 84d179374ae8..1b620656ce5a 100644
--- a/nixpkgs/pkgs/tools/graphics/ldgallery/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/ldgallery/default.nix
@@ -1,7 +1,7 @@
 { lib, pkgs, makeWrapper, haskellPackages, haskell, pandoc, imagemagick, CoreServices }:
 
 with lib;
-with haskell.lib;
+with haskell.lib.compose;
 
 let
   ldgallery-viewer = pkgs.callPackage ./viewer { inherit CoreServices; };
@@ -12,7 +12,7 @@ in
 # making sure that the versions of the compiler and viewer parts are in sync
 assert ldgallery-compiler.version == versions.majorMinor ldgallery-viewer.version;
 
-justStaticExecutables (overrideCabal ldgallery-compiler (oldAttrs: {
+justStaticExecutables (overrideCabal (oldAttrs: {
   pname = "ldgallery"; # bundled viewer + compiler
 
   buildTools = (oldAttrs.buildTools or []) ++ [ makeWrapper pandoc ];
@@ -50,4 +50,4 @@ justStaticExecutables (overrideCabal ldgallery-compiler (oldAttrs: {
 
   # other package metadata (maintainer, description, license, ...)
   # are inherited from the compiler package
-}))
+}) ldgallery-compiler)
diff --git a/nixpkgs/pkgs/tools/graphics/ldgallery/viewer/node-composition.nix b/nixpkgs/pkgs/tools/graphics/ldgallery/viewer/node-composition.nix
index aaf54a05c884..02fdb925fb1b 100644
--- a/nixpkgs/pkgs/tools/graphics/ldgallery/viewer/node-composition.nix
+++ b/nixpkgs/pkgs/tools/graphics/ldgallery/viewer/node-composition.nix
@@ -6,7 +6,7 @@
 
 let
   nodeEnv = import ../../../../development/node-packages/node-env.nix {
-    inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
+    inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
     inherit pkgs nodejs;
     libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
   };
diff --git a/nixpkgs/pkgs/tools/graphics/netpbm/default.nix b/nixpkgs/pkgs/tools/graphics/netpbm/default.nix
index dea9aa6d97ed..fc7d909ca0dd 100644
--- a/nixpkgs/pkgs/tools/graphics/netpbm/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/netpbm/default.nix
@@ -20,14 +20,14 @@ stdenv.mkDerivation {
   # Determine version and revision from:
   # https://sourceforge.net/p/netpbm/code/HEAD/log/?path=/advanced
   pname = "netpbm";
-  version = "10.92.0";
+  version = "10.96.2";
 
   outputs = [ "bin" "out" "dev" ];
 
   src = fetchsvn {
     url = "https://svn.code.sf.net/p/netpbm/code/advanced";
-    rev = "3972";
-    sha256 = "09fpy4n4f867j23pr3b719wpvp8hjrr4drxp0r1csw74p8j6vfy3";
+    rev = "4158";
+    sha256 = "NK8GXCvCEnbQJWvVngB5UMOVmfsiyU4Fq0JIY9UNSjo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/graphics/oxipng/default.nix b/nixpkgs/pkgs/tools/graphics/oxipng/default.nix
index eab3996811ef..d081b7eee816 100644
--- a/nixpkgs/pkgs/tools/graphics/oxipng/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/oxipng/default.nix
@@ -1,15 +1,15 @@
 { lib, stdenv, fetchCrate, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
-  version = "5.0.0";
+  version = "5.0.1";
   pname = "oxipng";
 
   src = fetchCrate {
     inherit version pname;
-    sha256 = "sha256-rTAY+3ViPkOsRjT9FHKnVOEGfLscuBdMAiQq+N9PRNU=";
+    sha256 = "1g2m6ifmppgq086w3vzdsihnba4qrzmnf5k13bgah2qasnl97qfh";
   };
 
-  cargoSha256 = "sha256-Z5tA2bUE/5qGKXP2hIKo6tBegaSUALRzEZ/Xext3EWY=";
+  cargoSha256 = "1dkfplmi21wgks8pfxxc3kww89i9wq7fq5j7jm7a8zi59p3xdars";
 
   doCheck = !stdenv.isAarch64 && !stdenv.isDarwin;
 
diff --git a/nixpkgs/pkgs/tools/graphics/pdfredacttools/default.nix b/nixpkgs/pkgs/tools/graphics/pdfredacttools/default.nix
deleted file mode 100644
index 0a1cc111b541..000000000000
--- a/nixpkgs/pkgs/tools/graphics/pdfredacttools/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, fetchFromGitHub, python2Packages, imagemagick, exiftool, file, ghostscript }:
-
-python2Packages.buildPythonApplication rec {
-  pname = "pdf-redact-tools";
-  version = "0.1.2";
-
-  src = fetchFromGitHub {
-    owner = "firstlookmedia";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "01vs1bc0pfgk6x2m36vwra605fg59yc31d0hl9jmj86n8q6wwvss";
-  };
-
-  patchPhase = ''substituteInPlace pdf-redact-tools      \
-    --replace \'convert\' \'${imagemagick}/bin/convert\' \
-    --replace \'exiftool\' \'${exiftool}/bin/exiftool\'  \
-    --replace \'file\' \'${file}/bin/file\'
-   '';
-
-  propagatedBuildInputs = [ imagemagick exiftool ghostscript ];
-
-  meta = with lib; {
-    description = "Redact and strip metadata from documents before publishing";
-    longDescription = ''
-        PDF Redact Tools helps with securely redacting and stripping metadata
-        from documents before publishing. Note that this is not a security tool.
-        It uses ImageMagick to parse PDFs.  While ImageMagick is a versatile tool, it has
-        a history of several security bugs. A malicious PDF could exploit a bug in
-        ImageMagick to take over your computer. If you're working with potentially
-        malicious PDFs, it's safest to run them through PDF Redact Tools in an isolated
-        environment, such as a virtual machine, or by using a tool such as the Qubes
-        PDF Converter instead.
-    '';
-    platforms = platforms.all;
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ leenaars ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/graphics/pdftoipe/default.nix b/nixpkgs/pkgs/tools/graphics/pdftoipe/default.nix
new file mode 100644
index 000000000000..950e82e38657
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/pdftoipe/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, poppler
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pdftoipe";
+  version = "7.2.24.1";
+
+  src = fetchFromGitHub {
+    owner = "otfried";
+    repo = "ipe-tools";
+    rev = "v${version}";
+    sha256 = "jlrjrjzZQo79CKMySayhCm1dqLh89wOQuXrXa2aqc0k=";
+  };
+  sourceRoot = "source/pdftoipe";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ poppler ];
+
+  installPhase = ''
+    install -D pdftoipe $out/bin/pdftoipe
+  '';
+
+  meta = with lib; {
+    description = "A program that tries to convert arbitrary PDF documents to Ipe files";
+    homepage = "https://github.com/otfried/ipe-tools";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ yrd ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/graphics/perceptualdiff/default.nix b/nixpkgs/pkgs/tools/graphics/perceptualdiff/default.nix
index 454352986edf..f2281bc5d35f 100644
--- a/nixpkgs/pkgs/tools/graphics/perceptualdiff/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/perceptualdiff/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/myint/perceptualdiff";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ uri-canva ];
-    platforms = platforms.x86;
+    platforms = platforms.unix;
+    broken = stdenv.hostPlatform.system == "aarch64-darwin";
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/pfstools/default.nix b/nixpkgs/pkgs/tools/graphics/pfstools/default.nix
index a81321204757..d815b6ac83e2 100644
--- a/nixpkgs/pkgs/tools/graphics/pfstools/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/pfstools/default.nix
@@ -6,11 +6,11 @@
 
 mkDerivation rec {
   pname = "pfstools";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tgz";
-    sha256 = "04rlb705gmdiphcybf9dyr0d5lla2cfs3c308zz37x0vwi445six";
+    sha256 = "sha256-m/aESYVmMibCGZjutDwmGsuOSziRuakbcpVUQGKJ18o=";
   };
 
   outputs = [ "out" "dev" "man"];
diff --git a/nixpkgs/pkgs/tools/graphics/pngcheck/default.nix b/nixpkgs/pkgs/tools/graphics/pngcheck/default.nix
index 266b85c54c54..a4680dff6f64 100644
--- a/nixpkgs/pkgs/tools/graphics/pngcheck/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/pngcheck/default.nix
@@ -11,6 +11,10 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace Makefile.unx --replace "gcc" "clang"
+  '';
+
   makefile = "Makefile.unx";
   makeFlags = [ "ZPATH=${zlib.static}/lib" ];
 
@@ -21,10 +25,11 @@ stdenv.mkDerivation rec {
     cp pngcheck $out/bin/pngcheck
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "http://pmt.sourceforge.net/pngcrush";
     description = "Verifies the integrity of PNG, JNG and MNG files";
-    license = lib.licenses.free;
-    platforms = with lib.platforms; linux;
+    license = licenses.free;
+    platforms = with platforms; [ unix ];
+    maintainers = with maintainers; [ starcraft66 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/pngout/default.nix b/nixpkgs/pkgs/tools/graphics/pngout/default.nix
index c2de8a4fb2ae..b6f19d2390e1 100644
--- a/nixpkgs/pkgs/tools/graphics/pngout/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/pngout/default.nix
@@ -1,34 +1,49 @@
-{lib, stdenv, fetchurl}:
+{ lib
+, stdenv
+, fetchurl
+, unzip
+}:
 
 let
-  folder = if stdenv.hostPlatform.system == "i686-linux" then "i686"
-  else if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64"
-  else throw "Unsupported system: ${stdenv.hostPlatform.system}";
+  platforms = {
+    aarch64-linux = { folder = "aarch64"; ld-linux = "ld-linux-aarch64.so.1"; };
+    armv7l-linux = { folder = "armv7"; ld-linux = "ld-linux-armhf.so.3"; };
+    i686-linux = { folder = "i686"; ld-linux = "ld-linux.so.2"; };
+    x86_64-darwin = { folder = "."; };
+    x86_64-linux = { folder = "amd64"; ld-linux = "ld-linux-x86-64.so.2"; };
+  };
+  platform = platforms."${stdenv.hostPlatform.system}"
+    or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+  download = if stdenv.isDarwin
+    then { extension = "macos.zip"; hash = "sha256-MnL6lH7q/BrACG4fFJNfnvoh0JClVeaJIlX+XIj2aG4="; }
+    else { extension = "linux.tar.gz"; hash = "sha256-rDi7pvDeKQM96GZTjDr6ZDQTGbaVu+OI77xf2egw6Sg="; };
 in
 stdenv.mkDerivation rec {
   pname = "pngout";
-  version = "20150319";
+  version = "20200115";
 
   src = fetchurl {
-    url = "http://static.jonof.id.au/dl/kenutils/pngout-${version}-linux.tar.gz";
-    sha256 = "0iwv941hgs2g7ljpx48fxs24a70m2whrwarkrb77jkfcd309x2h7";
+    inherit (download) hash;
+    url = "http://static.jonof.id.au/dl/kenutils/pngout-${version}-${download.extension}";
   };
 
+  nativeBuildInputs = lib.optionals stdenv.isDarwin [ unzip ];
+
+  # pngout is code-signed on Darwin, so don’t alter the binary to avoid breaking the signature.
+  dontFixup = stdenv.isDarwin;
+
   installPhase = ''
     mkdir -p $out/bin
-    cp ${folder}/pngout $out/bin
-
-    ${if stdenv.hostPlatform.system == "i686-linux" then ''
-        patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2 $out/bin/pngout
-      '' else if stdenv.hostPlatform.system == "x86_64-linux" then ''
-        patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux-x86-64.so.2 $out/bin/pngout
-      '' else ""}
+    cp ${platform.folder}/pngout $out/bin
+  '' + lib.optionalString stdenv.isLinux ''
+    patchelf --set-interpreter ${stdenv.glibc.out}/lib/${platform.ld-linux} $out/bin/pngout
   '';
 
   meta = {
     description = "A tool that aggressively optimizes the sizes of PNG images";
-    license = lib.licenses.unfree;
+    license = lib.licenses.unfreeRedistributable;
     homepage = "http://advsys.net/ken/utils.htm";
+    platforms = lib.attrNames platforms;
     maintainers = [ lib.maintainers.sander ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/pngquant/default.nix b/nixpkgs/pkgs/tools/graphics/pngquant/default.nix
index b2b0691718a9..267f2ae217c1 100644
--- a/nixpkgs/pkgs/tools/graphics/pngquant/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/pngquant/default.nix
@@ -2,18 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "pngquant";
-  version = "2.16.0";
+  version = "2.17.0";
 
   src = fetchFromGitHub {
     owner = "kornelski";
     repo = "pngquant";
     rev = version;
-    sha256 = "0ny6h3fwf6gvzkqkc3zb5mrkqxm6s7xzb6bvzn6vlamklncqgl78";
+    sha256 = "sha256-D2KNn6AJ4eIHeb/2Oo1Wf0djMCXTtVGrua0D6z7+9V4=";
     fetchSubmodules = true;
   };
 
   preConfigure = "patchShebangs .";
 
+  configureFlags = lib.optionals (!stdenv.hostPlatform.isx86) [ "--disable-sse" ];
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ libpng zlib lcms2 ];
 
diff --git a/nixpkgs/pkgs/tools/graphics/pstoedit/default.nix b/nixpkgs/pkgs/tools/graphics/pstoedit/default.nix
index dd5b51041b1f..df3d1c6a6938 100644
--- a/nixpkgs/pkgs/tools/graphics/pstoedit/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/pstoedit/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pstoedit";
-  version = "3.75";
+  version = "3.78";
 
   src = fetchurl {
     url = "mirror://sourceforge/pstoedit/pstoedit-${version}.tar.gz";
-    sha256 = "1kv46g2wsvsvcngkavxl5gnw3l6g5xqnh4kmyx4b39a01d8xiddp";
+    sha256 = "sha256-jMKONLx/iNkTeA+AdOgT3VqqCsIFams21L8ASg6Q2AE=";
   };
 
   #
diff --git a/nixpkgs/pkgs/tools/graphics/qrcode/default.nix b/nixpkgs/pkgs/tools/graphics/qrcode/default.nix
index 93a620b57792..2067d1a97e2e 100644
--- a/nixpkgs/pkgs/tools/graphics/qrcode/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/qrcode/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation {
-  pname = "qrcode-git";
-  version = "20160804";
+  pname = "qrcode";
+  version = "unstable-2016-08-04";
 
   src = fetchFromGitHub {
-    owner  = "qsantos";
-    repo   = "qrcode";
-    rev    = "ad0fdb4aafd0d56b903f110f697abaeb27deee73";
+    owner = "qsantos";
+    repo = "qrcode";
+    rev = "ad0fdb4aafd0d56b903f110f697abaeb27deee73";
     sha256 = "0v81745nx5gny2g05946k8j553j18a29ikmlyh6c3syq6c15k8cf";
   };
 
diff --git a/nixpkgs/pkgs/tools/graphics/resvg/default.nix b/nixpkgs/pkgs/tools/graphics/resvg/default.nix
index 54f3152ebec0..11cdb85ca5fb 100644
--- a/nixpkgs/pkgs/tools/graphics/resvg/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/resvg/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "resvg";
-  version = "0.18.0";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "RazrFalcon";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/r1rTU+te8pKKiPGCHJTTBkg9RZ/N1yFTlaDAhWWxjs=";
+    sha256 = "sha256-pw6qxOpujpljZyDnS7PFFhBbOSTYlX7R7Nn1GyxYQYI=";
   };
 
-  cargoSha256 = "sha256-pHZRKXZo5fyyXjgNTDBZjRiMDOaoCfFUSl53yE2t210=";
+  cargoSha256 = "sha256-Jhco7KdEQOxfHOAPNIHZfAED5LOZD5kelaDSBeuT41E=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
diff --git a/nixpkgs/pkgs/tools/graphics/shotgun/default.nix b/nixpkgs/pkgs/tools/graphics/shotgun/default.nix
index d875b4d313d2..c7692988677b 100644
--- a/nixpkgs/pkgs/tools/graphics/shotgun/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/shotgun/default.nix
@@ -2,7 +2,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shotgun";
-  version = "2.2.0";
+  version = "2.2.1";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -12,10 +12,10 @@ rustPlatform.buildRustPackage rec {
     owner = "neXromancers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0fpc09yvxjcvjkai7afyig4gyc7inaqxxrwzs17mh8wdgzawb6dl";
+    sha256 = "sha256-ClQP/iNs9b4foDUVpH37YCZyjVSgweHLKnSwnpkRwZI=";
   };
 
-  cargoSha256 = "06zplpy480965lhgav984m6wkfijv7cqa49kpramp8b6ws62pikl";
+  cargoSha256 = "sha256-w5s9I7lXO8HN9zHqZQCeqBXSd7jmbsaqMZRwPLnbqNk=";
 
   meta = with lib; {
     description = "Minimal X screenshot utility";
diff --git a/nixpkgs/pkgs/tools/graphics/spirv-cross/default.nix b/nixpkgs/pkgs/tools/graphics/spirv-cross/default.nix
index 19359698f02e..0c5b936093cb 100644
--- a/nixpkgs/pkgs/tools/graphics/spirv-cross/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/spirv-cross/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "spirv-cross";
-  version = "2021-01-15";
+  version = "MoltenVK-1.1.5";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "SPIRV-Cross";
     rev = version;
-    sha256 = "/9/Owt7XcdOjujWZnaG1Q7FlywvsRo8/l8/CouS48Vk=";
+    sha256 = "/t6hAlGY3+bddWg5ERFbqeU4/MAjq+/AEVv1Jy2C0HA=";
   };
 
   nativeBuildInputs = [ cmake python3 ];
diff --git a/nixpkgs/pkgs/tools/graphics/svgcleaner/Cargo.lock b/nixpkgs/pkgs/tools/graphics/svgcleaner/Cargo.lock
deleted file mode 100644
index 8daf4c4f83b5..000000000000
--- a/nixpkgs/pkgs/tools/graphics/svgcleaner/Cargo.lock
+++ /dev/null
@@ -1,256 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "autocfg"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "chrono"
-version = "0.4.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
-dependencies = [
- "libc",
- "num-integer",
- "num-traits",
- "time",
- "winapi",
-]
-
-[[package]]
-name = "clap"
-version = "2.33.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
-dependencies = [
- "bitflags",
- "textwrap",
- "unicode-width",
-]
-
-[[package]]
-name = "error-chain"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3"
-
-[[package]]
-name = "fern"
-version = "0.5.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e69ab0d5aca163e388c3a49d284fed6c3d0810700e77c5ae2756a50ec1a4daaa"
-dependencies = [
- "chrono",
- "log",
-]
-
-[[package]]
-name = "float-cmp"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2be876712b52d3970d361df27210574630d8d44d6461f0b55745d56e88ac10b0"
-dependencies = [
- "num",
-]
-
-[[package]]
-name = "libc"
-version = "0.2.103"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6"
-
-[[package]]
-name = "log"
-version = "0.4.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "num"
-version = "0.1.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e"
-dependencies = [
- "num-integer",
- "num-iter",
- "num-traits",
-]
-
-[[package]]
-name = "num-integer"
-version = "0.1.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-iter"
-version = "0.1.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "phf"
-version = "0.7.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18"
-dependencies = [
- "phf_shared",
-]
-
-[[package]]
-name = "phf_shared"
-version = "0.7.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0"
-dependencies = [
- "siphasher",
-]
-
-[[package]]
-name = "simplecss"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "135685097a85a64067df36e28a243e94a94f76d829087ce0be34eeb014260c0e"
-
-[[package]]
-name = "siphasher"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
-
-[[package]]
-name = "svgcleaner"
-version = "0.9.5"
-dependencies = [
- "clap",
- "error-chain",
- "fern",
- "log",
- "svgdom",
-]
-
-[[package]]
-name = "svgdom"
-version = "0.10.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dac5d235d251b4266fb95bdf737fe0c546b26327a127e35ad33effdd78cb2e83"
-dependencies = [
- "error-chain",
- "float-cmp",
- "log",
- "simplecss",
- "svgparser",
-]
-
-[[package]]
-name = "svgparser"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90b2a4d5f7d25526c750e436fb5a224e06579f32581515bf511b37210007a3cb"
-dependencies = [
- "error-chain",
- "log",
- "phf",
- "xmlparser",
-]
-
-[[package]]
-name = "textwrap"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
-name = "time"
-version = "0.1.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
-dependencies = [
- "libc",
- "wasi",
- "winapi",
-]
-
-[[package]]
-name = "unicode-width"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
-
-[[package]]
-name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "xmlparser"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4fb8cb7e78fcf5055e751eae348c81bba17b6c84c8ed9fc5f6cf60e3e15d4aa"
-dependencies = [
- "error-chain",
- "log",
-]
diff --git a/nixpkgs/pkgs/tools/graphics/svgcleaner/default.nix b/nixpkgs/pkgs/tools/graphics/svgcleaner/default.nix
deleted file mode 100644
index 48902f322e2f..000000000000
--- a/nixpkgs/pkgs/tools/graphics/svgcleaner/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, rustPlatform, fetchFromGitHub }:
-
-rustPlatform.buildRustPackage rec {
-  pname = "svgcleaner";
-  version = "0.9.5";
-
-  src = fetchFromGitHub {
-    owner = "RazrFalcon";
-    repo = "svgcleaner";
-    rev = "v${version}";
-    sha256 = "sha256-nc+lKL6CJZid0WidcBwILhn81VgmmFrutfKT5UffdHA=";
-  };
-
-  cargoLock.lockFile = ./Cargo.lock;
-
-  postPatch = ''
-    cp ${./Cargo.lock} Cargo.lock;
-  '';
-
-  meta = with lib; {
-    description = "A tool for tidying and optimizing SVGs";
-    homepage = "https://github.com/RazrFalcon/svgcleaner";
-    changelog = "https://github.com/RazrFalcon/svgcleaner/blob/v${version}/CHANGELOG.md";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ mehandes ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/graphics/vips/default.nix b/nixpkgs/pkgs/tools/graphics/vips/default.nix
index bfe9a1875e5a..26d63791be8e 100644
--- a/nixpkgs/pkgs/tools/graphics/vips/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/vips/default.nix
@@ -38,7 +38,7 @@
 
 stdenv.mkDerivation rec {
   pname = "vips";
-  version = "8.11.3";
+  version = "8.12.1";
 
   outputs = [ "bin" "out" "man" "dev" ];
 
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     owner = "libvips";
     repo = "libvips";
     rev = "v${version}";
-    sha256 = "sha256-CWuULuUMBV2VUCZEBg0MzS7rXI8UUkNh5XPV2eA8xt8=";
+    sha256 = "sha256-Zo1Y4pYa+o55+ASrAiDUO7SAC4zpcAniEKkTFvIoU6o=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
diff --git a/nixpkgs/pkgs/tools/graphics/viu/default.nix b/nixpkgs/pkgs/tools/graphics/viu/default.nix
index 8a02e0fefede..104a4a81282a 100644
--- a/nixpkgs/pkgs/tools/graphics/viu/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/viu/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "viu";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "atanunq";
     repo = "viu";
     rev = "v${version}";
-    sha256 = "1n1qwlh1zinq5ngx04cvs69z8zr12yywr70vbrc946kbh4hx6pk9";
+    sha256 = "sha256-lAuIl25368Gv717a8p2So1o1VMDJJAOlDdqfItYizo4=";
   };
 
   # tests need an interactive terminal
   doCheck = false;
 
-  cargoSha256 = "0s6i42n4jivzj4ad62r7nc6ailydy686ivszcd6cj5f4dinsbgq3";
+  cargoSha256 = "sha256-ildtjaYGbrQacJOdGDVwFv+kod+vZHqukWN6ARtJqI4=";
 
   meta = with lib; {
     description = "A command-line application to view images from the terminal written in Rust";
diff --git a/nixpkgs/pkgs/tools/graphics/vulkan-extension-layer/default.nix b/nixpkgs/pkgs/tools/graphics/vulkan-extension-layer/default.nix
index aa90fced901f..ed7655763262 100644
--- a/nixpkgs/pkgs/tools/graphics/vulkan-extension-layer/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/vulkan-extension-layer/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "vulkan-extension-layer";
-  version = "1.2.182.0";
+  version = "1.2.189.1";
 
   src = (assert version == vulkan-headers.version;
     fetchFromGitHub {
       owner = "KhronosGroup";
       repo = "Vulkan-ExtensionLayer";
       rev = "sdk-${version}";
-      sha256 = "0by2kp48jbd55xk26rmlvc4wm77g1zvidx8czn1587ng2yzi7acr";
+      sha256 = "0qi9ps215pmrh8vgi81wvlzjyxs44bama2x3d43a1bbvcyp9s6kp";
     });
 
   nativeBuildInputs = [ cmake jq ];
diff --git a/nixpkgs/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix b/nixpkgs/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix
index 3b33328485ee..ae9e0e86b252 100644
--- a/nixpkgs/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix
@@ -23,14 +23,14 @@
 stdenv.mkDerivation rec {
   pname = "vulkan-tools-lunarg";
   # The version must match that in vulkan-headers
-  version = "1.2.182.0";
+  version = "1.2.189.1";
 
   src = (assert version == vulkan-headers.version;
     fetchFromGitHub {
       owner = "LunarG";
       repo = "VulkanTools";
       rev = "sdk-${version}";
-      sha256 = "1b7762fcbakfvj2b2l68qj25pc7pz9jhfabf1x80b9w3q205hl2f";
+      sha256 = "0431dgplv5wiz8bj0ja91mbpc2qhjgdhqhrgaqarvyvjr1f7jw52";
       fetchSubmodules = true;
     });
 
diff --git a/nixpkgs/pkgs/tools/graphics/vulkan-tools/default.nix b/nixpkgs/pkgs/tools/graphics/vulkan-tools/default.nix
index 161384c3ad01..9f9593b2cf70 100644
--- a/nixpkgs/pkgs/tools/graphics/vulkan-tools/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/vulkan-tools/default.nix
@@ -3,7 +3,7 @@
 
 stdenv.mkDerivation rec {
   pname = "vulkan-tools";
-  version = "1.2.182.0";
+  version = "1.2.189.1";
 
   # It's not strictly necessary to have matching versions here, however
   # since we're using the SDK version we may as well be consistent with
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
       owner = "KhronosGroup";
       repo = "Vulkan-Tools";
       rev = "sdk-${version}";
-      sha256 = "028l2l7jx4443k8207q8jmjq1mnnm9kgyl2417jrkrvylcbv8ji9";
+      sha256 = "0izmzyj6gb51d71vbdjcgd9qw34aidvbmz0mg4bkc13n48w8s9vj";
     });
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/graphics/wallutils/default.nix b/nixpkgs/pkgs/tools/graphics/wallutils/default.nix
index 7425056cfae3..d7c37bb2742b 100644
--- a/nixpkgs/pkgs/tools/graphics/wallutils/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/wallutils/default.nix
@@ -1,16 +1,17 @@
 { buildGoPackage, fetchFromGitHub, lib
-, wayland, libX11, xbitmaps, libXcursor, libXmu, libXpm
+, pkg-config
+, wayland, libX11, xbitmaps, libXcursor, libXmu, libXpm, libheif
 }:
 
 buildGoPackage rec {
   pname = "wallutils";
-  version = "5.9.0";
+  version = "5.10.0";
 
   src = fetchFromGitHub {
     owner = "xyproto";
     repo = "wallutils";
     rev = version;
-    sha256 = "17xw1311xpmi5c8mwa9yvn4pxa7g4n09j84lvy61gmxc5m128fwy";
+    sha256 = "1phlkpy8kg4ai2xmachpbbxvl8fga9hqqbad2a2121yl60709l1k";
   };
 
   goPackagePath = "github.com/xyproto/wallutils";
@@ -22,13 +23,14 @@ buildGoPackage rec {
     sed -iE 's/VersionString = "[0-9].[0-9].[0-9]"/VersionString = "${version}"/' wallutils.go
   '';
 
-  buildInputs = [ wayland libX11 xbitmaps libXcursor libXmu libXpm ];
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ wayland libX11 xbitmaps libXcursor libXmu libXpm libheif ];
 
   meta = with lib; {
     description = "Utilities for handling monitors, resolutions, and (timed) wallpapers";
     inherit (src.meta) homepage;
     license = licenses.mit;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/wdisplays/default.nix b/nixpkgs/pkgs/tools/graphics/wdisplays/default.nix
index 073a3b1b6d47..a0803ff2132a 100644
--- a/nixpkgs/pkgs/tools/graphics/wdisplays/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/wdisplays/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, gtk3, epoxy, wayland, wrapGAppsHook }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, gtk3, libepoxy, wayland, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "wdisplays";
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ meson ninja pkg-config wrapGAppsHook ];
 
-  buildInputs = [ gtk3 epoxy wayland ];
+  buildInputs = [ gtk3 libepoxy wayland ];
 
   src = fetchFromGitHub {
     owner = "luispabon";
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ lheckemann ma27 ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "wdisplays";
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/zbar/default.nix b/nixpkgs/pkgs/tools/graphics/zbar/default.nix
index df0983b2d645..e17580d9c000 100644
--- a/nixpkgs/pkgs/tools/graphics/zbar/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/zbar/default.nix
@@ -15,7 +15,11 @@
 , autoreconfHook
 , dbus
 , enableVideo ? stdenv.isLinux
-, enableDbus ? stdenv.isLinux
+  # The implementation is buggy and produces an error like
+  # Name Error (Connection ":1.4380" is not allowed to own the service "org.linuxtv.Zbar" due to security policies in the configuration file)
+  # for every scanned code.
+  # see https://github.com/mchehab/zbar/issues/104
+, enableDbus ? false
 , libintl
 }:
 
diff --git a/nixpkgs/pkgs/tools/graphics/zxing/zxing.sh b/nixpkgs/pkgs/tools/graphics/zxing/zxing.sh
index ca6ac60bab69..a38558d87026 100644
--- a/nixpkgs/pkgs/tools/graphics/zxing/zxing.sh
+++ b/nixpkgs/pkgs/tools/graphics/zxing/zxing.sh
@@ -2,17 +2,17 @@
 choice="$1";
 shift
 case "$choice" in
-	encode | create | write | CommandLineEncoder)
-		zxing-cmdline-encoder "$@";
-		;;
-	decode | read | run | CommandLineRunner)
-		zxing-cmdline-runner "$@";
-		;;
-	help | usage | --help | --usage | -h)
-		zxing read;
-		zxing write;
-		;;
-	*)
-		zxing read "$choice" "$@"
-		;;
+    encode | create | write | CommandLineEncoder)
+        zxing-cmdline-encoder "$@";
+        ;;
+    decode | read | run | CommandLineRunner)
+        zxing-cmdline-runner "$@";
+        ;;
+    help | usage | --help | --usage | -h)
+        zxing read;
+        zxing write;
+        ;;
+    *)
+        zxing read "$choice" "$@"
+        ;;
 esac
diff --git a/nixpkgs/pkgs/tools/inputmethods/emote/default.nix b/nixpkgs/pkgs/tools/inputmethods/emote/default.nix
index d65831d5202e..79831d7ef1ec 100644
--- a/nixpkgs/pkgs/tools/inputmethods/emote/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/emote/default.nix
@@ -2,18 +2,21 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "emote";
-  version = "2.0.0";
+  version = "3.0.3";
 
   src = fetchFromGitHub {
     owner = "tom-james-watson";
     repo = "Emote";
     rev = "v${version}";
-    sha256 = "kYXFD6VBnuEZ0ZMsF6ZmN4V0JN83puxRILpNlllVsKQ=";
+    sha256 = "mqCSl+EGbnL9AfzZT3aa/Y5Rsx433ZmI31BmK3wkaJk=";
   };
 
   postPatch = ''
-    substituteInPlace setup.py --replace "pygobject==3.36.0" "pygobject"
+    substituteInPlace setup.py \
+      --replace "pygobject==3.36.0" "pygobject" \
+      --replace "manimpango==0.3.0" "manimpango"
     substituteInPlace emote/config.py --replace 'os.environ.get("SNAP")' "'$out/share/emote'"
+    substituteInPlace emote/picker.py --replace 'os.environ.get("SNAP_VERSION", "dev build")' "'$version'"
     substituteInPlace snap/gui/emote.desktop --replace "Icon=\''${SNAP}/usr/share/icons/emote.svg" "Icon=emote.svg"
   '';
 
@@ -27,6 +30,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = [
+    python3Packages.manimpango
     python3Packages.pygobject3
     gtk3
     xdotool
@@ -36,7 +40,7 @@ python3Packages.buildPythonApplication rec {
   postInstall = ''
     install -D snap/gui/emote.desktop $out/share/applications/emote.desktop
     install -D snap/gui/emote.svg $out/share/pixmaps/emote.svg
-    install -D -t $out/share/emote/static static/{emojis.json,logo.svg,style.css}
+    install -D -t $out/share/emote/static static/{NotoColorEmoji.ttf,emojis.csv,logo.svg,style.css}
   '';
 
   dontWrapGApps = true;
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix
index 94a7d2444bf9..269611f4bd7c 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix
@@ -13,7 +13,7 @@ let
     sha256 = "10bdjn481jsh32vll7r756l392anz44h6207vjqwby3rplk31np1";
   };
 in clangStdenv.mkDerivation rec {
-  name    = "fcitx-mozc-${version}";
+  pname = "fcitx-mozc";
   version = "2.23.2815.102";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx/fcitx-configtool.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx/fcitx-configtool.nix
index 3d34dcbac175..ccbec8209e9a 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx/fcitx-configtool.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx/fcitx-configtool.nix
@@ -1,17 +1,18 @@
 { lib, stdenv, fetchurl, makeWrapper, pkg-config, cmake, fcitx, gtk3, isocodes, gnome }:
 
 stdenv.mkDerivation rec {
-  name = "fcitx-configtool-0.4.10";
+  pname = "fcitx-configtool";
+  version = "0.4.10";
 
   meta = with lib; {
     description = "GTK-based config tool for Fcitx";
-    license     = licenses.gpl2;
-    platforms   = platforms.linux;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ cdepillabout ];
   };
 
   src = fetchurl {
-    url = "https://download.fcitx-im.org/fcitx-configtool/${name}.tar.xz";
+    url = "https://download.fcitx-im.org/fcitx-configtool/fcitx-configtool-${version}.tar.xz";
     sha256 = "1yyi9jhkwn49lx9a47k1zbvwgazv4y4z72gnqgzdpgdzfrlrgi5w";
   };
 
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/default.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/default.nix
index 85b652577437..bae542cefbae 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/default.nix
@@ -41,13 +41,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "fcitx5";
-  version = "5.0.9";
+  version = "5.0.11";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "161xgm2fs51v8l46raz6xxkjmshpgaaax64lz8208m7fcd32ll3a";
+    sha256 = "sha256-81FuV6wBDQcOG5TLEJBqSG09BRgLekAo3tqZA40AQYo=";
   };
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
index 3a4a38c6b708..b52d03b7743f 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
@@ -31,13 +31,13 @@ in
 
 mkDerivation rec {
   pname = "fcitx5-chinese-addons";
-  version = "5.0.6";
+  version = "5.0.9";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-chinese-addons";
     rev = version;
-    sha256 = "sha256-+DhXFqUxECGZYHAmEw5cZJQnRHHgvT0nVVqY9DXgWBU=";
+    sha256 = "sha256-GnFIbvbLkL8YkLA3ziS8gBia9juDOkQWRcrXIPJAjLc=";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
index 584a1b932f48..7a7801b35270 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
@@ -19,13 +19,13 @@
 
 mkDerivation rec {
   pname = "fcitx5-configtool";
-  version = "5.0.5";
+  version = "5.0.9";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "0w6cgg57ldk02j3fs7mm8pn5inblcjyr20d3xl5qbyawwccjsn2m";
+    sha256 = "sha256-QPRaATx6TaysfZrFCR/Itc+4hx3sx7kLbahacQGrccE=";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
index 7b27184cde32..43224553753d 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
@@ -17,7 +17,7 @@
 , libdatrie
 , libXdmcp
 , libxkbcommon
-, epoxy
+, libepoxy
 , dbus
 , at-spi2-core
 , libXtst
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-gtk";
-  version = "5.0.7";
+  version = "5.0.10";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "0vcikqrxv1xxcdaiz3axgm7rpab4w8aciw838sbpa9l20dp8cnyq";
+    sha256 = "sha256-QR2ZHP6dP7XcOCJw2BE1ak+mnRL0njV2T1+iBeMA+do=";
   };
 
   cmakeFlags = [
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     libdatrie
     libXdmcp
     libxkbcommon
-    epoxy
+    libepoxy
     dbus
     at-spi2-core
     libXtst
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-m17n.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-m17n.nix
index 9a90ab3ca7d7..a8a1cd0eb7a3 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-m17n.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-m17n.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-m17n";
-  version = "5.0.5";
+  version = "5.0.6";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-duL9FgXPCr4/rMuguw8cf3EIdK6MW/alUNeh1yduY68=";
+    sha256 = "sha256-w806Xy7S8rhw7ZtMRzHfUD9BDzj3VmCxlP+kHMZgFpc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix
index 40465d55e400..15b6f51126d9 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix
@@ -12,13 +12,13 @@
 
 mkDerivation rec {
   pname = "fcitx5-qt";
-  version = "5.0.6";
+  version = "5.0.8";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-qt";
     rev = version;
-    sha256 = "sha256-Y7X4pkBSf5FMpf1mdyLvr1QWhqz3yC4iOGXDvvvV9Yw=";
+    sha256 = "sha256-S7hbcAyoS+gagqoL+C3YgcyjODnE+ZvHEFIoAqAmOxo=";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
index 86e5b6ca51af..f25a41306365 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-rime";
-  version = "5.0.7";
+  version = "5.0.9";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "1djakg17rxc38smja4y76i0p4gwdj3lgwym8kybkaspk7lxr62zy";
+    sha256 = "sha256-DRT4e59sMgS1xOIVx4t8I4aJGPprvRS6CYcNssIU2iY=";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
index 570893c2ade4..65ad408adeba 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-table-extra";
-  version = "5.0.4";
+  version = "5.0.7";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "1rhm9jyqxlsgjsn3f5n9jwm5qjcgg87widp0bv1xa9cc23mydrqv";
+    sha256 = "sha256-K+MeFfst+vxgaHkYgLzfj7wqHYP6dIbh5ZOYHaV0cXo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
index 00e13bc756fa..b6ba9bfd1632 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-table-other";
-  version = "5.0.5";
+  version = "5.0.6";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "0z34y05sbb2qavpa6banv7xvlsmpymmm828265r8bf7r995wx8lz";
+    sha256 = "sha256-NePb2tDy8mSR+cPxhOF4xBnxFRjLKdNs8YNGlvfFKmg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
index d04de7bafebc..deef4a8f8736 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-anthy";
-  version = "1.5.12";
+  version = "1.5.14";
 
   src = fetchurl {
     url = "https://github.com/ibus/ibus-anthy/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-6edY3dRq4pI3bqsXEYf6jyBjDwpXzRKKQSCP3N/fV7s=";
+    sha256 = "sha256-yGlNoY0LiRpI9NdaDezjfsvKbRsay2QQGnqEytEEbZs=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
index b51efc2cb810..b5a10a83d860 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-libpinyin";
-  version = "1.12.0";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
     owner = "libpinyin";
     repo = "ibus-libpinyin";
     rev = version;
-    sha256 = "sha256-fEEiwRoGGFAki1DMQvGuzjz2NAjhExyH11l8KTwjjsI=";
+    sha256 = "sha256-tSbH4twU+paCZdmzVQMSSg3AzBNkK4nnmOfbvUzvZTk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-libthai/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-libthai/default.nix
index 1bb2479b4997..c72d7f1a604b 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-libthai/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-libthai/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-libthai";
-  version = "0.1.4";
+  version = "0.1.5";
 
   src = fetchurl {
     url = "https://linux.thai.net/pub/ThaiLinux/software/libthai/ibus-libthai-${version}.tar.xz";
-    sha256 = "0iam7308rxkx2xwaabc5wyj7vrxgd4cr95pvwrkm8fr9gh2xnwgv";
+    sha256 = "sha256-egAxttjwuKiDoIuJluoOTJdotFZJe6ZOmJgdiFCAwx0=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix
index af3fcbe4e2cc..d415b6b5a45d 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix
@@ -39,6 +39,6 @@ stdenv.mkDerivation rec {
     homepage = "https://rime.im/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ pengmeiyu ];
+    maintainers = with maintainers; [ pmy ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
index 9dcde821e14d..410774e3897b 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-table";
-  version = "1.14.0";
+  version = "1.14.1";
 
   src = fetchFromGitHub {
     owner  = "kaio";
     repo   = "ibus-table";
     rev    = version;
-    sha256 = "sha256-HGSa8T1fY3PGow/rB9ixAPTibLCykImcs0kM/dUIwmQ=";
+    sha256 = "sha256-PO5OOIOyolx6PRQ36u0s+oz3elgZzGBZGgOLTxGWbGo=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus/default.nix
index a0aea92ea4af..50b9dba51d35 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus/default.nix
@@ -169,6 +169,6 @@ stdenv.mkDerivation rec {
     description = "Intelligent Input Bus, input method framework";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ttuegel yegortimoshenko ];
+    maintainers = with maintainers; [ ttuegel yana ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/inputmethods/interception-tools/default.nix b/nixpkgs/pkgs/tools/inputmethods/interception-tools/default.nix
index ad18becfc72f..5d5bd7bdfc2b 100644
--- a/nixpkgs/pkgs/tools/inputmethods/interception-tools/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/interception-tools/default.nix
@@ -3,12 +3,12 @@
 
 stdenv.mkDerivation rec {
   pname = "interception-tools";
-  version = "0.6.7";
+  version = "0.6.8";
   src = fetchFromGitLab {
     owner = "interception/linux";
     repo = "tools";
     rev = "v${version}";
-    sha256 = "0wcmppa7092b33wb8vc782day5phf90pc25cn1x7rk0rlw565z36";
+    sha256 = "sha256-jhdgfCWbkF+jD/iXsJ+fYKOtPymxcC46Q4w0aqpvcek=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/tools/inputmethods/m17n-db/default.nix b/nixpkgs/pkgs/tools/inputmethods/m17n-db/default.nix
index 9344951dffe7..d24d1b44d862 100644
--- a/nixpkgs/pkgs/tools/inputmethods/m17n-db/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/m17n-db/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, gettext }:
+{ lib, stdenv, fetchurl, gettext, gawk, bash }:
 
 stdenv.mkDerivation rec {
   pname = "m17n-db";
@@ -9,7 +9,10 @@ stdenv.mkDerivation rec {
     sha256 = "0vfw7z9i2s9np6nmx1d4dlsywm044rkaqarn7akffmb6bf1j6zv5";
   };
 
-  buildInputs = [ gettext ];
+  nativeBuildInputs = [ gettext ];
+  buildInputs = [ gettext gawk bash ];
+
+  strictDeps = true;
 
   configureFlags = lib.optional (stdenv ? glibc)
     "--with-charmaps=${stdenv.glibc.out}/share/i18n/charmaps"
diff --git a/nixpkgs/pkgs/tools/inputmethods/m17n-lib/default.nix b/nixpkgs/pkgs/tools/inputmethods/m17n-lib/default.nix
index c80f97363116..cc290ab0eca9 100644
--- a/nixpkgs/pkgs/tools/inputmethods/m17n-lib/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/m17n-lib/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, m17n_db}:
+{ lib, stdenv, fetchurl, m17n_db, autoreconfHook, pkg-config }:
 stdenv.mkDerivation rec {
   pname = "m17n-lib";
   version = "1.8.0";
@@ -8,7 +8,19 @@ stdenv.mkDerivation rec {
     sha256 = "0jp61y09xqj10mclpip48qlfhniw8gwy8b28cbzxy8hq8pkwmfkq";
   };
 
-  buildInputs = [ m17n_db ];
+  strictDeps = true;
+
+  # reconf needed to sucesfully cross-compile
+  nativeBuildInputs = [
+    autoreconfHook pkg-config
+    # requires m17n-db tool at build time
+    m17n_db
+  ];
+
+  # Fails parallel build due to missing intra-package depends:
+  #   https://savannah.nongnu.org/bugs/index.php?61377
+  #     make[2]: *** No rule to make target '../src/libm17n-core.la', needed by 'libm17n.la'.  Stop.
+  enableParallelBuilding = false;
 
   meta = {
     homepage = "https://www.nongnu.org/m17n/";
diff --git a/nixpkgs/pkgs/tools/inputmethods/m17n-lib/otf.nix b/nixpkgs/pkgs/tools/inputmethods/m17n-lib/otf.nix
index f4d276e0a61d..b0d30a58d48e 100644
--- a/nixpkgs/pkgs/tools/inputmethods/m17n-lib/otf.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/m17n-lib/otf.nix
@@ -1,22 +1,46 @@
-{ lib, stdenv, fetchurl, libXaw, freetype }:
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config, autoreconfHook, libXaw, freetype }:
 
 stdenv.mkDerivation rec {
-  name = "libotf-0.9.16";
+  pname = "libotf";
+  version = "0.9.16";
 
   src = fetchurl {
-    url = "https://download.savannah.gnu.org/releases/m17n/${name}.tar.gz";
+    url = "https://download.savannah.gnu.org/releases/m17n/${pname}-${version}.tar.gz";
     sha256 = "0sq6g3xaxw388akws6qrllp3kp2sxgk2dv4j79k6mm52rnihrnv8";
   };
 
-  outputs = [ "out" "dev" ];
+  patches = [
+    # https://salsa.debian.org/debian/libotf/-/tree/master/debian/patches
+    # Fix cross-compilation
+    (fetchpatch {
+      url = "https://salsa.debian.org/debian/libotf/-/raw/1be04cedf887720eb8f5efb3594dc2cefd96b1f1/debian/patches/0002-use-pkg-config-not-freetype-config.patch";
+      sha256 = "sha256-VV9iGoNWIEie6UiLLTJBD+zxpvj0acgqkcBeAN1V6Kc=";
+    })
+    # these 2 are required by the above patch
+    (fetchpatch {
+      url = "https://salsa.debian.org/debian/libotf/-/raw/1be04cedf887720eb8f5efb3594dc2cefd96b1f1/debian/patches/0001-do-not-add-flags-for-required-packages-to-pc-file.patch";
+      sha256 = "sha256-3kzqNPAHNVJQ1F4fyifq3AqLdChWli/k7wOq+ha+iDs=";
+    })
+    (fetchpatch {
+      url = "https://salsa.debian.org/debian/libotf/-/raw/1be04cedf887720eb8f5efb3594dc2cefd96b1f1/debian/patches/0001-libotf-config-modify-to-support-multi-arch.patch";
+      sha256 = "sha256-SUlI87h+MtYWWtrAegzAnSds8JhxZwTJltDcj/se/Qc=";
+    })
+  ];
+
+  strictDeps = true;
+
+  nativeBuildInputs = [ pkg-config autoreconfHook ];
 
   buildInputs = [ libXaw freetype ];
 
-  postInstall =
-    ''
-      mkdir -p $dev/bin
-      mv $out/bin/libotf-config $dev/bin/
-    '';
+  outputs = [ "out" "dev" ];
+
+  postInstall = ''
+    mkdir -p $dev/bin
+    mv $out/bin/libotf-config $dev/bin/
+    substituteInPlace $dev/bin/libotf-config \
+      --replace "pkg-config" "${pkg-config}/bin/pkg-config"
+  '';
 
   meta = {
     homepage = "https://www.nongnu.org/m17n/";
diff --git a/nixpkgs/pkgs/tools/inputmethods/remote-touchpad/default.nix b/nixpkgs/pkgs/tools/inputmethods/remote-touchpad/default.nix
index 90a438adb73a..6606f1f0011f 100644
--- a/nixpkgs/pkgs/tools/inputmethods/remote-touchpad/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/remote-touchpad/default.nix
@@ -9,19 +9,19 @@
 
 buildGoModule rec {
   pname = "remote-touchpad";
-  version = "1.0.2";
+  version = "1.0.4";
 
   src = fetchFromGitHub {
     owner = "unrud";
     repo = pname;
     rev = "v${version}";
-    sha256 = "09a252z69msy4wd5kazpca8dcn0a2djdw0vs663062fl977p73qs";
+    sha256 = "sha256-VgTjQXjJn17+BhREew62RTjNo8UWc4Fn9x+924nGD+I=";
   };
 
   buildInputs = [ libX11 libXi libXt libXtst ];
   tags = [ "portal,x11" ];
 
-  vendorSha256 = "1pgj0m67g759mcs4s34h4pq3mc7gni643z5cp6ffq4rrn8mdi060";
+  vendorSha256 = "sha256-Cw4uMnID0nDhSl+ijHMo1VcXLdY1bHFpEkqDQDJOJOw=";
 
   meta = with lib; {
     description = "Control mouse and keyboard from the webbrowser of a smartphone.";
diff --git a/nixpkgs/pkgs/tools/inputmethods/skk/skk-dicts/default.nix b/nixpkgs/pkgs/tools/inputmethods/skk/skk-dicts/default.nix
index d165f404f6cb..f20e2899f185 100644
--- a/nixpkgs/pkgs/tools/inputmethods/skk/skk-dicts/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/skk/skk-dicts/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libiconv, skktools }:
+{ lib, stdenv, fetchurl, buildPackages, libiconv, skktools }:
 
 let
   # kana to kanji
@@ -25,6 +25,8 @@ let
     url = "https://raw.githubusercontent.com/skk-dev/dict/8b35d07a7d2044d48b063d2774d9f9d00bb7cb48/SKK-JISYO.assoc";
     sha256 = "1smcbyv6srrhnpl7ic9nqds9nz3g2dgqngmhzkrdlwmvcpvakp1v";
   };
+
+  iconvBin = if stdenv.isDarwin then libiconv else  buildPackages.stdenv.cc.libc;
 in
 
 stdenv.mkDerivation {
@@ -33,6 +35,8 @@ stdenv.mkDerivation {
   srcs = [ small medium large edict assoc ];
   nativeBuildInputs = [ skktools ] ++ lib.optional stdenv.isDarwin libiconv;
 
+  strictDeps = true;
+
   dontUnpack = true;
 
   installPhase = ''
@@ -47,28 +51,30 @@ stdenv.mkDerivation {
     for src in $srcs; do
       dst=$out/share/$(dictname $src)
       echo ";;; -*- coding: utf-8 -*-" > $dst  # libskk requires this on the first line
-      iconv -f EUC-JP -t UTF-8 $src |\
-        ${skktools}/bin/skkdic-expr2 >> $dst
+      ${lib.getBin iconvBin}/bin/iconv \
+        -f EUC-JP -t UTF-8 $src | skkdic-expr2 >> $dst
     done
 
     # combine .L .edict and .assoc for convenience
     dst=$out/share/SKK-JISYO.combined
     echo ";;; -*- coding: utf-8 -*-" > $dst
-    ${skktools}/bin/skkdic-expr2 \
+    skkdic-expr2 \
       $out/share/$(dictname ${large}) + \
       $out/share/$(dictname ${edict}) + \
       $out/share/$(dictname ${assoc}) >> $dst
   '';
 
-  meta = {
+  enableParallelBuilding = true;
+
+  meta = with lib; {
     description = "A collection of standard SKK dictionaries";
     longDescription = ''
       This package provides a collection of standard kana-to-kanji
       dictionaries for the SKK Japanese input method.
     '';
     homepage = "https://github.com/skk-dev/dict";
-    license = lib.licenses.gpl2Plus;
-    maintainers = with lib.maintainers; [ yuriaisaka ];
-    platforms = with lib.platforms; linux ++ darwin;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ yuriaisaka ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/inputmethods/touchegg/default.nix b/nixpkgs/pkgs/tools/inputmethods/touchegg/default.nix
index 69d05ceaed1e..a50770c73559 100644
--- a/nixpkgs/pkgs/tools/inputmethods/touchegg/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/touchegg/default.nix
@@ -16,12 +16,12 @@
 
 stdenv.mkDerivation rec {
   pname = "touchegg";
-  version = "2.0.11";
+  version = "2.0.12";
   src = fetchFromGitHub {
     owner = "JoseExposito";
     repo = pname;
     rev = version;
-    sha256 = "1zfiqs5vqlb6drnqx9nsmhgy8qc6svzr8zyjkqvwkpbgrc6ifap9";
+    sha256 = "sha256-oJzehs7oLFTDn7GSm6bY/77tEfyEdlANn69EdCApdPA=";
   };
 
   PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMUNITDIR = "${placeholder "out"}/lib/systemd/system";
diff --git a/nixpkgs/pkgs/tools/misc/0x0/default.nix b/nixpkgs/pkgs/tools/misc/0x0/default.nix
deleted file mode 100644
index 0b9c6f7c3bbb..000000000000
--- a/nixpkgs/pkgs/tools/misc/0x0/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, stdenv, xsel, curl, fetchFromGitLab, makeWrapper}:
-
-stdenv.mkDerivation {
-  pname = "0x0";
-  version = "2018-06-24";
-
-  src = fetchFromGitLab {
-    owner = "somasis";
-    repo = "scripts";
-    rev  = "70422c83b2ac5856559b0ddaf6e2dc3dbef40dee";
-    sha256 = "1qpylyxrisy3p2lyirfarfj5yzrdjgsgxwf8gqwljpcjn207hr72";
-  };
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  installPhase = ''
-    install -Dm755 0x0 $out/bin/0x0
-
-    patchShebangs $out/bin/0x0
-    wrapProgram $out/bin/0x0 \
-      --prefix PATH : '${lib.makeBinPath [ curl xsel ]}'
-  '';
-
-  meta = with lib; {
-    description = "A client for 0x0.st";
-    homepage = "https://gitlab.com/somasis/scripts/";
-    maintainers = [ maintainers.ar1a ];
-    license = licenses.unlicense;
-    platforms = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/misc/android-tools/default.nix b/nixpkgs/pkgs/tools/misc/android-tools/default.nix
index 8d74e74cb8ac..de526cf0ccfc 100644
--- a/nixpkgs/pkgs/tools/misc/android-tools/default.nix
+++ b/nixpkgs/pkgs/tools/misc/android-tools/default.nix
@@ -9,11 +9,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "android-tools";
-  version = "31.0.2";
+  version = "31.0.3";
 
   src = fetchurl {
     url = "https://github.com/nmeum/android-tools/releases/download/${version}/android-tools-${version}.tar.xz";
-    sha256 = "sha256-YbO/bCQMsLTQzP72lsVZhuBmV4Q2J9+VD9z2iBrw+NQ=";
+    sha256 = "0adhws565ny90vzh5jpkbcai8sfs3b9acs0bgl6bm9z1nr2xklnp";
   };
 
   patches = [
@@ -27,10 +27,6 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  postPatch = ''
-    sed -i -E "0,/import api_pb2/ s//from google.protobuf import api_pb2/" vendor/avb/aftltool.py
-  '';
-
   nativeBuildInputs = [ cmake perl go ];
   buildInputs = [ protobuf zlib gtest brotli lz4 zstd libusb1 pcre2 fmt_7 ];
   propagatedBuildInputs = [ pythonEnv ];
@@ -43,7 +39,6 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    install -Dm755 ../vendor/avb/aftltool.py -t $out/bin
     install -Dm755 ../vendor/avb/avbtool.py -t $out/bin
     install -Dm755 ../vendor/mkbootimg/mkbootimg.py $out/bin/mkbootimg
   '';
diff --git a/nixpkgs/pkgs/tools/misc/antimicroX/default.nix b/nixpkgs/pkgs/tools/misc/antimicrox/default.nix
index 452906a1cf81..e248ac4a0c78 100644
--- a/nixpkgs/pkgs/tools/misc/antimicroX/default.nix
+++ b/nixpkgs/pkgs/tools/misc/antimicrox/default.nix
@@ -4,40 +4,39 @@
 , extra-cmake-modules
 , pkg-config
 , SDL2
-, qtbase
 , qttools
-, qtx11extras
 , xorg
 , fetchFromGitHub
 , itstool
 }:
 
 mkDerivation rec {
-  pname = "antimicroX";
-  version = "3.0.1";
+  pname = "antimicrox";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
-    owner = "juliagoda";
-    repo = "antimicroX";
+    owner = "AntiMicroX";
+    repo = pname;
     rev = version;
-    sha256 = "05asxlkgb4cgvpcyksw1cx8cz8nzi8hmw8b91lw92892j7a2r7wj";
+    sha256 = "sha256-brG3DTpWRYmDemTeteuuNbF0JoDAXdcFwO12JC6/0/Q=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules pkg-config itstool ];
   buildInputs = [
     SDL2
-    qtbase
     qttools
-    qtx11extras
-    xorg.libX11
     xorg.libXtst
-    xorg.libXi
   ];
 
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+        --replace "/usr/lib/udev/rules.d/" "$out/lib/udev/rules.d/"
+  '';
+
   meta = with lib; {
     description = "GUI for mapping keyboard and mouse controls to a gamepad";
     inherit (src.meta) homepage;
-    maintainers = with maintainers; [ jb55 ];
+    maintainers = with maintainers; [ jb55 sbruder ];
     license = licenses.gpl3Plus;
     platforms = with platforms; linux;
   };
diff --git a/nixpkgs/pkgs/tools/misc/apkeep/default.nix b/nixpkgs/pkgs/tools/misc/apkeep/default.nix
new file mode 100644
index 000000000000..fb3568451836
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/apkeep/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchCrate, rustPlatform, openssl, pkg-config, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "apkeep";
+  version = "0.7.0";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "0anfp3nwsainx9sw4njcmkzczq1rmib3dyncwhcf7y3j9v978d3h";
+  };
+
+  cargoSha256 = "0npw8f8c0qcprcins0pc12c5w47kv8dd1nrzv4xyllr44vx488mc";
+
+  prePatch = ''
+    rm .cargo/config.toml
+  '';
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
+
+  meta = with lib; {
+    description = "A command-line tool for downloading APK files from various sources";
+    homepage = "https://github.com/EFForg/apkeep";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jyooru ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/atuin/default.nix b/nixpkgs/pkgs/tools/misc/atuin/default.nix
index 3157fc51b58a..381711811875 100644
--- a/nixpkgs/pkgs/tools/misc/atuin/default.nix
+++ b/nixpkgs/pkgs/tools/misc/atuin/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, installShellFiles
 , rustPlatform
 , libiconv
 , Security
@@ -9,23 +10,37 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "atuin";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "ellie";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jjGP8YeHnEr0f9RONwA6wZT872C0jXTvSRdt9zAu6KE=";
+    sha256 = "sha256-I/ZDaOAiHdWOkmf+jIWWxZ3C25UHsl6MB7mCRLADFNs=";
   };
 
-  cargoSha256 = "0vy6q3hjp374lyg00zxim8aplh83iq3f4rrmpz5vnpwbag1fdql3";
+  cargoSha256 = "sha256-KMss6Mpn4LHnkhtJyRea+D7mKItBK4lqq9syFEmCiFo=";
+
+  nativeBuildInputs = [ installShellFiles ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security SystemConfiguration ];
 
+  postInstall = ''
+    HOME=$(mktemp -d)
+    for shell in bash fish zsh; do
+      $out/bin/atuin gen-completions -s $shell -o .
+    done
+
+    installShellCompletion --cmd atuin \
+      --bash atuin.bash \
+      --fish atuin.fish \
+      --zsh _atuin
+  '';
+
   meta = with lib; {
     description = "Replacement for a shell history which records additional commands context with optional encrypted synchronization between machines";
     homepage = "https://github.com/ellie/atuin";
     license = licenses.mit;
-    maintainers = [ maintainers.onsails ];
+    maintainers = with maintainers; [ onsails SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/autorandr/default.nix b/nixpkgs/pkgs/tools/misc/autorandr/default.nix
index 793204014541..bf54d6a445ef 100644
--- a/nixpkgs/pkgs/tools/misc/autorandr/default.nix
+++ b/nixpkgs/pkgs/tools/misc/autorandr/default.nix
@@ -2,14 +2,17 @@
 , python3Packages
 , fetchFromGitHub
 , systemd
-, xrandr }:
+, xrandr
+, installShellFiles }:
 
 stdenv.mkDerivation rec {
   pname = "autorandr";
-  version = "1.11";
+  version = "1.12.1";
 
   buildInputs = [ python3Packages.python ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
   # no wrapper, as autorandr --batch does os.environ.clear()
   buildPhase = ''
     substituteInPlace autorandr.py \
@@ -23,7 +26,12 @@ stdenv.mkDerivation rec {
     runHook preInstall
     make install TARGETS='autorandr' PREFIX=$out
 
-    make install TARGETS='bash_completion' DESTDIR=$out/share/bash-completion/completions
+    # zsh completions exist but currently have no make target, use
+    # installShellCompletions for both
+    # see https://github.com/phillipberndt/autorandr/issues/197
+    installShellCompletion --cmd autorandr \
+        --bash contrib/bash_completion/autorandr \
+        --zsh contrib/zsh_completion/_autorandr
 
     make install TARGETS='autostart_config' PREFIX=$out DESTDIR=$out
 
@@ -49,7 +57,7 @@ stdenv.mkDerivation rec {
     owner = "phillipberndt";
     repo = "autorandr";
     rev = version;
-    sha256 = "0rmnqk2bi6bbd2if1rll37mlzlqxzmnazfffdhcpzskxwyaj4yn5";
+    sha256 = "sha256-7SNnbgV6PeseBD6wdilEIOfOL2KVDpnlkSn9SBgRhhM=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/bandwidth/default.nix b/nixpkgs/pkgs/tools/misc/bandwidth/default.nix
index 5eef6a517f3a..af728e9749af 100644
--- a/nixpkgs/pkgs/tools/misc/bandwidth/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bandwidth/default.nix
@@ -6,11 +6,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "bandwidth";
-  version = "1.10.4";
+  version = "1.11.2";
 
   src = fetchurl {
     url = "https://zsmith.co/archives/${pname}-${version}.tar.gz";
-    sha256 = "sha256-e/eP2rA7ElFrh2Z4qTzRGR/cxY1UI6s+LQ9Og1x46/I=";
+    sha256 = "sha256-mjtvQAOH9rv12XszGdD5hIX197er7Uc74WfVaP32TpM=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/barman/default.nix b/nixpkgs/pkgs/tools/misc/barman/default.nix
index ef84981a9d95..699a38f3a879 100644
--- a/nixpkgs/pkgs/tools/misc/barman/default.nix
+++ b/nixpkgs/pkgs/tools/misc/barman/default.nix
@@ -1,29 +1,37 @@
-{ buildPythonApplication, fetchurl, lib
-, python-dateutil, argcomplete, argh, psycopg2, boto3
+{ fetchFromGitHub
+, lib
+, python3Packages
 }:
-
-buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "barman";
-  version = "2.12";
+  version = "2.17";
 
-  outputs = [ "out" "man" ];
-  src = fetchurl {
-    url = "mirror://sourceforge/pgbarman/${version}/barman-${version}.tar.gz";
-    sha256 = "Ts8I6tlP2GRp90OIIKXy+cRWWvUO3Sm86zq2dtVP5YE=";
+  src = fetchFromGitHub {
+    owner = "EnterpriseDB";
+    repo = pname;
+    rev = "release/${version}";
+    sha256 = "0c4gcs4kglbb2qma4nlvw0ycj1wnsg934p9vs50dvqi9099hxkmb";
   };
 
-  propagatedBuildInputs = [ python-dateutil argh psycopg2 boto3 argcomplete ];
+  checkInputs = with python3Packages; [
+    mock
+    pytestCheckHook
+  ];
 
-  # Tests are not present in tarball
-  checkPhase = ''
-    $out/bin/barman --help > /dev/null
-  '';
+  propagatedBuildInputs = with python3Packages; [
+    argcomplete
+    azure-identity
+    azure-storage-blob
+    boto3
+    psycopg2
+    python-dateutil
+  ];
 
   meta = with lib; {
-    homepage = "https://www.2ndquadrant.com/en/resources/barman/";
-    description = "Backup and Disaster Recovery Manager for PostgreSQL";
+    homepage = "https://www.pgbarman.org/";
+    description = "Backup and Recovery Manager for PostgreSQL";
     maintainers = with maintainers; [ freezeboy ];
-    license = licenses.gpl2;
+    license = licenses.gpl3Plus;
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/bash_unit/default.nix b/nixpkgs/pkgs/tools/misc/bash_unit/default.nix
index 9f574da85a51..e77bf22d826c 100644
--- a/nixpkgs/pkgs/tools/misc/bash_unit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bash_unit/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bash_unit";
-  version = "1.7.2";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "pgrange";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+hEgag5H7PaBwZSBp3D17q3TZRO2SVBe5M1Ep/jeg1w=";
+    sha256 = "sha256-QWZnzliiqUfg6kXq1VGTNczupxNCgz1gFURrB/K2b4A=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/bat/default.nix b/nixpkgs/pkgs/tools/misc/bat/default.nix
index de0f13c77fd0..a46a32d6a88b 100644
--- a/nixpkgs/pkgs/tools/misc/bat/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bat/default.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenv
-, nixosTests
 , rustPlatform
 , fetchFromGitHub
 , pkg-config
@@ -41,7 +40,18 @@ rustPlatform.buildRustPackage rec {
 
   checkFlags = [ "--skip=pager_more" "--skip=pager_most" ];
 
-  passthru.tests = { inherit (nixosTests) bat; };
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    testFile=$(mktemp /tmp/bat-test.XXXX)
+    echo -ne 'Foobar\n\n\n42' > $testFile
+    $out/bin/bat -p $testFile | grep "Foobar"
+    $out/bin/bat -p $testFile -r 4:4 | grep 42
+    rm $testFile
+
+    runHook postInstallCheck
+  '';
 
   meta = with lib; {
     description = "A cat(1) clone with syntax highlighting and Git integration";
diff --git a/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix b/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix
index 72f142105b71..06b8aa4d9609 100644
--- a/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bdf2psf";
-  version = "1.205";
+  version = "1.207";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/c/console-setup/bdf2psf_${version}_all.deb";
-    sha256 = "sha256-elFmsqtndo4ReR4IoyhC56k0PMqy5QrUxOGUQLGeu0I=";
+    sha256 = "0k9dv4s44k1khrhr6acsb2sqr5iq3d03ync82nzan5j7mckzs76v";
   };
 
   nativeBuildInputs = [ dpkg ];
diff --git a/nixpkgs/pkgs/tools/misc/beats/default.nix b/nixpkgs/pkgs/tools/misc/beats/default.nix
index 3e471c76fdfe..9b387a3939d5 100644
--- a/nixpkgs/pkgs/tools/misc/beats/default.nix
+++ b/nixpkgs/pkgs/tools/misc/beats/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1rdvsqrjpily74y8vwch711401585xckb4p41cfwrmj6vf44jhif";
   };
 
-  makeFlags = [ "PREFIX=$(out)" ];
+  makeFlags = [ "PREFIX=$(out)" "CC=cc" ];
 
   meta = with lib; {
     homepage = "https://github.com/j0hax/beats";
diff --git a/nixpkgs/pkgs/tools/misc/bibutils/default.nix b/nixpkgs/pkgs/tools/misc/bibutils/default.nix
index 03b35811bc5b..66a518407025 100644
--- a/nixpkgs/pkgs/tools/misc/bibutils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bibutils/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bibutils";
-  version = "6.10";
+  version = "7.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/bibutils/bibutils_${version}_src.tgz";
-    sha256 = "15p4av74ihsg03j854dkdqihpspwnp58p9g1lhx48w8kz91c0ml6";
+    sha256 = "sha256-bgKK7x6Kaz5azvCYWEp7tocI81z+dAEbNBwR/qXktcM=";
   };
 
   preConfigure = lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/tools/misc/birdfont/default.nix b/nixpkgs/pkgs/tools/misc/birdfont/default.nix
index 5473fa0e78ce..a6c2ca77c5a7 100644
--- a/nixpkgs/pkgs/tools/misc/birdfont/default.nix
+++ b/nixpkgs/pkgs/tools/misc/birdfont/default.nix
@@ -4,11 +4,11 @@ gobject-introspection, gsettings-desktop-schemas, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "birdfont";
-  version = "2.29.5";
+  version = "2.29.6";
 
   src = fetchurl {
     url = "https://birdfont.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "sha256-eIqq4ehUB4lF89ikrHeN5Akq14nxYMxREZzPSVnv+nU=";
+    sha256 = "sha256-INHLH3wv1Rr3RLECAN2CQvctIjWdksxdfVfBkWnx+Is=";
   };
 
   nativeBuildInputs = [ python3 pkg-config vala gobject-introspection wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/tools/misc/bitbucket-cli/default.nix b/nixpkgs/pkgs/tools/misc/bitbucket-cli/default.nix
new file mode 100644
index 000000000000..4a770b187fe7
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/bitbucket-cli/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, python2
+}:
+
+python2.pkgs.buildPythonApplication rec {
+  pname = "bitbucket-cli";
+  version = "0.5.1";
+
+  src = python2.pkgs.fetchPypi {
+    inherit pname version;
+    sha256 = "1xmn73x6jirnwfwcdy380ncmkai9f9dhmld6zin01ypbqwgf50fq";
+  };
+
+  propagatedBuildInputs = with python2.pkgs; [
+    requests
+  ];
+
+  # No tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Bitbucket command line interface";
+    homepage = "https://bitbucket.org/zhemao/bitbucket-cli";
+    maintainers = with maintainers; [ refnil ];
+    license = licenses.bsd2;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/bitwise/default.nix b/nixpkgs/pkgs/tools/misc/bitwise/default.nix
index a7ae6243f453..fc6f58ca2f4e 100644
--- a/nixpkgs/pkgs/tools/misc/bitwise/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bitwise/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwise";
-  version = "0.42";
+  version = "0.43";
 
   src = fetchFromGitHub {
     owner = "mellowcandle";
     repo = "bitwise";
     rev = "v${version}";
-    sha256 = "154y0sn3z64z56k84ghsazkyihbkaz40hfwxcxdymnhvhh6m9f3g";
+    sha256 = "18sz7bfpq83s2zhw7c35snz6k3b6rzad2mmfq2qwmyqwypbp1g7l";
   };
 
   buildInputs = [ ncurses readline ];
diff --git a/nixpkgs/pkgs/tools/misc/bkyml/default.nix b/nixpkgs/pkgs/tools/misc/bkyml/default.nix
index aea83e7c99ff..16af495b9345 100644
--- a/nixpkgs/pkgs/tools/misc/bkyml/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bkyml/default.nix
@@ -32,7 +32,7 @@ buildPythonApplication rec {
   pythonImportsCheck = [ "bkyml" ];
 
   propagatedBuildInputs = [
-    ruamel_yaml
+    ruamel-yaml
     setuptools
   ];
 
diff --git a/nixpkgs/pkgs/tools/misc/blink1-tool/default.nix b/nixpkgs/pkgs/tools/misc/blink1-tool/default.nix
index 23096bb2eafc..fc82d8244970 100644
--- a/nixpkgs/pkgs/tools/misc/blink1-tool/default.nix
+++ b/nixpkgs/pkgs/tools/misc/blink1-tool/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, libusb1, pkg-config, ... }:
+{ lib, stdenv, fetchFromGitHub, libusb1, pkg-config, ... }:
 
 stdenv.mkDerivation rec {
   pname = "blink1";
   version = "1.98a";
 
-  src = fetchurl {
-    url = "https://github.com/todbot/blink1/archive/v${version}.tar.gz";
-    sha256 = "1waci6hccv5i50v5d3z7lx4h224fbkj66ywfynnsgn46w0jm6imv";
+  src = fetchFromGitHub {
+    owner = "todbot";
+    repo = "blink1";
+    rev = "v${version}";
+    sha256 = "sha256-o4pOF6Gp70AL63ih6BNOpRTCs7+qzeZrEqaR4hYDTG8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/tools/misc/bottom-rs/default.nix b/nixpkgs/pkgs/tools/misc/bottom-rs/default.nix
index 9e1ecc03c120..f9a24537676f 100644
--- a/nixpkgs/pkgs/tools/misc/bottom-rs/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bottom-rs/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     description = "Fantastic (maybe) CLI for translating between bottom and human-readable text";
     homepage = "https://github.com/bottom-software-foundation/bottom-rs";
     license = licenses.mit;
-    maintainers = with maintainers; [ winterqt ];
+    maintainers = with maintainers; [ winter ];
     mainProgram = "bottomify";
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/broot/default.nix b/nixpkgs/pkgs/tools/misc/broot/default.nix
index 9193e18d116a..d1cc0503efc2 100644
--- a/nixpkgs/pkgs/tools/misc/broot/default.nix
+++ b/nixpkgs/pkgs/tools/misc/broot/default.nix
@@ -9,19 +9,20 @@
 , oniguruma
 , libiconv
 , Security
+, libxcb
 , zlib
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "1.6.2";
+  version = "1.7.4";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-SjfTMBGby2jzmeNEtBVYqumLExhXW8nqxpbaeeaRM3w=";
+    sha256 = "sha256-laFLm6A0EeprSHuqBi3p4ykgBbCinYU1sf0iRV0PY/M=";
   };
 
-  cargoHash = "sha256-BdSqTzXu7Glhr0fQGmnkg5BXYgdQS6jgfH3A9hPpECY=";
+  cargoHash = "sha256-0ybig1S56cJjf6QGWuDasfsIiwRhK+bpWNKOjs4D7P8=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -29,7 +30,7 @@ rustPlatform.buildRustPackage rec {
     pkg-config
   ];
 
-  buildInputs = [ libgit2 oniguruma ] ++ lib.optionals stdenv.isDarwin [
+  buildInputs = [ libgit2 oniguruma libxcb ] ++ lib.optionals stdenv.isDarwin [
     libiconv
     Security
     zlib
@@ -72,9 +73,15 @@ rustPlatform.buildRustPackage rec {
     installManPage man/broot.1
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/broot --version | grep "${version}"
+  '';
+
   meta = with lib; {
     description = "An interactive tree view, a fuzzy search, a balanced BFS descent and customizable commands";
     homepage = "https://dystroy.org/broot/";
+    changelog = "https://github.com/Canop/broot/releases/tag/v${version}";
     maintainers = with maintainers; [ dywedir ];
     license = with licenses; [ mit ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/bunnyfetch/default.nix b/nixpkgs/pkgs/tools/misc/bunnyfetch/default.nix
index e2b99da82db0..d03fea2cefd2 100644
--- a/nixpkgs/pkgs/tools/misc/bunnyfetch/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bunnyfetch/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "bunnyfetch";
-  version = "unstable-2021-06-19";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "Rosettea";
     repo = "bunnyfetch";
-    rev = "24370338b936bae1ebdefea73e8372ac0b4d2858";
-    sha256 = "09wcffx6ak4djm2lrxq43n27p9qmczng4rf11qpwx3w4w67jvpz9";
+    rev = "v${version}";
+    sha256 = "sha256-6MnjCXc9/8twdf8PHKsVJY1yWYwUf5R01vtQFJbyy7M=";
   };
 
-  vendorSha256 = "1vv69y0x06kn99lw995sbkb7vgd0yb18flkr2ml8ss7q2yvz37vi";
+  vendorSha256 = "sha256-w+O1dU8t7uNvdlFnYhCdJCDixpWWZAnj9GrtsCbu9SM=";
 
   # No upstream tests
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/misc/byobu/default.nix b/nixpkgs/pkgs/tools/misc/byobu/default.nix
index ffe3fd0fe162..23df93172e99 100644
--- a/nixpkgs/pkgs/tools/misc/byobu/default.nix
+++ b/nixpkgs/pkgs/tools/misc/byobu/default.nix
@@ -7,7 +7,7 @@ let
 in
 stdenv.mkDerivation rec {
   version = "5.133";
-  name = "byobu-" + version;
+  pname = "byobu";
 
   src = fetchurl {
     url = "https://launchpad.net/byobu/trunk/${version}/+download/byobu_${version}.orig.tar.gz";
diff --git a/nixpkgs/pkgs/tools/misc/calamares/default.nix b/nixpkgs/pkgs/tools/misc/calamares/default.nix
index 094b9453358a..2c7c2282b41e 100644
--- a/nixpkgs/pkgs/tools/misc/calamares/default.nix
+++ b/nixpkgs/pkgs/tools/misc/calamares/default.nix
@@ -6,12 +6,12 @@
 
 mkDerivation rec {
   pname = "calamares";
-  version = "3.2.43";
+  version = "3.2.44.3";
 
   # release including submodule
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-68mt+bkdEBUODvyf3hh09snL+ecMfmSqNlVleOOJ2K8=";
+    sha256 = "sha256-p3ctULrzXPt9dNs8Ckb7cqdOBpp4qOmEwu0dEVq8lEw=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/nixpkgs/pkgs/tools/misc/chezmoi/default.nix b/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
index 415fed33170c..932d9c19f302 100644
--- a/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
+++ b/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "chezmoi";
-  version = "2.6.1";
+  version = "2.9.4";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    sha256 = "sha256-x5KqDVy+thIymZHsmyO+WsGq0IBb2cZxogKsjzunC2o=";
+    sha256 = "sha256-idkPhBGrLz4xv/DnFt4iiO4jVRTsBmMXGhM0MQmVtpw=";
   };
 
-  vendorSha256 = "sha256-8NhJfA9q6di/IPL53U/dwGNAAdtuBX5Lf6fhTk4Mz0Q=";
+  vendorSha256 = "sha256-9uOlNgMsz4UklSk7UJDKZMjszoxQZK6mLQwhtK8I+Mc=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/cht.sh/default.nix b/nixpkgs/pkgs/tools/misc/cht.sh/default.nix
index e2672ab7bb0d..e9c045638e44 100644
--- a/nixpkgs/pkgs/tools/misc/cht.sh/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cht.sh/default.nix
@@ -10,15 +10,15 @@
 
 stdenv.mkDerivation {
   pname = "cht.sh";
-  version = "unstable-2021-04-25";
+  version = "unstable-2021-11-17";
 
   nativeBuildInputs = [ makeWrapper ];
 
   src = fetchFromGitHub {
     owner = "chubin";
     repo = "cheat.sh";
-    rev = "6d83c4d76c82a87cf6df436a5ab73e3b7c819e66";
-    sha256 = "dXLNPhkfbQIhFZixC674Fcegyo8+Um7E6cm56vMpCYI=";
+    rev = "e0010117ca3eeb22e79346cb37f3897b7404ed12";
+    sha256 = "GJSJyIQ+8kz/+8/3lgPVr+V6zoo7iW739Z2frLpMTJI=";
   };
 
   # Fix ".cht.sh-wrapped" in the help message
diff --git a/nixpkgs/pkgs/tools/misc/ckb-next/default.nix b/nixpkgs/pkgs/tools/misc/ckb-next/default.nix
index 81e51bbbf20f..2566ee0a2e5f 100644
--- a/nixpkgs/pkgs/tools/misc/ckb-next/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ckb-next/default.nix
@@ -1,5 +1,7 @@
-{ lib, mkDerivation, fetchFromGitHub, substituteAll, udev
-, pkg-config, qtbase, cmake, zlib, kmod, libXdmcp, qttools, qtx11extras, libdbusmenu }:
+{ lib, mkDerivation, fetchFromGitHub, substituteAll, udev, stdenv
+, pkg-config, qtbase, cmake, zlib, kmod, libXdmcp, qttools, qtx11extras, libdbusmenu
+, withPulseaudio ? stdenv.isLinux, libpulseaudio
+}:
 
 mkDerivation rec {
   version = "0.4.4";
@@ -20,7 +22,7 @@ mkDerivation rec {
     qttools
     qtx11extras
     libdbusmenu
-  ];
+  ] ++ lib.optional withPulseaudio libpulseaudio;
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/tools/misc/clickclack/default.nix b/nixpkgs/pkgs/tools/misc/clickclack/default.nix
index 75518e554ca8..0bcea9a2e8ea 100644
--- a/nixpkgs/pkgs/tools/misc/clickclack/default.nix
+++ b/nixpkgs/pkgs/tools/misc/clickclack/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clickclack";
-  version = "0.1.1";
+  version = "0.2";
 
   src = fetchFromSourcehut {
     owner = "~proycon";
     repo = "clickclack";
     rev = version;
-    sha256 = "1q8r0ng1bld5n82gh7my7ck90f4plf8vf019hm2wz475dl38izd5";
+    sha256 = "sha256-hldtHSRdw6yP9lUFna5yvJ3mOTbQbbQNnGM7fMQmmtM=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/clipnotify/default.nix b/nixpkgs/pkgs/tools/misc/clipnotify/default.nix
index 5cb3a5114d8a..51a67f6983f8 100644
--- a/nixpkgs/pkgs/tools/misc/clipnotify/default.nix
+++ b/nixpkgs/pkgs/tools/misc/clipnotify/default.nix
@@ -1,12 +1,12 @@
 { libX11, libXfixes, lib, stdenv, fetchFromGitHub }:
 stdenv.mkDerivation rec {
   pname = "clipnotify";
-  version = "git-2018-02-20";
+  version = "unstable-2018-02-20";
 
   src = fetchFromGitHub {
     owner = "cdown";
-    repo  = "clipnotify";
-    rev   = "9cb223fbe494c5b71678a9eae704c21a97e3bddd";
+    repo = "clipnotify";
+    rev = "9cb223fbe494c5b71678a9eae704c21a97e3bddd";
     sha256 = "1x9avjq0fgw0svcbw6b6873qnsqxbacls9sipmcv86xia4bxh8dn";
   };
 
diff --git a/nixpkgs/pkgs/tools/misc/cloc/default.nix b/nixpkgs/pkgs/tools/misc/cloc/default.nix
index 939c9f744f49..662a72f9e7a0 100644
--- a/nixpkgs/pkgs/tools/misc/cloc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cloc/default.nix
@@ -2,13 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "cloc";
-  version = "1.90";
+  version = "1.92";
 
   src = fetchFromGitHub {
     owner = "AlDanial";
     repo = "cloc";
     rev = "v${version}";
-    sha256 = "0ic9q6qqw5f1wafp9lpmhr0miasbdb9zr59c0jlymnzffdmnliyc";
+    sha256 = if stdenv.isDarwin then
+      "1hy1hskiw02b7xaxn2qz0v7znj14l49w1anx20z6rkcps7212l5l"
+    else
+      "sha256-tFARxNGXzWw+EN2qwBOhJEj7zwYfC9tVP0sAHqeGwcM=";
   };
 
   setSourceRoot = ''
@@ -16,7 +19,12 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = (with perlPackages; [ perl AlgorithmDiff ParallelForkManager RegexpCommon ]);
+  buildInputs = with perlPackages; [
+    perl
+    AlgorithmDiff
+    ParallelForkManager
+    RegexpCommon
+  ];
 
   makeFlags = [ "prefix=" "DESTDIR=$(out)" "INSTALL=install" ];
 
diff --git a/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/default.nix b/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/default.nix
index f1f7d1bf2392..5eff549a6517 100644
--- a/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/default.nix
@@ -2,23 +2,26 @@
 
 buildGoModule rec {
   pname = "cloud-sql-proxy";
-  version = "1.25.0";
+  version = "1.27.1";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
     repo = "cloudsql-proxy";
     rev = "v${version}";
-    sha256 = "0vz5fm1bgh2g7b320hchpfb4iql1src1rpm7324sqcd26p7w3mnl";
+    sha256 = "sha256-xVPs7D639KY2ryDZpivineH4yZSNXi78FWk2SFKX1sk=";
   };
 
   subPackages = [ "cmd/cloud_sql_proxy" ];
 
-  vendorSha256 = "04y6zx3jdyj07d68a4vk4p5rzvvjnvdwk9kkipmlmqg1xqwlb84m";
+  vendorSha256 = "sha256-913GJ/rPvDavQQMqDDTe4gBXziPPeQRPpUUG3DAz96g=";
+
+  checkFlags = [ "-short" ];
 
   meta = with lib; {
     description = "An authenticating proxy for Second Generation Google Cloud SQL databases";
     homepage = "https://github.com/GoogleCloudPlatform/cloudsql-proxy";
     license = licenses.asl20;
     maintainers = with maintainers; [ nicknovitski ];
+    mainProgram = "cloud_sql_proxy";
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/code-minimap/default.nix b/nixpkgs/pkgs/tools/misc/code-minimap/default.nix
index cc2d979ca757..6723ad98f489 100644
--- a/nixpkgs/pkgs/tools/misc/code-minimap/default.nix
+++ b/nixpkgs/pkgs/tools/misc/code-minimap/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "code-minimap";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "wfxr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-eCHmMtndcQJqKmjxhkcLvjMUXApkSnH+7qyG7PDfcwo=";
+    sha256 = "sha256-nUEmlKqCskPEQCOS2NC6jF4yVDarJeb3p+BKZq/2qvw=";
   };
 
-  cargoSha256 = "sha256-wKCANWznOJMlQ8T2q39NNNRmgPYMpbkJhXpxojusNsE=";
+  cargoSha256 = "sha256-yjjoQYYWK9/9fOP5ICnhpuF/07SyCszB9GCDr0GJ0v0=";
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
diff --git a/nixpkgs/pkgs/tools/misc/colorpicker/default.nix b/nixpkgs/pkgs/tools/misc/colorpicker/default.nix
index 07d15469383d..475041b4f682 100644
--- a/nixpkgs/pkgs/tools/misc/colorpicker/default.nix
+++ b/nixpkgs/pkgs/tools/misc/colorpicker/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "colorpicker";
-  version = "git-2018-01-14";
+  version = "unstable-2018-01-14";
 
   src = fetchFromGitHub {
     owner = "Ancurio";
-    repo  = "colorpicker";
-    rev   = "287676947e6e3b5b0cee784aeb1638cf22f0ce17";
+    repo = "colorpicker";
+    rev = "287676947e6e3b5b0cee784aeb1638cf22f0ce17";
     sha256 = "1kj1dpb79llrfpszraaz6r7ci114zqi5rmqxwsvq2dnnpjxyi29r";
   };
 
diff --git a/nixpkgs/pkgs/tools/misc/convbin/default.nix b/nixpkgs/pkgs/tools/misc/convbin/default.nix
index e350092a0e36..90b403adeb60 100644
--- a/nixpkgs/pkgs/tools/misc/convbin/default.nix
+++ b/nixpkgs/pkgs/tools/misc/convbin/default.nix
@@ -13,6 +13,10 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-zCRM62xwaPaN8+cg+CeaqK/9hKpZmSBBeUOQqAvQGYw=";
   };
 
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace Makefile --replace "-flto" ""
+  '';
+
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/convimg/default.nix b/nixpkgs/pkgs/tools/misc/convimg/default.nix
index 0c5ffb4a6dea..38c20ca4e84c 100644
--- a/nixpkgs/pkgs/tools/misc/convimg/default.nix
+++ b/nixpkgs/pkgs/tools/misc/convimg/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "convimg";
-  version = "8.3";
+  version = "8.9";
 
   src = fetchFromGitHub {
     owner = "mateoconlechuga";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1k2fkzfg08y2gcm8jabmb2plgqmgw6y30m73ys4mmbskxgy7hc3s";
+    sha256 = "sha256-JTKyOjeiu6FAUrDPDAwLBVgZwmNY11wHonqEV1ukRpw=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/tools/misc/coreshot/default.nix b/nixpkgs/pkgs/tools/misc/coreshot/default.nix
deleted file mode 100644
index bb2404b1ed52..000000000000
--- a/nixpkgs/pkgs/tools/misc/coreshot/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ mkDerivation, lib, fetchFromGitLab, qtbase, qtx11extras, libcprime, cmake, ninja }:
-
-mkDerivation rec {
-  pname = "coreshot";
-  version = "4.2.0";
-
-  src = fetchFromGitLab {
-    owner = "cubocore/coreapps";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-HKgGeuM3CKGXwnFwSw6a0AB0klZKY5YS9C4q2UT6TN8=";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    ninja
-  ];
-
-  buildInputs = [
-    qtbase
-    qtx11extras
-    libcprime
-  ];
-
-  meta = with lib; {
-    description = "A screen capture utility from the C Suite";
-    homepage = "https://gitlab.com/cubocore/coreapps/coreshot";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ dan4ik605743 ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.23-4.cygwin.patch b/nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.23-4.cygwin.patch
deleted file mode 100644
index 2f69347ffabd..000000000000
--- a/nixpkgs/pkgs/tools/misc/coreutils/coreutils-8.23-4.cygwin.patch
+++ /dev/null
@@ -1,1259 +0,0 @@
---- coreutils-8.23/ChangeLog	2014-07-18 15:22:24.000000000 -0700
-+++ coreutils-8.23/ChangeLog	2014-10-13 08:56:50.775188900 -0700
-@@ -1,3 +1,220 @@
-+2014-10-13  U-WIN-RSJ0SJPBR3E\Administrator  <Administrator@WIN-KQ1OCEBI2E8>
-+
-+	Cygwin release 8.23-4
-+	* copy.c (copy_internal): Fix typo that broke recursive copy
-+	when dealing with directories.
-+
-+2014-09-24  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.23-3
-+	* lib/cygwin.c (cygwin_spelling): Skip .exe magic if .exe is
-+	already present.  Also honor .exe magic on symlinks.
-+	* lib/same.c (same_name): Treat files as same if only difference
-+	is .exe magic.
-+	* copy.c (copy): Move symlink special casing here.
-+	* install.c (strip): Update caller.
-+	* ls.c (gobble_file): Likewise.
-+	* stat.c (do_statfs, do_stat): Likewise.
-+
-+2014-08-12  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.23-2.
-+	Drop hostname.
-+
-+2014-08-01  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.23-1.
-+	* configure.ac: Disable stdbuf.
-+	* lib/local.mk: Upstream switched to flat make, impacting how
-+	we build local cygwin.c code.
-+	* lib/canonicalize.c: Accepted upstream.
-+	* lib/file-has-acl.c: Likewise.
-+	* realpath.c: Likewise.
-+	* su.c: Upstream dropped su.
-+	* Makefile.am: Drop su changes.
-+	* chroot.c: Adapt to new upstream code.
-+
-+2012-02-04  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.15-1.
-+	* lib/fts.c: Early gnulib fix is now upstream.
-+	* lib/canonicalize.c: Backport gnulib fix for /// -> /.
-+	* realpath.c: Backport gnulib fix for --relative-to.
-+
-+2011-10-27  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.14-1.
-+	* lib/ftc.c: Backport gnulib fix to make rm close before rmdir.
-+	* lib/cygwin.c (cygwin_spelling): Fix logic when 'f' and 'f.exe'
-+	exist but are different files.
-+	* stat.c: Fix --append-exe.
-+
-+2011-02-04  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.10-1.
-+
-+2010-12-24  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.8-1.
-+	* lib/mountlist.c (ME_REMOTE): Restore previous cygwin hack to
-+	determine remote drives, lost since 6.11-1.
-+
-+2010-04-29  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.5-1.
-+
-+2010-03-11  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.4-1.
-+	* lib/xfreopen.c (xfreopen): Consolidate workaround for broken
-+	freopen usage into one place.
-+	* copy.c (copy): Reinstate .exe magic handling when copying
-+	files with implicit .exe.
-+
-+2008-12-13  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 7.0-1.
-+
-+2008-06-02  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 6.12-1.
-+
-+2008-05-12  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 6.11-1, requires cygwin 1.7.0.
-+	* lib/cygwin.h (CYGWIN_APPEND_EXE): Accomodate new PATH_MAX.
-+	* lib/cygwin.c (cygwin_spelling): Accomodate new trailing
-+	`.' semantics.
-+	* lib/same.c (same_name): Accomodate new PATH_MAX.
-+
-+2008-01-24  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 6.10-1.
-+	* lib/hash-triple.c (triple_hash): Hash case-insensitively.
-+	* lib/hash-pjw.h (hash_pjw_case): New interface.
-+	* lib/hash-pjw.c (hash_pjw_case): New function.
-+	* chcon.c (main): Support my root_dev_ino tweaks.
-+
-+2007-08-21  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 6.9-5.
-+	* same.c (same_name): Detect same file differing only by case.
-+	* copy.c (same_file_ok): Add parameter to detect when case
-+	change is being attempted.
-+	(triple_hash): Hash names case-insensitively.
-+	(copy_internal): Accommodate case-change attempts.
-+	* mv.c (do_move): Allow 'mv foo/ Foo/' as shorthand for
-+	'mv -T foo/ Foo/'.
-+
-+2007-07-23  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 6.9-4.
-+	* dd.c (main): Fix typo in earlier cygwin patch.
-+
-+2007-05-29  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 6.9-3.
-+	* cksum.c (main): Don't lose append mode.
-+	* md5sum.c (main): Likewise.
-+	* cat.c (main): Likewise.
-+	* head.c (main): Likewise.
-+	* tac.c (main): Likewise.
-+	* tail.c (main): Likewise.
-+	* tee.c (main): Likewise.
-+	* tr.c (main): Likewise.
-+
-+2006-11-24  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 6.6-2.
-+	* lib/cygwin.c (cygwin_spelling): Work even with old-style
-+	symlinks, which lacked .lnk suffix.
-+
-+2006-04-14  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 5.94-5. Experimental only, depends on cygwin
-+	snapshot 20060329 or later.
-+	* dd.c (main): Default to binary mode.
-+	* system.h (rpl_freopen): Remove this hack, now that cygwin
-+	freopen(NULL) works.
-+	* lib/quotearg.c (quote_eight_bit): New variable, so I can...
-+	(quotearg_buffer_restyled): treat 8-bit	characters as printable
-+	when outputting to a terminal.
-+	* lib/quote.c (quote_n): Use it.
-+
-+2006-02-28  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 5.94-4. Experimental only, depends on cygwin
-+	snapshot 20060227 or later.
-+	* lib/root-dev-ino.h (struct root_dev_ino): New struct.
-+	(ROOT_DEV_INO_CHECK, ROOT_DEV_INO_WARN): Also track //.
-+	* lib/root-dev-ino.c (get_root_dev_ino): Also track //.
-+	* chmod.c (root_dev_ino): Use new type.
-+	(main): Ditto.
-+	* chown-core.h (struct Chown_option): Ditto.
-+	* chown.c (main): Ditto.
-+	* remove.h (struct rm_options): Ditto.
-+	* rm.c (main): Ditto.
-+	* pwd.c (robust_getcwd): Ditto.  Also fix bug when in / or //.
-+
-+2006-01-24  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 5.93-3, depends on cygwin-1.5.19-1 or later.
-+	* cksum.c (main): Always output binary files.
-+	* md5sum.c (main): Likewise.
-+	* su.c (correct_password): On NT machines, attempt
-+	passwordless login first, and give better error message if
-+	password check fails.  I still don't know how to distinguish
-+	between insufficient privileges vs. incorrect password.
-+	* dircolors.c (main): Silence warning from tcsh 6.14.00.
-+
-+2005-10-15  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 5.90-3, depends on snapshot 20051003 or later (will
-+	become cygwin 1.5.19).
-+	* doc/coreutils.texi (ls invocation, stat invocation): Document
-+	--append-exe.
-+	* ls.c (usage): Ditto.
-+	(gobble_file): Append .exe as needed when requested.
-+	* stat.c (usage): Document --append-exe.
-+	(do_stat, do_statfs): Append .exe as needed when requested.
-+
-+2005-10-08  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 5.90-2, depends on snapshot 20051003 or later (will
-+	become cygwin 1.5.19).
-+	* lib/mkdir-p.c (make_dir_parents): Fix bug in last patch.
-+	* lib/cygwin.h (CYGWIN_APPEND_EXE): Factor into common macro.
-+	* copy.c (copy): Use new macro.
-+	* install.c (strip): Ditto.
-+	* ln.c (do_link): Ditto.
-+
-+2005-07-13  Eric Blake  <ebb9@byu.net>
-+
-+	* doc/coreutils.texi (ln invocation): Document --disable-exe-magic.
-+	* ln.c (usage): Likewise.
-+	(do_link): Skip .exe magic when requested.
-+
-+2005-07-12  Eric Blake  <ebb9@byu.net>
-+
-+	* lib/cygwin.c (cygwin_spelling): Don't append .exe to directories.
-+	Make sure .exe exists before returning 1, because otherwise
-+	virtual directories such as /cygdrive have problems.
-+
-+2005-07-07  Eric Blake  <ebb9@byu.net>
-+
-+	* lib/cygwin.h: New file, defining cygwin_spelling.
-+	* lib/cygwin.c: New file.
-+	* lib/Makefile.am: Compile it.
-+	* copy.c (copy_internal, copy): Use new cygwin_spelling() to
-+	undo .exe magic.
-+	* link.c (do_link): Likewise.
-+	* install.c (strip): Likewise.
-+
-+2005-01-03  Corinna Vinschen  <corinna@vinschen.de>
-+
-+	* install.c (strip): Check for .exe here since strip doesn't.
-+
-+
- 2014-07-18  Pádraig Brady  <P@draigBrady.com>
- 
- 	version 8.23
---- coreutils-8.23/configure.ac	2014-07-17 18:40:57.000000000 -0700
-+++ coreutils-8.23/configure.ac	2014-10-13 08:30:37.165262300 -0700
-@@ -473,7 +473,7 @@ AC_COMPILE_IFELSE(
-   [stdbuf_supported=yes],
-   [stdbuf_supported=no])
- AC_MSG_RESULT([$stdbuf_supported])
--if test "$stdbuf_supported" = "yes"; then
-+if test "$stdbuf_supported" = "yes" && test -z "$EXEEXT"; then
-   gl_ADD_PROG([optional_bin_progs], [stdbuf])
- fi
- 
---- coreutils-8.23/doc/coreutils.texi	2014-07-13 15:09:52.000000000 -0700
-+++ coreutils-8.23/doc/coreutils.texi	2014-10-13 08:30:37.180881200 -0700
-@@ -7838,6 +7838,14 @@ These options change how file names them
- 
- @table @samp
- 
-+@item --append-exe
-+@opindex --append-exe
-+@cindex appending exe on cygwin
-+Cygwin only: Cygwin normally performs @samp{.exe} magic, where a
-+command line argument typed without an .exe extension transparently
-+refers to the existing file with an extension.  Specifying this option
-+will make the .exe show if cygwin magic was involved.
-+
- @item -b
- @itemx --escape
- @itemx --quoting-style=escape
-@@ -11799,6 +11807,14 @@ With this option, @command{stat} acts on
- by each symbolic link argument.
- Without it, @command{stat} acts on any symbolic link argument directly.
- 
-+@item --append-exe
-+@opindex --append-exe
-+@cindex appending exe on cygwin
-+Cygwin only: Cygwin normally performs .exe magic, where a command line
-+argument typed without an .exe extension transparently refers to the
-+existing file with an extension.  Specifying this option will make
-+the .exe show if cygwin magic was involved.
-+
- @item -f
- @itemx --file-system
- @opindex -f
---- coreutils-8.23/lib/cygwin.c	1969-12-31 16:00:00.000000000 -0800
-+++ coreutils-8.23/lib/cygwin.c	2014-10-13 08:30:37.180881200 -0700
-@@ -0,0 +1,67 @@
-+/* cygwin.c - helper functions unique to Cygwin
-+
-+   Copyright (C) 2005, 2006, 2008, 2011 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify
-+   it under the terms of the GNU General Public License as published by
-+   the Free Software Foundation; either version 3, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with this program; if not, write to the Free Software Foundation,
-+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+
-+   Written by Eric Blake.  */
-+
-+#include <config.h>
-+
-+#include "cygwin.h"
-+
-+#include <errno.h>
-+#include <limits.h>
-+#include <string.h>
-+#include <unistd.h>
-+
-+/* Return -1 if PATH is not found, 0 if PATH will not have .exe
-+   appended (it is possible that a PATH that does not exist still
-+   returns 0 instead of -1, or fails for a PATH that exists but cannot
-+   be stat'ed), and positive if PATH has ".exe" automatically appended
-+   by cygwin (1 if PATH is a symlink, 2 otherwise).  Won't change errno.  */
-+
-+int
-+cygwin_spelling (char const *path)
-+{
-+  int saved_errno = errno;
-+  int result = 0; /* Start with assumption that PATH is okay.  */
-+  int len;
-+  struct stat st1;
-+  struct stat st2;
-+  char *path_exe;
-+
-+  if (! path || ! *path || len > PATH_MAX)
-+    /* PATH will cause EINVAL or ENAMETOOLONG, treat it as non-existing.  */
-+    return -1;
-+  len = strlen (path);
-+  if (path[len - 1] == '/'
-+      || (len > 4 && !strcasecmp (&path[len - 4], ".exe")))
-+    /* Don't change spelling if there is a trailing `/' or '.exe'.  */
-+    return 0;
-+  if (lstat (path, &st1) < 0 || S_ISDIR(st1.st_mode))
-+    {
-+      errno = saved_errno;
-+      return -1;
-+    }
-+  path_exe = malloca (len + 5); /* adding ".exe" and NUL.  */
-+  strcat (stpcpy (path_exe, path), ".exe");
-+  if (lstat (path_exe, &st2) == 0 && st1.st_ino == st2.st_ino)
-+    result = 1 + !S_ISLNK(st1.st_mode);
-+  freea (path_exe);
-+
-+  errno = saved_errno;
-+  return result;
-+}
---- coreutils-8.23/lib/cygwin.h	1969-12-31 16:00:00.000000000 -0800
-+++ coreutils-8.23/lib/cygwin.h	2014-10-13 08:30:37.180881200 -0700
-@@ -0,0 +1,38 @@
-+/* cygwin.h - helper functions unique to Cygwin
-+
-+   Copyright (C) 2005, 2006, 2008, 2010, 2011 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify
-+   it under the terms of the GNU General Public License as published by
-+   the Free Software Foundation; either version 3, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with this program; if not, write to the Free Software Foundation,
-+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+
-+   Written by Eric Blake.  */
-+
-+#ifndef CYGWIN_H
-+# define CYGWIN_H 1
-+
-+#include "malloca.h"
-+
-+int cygwin_spelling (char const *);
-+
-+/* Append ".exe" to char *__NAME_ORIG, where __NAME is either NULL or
-+   between __NAME_ORIG and the nul terminator.  Both params will be
-+   evaluated more than once and assigned the new value.  The user must
-+   later call freea(__NAME).  */
-+#define CYGWIN_APPEND_EXE(__name, __name_orig)                          \
-+  __name_orig = __name =                                                \
-+    strcat (strcpy (malloca (strchr (__name ? __name : __name_orig, '\0') \
-+                             - (__name_orig) + 5),                      \
-+                    __name_orig), ".exe")
-+
-+#endif /* CYGWIN_H */
---- coreutils-8.23/lib/hash-pjw.c	2014-05-29 05:05:50.000000000 -0700
-+++ coreutils-8.23/lib/hash-pjw.c	2014-10-13 08:30:37.180881200 -0700
-@@ -19,6 +19,7 @@
- 
- #include "hash-pjw.h"
- 
-+#include <ctype.h>
- #include <limits.h>
- 
- #define SIZE_BITS (sizeof (size_t) * CHAR_BIT)
-@@ -38,3 +39,16 @@ hash_pjw (const void *x, size_t tablesiz
- 
-   return h % tablesize;
- }
-+
-+/* Likewise, but case-insensitive.  */
-+size_t
-+hash_pjw_case (const void *x, size_t tablesize)
-+{
-+  const unsigned char *s;
-+  size_t h = 0;
-+
-+  for (s = x; *s; s++)
-+    h = tolower (*s) + ((h << 9) | (h >> (SIZE_BITS - 9)));
-+
-+  return h % tablesize;
-+}
---- coreutils-8.23/lib/hash-pjw.h	2014-05-29 05:05:50.000000000 -0700
-+++ coreutils-8.23/lib/hash-pjw.h	2014-10-13 08:30:37.180881200 -0700
-@@ -21,3 +21,4 @@
-    The result is platform dependent: it depends on the size of the 'size_t'
-    type and on the signedness of the 'char' type.  */
- extern size_t hash_pjw (void const *x, size_t tablesize) _GL_ATTRIBUTE_PURE;
-+extern size_t hash_pjw_case (void const *x, size_t tablesize) _GL_ATTRIBUTE_PURE;
---- coreutils-8.23/lib/hash-triple.c	2014-05-29 05:05:50.000000000 -0700
-+++ coreutils-8.23/lib/hash-triple.c	2014-10-13 08:30:37.180881200 -0700
-@@ -34,7 +34,13 @@ size_t
- triple_hash (void const *x, size_t table_size)
- {
-   struct F_triple const *p = x;
-+#if !__CYGWIN__
-   size_t tmp = hash_pjw (p->name, table_size);
-+#else // cygwin
-+  /* Hash case-insensitively, to force collisions on names that differ by
-+     case; copy.c can then account for case-insensitive renames. */
-+  size_t tmp = hash_pjw_case (p->name, table_size);
-+#endif
- 
-   /* Ignoring the device number here should be fine.  */
-   return (tmp ^ p->st_ino) % table_size;
---- coreutils-8.23/lib/local.mk	2013-12-04 06:48:30.000000000 -0800
-+++ coreutils-8.23/lib/local.mk	2014-10-13 08:30:37.180881200 -0700
-@@ -3,3 +3,6 @@ include lib/gnulib.mk
- # Allow "make distdir" to succeed before "make all" has run.
- dist-hook: $(noinst_LIBRARIES)
- .PHONY: dist-hook
-+
-+# Hook in cygwin helper
-+lib_libcoreutils_a_SOURCES += lib/cygwin.c lib/cygwin.h
---- coreutils-8.23/lib/root-dev-ino.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/lib/root-dev-ino.c	2014-10-13 08:30:37.180881200 -0700
-@@ -25,13 +25,17 @@
- /* Call lstat to get the device and inode numbers for '/'.
-    Upon failure, return NULL.  Otherwise, set the members of
-    *ROOT_D_I accordingly and return ROOT_D_I.  */
--struct dev_ino *
--get_root_dev_ino (struct dev_ino *root_d_i)
-+struct root_dev_ino *
-+get_root_dev_ino (struct root_dev_ino *root_d_i)
- {
-   struct stat statbuf;
-   if (lstat ("/", &statbuf))
-     return NULL;
--  root_d_i->st_ino = statbuf.st_ino;
--  root_d_i->st_dev = statbuf.st_dev;
-+  root_d_i->single_slash.st_ino = statbuf.st_ino;
-+  root_d_i->single_slash.st_dev = statbuf.st_dev;
-+  if (lstat ("//", &statbuf))
-+    return NULL;
-+  root_d_i->double_slash.st_ino = statbuf.st_ino;
-+  root_d_i->double_slash.st_dev = statbuf.st_dev;
-   return root_d_i;
- }
---- coreutils-8.23/lib/root-dev-ino.h	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/lib/root-dev-ino.h	2014-10-13 08:30:37.180881200 -0700
-@@ -21,19 +21,26 @@
- # include "dev-ino.h"
- # include "same-inode.h"
- 
--struct dev_ino *
--get_root_dev_ino (struct dev_ino *root_d_i);
-+struct root_dev_ino
-+{
-+  struct dev_ino single_slash;
-+  struct dev_ino double_slash;
-+};
-+
-+struct root_dev_ino *
-+get_root_dev_ino (struct root_dev_ino *root_d_i);
- 
- /* These macros are common to the programs that support the
-    --preserve-root and --no-preserve-root options.  */
- 
- # define ROOT_DEV_INO_CHECK(Root_dev_ino, Dir_statbuf) \
--    (Root_dev_ino && SAME_INODE (*Dir_statbuf, *Root_dev_ino))
-+  (Root_dev_ino && (SAME_INODE (*Dir_statbuf, (Root_dev_ino)->single_slash) \
-+                    || SAME_INODE (*Dir_statbuf, (Root_dev_ino)->double_slash)))
- 
- # define ROOT_DEV_INO_WARN(Dirname)					\
-   do									\
-     {									\
--      if (STREQ (Dirname, "/"))						\
-+      if (STREQ (Dirname, "/") || STREQ (Dirname, "//"))                \
-         error (0, 0, _("it is dangerous to operate recursively on %s"),	\
-                quote (Dirname));					\
-       else								\
---- coreutils-8.23/lib/same.c	2014-05-29 05:05:50.000000000 -0700
-+++ coreutils-8.23/lib/same.c	2014-10-13 08:30:37.180881200 -0700
-@@ -40,6 +40,13 @@
- #include "error.h"
- #include "same-inode.h"
- 
-+#if __CYGWIN__
-+# include <sys/cygwin.h>
-+# include "cygwin.h"
-+# include "malloca.h"
-+# include "memcasecmp.h"
-+#endif
-+
- #ifndef MIN
- # define MIN(a, b) ((a) < (b) ? (a) : (b))
- #endif
-@@ -59,6 +66,45 @@ same_name (const char *source, const cha
-     (source_baselen == dest_baselen
-      && memcmp (source_basename, dest_basename, dest_baselen) == 0);
-   bool compare_dirs = identical_basenames;
-+#if __CYGWIN__
-+  /* If two names differ case-insensitively by only an '.exe' suffix,
-+     do some sleuthing to see if .exe magic matters on the shorter
-+     name.  Swapping the longer name to dest avoids duplication.  */
-+  if (source_baselen == dest_baselen + 4)
-+    {
-+      char const *tmp_basename = source_basename;
-+      size_t tmp_baselen = source_baselen;
-+      source_basename = dest_basename;
-+      source_baselen = dest_baselen;
-+      dest_basename = tmp_basename;
-+      dest_baselen = tmp_baselen;
-+    }
-+  if (source_baselen + 4 == dest_baselen
-+      && !memcasecmp (dest_basename - 4, ".exe", 4)
-+      && !memcasecmp (source_basename, dest_basename, source_baselen)
-+      && 0 < cygwin_spelling(source))
-+    dest_baselen -= 4;
-+  /* Some, but not all, files are case-insensitive (depending on mount
-+     options, CYGWIN=case settings, and virtual file systems).  Do
-+     some sleuthing to decide whether case-insensitivity matters.  */
-+  if (! compare_dirs && source_baselen == dest_baselen)
-+    {
-+      ssize_t wsrclen = cygwin_conv_path (CCP_POSIX_TO_WIN_W,
-+                                          source, NULL, 0);
-+      ssize_t wdstlen = cygwin_conv_path (CCP_POSIX_TO_WIN_W,
-+                                          dest, NULL, 0);
-+      char *wsrc = malloca (wsrclen);
-+      char *wdst = malloca (wdstlen);
-+      if (cygwin_conv_path (CCP_POSIX_TO_WIN_W, source, wsrc, wsrclen))
-+        error (EXIT_FAILURE, errno, "unable to convert path name %s", source);
-+      if (cygwin_conv_path (CCP_POSIX_TO_WIN_W, dest, wdst, wdstlen))
-+        error (EXIT_FAILURE, errno, "unable to convert path name %s", dest);
-+      if (wsrclen == wdstlen && memcasecmp (wsrc, wdst, wsrclen) == 0)
-+        compare_dirs = true;
-+      freea (wsrc);
-+      freea (wdst);
-+    }
-+#endif /* __CYGWIN__ */
-   bool same = false;
- 
- #if ! _POSIX_NO_TRUNC && HAVE_PATHCONF && defined _PC_NAME_MAX
---- coreutils-8.23/lib/xfreopen.c	2014-05-29 05:05:50.000000000 -0700
-+++ coreutils-8.23/lib/xfreopen.c	2014-10-13 08:30:37.180881200 -0700
-@@ -18,6 +18,7 @@
- #include "xfreopen.h"
- 
- #include <errno.h>
-+#include <fcntl.h>
- #include "error.h"
- #include "exitfail.h"
- #include "quote.h"
-@@ -26,9 +27,17 @@
- #include "gettext.h"
- #define _(msgid) gettext (msgid)
- 
-+#define STREQ(s1, s2) (strcmp (s1, s2) == 0)
-+
- void
- xfreopen (char const *filename, char const *mode, FILE *fp)
- {
-+  if (!filename && STREQ (mode, "wb"))
-+    {
-+      int flag = fcntl (fileno (fp), F_GETFL);
-+      if (0 <= flag && (flag & O_APPEND))
-+        mode = "ab";
-+    }
-   if (!freopen (filename, mode, fp))
-     {
-       char const *f = (filename ? filename
---- coreutils-8.23/chcon.c	2014-07-13 15:09:52.000000000 -0700
-+++ coreutils-8.23/src/chcon.c	2014-10-13 08:30:37.180881200 -0700
-@@ -48,7 +48,7 @@ static bool verbose;
- 
- /* Pointer to the device and inode numbers of '/', when --recursive.
-    Otherwise NULL.  */
--static struct dev_ino *root_dev_ino;
-+static struct root_dev_ino *root_dev_ino;
- 
- /* The name of the context file is being given. */
- static char const *specified_context;
-@@ -569,7 +569,7 @@ main (int argc, char **argv)
- 
-   if (recurse && preserve_root)
-     {
--      static struct dev_ino dev_ino_buf;
-+      static struct root_dev_ino dev_ino_buf;
-       root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-       if (root_dev_ino == NULL)
-         error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
---- coreutils-8.23/chgrp.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/chgrp.c	2014-10-13 08:30:37.180881200 -0700
-@@ -299,7 +299,7 @@ main (int argc, char **argv)
- 
-   if (chopt.recurse && preserve_root)
-     {
--      static struct dev_ino dev_ino_buf;
-+      static struct root_dev_ino dev_ino_buf;
-       chopt.root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-       if (chopt.root_dev_ino == NULL)
-         error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
---- coreutils-8.23/chmod.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/chmod.c	2014-10-13 08:30:37.180881200 -0700
-@@ -81,7 +81,7 @@ static enum Verbosity verbosity = V_off;
- 
- /* Pointer to the device and inode numbers of '/', when --recursive.
-    Otherwise NULL.  */
--static struct dev_ino *root_dev_ino;
-+static struct root_dev_ino *root_dev_ino;
- 
- /* For long options that have no equivalent short option, use a
-    non-character as a pseudo short option, starting with CHAR_MAX + 1.  */
-@@ -552,7 +552,7 @@ main (int argc, char **argv)
- 
-   if (recurse && preserve_root)
-     {
--      static struct dev_ino dev_ino_buf;
-+      static struct root_dev_ino dev_ino_buf;
-       root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-       if (root_dev_ino == NULL)
-         error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
---- coreutils-8.23/chown-core.h	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/chown-core.h	2014-10-13 08:30:37.196451900 -0700
-@@ -50,7 +50,7 @@ struct Chown_option
- 
-   /* Pointer to the device and inode numbers of '/', when --recursive.
-      Need not be freed.  Otherwise NULL.  */
--  struct dev_ino *root_dev_ino;
-+  struct root_dev_ino *root_dev_ino;
- 
-   /* This corresponds to the --dereference (opposite of -h) option.  */
-   bool affect_symlink_referent;
---- coreutils-8.23/chown.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/chown.c	2014-10-13 08:30:37.196451900 -0700
-@@ -312,7 +312,7 @@ main (int argc, char **argv)
- 
-   if (chopt.recurse && preserve_root)
-     {
--      static struct dev_ino dev_ino_buf;
-+      static struct root_dev_ino dev_ino_buf;
-       chopt.root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-       if (chopt.root_dev_ino == NULL)
-         error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
---- coreutils-8.23/chroot.c	2014-07-13 16:59:20.000000000 -0700
-+++ coreutils-8.23/src/chroot.c	2014-10-13 08:30:37.196451900 -0700
-@@ -163,7 +163,7 @@ parse_additional_groups (char const *gro
- static bool
- is_root (const char* dir)
- {
--  struct dev_ino root_ino;
-+  struct root_dev_ino root_ino;
-   if (! get_root_dev_ino (&root_ino))
-     error (EXIT_CANCELED, errno, _("failed to get attributes of %s"),
-            quote ("/"));
-@@ -173,7 +173,7 @@ is_root (const char* dir)
-     error (EXIT_CANCELED, errno, _("failed to get attributes of %s"),
-            quote (dir));
- 
--  return SAME_INODE (root_ino, arg_st);
-+  return ROOT_DEV_INO_CHECK (&root_ino, &arg_st);
- }
- 
- void
---- coreutils-8.23/cksum.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/cksum.c	2014-10-13 08:30:37.196451900 -0700
-@@ -301,6 +301,9 @@ main (int argc, char **argv)
- 
-   have_read_stdin = false;
- 
-+  if (O_BINARY)
-+    xfreopen (NULL, "wb", stdout);
-+
-   if (optind == argc)
-     ok = cksum ("-", false);
-   else
---- coreutils-8.23/copy.c	2014-07-13 15:09:52.000000000 -0700
-+++ coreutils-8.23/src/copy.c	2014-10-13 08:49:30.450181800 -0700
-@@ -70,6 +70,10 @@
- # include "verror.h"
- #endif
- 
-+#if __CYGWIN__
-+# include "cygwin.h"
-+#endif
-+
- #ifndef HAVE_FCHOWN
- # define HAVE_FCHOWN false
- # define fchown(fd, uid, gid) (-1)
-@@ -1313,7 +1317,11 @@ close_src_desc:
- static bool
- same_file_ok (char const *src_name, struct stat const *src_sb,
-               char const *dst_name, struct stat const *dst_sb,
--              const struct cp_options *x, bool *return_now, bool *unlink_src)
-+              const struct cp_options *x, bool *return_now, bool *unlink_src
-+#if __CYGWIN__
-+	      , bool *case_change
-+#endif
-+	      )
- {
-   const struct stat *src_sb_link;
-   const struct stat *dst_sb_link;
-@@ -1461,6 +1469,18 @@ same_file_ok (char const *src_name, stru
-       if (S_ISLNK (dst_sb_link->st_mode))
-         return true;
- 
-+#if __CYGWIN__
-+      /* If the files have the same name, but differ in case, then let
-+        rename() change the case.  */
-+      if (same_link && x->move_mode && same_name (src_name, dst_name)
-+         && memcmp (last_component (src_name), last_component (dst_name),
-+                    base_len (src_name)) != 0)
-+       {
-+         *case_change = true;
-+         return true;
-+       }
-+#endif /* __CYGWIN__ */
-+
-       if (same_link
-           && 1 < dst_sb_link->st_nlink
-           && ! same_name (src_name, dst_name))
-@@ -1813,10 +1833,20 @@ copy_internal (char const *src_name, cha
-          && ! (x->move_mode || x->symbolic_link || x->hard_link
-                || x->backup_type != no_backups
-                || x->unlink_dest_before_opening));
--      if ((use_stat
--           ? stat (dst_name, &dst_sb)
--           : lstat (dst_name, &dst_sb))
--          != 0)
-+      int res = (use_stat
-+                 ? stat (dst_name, &dst_sb)
-+                 : lstat (dst_name, &dst_sb));
-+#if __CYGWIN__
-+      /* stat("a") succeeds even if it was really "a.exe".  */
-+      if (! res && 0 < cygwin_spelling (dst_name))
-+        {
-+          /* Only DST_NAME.exe exists, but we want the non-existant
-+             DST_NAME.  */
-+          res = -1;
-+          errno = ENOENT;
-+        }
-+#endif /* __CYGWIN__ */
-+      if (res != 0)
-         {
-           if (errno != ENOENT)
-             {
-@@ -1833,10 +1863,17 @@ copy_internal (char const *src_name, cha
-              that it is stat'able or lstat'able.  */
-           bool return_now;
-           bool unlink_src;
-+#if __CYGWIN__
-+          bool case_change = false;
-+#endif /* __CYGWIN__ */
- 
-           have_dst_lstat = !use_stat;
-           if (! same_file_ok (src_name, &src_sb, dst_name, &dst_sb,
--                              x, &return_now, &unlink_src))
-+                              x, &return_now, &unlink_src
-+#if __CYGWIN__
-+                              , &case_change
-+#endif
-+))
-             {
-               error (0, 0, _("%s and %s are the same file"),
-                      quote_n (0, src_name), quote_n (1, dst_name));
-@@ -1895,6 +1932,9 @@ copy_internal (char const *src_name, cha
-              cp and mv treat -i and -f differently.  */
-           if (x->move_mode)
-             {
-+#if __CYGWIN__
-+              if (!case_change)
-+#endif /* __CYGWIN__ */
-               if (abandon_move (x, dst_name, &dst_sb)
-                   || (unlink_src && unlink (src_name) == 0))
-                 {
-@@ -2058,7 +2098,11 @@ copy_internal (char const *src_name, cha
-                    /* Never unlink dst_name when in move mode.  */
-                    && ! x->move_mode
-                    && (x->unlink_dest_before_opening
--                       || (x->preserve_links && 1 < dst_sb.st_nlink)
-+                       || (x->preserve_links && 1 < dst_sb.st_nlink
-+#if __CYGWIN__
-+                           && !case_change
-+#endif /* __CYGWIN__ */
-+			   )
-                        || (x->dereference == DEREF_NEVER
-                            && ! S_ISREG (src_sb.st_mode))
-                        ))
-@@ -2816,6 +2860,21 @@ copy (char const *src_name, char const *
- {
-   assert (valid_options (options));
- 
-+#if __CYGWIN__
-+  /* .exe magic - if src exists with an implicit .exe suffix and is
-+     not a symlink, but dst does not exist and was also specified
-+     without a suffix, then append .exe to dst.  */
-+  int cygwin = cygwin_spelling (src_name);
-+  char *p;
-+  if (cygwin == 2
-+      && ((p = strchr (dst_name, '\0') - 4) <= dst_name
-+          || strcasecmp (p, ".exe") != 0))
-+    {
-+      cygwin = 3;
-+      CYGWIN_APPEND_EXE (p, dst_name);
-+    }
-+#endif /* __CYGWIN__ */
-+
-   /* Record the file names: they're used in case of error, when copying
-      a directory into itself.  I don't like to make these tools do *any*
-      extra work in the common case when that work is solely to handle
-@@ -2827,10 +2886,15 @@ copy (char const *src_name, char const *
-   top_level_dst_name = dst_name;
- 
-   bool first_dir_created_per_command_line_arg = false;
--  return copy_internal (src_name, dst_name, nonexistent_dst, NULL, NULL,
-+  bool result = copy_internal (src_name, dst_name, nonexistent_dst, NULL, NULL,
-                         options, true,
-                         &first_dir_created_per_command_line_arg,
-                         copy_into_self, rename_succeeded);
-+#if __CYGWIN__
-+  if (cygwin == 3)
-+    freea ((char *) dst_name);
-+#endif /* __CYGWIN__ */
-+  return result;
- }
- 
- /* Set *X to the default options for a value of type struct cp_options.  */
---- coreutils-8.23/dd.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/dd.c	2014-10-13 08:30:37.196451900 -0700
-@@ -37,6 +37,10 @@
- #include "xstrtol.h"
- #include "xtime.h"
- 
-+#if __CYGWIN__
-+# include <io.h>
-+#endif
-+
- /* The official name of this program (e.g., no 'g' prefix).  */
- #define PROGRAM_NAME "dd"
- 
-@@ -1862,6 +1866,13 @@ copy_with_unblock (char const *buf, size
- static void
- set_fd_flags (int fd, int add_flags, char const *name)
- {
-+#if __CYGWIN__
-+  /* Cygwin does not allow fcntl to set the mode.  */
-+  int mode_flags = add_flags & (O_BINARY | O_TEXT);
-+  add_flags &= ~(O_BINARY | O_TEXT);
-+  if (mode_flags && setmode (fd, mode_flags) == -1)
-+    error (EXIT_FAILURE, errno, _("setting flags for %s"), quote (name));
-+#endif /* __CYGWIN__ */
-   /* Ignore file creation flags that are no-ops on file descriptors.  */
-   add_flags &= ~ (O_NOCTTY | O_NOFOLLOW);
- 
-@@ -2242,6 +2253,8 @@ main (int argc, char **argv)
-     }
-   else
-     {
-+      if ((input_flags & (O_BINARY | O_TEXT)) == 0)
-+	input_flags |= O_BINARY;
-       if (fd_reopen (STDIN_FILENO, input_file, O_RDONLY | input_flags, 0) < 0)
-         error (EXIT_FAILURE, errno, _("failed to open %s"), quote (input_file));
-     }
-@@ -2264,6 +2277,8 @@ main (int argc, char **argv)
-            | (conversions_mask & C_NOCREAT ? 0 : O_CREAT)
-            | (conversions_mask & C_EXCL ? O_EXCL : 0)
-            | (seek_records || (conversions_mask & C_NOTRUNC) ? 0 : O_TRUNC));
-+      if ((opts & (O_BINARY | O_TEXT)) == 0)
-+        opts |= O_BINARY;
- 
-       /* Open the output file with *read* access only if we might
-          need to read to satisfy a 'seek=' request.  If we can't read
---- coreutils-8.23/dircolors.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/dircolors.c	2014-10-13 08:30:37.196451900 -0700
-@@ -494,8 +494,12 @@ main (int argc, char **argv)
-             }
-           else
-             {
-+              /* tcsh treats LS_COLORS as a magic shell variable for its
-+                 builtin ls-F, but does not recognize all the categories
-+                 that coreutils ls does.  Therefore, silence stderr to
-+                 avoid messages like "Unknown colorls variable `su'.".  */
-               prefix = "setenv LS_COLORS '";
--              suffix = "'\n";
-+              suffix = "' >&/dev/null\n";
-             }
-           fputs (prefix, stdout);
-           fwrite (s, 1, len, stdout);
---- coreutils-8.23/install.c	2014-07-13 15:09:52.000000000 -0700
-+++ coreutils-8.23/src/install.c	2014-10-13 08:30:37.196451900 -0700
-@@ -44,6 +44,10 @@
- #include "utimens.h"
- #include "xstrtol.h"
- 
-+#if __CYGWIN__
-+# include "cygwin.h"
-+#endif
-+
- /* The official name of this program (e.g., no 'g' prefix).  */
- #define PROGRAM_NAME "install"
- 
-@@ -531,6 +535,16 @@ strip (char const *name)
-       error (0, errno, _("fork system call failed"));
-       break;
-     case 0:			/* Child. */
-+#if __CYGWIN__
-+      {
-+	/* Check for .exe here, since strip doesn't.  */
-+	char *p;
-+	if (((p = strchr (name, '\0') - 4) <= name
-+	     || strcasecmp (p, ".exe") != 0)
-+	    && 0 < cygwin_spelling (name))
-+          CYGWIN_APPEND_EXE (p, name);
-+      }
-+#endif /* __CYGWIN__ */
-       execlp (strip_program, strip_program, name, NULL);
-       error (EXIT_FAILURE, errno, _("cannot run %s"), strip_program);
-       break;
---- coreutils-8.23/ls.c	2014-07-13 15:09:52.000000000 -0700
-+++ coreutils-8.23/src/ls.c	2014-10-13 08:30:37.196451900 -0700
-@@ -117,6 +117,10 @@
- # include <sys/capability.h>
- #endif
- 
-+#if __CYGWIN__
-+# include "cygwin.h"
-+#endif
-+
- #define PROGRAM_NAME (ls_mode == LS_LS ? "ls" \
-                       : (ls_mode == LS_MULTI_COL \
-                          ? "dir" : "vdir"))
-@@ -747,6 +751,11 @@ static char const *long_time_format[2] =
-     N_("%b %e %H:%M")
-   };
- 
-+#if __CYGWIN__
-+/* Whether .exe should be appended to command-line args as needed.  */
-+static bool append_exe;
-+#endif /* __CYGWIN__ */
-+
- /* The set of signals that are caught.  */
- 
- static sigset_t caught_signals;
-@@ -782,6 +791,9 @@ enum
- enum
- {
-   AUTHOR_OPTION = CHAR_MAX + 1,
-+#if __CYGWIN__
-+  APPEND_EXE_OPTION,
-+#endif /* __CYGWIN__ */
-   BLOCK_SIZE_OPTION,
-   COLOR_OPTION,
-   DEREFERENCE_COMMAND_LINE_SYMLINK_TO_DIR_OPTION,
-@@ -843,6 +855,9 @@ static struct option const long_options[
-   {"block-size", required_argument, NULL, BLOCK_SIZE_OPTION},
-   {"context", no_argument, 0, 'Z'},
-   {"author", no_argument, NULL, AUTHOR_OPTION},
-+#if __CYGWIN__
-+  {"append-exe", no_argument, NULL, APPEND_EXE_OPTION},
-+#endif /* __CYGWIN__ */
-   {GETOPT_HELP_OPTION_DECL},
-   {GETOPT_VERSION_OPTION_DECL},
-   {NULL, 0, NULL, 0}
-@@ -1954,6 +1969,12 @@ decode_switches (int argc, char **argv)
-           print_scontext = true;
-           break;
- 
-+#if __CYGWIN__
-+        case APPEND_EXE_OPTION:
-+          append_exe = true;
-+          break;
-+#endif /* __CYGWIN__ */
-+
-         case_GETOPT_HELP_CHAR;
- 
-         case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);
-@@ -2924,6 +2945,12 @@ gobble_file (char const *name, enum file
-   uintmax_t blocks = 0;
-   struct fileinfo *f;
- 
-+#if __CYGWIN__
-+  char *name_alt = NULL;
-+  if (command_line_arg && append_exe && 0 < cygwin_spelling (name))
-+    CYGWIN_APPEND_EXE (name_alt, name);
-+#endif /* __CYGWIN__ */
-+
-   /* An inode value prior to gobble_file necessarily came from readdir,
-      which is not used for command line arguments.  */
-   assert (! command_line_arg || inode == NOT_AN_INODE_NUMBER);
-@@ -3035,11 +3062,19 @@ gobble_file (char const *name, enum file
-           file_failure (command_line_arg,
-                         _("cannot access %s"), absolute_name);
-           if (command_line_arg)
--            return 0;
-+            {
-+#if __CYGWIN__
-+              freea (name_alt);
-+#endif /* __CYGWIN__ */
-+              return 0;
-+            }
- 
-           f->name = xstrdup (name);
-           cwd_n_used++;
- 
-+#if __CYGWIN__
-+          freea (name_alt);
-+#endif /* __CYGWIN__ */
-           return 0;
-         }
- 
-@@ -3223,6 +3258,9 @@ gobble_file (char const *name, enum file
-   f->name = xstrdup (name);
-   cwd_n_used++;
- 
-+#if __CYGWIN__
-+  freea (name_alt);
-+#endif /* __CYGWIN__ */
-   return blocks;
- }
- 
-@@ -4923,6 +4961,11 @@ Sort entries alphabetically if none of -
-   -Z, --context              print any security context of each file\n\
-   -1                         list one file per line\n\
- "), stdout);
-+#if __CYGWIN__
-+      fputs (_("\
-+      --append-exe           append .exe if cygwin magic was needed\n\
-+"), stdout);
-+#endif /* __CYGWIN__ */
-       fputs (HELP_OPTION_DESCRIPTION, stdout);
-       fputs (VERSION_OPTION_DESCRIPTION, stdout);
-       emit_size_note ();
---- coreutils-8.23/md5sum.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/md5sum.c	2014-10-13 08:30:37.212072800 -0700
-@@ -813,6 +813,9 @@ main (int argc, char **argv)
-   if (optind == argc)
-     argv[argc++] = bad_cast ("-");
- 
-+  if (O_BINARY)
-+    xfreopen (NULL, "wb", stdout);
-+
-   for (; optind < argc; ++optind)
-     {
-       char *file = argv[optind];
---- coreutils-8.23/mv.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/mv.c	2014-10-13 08:30:37.212072800 -0700
-@@ -92,7 +92,7 @@ rm_option_init (struct rm_options *x)
-   x->require_restore_cwd = true;
- 
-   {
--    static struct dev_ino dev_ino_buf;
-+    static struct root_dev_ino dev_ino_buf;
-     x->root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-     if (x->root_dev_ino == NULL)
-       error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
-@@ -467,6 +467,16 @@ main (int argc, char **argv)
-   else if (!target_directory)
-     {
-       assert (2 <= n_files);
-+#if __CYGWIN__
-+      struct stat s1, s2;
-+      if (2 == n_files
-+	  && lstat (file[0], &s1) == 0 && lstat (file[1], &s2) == 0
-+	  && s1.st_ino == s2.st_ino)
-+	{
-+	  /* Allow 'mv foo Foo' to change case of the directory foo.  */
-+	}
-+      else
-+#endif /* __CYGWIN__ */
-       if (target_directory_operand (file[n_files - 1]))
-         target_directory = file[--n_files];
-       else if (2 < n_files)
---- coreutils-8.23/pwd.c	2014-07-13 15:09:52.000000000 -0700
-+++ coreutils-8.23/src/pwd.c	2014-10-13 08:30:37.212072800 -0700
-@@ -268,8 +268,8 @@ static void
- robust_getcwd (struct file_name *file_name)
- {
-   size_t height = 1;
--  struct dev_ino dev_ino_buf;
--  struct dev_ino *root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-+  struct root_dev_ino dev_ino_buf;
-+  struct root_dev_ino *root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-   struct stat dot_sb;
- 
-   if (root_dev_ino == NULL)
-@@ -282,7 +282,7 @@ robust_getcwd (struct file_name *file_na
-   while (1)
-     {
-       /* If we've reached the root, we're done.  */
--      if (SAME_INODE (dot_sb, *root_dev_ino))
-+      if (ROOT_DEV_INO_CHECK (root_dev_ino, &dot_sb))
-         break;
- 
-       find_dir_entry (&dot_sb, file_name, height++);
-@@ -291,6 +291,9 @@ robust_getcwd (struct file_name *file_na
-   /* See if a leading slash is needed; file_name_prepend adds one.  */
-   if (file_name->start[0] == '\0')
-     file_name_prepend (file_name, "", 0);
-+  /* If we aren't in `/', we must be in `//'.  */
-+  if (! SAME_INODE (root_dev_ino->single_slash, dot_sb))
-+    file_name_prepend (file_name, "", 0);
- }
- 
- 
---- coreutils-8.23/remove.h	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/remove.h	2014-10-13 08:30:37.212072800 -0700
-@@ -54,7 +54,7 @@ struct rm_options
- 
-   /* Pointer to the device and inode numbers of '/', when --recursive
-      and preserving '/'.  Otherwise NULL.  */
--  struct dev_ino *root_dev_ino;
-+  struct root_dev_ino *root_dev_ino;
- 
-   /* If nonzero, stdin is a tty.  */
-   bool stdin_tty;
---- coreutils-8.23/rm.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/rm.c	2014-10-13 08:30:37.212072800 -0700
-@@ -325,7 +325,7 @@ main (int argc, char **argv)
- 
-   if (x.recursive && preserve_root)
-     {
--      static struct dev_ino dev_ino_buf;
-+      static struct root_dev_ino dev_ino_buf;
-       x.root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-       if (x.root_dev_ino == NULL)
-         error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
---- coreutils-8.23/stat.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/stat.c	2014-10-13 08:30:37.212072800 -0700
-@@ -73,6 +73,13 @@
- #include "find-mount-point.h"
- #include "xvasprintf.h"
- 
-+#if __CYGWIN__
-+# include "cygwin.h"
-+/* Whether .exe should be appended to command-line args as needed.  */
-+static bool append_exe;
-+# define APPEND_EXE_OPTION 10000
-+#endif
-+
- #if USE_STATVFS
- # define STRUCT_STATVFS struct statvfs
- # define STRUCT_STATXFS_F_FSID_IS_INTEGER STRUCT_STATVFS_F_FSID_IS_INTEGER
-@@ -189,6 +196,9 @@ static struct option const long_options[
-   {"format", required_argument, NULL, 'c'},
-   {"printf", required_argument, NULL, PRINTF_OPTION},
-   {"terse", no_argument, NULL, 't'},
-+#if __CYGWIN__
-+  {"append-exe", no_argument, NULL, APPEND_EXE_OPTION},
-+#endif /* __CYGWIN__ */
-   {GETOPT_HELP_OPTION_DECL},
-   {GETOPT_VERSION_OPTION_DECL},
-   {NULL, 0, NULL, 0}
-@@ -1264,14 +1274,26 @@ do_statfs (char const *filename, char co
-       return false;
-     }
- 
-+#if __CYGWIN__
-+  char *name_alt = NULL;
-+  if (append_exe && 0 < cygwin_spelling (filename))
-+    CYGWIN_APPEND_EXE (name_alt, filename);
-+#endif /* __CYGWIN__ */
-+
-   if (STATFS (filename, &statfsbuf) != 0)
-     {
-       error (0, errno, _("cannot read file system information for %s"),
-              quote (filename));
-+#if __CYGWIN__
-+      freea (name_alt);
-+#endif /* __CYGWIN__ */
-       return false;
-     }
- 
-   bool fail = print_it (format, -1, filename, print_statfs, &statfsbuf);
-+#if __CYGWIN__
-+  freea (name_alt);
-+#endif /* __CYGWIN__ */
-   return ! fail;
- }
- 
-@@ -1282,6 +1304,7 @@ do_stat (char const *filename, char cons
- {
-   int fd = STREQ (filename, "-") ? 0 : -1;
-   struct stat statbuf;
-+  char *name_alt = NULL;
- 
-   if (0 <= fd)
-     {
-@@ -1294,18 +1317,29 @@ do_stat (char const *filename, char cons
-   /* We can't use the shorter
-      (follow_links?stat:lstat) (filename, &statbug)
-      since stat might be a function-like macro.  */
--  else if ((follow_links
--            ? stat (filename, &statbuf)
--            : lstat (filename, &statbuf)) != 0)
-+  else
-     {
--      error (0, errno, _("cannot stat %s"), quote (filename));
--      return false;
-+      if ((follow_links
-+	   ? stat (filename, &statbuf)
-+	   : lstat (filename, &statbuf)) != 0)
-+	{
-+	  error (0, errno, _("cannot stat %s"), quote (filename));
-+	  return false;
-+	}
-+
-+#if __CYGWIN__
-+      if (append_exe && 0 < cygwin_spelling (filename))
-+        CYGWIN_APPEND_EXE (name_alt, filename);
-+#endif /* __CYGWIN__ */
-     }
- 
-   if (S_ISBLK (statbuf.st_mode) || S_ISCHR (statbuf.st_mode))
-     format = format2;
- 
-   bool fail = print_it (format, fd, filename, print_stat, &statbuf);
-+#if __CYGWIN__
-+  freea (name_alt);
-+#endif /* __CYGWIN__ */
-   return ! fail;
- }
- 
-@@ -1427,6 +1461,11 @@ Display file or file system status.\n\
-                           if you want a newline, include \\n in FORMAT\n\
-   -t, --terse           print the information in terse form\n\
- "), stdout);
-+#if __CYGWIN__
-+      fputs (_("\
-+      --append-exe      append .exe if cygwin magic was needed\n\
-+"), stdout);
-+#endif /* __CYGWIN__ */
-       fputs (HELP_OPTION_DESCRIPTION, stdout);
-       fputs (VERSION_OPTION_DESCRIPTION, stdout);
- 
-@@ -1547,6 +1586,12 @@ main (int argc, char *argv[])
-           terse = true;
-           break;
- 
-+#if __CYGWIN__
-+        case APPEND_EXE_OPTION:
-+          append_exe = true;
-+          break;
-+#endif /* __CYGWIN__ */
-+
-         case_GETOPT_HELP_CHAR;
- 
-         case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);
diff --git a/nixpkgs/pkgs/tools/misc/coreutils/default.nix b/nixpkgs/pkgs/tools/misc/coreutils/default.nix
index f22a7268fbc9..e6809b474ea2 100644
--- a/nixpkgs/pkgs/tools/misc/coreutils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/coreutils/default.nix
@@ -21,19 +21,19 @@ assert selinuxSupport -> libselinux != null && libsepol != null;
 with lib;
 
 stdenv.mkDerivation (rec {
-  pname = "coreutils";
-  version = "8.32";
+  pname = "coreutils${optionalString (!minimal) "-full"}";
+  version = "9.0";
 
   src = fetchurl {
-    url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-RFjY3nhJ30TMqxXhaxVIsoUiTbul8I+sBwwcDgvMTPo=";
+    url = "mirror://gnu/coreutils/coreutils-${version}.tar.xz";
+    sha256 = "sha256-zjCs30pBvFuzDdlV6eqnX6IWtOPesIiJ7TJDPHs7l84=";
   };
 
-  patches = [ ./sys-getdents-undeclared.patch ]
-    ++ optional stdenv.hostPlatform.isCygwin ./coreutils-8.23-4.cygwin.patch
-    # fix gnulib tests on 32-bit ARM. Included on coreutils master.
-    # https://lists.gnu.org/r/bug-gnulib/2020-08/msg00225.html
-    ++ optional stdenv.hostPlatform.isAarch32 ./fix-gnulib-tests-arm.patch;
+  patches = [
+    ./fix-chmod-exit-code.patch
+    # Workaround for https://debbugs.gnu.org/cgi/bugreport.cgi?bug=51433
+    ./disable-seek-hole.patch
+  ];
 
   postPatch = ''
     # The test tends to fail on btrfs,f2fs and maybe other unusual filesystems.
@@ -43,9 +43,6 @@ stdenv.mkDerivation (rec {
     sed '2i echo Skipping rm deep-2 test && exit 77' -i ./tests/rm/deep-2.sh
     sed '2i echo Skipping du long-from-unreadable test && exit 77' -i ./tests/du/long-from-unreadable.sh
 
-    # Depends on the mountpoints
-    sed '2i echo Skipping df df-symlink test && exit 77' -i ./tests/df/df-symlink.sh
-
     # Some target platforms, especially when building inside a container have
     # issues with the inotify test.
     sed '2i echo Skipping tail inotify dir recreate test && exit 77' -i ./tests/tail-2/inotify-dir-recreate.sh
@@ -55,8 +52,6 @@ stdenv.mkDerivation (rec {
     substituteInPlace ./tests/install/install-C.sh \
       --replace 'mode3=2755' 'mode3=1755'
 
-    sed '2i print "Skipping env -S test";  exit 77;' -i ./tests/misc/env-S.pl
-
     # Fails on systems with a rootfs. Looks like a bug in the test, see
     # https://lists.gnu.org/archive/html/bug-coreutils/2019-12/msg00000.html
     sed '2i print "Skipping df skip-rootfs test"; exit 77' -i ./tests/df/skip-rootfs.sh
@@ -69,28 +64,31 @@ stdenv.mkDerivation (rec {
       echo "int main() { return 77; }" > "$f"
     done
 
-    # tests try to access user 1000 which is forbidden in sandbox
-    sed '2i print "Skipping id uid test"; exit 77' -i ./tests/id/uid.sh
-    sed '2i print "Skipping id zero test"; exit 77' -i ./tests/id/zero.sh
-    sed '2i print "Skipping misc help-versiob test"; exit 77' -i ./tests/misc/help-version.sh
-    sed '2i print "Skipping chown separator test"; exit 77' -i ./tests/chown/separator.sh
-  '' + optionalString (stdenv.hostPlatform.libc == "musl") (lib.concatStringsSep "\n" [
+    # intermittent failures on builders, unknown reason
+    sed '2i echo Skipping du basic test && exit 77' -i ./tests/du/basic.sh
+  '' + (optionalString (stdenv.hostPlatform.libc == "musl") (lib.concatStringsSep "\n" [
     ''
       echo "int main() { return 77; }" > gnulib-tests/test-parse-datetime.c
       echo "int main() { return 77; }" > gnulib-tests/test-getlogin.c
     ''
-  ]);
+  ])) + (optionalString stdenv.isAarch64 ''
+    sed '2i print "Skipping tail assert test"; exit 77' -i ./tests/tail-2/assert.sh
+
+    # Sometimes fails: https://github.com/NixOS/nixpkgs/pull/143097#issuecomment-954462584
+    sed '2i echo Skipping cut huge range test && exit 77' -i ./tests/misc/cut-huge-range.sh
+  '');
 
   outputs = [ "out" "info" ];
 
-  nativeBuildInputs = [ perl xz.bin ]
-    ++ optionals stdenv.hostPlatform.isCygwin [ autoreconfHook texinfo ];  # due to patch
+  nativeBuildInputs = [ perl xz.bin autoreconfHook ] # autoreconfHook is due to patch, normally only needed for cygwin
+    ++ optionals stdenv.hostPlatform.isCygwin [ texinfo ];  # due to patch
   configureFlags = [ "--with-packager=https://NixOS.org" ]
     ++ optional (singleBinary != false)
       ("--enable-single-binary" + optionalString (isString singleBinary) "=${singleBinary}")
     ++ optional withOpenssl "--with-openssl"
     ++ optional stdenv.hostPlatform.isSunOS "ac_cv_func_inotify_init=no"
     ++ optional withPrefix "--program-prefix=g"
+    ++ optional stdenv.isDarwin "--disable-nls" # the shipped configure script doesn't enable nls, but using autoreconfHook does so which breaks the build
     ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.libc == "glibc") [
       # TODO(19b98110126fde7cbb1127af7e3fe1568eacad3d): Needed for fstatfs() I
       # don't know why it is not properly detected cross building with glibc.
@@ -118,9 +116,7 @@ stdenv.mkDerivation (rec {
   # Prevents attempts of running 'help2man' on cross-built binaries.
   PERL = if stdenv.hostPlatform == stdenv.buildPlatform then null else "missing";
 
-  # Saw random failures like ‘help2man: can't get '--help' info from
-  # man/sha512sum.td/sha512sum’.
-  enableParallelBuilding = false;
+  enableParallelBuilding = true;
 
   NIX_LDFLAGS = optionalString selinuxSupport "-lsepol";
   FORCE_UNSAFE_CONFIGURE = optionalString stdenv.hostPlatform.isSunOS "1";
@@ -152,7 +148,7 @@ stdenv.mkDerivation (rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix ++ platforms.windows;
     priority = 10;
-    maintainers = [ maintainers.eelco ];
+    maintainers = [ maintainers.eelco maintainers.das_j ];
   };
 } // optionalAttrs stdenv.hostPlatform.isMusl {
   # Work around a bogus warning in conjunction with musl.
diff --git a/nixpkgs/pkgs/tools/misc/coreutils/disable-seek-hole.patch b/nixpkgs/pkgs/tools/misc/coreutils/disable-seek-hole.patch
new file mode 100644
index 000000000000..89503287980d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/coreutils/disable-seek-hole.patch
@@ -0,0 +1,43 @@
+diff --git a/src/copy.c b/src/copy.c
+index cb9018f93..2a4ccc061 100644
+--- a/src/copy.c
++++ b/src/copy.c
+@@ -502,7 +502,7 @@ write_zeros (int fd, off_t n_bytes)
+   return true;
+ }
+
+-#ifdef SEEK_HOLE
++#if 0
+ /* Perform an efficient extent copy, if possible.  This avoids
+    the overhead of detecting holes in hole-introducing/preserving
+    copy, and thus makes copying sparse files much more efficient.
+@@ -1095,7 +1095,7 @@ infer_scantype (int fd, struct stat const *sb,
+          && ST_NBLOCKS (*sb) < sb->st_size / ST_NBLOCKSIZE))
+     return PLAIN_SCANTYPE;
+
+-#ifdef SEEK_HOLE
++#if 0
+   scan_inference->ext_start = lseek (fd, 0, SEEK_DATA);
+   if (0 <= scan_inference->ext_start)
+     return LSEEK_SCANTYPE;
+@@ -1377,7 +1377,7 @@ copy_reg (char const *src_name, char const *dst_name,
+       off_t n_read;
+       bool wrote_hole_at_eof = false;
+       if (! (
+-#ifdef SEEK_HOLE
++#if 0
+              scantype == LSEEK_SCANTYPE
+              ? lseek_copy (source_desc, dest_desc, buf, buf_size, hole_size,
+                            scan_inference.ext_start, src_open_sb.st_size,
+diff --git a/tests/seek-data-capable b/tests/seek-data-capable
+index cc6372214..6e7a9ec1e 100644
+--- a/tests/seek-data-capable
++++ b/tests/seek-data-capable
+@@ -1,5 +1,7 @@
+ import sys, os, errno, platform
+
++sys.exit(1)
++
+ # Pass an _empty_ file
+ if len(sys.argv) != 2:
+     sys.exit(1)
diff --git a/nixpkgs/pkgs/tools/misc/coreutils/fix-chmod-exit-code.patch b/nixpkgs/pkgs/tools/misc/coreutils/fix-chmod-exit-code.patch
new file mode 100644
index 000000000000..a966c3bda917
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/coreutils/fix-chmod-exit-code.patch
@@ -0,0 +1,108 @@
+From e8b56ebd536e82b15542a00c888109471936bfda Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
+Date: Fri, 24 Sep 2021 20:57:41 +0100
+Subject: [PATCH] chmod: fix exit status when ignoring symlinks
+
+* src/chmod.c: Reorder enum so CH_NOT_APPLIED
+can be treated as a non error.
+* tests/chmod/ignore-symlink.sh: A new test.
+* tests/local.mk: Reference the new test.
+* NEWS: Mention the bug fix.
+Fixes https://bugs.gnu.org/50784
+---
+ NEWS                          |  6 ++++++
+ src/chmod.c                   |  4 ++--
+ tests/chmod/ignore-symlink.sh | 31 +++++++++++++++++++++++++++++++
+ tests/local.mk                |  1 +
+ 4 files changed, 40 insertions(+), 2 deletions(-)
+ create mode 100755 tests/chmod/ignore-symlink.sh
+
+diff --git a/NEWS b/NEWS
+index a1470a7d7..1cb3c28a1 100644
+--- a/NEWS
++++ b/NEWS
+@@ -2,6 +2,12 @@ GNU coreutils NEWS                                    -*- outline -*-
+ 
+ * Noteworthy changes in release ?.? (????-??-??) [?]
+ 
++** Bug fixes
++
++  chmod -R no longer exits with error status when encountering symlinks.
++  All files would be processed correctly, but the exit status was incorrect.
++  [bug introduced in coreutils-9.0]
++
+ 
+ * Noteworthy changes in release 9.0 (2021-09-24) [stable]
+ 
+diff --git a/src/chmod.c b/src/chmod.c
+index 37b04f500..57ac47f33 100644
+--- a/src/chmod.c
++++ b/src/chmod.c
+@@ -44,8 +44,8 @@ struct change_status
+   enum
+     {
+       CH_NO_STAT,
+-      CH_NOT_APPLIED,
+       CH_FAILED,
++      CH_NOT_APPLIED,
+       CH_NO_CHANGE_REQUESTED,
+       CH_SUCCEEDED
+     }
+@@ -322,7 +322,7 @@ process_file (FTS *fts, FTSENT *ent)
+   if ( ! recurse)
+     fts_set (fts, ent, FTS_SKIP);
+ 
+-  return CH_NO_CHANGE_REQUESTED <= ch.status;
++  return CH_NOT_APPLIED <= ch.status;
+ }
+ 
+ /* Recursively change the modes of the specified FILES (the last entry
+diff --git a/tests/chmod/ignore-symlink.sh b/tests/chmod/ignore-symlink.sh
+new file mode 100755
+index 000000000..5ce3de816
+--- /dev/null
++++ b/tests/chmod/ignore-symlink.sh
+@@ -0,0 +1,31 @@
++#!/bin/sh
++# Test for proper exit code of chmod on a processed symlink.
++
++# Copyright (C) 2021 Free Software Foundation, Inc.
++
++# This program is free software: you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation, either version 3 of the License, or
++# (at your option) any later version.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++
++# You should have received a copy of the GNU General Public License
++# along with this program.  If not, see <https://www.gnu.org/licenses/>.
++
++. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
++print_ver_ chmod
++
++mkdir dir || framework_failure_
++touch dir/f || framework_failure_
++ln -s f dir/l || framework_failure_
++
++# This operation ignores symlinks but should succeed.
++chmod u+w -R dir 2> out || fail=1
++
++compare /dev/null out || fail=1
++
++Exit $fail
+diff --git a/tests/local.mk b/tests/local.mk
+index 228d0e368..b5b893fb7 100644
+--- a/tests/local.mk
++++ b/tests/local.mk
+@@ -456,6 +456,7 @@ all_tests =					\
+   tests/chmod/c-option.sh			\
+   tests/chmod/equal-x.sh			\
+   tests/chmod/equals.sh				\
++  tests/chmod/ignore-symlink.sh			\
+   tests/chmod/inaccessible.sh			\
+   tests/chmod/octal.sh				\
+   tests/chmod/setgid.sh				\
diff --git a/nixpkgs/pkgs/tools/misc/coreutils/fix-gnulib-tests-arm.patch b/nixpkgs/pkgs/tools/misc/coreutils/fix-gnulib-tests-arm.patch
deleted file mode 100644
index 39bd29f8439e..000000000000
--- a/nixpkgs/pkgs/tools/misc/coreutils/fix-gnulib-tests-arm.patch
+++ /dev/null
@@ -1,45 +0,0 @@
->From 175e0bc72808d564074c4adcc72aeadb74adfcc6 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Thu, 27 Aug 2020 17:52:58 -0700
-Subject: [PATCH] perror, strerror_r: remove unportable tests
-
-Problem reported by Florian Weimer in:
-https://lists.gnu.org/r/bug-gnulib/2020-08/msg00220.html
-* tests/test-perror2.c (main):
-* tests/test-strerror_r.c (main): Omit unportable tests.
----
- tests/test-perror2.c    | 3 ---
- tests/test-strerror_r.c | 3 ---
- 2 files changed, 6 deletions(-)
-
-diff --git a/gnulib-tests/test-perror2.c b/gnulib-tests/test-perror2.c
-index 1d14eda7b..c6214dd25 100644
---- a/gnulib-tests/test-perror2.c
-+++ b/gnulib-tests/test-perror2.c
-@@ -79,9 +79,6 @@ main (void)
-     errno = -5;
-     perror ("");
-     ASSERT (!ferror (stderr));
--    ASSERT (msg1 == msg2 || msg1 == msg4 || STREQ (msg1, str1));
--    ASSERT (msg2 == msg4 || STREQ (msg2, str2));
--    ASSERT (msg3 == msg4 || STREQ (msg3, str3));
-     ASSERT (STREQ (msg4, str4));
- 
-     free (str1);
-diff --git a/gnulib-tests/test-strerror_r.c b/gnulib-tests/test-strerror_r.c
-index b11d6fd9f..c1dbcf837 100644
---- a/gnulib-tests/test-strerror_r.c
-+++ b/gnulib-tests/test-strerror_r.c
-@@ -165,9 +165,6 @@ main (void)
- 
-     strerror_r (EACCES, buf, sizeof buf);
-     strerror_r (-5, buf, sizeof buf);
--    ASSERT (msg1 == msg2 || msg1 == msg4 || STREQ (msg1, str1));
--    ASSERT (msg2 == msg4 || STREQ (msg2, str2));
--    ASSERT (msg3 == msg4 || STREQ (msg3, str3));
-     ASSERT (STREQ (msg4, str4));
- 
-     free (str1);
--- 
-2.17.1
-
diff --git a/nixpkgs/pkgs/tools/misc/coreutils/sys-getdents-undeclared.patch b/nixpkgs/pkgs/tools/misc/coreutils/sys-getdents-undeclared.patch
deleted file mode 100644
index 0af5de68415a..000000000000
--- a/nixpkgs/pkgs/tools/misc/coreutils/sys-getdents-undeclared.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 10fcb97bd728f09d4a027eddf8ad2900f0819b0a Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Thu, 5 Mar 2020 17:25:29 -0800
-Subject: ls: restore 8.31 behavior on removed directories
-
-* NEWS: Mention this.
-* src/ls.c: Do not include <sys/sycall.h>
-(print_dir): Don't worry about whether the directory is removed.
-* tests/ls/removed-directory.sh: Adjust to match new (i.e., old)
-behavior.
----
- NEWS (removed diff in nixpkgs)|  6 ++++++
- src/ls.c                      | 22 ----------------------
- tests/ls/removed-directory.sh | 10 ++--------
- 3 files changed, 8 insertions(+), 30 deletions(-)
-
-diff --git a/src/ls.c b/src/ls.c
-index 24b983287..4acf5f44d 100644
---- a/src/ls.c
-+++ b/src/ls.c
-@@ -49,10 +49,6 @@
- # include <sys/ptem.h>
- #endif
- 
--#ifdef __linux__
--# include <sys/syscall.h>
--#endif
--
- #include <stdio.h>
- #include <assert.h>
- #include <setjmp.h>
-@@ -2896,7 +2892,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
-   struct dirent *next;
-   uintmax_t total_blocks = 0;
-   static bool first = true;
--  bool found_any_entries = false;
- 
-   errno = 0;
-   dirp = opendir (name);
-@@ -2972,7 +2967,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
-       next = readdir (dirp);
-       if (next)
-         {
--          found_any_entries = true;
-           if (! file_ignored (next->d_name))
-             {
-               enum filetype type = unknown;
-@@ -3018,22 +3012,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
-           if (errno != EOVERFLOW)
-             break;
-         }
--#ifdef __linux__
--      else if (! found_any_entries)
--        {
--          /* If readdir finds no directory entries at all, not even "." or
--             "..", then double check that the directory exists.  */
--          if (syscall (SYS_getdents, dirfd (dirp), NULL, 0) == -1
--              && errno != EINVAL)
--            {
--              /* We exclude EINVAL as that pertains to buffer handling,
--                 and we've passed NULL as the buffer for simplicity.
--                 ENOENT is returned if appropriate before buffer handling.  */
--              file_failure (command_line_arg, _("reading directory %s"), name);
--            }
--          break;
--        }
--#endif
-       else
-         break;
- 
-diff --git a/tests/ls/removed-directory.sh b/tests/ls/removed-directory.sh
-index e8c835dab..fe8f929a1 100755
---- a/tests/ls/removed-directory.sh
-+++ b/tests/ls/removed-directory.sh
-@@ -26,20 +26,14 @@ case $host_triplet in
-   *) skip_ 'non linux kernel' ;;
- esac
- 
--LS_FAILURE=2
--
--cat <<\EOF >exp-err || framework_failure_
--ls: reading directory '.': No such file or directory
--EOF
--
- cwd=$(pwd)
- mkdir d || framework_failure_
- cd d || framework_failure_
- rmdir ../d || framework_failure_
- 
--returns_ $LS_FAILURE ls >../out 2>../err || fail=1
-+ls >../out 2>../err || fail=1
- cd "$cwd" || framework_failure_
- compare /dev/null out || fail=1
--compare exp-err err || fail=1
-+compare /dev/null err || fail=1
- 
- Exit $fail
--- 
-cgit v1.2.1
-
diff --git a/nixpkgs/pkgs/tools/misc/cpufetch/default.nix b/nixpkgs/pkgs/tools/misc/cpufetch/default.nix
index 46c485f52991..ca38cf899872 100644
--- a/nixpkgs/pkgs/tools/misc/cpufetch/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cpufetch/default.nix
@@ -1,17 +1,23 @@
-{ stdenv, lib, fetchFromGitHub, installShellFiles }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, installShellFiles
+}:
 
 stdenv.mkDerivation rec {
   pname = "cpufetch";
-  version = "1.00";
+  version = "1.01";
 
   src = fetchFromGitHub {
-    owner  = "Dr-Noob";
-    repo   = "cpufetch";
-    rev    = "v${version}";
-    sha256 = "sha256-2Iar7RwL3T4DrFbqKJFys/R+VENRg2lmYFkslEaZeVE=";
+    owner = "Dr-Noob";
+    repo = "cpufetch";
+    rev = "v${version}";
+    sha256 = "sha256-vae/59eEDuZUDsTHE93mi+L8WBr3H4zp+mzXg7WWusA=";
   };
 
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [
+    installShellFiles
+  ];
 
   installPhase = ''
     runHook preInstall
diff --git a/nixpkgs/pkgs/tools/misc/cpuminer-multi/default.nix b/nixpkgs/pkgs/tools/misc/cpuminer-multi/default.nix
index fac8fbcfee97..3fbdcfae0fe4 100644
--- a/nixpkgs/pkgs/tools/misc/cpuminer-multi/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cpuminer-multi/default.nix
@@ -1,17 +1,14 @@
 { lib, stdenv, fetchFromGitHub, curl, jansson, autoconf, automake
 , aesni ? stdenv.hostPlatform.aesSupport }:
 
-let
-  rev = "8393e03089c0abde61bd5d72aba8f926c3d6eca4";
-  date = "20160316";
-in
 stdenv.mkDerivation {
-  name = "cpuminer-multi-${date}-${lib.strings.substring 0 7 rev}";
+  pname = "cpuminer-multi";
+  version = "unstable-2016-03-16";
 
   src = fetchFromGitHub {
     owner = "hyc";
     repo = "cpuminer-multi";
-    inherit rev;
+    rev = "8393e03089c0abde61bd5d72aba8f926c3d6eca4";
     sha256 = "11dg4rra4dgfb9x6q85irn0hrkx2lkwyrdpgdh10pag09s3vhy4v";
   };
 
diff --git a/nixpkgs/pkgs/tools/misc/czkawka/default.nix b/nixpkgs/pkgs/tools/misc/czkawka/default.nix
index 9ff6a7aaa9aa..4ad51baefe8c 100644
--- a/nixpkgs/pkgs/tools/misc/czkawka/default.nix
+++ b/nixpkgs/pkgs/tools/misc/czkawka/default.nix
@@ -8,20 +8,22 @@
 , gdk-pixbuf
 , atk
 , gtk3
+, testVersion
+, czkawka
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "czkawka";
-  version = "3.2.0";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner = "qarmin";
-    repo = pname;
+    repo = "czkawka";
     rev = version;
-    sha256 = "sha256-OBe6nk5C3kO5Lkas9+G+VY3xAzY7SWx8W5CkSbaYJ9Y=";
+    sha256 = "0p1j5f5jk0cci6bg4jfnnn80gyi9039ni4ma8zwindk7fyn9gpc8";
   };
 
-  cargoSha256 = "sha256-Jghkf1mX5ic7zB2KmtOZbSxgF8C6KjRdGG1Yt+dzylI=";
+  cargoSha256 = "1q35c5szavpsnzflw33radg6blzql3sz3jyzyqqz97ac69zns920";
 
   nativeBuildInputs = [
     pkg-config
@@ -36,10 +38,15 @@ rustPlatform.buildRustPackage rec {
     gtk3
   ];
 
+  passthru.tests.version = testVersion {
+    package = czkawka;
+    command = "czkawka_cli --version";
+  };
+
   meta = with lib; {
     description = "A simple, fast and easy to use app to remove unnecessary files from your computer";
     homepage = "https://github.com/qarmin/czkawka";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ yanganto ];
+    maintainers = with maintainers; [ yanganto _0x4A6F ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/datefmt/default.nix b/nixpkgs/pkgs/tools/misc/datefmt/default.nix
new file mode 100644
index 000000000000..01927fedc28d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/datefmt/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchurl, datefmt, testVersion }:
+
+stdenv.mkDerivation rec {
+  pname = "datefmt";
+  version = "0.2.1";
+
+  src = fetchurl {
+    url = "http://cdn.jb55.com/tarballs/datefmt/datefmt-${version}.tar.gz";
+    sha256 = "5d5e765380afe39eb39d48f752aed748b57dfd843a4947b2a6d18ab9b5e68092";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  passthru.tests.version = testVersion { package = datefmt; };
+
+  meta = with lib; {
+    homepage = "https://jb55.com/datefmt";
+    description = "A tool that formats timestamps in text streams";
+    platforms = platforms.all;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ jb55 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/dateutils/default.nix b/nixpkgs/pkgs/tools/misc/dateutils/default.nix
index a43f07c0a2d9..20837d5ee3ec 100644
--- a/nixpkgs/pkgs/tools/misc/dateutils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dateutils/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     description = "A bunch of tools that revolve around fiddling with dates and times in the command line";
     homepage = "http://www.fresse.org/dateutils/";
     license = licenses.bsd3;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.paperdigits ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/ddcutil/default.nix b/nixpkgs/pkgs/tools/misc/ddcutil/default.nix
index b1a42f57703f..0a956a325197 100644
--- a/nixpkgs/pkgs/tools/misc/ddcutil/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ddcutil/default.nix
@@ -1,33 +1,49 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config
-, glib, i2c-tools, udev, libgudev, libusb1, libdrm, xorg }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, glib
+, i2c-tools
+, udev
+, kmod
+, libgudev
+, libusb1
+, libdrm
+, xorg
+}:
 
 stdenv.mkDerivation rec {
   pname = "ddcutil";
-  version = "1.1.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
-    owner  = "rockowitz";
-    repo   = "ddcutil";
-    rev    = "v${version}";
-    sha256 = "0wv8a8zjahzmi4qx0lc24mwyi3jklj1yxqq26fwklmfh5dv1y8yc";
+    owner = "rockowitz";
+    repo = "ddcutil";
+    rev = "v${version}";
+    sha256 = "sha256-mIYxGoITaFlHgqAfB6ZZFR3spGD0BElJZJJqFGM4r/I=";
   };
 
-  patches = [
-    # Look for kernel modules in /run/booted-system/kernel-modules/lib/modules/*
-    ./nixos-paths.diff
-  ];
-
   nativeBuildInputs = [ autoreconfHook pkg-config ];
+
   buildInputs = [
-    i2c-tools udev libgudev
-    glib libusb1 libdrm xorg.libXrandr
+    glib
+    i2c-tools
+    kmod
+    libdrm
+    libgudev
+    libusb1
+    udev
+    xorg.libXrandr
   ];
 
+  enableParallelBuilding = true;
+
   meta = with lib; {
-    homepage    = "http://www.ddcutil.com/";
+    homepage = "http://www.ddcutil.com/";
     description = "Query and change Linux monitor settings using DDC/CI and USB";
-    license     = licenses.gpl2;
-    platforms   = platforms.linux;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ rnhmjoj ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/ddcutil/nixos-paths.diff b/nixpkgs/pkgs/tools/misc/ddcutil/nixos-paths.diff
deleted file mode 100644
index 54d17ea5bfeb..000000000000
--- a/nixpkgs/pkgs/tools/misc/ddcutil/nixos-paths.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- a/src/util/linux_util.c
-+++ b/src/util/linux_util.c
-@@ -125,6 +125,7 @@
-                   "lib64",
-                   "lib32",
-                   "usr/lib",  // needed for arch?
-+                  "run/booted-system/kernel-modules/lib",  // NixOS
-                   NULL};
-    int result = -1;
-    int ndx = 0;
-@@ -204,14 +205,15 @@
-    if (debug)
-       printf("(%s) machine: %s", __func__, utsbuf.machine);
- 
--   char * libdirs[3];
-+   char * libdirs[4];
-    libdirs[0] = "lib";
-+   libdirs[1] = "run/booted-system/kernel-modules/lib";
-    if (streq(utsbuf.machine, "amd_64")){
--      libdirs[1] = "lib64";
--      libdirs[2] = NULL;
-+      libdirs[2] = "lib64";
-+      libdirs[3] = NULL;
-    }
-    else
--      libdirs[1] = NULL;
-+      libdirs[2] = NULL;
- 
-    int libsndx = 0;
-    bool found = false;
diff --git a/nixpkgs/pkgs/tools/misc/debootstrap/default.nix b/nixpkgs/pkgs/tools/misc/debootstrap/default.nix
index b75f31c61720..ea9f888b0444 100644
--- a/nixpkgs/pkgs/tools/misc/debootstrap/default.nix
+++ b/nixpkgs/pkgs/tools/misc/debootstrap/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, dpkg, gawk, perl, wget, coreutils, util-linux
-, gnugrep, gnutar, gnused, gzip, makeWrapper }:
+, gnugrep, gnupg1, gnutar, gnused, gzip, makeWrapper }:
 # USAGE like this: debootstrap sid /tmp/target-chroot-directory
 # There is also cdebootstrap now. Is that easier to maintain?
 let binPath = lib.makeBinPath [
@@ -7,6 +7,7 @@ let binPath = lib.makeBinPath [
     dpkg
     gawk
     gnugrep
+    gnupg1
     gnused
     gnutar
     gzip
@@ -15,13 +16,13 @@ let binPath = lib.makeBinPath [
   ];
 in stdenv.mkDerivation rec {
   pname = "debootstrap";
-  version = "1.0.124";
+  version = "1.0.126";
 
   src = fetchurl {
     # git clone git://git.debian.org/d-i/debootstrap.git
     # I'd like to use the source. However it's lacking the lanny script ? (still true?)
     url = "mirror://debian/pool/main/d/${pname}/${pname}_${version}.tar.gz";
-    sha256 = "sha256-dwDphksp8WaybFQVPtjCdbRvS5pgRou2B+AZpkwWzY8=";
+    sha256 = "sha256-vEjhxQDDO+1QvQDSAfM408ktbA3LHyAsO8AO8B+Wxhg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/misc/depotdownloader/default.nix b/nixpkgs/pkgs/tools/misc/depotdownloader/default.nix
index 4a3c623bff18..a72d1ea30514 100644
--- a/nixpkgs/pkgs/tools/misc/depotdownloader/default.nix
+++ b/nixpkgs/pkgs/tools/misc/depotdownloader/default.nix
@@ -1,16 +1,9 @@
-{ stdenv, lib, fetchFromGitHub, fetchurl, linkFarmFromDrvs, makeWrapper
-,  dotnet-sdk_5, dotnetPackages
+{ lib
+, fetchFromGitHub
+, buildDotnetModule
 }:
 
-let
-  fetchNuGet = {name, version, sha256}: fetchurl {
-    name = "nuget-${name}-${version}.nupkg";
-    url = "https://www.nuget.org/api/v2/package/${name}/${version}";
-    inherit sha256;
-  };
-  deps = import ./deps.nix fetchNuGet;
-in
-stdenv.mkDerivation rec {
+buildDotnetModule rec {
   pname = "depotdownloader";
   version = "2.4.5";
 
@@ -21,27 +14,11 @@ stdenv.mkDerivation rec {
     sha256 = "0i5qgjnliji1g408ks1034r69vqdmfnzanb0qm7jmyzwww7vwpnh";
   };
 
-  nativeBuildInputs = [ dotnet-sdk_5 dotnetPackages.Nuget makeWrapper ];
-
-  buildPhase = ''
-    export DOTNET_CLI_TELEMETRY_OPTOUT=1
-    export DOTNET_NOLOGO=1
-    export HOME=$TMP/home
-
-    nuget sources Add -Name tmpsrc -Source $TMP/nuget
-    nuget init ${linkFarmFromDrvs "deps" deps} $TMP/nuget
-
-    dotnet restore --source $TMP/nuget DepotDownloader/DepotDownloader.csproj
-    dotnet publish --no-restore -c Release --output $out
-  '';
-
-  installPhase = ''
-    makeWrapper ${dotnet-sdk_5}/bin/dotnet $out/bin/$pname \
-      --add-flags $out/DepotDownloader.dll
-  '';
+  projectFile = "DepotDownloader.sln";
+  nugetDeps = ./deps.nix;
 
   meta = with lib; {
-    description = "Steam depot downloader utilizing the SteamKit2 library.";
+    description = "Steam depot downloader utilizing the SteamKit2 library";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.babbaj ];
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
diff --git a/nixpkgs/pkgs/tools/misc/depotdownloader/deps.nix b/nixpkgs/pkgs/tools/misc/depotdownloader/deps.nix
index 307ad7fa3b1f..bdab9b46b9da 100644
--- a/nixpkgs/pkgs/tools/misc/depotdownloader/deps.nix
+++ b/nixpkgs/pkgs/tools/misc/depotdownloader/deps.nix
@@ -1,88 +1,9 @@
-fetchNuGet:
-[
-  (fetchNuGet {
-    name = "protobuf-net";
-    version = "3.0.101";
-    sha256 = "0594qckbc0lh61sw74ihaq4qmvf1lf133vfa88n443mh7lxm2fwf";
-  })
-  (fetchNuGet {
-    name = "SteamKit2";
-    version = "2.4.0-Alpha.3";
-    sha256 = "0n48yjkyzj49kv89jbkwdq6nm9w9ng6cjhvdv0chpryx9zgasgvv";
-  })
-  (fetchNuGet {
-    name = "protobuf-net.Core";
-    version = "3.0.101";
-    sha256 = "1kvn9rnm6f0jxs0s9scyyx2f2p8rk03qzc1f6ijv1g6xgkpxkq1m";
-  })
-  (fetchNuGet {
-    name = "Microsoft.NETCore.App";
-    version = "2.0.0";
-    sha256 = "0j8xkssrashyxrmdraci6kmj2gdrdxb0z61jwnzf1r9r2kqrd7d2";
-  })
-  (fetchNuGet {
-    name = "Microsoft.NETCore.DotNetAppHost";
-    version = "2.0.0";
-    sha256 = "0yixdk1rslbznrl50d6pyhg50xxr6jbfb1qpy2yd8xv44s4shgwd";
-  })
-  (fetchNuGet {
-    name = "Microsoft.NETCore.DotNetHostPolicy";
-    version = "2.0.0";
-    sha256 = "1zz9yfzcvcai4il78s3phjp1hryib2zk3w2r16v3fxm2yllssyaf";
-  })
-  (fetchNuGet {
-    name = "Microsoft.NETCore.DotNetHostResolver";
-    version = "2.0.0";
-    sha256 = "0xy45xqmdqz7r6v0g8m7c1rp761ghavjl8nzxiyrpbp0wccxl3xb";
-  })
-  (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "5.0.0";
-    sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Win32.Registry";
-    version = "5.0.0";
-    sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n";
-  })
-  (fetchNuGet {
-    name = "NETStandard.Library";
-    version = "2.0.0";
-    sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy";
-  })
-  (fetchNuGet {
-    name = "System.Collections.Immutable";
-    version = "1.7.1";
-    sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq";
-  })
-  (fetchNuGet {
-    name = "System.Memory";
-    version = "4.5.4";
-    sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y";
-  })
-  (fetchNuGet {
-    name = "System.Reflection.Emit";
-    version = "4.7.0";
-    sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp";
-  })
-  (fetchNuGet {
-    name = "System.Reflection.Emit.Lightweight";
-    version = "4.7.0";
-    sha256 = "0mbjfajmafkca47zr8v36brvknzks5a7pgb49kfq2d188pyv6iap";
-  })
-  (fetchNuGet {
-    name = "System.Runtime.CompilerServices.Unsafe";
-    version = "4.5.3";
-    sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln";
-  })
-  (fetchNuGet {
-    name = "System.Security.AccessControl";
-    version = "5.0.0";
-    sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r";
-  })
-  (fetchNuGet {
-    name = "System.Security.Principal.Windows";
-    version = "5.0.0";
-    sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8";
-  })
+{ fetchNuGet }: [
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
+  (fetchNuGet { pname = "protobuf-net"; version = "3.0.101"; sha256 = "0594qckbc0lh61sw74ihaq4qmvf1lf133vfa88n443mh7lxm2fwf"; })
+  (fetchNuGet { pname = "protobuf-net.Core"; version = "3.0.101"; sha256 = "1kvn9rnm6f0jxs0s9scyyx2f2p8rk03qzc1f6ijv1g6xgkpxkq1m"; })
+  (fetchNuGet { pname = "SteamKit2"; version = "2.4.0-Alpha.3"; sha256 = "0n48yjkyzj49kv89jbkwdq6nm9w9ng6cjhvdv0chpryx9zgasgvv"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
 ]
diff --git a/nixpkgs/pkgs/tools/misc/depotdownloader/fetch-deps.sh b/nixpkgs/pkgs/tools/misc/depotdownloader/fetch-deps.sh
new file mode 100755
index 000000000000..a767f3fea9bf
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/depotdownloader/fetch-deps.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p nuget-to-nix dotnet-sdk_5
+set -eo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+deps_file="$(realpath "./deps.nix")"
+
+cd ../../../..
+store_src="$(nix-build . -A depotdownloader.src --no-out-link)"
+src="$(mktemp -d /tmp/depotdownloader-src.XXX)"
+cp -rT "$store_src" "$src"
+chmod -R +w "$src"
+
+pushd "$src"
+
+mkdir ./nuget_tmp.packages
+dotnet restore DepotDownloader.sln --packages ./nuget_tmp.packages
+
+nuget-to-nix ./nuget_tmp.packages > "$deps_file"
+
+popd
+rm -r "$src"
diff --git a/nixpkgs/pkgs/tools/misc/desktop-file-utils/default.nix b/nixpkgs/pkgs/tools/misc/desktop-file-utils/default.nix
index da87d048b709..af3e907c04ae 100644
--- a/nixpkgs/pkgs/tools/misc/desktop-file-utils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/desktop-file-utils/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, libintl }:
+{ lib, stdenv, fetchurl, pkg-config, meson, ninja, glib, libintl }:
 
 with lib;
 
 stdenv.mkDerivation rec {
   pname = "desktop-file-utils";
-  version = "0.24";
+  version = "0.26";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/${pname}/releases/${pname}-${version}.tar.xz";
-    sha256 = "1nc3bwjdrpcrkbdmzvhckq0yngbcxspwj2n1r7jr3gmx1jk5vpm1";
+    sha256 = "02bkfi6fyk4c0gh2avd897882ww5zl7qg7bzzf28qb57kvkvsvdj";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config meson ninja ];
   buildInputs = [ glib libintl ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix b/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
index 37ea9ebd026c..8e10a8476287 100644
--- a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
+++ b/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
@@ -1,19 +1,19 @@
 { lib, stdenv, fetchurl, python3Packages, docutils, help2man, installShellFiles
 , abootimg, acl, apksigner, apktool, binutils-unwrapped, bzip2, cbfstool, cdrkit, colord, colordiff, coreutils, cpio, db, diffutils, dtc
-, e2fsprogs, file, findutils, fontforge-fonttools, ffmpeg, fpc, gettext, ghc, ghostscriptX, giflib, gnumeric, gnupg, gnutar
-, gzip, hdf5, imagemagick, jdk, libarchive, libcaca, llvm, lz4, mono, openssh, openssl, pdftk, pgpdump, poppler_utils, qemu, R
-, radare2, sng, sqlite, squashfsTools, tcpdump, odt2txt, unzip, wabt, xxd, xz, zip, zstd
+, e2fsprogs, enjarify, file, findutils, fontforge-fonttools, ffmpeg, fpc, gettext, ghc, ghostscriptX, giflib, gnumeric, gnupg, gnutar
+, gzip, hdf5, imagemagick, jdk, libarchive, libcaca, llvm, lz4, mono, ocaml, oggvideotools, openssh, openssl, pdftk, pgpdump, poppler_utils, procyon, qemu, R
+, radare2, sng, sqlite, squashfsTools, tcpdump, ubootTools, odt2txt, unzip, wabt, xmlbeans, xxd, xz, zip, zstd
 , enableBloat ? false
 }:
 
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "187";
+  version = "197";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "sha256-oXWdXJhf8OOxBcLumjeWW0Xev0LjcTScAw9baDOs6ls=";
+    sha256 = "sha256-EKTknFa6gGqd1kpy/k1Vh1Zya+XvBMlU5G6Rg2p66es=";
   };
 
   outputs = [ "out" "man" ];
@@ -40,7 +40,7 @@ python3Packages.buildPythonApplication rec {
   # Most of the non-Python dependencies here are optional command-line tools for various file-format parsers.
   # To help figuring out what's missing from the list, run: ./pkgs/tools/misc/diffoscope/list-missing-tools.sh
   #
-  # Still missing these tools: docx2txt dumpimage dumppdf dumpxsb enjarify lipo ocamlobjinfo oggDump otool procyon
+  # Still missing these tools: docx2txt lipo otool r2pipe
   pythonPath = [
       binutils-unwrapped bzip2 colordiff coreutils cpio db diffutils
       e2fsprogs file findutils fontforge-fonttools gettext gnutar gzip
@@ -53,9 +53,9 @@ python3Packages.buildPythonApplication rec {
     ])
     ++ lib.optionals stdenv.isLinux [ python3Packages.pyxattr acl cdrkit dtc ]
     ++ lib.optionals enableBloat ([
-      abootimg apksigner apktool cbfstool colord ffmpeg fpc ghc ghostscriptX giflib gnupg gnumeric
-      hdf5 imagemagick llvm jdk mono odt2txt openssh pdftk poppler_utils qemu R tcpdump wabt radare2
-    ] ++ (with python3Packages; [ binwalk guestfs h5py ]));
+      abootimg apksigner apktool cbfstool colord enjarify ffmpeg fpc ghc ghostscriptX giflib gnupg gnumeric
+      hdf5 imagemagick llvm jdk mono ocaml odt2txt oggvideotools openssh pdftk poppler_utils procyon qemu R tcpdump ubootTools wabt radare2 xmlbeans
+    ] ++ (with python3Packages; [ androguard binwalk guestfs h5py pdfminer ]));
 
   checkInputs = with python3Packages; [ pytestCheckHook ] ++ pythonPath;
 
@@ -79,6 +79,7 @@ python3Packages.buildPythonApplication rec {
     # Disable flaky tests on Darwin
     "test_non_unicode_filename"
     "test_listing"
+    "test_symlink_root"
   ];
 
   # flaky tests on Darwin
diff --git a/nixpkgs/pkgs/tools/misc/diffoscope/fix-tests.patch b/nixpkgs/pkgs/tools/misc/diffoscope/fix-tests.patch
index b5566cb932f7..7e643f61b0a8 100644
--- a/nixpkgs/pkgs/tools/misc/diffoscope/fix-tests.patch
+++ b/nixpkgs/pkgs/tools/misc/diffoscope/fix-tests.patch
@@ -12,3 +12,22 @@ index 8d201ab..05960aa 100644
      return get_data(diff_file)
  
  
+diff --git a/tests/data/pgp_signed_expected_diff b/tests/data/pgp_signed_expected_diff
+index 7e90e428..9628efa0 100644
+--- a/tests/data/pgp_signed_expected_diff
++++ b/tests/data/pgp_signed_expected_diff
+@@ -5,11 +5,11 @@
+  	Key ID - 0x1E953E27D4311E58
+  	Next packet - other than one pass signature
+  Old: Literal Data Packet(tag 11)(10255 bytes)
+- 	Format - binary
++ 	Packet data format - binary
+ -	Filename - test1.tar
+--	File modified time - Tue Aug 25 11:47:35 UTC 2020
++-	Creation time - Tue Aug 25 11:47:35 UTC 2020
+ +	Filename - test2.tar
+-+	File modified time - Tue Aug 25 11:47:38 UTC 2020
+++	Creation time - Tue Aug 25 11:47:38 UTC 2020
+  	Literal - ...
+  Old: Signature Packet(tag 2)(563 bytes)
+  	Ver 4 - new
diff --git a/nixpkgs/pkgs/tools/misc/direnv/default.nix b/nixpkgs/pkgs/tools/misc/direnv/default.nix
index 5fa6b8db60e7..e9d38cbdcc2c 100644
--- a/nixpkgs/pkgs/tools/misc/direnv/default.nix
+++ b/nixpkgs/pkgs/tools/misc/direnv/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "direnv";
-  version = "2.28.0";
+  version = "2.30.2";
 
   src = fetchFromGitHub {
     owner = "direnv";
     repo = "direnv";
     rev = "v${version}";
-    sha256 = "sha256-iZ3Lf7Yg+N9BWyLLF+MrT2gpPT9BTcp6pNMpfqwcZXo=";
+    sha256 = "sha256-lQcy3EXl6KicAzRbypyX8sh39vNbZE2aUHBtwx07s9g=";
   };
 
-  vendorSha256 = "sha256-P8NLY1iGh86ntmYsTVlnNh5akdaM8nzcxDn6Nfmgr84=";
+  vendorSha256 = "sha256-YhgQUl9fdictEtz6J88vEzznGd8Ipeb9AYo/p1ZLz5k=";
 
   # we have no bash at the moment for windows
   BASH_PATH =
diff --git a/nixpkgs/pkgs/tools/misc/diskus/default.nix b/nixpkgs/pkgs/tools/misc/diskus/default.nix
index a645525da27c..c664de7c5dc6 100644
--- a/nixpkgs/pkgs/tools/misc/diskus/default.nix
+++ b/nixpkgs/pkgs/tools/misc/diskus/default.nix
@@ -2,18 +2,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "diskus";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = "diskus";
     rev = "v${version}";
-    sha256 = "087w58q5kd3r23a9qnhqgvq4vhv69b5a6a7n3kh09g5cjszy8s05";
+    sha256 = "sha256-SKd2CU0F2iR4bSHntu2VKvZyjjf2XJeXJG6XS/fIBMU=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "1irgj8kna4mwrp91s3ccbfwv2kdkjl89865y88s8v6zd9wzj3c8q";
+  cargoSha256 = "sha256-qNXv6Z9sKl7rol78UTOSRFML/JCGfOJMGOdt49KHD50=";
 
   meta = with lib; {
     description = "A minimal, fast alternative to 'du -sh'";
diff --git a/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix b/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix
index 52038c8efa9c..5f1e53f8105f 100644
--- a/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix
@@ -1,13 +1,13 @@
 { lib, python3Packages, fetchFromGitHub }:
 python3Packages.buildPythonApplication rec {
   pname = "dpt-rp1-py";
-  version = "0.1.13";
+  version = "0.1.16";
 
   src = fetchFromGitHub {
     owner = "janten";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1jgkfn5kfnx98xs0dmym1h9mv1mrzlglk7x0fzs2jlc56c18w9dk";
+    sha256 = "0zvf09b9rzpx5b0w81ziqd7v321hfhgsgvshdx23karj2hf75bvj";
   };
 
   doCheck = false;
@@ -32,5 +32,6 @@ python3Packages.buildPythonApplication rec {
     description = "Python script to manage Sony DPT-RP1 without Digital Paper App";
     license = licenses.mit;
     maintainers = with maintainers; [ mt-caret ];
+    mainProgram = "dptrp1";
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/dua/default.nix b/nixpkgs/pkgs/tools/misc/dua/default.nix
index 719bb90b43dd..e94fabd01569 100644
--- a/nixpkgs/pkgs/tools/misc/dua/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dua/default.nix
@@ -2,7 +2,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dua";
-  version = "2.14.7";
+  version = "2.14.11";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Foundation ];
 
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec {
     owner = "Byron";
     repo = "dua-cli";
     rev = "v${version}";
-    sha256 = "sha256-HkNWFWdyjpnJJANfnRDhmnhYbZIhrM9aIVN/Ov3/hK0=";
+    sha256 = "sha256-XMhgTJiP4whw1r+WtdG5CsQl/GIZPEg7/ElIEMZyWqM=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoSha256 = "sha256-nfQGAjekd6cegvKPDxyOfcIhgagH61MT+2YVB2WppvQ=";
+  cargoSha256 = "sha256-B4e8wT/RhpwtCb11HqN8vksshBaF/CmpMPT62aBuFnw=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/edid-generator/default.nix b/nixpkgs/pkgs/tools/misc/edid-generator/default.nix
index d3abb37b9f47..c184dc0b3dd3 100644
--- a/nixpkgs/pkgs/tools/misc/edid-generator/default.nix
+++ b/nixpkgs/pkgs/tools/misc/edid-generator/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.flokli ];
     platforms = lib.platforms.all;
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/edid-generator.x86_64-darwin
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/enjarify/default.nix b/nixpkgs/pkgs/tools/misc/enjarify/default.nix
new file mode 100644
index 000000000000..13808b91d051
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/enjarify/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub, python3, runtimeShell }:
+
+stdenv.mkDerivation rec {
+  pname = "enjarify";
+  version = "1.0.3";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-VDBC5n2jWLNJsilX+PV1smL5JeBDj23jYFRwdObXwYs=";
+  };
+
+  installPhase = ''
+    pypath="$out/${python3.sitePackages}"
+    mkdir -p $out/bin $pypath
+    mv enjarify $pypath
+
+    cat << EOF > $out/bin/enjarify
+    #!${runtimeShell}
+    export PYTHONPATH=$pypath
+    exec ${python3.interpreter} -O -m enjarify.main "\$@"
+    EOF
+    chmod +x $out/bin/enjarify
+  '';
+
+  buildInputs = [ ];
+
+  meta = with lib; {
+    description = "Tool for translating Dalvik bytecode to equivalent Java bytecode";
+    homepage = "https://github.com/google/enjarify/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/entr/default.nix b/nixpkgs/pkgs/tools/misc/entr/default.nix
index 8309bc129414..39c1a6abea48 100644
--- a/nixpkgs/pkgs/tools/misc/entr/default.nix
+++ b/nixpkgs/pkgs/tools/misc/entr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "entr";
-  version = "5.0";
+  version = "5.1";
 
   src = fetchurl {
     url = "https://eradman.com/entrproject/code/${pname}-${version}.tar.gz";
-    sha256 = "1fqyshn9i213h6hiy31xlm719f6vayskfna92kvbd2aykryvp1ra";
+    hash = "sha256-D4f1d7zodkHFJa3bm8xgu6pXn+mB2rdZBD484VVtu5I=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/esphome/dashboard.nix b/nixpkgs/pkgs/tools/misc/esphome/dashboard.nix
index cc2123c9d33b..43f71c2d69ee 100644
--- a/nixpkgs/pkgs/tools/misc/esphome/dashboard.nix
+++ b/nixpkgs/pkgs/tools/misc/esphome/dashboard.nix
@@ -4,11 +4,11 @@
 
 with python3.pkgs; buildPythonPackage rec {
   pname = "esphome-dashboard";
-  version = "20210908.0";
+  version = "20211211.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Oz/87FFP9AEK7vVTjgqIA6hSSQJLKet759S2t5Ci1oA=";
+    sha256 = "sha256-xF1/gUJCr4qRO+AnWeFO6b1YnQBOgve/23ZaGmCa910=";
   };
 
   # no tests
diff --git a/nixpkgs/pkgs/tools/misc/esphome/default.nix b/nixpkgs/pkgs/tools/misc/esphome/default.nix
index 4e772399171c..d1b00e74ef7f 100644
--- a/nixpkgs/pkgs/tools/misc/esphome/default.nix
+++ b/nixpkgs/pkgs/tools/misc/esphome/default.nix
@@ -2,6 +2,7 @@
 , pkgs
 , python3
 , fetchFromGitHub
+, fetchpatch
 , platformio
 , esptool
 , git
@@ -16,18 +17,19 @@ let
 in
 with python.pkgs; buildPythonApplication rec {
   pname = "esphome";
-  version = "2021.9.3";
+  version = "2021.12.2";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-vQ4OX+iHWWIxi/r5ayChgNglI7QQsgx0LqXCR6J0pLE=";
+    sha256 = "sha256-Uq+VzU/j14+3LegEA9bQ1JGe5tUBuP0IX34LdritJdA=";
   };
 
   patches = [
     # fix missing write permissions on src files before modifing them
-   ./fix-src-permissions.patch
+    ./fix-src-permissions.patch
   ];
 
   postPatch = ''
@@ -54,12 +56,14 @@ with python.pkgs; buildPythonApplication rec {
     cryptography
     esphome-dashboard
     ifaddr
+    kconfiglib
     paho-mqtt
     pillow
     protobuf
     pyserial
     pyyaml
     tornado
+    tzdata
     tzlocal
     voluptuous
   ];
diff --git a/nixpkgs/pkgs/tools/misc/esptool/default.nix b/nixpkgs/pkgs/tools/misc/esptool/default.nix
index 3fc6e96e228b..5a543c6e2ad5 100644
--- a/nixpkgs/pkgs/tools/misc/esptool/default.nix
+++ b/nixpkgs/pkgs/tools/misc/esptool/default.nix
@@ -2,13 +2,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "esptool";
-  version = "3.1";
+  version = "3.2";
 
   src = fetchFromGitHub {
     owner = "espressif";
     repo = "esptool";
     rev = "v${version}";
-    sha256 = "sha256-GaGrV8L//pU4kt4HJmY88l5BNtT0IcZox7b24AFjPCI=";
+    sha256 = "1jic5kynfan5zirv9pm3pfjps12zf68cpnhl7i1vls2m79zdkfa3";
   };
 
   checkInputs = with python3.pkgs;
diff --git a/nixpkgs/pkgs/tools/misc/etcher/default.nix b/nixpkgs/pkgs/tools/misc/etcher/default.nix
index 1e5fefaf6451..7f746b9a49bb 100644
--- a/nixpkgs/pkgs/tools/misc/etcher/default.nix
+++ b/nixpkgs/pkgs/tools/misc/etcher/default.nix
@@ -5,27 +5,29 @@
 , util-linux
 , bash
 , makeWrapper
-, electron_12
+, electron
 }:
 
 let
+  inherit (stdenv.hostPlatform) system;
+
+  throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
+
   sha256 = {
-    "x86_64-linux" = "sha256-Tasynkzyy8UIalQn6qhIuPWDflf4pL76D2czgEijrPw=";
-    "i686-linux" = "0z6y45sz086njpywg7f0jn6n02qynb1qbi889g2kcgwbfjvmcpm1";
-  }."${stdenv.system}";
+    "x86_64-linux" = "sha256-n8i4ZqjugeUfXpTzVgIwVomfPk6HvPEbTZLe/jFgwFg=";
+    "i686-linux" = "sha256-lLGfhW6el2ZOcaykH1kTjGldXo7/0q5O8QnslnDlWAQ=";
+  }."${system}" or throwSystem;
 
   arch = {
     "x86_64-linux" = "amd64";
     "i686-linux" = "i386";
-  }."${stdenv.system}";
-
-  electron = electron_12;
+  }."${system}" or throwSystem;
 
 in
 
 stdenv.mkDerivation rec {
   pname = "etcher";
-  version = "1.5.122";
+  version = "1.6.0";
 
   src = fetchurl {
     url = "https://github.com/balena-io/etcher/releases/download/v${version}/balena-etcher-electron_${version}_${arch}.deb";
diff --git a/nixpkgs/pkgs/tools/misc/ethminer/default.nix b/nixpkgs/pkgs/tools/misc/ethminer/default.nix
index e159622bc8e1..ce68e9f82098 100644
--- a/nixpkgs/pkgs/tools/misc/ethminer/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ethminer/default.nix
@@ -5,7 +5,7 @@
   opencl-headers,
   cmake,
   jsoncpp,
-  boost,
+  boost16x,
   makeWrapper,
   cudatoolkit,
   cudaSupport,
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     cli11
-    boost
+    boost16x # 1.7x support is broken, see https://github.com/ethereum-mining/ethminer/issues/2393
     opencl-headers
     mesa
     ethash
diff --git a/nixpkgs/pkgs/tools/misc/ethtool/default.nix b/nixpkgs/pkgs/tools/misc/ethtool/default.nix
index 9457507458d8..65797f65fe6d 100644
--- a/nixpkgs/pkgs/tools/misc/ethtool/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ethtool/default.nix
@@ -1,22 +1,32 @@
-{ lib, stdenv, fetchurl, pkg-config, libmnl }:
+{ lib
+, stdenv
+, fetchurl
+, libmnl
+, pkg-config
+}:
 
 stdenv.mkDerivation rec {
   pname = "ethtool";
-  version = "5.13";
+  version = "5.15";
 
   src = fetchurl {
     url = "mirror://kernel/software/network/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1wwcwiav0fbl75axmx8wms4xfdp1ji5c7j49k4yl8bngqra74fp6";
+    sha256 = "sha256-aG/WEQOJ1JwqEg8Aw81d/kPeutqOAh5CcNdLvkUqEW0=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libmnl ];
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    libmnl
+  ];
 
   meta = with lib; {
     description = "Utility for controlling network drivers and hardware";
     homepage = "https://www.kernel.org/pub/software/network/ethtool/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = [ maintainers.bjornfor ];
+    maintainers = with maintainers; [ bjornfor ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/execline/default.nix b/nixpkgs/pkgs/tools/misc/execline/default.nix
index 2e1e1b8f7e03..e1dd404a357e 100644
--- a/nixpkgs/pkgs/tools/misc/execline/default.nix
+++ b/nixpkgs/pkgs/tools/misc/execline/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "execline";
-  version = "2.8.1.0";
-  sha256 = "0msmzf5zwjcsgjlvvq28rd2i0fkdb2skmv8ii0ix8dhyckwwjmav";
+  version = "2.8.2.0";
+  sha256 = "0h9kb3cx8dw05md6smvs56i4lr8g5n3ljaxy5vj4zs86yc3pdprg";
 
   description = "A small scripting language, to be used in place of a shell in non-interactive scripts";
 
diff --git a/nixpkgs/pkgs/tools/misc/fbcat/default.nix b/nixpkgs/pkgs/tools/misc/fbcat/default.nix
index 532d87de669f..d90ec77b6d5e 100644
--- a/nixpkgs/pkgs/tools/misc/fbcat/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fbcat/default.nix
@@ -1,4 +1,8 @@
-{ lib, stdenv, fetchFromGitHub } :
+{ lib
+, stdenv
+, fetchFromGitHub
+, netpbm
+}:
 
 stdenv.mkDerivation rec {
   pname = "fbcat";
@@ -11,17 +15,16 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ORzcd8XGy2BfwuPK5UX+K5Z+FYkb+tdg/gHl3zHjvbk=";
   };
 
-  # hardcoded because makefile target "install" depends on libxslt dependencies from network
-  # that are just too hard to monkeypatch here
-  # so this is the simple fix.
-  installPhase = ''
-    mkdir -p $out
-    install -d $out/bin
-    install -m755 fbcat $out/bin/
-    install -m755 fbgrab $out/bin/
-    install -d $out/share/man/man1
+  postPatch = ''
+    substituteInPlace fbgrab \
+      --replace 'pnmtopng' '${netpbm}/bin/pnmtopng' \
+      --replace 'fbcat' "$out/bin/fbcat"
   '';
 
+  installFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
+
   meta = with lib; {
     homepage = "http://jwilk.net/software/fbcat";
     description = "Framebuffer screenshot tool";
diff --git a/nixpkgs/pkgs/tools/misc/fbmark/default.nix b/nixpkgs/pkgs/tools/misc/fbmark/default.nix
new file mode 100644
index 000000000000..fe8bca0e2240
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/fbmark/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "fbmark";
+  version = "0.3";
+
+  src = fetchFromGitHub {
+    owner = "caramelli";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0n2czl2sy1k6r5ri0hp7jgq84xcwrx4x43bqvw1b4na99mqhyahn";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "Linux Framebuffer Benchmark";
+    homepage = "https://github.com/caramelli/fbmark";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ davidak ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/fclones/default.nix b/nixpkgs/pkgs/tools/misc/fclones/default.nix
index 7e993c35c46e..1b35fe0f67b7 100644
--- a/nixpkgs/pkgs/tools/misc/fclones/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fclones/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fclones";
-  version = "0.16.1";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "pkolaczk";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-7rwiqjjXB1+R+/kauGjiJOX/UtMmQW3U3xGL/rsSiQ0=";
+    sha256 = "0d5an35fnz9rdr2ssm952zpzn4jynpvbfyidnqcmp0lclr60c2ir";
   };
 
-  cargoSha256 = "sha256-g4z+05jiVaH3KCPVwJmvQbi0OCYtuafyZyVZDRRyPRA=";
+  cargoSha256 = "sha256-CtQ4grQqgMUYzPDw2Qankl8jmqwwCrawNCmaY97JPkQ=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     AppKit
diff --git a/nixpkgs/pkgs/tools/misc/fd/default.nix b/nixpkgs/pkgs/tools/misc/fd/default.nix
index 9b0c44c3bf5c..15af17524840 100644
--- a/nixpkgs/pkgs/tools/misc/fd/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fd/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fd";
-  version = "8.2.1";
+  version = "8.3.0";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = "fd";
     rev = "v${version}";
-    sha256 = "00vlifbri021z8nf7xvbaay8mqvnq58h19va9bqr5lhsqj1f82wq";
+    sha256 = "sha256-MSkQYsBZkQOFkOnjGY+VuifUZnzloSysAO/hsp+fy1A=";
   };
 
-  cargoSha256 = "0n6xqd30b8aiqrvqrmy7q56nh62nx2j1a3yq2dlpc19i2mfw2qd8";
+  cargoSha256 = "sha256-nwgAgyVaxs1ebu9ndUN3FlFiycyEbRgvUhZ8iGmrVhQ=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/misc/fdupes/default.nix b/nixpkgs/pkgs/tools/misc/fdupes/default.nix
index 42c1c3a37df4..ef51ad980325 100644
--- a/nixpkgs/pkgs/tools/misc/fdupes/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fdupes/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, ncurses, pcre2 }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, ncurses, pcre2 }:
 
 stdenv.mkDerivation rec {
   pname = "fdupes";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchFromGitHub {
     owner = "adrianlopezroche";
     repo  = "fdupes";
     rev   = "v${version}";
-    sha256 = "1c5hv7vkfxsii1qafhsynzp9zkwim47xkpk27sy64qdsjnhysdak";
+    hash  = "sha256-WtSuFWRqQo5D/FLwl3AaIIfg6q+09A3aP5//J4AUzus=";
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ ncurses pcre2 ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/fend/default.nix b/nixpkgs/pkgs/tools/misc/fend/default.nix
index 27352c83dee9..8d6b2d382964 100644
--- a/nixpkgs/pkgs/tools/misc/fend/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fend/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fend";
-  version = "0.1.24";
+  version = "0.1.27";
 
   src = fetchFromGitHub {
     owner = "printfn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Oa/o2Jd0rf+fIVQCaCiSh+tI2KINh1Kx3NTVEULQlzI=";
+    sha256 = "sha256-4Zn42GXtX1UZYa8m3Ig90xDkmwDG7egPE5fRzPYj9sw=";
   };
 
-  cargoSha256 = "sha256-iFGw5mkeRGiMWe5wcrEcmH0WlHJ8p1D0rf1mh+1Mo+w=";
+  cargoSha256 = "sha256-brk6hpBq/wyt0TWQGojTk+bz3/2Jvwx7MoVSkTEq0hU=";
 
   doInstallCheck = true;
 
diff --git a/nixpkgs/pkgs/tools/misc/ffsend/default.nix b/nixpkgs/pkgs/tools/misc/ffsend/default.nix
index aea480ac0464..b6c7cefbccb2 100644
--- a/nixpkgs/pkgs/tools/misc/ffsend/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ffsend/default.nix
@@ -17,16 +17,16 @@ with rustPlatform;
 
 buildRustPackage rec {
   pname = "ffsend";
-  version = "0.2.72";
+  version = "0.2.74";
 
   src = fetchFromGitLab {
     owner = "timvisee";
     repo = "ffsend";
     rev = "v${version}";
-    sha256 = "sha256-YEmEaf0ob2ulmQghwDYi0RtGuTdRHCoLdPnuVjxvlxE=";
+    sha256 = "0ia9agh0h9hp06ijmlgnw63n3xz2jajjw1maz27sawqp342x9vn5";
   };
 
-  cargoSha256 = "sha256-mcWQzfMc2cJjp0EFcfG7SAM70ItwEC/N13UDiRiI3ys=";
+  cargoSha256 = "0dl671sw3amny52a81bx7imh94dvi91dprwhcm1b0g40mjic45pw";
 
   nativeBuildInputs = [ cmake pkg-config installShellFiles ];
   buildInputs =
diff --git a/nixpkgs/pkgs/tools/misc/file/default.nix b/nixpkgs/pkgs/tools/misc/file/default.nix
index 2c1e634023b6..f2f66beffea2 100644
--- a/nixpkgs/pkgs/tools/misc/file/default.nix
+++ b/nixpkgs/pkgs/tools/misc/file/default.nix
@@ -1,29 +1,21 @@
-{ lib, stdenv, fetchurl, file, zlib, libgnurx, fetchpatch }:
+{ lib, stdenv, fetchurl, file, zlib, libgnurx }:
 
 stdenv.mkDerivation rec {
   pname = "file";
-  version = "5.40";
+  version = "5.41";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.astron.com/pub/file/${pname}-${version}.tar.gz"
       "https://distfiles.macports.org/file/${pname}-${version}.tar.gz"
     ];
-    sha256 = "0myxlpj9gy2diqavx33vq88kpvr1k1bpzsm0d0zmb2hl7ks22wqn";
+    sha256 = "sha256-E+Uyx7Nk99V+I9/uoxRxAxUMuQWTpXr4bBDk9uQRYD8=";
   };
 
   nativeBuildInputs = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) file;
   buildInputs = [ zlib ]
     ++ lib.optional stdenv.hostPlatform.isWindows libgnurx;
 
-  patches = [
-    # Fix the mime type detection of xz file. Is merged in master.
-    (fetchpatch {
-      url = "https://github.com/file/file/commit/9b0459afab309a82aa4e46f73a4e50dd641f3d39.patch";
-      sha256 = "sha256-6vjyIn5gVbgmhUlfXJKFRVltm8YKATKmh0/X6+2lLnM=";
-    })
-  ];
-
   doCheck = true;
 
   makeFlags = lib.optional stdenv.hostPlatform.isWindows "FILE_COMPILE=file";
@@ -31,7 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://darwinsys.com/file";
     description = "A program that shows the type of files";
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ doronbehar ];
     license = licenses.bsd2;
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/tools/misc/flameshot/default.nix b/nixpkgs/pkgs/tools/misc/flameshot/default.nix
index e2e066fd8903..1c0fd19ad2aa 100644
--- a/nixpkgs/pkgs/tools/misc/flameshot/default.nix
+++ b/nixpkgs/pkgs/tools/misc/flameshot/default.nix
@@ -1,6 +1,7 @@
 { mkDerivation
 , lib
 , fetchFromGitHub
+, fetchpatch
 , qtbase
 , cmake
 , qttools
@@ -10,15 +11,32 @@
 
 mkDerivation rec {
   pname = "flameshot";
-  version = "0.10.1";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     owner = "flameshot-org";
     repo = "flameshot";
     rev = "v${version}";
-    sha256 = "1ncknjayl6am740f49g0lc28z1zsifbicxz1j1kwps3ksj15nl7a";
+    sha256 = "sha256-rZUiaS32C77tFJmEkw/9MGbVTVscb6LOCyWaWO5FyR4=";
   };
 
+  patches = [
+    # Use absolute install path for `Exec=` in the desktop file.
+    # This is required since KWin relies on absolute paths in `Exec=` to find a process'
+    # corresponding desktop file and check if it's allowed to take screenshot.
+    # Should be removed when the next release comes out.
+    (fetchpatch {
+      url = "https://github.com/flameshot-org/flameshot/commit/1031980ed1e62d24d7f719998b7951d48801e3fa.patch";
+      sha256 = "sha256-o8Zz/bBvitXMDFt5rAfubiUPOx+EQ+ITgrfnFM3dFjE=";
+    })
+    # Fix autostart write path.
+    # Should be removed when the next release comes out.
+    (fetchpatch {
+      url = "https://github.com/flameshot-org/flameshot/commit/7977cbb52c2d785abd0d85d9df5991e8f7cae441.patch";
+      sha256 = "sha256-wWa9Y+4flBiggOMuX7KQyL+q3f2cALGeQBGusX2x6sk=";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = pname;
@@ -31,7 +49,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "Powerful yet simple to use screenshot software";
     homepage = "https://github.com/flameshot-org/flameshot";
-    maintainers = with maintainers; [ scode ];
+    maintainers = with maintainers; [ scode oxalica ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/tools/misc/flashrom/default.nix b/nixpkgs/pkgs/tools/misc/flashrom/default.nix
index 03465d593ff4..dc42510998cd 100644
--- a/nixpkgs/pkgs/tools/misc/flashrom/default.nix
+++ b/nixpkgs/pkgs/tools/misc/flashrom/default.nix
@@ -1,5 +1,6 @@
 { fetchurl
-, gcc9Stdenv
+, fetchpatch
+, stdenv
 , installShellFiles
 , lib
 , libftdi1
@@ -10,7 +11,7 @@
 , jlinkSupport ? false
 }:
 
-gcc9Stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "flashrom";
   version = "1.2";
 
@@ -20,11 +21,23 @@ gcc9Stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config installShellFiles ];
-  buildInputs = [ libftdi1 libusb1 ]
-    # https://github.com/flashrom/flashrom/issues/125
-    ++ lib.optional (!gcc9Stdenv.isAarch64) pciutils
+  buildInputs = [ libftdi1 libusb1 pciutils ]
     ++ lib.optional jlinkSupport libjaylink;
 
+  patches = [
+    # remove when updating from 1.2
+    (fetchpatch {
+      name = "fix-aarch64-build.patch";
+      url = "https://github.com/flashrom/flashrom/commit/da6b3b70cb852dd8e9f9e21aef95fa83e7f7ab0d.patch";
+      sha256 = "sha256-fXYDXgT/ik+qtxxFEyJ7/axtycbwLkEg0UD+hzsYEwg=";
+    })
+    # fix build with gcc 10
+    (fetchpatch {
+      url = "https://github.com/flashrom/flashrom/commit/3a0c1966e4c66f91e6e8551e906b6db38002acb4.patch";
+      sha256 = "sha256-UfXLefMS20VUc7hk4IXECFbDWEbBnHMGSzOYemTfvjI=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace util/z60_flashrom.rules \
       --replace "plugdev" "flashrom"
@@ -43,6 +56,6 @@ gcc9Stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ funfunctor fpletz felixsinger ];
     platforms = platforms.all;
-    broken = gcc9Stdenv.isDarwin; # requires DirectHW
+    broken = stdenv.isDarwin; # requires DirectHW
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix b/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
index f744c52b76b7..f6dd32396d84 100644
--- a/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
@@ -1,24 +1,41 @@
-{ lib, stdenv, fetchFromGitHub, cmake, flex, bison, systemd }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, flex, bison, systemd }:
 
 stdenv.mkDerivation rec {
   pname = "fluent-bit";
-  version = "1.8.6";
+  version = "1.8.9";
 
   src = fetchFromGitHub {
     owner = "fluent";
     repo = "fluent-bit";
     rev = "v${version}";
-    sha256 = "sha256-JYE4ReFiYSDx/0dlA8OkQw3rEpUEQDguTWoHC1r1fUc=";
+    sha256 = "sha256-b+MZuZQB/sl0HcioU1KCxH3TNiXYSPBfC9dBKqCVeXk=";
   };
 
+  patches = lib.optionals stdenv.isDarwin [
+    # Fix compilations errors on darwin
+    (fetchpatch {
+      url = "https://github.com/calyptia/cmetrics/commit/4f0f7ae2eeec148a69156f9fcc05d64bf249d11e.patch";
+      sha256 = "sha256-M1+28mHxpMvcFkOoKxkMMo1VCQsG33ncFZkFalOq2FQ=";
+      stripLen = 1;
+      extraPrefix = "lib/cmetrics/";
+    })
+    (fetchpatch {
+      url = "https://github.com/calyptia/cmetrics/commit/a97999cb6d7299ef230d216b7a1c584b43c64de9.patch";
+      sha256 = "sha256-RuyPEeILc86n/klPIb334XpX0F71nskQ8s/ya0rE2zI=";
+      stripLen = 1;
+      extraPrefix = "lib/cmetrics/";
+    })
+
+    # Fix bundled luajit compilation args
+    ./fix-luajit-darwin.patch
+  ];
+
   nativeBuildInputs = [ cmake flex bison ];
 
   buildInputs = lib.optionals stdenv.isLinux [ systemd ];
 
   cmakeFlags = [ "-DFLB_METRICS=ON" "-DFLB_HTTP_SERVER=ON" ];
 
-  patches = lib.optionals stdenv.isDarwin [ ./fix-luajit-darwin.patch ];
-
   # _FORTIFY_SOURCE requires compiling with optimization (-O)
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-O";
 
diff --git a/nixpkgs/pkgs/tools/misc/fluent-bit/fix-luajit-darwin.patch b/nixpkgs/pkgs/tools/misc/fluent-bit/fix-luajit-darwin.patch
index 21d9c21f5b9b..ef6be0f5ad35 100644
--- a/nixpkgs/pkgs/tools/misc/fluent-bit/fix-luajit-darwin.patch
+++ b/nixpkgs/pkgs/tools/misc/fluent-bit/fix-luajit-darwin.patch
@@ -1,14 +1,29 @@
 diff -Naur fluent-bit.old/cmake/luajit.cmake fluent-bit.new/cmake/luajit.cmake
 --- fluent-bit.old/cmake/luajit.cmake
 +++ fluent-bit.new/cmake/luajit.cmake
-@@ -11,10 +11,6 @@
- set(LUAJIT_SRC ${CMAKE_CURRENT_SOURCE_DIR}/${FLB_PATH_LIB_LUAJIT})
+@@ -12,15 +12,7 @@
  set(LUAJIT_DEST ${CMAKE_CURRENT_BINARY_DIR})
  
--if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
--  set(CFLAGS "${CFLAGS} -isysroot ${CMAKE_OSX_SYSROOT}")
--endif()
--
+ if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
+-  set(CFLAGS "${CFLAGS} -isysroot ${CMAKE_OSX_SYSROOT} -fno-stack-check")
+-  if (CMAKE_HOST_SYSTEM_VERSION VERSION_GREATER_EQUAL 20
+-      AND CMAKE_HOST_SYSTEM_VERSION VERSION_LESS 21)
+-    set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=11.0")
+-  else()
+-    set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=10.15")
+-  endif()
+-else()
+-  set(DEPLOYMENT_TARGET "")
++  set(CFLAGS "${CFLAGS} -fno-stack-check")
+ endif()
+ 
  # luajit (UNIX)
- # =============
- ExternalProject_Add(luajit
+@@ -30,7 +22,7 @@
+   EXCLUDE_FROM_ALL TRUE
+   SOURCE_DIR ${LUAJIT_SRC}
+   CONFIGURE_COMMAND ./configure
+-  BUILD_COMMAND $(MAKE) CROSS=${CROSS_PREFIX} CFLAGS=${CFLAGS} BUILD_MODE=static "XCFLAGS=-fPIC" ${DEPLOYMENT_TARGET}
++  BUILD_COMMAND $(MAKE) DEFAULT_CC=cc CROSS=${CROSS_PREFIX} CFLAGS=${CFLAGS} BUILD_MODE=static "XCFLAGS=-fPIC"
+   INSTALL_COMMAND cp src/libluajit.a "${LUAJIT_DEST}/lib/libluajit.a")
+ 
+ # luajit (Windows)
diff --git a/nixpkgs/pkgs/tools/misc/fluentd/Gemfile.lock b/nixpkgs/pkgs/tools/misc/fluentd/Gemfile.lock
index 6b3c8dd459ec..651d9012e005 100644
--- a/nixpkgs/pkgs/tools/misc/fluentd/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/misc/fluentd/Gemfile.lock
@@ -1,118 +1,139 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    addressable (2.7.0)
+    addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
-    aws-eventstream (1.0.3)
-    aws-partitions (1.207.0)
-    aws-sdk-cloudwatchlogs (1.25.0)
-      aws-sdk-core (~> 3, >= 3.61.1)
+    aws-eventstream (1.2.0)
+    aws-partitions (1.540.0)
+    aws-sdk-cloudwatchlogs (1.49.0)
+      aws-sdk-core (~> 3, >= 3.122.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-core (3.65.1)
-      aws-eventstream (~> 1.0, >= 1.0.2)
-      aws-partitions (~> 1.0)
+    aws-sdk-core (3.124.0)
+      aws-eventstream (~> 1, >= 1.0.2)
+      aws-partitions (~> 1, >= 1.525.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-firehose (1.20.0)
-      aws-sdk-core (~> 3, >= 3.61.1)
+    aws-sdk-firehose (1.45.0)
+      aws-sdk-core (~> 3, >= 3.122.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kinesis (1.19.0)
-      aws-sdk-core (~> 3, >= 3.61.1)
+    aws-sdk-kinesis (1.38.0)
+      aws-sdk-core (~> 3, >= 3.122.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kms (1.24.0)
-      aws-sdk-core (~> 3, >= 3.61.1)
+    aws-sdk-kms (1.52.0)
+      aws-sdk-core (~> 3, >= 3.122.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.48.0)
-      aws-sdk-core (~> 3, >= 3.61.1)
+    aws-sdk-s3 (1.109.0)
+      aws-sdk-core (~> 3, >= 3.122.0)
       aws-sdk-kms (~> 1)
+      aws-sigv4 (~> 1.4)
+    aws-sdk-sqs (1.48.0)
+      aws-sdk-core (~> 3, >= 3.122.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-sqs (1.22.0)
-      aws-sdk-core (~> 3, >= 3.61.1)
-      aws-sigv4 (~> 1.1)
-    aws-sigv4 (1.1.0)
-      aws-eventstream (~> 1.0, >= 1.0.2)
-    bson (4.5.0)
-    concurrent-ruby (1.1.5)
-    cool.io (1.5.4)
-    dig_rb (1.0.1)
-    digest-crc (0.4.1)
-    elasticsearch (7.3.0)
-      elasticsearch-api (= 7.3.0)
-      elasticsearch-transport (= 7.3.0)
-    elasticsearch-api (7.3.0)
+    aws-sigv4 (1.4.0)
+      aws-eventstream (~> 1, >= 1.0.2)
+    bson (4.12.1)
+    concurrent-ruby (1.1.9)
+    cool.io (1.7.1)
+    digest-crc (0.6.4)
+      rake (>= 12.0.0, < 14.0.0)
+    elasticsearch (7.16.0)
+      elasticsearch-api (= 7.16.0)
+      elasticsearch-transport (= 7.16.0)
+    elasticsearch-api (7.16.0)
       multi_json
-    elasticsearch-transport (7.3.0)
-      faraday
+    elasticsearch-transport (7.16.0)
+      faraday (~> 1)
       multi_json
-    excon (0.66.0)
-    faraday (0.15.4)
+    excon (0.89.0)
+    faraday (1.8.0)
+      faraday-em_http (~> 1.0)
+      faraday-em_synchrony (~> 1.0)
+      faraday-excon (~> 1.1)
+      faraday-httpclient (~> 1.0.1)
+      faraday-net_http (~> 1.0)
+      faraday-net_http_persistent (~> 1.1)
+      faraday-patron (~> 1.0)
+      faraday-rack (~> 1.0)
       multipart-post (>= 1.2, < 3)
+      ruby2_keywords (>= 0.0.4)
+    faraday-em_http (1.0.0)
+    faraday-em_synchrony (1.0.0)
+    faraday-excon (1.1.0)
+    faraday-httpclient (1.0.1)
+    faraday-net_http (1.0.1)
+    faraday-net_http_persistent (1.2.0)
+    faraday-patron (1.0.0)
+    faraday-rack (1.0.0)
     fluent-config-regexp-type (1.0.0)
       fluentd (> 1.0.0, < 2)
-    fluent-plugin-cloudwatch-logs (0.7.4)
+    fluent-plugin-cloudwatch-logs (0.14.2)
       aws-sdk-cloudwatchlogs (~> 1.0)
-      fluentd (>= 0.14.15)
-    fluent-plugin-elasticsearch (3.5.5)
+      fluentd (>= 1.8.0)
+    fluent-plugin-elasticsearch (5.1.4)
       elasticsearch
       excon
       fluentd (>= 0.14.22)
-    fluent-plugin-kafka (0.11.1)
+    fluent-plugin-kafka (0.17.3)
       fluentd (>= 0.10.58, < 2)
       ltsv
-      ruby-kafka (>= 0.7.8, < 0.8.0)
-    fluent-plugin-kinesis (3.1.0)
-      aws-sdk-firehose (~> 1, != 1.9, != 1.5)
-      aws-sdk-kinesis (~> 1, != 1.5, != 1.4)
-      fluentd (>= 0.14.10, < 2)
+      ruby-kafka (>= 1.4.0, < 2)
+    fluent-plugin-kinesis (3.4.2)
+      aws-sdk-firehose (~> 1, != 1.9, != 1.5, != 1.15)
+      aws-sdk-kinesis (~> 1, != 1.5, != 1.4, != 1.14)
+      fluentd (>= 0.14.22, < 2)
       google-protobuf (~> 3)
-    fluent-plugin-mongo (1.3.0)
+    fluent-plugin-mongo (1.5.0)
       fluentd (>= 0.14.22, < 2)
       mongo (~> 2.6.0)
     fluent-plugin-record-reformer (0.9.1)
       fluentd
-    fluent-plugin-rewrite-tag-filter (2.2.0)
+    fluent-plugin-rewrite-tag-filter (2.4.0)
       fluent-config-regexp-type
       fluentd (>= 0.14.2, < 2)
-    fluent-plugin-s3 (1.1.11)
-      aws-sdk-s3 (~> 1.0)
-      aws-sdk-sqs (~> 1.0)
+    fluent-plugin-s3 (1.6.1)
+      aws-sdk-s3 (~> 1.60)
+      aws-sdk-sqs (~> 1.23)
       fluentd (>= 0.14.22, < 2)
-    fluent-plugin-webhdfs (1.2.4)
+    fluent-plugin-webhdfs (1.5.0)
       fluentd (>= 0.14.22)
-      webhdfs (>= 0.6.0)
-    fluentd (1.7.0)
+      webhdfs (>= 0.10.0)
+    fluentd (1.14.3)
+      bundler
       cool.io (>= 1.4.5, < 2.0.0)
-      dig_rb (~> 1.0.0)
-      http_parser.rb (>= 0.5.1, < 0.7.0)
-      msgpack (>= 0.7.0, < 2.0.0)
-      serverengine (>= 2.0.4, < 3.0.0)
+      http_parser.rb (>= 0.5.1, < 0.9.0)
+      msgpack (>= 1.3.1, < 2.0.0)
+      serverengine (>= 2.2.2, < 3.0.0)
       sigdump (~> 0.2.2)
-      strptime (>= 0.2.2, < 1.0.0)
-      tzinfo (~> 2.0)
+      strptime (>= 0.2.4, < 1.0.0)
+      tzinfo (>= 1.0, < 3.0)
       tzinfo-data (~> 1.0)
+      webrick (>= 1.4.2, < 1.8.0)
       yajl-ruby (~> 1.0)
-    google-protobuf (3.9.1)
-    http_parser.rb (0.6.0)
+    google-protobuf (3.19.1)
+    http_parser.rb (0.8.0)
     jmespath (1.4.0)
     ltsv (0.1.2)
     mongo (2.6.4)
       bson (>= 4.3.0, < 5.0.0)
-    msgpack (1.3.1)
-    multi_json (1.13.1)
+    msgpack (1.4.2)
+    multi_json (1.15.0)
     multipart-post (2.1.1)
-    public_suffix (4.0.1)
-    ruby-kafka (0.7.10)
+    public_suffix (4.0.6)
+    rake (13.0.6)
+    ruby-kafka (1.4.0)
       digest-crc
-    serverengine (2.1.1)
+    ruby2_keywords (0.0.5)
+    serverengine (2.2.4)
       sigdump (~> 0.2.2)
     sigdump (0.2.4)
-    strptime (0.2.3)
-    tzinfo (2.0.0)
+    strptime (0.2.5)
+    tzinfo (2.0.4)
       concurrent-ruby (~> 1.0)
-    tzinfo-data (1.2019.2)
+    tzinfo-data (1.2021.5)
       tzinfo (>= 1.0.0)
-    webhdfs (0.8.0)
+    webhdfs (0.10.2)
       addressable
+    webrick (1.7.0)
     yajl-ruby (1.4.1)
 
 PLATFORMS
@@ -131,4 +152,4 @@ DEPENDENCIES
   fluentd
 
 BUNDLED WITH
-   2.1.4
+   2.2.24
diff --git a/nixpkgs/pkgs/tools/misc/fluentd/gemset.nix b/nixpkgs/pkgs/tools/misc/fluentd/gemset.nix
index ef063663c1a6..10e2b1678f1e 100644
--- a/nixpkgs/pkgs/tools/misc/fluentd/gemset.nix
+++ b/nixpkgs/pkgs/tools/misc/fluentd/gemset.nix
@@ -5,30 +5,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.8.0";
   };
   aws-eventstream = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "100g77a5ixg4p5zwq77f28n2pdkk0y481f7v83qrlmnj22318qq6";
+      sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.2.0";
   };
   aws-partitions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dr16ryn9514qfdf9zrv06f7gb7gih960b82arkv868nfj4470jx";
+      sha256 = "1ns0378h8qa5vwrq7a7i0xji17japs95mddpvam351k19a79vbwh";
       type = "gem";
     };
-    version = "1.207.0";
+    version = "1.540.0";
   };
   aws-sdk-cloudwatchlogs = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -36,10 +36,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10vracvnmihazs34nlmar813qdigk34afij66182hjcciby0as6x";
+      sha256 = "075qkjzjbi37hnp4qq9gkxy2cfb9v29c66qclfmxqyvfcw5s04b1";
       type = "gem";
     };
-    version = "1.25.0";
+    version = "1.49.0";
   };
   aws-sdk-core = {
     dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
@@ -47,10 +47,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vb49n1ydz1m2l0qhc7gp0rvc7fa7qxczf582kyv7nsfn2k2z9s4";
+      sha256 = "1chpydvgwa48rbd67k39fpg2vjp21v3kmjygbjqv1l1sqn6rjbvw";
       type = "gem";
     };
-    version = "3.65.1";
+    version = "3.124.0";
   };
   aws-sdk-firehose = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -58,10 +58,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1s2rksdk3iv9jvcnyvnpvmh35vbs0ppan9iw4zq6fg87y44j9i74";
+      sha256 = "01vf0xzyj1j85vvl16mhazkgs5zz9ym6rk5v7396mlzm8a67796g";
       type = "gem";
     };
-    version = "1.20.0";
+    version = "1.45.0";
   };
   aws-sdk-kinesis = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -69,10 +69,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w2azv19xi1jmp4dsqjh8af1xdyw4ajd1l5abmx3wpwd8zngxvlp";
+      sha256 = "1xgjmpm2k60sl734g6lv7g8qlm4d6g9pjzgr1825fhd1h492p3dl";
       type = "gem";
     };
-    version = "1.19.0";
+    version = "1.38.0";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -80,10 +80,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14blvvfz67rhffi4ahby50jiip5f0hm85mcxlx6y93g0cfrnxh3m";
+      sha256 = "1br4h5zwb5ir2bf6y0hnlwafkmghxi2fbjqx86agyv838ndy9npd";
       type = "gem";
     };
-    version = "1.24.0";
+    version = "1.52.0";
   };
   aws-sdk-s3 = {
     dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
@@ -91,10 +91,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14iv2wqvvbiz0gdms21i9n6rh8390r1yg4zcf8pzzfplbqfwqw4w";
+      sha256 = "0yc96imi4v043rdxa94ncg15aapzp1i5qx076rv25zxqcbkdwzwd";
       type = "gem";
     };
-    version = "1.48.0";
+    version = "1.109.0";
   };
   aws-sdk-sqs = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -102,10 +102,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pszp0bcgiqn4iskb6xv5j2n540h1k9glz2w85vq5iml1casq769";
+      sha256 = "0vzff2v18098cz8c6pvgfh1lc4l1kk4w5gq76rwjdxw2ahnxf4h9";
       type = "gem";
     };
-    version = "1.22.0";
+    version = "1.48.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -113,60 +113,51 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dfc8i5cxjwlvi4b665lbpbwvks8a6wfy3vfmwr3pjdmxwdmc2cs";
+      sha256 = "1wh1y79v0s4zgby2m79bnifk65hwf5pvk2yyrxzn2jkjjq8f8fqa";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.4.0";
   };
   bson = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gxdavhccppnfbmh2cx0qxv6b6rzr5s00dsigazw808dhb34yyg7";
+      sha256 = "0pnr0b7phdzhkw9xqhmqnw5673ndi13ks3dqwqmbxq6v0rsxiapc";
       type = "gem";
     };
-    version = "4.5.0";
+    version = "4.12.1";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
+      sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
       type = "gem";
     };
-    version = "1.1.5";
+    version = "1.1.9";
   };
   "cool.io" = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l836z3qgrl5829q48qaz1zngqqxy2k0l61swqm0amhyfcgfbz1m";
+      sha256 = "0dfq4h168wzvs9cvn2mm8648ynkl936pgjva2p8ik34p6d620537";
       type = "gem";
     };
-    version = "1.5.4";
-  };
-  dig_rb = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "12dbb1pl2vr9z7yy2zsbsjaj4hw89y56wll6kd8422mylmcw7bx4";
-      type = "gem";
-    };
-    version = "1.0.1";
+    version = "1.7.1";
   };
   digest-crc = {
+    dependencies = ["rake"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08q8p0fk51aa6dwhy2xmjaj76arcq9nn22gyia162jmqpccfx50l";
+      sha256 = "1czaak53w8n13y1fr0q23gp0fhklvxjac5n562qj3xk6sh5ad0x2";
       type = "gem";
     };
-    version = "0.4.1";
+    version = "0.6.4";
   };
   elasticsearch = {
     dependencies = ["elasticsearch-api" "elasticsearch-transport"];
@@ -174,10 +165,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r4gpskjgg8blk7ws9g1p3d5n8bjrggyzxg2v3q40036rjp3fp1h";
+      sha256 = "06vyavz2lcswj32jdcnjccax3flpcb2xnx9f5jxxm95clkpsqnwa";
       type = "gem";
     };
-    version = "7.3.0";
+    version = "7.16.0";
   };
   elasticsearch-api = {
     dependencies = ["multi_json"];
@@ -185,10 +176,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jyd03ylyvv975iail13cwlkg4h9yknhpm1kcq1dpvmbjqy7q6bz";
+      sha256 = "1vp09waa4bi1xk7ixwldiix27g52fd6xcij6826xgypmzrxrn1hc";
       type = "gem";
     };
-    version = "7.3.0";
+    version = "7.16.0";
   };
   elasticsearch-transport = {
     dependencies = ["faraday" "multi_json"];
@@ -196,31 +187,111 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dqm819iqkhbny5lwkf8mh83fmffpwbscal9vmfdw4g9mf08yfnf";
+      sha256 = "1kpcy250crl9w1jspqw9ykv0ixlnscym93mi9kvgljis2yql0qlx";
       type = "gem";
     };
-    version = "7.3.0";
+    version = "7.16.0";
   };
   excon = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05qmrx7l8abpbvp0z01fdpc731c4k6akk67l424vdp5dywhachpr";
+      sha256 = "0153rr745g48h48vaplgmx7xkfjbc79acpq5jsl7agdrk4yf75ih";
       type = "gem";
     };
-    version = "0.66.0";
+    version = "0.89.0";
   };
   faraday = {
-    dependencies = ["multipart-post"];
+    dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "multipart-post" "ruby2_keywords"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0afhlqgby2cizcwgh7h2sq5f77q01axjbdl25bsvfwsry9n7gyyi";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  faraday-em_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12cnqpbak4vhikrh2cdn94assh3yxza8rq2p9w2j34bqg5q4qgbs";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  faraday-em_synchrony = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  faraday-excon = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  faraday-httpclient = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fyk0jd3ks7fdn8nv3spnwjpzx2lmxmg2gh4inz3by1zjzqg33sc";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  faraday-net_http = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s72m05jvzc1pd6cw1i289chas399q0a14xrwg4rvkdwy7bgzrh0";
+      sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
       type = "gem";
     };
-    version = "0.15.4";
+    version = "1.0.1";
+  };
+  faraday-net_http_persistent = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dc36ih95qw3rlccffcb0vgxjhmipsvxhn6cw71l7ffs0f7vq30b";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  faraday-patron = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19wgsgfq0xkski1g7m96snv39la3zxz6x7nbdgiwhg5v82rxfb6w";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  faraday-rack = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h184g4vqql5jv9s9im6igy00jp6mrah2h14py6mpf9bkabfqq7g";
+      type = "gem";
+    };
+    version = "1.0.0";
   };
   fluent-config-regexp-type = {
     dependencies = ["fluentd"];
@@ -239,10 +310,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "046nx56zgb3l29r5v1s79zhhxsb18fwz2d8v6n6cgbv8i13xhl0l";
+      sha256 = "0z1i1n921i5w43bl6rcsj526a22dzv6lrninwj8ygaksgrg5rr45";
       type = "gem";
     };
-    version = "0.7.4";
+    version = "0.14.2";
   };
   fluent-plugin-elasticsearch = {
     dependencies = ["elasticsearch" "excon" "fluentd"];
@@ -250,10 +321,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19nrhgx8mh59lpcv2jf3gb031x4zan93j9fswzjzvyjh4rlfpbmn";
+      sha256 = "1gfqpl2izz036faaz3qlq61da87avhmc2406s21shayhkf8sx0p9";
       type = "gem";
     };
-    version = "3.5.5";
+    version = "5.1.4";
   };
   fluent-plugin-kafka = {
     dependencies = ["fluentd" "ltsv" "ruby-kafka"];
@@ -261,10 +332,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1km7gjcx2icwj2s2svbmrhwb1gmpk85zfa8pivm04wzc8f6vjhy2";
+      sha256 = "15hdd140nqh9zg10wqdwp3m0k1l5w1xhllvbfs5z21aqwrvwc0mp";
       type = "gem";
     };
-    version = "0.11.1";
+    version = "0.17.3";
   };
   fluent-plugin-kinesis = {
     dependencies = ["aws-sdk-firehose" "aws-sdk-kinesis" "fluentd" "google-protobuf"];
@@ -272,10 +343,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1j0qs09g53xsvbxpdlylwm3h2v8rvr3xpn0kwy63cjnpdf012m8f";
+      sha256 = "07n5pzfz143hlvbzbx5rczb33ai9kdp48vhdak100m6xpaqkvc2p";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.4.2";
   };
   fluent-plugin-mongo = {
     dependencies = ["fluentd" "mongo"];
@@ -283,10 +354,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "108gxrgbn0ib70n7gvdlx8xr1i0jdh1cb2n4m4m24ihyfb8i6vli";
+      sha256 = "1rpaglr8hka0prvj5xsrl1af3137c7ma1d1xf1mvib5k9h0aax1f";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.5.0";
   };
   fluent-plugin-record-reformer = {
     dependencies = ["fluentd"];
@@ -305,10 +376,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kf8p1s02pwhkks82kmkkbfbf4qlhhqiczqah4w0dnp86wp6xyw5";
+      sha256 = "1vjvn8ph87cl2dl0dbaap69rciglsdma1y5ghn2vm5mvh5h7xbs6";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.4.0";
   };
   fluent-plugin-s3 = {
     dependencies = ["aws-sdk-s3" "aws-sdk-sqs" "fluentd"];
@@ -316,10 +387,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "093fs43bixd0lmjfpkk1fl24asa1w8kacqrm82lbfx4cq4dg4fif";
+      sha256 = "191j1y76irfgrsj259mj062izkfxrr5kajixdf17h26m3l9n5pgh";
       type = "gem";
     };
-    version = "1.1.11";
+    version = "1.6.1";
   };
   fluent-plugin-webhdfs = {
     dependencies = ["fluentd" "webhdfs"];
@@ -327,41 +398,41 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mhy321gxb59yk0rsawnqf3kfx33ncdlnpmn4rdfzgi0v8ya0fp4";
+      sha256 = "1llpsbd5n2lgxbq16px5hbp3zfw65bdp46b08v87b6rmn3h47aiv";
       type = "gem";
     };
-    version = "1.2.4";
+    version = "1.5.0";
   };
   fluentd = {
-    dependencies = ["cool.io" "dig_rb" "http_parser.rb" "msgpack" "serverengine" "sigdump" "strptime" "tzinfo" "tzinfo-data" "yajl-ruby"];
+    dependencies = ["cool.io" "http_parser.rb" "msgpack" "serverengine" "sigdump" "strptime" "tzinfo" "tzinfo-data" "webrick" "yajl-ruby"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pyjd31z95l819n9sbl6bl5bvjmyi39is0p2i0im3v0r9ydgyf27";
+      sha256 = "1vrw0i286ssrr33g1zayqjk9fxmjz8a4xhrka0id2a9w3ncq275z";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "1.14.3";
   };
   google-protobuf = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pb7v00zya00jddl7cpraz27xi3jsdjn31mm672byqwzdyghpfka";
+      sha256 = "1dwx4ns39bpmzmhglyip9d68i117zspf5lp865pf6hrsmmdf2k53";
       type = "gem";
     };
-    version = "3.9.1";
+    version = "3.19.1";
   };
   "http_parser.rb" = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+      sha256 = "1gj4fmls0mf52dlr928gaq0c0cb0m3aqa9kaa6l0ikl2zbqk42as";
       type = "gem";
     };
-    version = "0.6.0";
+    version = "0.8.0";
   };
   jmespath = {
     groups = ["default"];
@@ -399,20 +470,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qr2mkm2i3m76zarvy7qgjl9596hmvjrg7x6w42vx8cfsbf5p0y1";
+      sha256 = "06iajjyhx0rvpn4yr3h1hc4w4w3k59bdmfhxnjzzh76wsrdxxrc6";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.4.2";
   };
   multi_json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.15.0";
   };
   multipart-post = {
     groups = ["default"];
@@ -429,10 +500,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
       type = "gem";
     };
-    version = "4.0.1";
+    version = "4.0.6";
+  };
+  rake = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      type = "gem";
+    };
+    version = "13.0.6";
   };
   ruby-kafka = {
     dependencies = ["digest-crc"];
@@ -440,10 +521,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m50s1xabvgq36k9jx2qj8bd8ivvkxa6fs2czi22jxhzqsl3xlvc";
+      sha256 = "1bmp3nsf836z3392drhlfmhav2025k46yj8sbhphpphr22v3ka7k";
       type = "gem";
     };
-    version = "0.7.10";
+    version = "1.4.0";
+  };
+  ruby2_keywords = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
+      type = "gem";
+    };
+    version = "0.0.5";
   };
   serverengine = {
     dependencies = ["sigdump"];
@@ -451,10 +542,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10y535621y0kyn40bkcnl01zrsf3z4abf4mdl8m3fdcmj30mazlw";
+      sha256 = "1gzhggx40a53mnv4f32xag4h6ai0s5m3w06s59b0h6ih7rqvwns9";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.2.4";
   };
   sigdump = {
     groups = ["default"];
@@ -471,10 +562,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yj5wwa7wbhgi7w8d9ihpzpf99niw956fhyxddhayj09fgmdcxd8";
+      sha256 = "1ycs0xz58kymf7yp4h56f0nid2z7g3s18dj7pa3p790pfzzpgvcq";
       type = "gem";
     };
-    version = "0.2.3";
+    version = "0.2.5";
   };
   tzinfo = {
     dependencies = ["concurrent-ruby"];
@@ -482,10 +573,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jp9f5120az6q84w5w19nnn6g6yl2whc1cbcnnv4xryw9q8vqbkb";
+      sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "2.0.4";
   };
   tzinfo-data = {
     dependencies = ["tzinfo"];
@@ -493,10 +584,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m507in0d7vlfgasxpkz3y1a44zp532k9qlqcaz90ay939sz9h5q";
+      sha256 = "0w1iyvw0m2xvdr4654jnn1g27jwj84y94dvaj1k2p3lcrvndm698";
       type = "gem";
     };
-    version = "1.2019.2";
+    version = "1.2021.5";
   };
   webhdfs = {
     dependencies = ["addressable"];
@@ -504,10 +595,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gs6xb9dz9bp5xc38yplfy48jcgj7jrj0zg0vgi7ydkxnkzkhbf2";
+      sha256 = "0pkdsj8ybjfp1sr7gzdxd7van5fpmhc9v2c5g3hifdx4s4yzhcq7";
       type = "gem";
     };
-    version = "0.8.0";
+    version = "0.10.2";
+  };
+  webrick = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d4cvgmxhfczxiq5fr534lmizkhigd15bsx5719r5ds7k7ivisc7";
+      type = "gem";
+    };
+    version = "1.7.0";
   };
   yajl-ruby = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/misc/fntsample/default.nix b/nixpkgs/pkgs/tools/misc/fntsample/default.nix
new file mode 100644
index 000000000000..a124d0808415
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/fntsample/default.nix
@@ -0,0 +1,80 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchFromGitHub
+, cmake
+, pkg-config
+, cairo
+, fontconfig
+, freetype
+, glib
+, libXdmcp
+, makeWrapper
+, pango
+, pcre
+, perlPackages
+}:
+
+let
+  ucd-blocks = fetchurl {
+    url = "https://www.unicode.org/Public/14.0.0/ucd/Blocks.txt";
+    hash = "sha256-WYhw3d73s0talykWUoxFav8nZbec1Plkf7WM63Z+fxc=";
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "fntsample";
+  version = "5.4";
+
+  src = fetchFromGitHub {
+    owner = "eugmes";
+    repo = pname;
+    rev = "release/${version}";
+    hash = "sha256-O5RT68wPWwzCb51JZWWNcIubWoM7NZw/MRiaHXPDmF0=";
+  };
+
+  cmakeFlags = [
+    "-DUNICODE_BLOCKS=${ucd-blocks.outPath}"
+  ];
+
+  outputs = [ "out" "man" ];
+
+  nativeBuildInputs = [
+    cmake
+    makeWrapper
+    pkg-config
+  ];
+
+  buildInputs = [
+    cairo
+    fontconfig
+    freetype
+    glib
+    libXdmcp
+    pango
+    perlPackages.perl
+    pcre
+  ];
+
+  postFixup =
+    let
+      perlPath = with perlPackages; makePerlPath [
+        ExporterTiny
+        ListMoreUtils
+        PDFAPI2
+        libintl-perl
+      ];
+    in ''
+    for cmd in pdfoutline pdf-extract-outline; do
+      wrapProgram "$out/bin/$cmd" --prefix PERL5LIB : "${perlPath}"
+    done
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/eugmes/fntsample";
+    description = "PDF and PostScript font samples generator";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ ];
+    platforms = platforms.unix;
+  };
+}
+# TODO: factor/package ucd-blocks
diff --git a/nixpkgs/pkgs/tools/misc/fortune/default.nix b/nixpkgs/pkgs/tools/misc/fortune/default.nix
index 350e28428d4b..aa18409525d2 100644
--- a/nixpkgs/pkgs/tools/misc/fortune/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fortune/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fortune-mod";
-  version = "3.6.1";
+  version = "3.10.0";
 
   # We use fetchurl instead of fetchFromGitHub because the release pack has some
   # special files.
   src = fetchurl {
     url = "https://github.com/shlomif/fortune-mod/releases/download/${pname}-${version}/${pname}-${version}.tar.xz";
-    sha256 = "1cw7xf9xhh6d73y4h4q57g6akjhc1gq6xv37k57sx0wx77wjxqdp";
+    sha256 = "sha256-DR73JXpOkpaOsymP9nxAklCxdoxAnjL1GeNF6D/tDTc=";
   };
 
   nativeBuildInputs = [ cmake perl ];
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   '') ];
 
   meta = with lib; {
+    mainProgram = "fortune";
     description = "A program that displays a pseudorandom message from a database of quotations";
     license = licenses.bsdOriginal;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/misc/fpart/default.nix b/nixpkgs/pkgs/tools/misc/fpart/default.nix
index bdb762c98a60..40b6d8019941 100644
--- a/nixpkgs/pkgs/tools/misc/fpart/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fpart/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fpart";
-  version = "1.2.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "martymac";
     repo = "fpart";
     rev = "${pname}-${version}";
-    sha256 = "17zm3cgp3f2plynqhj8a0hbma5rvawrx5kqygjqyynn7cljv458v";
+    sha256 = "sha256-O+OV/uhehKMWhND3L7wtIL9lMUSN5bX2YRRD7ftcIGY=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/tools/misc/fsearch/default.nix b/nixpkgs/pkgs/tools/misc/fsearch/default.nix
index 7027a6da0fab..a7b95f3efa63 100644
--- a/nixpkgs/pkgs/tools/misc/fsearch/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fsearch/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ artturin ];
     platforms = platforms.unix;
     mainProgram = "fsearch";
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/fsearch.x86_64-darwin
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/fselect/default.nix b/nixpkgs/pkgs/tools/misc/fselect/default.nix
index e877304a2d5f..0dc15ed603d8 100644
--- a/nixpkgs/pkgs/tools/misc/fselect/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fselect/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fselect";
-  version = "0.7.6";
+  version = "0.7.8";
 
   src = fetchFromGitHub {
     owner = "jhspetersson";
     repo = "fselect";
     rev = version;
-    sha256 = "sha256-uIqkk0aQVPXUWjOWmMTdM28Ihi+mflPpxnXJLFIQYJw=";
+    sha256 = "sha256-L5Ka4nbzLAdiHigb9ByTonCmACtyWgduWOmp9tCqrz8=";
   };
 
-  cargoSha256 = "sha256-5LRCLJbLiocB/VDf9MMxyIsERmOvuSAQEe822Dcu2j8=";
+  cargoSha256 = "sha256-kyA/d9h/FCiX/AliIaMvkNNPqzl19v2WPEYcRWuivNU=";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optional stdenv.isDarwin libiconv;
diff --git a/nixpkgs/pkgs/tools/misc/fx_cast/default.nix b/nixpkgs/pkgs/tools/misc/fx_cast/default.nix
index e3458ccfe5cf..1e140ecc0282 100644
--- a/nixpkgs/pkgs/tools/misc/fx_cast/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fx_cast/default.nix
@@ -8,7 +8,7 @@
 # nix run nixpkgs.nodePackages.node2nix -c node2nix -l package-lock.json -d
 # cp -v node-*.nix package*.json ~/p/nixpkgs/pkgs/tools/misc/fx_cast/app
 # ```
-{ pkgs, stdenv, system }: let
+{ pkgs, stdenv }: let
   nodeEnv = import ./node-env.nix {
     inherit (pkgs) nodejs stdenv lib python2 runCommand writeTextFile;
     inherit pkgs;
@@ -21,7 +21,7 @@
   };
 in
 stdenv.mkDerivation rec {
-  name = "fx_cast_bridge-${version}";
+  pname = "fx_cast_bridge";
   version = "0.1.2";
 
   src = pkgs.fetchFromGitHub {
diff --git a/nixpkgs/pkgs/tools/misc/fzf/default.nix b/nixpkgs/pkgs/tools/misc/fzf/default.nix
index e56a61338aaa..92c5baa1096e 100644
--- a/nixpkgs/pkgs/tools/misc/fzf/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fzf/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "fzf";
-  version = "0.27.3";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
     owner = "junegunn";
     repo = pname;
     rev = version;
-    sha256 = "sha256-uVGU8tOHHJYBoWTwx9ilnOKo49R0QHdCABKfGoL7Dkk=";
+    sha256 = "sha256-m+mW9R50VXWUMaRmhMzpr7v8iQJxLYexYvcUMHPz3UM=";
   };
 
   vendorSha256 = "sha256-omvCzM5kH3nAE57S33NV0OFRJmU+Ty7hhriaG/Dc0o0=";
diff --git a/nixpkgs/pkgs/tools/misc/g933-utils/default.nix b/nixpkgs/pkgs/tools/misc/g933-utils/default.nix
index 6116f15f7290..a2671f946b05 100644
--- a/nixpkgs/pkgs/tools/misc/g933-utils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/g933-utils/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "g933-utils";
-  version = "unstable-2019-08-04";
+  version = "unstable-2021-11-19";
 
   src = fetchFromGitHub {
     owner = "ashkitten";
     repo = "g933-utils";
-    rev = "b80cfd59fc41ae5d577c147311376dd7f7882493";
-    sha256 = "06napzpk3nayzixb4l4fzdiwpgmcrsbc5j9m4qip1yn6dfkin3p0";
+    rev = "1fc8cec375ed0d6f72191eadec788a49f51032d1";
+    sha256 = "sha256-kGLMRqZHzRuXQNTjIuLz8JPC1c/ZK38msfkTIVnaomg=";
   };
 
-  cargoSha256 = "00gzfbxr5qzb9w7xkqd9jgfagb4c7p657m21b467pygzvaabbb8d";
+  cargoSha256 = "sha256-FBX5hrS8tNWN83XX+x+s/mYyvO1h6V63bXCx7y0R8bY=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ udev ];
diff --git a/nixpkgs/pkgs/tools/misc/gaphor/default.nix b/nixpkgs/pkgs/tools/misc/gaphor/default.nix
new file mode 100644
index 000000000000..6105b07c3450
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/gaphor/default.nix
@@ -0,0 +1,66 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, poetry-core
+, gobject-introspection
+, pango
+, gtksourceview4
+, wrapGAppsHook
+, makeDesktopItem
+, copyDesktopItems
+, gaphas
+, generic
+, pycairo
+, pygobject3
+, python
+, tinycss2
+}:
+
+buildPythonApplication rec {
+  pname = "gaphor";
+  version = "2.6.5";
+
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-IFsbWx5lblKsnEibVihM6ZPRoydXC+JM1gdZEUUTKxw=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core copyDesktopItems gobject-introspection wrapGAppsHook
+  ];
+
+  # Setting gobject-introspection on booth nativeBuildInputs and
+  # buildInputs because of #56943. This recognizes pango, avoiding
+  # a "ValueError: Namespace PangoCairo not available".
+  buildInputs = [ gobject-introspection gtksourceview4 pango ];
+
+  propagatedBuildInputs = [
+    gaphas
+    generic
+    pycairo
+    pygobject3
+    tinycss2
+  ];
+
+  desktopItems = makeDesktopItem {
+    name = pname;
+    exec = "gaphor";
+    icon = "gaphor";
+    comment = meta.description;
+    desktopName = "Gaphor";
+  };
+
+  postInstall = ''
+    install -Dm644 $out/${python.sitePackages}/gaphor/ui/icons/hicolor/scalable/apps/org.gaphor.Gaphor.svg $out/share/pixmaps/gaphor.svg
+  '';
+
+  meta = with lib; {
+    description = "Simple modeling tool written in Python";
+    maintainers = with maintainers; [ wolfangaukang ];
+    homepage = "https://github.com/gaphor/gaphor";
+    license = licenses.asl20;
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/geekbench/default.nix b/nixpkgs/pkgs/tools/misc/geekbench/default.nix
index 5ccdf2e2feba..2cfd2cdac8bb 100644
--- a/nixpkgs/pkgs/tools/misc/geekbench/default.nix
+++ b/nixpkgs/pkgs/tools/misc/geekbench/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "geekbench";
-  version = "5.4.1";
+  version = "5.4.3";
 
   src = fetchurl {
     url = "https://cdn.geekbench.com/Geekbench-${version}-Linux.tar.gz";
-    sha256 = "sha256-0Pg9bHQwWElW4B3oRco5F2FsaEeLC0ZXx7J+hl7dc3Y=";
+    sha256 = "sha256-A/+XnLusceJXik86EiYeVFi4iplp4+izbYpWNp8QPiM=";
   };
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/tools/misc/git-town/default.nix b/nixpkgs/pkgs/tools/misc/git-town/default.nix
index 18f251fb7208..27eb1275a2da 100644
--- a/nixpkgs/pkgs/tools/misc/git-town/default.nix
+++ b/nixpkgs/pkgs/tools/misc/git-town/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   pname = "git-town";
-  version = "7.5.0";
+  version = "7.6.0";
 
   goPackagePath = "github.com/git-town/git-town";
   src = fetchFromGitHub {
     owner = "git-town";
     repo = "git-town";
     rev = "v${version}";
-    sha256 = "sha256-RmLDlTK+JO2KRLuLvO927W3WYdDlteBIpgTgDXh8lC8=";
+    sha256 = "sha256-yarJWIEIZuBcXXxltkiM7LwrEM8fveD3+JVoPGarhJQ=";
   };
 
   ldflags = [ "-X github.com/git-town/git-town/src/cmd.version=v${version}" "-X github.com/git-town/git-town/src/cmd.buildDate=nix" ];
diff --git a/nixpkgs/pkgs/tools/misc/gitlint/default.nix b/nixpkgs/pkgs/tools/misc/gitlint/default.nix
index 23420a654a1c..c32171585969 100644
--- a/nixpkgs/pkgs/tools/misc/gitlint/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gitlint/default.nix
@@ -5,58 +5,40 @@
 , python3
 }:
 
-let
-  py = python3.override {
-    packageOverrides = self: super: {
-
-      click = super.click.overridePythonAttrs (oldAttrs: rec {
-        version = "8.0.1";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "0ymdyf37acq4qxh038q0xx44qgj6y2kf0jd0ivvix6qij88w214c";
-        };
-      });
-
-      arrow = super.arrow.overridePythonAttrs (oldAttrs: rec {
-        version = "1.2.0";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "0x70a057dqki2z1ny491ixbg980hg4lihc7g1zmy69g4v6xjkz0n";
-        };
-      });
-
-    };
-  };
-in
-with py.pkgs;
-
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "gitlint";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "jorisroovers";
     repo = "gitlint";
     rev = "v${version}";
-    sha256 = "1j6gfgqin5dmqd2qq0vib55d2r07s9sy4hwrvwlichxx5jjwncly";
+    sha256 = "sha256-RXBMb43BBiJ23X0eKC1kqgLw8iFKJnP5iejY0AWcUrU=";
   };
 
-  nativeBuildInputs = [
-    wheel
-  ];
+  # Upstream splitted the project into gitlint and gitlint-core to
+  # simplify the dependency handling
+  sourceRoot = "source/gitlint-core";
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with python3.pkgs; [
     arrow
     click
     sh
   ];
 
-  preCheck = ''
-    export PATH="$out/bin:$PATH"
+  checkInputs = with python3.pkgs; [
+    gitMinimal
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # We don't need gitlint-core
+    substituteInPlace setup.py \
+      --replace "'gitlint-core[trusted-deps]==' + version," ""
   '';
 
-  checkInputs = [
-    gitMinimal
+  pythonImportsCheck = [
+    "gitlint"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/goaccess/default.nix b/nixpkgs/pkgs/tools/misc/goaccess/default.nix
index 008c9b59397f..fd1c80a35a09 100644
--- a/nixpkgs/pkgs/tools/misc/goaccess/default.nix
+++ b/nixpkgs/pkgs/tools/misc/goaccess/default.nix
@@ -1,29 +1,51 @@
-{ lib, stdenv, fetchurl, ncurses, gettext, openssl, withGeolocation ? true, libmaxminddb }:
+{ lib
+, stdenv
+, autoreconfHook
+, fetchFromGitHub
+, gettext
+, libmaxminddb
+, ncurses
+, openssl
+, withGeolocation ? true
+}:
 
 stdenv.mkDerivation rec {
-  version = "1.5.2";
+  version = "1.5.4";
   pname = "goaccess";
 
-  src = fetchurl {
-    url = "https://tar.goaccess.io/goaccess-${version}.tar.gz";
-    sha256 = "sha256-oM4vk5OyYiSE5GnpWoCd/VKt5NQgBJHkPt4fy1KrHIo=";
+  src = fetchFromGitHub {
+    owner = "allinurl";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-KDA5R3up37DLS9YIur4IOacwOq0zed5tj58jEmE0vpE=";
   };
 
+  nativeBuildInputs = [
+    autoreconfHook
+  ];
+
+  buildInputs = [
+    ncurses
+    openssl
+  ] ++ lib.optionals withGeolocation [
+    libmaxminddb
+  ] ++ lib.optionals stdenv.isDarwin [
+    gettext
+  ];
+
   configureFlags = [
     "--enable-utf8"
     "--with-openssl"
-  ] ++ lib.optionals withGeolocation [ "--enable-geoip=mmdb" ];
-
-  buildInputs = [ ncurses openssl ]
-    ++ lib.optionals withGeolocation [ libmaxminddb ]
-    ++ lib.optionals stdenv.isDarwin [ gettext ];
+  ] ++ lib.optionals withGeolocation [
+    "--enable-geoip=mmdb"
+  ];
 
-  meta = {
+  meta = with lib; {
     description = "Real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems";
-    homepage    = "https://goaccess.io";
-    changelog   = "https://github.com/allinurl/goaccess/raw/v${version}/ChangeLog";
-    license     = lib.licenses.mit;
-    platforms   = lib.platforms.linux ++ lib.platforms.darwin;
-    maintainers = with lib.maintainers; [ ederoyd46 ];
+    homepage = "https://goaccess.io";
+    changelog = "https://github.com/allinurl/goaccess/raw/v${version}/ChangeLog";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ederoyd46 ];
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/goreleaser/default.nix b/nixpkgs/pkgs/tools/misc/goreleaser/default.nix
index 13b9f661a640..fb8253919181 100644
--- a/nixpkgs/pkgs/tools/misc/goreleaser/default.nix
+++ b/nixpkgs/pkgs/tools/misc/goreleaser/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "goreleaser";
-  version = "0.179.0";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-E8a1S6CPPd8xsdt/tu1VmWxQCMUp8dEPB5H2IL4jj1k=";
+    sha256 = "sha256-p+QLZ0G75Mk0Z9G+u+qcxTTWzPZnuM+inLO0Lkojs84=";
   };
 
-  vendorSha256 = "sha256-qF7mULIQrFs/SAMm/dUcYPs1urLKKg6w7hgkuJ2AivQ=";
+  vendorSha256 = "sha256-mAJrUGgO0iprQnYOa3TMENNJbJcgM1eiV/AG+TYP0Mg=";
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/tools/misc/gotify-cli/default.nix b/nixpkgs/pkgs/tools/misc/gotify-cli/default.nix
index 05a93b44b94e..7f5eef3b442b 100644
--- a/nixpkgs/pkgs/tools/misc/gotify-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gotify-cli/default.nix
@@ -2,18 +2,16 @@
 
 buildGoModule rec {
   pname = "gotify-cli";
-  version = "2.2.0";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "gotify";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "0hgh1i8rdmf12qmk66cgksv8hz5qzkfbfb6cfmrkhbq765xkm4ir";
+    sha256 = "sha256-X41m7bCilDgnTMJy3ISz8g7dAtaz/lphwaCPZDGMDXk=";
   };
 
-  vendorSha256 = "1l47s0h0v4cgqcsm5008cknvfa4vnv6f7n43d8ga0xq5ikqqzmja";
-
-  doCheck = false;
+  vendorSha256 = "sha256-EKscJM8r1dbKRQPSZFwFqJYACkQynIS347460PuxQiU=";
 
   postInstall = ''
     mv $out/bin/cli $out/bin/gotify
diff --git a/nixpkgs/pkgs/tools/misc/gotify-desktop/default.nix b/nixpkgs/pkgs/tools/misc/gotify-desktop/default.nix
new file mode 100644
index 000000000000..1da729c706d4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/gotify-desktop/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub, rustPlatform, openssl, pkg-config}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "gotify-desktop";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "desbma";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-QQpZeXFv8BqFOQ+7ANWmtsgNlMakAL2ML4rlG2cFZJE=";
+  };
+
+  cargoSha256 = "sha256-zcSAsI/yGGJer7SPKDKZ6NQ3UgTdBcDighS6VTNITMo=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ];
+
+  meta = with lib; {
+    description = "Small Gotify daemon to send messages as desktop notifications";
+    homepage = "https://github.com/desbma/gotify-desktop";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ bryanasdev000 genofire ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/gparted/default.nix b/nixpkgs/pkgs/tools/misc/gparted/default.nix
index 08e4641fb4c1..a002d190984f 100644
--- a/nixpkgs/pkgs/tools/misc/gparted/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gparted/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, fetchurl, intltool, gettext, coreutils, gnused, gnome
 , gnugrep, parted, glib, libuuid, pkg-config, gtkmm3, libxml2
 , gpart, hdparm, procps, util-linux, polkit, wrapGAppsHook, substituteAll
+, mtools, dosfstools
 }:
 
 stdenv.mkDerivation rec {
@@ -29,7 +30,7 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     gappsWrapperArgs+=(
-       --prefix PATH : "${lib.makeBinPath [ gpart hdparm util-linux procps coreutils gnused gnugrep ]}"
+       --prefix PATH : "${lib.makeBinPath [ gpart hdparm util-linux procps coreutils gnused gnugrep mtools dosfstools ]}"
     )
   '';
 
diff --git a/nixpkgs/pkgs/tools/misc/graylog/default.nix b/nixpkgs/pkgs/tools/misc/graylog/default.nix
index 729cfbc283f9..1480f099f9f5 100644
--- a/nixpkgs/pkgs/tools/misc/graylog/default.nix
+++ b/nixpkgs/pkgs/tools/misc/graylog/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "graylog";
-  version = "3.3.14";
+  version = "3.3.16";
 
   src = fetchurl {
     url = "https://packages.graylog2.org/releases/graylog/graylog-${version}.tgz";
-    sha256 = "04dslbvgrraacsw7wydbiv8jc753as2g54wn9sgh3lsryvzrfqfa";
+    sha256 = "sha256-P/cnfYKnMSnDD4otEyirKlLaFduyfSO9sao4BY3c3Z4=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/tools/misc/graylog/plugins.nix b/nixpkgs/pkgs/tools/misc/graylog/plugins.nix
index 8df7f34bb234..45c4441ea2d6 100644
--- a/nixpkgs/pkgs/tools/misc/graylog/plugins.nix
+++ b/nixpkgs/pkgs/tools/misc/graylog/plugins.nix
@@ -107,7 +107,7 @@ in {
       cp ${pluginName}-${version}.jar $out/bin/${pluginName}-${version}.jar
     '';
     meta = {
-      homepage = https://github.com/Graylog2/graylog-plugin-integrations;
+      homepage = "https://github.com/Graylog2/graylog-plugin-integrations";
       description = "A collection of open source Graylog integrations that will be released together";
     };
   };
@@ -224,7 +224,7 @@ in {
       sha256 = "1hkaklwzcsvqq45b98chwqxqdgnnbj4dg68agsll13yq4zx37qpp";
     };
     meta = {
-      homepage = https://github.com/graylog-labs/graylog-plugin-snmp;
+      homepage = "https://github.com/graylog-labs/graylog-plugin-snmp";
       description = "Graylog plugin to receive SNMP traps";
     };
   };
diff --git a/nixpkgs/pkgs/tools/misc/grub/2.0x.nix b/nixpkgs/pkgs/tools/misc/grub/2.0x.nix
index d9c4ceeca2c0..ea983d6f0437 100644
--- a/nixpkgs/pkgs/tools/misc/grub/2.0x.nix
+++ b/nixpkgs/pkgs/tools/misc/grub/2.0x.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, flex, bison, python3, autoconf, automake, gnulib, libtool
+{ lib, stdenv, fetchurl, flex, bison, python3, autoreconfHook, gnulib, libtool, bash
 , gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2, unifont, pkg-config
 , buildPackages
 , fetchpatch
@@ -51,10 +51,9 @@ stdenv.mkDerivation rec {
   pname = "grub";
   inherit version;
 
-  src = fetchgit {
-    url = "git://git.savannah.gnu.org/grub.git";
-    rev = "${pname}-${version}";
-    sha256 = "1vkxr6b4p7h259vayjw8bfgqj57x68byy939y4bmyaz6g7fgrv0f";
+  src = fetchurl {
+    url = "mirror://gnu/grub/grub-${version}.tar.xz";
+    sha256 = "sha256-t56kSvkbk9F80/6Ava5u1DdwZ4qaWuGSzOqAPrtlfuE=";
   };
 
   patches = [
@@ -75,8 +74,8 @@ stdenv.mkDerivation rec {
   '';
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
-  nativeBuildInputs = [ bison flex python3 pkg-config autoconf automake gettext freetype ];
-  buildInputs = [ ncurses libusb-compat-0_1 freetype lvm2 fuse libtool ]
+  nativeBuildInputs = [ bison flex python3 pkg-config gettext freetype autoreconfHook ];
+  buildInputs = [ ncurses libusb-compat-0_1 freetype lvm2 fuse libtool bash ]
     ++ optional doCheck qemu
     ++ optional zfsSupport zfs;
 
@@ -109,8 +108,6 @@ stdenv.mkDerivation rec {
 
       patchShebangs .
 
-      ./bootstrap --no-git --gnulib-srcdir=${gnulib}
-
       substituteInPlace ./configure --replace '/usr/share/fonts/unifont' '${unifont}/share/fonts'
     '';
 
@@ -144,6 +141,9 @@ stdenv.mkDerivation rec {
   postInstall = ''
     # Avoid a runtime reference to gcc
     sed -i $out/lib/grub/*/modinfo.sh -e "/grub_target_cppflags=/ s|'.*'|' '|"
+    # just adding bash to buildInputs wasn't enough to fix the shebang
+    substituteInPlace $out/lib/grub/*/modinfo.sh \
+      --replace ${buildPackages.bash} "/usr/bin/bash"
   '';
 
   passthru.tests = {
diff --git a/nixpkgs/pkgs/tools/misc/grub/grub1.patches.sh b/nixpkgs/pkgs/tools/misc/grub/grub1.patches.sh
index d3b138ad3577..a7db25afb64f 100755
--- a/nixpkgs/pkgs/tools/misc/grub/grub1.patches.sh
+++ b/nixpkgs/pkgs/tools/misc/grub/grub1.patches.sh
@@ -13,39 +13,39 @@ set -u
 
 # https://salsa.debian.org/grub-team/grub-legacy/tree/master/debian/patches
 SERIES=(
-	snapshot.patch
-	menu.lst_gnu-hurd.patch
-	graphics.patch
-	raid.patch
-	raid_cciss.patch
-	xfs_freeze.patch
-	2gb_limit.patch
-	grub-special_device_names.patch
-	grub-xvd_drives.patch
-	initrd_max_address.patch
-	splashimage_help.patch
-	grub-install_addsyncs.patch
-	grub-install_regexp.patch
-	grub-install_aoe_support.patch
-	grub-install_xvd.patch
-	geometry-26kernel.patch
-	print_func.patch
-	mprotect.patch
-	savedefault.patch
-	find-grub-dir.patch
-	intelmac.patch
-	crossreference_manpages.patch
-	ext3_256byte_inode.patch
+    snapshot.patch
+    menu.lst_gnu-hurd.patch
+    graphics.patch
+    raid.patch
+    raid_cciss.patch
+    xfs_freeze.patch
+    2gb_limit.patch
+    grub-special_device_names.patch
+    grub-xvd_drives.patch
+    initrd_max_address.patch
+    splashimage_help.patch
+    grub-install_addsyncs.patch
+    grub-install_regexp.patch
+    grub-install_aoe_support.patch
+    grub-install_xvd.patch
+    geometry-26kernel.patch
+    print_func.patch
+    mprotect.patch
+    savedefault.patch
+    find-grub-dir.patch
+    intelmac.patch
+    crossreference_manpages.patch
+    ext3_256byte_inode.patch
     # Breaks on NixOS.
-	#use_grub-probe_in_grub-install.patch
-	objcopy-absolute.patch
-	no-reorder-functions.patch
+    #use_grub-probe_in_grub-install.patch
+    objcopy-absolute.patch
+    no-reorder-functions.patch
 
-	# We aren't building amd64 binaries, see #244498
-	#fix_amd64_compile.patch
-	modern-automake.patch
-	no-combine-stack-adjustments.patch
-	no-pie.patch
+    # We aren't building amd64 binaries, see #244498
+    #fix_amd64_compile.patch
+    modern-automake.patch
+    no-combine-stack-adjustments.patch
+    no-pie.patch
 )
 
 # Revision mapping to current tip of the 0.97-73 branch.
@@ -63,8 +63,8 @@ in
 EOF
 
 for PATCH in "${SERIES[@]}"; do
-	URL="$prefix/$PATCH"
-	HASH="$(nix-prefetch-url "$URL")"
-	echo "{ url = \"\${prefix}/$PATCH\"; sha256 = \"$HASH\"; }" >> "$FILE"
+    URL="$prefix/$PATCH"
+    HASH="$(nix-prefetch-url "$URL")"
+    echo "{ url = \"\${prefix}/$PATCH\"; sha256 = \"$HASH\"; }" >> "$FILE"
 done
 echo "]" >> "$FILE"
diff --git a/nixpkgs/pkgs/tools/misc/gwe/default.nix b/nixpkgs/pkgs/tools/misc/gwe/default.nix
index 2eeb2f0d2c54..79c590fe6b30 100644
--- a/nixpkgs/pkgs/tools/misc/gwe/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gwe/default.nix
@@ -32,13 +32,13 @@ let
  ]);
 in stdenv.mkDerivation rec {
   pname = "gwe";
-  version = "0.15.3";
+  version = "0.15.4";
 
   src = fetchFromGitLab {
     owner = "leinardi";
     repo = pname;
     rev = version;
-    sha256 = "1znd2g02j0klg8w6cgwvaxc8anan6sidadknl0vh9jxmzz75xp9z";
+    sha256 = "sha256-7TVy9k61YA8tDXR2PC7TzwxKykWjnw8hQzgTQQIC0Zg=";
   };
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/hashit/default.nix b/nixpkgs/pkgs/tools/misc/hashit/default.nix
index e26a0abbde3a..b9bf5f0ae5f8 100644
--- a/nixpkgs/pkgs/tools/misc/hashit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hashit/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = teams.pantheon.members;
     platforms = platforms.linux;
+    mainProgram = "com.github.artemanufrij.hashit";
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/hdf5/default.nix b/nixpkgs/pkgs/tools/misc/hdf5/default.nix
index 43c156de419e..5671e73c85f8 100644
--- a/nixpkgs/pkgs/tools/misc/hdf5/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hdf5/default.nix
@@ -67,6 +67,13 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./bin-mv.patch
+
+    # Avoid non-determinism in autoconf build system:
+    # - build time
+    # - build user
+    # - uname -a (kernel version)
+    # Can be dropped once/if we switch to cmake.
+    ./hdf5-more-determinism.patch
   ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/tools/misc/hdf5/hdf5-more-determinism.patch b/nixpkgs/pkgs/tools/misc/hdf5/hdf5-more-determinism.patch
new file mode 100644
index 000000000000..9a9bfe24af7b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/hdf5/hdf5-more-determinism.patch
@@ -0,0 +1,15 @@
+diff --git a/src/libhdf5.settings.in b/src/libhdf5.settings.in
+index a4d4af6..70f1909 100644
+--- a/src/libhdf5.settings.in
++++ b/src/libhdf5.settings.in
+@@ -4,10 +4,7 @@
+ General Information:
+ -------------------
+                    HDF5 Version: @H5_VERSION@
+-                  Configured on: @CONFIG_DATE@
+-                  Configured by: @CONFIG_USER@
+                     Host system: @host_cpu@-@host_vendor@-@host_os@
+-              Uname information: @UNAME_INFO@
+                        Byte sex: @BYTESEX@
+              Installation point: @prefix@
+ 
diff --git a/nixpkgs/pkgs/tools/misc/heimdall/default.nix b/nixpkgs/pkgs/tools/misc/heimdall/default.nix
index 3dcefa8b2d0f..19bc90779d83 100644
--- a/nixpkgs/pkgs/tools/misc/heimdall/default.nix
+++ b/nixpkgs/pkgs/tools/misc/heimdall/default.nix
@@ -2,10 +2,9 @@
 , enableGUI ? false, qtbase ? null
 }:
 
-let version = "1.4.2"; in
-
-mkDerivation {
-  name = "heimdall-${if enableGUI then "gui-" else ""}${version}";
+mkDerivation rec {
+  pname = "heimdall${lib.optionalString enableGUI "-gui"}";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner  = "Benjamin-Dobell";
@@ -15,7 +14,8 @@ mkDerivation {
   };
 
   buildInputs = [
-    zlib libusb1
+    zlib
+    libusb1
   ] ++ lib.optional enableGUI qtbase;
   nativeBuildInputs = [ cmake ];
 
@@ -44,10 +44,10 @@ mkDerivation {
   '';
 
   meta = with lib; {
-    homepage    = "http://www.glassechidna.com.au/products/heimdall/";
+    homepage = "http://www.glassechidna.com.au/products/heimdall/";
     description = "A cross-platform tool suite to flash firmware onto Samsung Galaxy S devices";
-    license     = licenses.mit;
+    license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
-    platforms   = platforms.unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/hiksink/default.nix b/nixpkgs/pkgs/tools/misc/hiksink/default.nix
new file mode 100644
index 000000000000..3b4fb8b0af35
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/hiksink/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, Security
+, openssl
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "hiksink";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "CornerBit";
+    repo = pname;
+    rev = version;
+    sha256 = "1m8hd7qbasxyq09ycnqma2y4b9s2k54h9i2rkzsa9sksc868wxh8";
+  };
+
+  cargoSha256 = "15r6rwhyy0s5i0v9nzx3hfl5cvlb0hxnllcwfnw0bbn9km25l9r3";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    openssl
+  ] ++ lib.optional stdenv.isDarwin [
+    Security
+  ];
+
+  meta = with lib; {
+    description = "Tool to convert Hikvision camera events to MQTT";
+    homepage = "https://github.com/CornerBit/HikSink";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/hyperfine/default.nix b/nixpkgs/pkgs/tools/misc/hyperfine/default.nix
index 747c1e56a819..684d62b464f2 100644
--- a/nixpkgs/pkgs/tools/misc/hyperfine/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hyperfine/default.nix
@@ -1,17 +1,21 @@
-{ lib, stdenv, fetchCrate, rustPlatform, installShellFiles
+{ lib
+, rustPlatform
+, fetchCrate
+, installShellFiles
+, stdenv
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "hyperfine";
-  version = "1.11.0";
+  version = "1.12.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "0dla2jzwcxkdx3n4fqkkh6wirqs2f31lvqsw2pjf1jbnnif54mzh";
+    sha256 = "sha256-Vs754nvtYV5d736xsZ2foawfxMc25bUfMhm8Vxqxw6U=";
   };
 
-  cargoSha256 = "13dd5x0mr1pqcba48w9v5jjpddapd7gk34d4bysbjqsriwpbrdgp";
+  cargoSha256 = "sha256-X9WFnKP2+GM8V1kyd5VxpwBXql8Be5mugBVGrYdSsaM=";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optional stdenv.isDarwin Security;
@@ -26,8 +30,9 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Command-line benchmarking tool";
-    homepage    = "https://github.com/sharkdp/hyperfine";
-    license     = with licenses; [ asl20 /* or */ mit ];
-    maintainers = [ maintainers.thoughtpolice ];
+    homepage = "https://github.com/sharkdp/hyperfine";
+    changelog = "https://github.com/sharkdp/hyperfine/blob/v${version}/CHANGELOG.md";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ figsoda thoughtpolice ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/ibus-theme-tools/default.nix b/nixpkgs/pkgs/tools/misc/ibus-theme-tools/default.nix
new file mode 100644
index 000000000000..ee8a8719d139
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/ibus-theme-tools/default.nix
@@ -0,0 +1,29 @@
+{ lib, python3Packages, fetchFromGitHub, gettext }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "ibus-theme-tools";
+  version = "4.2.0";
+
+  src = fetchFromGitHub {
+    owner = "openSUSE";
+    repo = "IBus-Theme-Tools";
+    rev = "v${version}";
+    sha256 = "0i8vwnikwd1bfpv4xlgzc51gn6s18q58nqhvcdiyjzcmy3z344c2";
+  };
+
+  buildInputs = [ gettext ];
+
+  propagatedBuildInputs = with python3Packages; [ tinycss2 pygobject3 ];
+
+  # No test.
+  doCheck = false;
+
+  pythonImportsCheck = [ "ibus_theme_tools" ];
+
+  meta = with lib; {
+    description = "Generate the IBus GTK or GNOME Shell theme from existing themes";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ hollowman6 ];
+    homepage = "https://github.com/openSUSE/IBus-Theme-Tools";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/interactsh/default.nix b/nixpkgs/pkgs/tools/misc/interactsh/default.nix
index b623faea39fb..7da2a7fe729e 100644
--- a/nixpkgs/pkgs/tools/misc/interactsh/default.nix
+++ b/nixpkgs/pkgs/tools/misc/interactsh/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "interactsh";
-  version = "0.0.4";
+  version = "0.0.6";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9tmEeYuMRZVkcUupBzJv3rCuy7Il46yh5i0UEUNCNtc=";
+    sha256 = "sha256-9h2RdP0rVmStl+obMbBHcbfiOBiJ/2sbk2XvH3YaHRo=";
   };
 
-  vendorSha256 = "sha256-YTzo8YjnJUNXZrYKYTCHOgZAUrMlYzbEEP3yXYfNZqo=";
+  vendorSha256 = "sha256-9ehliyOCrWSDHVtmuUFBdw4BY6ygOvr2JxxJ3TvmSFU=";
 
   modRoot = ".";
   subPackages = [
diff --git a/nixpkgs/pkgs/tools/misc/ipxe/default.nix b/nixpkgs/pkgs/tools/misc/ipxe/default.nix
index 70b1ae48ae9c..76ce66e56864 100644
--- a/nixpkgs/pkgs/tools/misc/ipxe/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ipxe/default.nix
@@ -9,7 +9,7 @@ let
     "bin-x86_64-efi/ipxe.efi" = null;
     "bin-x86_64-efi/ipxe.efirom" = null;
     "bin-x86_64-efi/ipxe.usb" = "ipxe-efi.usb";
-  } // lib.optionalAttrs (stdenv.isi686 || stdenv.isx86_64) {
+  } // lib.optionalAttrs stdenv.hostPlatform.isx86 {
     "bin/ipxe.dsk" = null;
     "bin/ipxe.usb" = null;
     "bin/ipxe.iso" = null;
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   pname = "ipxe";
   version = "1.21.1";
 
-  nativeBuildInputs = [ perl cdrkit xz openssl gnu-efi mtools ] ++ lib.optional (stdenv.isi686 || stdenv.isx86_64) syslinux;
+  nativeBuildInputs = [ perl cdrkit xz openssl gnu-efi mtools ] ++ lib.optional stdenv.hostPlatform.isx86 syslinux;
 
   src = fetchFromGitHub {
     owner = "ipxe";
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   makeFlags =
     [ "ECHO_E_BIN_ECHO=echo" "ECHO_E_BIN_ECHO_E=echo" # No /bin/echo here.
-    ] ++ lib.optionals (stdenv.isi686 || stdenv.isx86_64) [
+    ] ++ lib.optionals stdenv.hostPlatform.isx86 [
       "ISOLINUX_BIN_LIST=${syslinux}/share/syslinux/isolinux.bin"
       "LDLINUX_C32=${syslinux}/share/syslinux/ldlinux.c32"
     ] ++ lib.optional (embedScript != null) "EMBED=${embedScript}";
diff --git a/nixpkgs/pkgs/tools/misc/jdupes/default.nix b/nixpkgs/pkgs/tools/misc/jdupes/default.nix
index 2589b57821b8..75a3ef92645d 100644
--- a/nixpkgs/pkgs/tools/misc/jdupes/default.nix
+++ b/nixpkgs/pkgs/tools/misc/jdupes/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jdupes";
-  version = "1.20.0";
+  version = "1.20.2";
 
   src = fetchFromGitHub {
     owner = "jbruchon";
     repo  = "jdupes";
     rev   = "v${version}";
-    sha256 = "sha256-G6ixqSIdDoM/OVlPfv2bI4MA/k0x3Jic/kFo5XEsN/M=";
+    sha256 = "sha256-3hKO+hNwYiJZ9Wn53vM7DHZmtvDhtgtSbW7bCMCT7s0=";
     # Unicode file names lead to different checksums on HFS+ vs. other
     # filesystems because of unicode normalisation. The testdir
     # directories have such files and will be removed.
diff --git a/nixpkgs/pkgs/tools/misc/jsonwatch/default.nix b/nixpkgs/pkgs/tools/misc/jsonwatch/default.nix
new file mode 100644
index 000000000000..3fe4f5008fd6
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/jsonwatch/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "jsonwatch";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "dbohdan";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-TGW04P8t0mAXza7I7qp6QRXA/MDE3m1dlRC7bMf2dSk=";
+  };
+
+  cargoSha256 = "sha256-Gjb7v3kz11iOml3Ykxhy43KNxzaprgMbb5DpPNChLTc=";
+
+  buildInputs = lib.optional stdenv.isDarwin [
+    Security
+  ];
+
+  meta = with lib; {
+    description = "Like watch -d but for JSON";
+    longDescription = ''
+      jsonwatch is a command line utility with which you can track
+      changes in JSON data delivered by a shell command or a web
+      (HTTP/HTTPS) API. jsonwatch requests data from the designated
+      source repeatedly at a set interval and displays the
+      differences when the data changes.
+    '';
+    homepage = "https://github.com/dbohdan/jsonwatch";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/jugglinglab/default.nix b/nixpkgs/pkgs/tools/misc/jugglinglab/default.nix
index f9038da04b57..7b52091104c7 100644
--- a/nixpkgs/pkgs/tools/misc/jugglinglab/default.nix
+++ b/nixpkgs/pkgs/tools/misc/jugglinglab/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, jre, makeWrapper, ant, jdk }:
 stdenv.mkDerivation rec {
   version = "1.2.1";
-  name = "jugglinglab";
+  pname = "jugglinglab";
   src = fetchFromGitHub {
     owner = "jkboyce";
     repo = "jugglinglab";
diff --git a/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix b/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
index e800a93dd2ae..05abfeaeebad 100644
--- a/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, lib, fetchFromGitHub, rustPlatform, Security }:
+{ stdenv, lib, fetchFromGitHub, rustPlatform, Security, SystemConfiguration }:
 
 rustPlatform.buildRustPackage rec {
   pname = "kak-lsp";
-  version = "11.0.0";
+  version = "11.1.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "198y2k3vi8dh9kfqgl7vpgkxvjlfvryi9c8hmb43m0lpwsja0010";
+    sha256 = "sha256-li7djFP5luEnbKUF+rynEiQbx704KNUJw8/AqwxPRnI=";
   };
 
-  cargoSha256 = "0sv1a2k5rcf4hl1w50mh041r3w3nir6avyl6xa3rlcc7cy19q21y";
+  cargoSha256 = "sha256-X1Qe86U4zlN1umRQOiRPRcbgCayqF6GILSt/nM8m1Yg=";
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
   meta = with lib; {
     description = "Kakoune Language Server Protocol Client";
diff --git a/nixpkgs/pkgs/tools/misc/kepubify/default.nix b/nixpkgs/pkgs/tools/misc/kepubify/default.nix
index a53ff544ad19..3a9c83a8dad3 100644
--- a/nixpkgs/pkgs/tools/misc/kepubify/default.nix
+++ b/nixpkgs/pkgs/tools/misc/kepubify/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kepubify";
-  version = "4.0.1";
+  version = "4.0.3";
 
   src = fetchFromGitHub {
     owner = "pgaskin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ZQY5U9uMCwsMl3Ds3bscPYmTt8JdWehOoowb+AmJSbQ=";
+    sha256 = "sha256-pe4jNBoPjrkvsdeFjH4TNwacp0qkf+v+SjIAZqV1GWE=";
   };
 
-  vendorSha256 = "sha256-DcE2MCbH5FIU1UoIF8OF17TfsWS5eQhHnWDEAxy8X6c=";
+  vendorSha256 = "sha256-eiFG6lgsY5hf+XT3Kf5uA4Ai8vBbPsh1T4ObV+rj30Y=";
 
   # remove when built with >= go 1.17
   tags = [ "zip117" ];
diff --git a/nixpkgs/pkgs/tools/misc/keychain/default.nix b/nixpkgs/pkgs/tools/misc/keychain/default.nix
index 61abb3eee105..826c9d85579c 100644
--- a/nixpkgs/pkgs/tools/misc/keychain/default.nix
+++ b/nixpkgs/pkgs/tools/misc/keychain/default.nix
@@ -1,5 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, coreutils, openssh, gnupg
-, perl, procps, gnugrep, gawk, findutils, gnused }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, installShellFiles
+, makeWrapper
+, coreutils
+, openssh
+, gnupg
+, perl
+, procps
+, gnugrep
+, gawk
+, findutils
+, gnused
+}:
 
 stdenv.mkDerivation rec {
   pname = "keychain";
@@ -12,33 +25,19 @@ stdenv.mkDerivation rec {
     sha256 = "1bkjlg0a2bbdjhwp37ci1rwikvrl4s3xlbf2jq2z4azc96dr83mj";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
   buildInputs = [ perl ];
 
   installPhase = ''
-    mkdir -p $out/{bin,share/man/man1}
+    mkdir -p $out/bin
     cp keychain $out/bin/keychain
-    cp keychain.1 $out/share/man/man1
+    installManPage keychain.1
     wrapProgram $out/bin/keychain \
-      --prefix PATH ":" "${coreutils}/bin" \
-      --prefix PATH ":" "${openssh}/bin" \
-      --prefix PATH ":" "${gnupg}/bin" \
-      --prefix PATH ":" "${gnugrep}/bin" \
-      --prefix PATH ":" "${gnused}/bin" \
-      --prefix PATH ":" "${findutils}/bin" \
-      --prefix PATH ":" "${gawk}/bin" \
-      --prefix PATH ":" "${procps}/bin"
+      --prefix PATH ":" "${lib.makeBinPath [ coreutils findutils gawk gnupg gnugrep gnused openssh procps ]}" \
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Keychain management tool";
-    homepage = "https://www.funtoo.org/Keychain";
-    license = lib.licenses.gpl2;
-    # other platforms are untested (AFAIK)
-    platforms =
-      with lib;
-      platforms.linux ++ platforms.darwin;
-    maintainers = with lib.maintainers; [ sigma ];
     longDescription = ''
       Keychain helps you to manage SSH and GPG keys in a convenient and secure
       manner. It acts as a frontend to ssh-agent and ssh-add, but allows you
@@ -51,5 +50,9 @@ stdenv.mkDerivation rec {
       for remote cron jobs to securely "hook in" to a long-running ssh-agent
       process, allowing your scripts to take advantage of key-based logins.
     '';
+    homepage = "https://www.funtoo.org/Keychain";
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ sigma SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/keymapviz/default.nix b/nixpkgs/pkgs/tools/misc/keymapviz/default.nix
new file mode 100644
index 000000000000..c31fbd6e3256
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/keymapviz/default.nix
@@ -0,0 +1,22 @@
+{ fetchFromGitHub, lib, python3 }:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "keymapviz";
+  version = "1.9.0";
+
+  src = fetchFromGitHub {
+    owner = "yskoht";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-lNpUH4BvlnHx0SDq5YSsHdcTeEnf6MH2WRUEsCWWHA0=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [ regex ];
+
+  meta = with lib; {
+    description = "A qmk keymap.c visualizer";
+    homepage = "https://github.com/yskoht/keymapviz";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lom ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/ksnip/default.nix b/nixpkgs/pkgs/tools/misc/ksnip/default.nix
index d78b45d9b7ac..788f4b75b4aa 100644
--- a/nixpkgs/pkgs/tools/misc/ksnip/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ksnip/default.nix
@@ -5,6 +5,7 @@
 , fetchFromGitHub
 , kcolorpicker
 , kimageannotator
+, wrapQtAppsHook
 , qtsvg
 , qttranslations
 , qtx11extras
@@ -12,20 +13,19 @@
 
 stdenv.mkDerivation rec {
   pname = "ksnip";
-  version = "1.9.1";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "ksnip";
     repo = "ksnip";
     rev = "v${version}";
-    sha256 = "1izsk586n9fbm0di0hj6pxs7r0a6w554gpad1ghf247icr0pfc1l";
+    sha256 = "sha256-4EIb1cHmScnFN7IralBR5hnvPBCHNQRcTWEWYezoOcQ=";
   };
 
-  dontWrapQtApps = true;
-
   nativeBuildInputs = [
     cmake
     extra-cmake-modules
+    wrapQtAppsHook
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/less/default.nix b/nixpkgs/pkgs/tools/misc/less/default.nix
index 9c5a4b1568be..3c64f4240ea8 100644
--- a/nixpkgs/pkgs/tools/misc/less/default.nix
+++ b/nixpkgs/pkgs/tools/misc/less/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "less";
-  version = "590";
+  version = "596";
 
   src = fetchurl {
     url = "https://www.greenwoodsoftware.com/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "044fl3izmsi8n1vqzsqdp65q0qyyn5kmsg4sk7id0mxzx15zbbba";
+    sha256 = "sha256-QhqP1ZfnIELu/P6OV2NnerxL6EM/bA321zmhbMDk1cM=";
   };
 
   configureFlags = [ "--sysconfdir=/etc" ] # Look for ‘sysless’ in /etc.
diff --git a/nixpkgs/pkgs/tools/misc/lf/default.nix b/nixpkgs/pkgs/tools/misc/lf/default.nix
index 5d812f5867cc..73010f8d944e 100644
--- a/nixpkgs/pkgs/tools/misc/lf/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lf/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "lf";
-  version = "25";
+  version = "26";
 
   src = fetchFromGitHub {
     owner = "gokcehan";
     repo = "lf";
     rev = "r${version}";
-    sha256 = "sha256-5/OfEWgtB9R3XRJ16ponf+bBVGAXkqPq8IlB8+zyjAQ=";
+    sha256 = "0a2kybaajpmhlq708fsdyyab388lkmz17gfn0qcv352i2d4lli0s";
   };
 
   vendorSha256 = "sha256-ujQh4aE++K/fn3PJqkAbTtwRyJPSI9TJQ1DvwLF9etU=";
@@ -20,7 +20,7 @@ buildGoModule rec {
   postInstall = ''
     install -D --mode=444 lf.desktop $out/share/applications/lf.desktop
     installManPage lf.1
-    installShellCompletion etc/lf.{zsh,fish}
+    installShellCompletion etc/lf.{bash,zsh,fish}
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix
index 48dab31e9a80..5d330ee3cacc 100644
--- a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix
+++ b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix
@@ -28,7 +28,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Bitcoin P2P Network Library";
-    homepage = "https://libbitcoin.org/";
+    homepage = "https://libbitcoin.info/";
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ asymmetric ];
 
diff --git a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix
index 1d8af4a336b3..06f6546e964d 100644
--- a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix
+++ b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix
@@ -29,7 +29,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Bitcoin Blockchain Query Protocol";
-    homepage = "https://libbitcoin.org/";
+    homepage = "https://libbitcoin.info/";
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ asymmetric ];
 
diff --git a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin.nix b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin.nix
index b4f91bc936d2..65bd52a03029 100644
--- a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin.nix
+++ b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin.nix
@@ -29,7 +29,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "C++ library for building bitcoin applications";
-    homepage = "https://libbitcoin.org/";
+    homepage = "https://libbitcoin.info/";
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ ];
 
diff --git a/nixpkgs/pkgs/tools/misc/libcpuid/default.nix b/nixpkgs/pkgs/tools/misc/libcpuid/default.nix
index 8c4cb5c1a759..5abe5673bf29 100644
--- a/nixpkgs/pkgs/tools/misc/libcpuid/default.nix
+++ b/nixpkgs/pkgs/tools/misc/libcpuid/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "libcpuid";
@@ -14,6 +14,12 @@ stdenv.mkDerivation rec {
   patches = [
     # Work around https://github.com/anrieff/libcpuid/pull/102.
     ./stdint.patch
+    # Fixes cross-compilation to NetBSD, remove me for libcpuid > 0.5.1
+    (fetchpatch {
+      name = "use-popcount-from-libc.patch";
+      url = "https://github.com/anrieff/libcpuid/commit/1acaf9980b55ae180cc08db218b9face28202519.patch";
+      sha256 = "0lvsv9baq0sria1f1ncn1b2783js29lfs5fv8milp54pg1wd5b7q";
+    })
   ];
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/tools/misc/lighthouse-steamvr/default.nix b/nixpkgs/pkgs/tools/misc/lighthouse-steamvr/default.nix
new file mode 100644
index 000000000000..ac3c6bcf1ad0
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/lighthouse-steamvr/default.nix
@@ -0,0 +1,27 @@
+{ fetchFromGitHub, lib, rustPlatform, pkg-config, dbus }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "Lighthouse";
+  version = "unstable-2021-03-28";
+
+  src = fetchFromGitHub {
+    owner = "ShayBox";
+    repo = "Lighthouse";
+    rev = "a090889077557fe92610ca503979b5cfc0724d61";
+    sha256 = "0vfl4y61cdrah98x6xcnb3cyi8rwhlws8ps6vfdlmr3dv30mbnbb";
+  };
+
+  cargoSha256 = "0aqd9ixszwq6qmj751gxx453gwbhwqi16m72bkbkj9s6nfyqihql";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ dbus ];
+
+  meta = with lib; {
+    description = "VR Lighthouse power state management";
+    homepage = "https://github.com/ShayBox/Lighthouse";
+    license = licenses.mit;
+    maintainers = with maintainers; [ expipiplus1 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/tools/misc/lilo/default.nix b/nixpkgs/pkgs/tools/misc/lilo/default.nix
index 2babcb2bedd7..bba9db383907 100644
--- a/nixpkgs/pkgs/tools/misc/lilo/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lilo/default.nix
@@ -8,7 +8,12 @@ stdenv.mkDerivation rec {
     hash = "sha256-4VjxneRWDJNevgUHwht5v/F2GLkjDYB2/oxf/5/b1bE=";
   };
   nativeBuildInputs = [ dev86 sharutils ];
-  DESTDIR = placeholder "out";
+  makeFlags = [
+    "DESTDIR=${placeholder "out"}"
+    "SBIN_DIR=/bin"
+    "USRSBIN_DIR=/bin"
+    "MAN_DIR=/share/man"
+  ];
 
   meta = with lib; {
     homepage = "https://www.joonet.de/lilo/";
diff --git a/nixpkgs/pkgs/tools/misc/livedl/default.nix b/nixpkgs/pkgs/tools/misc/livedl/default.nix
index b989fe27a659..ef298fbc6464 100644
--- a/nixpkgs/pkgs/tools/misc/livedl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/livedl/default.nix
@@ -13,7 +13,7 @@ buildGoModule rec {
 
   sourceRoot = "source/src";
 
-  vendorSha256 = sha256:g5Y1IH1U1zOOHygTzAJuBnUj+MyPe64KHTYikipt3TY=;
+  vendorSha256 = "g5Y1IH1U1zOOHygTzAJuBnUj+MyPe64KHTYikipt3TY=";
 
   meta = with lib; {
     description = "Command-line tool to download nicovideo.jp livestreams";
diff --git a/nixpkgs/pkgs/tools/misc/lnav/default.nix b/nixpkgs/pkgs/tools/misc/lnav/default.nix
index 3cbfb2ad365a..ce541e8f567f 100644
--- a/nixpkgs/pkgs/tools/misc/lnav/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lnav/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lnav";
-  version = "0.10.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "tstack";
     repo = "lnav";
     rev = "v${version}";
-    sha256 = "sha256-hAFyMypGC065aRgX2L4LdyFGpZ/LnX5SjA2iQv5Iuas=";
+    sha256 = "sha256-1b4mVKIUotMSK/ADHnpiM42G98JF0abL8sXXGFyS3sw=";
   };
 
   patches = [ ./0001-Forcefully-disable-docs-build.patch ];
diff --git a/nixpkgs/pkgs/tools/misc/loadlibrary/default.nix b/nixpkgs/pkgs/tools/misc/loadlibrary/default.nix
index e6d19fc6d406..a299a85b6b82 100644
--- a/nixpkgs/pkgs/tools/misc/loadlibrary/default.nix
+++ b/nixpkgs/pkgs/tools/misc/loadlibrary/default.nix
@@ -4,7 +4,7 @@
 # support for 64-bit yet: it requires libc6-dev:i386, libreadline-dev:i386.
 
 stdenv_32bit.mkDerivation rec {
-  name = "loadlibrary-${version}";
+  pname = "loadlibrary";
   version = "20170525-${lib.strings.substring 0 7 rev}";
   rev = "721b084c088d779075405b7f20c77c2578e2a961";
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/tools/misc/logstash/6.x.nix b/nixpkgs/pkgs/tools/misc/logstash/6.x.nix
index 1c7ab29cbc86..0b3e17818dcd 100644
--- a/nixpkgs/pkgs/tools/misc/logstash/6.x.nix
+++ b/nixpkgs/pkgs/tools/misc/logstash/6.x.nix
@@ -11,14 +11,14 @@ with lib;
 
 let this = stdenv.mkDerivation rec {
   version = elk6Version;
-  name = "logstash-${optionalString (!enableUnfree) "oss-"}${version}";
+  pname = "logstash${optionalString (!enableUnfree) "-oss"}";
 
   src = fetchurl {
-    url = "https://artifacts.elastic.co/downloads/logstash/${name}.tar.gz";
+    url = "https://artifacts.elastic.co/downloads/logstash/${pname}-${version}.tar.gz";
     sha256 =
       if enableUnfree
-      then "00pwi7clgdflzzg15bh3y30gzikvvy7p5fl88fww7xhhy47q8053"
-      else "0spxgqsyh72n0l0xh6rljp0lbqz46xmr02sqz25ybycr4qkxdhgk";
+      then "0hij1byw5b3xmk3vshr9p7gxwbjrywr7ylps05ydc2dmnz8q2a79"
+      else "1fa236pvhj7spys54nqi3k64rwzf6zi6gaccmqg4p4sh92jzsybv";
   };
 
   dontBuild         = true;
diff --git a/nixpkgs/pkgs/tools/misc/logstash/7.x.nix b/nixpkgs/pkgs/tools/misc/logstash/7.x.nix
index c0c67b19b10a..636c380817ce 100644
--- a/nixpkgs/pkgs/tools/misc/logstash/7.x.nix
+++ b/nixpkgs/pkgs/tools/misc/logstash/7.x.nix
@@ -17,17 +17,20 @@ let
   shas =
     if enableUnfree
     then {
-      x86_64-linux = "sha256-5qv4fbFpLf6aduD7wyxXQ6FsCeUqrszRisNBx44vbMY=";
-      x86_64-darwin = "sha256-7H+Xpo8qF1ZZMkR5n92PVplEN4JsBEYar91zHQhE+Lo=";
+      x86_64-linux  = "1vm53alq9q1qy2jcsjg9z339xrkac5r9qqpdafp53ny4zsv1n7vj";
+      x86_64-darwin = "0hhjyl04h3gd66rdk22272rj419br4v2i59lyrmaj6hmnsqbv968";
+      aarch64-linux = "0yjaki7gjffrz86hvqgn1gzhd9dc9llcj50g2x1sgpyn88zk0z0p";
     }
     else {
-      x86_64-linux = "sha256-jiV2yGPwPgZ5plo3ftImVDLSOsk/XBzFkeeALSObLhU=";
-      x86_64-darwin = "sha256-UYG+GGr23eAc2GgNX/mXaGU0WKMjiQMPpD1wUvAVz0A=";
+      x86_64-linux  = "1f3659vcgczm7v03q3fvsmp1ndp6wm3i7r2b2vbl4xq7hf9v7azk";
+      x86_64-darwin = "10zw9qc0lc0x9in0nkxc1aiazhyd69l8sya2ni46ivyyjwf0sqsn";
+      aarch64-linux = "1czhgmky2zf3mqykn5ww4257yfhd36mi4x6dq569ymly83pivf8v";
     };
   this = stdenv.mkDerivation rec {
     version = elk7Version;
     pname = "logstash${optionalString (!enableUnfree) "-oss"}";
 
+
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/logstash/${pname}-${version}-${plat}-${arch}.tar.gz";
       sha256 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture");
diff --git a/nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix b/nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix
index 087a5ce7f9a3..85437e09efbb 100644
--- a/nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "lokalise2-cli";
-  version = "2.6.7";
+  version = "2.6.8";
 
   src = fetchFromGitHub {
     owner = "lokalise";
     repo = "lokalise-cli-2-go";
     rev = "v${version}";
-    sha256 = "sha256-p3JvaDDebbIgOvTh0e7yYe3qOXvj1pLSG95hpK62M7s=";
+    sha256 = "sha256-U8XN7cH64ICVxcjmIWBeelOT3qQlGt6MhOPgUWkCPF0=";
   };
 
-  vendorSha256 = "sha256-KJ8haktP9qoG5QsKnTOkvE8L+SQ9Z6hrsjUeS0wrdLs=";
+  vendorSha256 = "sha256-PM3Jjgq6mbM6iVCXRos9UsqqFNaXOqq713GZ2R9tQww=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/lsd/default.nix b/nixpkgs/pkgs/tools/misc/lsd/default.nix
index 54b3b443d0a4..c0d1c278bfdd 100644
--- a/nixpkgs/pkgs/tools/misc/lsd/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lsd/default.nix
@@ -1,5 +1,4 @@
 { lib
-, nixosTests
 , fetchFromGitHub
 , rustPlatform
 , installShellFiles
@@ -26,7 +25,18 @@ rustPlatform.buildRustPackage rec {
   # Found argument '--test-threads' which wasn't expected, or isn't valid in this context
   doCheck = false;
 
-  passthru.tests = { inherit (nixosTests) lsd; };
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    testFile=$(mktemp /tmp/lsd-test.XXXX)
+    echo 'abc' > $testFile
+    $out/bin/lsd --classic --blocks "size,name" -l $testFile | grep "4 B $testFile"
+    $out/bin/lsd --version | grep "${version}"
+    rm $testFile
+
+    runHook postInstallCheck
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/Peltoche/lsd";
diff --git a/nixpkgs/pkgs/tools/misc/macchina/default.nix b/nixpkgs/pkgs/tools/misc/macchina/default.nix
index 042902d080c1..2dc6ba9f89e4 100644
--- a/nixpkgs/pkgs/tools/misc/macchina/default.nix
+++ b/nixpkgs/pkgs/tools/misc/macchina/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "macchina";
-  version = "1.1.6";
+  version = "5.0.5";
 
   src = fetchFromGitHub {
     owner = "Macchina-CLI";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-JiyJU+5bKXHUgaRyUKdgINbMxkv2XXAkuoouQv9SEow=";
+    sha256 = "sha256-si+5LvRUIWp48vsD1WxGWl2O/2bpaBX+ArkZPbBqtME=";
   };
 
-  cargoSha256 = "sha256-pychP3OHXMv23TtZbaMOPBbEoJh4R03ySzEdwADTmFI=";
+  cargoSha256 = "sha256-CN7PxPUkfyDGxVaf879Sp6w0UbqwL/is15xcfH2fm1w=";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Foundation ];
diff --git a/nixpkgs/pkgs/tools/misc/man-db/default.nix b/nixpkgs/pkgs/tools/misc/man-db/default.nix
index f1739cbd50dd..d495c912f599 100644
--- a/nixpkgs/pkgs/tools/misc/man-db/default.nix
+++ b/nixpkgs/pkgs/tools/misc/man-db/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, libpipeline, db, groff, libiconv, makeWrapper, buildPackages }:
+{ lib, stdenv, fetchurl, pkg-config, libpipeline, db, groff, libiconv, makeWrapper, buildPackages, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "man-db";
@@ -73,6 +73,10 @@ stdenv.mkDerivation rec {
 
   doCheck = !stdenv.hostPlatform.isMusl /* iconv binary */ && !stdenv.hostPlatform.isDarwin;
 
+  passthru.tests = {
+    nixos = nixosTests.man;
+  };
+
   meta = with lib; {
     homepage = "http://man-db.nongnu.org";
     description = "An implementation of the standard Unix documentation system accessed using the man command";
diff --git a/nixpkgs/pkgs/tools/misc/mandoc/default.nix b/nixpkgs/pkgs/tools/misc/mandoc/default.nix
index db0789c11267..2d974b8af63d 100644
--- a/nixpkgs/pkgs/tools/misc/mandoc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mandoc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, zlib, perl }:
+{ lib, stdenv, fetchurl, zlib, perl, nixosTests }:
 
 let
   # check if we can execute binaries for the host platform on the build platform
@@ -42,6 +42,8 @@ stdenv.mkDerivation rec {
     SBINDIR="$PREFIX/bin"
     CC=${stdenv.cc.targetPrefix}cc
     AR=${stdenv.cc.bintools.targetPrefix}ar
+    # Allow makewhatis(8) to follow symlinks from a manpath to the nix store
+    READ_ALLOWED_PATH=${builtins.storeDir}
     # Bypass the locale(1)-based check for UTF-8 support since it causes trouble:
     # * We only have meaningful locale(1) implementations for glibc and macOS
     # * NetBSD's locale(1) (used for macOS) depends on mandoc
@@ -60,6 +62,10 @@ stdenv.mkDerivation rec {
   checkInputs = [ perl ];
   preCheck = "patchShebangs --build regress/regress.pl";
 
+  passthru.tests = {
+    nixos = nixosTests.man;
+  };
+
   meta = with lib; {
     homepage = "https://mandoc.bsd.lv/";
     description = "suite of tools compiling mdoc and man";
diff --git a/nixpkgs/pkgs/tools/misc/mbuffer/default.nix b/nixpkgs/pkgs/tools/misc/mbuffer/default.nix
index 24ac8e198077..2a300302f6b2 100644
--- a/nixpkgs/pkgs/tools/misc/mbuffer/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mbuffer/default.nix
@@ -1,32 +1,40 @@
-{ lib, stdenv, fetchurl,
-  openssl,
- } :
+{ lib
+, stdenv
+, fetchurl
+, openssl
+, which
+}:
 
 stdenv.mkDerivation rec {
-  version = "20210328";
   pname = "mbuffer";
+  version = "20211018";
 
   src = fetchurl {
     url = "http://www.maier-komor.de/software/mbuffer/mbuffer-${version}.tgz";
-    sha256 = "sha256-UbW42EiJkaVf4d/OkBMPnke8HOKGugO09ijAS3hP3F0=";
+    sha256 = "sha256-4kDB5OSsFMKL6MZg7EfUTOFrHo7JKqkHrRMAT/1dtuM=";
   };
 
-  buildInputs = [ openssl ];
+  buildInputs = [
+    openssl
+    which
+  ];
 
   # The mbuffer configure scripts fails to recognize the correct
   # objdump binary during cross-building for foreign platforms.
   # The correct objdump is exposed via the environment variable
   # $OBJDUMP, which should be used in such cases.
   preConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
-    substituteInPlace configure --replace "OBJDUMP=$ac_cv_path_OBJDUMP" 'OBJDUMP=''${OBJDUMP}'
+    substituteInPlace configure \
+      --replace "OBJDUMP=$ac_cv_path_OBJDUMP" 'OBJDUMP=''${OBJDUMP}'
   '';
+
   doCheck = true;
 
-  meta = {
-    homepage = "https://www.maier-komor.de/mbuffer.html";
+  meta = with lib; {
     description  = "A tool for buffering data streams with a large set of unique features";
-    license = lib.licenses.gpl3Only;
-    maintainers = with lib.maintainers; [ tokudan ];
-    platforms = lib.platforms.linux; # Maybe other non-darwin Unix
+    homepage = "https://www.maier-komor.de/mbuffer.html";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ tokudan ];
+    platforms = platforms.linux; # Maybe other non-darwin Unix
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/mc/default.nix b/nixpkgs/pkgs/tools/misc/mc/default.nix
index b9ff4ad33d2c..be24d3e2c0b7 100644
--- a/nixpkgs/pkgs/tools/misc/mc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mc/default.nix
@@ -17,6 +17,9 @@
 , coreutils
 , autoreconfHook
 , autoSignDarwinBinariesHook
+
+# updater only
+, writeScript
 }:
 
 stdenv.mkDerivation rec {
@@ -69,6 +72,17 @@ stdenv.mkDerivation rec {
       $out/bin/mc
   '';
 
+  passthru.updateScript = writeScript "update-mc" ''
+   #!/usr/bin/env nix-shell
+   #!nix-shell -i bash -p curl pcre common-updater-scripts
+
+   set -eu -o pipefail
+
+   # Expect the text in format of "Current version is: 4.8.27; ...".
+   new_version="$(curl -s https://midnight-commander.org/ | pcregrep -o1 'Current version is: (([0-9]+\.?)+);')"
+   update-source-version mc "$new_version"
+ '';
+
   meta = with lib; {
     description = "File Manager and User Shell for the GNU Project";
     downloadPage = "https://www.midnight-commander.org/downloads/";
diff --git a/nixpkgs/pkgs/tools/misc/mcfly/default.nix b/nixpkgs/pkgs/tools/misc/mcfly/default.nix
index e613e4bb3ea1..612d35ffeb38 100644
--- a/nixpkgs/pkgs/tools/misc/mcfly/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mcfly/default.nix
@@ -2,22 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mcfly";
-  version = "0.5.9";
+  version = "0.5.11";
 
   src = fetchFromGitHub {
     owner = "cantino";
     repo = "mcfly";
     rev = "v${version}";
-    sha256 = "0i3qjgq1b8h3bzc7rxa60kq1yc2im9m6dgzrvial086a1zk8s81r";
+    sha256 = "sha256-JyNrEIgvL4TQHpAEefDnLirXplGjJcUqsmALKY44VuM=";
   };
 
   postPatch = ''
-    substituteInPlace mcfly.bash --replace '$(which mcfly)' '${placeholder "out"}/bin/mcfly'
-    substituteInPlace mcfly.zsh  --replace '$(which mcfly)' '${placeholder "out"}/bin/mcfly'
-    substituteInPlace mcfly.fish --replace '(which mcfly)'  '${placeholder "out"}/bin/mcfly'
+    substituteInPlace mcfly.bash --replace '$(command which mcfly)' '${placeholder "out"}/bin/mcfly'
+    substituteInPlace mcfly.zsh  --replace '$(command which mcfly)' '${placeholder "out"}/bin/mcfly'
+    substituteInPlace mcfly.fish --replace '(command which mcfly)'  '${placeholder "out"}/bin/mcfly'
   '';
 
-  cargoSha256 = "084v4fsdi25ahz068ssq29z7d5d3k3jh3s8b07irwybdsy18c629";
+  cargoSha256 = "sha256-7wyRHViPL+Hb9Rwrb1dAmmz+faOl9ddNlTdQ/XvTWE8=";
 
   meta = with lib; {
     homepage = "https://github.com/cantino/mcfly";
diff --git a/nixpkgs/pkgs/tools/misc/mdbtools/default.nix b/nixpkgs/pkgs/tools/misc/mdbtools/default.nix
index 7eb57863575f..b03ac6c785fe 100644
--- a/nixpkgs/pkgs/tools/misc/mdbtools/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mdbtools/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mdbtools";
-  version = "0.9.4";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "mdbtools";
     repo = "mdbtools";
     rev = "v${version}";
-    sha256 = "sha256-Hnub8h0a3qx5cxVn1tp/IVbz9aORjGGWizD3Z4rPl2s=";
+    sha256 = "sha256-e9rgTWu8cwuccpp/wAfas1ZeQPTpGcgE6YjLz7KRnhw=";
   };
 
   configureFlags = [ "--disable-scrollkeeper" ];
diff --git a/nixpkgs/pkgs/tools/misc/me_cleaner/default.nix b/nixpkgs/pkgs/tools/misc/me_cleaner/default.nix
index f5e8f1524737..4872c349b20d 100644
--- a/nixpkgs/pkgs/tools/misc/me_cleaner/default.nix
+++ b/nixpkgs/pkgs/tools/misc/me_cleaner/default.nix
@@ -1,6 +1,6 @@
-{ lib, python2, fetchFromGitHub }:
+{ lib, python3, fetchFromGitHub }:
 
-python2.pkgs.buildPythonPackage rec {
+python3.pkgs.buildPythonPackage rec {
   pname = "me_cleaner";
   version = "1.2";
 
diff --git a/nixpkgs/pkgs/tools/misc/memtest86-efi/default.nix b/nixpkgs/pkgs/tools/misc/memtest86-efi/default.nix
index 125f8f35acca..264fe013b27a 100644
--- a/nixpkgs/pkgs/tools/misc/memtest86-efi/default.nix
+++ b/nixpkgs/pkgs/tools/misc/memtest86-efi/default.nix
@@ -8,23 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "memtest86-efi";
-  version = "8.4";
+  version = "9.3.1000";
 
   src = fetchzip {
-    # TODO: We're using the previous version of memtest86 because the
-    # company developing memtest86 has stopped providing a versioned download
-    # link for the latest version:
-    #
-    # https://www.passmark.com/forum/memtest86/44494-version-8-1-distribution-file-is-not-versioned?p=44505#post44505
-    #
-    # However, versioned links for the previous version are available, so that
-    # is what is being used.
-    #
-    # It does look like redistribution is okay, so if we had somewhere to host
-    # binaries that we make sure to version, then we could probably keep up
-    # with the latest versions released by the company.
-    url = "https://www.memtest86.com/downloads/memtest86-${version}-usb.zip";
-    sha256 = "sha256-jh4FKCYZbOQhRv6B7N8Hmw6RQCQvbBGaGFTMLwM1nk8=";
+    # We're using the Internet Archive Wayback Machine because the company developing MemTest86 has stopped providing a versioned download link for the latest version:
+    # https://forums.passmark.com/memtest86/44494-version-8-1-distribution-file-is-not-versioned
+    url = "https://web.archive.org/web/20211111004725/https://www.memtest86.com/downloads/memtest86-usb.zip";
+    sha256 = "sha256-GJdZCUFw1uX4HcaaAy5QqDGNqHTFtrqla13wF7xCAaM=";
     stripRoot = false;
   };
 
@@ -57,18 +47,16 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "http://memtest86.com/";
+    homepage = "https://www.memtest86.com/";
     downloadPage = "https://www.memtest86.com/download.htm";
+    changelog = "https://www.memtest86.com/whats-new.html";
     description = "A tool to detect memory errors, to be run from a bootloader";
     longDescription = ''
       A UEFI app that is able to detect errors in RAM.  It can be run from a
       bootloader.  Released under a proprietary freeware license.
     '';
-    # The Memtest86 License for the Free Edition states,
-    # "MemTest86 Free Edition is free to download with no restrictions on usage".
-    # However the source code for Memtest86 does not appear to be available.
-    #
-    # https://www.memtest86.com/license.htm
+    # MemTest86 Free Edition is free to download with no restrictions on usage. However, the source code is not available.
+    # https://www.memtest86.com/tech_license-information.html
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ cdepillabout ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/misc/miniserve/default.nix b/nixpkgs/pkgs/tools/misc/miniserve/default.nix
index b6d0bc9ede23..542af55ad95d 100644
--- a/nixpkgs/pkgs/tools/misc/miniserve/default.nix
+++ b/nixpkgs/pkgs/tools/misc/miniserve/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "miniserve";
-  version = "0.17.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "svenstaro";
     repo = "miniserve";
     rev = "v${version}";
-    sha256 = "sha256-DqH/6Uu4L0fWbnGX8s3jCGwBgPE2PLIkS/dZIj+BA9Q=";
+    sha256 = "sha256-5rFxVk+D11Iqr0SP2VYdMEnFwijpxQT8e5EoK2PYtmQ=";
   };
 
-  cargoSha256 = "sha256-LgdVO41e56DIRkky1aF0X80ixs7ZH93Qk9Yx67vkO9E=";
+  cargoSha256 = "sha256-40TJzhaD1bi/u8k472K89A51wKhm/XjBs13W6oU/06Q=";
 
   nativeBuildInputs = [ installShellFiles pkg-config zlib ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
@@ -41,7 +41,9 @@ rustPlatform.buildRustPackage rec {
     description = "For when you really just want to serve some files over HTTP right now!";
     homepage = "https://github.com/svenstaro/miniserve";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ zowoq ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    # https://hydra.nixos.org/build/162650896/nixlog/1
+    broken = stdenv.isDarwin && stdenv.isAarch64;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/mktorrent/default.nix b/nixpkgs/pkgs/tools/misc/mktorrent/default.nix
index 194a0c62721d..089caac7884a 100644
--- a/nixpkgs/pkgs/tools/misc/mktorrent/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mktorrent/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "1.1";
 
   src = fetchFromGitHub {
-    owner = "Rudde";
+    owner = "pobrn";
     repo = "mktorrent";
     rev = "v${version}";
     sha256 = "17pdc5mandl739f8q26n5is8ga56s83aqcrwhlnnplbxwx2inidr";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ openssl ];
 
   meta = {
-    homepage = "http://mktorrent.sourceforge.net/";
+    homepage = "https://github.com/pobrn/mktorrent/wiki";
     license = lib.licenses.gpl2Plus;
     description = "Command line utility to create BitTorrent metainfo files";
     maintainers = with lib.maintainers; [Profpatsch];
diff --git a/nixpkgs/pkgs/tools/misc/mmctl/default.nix b/nixpkgs/pkgs/tools/misc/mmctl/default.nix
new file mode 100644
index 000000000000..50648716e1c3
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/mmctl/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+buildGoModule rec {
+  pname = "mmctl";
+  version = "6.2.1";
+
+  src = fetchFromGitHub {
+    owner = "mattermost";
+    repo = "mmctl";
+    rev = "v${version}";
+    sha256 = "sha256-DhkBiczQ+4iwoufHMuy6Fn3a4q7gvkKGXTfLcUCCKis=";
+  };
+
+  vendorSha256 = null;
+
+  checkPhase = "make test";
+
+  meta = with lib; {
+    description = "A remote CLI tool for Mattermost";
+    homepage = "https://github.com/mattermost/mmctl";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ppom ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix b/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
index 8baeb1556b14..c243e5584125 100644
--- a/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
@@ -1,9 +1,40 @@
-{ lib, stdenv, fetchurl, dpkg
-, alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib
-, gnome2, gdk-pixbuf, gtk3, pango, libnotify, libsecret, libuuid, libxcb, nspr, nss, systemd, xorg, wrapGAppsHook }:
+{
+alsa-lib,
+at-spi2-atk,
+at-spi2-core,
+atk,
+cairo,
+cups,
+curl,
+dbus,
+dpkg,
+expat,
+fetchurl,
+fontconfig,
+freetype,
+gdk-pixbuf,
+glib,
+gnome2,
+gtk3,
+lib,
+libdrm,
+libnotify,
+libsecret,
+libuuid,
+libxcb,
+libxkbcommon,
+mesa,
+nspr,
+nss,
+pango,
+stdenv,
+systemd,
+wrapGAppsHook,
+xorg,
+}:
 
 let
-  version = "1.25.0";
+  version = "1.29.6";
 
   rpath = lib.makeLibraryPath [
     alsa-lib
@@ -17,22 +48,24 @@ let
     expat
     fontconfig
     freetype
+    gdk-pixbuf
     glib
     gnome2.GConf
-    gdk-pixbuf
     gtk3
-    pango
+    libdrm
     libnotify
     libsecret
     libuuid
     libxcb
+    libxkbcommon
+    mesa
     nspr
     nss
+    pango
     stdenv.cc.cc
     systemd
-
-    xorg.libxkbfile
     xorg.libX11
+    xorg.libXScrnSaver
     xorg.libXcomposite
     xorg.libXcursor
     xorg.libXdamage
@@ -42,14 +75,16 @@ let
     xorg.libXrandr
     xorg.libXrender
     xorg.libXtst
-    xorg.libXScrnSaver
-  ] + ":${stdenv.cc.cc.lib}/lib64";
+    xorg.libxkbfile
+    xorg.libxshmfence
+    (lib.getLib stdenv.cc.cc)
+  ];
 
   src =
     if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchurl {
         url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb";
-        sha256 = "sha256-998/voQ04fLj3KZCy6BueUoI1v++4BoGRTGJT7Nsv40=";
+        sha256 = "sha256-yLbuHvZrI8C4X/burIo5cI+H8KEv++4FyRgtISpmPxE=";
       }
     else
       throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}";
@@ -94,8 +129,9 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "The GUI for MongoDB";
+    maintainers = with maintainers; [ bryanasdev000 ];
     homepage = "https://www.mongodb.com/products/compass";
-    license = licenses.unfree;
+    license = licenses.sspl;
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/mongodb-tools/default.nix b/nixpkgs/pkgs/tools/misc/mongodb-tools/default.nix
index 7949a82edc48..a4dc2ba905c1 100644
--- a/nixpkgs/pkgs/tools/misc/mongodb-tools/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mongodb-tools/default.nix
@@ -16,9 +16,8 @@ let
     "mongostat"
     "mongofiles"
     "mongotop"
-    "mongoreplay"
   ];
-  version = "4.2.0";
+  version = "100.5.1";
 
 in buildGoPackage {
   pname = "mongo-tools";
@@ -28,10 +27,10 @@ in buildGoPackage {
   subPackages = tools;
 
   src = fetchFromGitHub {
-    rev = "r${version}";
+    rev = version;
     owner = "mongodb";
     repo = "mongo-tools";
-    sha256 = "0mjwvx0cxvb6zam6jyr3753xjnwcygxcjzqhhlsq0b3xnwws9yh7";
+    sha256 = "sha256-Qxtb7DJOgrCUvoGVgmKh4qKS4duvEWwW9BLkdt5M5ZY=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -53,6 +52,7 @@ in buildGoPackage {
   meta = {
     homepage = "https://github.com/mongodb/mongo-tools";
     description = "Tools for the MongoDB";
+    maintainers = with lib.maintainers; [ bryanasdev000 ];
     license = lib.licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/moreutils/default.nix b/nixpkgs/pkgs/tools/misc/moreutils/default.nix
index 5a1452007af2..d64b690b7636 100644
--- a/nixpkgs/pkgs/tools/misc/moreutils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/moreutils/default.nix
@@ -3,12 +3,12 @@
 with lib;
 stdenv.mkDerivation rec {
   pname = "moreutils";
-  version = "0.65";
+  version = "0.67";
 
   src = fetchgit {
     url = "git://git.joeyh.name/moreutils";
     rev = "refs/tags/${version}";
-    sha256 = "17r80xs756c5vv4ghh901c8abraqqfp7ncagv9ys4il3jngfqbrb";
+    sha256 = "sha256-8Mu7L3KqOsW9OmidMkWB+q9TofHd1P1sbsNrtE4MUoA=";
   };
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/tools/misc/most/default.nix b/nixpkgs/pkgs/tools/misc/most/default.nix
index de2118083d98..2073e066ae73 100644
--- a/nixpkgs/pkgs/tools/misc/most/default.nix
+++ b/nixpkgs/pkgs/tools/misc/most/default.nix
@@ -9,6 +9,11 @@ stdenv.mkDerivation rec {
     sha256 = "008537ns659pw2aag15imwjrxj73j26aqq90h285is6kz8gmv06v";
   };
 
+  patches = [
+    # Upstream patch to fix parallel build failure
+    ./parallel-make.patch
+  ];
+
   outputs = [ "out" "doc" ];
 
   makeFlags = [
@@ -26,6 +31,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ slang ncurses ];
 
+  enableParallelBuilding = true;
+
   meta = with lib; {
     description = "A terminal pager similar to 'more' and 'less'";
     longDescription = ''
diff --git a/nixpkgs/pkgs/tools/misc/most/parallel-make.patch b/nixpkgs/pkgs/tools/misc/most/parallel-make.patch
new file mode 100644
index 000000000000..07c2e47c673e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/most/parallel-make.patch
@@ -0,0 +1,18 @@
+Upstream commit c9cfad50a ("src/Makefile.in: Avoid a race condition
+when performing a parallel build")
+
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -54,6 +54,12 @@ COMPILE_CMD = $(CC) -c $(ALL_CFLAGS) -DMOST_SYSTEM_INITFILE='"$(SYS_INITFILE)"'
+ all: $(EXEC)
+ $(EXEC): $(OBJDIR) $(CONFIG_H) slangversion $(OBJDIR)/$(EXEC)
+ 	@echo $(EXEC) created in $(OBJDIR)
++
++# C source files include autogenrated "config.h". Make sure
++# it's available before the compilation. Pessimistically assume
++# any source file can depend on "config.h".
++$(OBJS) $(OBJDIR)/chkslang.o: $(CONFIG_H)
++
+ $(OBJDIR)/$(EXEC): $(OBJS)
+ 	cd $(OBJDIR); $(CC) $(OFILES) -o $(EXEC) $(LDFLAGS) $(EXECLIBS)
+ #
diff --git a/nixpkgs/pkgs/tools/misc/mstflint/default.nix b/nixpkgs/pkgs/tools/misc/mstflint/default.nix
index 70bace74b1e9..51fd22b0c35e 100644
--- a/nixpkgs/pkgs/tools/misc/mstflint/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mstflint/default.nix
@@ -1,18 +1,25 @@
-{ lib, stdenv, autoreconfHook, fetchFromGitHub, zlib, libibmad, openssl }:
+{ lib
+, stdenv
+, fetchurl
+, libibmad
+, openssl
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "mstflint";
-  version = "4.14.0-3";
+  version = "4.17.0-1";
 
-  src = fetchFromGitHub {
-    owner = "Mellanox";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0zy9npyzf7dkxlfl9mx6997aa61mk23ixpjb01ckb1wvav5k6z82";
+  src = fetchurl {
+    url = "https://github.com/Mellanox/mstflint/releases/download/v${version}/mstflint-${version}.tar.gz";
+    sha256 = "030vpiv44sxmjf0dng91ziq1cggwj33yp0l4xc6cdhnrv2prjs7y";
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ zlib libibmad openssl ];
+  buildInputs = [
+    libibmad
+    openssl
+    zlib
+  ];
 
   hardeningDisable = [ "format" ];
 
diff --git a/nixpkgs/pkgs/tools/misc/multitail/default.nix b/nixpkgs/pkgs/tools/misc/multitail/default.nix
index 3304d3c19120..b551d16480d4 100644
--- a/nixpkgs/pkgs/tools/misc/multitail/default.nix
+++ b/nixpkgs/pkgs/tools/misc/multitail/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, ncurses, pkg-config }:
+{ lib, stdenv, fetchurl, fetchpatch, ncurses, pkg-config }:
 
 stdenv.mkDerivation rec {
   version = "6.5.0";
@@ -9,6 +9,16 @@ stdenv.mkDerivation rec {
     sha256 = "1vd9vdxyxsccl64ilx542ya5vlw2bpg6gnkq1x8cfqy6vxvmx7dj";
   };
 
+  patches = [
+    # Fix pending upstream inclusion for ncurses-6.3:
+    #  https://github.com/halturin/multitail/pull/4
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/halturin/multitail/commit/d7d10f3bce261074c116eba9f924b61f43777662.patch";
+      sha256 = "0kyp9l6v92mz6d3h34j11gs5kh3sf2nv76mygqfxb800vd8r0cgg";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ ncurses ];
@@ -21,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    homepage = "http://www.vanheusden.com/multitail/";
+    homepage = "https://github.com/halturin/multitail";
     description = "tail on Steroids";
     maintainers = with lib.maintainers; [ matthiasbeyer ];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/tools/misc/mysqltuner/default.nix b/nixpkgs/pkgs/tools/misc/mysqltuner/default.nix
index 2acbfd41adfe..f4dbf2cef6e1 100644
--- a/nixpkgs/pkgs/tools/misc/mysqltuner/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mysqltuner/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mysqltuner";
-  version = "1.7.21";
+  version = "1.8.3";
 
   src = fetchFromGitHub {
     owner = "major";
     repo = "MySQLTuner-perl";
     rev = version;
-    sha256 = "sha256-Yv1XjD8sZcmGr2SVD6TEElUH7vspJ61WwQwfXLOrao0=";
+    sha256 = "sha256-ezF0zjQB/KWD5rUcbXx2uwiNLsIJ7ZKMoqkclP7oc98=";
   };
 
   postPatch = ''
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Make recommendations for increased performance and stability of MariaDB/MySQL";
-    homepage = "http://mysqltuner.com";
+    homepage = "https://mysqltuner.com/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ peterhoeg shamilton ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix b/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix
index e6e95968a09f..233ad9fcb66c 100644
--- a/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix
+++ b/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "neo-cowsay";
-  version = "1.0.3";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "Code-Hex";
     repo = "Neo-cowsay";
     rev = "v${version}";
-    sha256 = "sha256-n01C6Z9nV2DDbSqgbOIZTqZAWXo6h4/NJdyFiOCh79A=";
+    sha256 = "sha256-VswknPs/yCUOUsXoGlGNF22i7dK8FrYzWkUWlfIPrNo=";
   };
 
-  vendorSha256 = "sha256-4qMsyNFD2MclsseE+IAaNm5r0wHWdcwLLPsZ0JJ3qpw=";
+  vendorSha256 = "sha256-kJSKDqw2NpnPjotUM6Ck6sixCJt3nVOdx800/+JBiWM=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix b/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix
index de7074d12b51..fcb44333941e 100644
--- a/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix
+++ b/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix
@@ -2,23 +2,18 @@
 , stdenv
 , fetchFromGitHub
 , gnugrep
-, nixStable
-, nixUnstable
-, enableFlakes ? false
+, nix
+, enableFlakes ? null # deprecated
 }:
-
-let
-  nix = if enableFlakes then nixUnstable else nixStable;
-in
 stdenv.mkDerivation rec {
   pname = "nix-direnv";
-  version = "1.4.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nix-direnv";
     rev = version;
-    sha256 = "sha256-BKiuYvxgY2P7GK59jul5l0kHNrJtD2jmsMGmX0+09hY=";
+    sha256 = "sha256-/V2v4dF3DEvsrJRbHD3wF5ZByek26NjphmaPG8FU9lI=";
   };
 
   # Substitute instead of wrapping because the resulting file is
diff --git a/nixpkgs/pkgs/tools/misc/nms/default.nix b/nixpkgs/pkgs/tools/misc/nms/default.nix
index 8edddc4238df..e74f18557f32 100644
--- a/nixpkgs/pkgs/tools/misc/nms/default.nix
+++ b/nixpkgs/pkgs/tools/misc/nms/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nms";
-  version = "0.3.3";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "bartobri";
     repo = "no-more-secrets";
     rev = "v${version}";
-    sha256 = "1zfv4qabikf8w9winsr4brxrdvs3f0d7xvydksyx8bydadsm2v2h";
+    sha256 = "sha256-QVCEpplsZCSQ+Fq1LBtCuPBvnzgLsmLcSrxR+e4nA5I=";
   };
 
   buildFlags = [ "nms" "sneakers" ];
diff --git a/nixpkgs/pkgs/tools/misc/nncp/default.nix b/nixpkgs/pkgs/tools/misc/nncp/default.nix
index 1a20c412edba..8470837278b0 100644
--- a/nixpkgs/pkgs/tools/misc/nncp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/nncp/default.nix
@@ -1,32 +1,23 @@
-{ lib, stdenv
-, go
-, fetchurl
-, redo-apenwarr
-, curl
-, perl
-, genericUpdater
-, writeShellScript
-}:
+{ lib, stdenv, go, fetchurl, redo-apenwarr, curl, perl, genericUpdater
+, writeShellScript, nixosTests, cfgPath ? "/etc/nncp.hjson" }:
 
 stdenv.mkDerivation rec {
   pname = "nncp";
-  version = "7.7.0";
+  version = "8.0.2";
+  outputs = [ "out" "doc" "info" ];
 
   src = fetchurl {
     url = "http://www.nncpgo.org/download/${pname}-${version}.tar.xz";
-    sha256 = "ppKi/JY8sKRb/Vt/SXom0L1zhjBPn6PNUm3Gn8o5Ke4=";
+    sha256 = "sha256-hMb7bAdk3xFcUe5CTu9LnIR3VSJDUKbMSE86s8d5udM=";
   };
 
   nativeBuildInputs = [ go redo-apenwarr ];
 
-  buildPhase = ''
-    runHook preBuild
-    export GOCACHE=$PWD/.cache
-    export CFGPATH=/etc/nncp.hjson
-    export SENDMAIL=sendmail # default value for generated config file
-    redo ''${enableParallelBuilding:+-j''${NIX_BUILD_CORES}}
-    runHook postBuild
-  '';
+  # Build parameters
+  CFGPATH = cfgPath;
+  SENDMAIL = "sendmail";
+
+  preConfigure = "export GOCACHE=$NIX_BUILD_TOP/gocache";
 
   installPhase = ''
     runHook preInstall
@@ -42,7 +33,7 @@ stdenv.mkDerivation rec {
     inherit pname version;
     versionLister = writeShellScript "nncp-versionLister" ''
       echo "# Versions for $1:" >> "$2"
-      ${curl}/bin/curl -s http://www.nncpgo.org/Tarballs.html | ${perl}/bin/perl -lne 'print $1 if /Release.*>([0-9.]+)</'
+      ${curl}/bin/curl -s ${meta.downloadPage} | ${perl}/bin/perl -lne 'print $1 if /Release.*>([0-9.]+)</'
     '';
   };
 
@@ -64,8 +55,9 @@ stdenv.mkDerivation rec {
       transmission exists.
     '';
     homepage = "http://www.nncpgo.org/";
+    downloadPage = "http://www.nncpgo.org/Tarballs.html";
     license = licenses.gpl3Only;
     platforms = platforms.all;
-    maintainers = [ maintainers.woffs ];
+    maintainers = with maintainers; [ ehmry woffs ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/ntfy/default.nix b/nixpkgs/pkgs/tools/misc/ntfy/default.nix
index 3f85e7f01a4b..e976ca5fd691 100644
--- a/nixpkgs/pkgs/tools/misc/ntfy/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ntfy/default.nix
@@ -1,4 +1,4 @@
-{ lib, python3Packages, fetchFromGitHub }:
+{ lib, python3Packages, fetchFromGitHub, fetchpatch }:
 
 python3Packages.buildPythonApplication rec {
   pname = "ntfy";
@@ -16,13 +16,24 @@ python3Packages.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = with python3Packages; [
-    requests ruamel_yaml appdirs
+    requests ruamel-yaml appdirs
     sleekxmpp dnspython
     emoji
     psutil
     matrix-client
     dbus-python
     ntfy-webpush
+    slack-sdk
+  ];
+
+  patches = [
+    # Fix Slack integration no longer working.
+    # From https://github.com/dschep/ntfy/pull/229 - "Swap Slacker for Slack SDK"
+    (fetchpatch {
+      name = "ntfy-Swap-Slacker-for-Slack-SDK.patch";
+      url = "https://github.com/dschep/ntfy/commit/2346e7cfdca84c8f1afc7462a92145c1789deb3e.patch";
+      sha256 = "13k7jbsdx0jx7l5s8whirric76hml5bznkfcxab5xdp88q52kpk7";
+    })
   ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/nux/default.nix b/nixpkgs/pkgs/tools/misc/nux/default.nix
new file mode 100644
index 000000000000..d3f26d850e5f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/nux/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, asciidoctor
+, installShellFiles
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nux";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "NuxPackage";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-k3HRaWN8/MTZRGWBxI8RRK0tcSYBbSLs3vHkUdLGTc8";
+  };
+
+  cargoSha256 = "sha256-wfUr3dcdALMEgJ6CaXhK4Gqk6xflCnov9tELA63drV4=";
+
+  preFixup = ''
+    installManPage $releaseDir/build/nux-*/out/nux.1
+    installShellCompletion $releaseDir/build/nux-*/out/nux.{bash,fish}
+    installShellCompletion $releaseDir/build/nux-*/out/_nux
+
+  '';
+  nativeBuildInputs = [ asciidoctor installShellFiles ];
+
+  meta = with lib; {
+    description = "A wrapper over the nix cli";
+    homepage = "https://github.com/NuxPackage/nux";
+    license = with licenses; [ gpl3 ];
+    maintainers = with maintainers; [ drzoidberg ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/nvimpager/default.nix b/nixpkgs/pkgs/tools/misc/nvimpager/default.nix
index e07989198868..2a6415067d48 100644
--- a/nixpkgs/pkgs/tools/misc/nvimpager/default.nix
+++ b/nixpkgs/pkgs/tools/misc/nvimpager/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nvimpager";
-  version = "0.10";
+  version = "0.10.4";
 
   src = fetchFromGitHub {
     owner = "lucc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-okYnPwuxU/syxcKIMUBc25r791D6Bug2w2axH4vvmAY=";
+    sha256 = "sha256-0guSL4RvYQFwok7zGuevhQY6DHjnETRLpEIEQfGslcg=";
   };
 
   buildInputs = [
@@ -26,9 +26,6 @@ stdenv.mkDerivation rec {
   preBuild = ''
     patchShebangs nvimpager
     substituteInPlace nvimpager --replace ':-nvim' ':-${neovim}/bin/nvim'
-    # remove git command from makefile as we run from a tarball
-    # replace with actual timestamp of the commit
-    substituteInPlace makefile --replace '$(shell git log -1 --no-show-signature --pretty="%ct")' 1623019602
     '';
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/tools/misc/octofetch/default.nix b/nixpkgs/pkgs/tools/misc/octofetch/default.nix
new file mode 100644
index 000000000000..e0cf9d98d651
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/octofetch/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, openssl
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "octofetch";
+  version = "0.3.3";
+
+  src = fetchFromGitHub {
+    owner = "azur1s";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-/AXE1e02NfxQzJZd0QX6gJDjmFFmuUTOndulZElgIMI=";
+  };
+
+  cargoSha256 = "sha256:1ddyzbpsiy54r13nb9yrm64cbbifixnhkskwg5fvhhzj4ri4ks4a";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = lib.optionals stdenv.isLinux [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [ Security ];
+
+  meta = with lib; {
+    description = "Github user information on terminal";
+    homepage = "https://github.com/azur1s/octofetch";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jyooru ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/oggvideotools/default.nix b/nixpkgs/pkgs/tools/misc/oggvideotools/default.nix
new file mode 100644
index 000000000000..e6b8d9a1d288
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/oggvideotools/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchurl, fetchpatch, cmake, pkg-config, boost, gd, libogg, libtheora, libvorbis }:
+
+stdenv.mkDerivation rec {
+  pname = "oggvideotools";
+  version = "0.9.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/oggvideotools/oggvideotools/oggvideotools-${version}/oggvideotools-${version}.tar.bz2";
+    sha256 = "sha256-2dv3iXt86phhIgnYC5EnRzyX1u5ssNzPwrOP4+jilSM=";
+  };
+
+  patches = [
+    # Fix pending upstream inclusion for missing includes:
+    #  https://sourceforge.net/p/oggvideotools/bugs/12/
+    (fetchpatch {
+      name = "gcc-10.patch";
+      url = "https://sourceforge.net/p/oggvideotools/bugs/12/attachment/fix-compile.patch";
+      sha256 = "sha256-mJttoC3jCLM3vmPhlyqh+W0ryp2RjJGIBXd6sJfLJA4=";
+    })
+
+    # Fix pending upstream inclusion for build failure on gcc-12:
+    #  https://sourceforge.net/p/oggvideotools/bugs/13/
+    (fetchpatch {
+      name = "gcc-12.patch";
+      url = "https://sourceforge.net/p/oggvideotools/bugs/13/attachment/fix-gcc-12.patch";
+      sha256 = "sha256-zuDXe86djWkR8SgYZHkuAJJ7Lf2VYsVRBrlEaODtMKE=";
+      # svn patch, rely on prefix added by fetchpatch:
+      extraPrefix = "";
+    })
+  ];
+
+  postPatch = ''
+    # Don't disable optimisations
+    substituteInPlace CMakeLists.txt --replace " -O0 " ""
+  '';
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ boost gd libogg libtheora libvorbis ];
+
+  meta = with lib; {
+    description = "Toolbox for manipulating and creating Ogg video files";
+    homepage = "http://www.streamnik.de/oggvideotools.html";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/opencbm/default.nix b/nixpkgs/pkgs/tools/misc/opencbm/default.nix
new file mode 100644
index 000000000000..2512747e74aa
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/opencbm/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cc65
+, ncurses
+, pkg-config
+, libusb1
+}:
+
+stdenv.mkDerivation rec {
+  pname = "opencbm";
+  version = "0.4.99.103";
+
+  src = fetchFromGitHub {
+    owner = "OpenCBM";
+    repo = "OpenCBM";
+    rev = "v${version}";
+    sha256 = "06844yfgcbbwrp3iz5k8zd1zjawzbpvl131lgmkwz6d542c2k4k9";
+  };
+
+  makefile = "LINUX/Makefile";
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "ETCDIR=${placeholder "out"}/etc"
+    "UDEVRULESDIR=${placeholder "out"}/etc/udev/rules.d/"
+    "LDCONFIG=true"
+  ];
+  installTargets = "install-all";
+
+  nativeBuildInputs = [
+    cc65
+    pkg-config
+  ];
+  buildInputs = [
+    libusb1
+    ncurses
+  ];
+
+  meta = with lib; {
+    description = "Kernel driver and development library to control serial CBM devices";
+    longDescription = ''
+      Win 7/8/10, and Linux/i386/AMD64 kernel driver and development library to
+      control serial CBM devices, such as the Commodore 1541 disk drive,
+      connected to the PC's parallel port via a XM1541 or XA1541 cable. Fast
+      disk copier included. Successor of cbm4linux. Also supports the XU1541
+      and the XUM1541 devices (a.k.a. "ZoomFloppy").
+    '';
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.sander ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/opencorsairlink/default.nix b/nixpkgs/pkgs/tools/misc/opencorsairlink/default.nix
index 14f955be1cdc..1c18cb82c590 100644
--- a/nixpkgs/pkgs/tools/misc/opencorsairlink/default.nix
+++ b/nixpkgs/pkgs/tools/misc/opencorsairlink/default.nix
@@ -1,8 +1,8 @@
 { lib, stdenv, fetchFromGitHub, libusb1, pkg-config }:
 
 stdenv.mkDerivation rec {
-  name = "OpenCorsairLink-${version}";
-  version = "2019-12-23";
+  pname = "OpenCorsairLink";
+  version = "unstable-2019-12-23";
 
   buildInputs = [ libusb1 ];
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/tools/misc/opentelemetry-collector/default.nix b/nixpkgs/pkgs/tools/misc/opentelemetry-collector/default.nix
index 3250047e0e3d..6c83d72976d9 100644
--- a/nixpkgs/pkgs/tools/misc/opentelemetry-collector/default.nix
+++ b/nixpkgs/pkgs/tools/misc/opentelemetry-collector/default.nix
@@ -5,18 +5,20 @@
 
 buildGoModule rec {
   pname = "opentelemetry-collector";
-  version = "0.31.0";
+  version = "0.40.0";
 
   src = fetchFromGitHub {
     owner = "open-telemetry";
     repo = "opentelemetry-collector-contrib";
     rev = "v${version}";
-    sha256 = "sha256-iJL3EFoBtp4UOLm4/b4JBwzK6iZSTE0cb6EzmlziOLk=";
+    sha256 = "sha256-YFgAS4WReyMnzb6FOeRUXHf1LUgknH5gWObiZNKMbv8=";
   };
 
-  vendorSha256 = "sha256-LNlglYys4F7+W7PUmBT9cBnYs7y6AlB9wdaDibaxqC0=";
+  vendorSha256 = "sha256-DTZLYF3BoQGou59KaL56pkxySsoQ0xeJ5aF/SkewziE=";
   proxyVendor = true;
 
+  CGO_ENABLED = 0;
+
   subPackages = [ "cmd/otelcontribcol" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/os-prober/default.nix b/nixpkgs/pkgs/tools/misc/os-prober/default.nix
index bc5dbe4672e8..7fdbbc1fae65 100644
--- a/nixpkgs/pkgs/tools/misc/os-prober/default.nix
+++ b/nixpkgs/pkgs/tools/misc/os-prober/default.nix
@@ -11,14 +11,14 @@ lvm2        # lvs
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.78";
+  version = "1.79";
   pname = "os-prober";
   src = fetchFromGitLab {
     domain = "salsa.debian.org";
     owner = "installer-team";
     repo = pname;
     rev = version;
-    sha256 = "sha256-mfv1b40n/opXdyj6IXWVf/32sWlS+/DbXIRwE1zX4KM=";
+    sha256 = "sha256-ntwH5TIA18IOgYPkHMLU0EVykkHs6Z0wseYEPsU0KvQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/misc/ostree/default.nix b/nixpkgs/pkgs/tools/misc/ostree/default.nix
index 1508e6f93cd6..b5b23ee6a2ad 100644
--- a/nixpkgs/pkgs/tools/misc/ostree/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ostree/default.nix
@@ -41,13 +41,13 @@ let
   ]));
 in stdenv.mkDerivation rec {
   pname = "ostree";
-  version = "2021.3";
+  version = "2021.6";
 
   outputs = [ "out" "dev" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/ostreedev/ostree/releases/download/v${version}/libostree-${version}.tar.xz";
-    sha256 = "sha256-D6Wjnww+WMIEATPkIpyyhmDGG5eM1KKj0vbpfvTI0LM=";
+    sha256 = "sha256-6AYxyxNj1HNP6dDJH2mmi+OEgWbW4EgdsZzkSpy09TE=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/misc/pandoc-lua-filters/default.nix b/nixpkgs/pkgs/tools/misc/pandoc-lua-filters/default.nix
index 6eb3359b3b5e..1323da5104ba 100644
--- a/nixpkgs/pkgs/tools/misc/pandoc-lua-filters/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pandoc-lua-filters/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pandoc-lua-filters";
-  version = "2020-11-30";
+  version = "2021-11-05";
 
   src = fetchFromGitHub {
     owner = "pandoc";
     repo = "lua-filters";
     rev = "v${version}";
-    sha256 = "HWBlmlIuJOSgRVrUmXOAI4XTxs1PbZhcwZgZFX0x2wM=";
+    sha256 = "sha256-Y962kdwg2bS3ZoPfsktv4Fy34HUTRhIIuSxPi5ODwWg=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/tools/misc/parallel/default.nix b/nixpkgs/pkgs/tools/misc/parallel/default.nix
index 519d928c6952..40599ff9c4e4 100644
--- a/nixpkgs/pkgs/tools/misc/parallel/default.nix
+++ b/nixpkgs/pkgs/tools/misc/parallel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "parallel";
-  version = "20210722";
+  version = "20211222";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${pname}-${version}.tar.bz2";
-    sha256 = "0jaa5137sjw2szvmnnslkqv1n3gg2rkkgr71j7hpp5a3q15hjf9j";
+    sha256 = "sha256-BYSRz0xSpIVZd73oA8Y2iLLKnFmRvhDnuLDArt5G0Zw=";
   };
 
   outputs = [ "out" "man" "doc" ];
diff --git a/nixpkgs/pkgs/tools/misc/parquet-tools/default.nix b/nixpkgs/pkgs/tools/misc/parquet-tools/default.nix
new file mode 100644
index 000000000000..46155dcb3323
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/parquet-tools/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, fetchFromGitHub
+, fetchpatch
+, python3Packages
+}:
+
+with python3Packages;
+
+buildPythonApplication rec {
+  pname = "parquet-tools";
+  version = "0.2.9";
+  disabled = pythonOlder "3.8";
+
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "ktrueda";
+    repo = "parquet-tools";
+    rev = version;
+    sha256 = "0aw0x7lhagp4dwis09fsizr7zbhdpliav0ns5ll5qny7x4m6rkfy";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/ktrueda/parquet-tools/commit/1c70a07e1c9f17c8890d23aad3ded5dd6c706cb3.patch";
+      sha256 = "08j1prdqj8ksw8gwiyj7ivshk82ahmywbzmywclw52nlnniig0sa";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'thrift = "^0.13.0"' 'thrift = "*"' \
+      --replace 'halo = "^0.0.29"' 'halo = "*"'
+    substituteInPlace tests/test_inspect.py \
+      --replace "parquet-cpp-arrow version 5.0.0" "parquet-cpp-arrow version ${pyarrow.version}" \
+      --replace "serialized_size: 2222" "serialized_size: 2221"
+  '';
+
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [
+    boto3
+    colorama
+    halo
+    pandas
+    pyarrow
+    tabulate
+    thrift
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    moto
+    pytest-mock
+  ];
+
+  disabledTests = [
+    # these tests try to read python code as parquet and fail
+    "test_local_wildcard"
+    "test_local_and_s3_wildcard_files"
+  ];
+
+  meta = with lib; {
+    description = "A CLI tool for parquet files";
+    homepage = "https://github.com/ktrueda/parquet-tools";
+    license = licenses.mit;
+    maintainers = with maintainers; [ cpcloud ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/peep/0001-Add-Cargo.lock-by-running-cargo-vendor.patch b/nixpkgs/pkgs/tools/misc/peep/0001-Add-Cargo.lock-by-running-cargo-vendor.patch
deleted file mode 100644
index f444d72c4648..000000000000
--- a/nixpkgs/pkgs/tools/misc/peep/0001-Add-Cargo.lock-by-running-cargo-vendor.patch
+++ /dev/null
@@ -1,570 +0,0 @@
-From 153e9acd6fb50c50db5ebdd03303a42f56ec05e0 Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Tue, 17 Mar 2020 23:14:36 +0100
-Subject: [PATCH] Add Cargo.lock by running `cargo vendor`
-
----
- Cargo.lock | 551 +++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 551 insertions(+)
- create mode 100644 Cargo.lock
-
-diff --git a/Cargo.lock b/Cargo.lock
-new file mode 100644
-index 0000000..91f9100
---- /dev/null
-+++ b/Cargo.lock
-@@ -0,0 +1,551 @@
-+# This file is automatically @generated by Cargo.
-+# It is not intended for manual editing.
-+[[package]]
-+name = "aho-corasick"
-+version = "0.7.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
-+dependencies = [
-+ "memchr",
-+]
-+
-+[[package]]
-+name = "autocfg"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
-+
-+[[package]]
-+name = "bitflags"
-+version = "1.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-+
-+[[package]]
-+name = "byteorder"
-+version = "1.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
-+
-+[[package]]
-+name = "bytes"
-+version = "0.4.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
-+dependencies = [
-+ "byteorder",
-+ "iovec",
-+]
-+
-+[[package]]
-+name = "cc"
-+version = "1.0.50"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
-+
-+[[package]]
-+name = "cfg-if"
-+version = "0.1.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-+
-+[[package]]
-+name = "cloudabi"
-+version = "0.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-+dependencies = [
-+ "bitflags",
-+]
-+
-+[[package]]
-+name = "crossbeam-utils"
-+version = "0.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
-+dependencies = [
-+ "autocfg",
-+ "cfg-if",
-+ "lazy_static",
-+]
-+
-+[[package]]
-+name = "ctrlc"
-+version = "3.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a4ba686dff9fa4c1c9636ce1010b0cf98ceb421361b0bb3d6faeec43bd217a7"
-+dependencies = [
-+ "nix 0.17.0",
-+ "winapi 0.3.8",
-+]
-+
-+[[package]]
-+name = "fnv"
-+version = "1.0.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
-+
-+[[package]]
-+name = "fuchsia-zircon"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
-+dependencies = [
-+ "bitflags",
-+ "fuchsia-zircon-sys",
-+]
-+
-+[[package]]
-+name = "fuchsia-zircon-sys"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-+
-+[[package]]
-+name = "futures"
-+version = "0.1.29"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef"
-+
-+[[package]]
-+name = "getopts"
-+version = "0.2.21"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
-+dependencies = [
-+ "unicode-width",
-+]
-+
-+[[package]]
-+name = "hermit-abi"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1010591b26bbfe835e9faeabeb11866061cc7dcebffd56ad7d0942d0e61aefd8"
-+dependencies = [
-+ "libc",
-+]
-+
-+[[package]]
-+name = "inotify"
-+version = "0.6.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "40b54539f3910d6f84fbf9a643efd6e3aa6e4f001426c0329576128255994718"
-+dependencies = [
-+ "bitflags",
-+ "futures",
-+ "inotify-sys",
-+ "libc",
-+ "mio",
-+ "tokio-io",
-+ "tokio-reactor",
-+]
-+
-+[[package]]
-+name = "inotify-sys"
-+version = "0.1.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0"
-+dependencies = [
-+ "libc",
-+]
-+
-+[[package]]
-+name = "iovec"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
-+dependencies = [
-+ "libc",
-+]
-+
-+[[package]]
-+name = "kernel32-sys"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
-+dependencies = [
-+ "winapi 0.2.8",
-+ "winapi-build",
-+]
-+
-+[[package]]
-+name = "lazy_static"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-+
-+[[package]]
-+name = "libc"
-+version = "0.2.68"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0"
-+
-+[[package]]
-+name = "lock_api"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "79b2de95ecb4691949fea4716ca53cdbcfccb2c612e19644a8bad05edcf9f47b"
-+dependencies = [
-+ "scopeguard",
-+]
-+
-+[[package]]
-+name = "log"
-+version = "0.4.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-+dependencies = [
-+ "cfg-if",
-+]
-+
-+[[package]]
-+name = "maybe-uninit"
-+version = "2.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
-+
-+[[package]]
-+name = "memchr"
-+version = "2.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
-+
-+[[package]]
-+name = "mio"
-+version = "0.6.21"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
-+dependencies = [
-+ "cfg-if",
-+ "fuchsia-zircon",
-+ "fuchsia-zircon-sys",
-+ "iovec",
-+ "kernel32-sys",
-+ "libc",
-+ "log",
-+ "miow",
-+ "net2",
-+ "slab",
-+ "winapi 0.2.8",
-+]
-+
-+[[package]]
-+name = "miow"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
-+dependencies = [
-+ "kernel32-sys",
-+ "net2",
-+ "winapi 0.2.8",
-+ "ws2_32-sys",
-+]
-+
-+[[package]]
-+name = "net2"
-+version = "0.2.33"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "winapi 0.3.8",
-+]
-+
-+[[package]]
-+name = "nix"
-+version = "0.11.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "becb657d662f1cd2ef38c7ad480ec6b8cf9e96b27adb543e594f9cf0f2e6065c"
-+dependencies = [
-+ "bitflags",
-+ "cc",
-+ "cfg-if",
-+ "libc",
-+ "void",
-+]
-+
-+[[package]]
-+name = "nix"
-+version = "0.17.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363"
-+dependencies = [
-+ "bitflags",
-+ "cc",
-+ "cfg-if",
-+ "libc",
-+ "void",
-+]
-+
-+[[package]]
-+name = "num_cpus"
-+version = "1.12.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6"
-+dependencies = [
-+ "hermit-abi",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "numtoa"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef"
-+
-+[[package]]
-+name = "parking_lot"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
-+dependencies = [
-+ "lock_api",
-+ "parking_lot_core",
-+ "rustc_version",
-+]
-+
-+[[package]]
-+name = "parking_lot_core"
-+version = "0.6.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
-+dependencies = [
-+ "cfg-if",
-+ "cloudabi",
-+ "libc",
-+ "redox_syscall",
-+ "rustc_version",
-+ "smallvec",
-+ "winapi 0.3.8",
-+]
-+
-+[[package]]
-+name = "peep"
-+version = "0.1.4"
-+dependencies = [
-+ "ctrlc",
-+ "getopts",
-+ "inotify",
-+ "libc",
-+ "mio",
-+ "nix 0.11.1",
-+ "regex",
-+ "termion",
-+ "termios",
-+ "unicode-width",
-+]
-+
-+[[package]]
-+name = "redox_syscall"
-+version = "0.1.56"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-+
-+[[package]]
-+name = "redox_termios"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
-+dependencies = [
-+ "redox_syscall",
-+]
-+
-+[[package]]
-+name = "regex"
-+version = "1.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8900ebc1363efa7ea1c399ccc32daed870b4002651e0bed86e72d501ebbe0048"
-+dependencies = [
-+ "aho-corasick",
-+ "memchr",
-+ "regex-syntax",
-+ "thread_local",
-+]
-+
-+[[package]]
-+name = "regex-syntax"
-+version = "0.6.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae"
-+
-+[[package]]
-+name = "rustc_version"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-+dependencies = [
-+ "semver",
-+]
-+
-+[[package]]
-+name = "scopeguard"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-+
-+[[package]]
-+name = "semver"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-+dependencies = [
-+ "semver-parser",
-+]
-+
-+[[package]]
-+name = "semver-parser"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-+
-+[[package]]
-+name = "slab"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
-+
-+[[package]]
-+name = "smallvec"
-+version = "0.6.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
-+dependencies = [
-+ "maybe-uninit",
-+]
-+
-+[[package]]
-+name = "termion"
-+version = "1.5.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c22cec9d8978d906be5ac94bceb5a010d885c626c4c8855721a4dbd20e3ac905"
-+dependencies = [
-+ "libc",
-+ "numtoa",
-+ "redox_syscall",
-+ "redox_termios",
-+]
-+
-+[[package]]
-+name = "termios"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625"
-+dependencies = [
-+ "libc",
-+]
-+
-+[[package]]
-+name = "thread_local"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
-+dependencies = [
-+ "lazy_static",
-+]
-+
-+[[package]]
-+name = "tokio-executor"
-+version = "0.1.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
-+dependencies = [
-+ "crossbeam-utils",
-+ "futures",
-+]
-+
-+[[package]]
-+name = "tokio-io"
-+version = "0.1.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
-+dependencies = [
-+ "bytes",
-+ "futures",
-+ "log",
-+]
-+
-+[[package]]
-+name = "tokio-reactor"
-+version = "0.1.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
-+dependencies = [
-+ "crossbeam-utils",
-+ "futures",
-+ "lazy_static",
-+ "log",
-+ "mio",
-+ "num_cpus",
-+ "parking_lot",
-+ "slab",
-+ "tokio-executor",
-+ "tokio-io",
-+ "tokio-sync",
-+]
-+
-+[[package]]
-+name = "tokio-sync"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee"
-+dependencies = [
-+ "fnv",
-+ "futures",
-+]
-+
-+[[package]]
-+name = "unicode-width"
-+version = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
-+
-+[[package]]
-+name = "void"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
-+
-+[[package]]
-+name = "winapi"
-+version = "0.2.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-+
-+[[package]]
-+name = "winapi"
-+version = "0.3.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
-+dependencies = [
-+ "winapi-i686-pc-windows-gnu",
-+ "winapi-x86_64-pc-windows-gnu",
-+]
-+
-+[[package]]
-+name = "winapi-build"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-+
-+[[package]]
-+name = "winapi-i686-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-+
-+[[package]]
-+name = "winapi-x86_64-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-+
-+[[package]]
-+name = "ws2_32-sys"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
-+dependencies = [
-+ "winapi 0.2.8",
-+ "winapi-build",
-+]
--- 
-2.25.0
-
diff --git a/nixpkgs/pkgs/tools/misc/peep/default.nix b/nixpkgs/pkgs/tools/misc/peep/default.nix
index e77ace41f9c2..6fdacce9e5f1 100644
--- a/nixpkgs/pkgs/tools/misc/peep/default.nix
+++ b/nixpkgs/pkgs/tools/misc/peep/default.nix
@@ -2,17 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "peep";
-  version = "0.1.4";
+  version = "0.1.4-post.2021-08-17";
 
   src = fetchFromGitHub {
     owner = "ryochack";
     repo = "peep";
-    rev = "v${version}";
-    sha256 = "0c0fphnhq9vg9jjnkl35k56jbcnyz2ballsnkbm2xrh8vbyvk1av";
+    rev = "0eceafe16ff1f9c6d6784cca75b6f612c38901c4";
+    sha256 = "sha256-HtyT9kFS7derPhiBzICHIz3AvYVcYpUj1OW+t5RivRs=";
   };
 
-  cargoPatches = [ ./0001-Add-Cargo.lock-by-running-cargo-vendor.patch ];
-  cargoSha256 = "12jqhvf8kdi17c442hl8sfpgxhni07x59khjwyyn54bnwc5h3zf9";
+  cargoSha256 = "sha256-sHsmHCMuHc56Mkqk2NUtZgC0RGyqhPvW1fKHkEAhqYk=";
 
   meta = with lib; {
     description = "The CLI text viewer tool that works like less command on small pane within the terminal window";
diff --git a/nixpkgs/pkgs/tools/misc/pgmetrics/default.nix b/nixpkgs/pkgs/tools/misc/pgmetrics/default.nix
index c5a240f714ea..b6cc6e4acc35 100644
--- a/nixpkgs/pkgs/tools/misc/pgmetrics/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pgmetrics/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pgmetrics";
-  version = "1.11.0";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
-    owner  = "rapidloop";
-    repo   = pname;
-    rev    = "v${version}";
-    sha256 = "sha256-8E4rciuoZrj8Oz2EXqtFgrPxvb8GJO3n1s2FpXrR0Q0=";
+    owner = "rapidloop";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1fwc4qc17fqmzx08kiyfx5iwgzr14dxk9i8zjd9bq5gk281v0ybd";
   };
 
-  vendorSha256 = "sha256-scaaRjaDE/RG6Ei83CJBkfQCd1e5pH/Cs2vEbdl9Oyg=";
+  vendorSha256 = "18da45axjl8l3qb6f3w5v2c7clz4bjhdz2bck20j729k7693hpsl";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix b/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix
index f0f20d4b3a7b..e0375e2349e3 100644
--- a/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix
+++ b/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "phoronix-test-suite";
-  version = "10.2.2";
+  version = "10.6.1";
 
   src = fetchurl {
     url = "https://phoronix-test-suite.com/releases/${pname}-${version}.tar.gz";
-    sha256 = "sha256-g5hUmsn01Msopxzmi/G4LcZISXMD2wFqreaHMkFzF1Y=";
+    sha256 = "sha256-ixDMd9/tO793yVvIE60n5gytfDAmcuA631/ZON9v6LA=";
   };
 
   buildInputs = [ php ];
diff --git a/nixpkgs/pkgs/tools/misc/pipe-rename/default.nix b/nixpkgs/pkgs/tools/misc/pipe-rename/default.nix
index 15468773e422..060f3a3e23c0 100644
--- a/nixpkgs/pkgs/tools/misc/pipe-rename/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pipe-rename/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pipe-rename";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-AMBdDsn3jS2dXUnEDKZILUlLHS9FIECZhc3EjxLoOZU=";
+    sha256 = "sha256-3Jl/G1QqcChwkI5n1zQLBgGxT2CYdh3XdMHkF+V5SG4=";
   };
 
-  cargoSha256 = "sha256-ulNyTRRFtHQ7+sRaKczLiDPIKG2TIcbbsD9x1di2ypw=";
+  cargoSha256 = "sha256-y5BsdkHrjJHNO66MQTbvA6kKx6tLP7jNk5UmAmslz14=";
 
   checkInputs = [ python3 ];
 
diff --git a/nixpkgs/pkgs/tools/misc/pipectl/default.nix b/nixpkgs/pkgs/tools/misc/pipectl/default.nix
new file mode 100644
index 000000000000..c5fb8c124f8a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/pipectl/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pipectl";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "Ferdi265";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-wa/SKKNXkl8XxE7XORodoAlrMc2QNGXGPE+/yya209Y=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Ferdi265/pipectl";
+    license = licenses.gpl3;
+    description = "a simple named pipe management utility";
+    maintainers = with maintainers; [ synthetica ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/pipreqs/default.nix b/nixpkgs/pkgs/tools/misc/pipreqs/default.nix
index 3f27be2c9f94..70a5ec69ff51 100644
--- a/nixpkgs/pkgs/tools/misc/pipreqs/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pipreqs/default.nix
@@ -4,11 +4,11 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "pipreqs";
-  version = "0.4.10";
+  version = "0.4.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fdr3mbxjpmrxr7yfc1sn9kbpcyb0qwafimhhrrqvf989dj1sdcy";
+    sha256 = "c793b4e147ac437871b3a962c5ce467e129c859ece5ba79aca83c20f4d9c3aef";
   };
 
   propagatedBuildInputs = [ yarg docopt ];
diff --git a/nixpkgs/pkgs/tools/misc/pistol/default.nix b/nixpkgs/pkgs/tools/misc/pistol/default.nix
index 6d91a54e56dc..930554d18696 100644
--- a/nixpkgs/pkgs/tools/misc/pistol/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pistol/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "pistol";
-  version = "0.2.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "doronbehar";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-NUHk48P3kUx+e9BR9k9K/VaHnbZ6Do6RRf1S0974sO8=";
+    sha256 = "sha256-DGbWlEDI/qGNpdT8N79RsLxnUm4Sw8lHFRIBFd1GmK0=";
   };
 
-  vendorSha256 = "sha256-n98cjXsgg2w3shbZPnk3g7mBbzV5Tc3jd9ZtiRk1KUM=";
+  vendorSha256 = "sha256-poTd0lXRaJeDxwcw+h76NPC0mFB9nwm2vLLB5UUK1dk=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/plantuml-server/default.nix b/nixpkgs/pkgs/tools/misc/plantuml-server/default.nix
index eef6cdc11d5f..6afaf0fbb348 100644
--- a/nixpkgs/pkgs/tools/misc/plantuml-server/default.nix
+++ b/nixpkgs/pkgs/tools/misc/plantuml-server/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, maven, jdk8_headless }:
 
 let
-  version = "1.2021.7";
+  version = "1.2021.12";
 
   src = fetchFromGitHub {
     owner = "plantuml";
     repo = "plantuml-server";
     rev = "v${version}";
-    sha256 = "sha256-kY7b3ocm1zudGIf72MNMZDUG2t2FFqucRr3kRaFv7mo=";
+    sha256 = "sha256:016mrs4djbaid1ma5922dvq372pphbzzmjzsjalj2dqp60538xll";
   };
 
   # perform fake build to make a fixed-output derivation out of the files downloaded from maven central
@@ -28,7 +28,7 @@ let
     installPhase = ''find $out/.m2 -type f -regex '.+\(\.lastUpdated\|resolver-status\.properties\|_remote\.repositories\)' -delete'';
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "sha256-HzT5rBycrd48KskWKAGtkMKdCDQ8NPYADVWZh8K0ll4=";
+    outputHash = "sha256:12w1iw9c5j7y9hhaip07j3aszjiiakkww1v3zszlj15fj8jgqyf2";
   };
 in
 
diff --git a/nixpkgs/pkgs/tools/misc/plantuml/default.nix b/nixpkgs/pkgs/tools/misc/plantuml/default.nix
index 14b9733bf69b..82b0e3dea105 100644
--- a/nixpkgs/pkgs/tools/misc/plantuml/default.nix
+++ b/nixpkgs/pkgs/tools/misc/plantuml/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre, graphviz }:
 
 stdenv.mkDerivation rec {
-  version = "1.2021.12";
+  version = "1.2021.16";
   pname = "plantuml";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/plantuml/${version}/plantuml.${version}.jar";
-    sha256 = "sha256-t9IQ1D2QJHrQmt/0EWofrqSf6o2YMUdpxFILsV5muog=";
+    sha256 = "sha256-0yN/29VKWiqp2Hi9aIN6GMlfMJPxrewsCQyyPVy6RAM=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/misc/pmbootstrap/default.nix b/nixpkgs/pkgs/tools/misc/pmbootstrap/default.nix
index 3f75e8e33af0..32595e17c06f 100644
--- a/nixpkgs/pkgs/tools/misc/pmbootstrap/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pmbootstrap/default.nix
@@ -1,13 +1,13 @@
-{ lib, git, openssl, makeWrapper, buildPythonApplication, pytestCheckHook, ps
-, fetchPypi, fetchFromGitLab }:
+{ stdenv, lib, git, openssl, makeWrapper, buildPythonApplication, pytestCheckHook, ps
+, fetchPypi, fetchFromGitLab, sudo }:
 
 buildPythonApplication rec {
   pname = "pmbootstrap";
-  version = "1.30.0";
+  version = "1.40.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-uHN3nplQOMuBeQIxAocCVqwnmJUQZL67+iXLhQ7onps=";
+    sha256 = "sha256-b/9NEURp42d/j/Fk8NUS0ZAG99q56eg0pEU/xkFnvrM=";
   };
 
   repo = fetchFromGitLab {
@@ -15,72 +15,74 @@ buildPythonApplication rec {
     owner = "postmarketOS";
     repo = pname;
     rev = version;
-    sha256 = "sha256-JunI/mqq+UvmzNVt3mdJN3+tKGN4uTrxkUU2imCNCNY=";
+    sha256 = "sha256-2yyHAHoIlwHX2+LbwwK7AGrBDZlfkhtCcKAKHdJMBdQ=";
   };
 
   pmb_test = "${repo}/test";
 
-  checkInputs = [ pytestCheckHook git openssl ps ];
+  checkInputs = [ pytestCheckHook git openssl ps sudo ];
 
   # Add test dependency in PATH
-  checkPhase = "export PYTHONPATH=$PYTHONPATH:${pmb_test}";
+  preCheck = "export PYTHONPATH=$PYTHONPATH:${pmb_test}";
 
   # skip impure tests
   disabledTests = [
-    "test_get_apkbuild"
-    "test_check_build_for_arch"
-    "test_get_depends"
-    "test_build_depends_no_binary_error"
+    "test_apk_static"
+    "test_aportgen"
+    "test_aportgen_device_wizard"
+    "test_bootimg"
     "test_build_depends_binary_outdated"
-    "test_init_buildenv"
-    "test_run_abuild"
-    "test_finish"
-    "test_package"
     "test_build_depends_high_level"
+    "test_build_depends_no_binary_error"
+    "test_build_is_necessary"
     "test_build_local_source_high_level"
-    "test_chroot_interactive_shell"
-    "test_chroot_interactive_shell_user"
-    "test_chroot_arguments"
-    "test_switch_to_channel_branch"
-    "test_read_config_channel"
-    "test_cross_compile_distcc"
     "test_build_src_invalid_path"
     "test_can_fast_forward"
+    "test_check_build_for_arch"
+    "test_chroot_arguments"
+    "test_chroot_interactive_shell"
+    "test_chroot_interactive_shell_user"
     "test_clean_worktree"
-    "test_get_upstream_remote"
-    "test_pull"
-    "test_helpers_package_get_apkindex"
-    "test_filter_missing_packages_invalid"
-    "test_filter_missing_packages_binary_exists"
-    "test_filter_missing_packages_pmaports"
-    "test_filter_aport_packages"
-    "test_pmbootstrap_status"
-    "test_print_checks_git_repo"
-    "test_helpers_ui"
-    "test_newapkbuild"
-    "test_package_from_aports"
-    "test_recurse_invalid"
-    "test_questions_bootimg"
-    "test_questions_keymaps"
-    "test_questions_work_path"
-    "test_questions_channel"
-    "test_apk_static"
-    "test_aportgen"
-    "test_aportgen_device_wizard"
-    "test_bootimg"
-    "test_build_is_necessary"
     "test_config_user"
+    "test_cross_compile_distcc"
     "test_crossdirect"
     "test_file"
+    "test_filter_aport_packages"
+    "test_filter_missing_packages_binary_exists"
+    "test_filter_missing_packages_invalid"
+    "test_filter_missing_packages_pmaports"
+    "test_finish"
     "test_folder_size"
+    "test_get_apkbuild"
+    "test_get_depends"
+    "test_get_upstream_remote"
     "test_helpers_lint"
+    "test_helpers_package_get_apkindex"
     "test_helpers_repo"
+    "test_helpers_ui"
+    "test_init_buildenv"
     "test_kconfig_check"
     "test_keys"
+    "test_newapkbuild"
+    "test_package"
+    "test_package_from_aports"
     "test_pkgrel_bump"
+    "test_pmbootstrap_status"
+    "test_print_checks_git_repo"
+    "test_pull"
     "test_qemu_running_processes"
+    "test_questions_additional_options"
+    "test_questions_bootimg"
+    "test_questions_channel"
+    "test_questions_keymaps"
+    "test_questions_work_path"
+    "test_read_config_channel"
+    "test_recurse_invalid"
+    "test_run_abuild"
     "test_run_core"
     "test_shell_escape"
+    "test_skip_already_built"
+    "test_switch_to_channel_branch"
     "test_version"
   ];
 
@@ -90,6 +92,8 @@ buildPythonApplication rec {
     description = "Sophisticated chroot/build/flash tool to develop and install postmarketOS";
     homepage = "https://gitlab.com/postmarketOS/pmbootstrap";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ payas ];
+    maintainers = with maintainers; [ onny ];
+    # https://github.com/NixOS/nixpkgs/pull/146576#issuecomment-974267651
+    broken = stdenv.isDarwin && stdenv.isAarch64;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/ponysay/default.nix b/nixpkgs/pkgs/tools/misc/ponysay/default.nix
index b27aa32481c0..2fb48f05850e 100644
--- a/nixpkgs/pkgs/tools/misc/ponysay/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ponysay/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, python3, texinfo, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "ponysay";
-  version = "3.0.3";
+  pname = "ponysay";
+  version = "unstable-2021-03-27";
 
   src = fetchFromGitHub {
     owner = "erkin";
     repo = "ponysay";
-    rev = version;
-    sha256 = "sha256-R2B0TU3ZSEncGsijKgvhaHIbcZa5Dx/jVPxrILBaoVw=";
+    rev = "8a2c71416e70e4e7b0931917ebfd6479f51ddf9a";
+    sha256 = "sha256-LNc83E+7NFYYILORElNlYC7arQKGUJHv6phu+vM5xpQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/misc/pre-commit/default.nix b/nixpkgs/pkgs/tools/misc/pre-commit/default.nix
new file mode 100644
index 000000000000..41d3ecf17872
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/pre-commit/default.nix
@@ -0,0 +1,57 @@
+{ lib, python3Packages }:
+
+with python3Packages;
+buildPythonPackage rec {
+  pname = "pre-commit";
+  version = "2.16.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "pre_commit";
+    sha256 = "sha256-/piXysgwqnFk29AqTnuQyuSWMEUc6IRkvKc9tIa6n2U=";
+  };
+
+  patches = [
+    ./languages-use-the-hardcoded-path-to-python-binaries.patch
+    ./hook-tmpl.patch
+  ];
+
+  propagatedBuildInputs = [
+    cfgv
+    identify
+    nodeenv
+    pyyaml
+    toml
+    virtualenv
+  ] ++ lib.optional (pythonOlder "3.8") [
+    importlib-metadata
+  ] ++ lib.optional (pythonOlder "3.7") [
+    importlib-resources
+  ];
+
+  # slow and impure
+  doCheck = false;
+
+  preFixup = ''
+    substituteInPlace $out/${python.sitePackages}/pre_commit/resources/hook-tmpl \
+      --subst-var-by pre-commit $out
+    substituteInPlace $out/${python.sitePackages}/pre_commit/languages/python.py \
+      --subst-var-by virtualenv ${virtualenv}
+    substituteInPlace $out/${python.sitePackages}/pre_commit/languages/node.py \
+      --subst-var-by nodeenv ${nodeenv}
+  '';
+
+  pythonImportsCheck = [
+    "pre_commit"
+  ];
+
+  meta = with lib; {
+    description = "A framework for managing and maintaining multi-language pre-commit hooks";
+    homepage = "https://pre-commit.com/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ borisbabic ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/pre-commit/hook-tmpl.patch b/nixpkgs/pkgs/tools/misc/pre-commit/hook-tmpl.patch
new file mode 100644
index 000000000000..1d5fd17274ba
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/pre-commit/hook-tmpl.patch
@@ -0,0 +1,15 @@
+diff --git a/pre_commit/resources/hook-tmpl b/pre_commit/resources/hook-tmpl
+index 53d29f9..66a8ad3 100755
+--- a/pre_commit/resources/hook-tmpl
++++ b/pre_commit/resources/hook-tmpl
+@@ -10,9 +10,7 @@ ARGS=(hook-impl)
+ HERE="$(cd "$(dirname "$0")" && pwd)"
+ ARGS+=(--hook-dir "$HERE" -- "$@")
+ 
+-if [ -x "$INSTALL_PYTHON" ]; then
+-    exec "$INSTALL_PYTHON" -mpre_commit "${ARGS[@]}"
+-elif command -v pre-commit > /dev/null; then
++if command -v pre-commit > /dev/null; then
+     exec pre-commit "${ARGS[@]}"
+ else
+     echo '`pre-commit` not found.  Did you forget to activate your virtualenv?' 1>&2
diff --git a/nixpkgs/pkgs/tools/misc/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch b/nixpkgs/pkgs/tools/misc/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch
new file mode 100644
index 000000000000..6d274aae3c07
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch
@@ -0,0 +1,26 @@
+diff --git a/pre_commit/languages/node.py b/pre_commit/languages/node.py
+index 26f4919..4885ec1 100644
+--- a/pre_commit/languages/node.py
++++ b/pre_commit/languages/node.py
+@@ -82,7 +82,7 @@ def install_environment(
+         envdir = fr'\\?\{os.path.normpath(envdir)}'
+     with clean_path_on_failure(envdir):
+         cmd = [
+-            sys.executable, '-mnodeenv', '--prebuilt', '--clean-src', envdir,
++            '@nodeenv@/bin/nodeenv', '--prebuilt', '--clean-src', envdir,
+         ]
+         if version != C.DEFAULT:
+             cmd.extend(['-n', version])
+diff --git a/pre_commit/languages/python.py b/pre_commit/languages/python.py
+index 43b7280..f0f2338 100644
+--- a/pre_commit/languages/python.py
++++ b/pre_commit/languages/python.py
+@@ -192,7 +192,7 @@ def install_environment(
+         additional_dependencies: Sequence[str],
+ ) -> None:
+     envdir = prefix.path(helpers.environment_dir(ENVIRONMENT_DIR, version))
+-    venv_cmd = [sys.executable, '-mvirtualenv', envdir]
++    venv_cmd = ['@virtualenv@/bin/virtualenv', envdir]
+     python = norm_version(version)
+     if python is not None:
+         venv_cmd.extend(('-p', python))
diff --git a/nixpkgs/pkgs/tools/misc/procyon/default.nix b/nixpkgs/pkgs/tools/misc/procyon/default.nix
new file mode 100644
index 000000000000..c217f25c1e19
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/procyon/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchurl, runtimeShell, jre_headless }:
+
+stdenv.mkDerivation rec {
+  pname = "procyon";
+  version = "0.6-prerelease";
+
+  src = fetchurl {
+    url = "https://github.com/mstrobel/procyon/releases/download/${version}/procyon-decompiler-${version}.jar";
+    sha256 = "sha256-eBVWKCo8ccAT/T9HgjxUCNFzGyzofc9Mbyp0ldUmrdk=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/procyon
+    cp $src $out/share/procyon/procyon-decompiler.jar
+
+    cat << EOF > $out/bin/procyon
+    #!${runtimeShell}
+    exec ${jre_headless}/bin/java -jar $out/share/procyon/procyon-decompiler.jar "\$@"
+    EOF
+    chmod +x $out/bin/procyon
+  '';
+
+  meta = with lib; {
+    description = "Procyon is a suite of Java metaprogramming tools including a Java decompiler";
+    homepage = "https://github.com/mstrobel/procyon/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/profile-cleaner/default.nix b/nixpkgs/pkgs/tools/misc/profile-cleaner/default.nix
index 0a50ff49f653..6680fbde2ad0 100644
--- a/nixpkgs/pkgs/tools/misc/profile-cleaner/default.nix
+++ b/nixpkgs/pkgs/tools/misc/profile-cleaner/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, makeWrapper, parallel, sqlite, bc, file }:
 
 stdenv.mkDerivation rec {
-  version = "2.42";
+  version = "2.44";
   pname = "profile-cleaner";
 
   src = fetchFromGitHub {
     owner = "graysky2";
     repo = "profile-cleaner";
     rev = "v${version}";
-    sha256 = "1d94lp91i4y896vyc7fc3ysha700cwzsdjmmmwlm6h2zp652c73y";
+    sha256 = "sha256-OkrZb8skglczJEjwJSZINELeStdsILQO4GfZ1uLSnQY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/misc/pspg/default.nix b/nixpkgs/pkgs/tools/misc/pspg/default.nix
index b54c2e37d280..882ea148b201 100644
--- a/nixpkgs/pkgs/tools/misc/pspg/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pspg/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pspg";
-  version = "5.3.5";
+  version = "5.5.1";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = version;
-    sha256 = "sha256-xJ7kgEvIsTufAZa5x3YpElTc74nEs9C+baVjbheHySM=";
+    sha256 = "sha256-EQOIbpP80t/SVwrY/iEYTdfE1L/VmI5VxBrr+mBvICo=";
   };
 
   nativeBuildInputs = [ pkg-config installShellFiles ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   postInstall = ''
-    installShellCompletion --bash --name pspg.bash bash-completion.sh
+    installShellCompletion --bash --cmd pspg bash-completion.sh
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/qflipper/default.nix b/nixpkgs/pkgs/tools/misc/qflipper/default.nix
new file mode 100644
index 000000000000..78bb6c839e6e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/qflipper/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchurl, appimageTools }:
+
+let
+  pname = "qflipper";
+  version = "0.5.3";
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "https://update.flipperzero.one/builds/qFlipper/${version}/qFlipper-x86_64-${version}.AppImage";
+    sha256 = "sha256-UFGFl1zb0t1y7FBd5EX1YS3npWM5slL/wLiTOF/CLNM=";
+  };
+  appimageContents = appimageTools.extractType2 { inherit name src; };
+
+in appimageTools.wrapType2 {
+  inherit name src;
+
+  extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ pkgs.libsecret ];
+
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/qFlipper
+    install -m 444 -D ${appimageContents}/qFlipper.desktop -t $out/share/applications
+    cp -r ${appimageContents}/usr/share/icons $out/share
+  '';
+
+  meta = with lib; {
+    description = "Cross-platform desktop tool to manage your flipper device";
+    homepage = "https://flipperzero.one/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/qmk/default.nix b/nixpkgs/pkgs/tools/misc/qmk/default.nix
index ef25a7361c26..5067e1e0fabe 100644
--- a/nixpkgs/pkgs/tools/misc/qmk/default.nix
+++ b/nixpkgs/pkgs/tools/misc/qmk/default.nix
@@ -1,16 +1,12 @@
-{ lib, python3, fetchpatch, writeText }:
+{ lib
+, python3
+}:
 
-let
-  inherit (python3.pkgs) buildPythonApplication fetchPypi;
-  setuppy = writeText "setup.py" ''
-    from setuptools import setup
-    setup()
-  '';
-in buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "qmk";
   version = "1.0.0";
 
-  src = fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
     sha256 = "sha256-2mLuxzxFSMw3sLm+OTcgLcOjAdwvJmNhDsynUaYQ+co=";
   };
@@ -36,8 +32,12 @@ in buildPythonApplication rec {
     pyusb
   ];
 
+  # buildPythonApplication requires setup.py; the setup.py file crafted below
+  # acts as a wrapper to setup.cfg
   postConfigure = ''
-    cp ${setuppy} setup.py
+    touch setup.py
+    echo "from setuptools import setup" >> setup.py
+    echo "setup()" >> setup.py
   '';
 
   # no tests implemented
diff --git a/nixpkgs/pkgs/tools/misc/qt5ct/default.nix b/nixpkgs/pkgs/tools/misc/qt5ct/default.nix
index 133a1a87d661..bbb8f96f5fb6 100644
--- a/nixpkgs/pkgs/tools/misc/qt5ct/default.nix
+++ b/nixpkgs/pkgs/tools/misc/qt5ct/default.nix
@@ -4,11 +4,11 @@ let inherit (lib) getDev; in
 
 mkDerivation rec {
   pname = "qt5ct";
-  version = "1.3";
+  version = "1.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-3UQ7FOWQr/dqFuExbVbmiIguMkjEcN9PcbyVJWnzw7w=";
+    sha256 = "sha256-1j0M4W4CQnIH2GUx9wpxxbnIUARN1bLcsihVMfQW5JA=";
   };
 
   nativeBuildInputs = [ qmake qttools ];
diff --git a/nixpkgs/pkgs/tools/misc/rates/default.nix b/nixpkgs/pkgs/tools/misc/rates/default.nix
index 989a9e6734ac..8ead57a07eb9 100644
--- a/nixpkgs/pkgs/tools/misc/rates/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rates/default.nix
@@ -1,6 +1,8 @@
 { lib
+, stdenv
 , fetchFromGitHub
 , rustPlatform
+, Security
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -16,6 +18,8 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "041sskiq152iywwqd8p7aqsqzbj359zl7ilnp8ahzdqprz3slk1w";
 
+  buildInputs = lib.optional stdenv.isDarwin Security;
+
   meta = with lib; {
     description = "CLI tool that brings currency exchange rates right into your terminal";
     homepage = "https://github.com/lunush/rates";
diff --git a/nixpkgs/pkgs/tools/misc/recoverjpeg/default.nix b/nixpkgs/pkgs/tools/misc/recoverjpeg/default.nix
index 4b8ea50cd4ef..db05aeda96a3 100644
--- a/nixpkgs/pkgs/tools/misc/recoverjpeg/default.nix
+++ b/nixpkgs/pkgs/tools/misc/recoverjpeg/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, makeWrapper, python2, exif, imagemagick }:
+{ lib, stdenv, fetchurl, makeWrapper, python3, exif, imagemagick }:
 
 stdenv.mkDerivation rec {
   pname = "recoverjpeg";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper ];
 
-  buildInputs = [ python2 ];
+  buildInputs = [ python3 ];
 
   postFixup = ''
     wrapProgram $out/bin/sort-pictures \
diff --git a/nixpkgs/pkgs/tools/misc/remind/default.nix b/nixpkgs/pkgs/tools/misc/remind/default.nix
index 1ef0ee9dd46f..a94a4c9bd35b 100644
--- a/nixpkgs/pkgs/tools/misc/remind/default.nix
+++ b/nixpkgs/pkgs/tools/misc/remind/default.nix
@@ -16,11 +16,11 @@ let
 in
 tcl.mkTclDerivation rec {
   pname = "remind";
-  version = "03.03.07";
+  version = "03.03.11";
 
   src = fetchurl {
     url = "https://dianne.skoll.ca/projects/remind/download/remind-${version}.tar.gz";
-    sha256 = "sha256-h8lOKdHhiVT/XSIkfX7KMHzmIeEdIsFCCPkD9oo7ij0=";
+    sha256 = "sha256-CCZ7CENeI8zNUgtBYesGWbqf53OCr9hBTN1ibegB4lo=";
   };
 
   propagatedBuildInputs = tclLibraries;
diff --git a/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix b/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix
index bce293d7cf8d..1a81372d7f60 100644
--- a/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix
+++ b/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "riemann-c-client";
-  version = "1.10.4";
+  version = "1.10.5";
 
   src = fetchFromGitHub {
     owner = "algernon";
     repo = "riemann-c-client";
     rev = "riemann-c-client-${version}";
-    sha256 = "01gzqxqm1xvki2vd78c7my2kgp4fyhkcf5j5fmy8z0l93lgj82rr";
+    sha256 = "sha256-LuI9XFDPx0qw/+kkpXd0FOMESERAp31R1+ttkGuJnPA=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix b/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix
index c4764923c7a9..bfc2ce2c0e99 100644
--- a/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix
@@ -40,13 +40,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rpm-ostree";
-  version = "2021.9";
+  version = "2021.14";
 
   outputs = [ "out" "dev" "man" "devdoc" ];
 
   src = fetchurl {
     url = "https://github.com/coreos/${pname}/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-DvATvvAliJhEItbOlK1CA/ibhzImw651pkplqpRG+OQ=";
+    sha256 = "sha256-WOG21wSbjXMc/6OHJBEKFOhvnIt+SFpZikB8XkfN32Y=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/rust-motd/default.nix b/nixpkgs/pkgs/tools/misc/rust-motd/default.nix
new file mode 100644
index 000000000000..cdc3dbdae101
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/rust-motd/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+, stdenv
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rust-motd";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "rust-motd";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0xhdbhl0riaq9n4g9n333pgw966bsi60zpcy7gpndzfj21bj2x1m";
+  };
+
+  cargoSha256 = "sha256-l9Sit+niCLOnL1mdK6i8jea8NWsJlFM6p9lMTXyWOKY=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security;
+
+  meta = with lib; {
+    description = "Beautiful, useful MOTD generation with zero runtime dependencies";
+    homepage = "https://github.com/rust-motd/rust-motd";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/s6-portable-utils/default.nix b/nixpkgs/pkgs/tools/misc/s6-portable-utils/default.nix
index 045a8b9ab034..84877508607e 100644
--- a/nixpkgs/pkgs/tools/misc/s6-portable-utils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/s6-portable-utils/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "s6-portable-utils";
-  version = "2.2.3.3";
-  sha256 = "132jj5qk8x40kw6lrrn7jiqhvqj9d2h6g6mhl8zma1sp37bg0i84";
+  version = "2.2.3.4";
+  sha256 = "04n9i9ydaa3cb3pip9d02dm24k26v3djvwrafjzq5qx94zvrifip";
 
   description = "A set of tiny general Unix utilities optimized for simplicity and small size";
 
diff --git a/nixpkgs/pkgs/tools/misc/screen/default.nix b/nixpkgs/pkgs/tools/misc/screen/default.nix
index d1e02e8b9a36..dd61b82d4080 100644
--- a/nixpkgs/pkgs/tools/misc/screen/default.nix
+++ b/nixpkgs/pkgs/tools/misc/screen/default.nix
@@ -39,6 +39,12 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses ] ++ lib.optional stdenv.isLinux pam
                             ++ lib.optional stdenv.isDarwin utmp;
 
+  # Build fails due to missing dependencies on autogenerated header:
+  #   screen.h:48:10: fatal error: comm.h: No such file or directory
+  # It will be fixed in next screen-4.9.0 release. The patches are
+  # invasive. Disabling parallelism for 4.8.0.
+  enableParallelBuilding = false;
+
   doCheck = true;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/sfeed/default.nix b/nixpkgs/pkgs/tools/misc/sfeed/default.nix
index 93ef69ea2ea5..394cd8a8ede3 100644
--- a/nixpkgs/pkgs/tools/misc/sfeed/default.nix
+++ b/nixpkgs/pkgs/tools/misc/sfeed/default.nix
@@ -1,19 +1,25 @@
-{ stdenv, lib, fetchgit }:
+{ stdenv, lib, fetchgit, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "sfeed";
-  version = "0.9.21";
+  version = "1.1";
 
   src = fetchgit {
     url = "git://git.codemadness.org/sfeed";
     rev = version;
-    sha256 = "010wasp6hcnwbf0d3gaxmjpkvr85zyv2xxz2pnkwxyk2bbr1h6q8";
+    sha256 = "sha256-0z9PHni/ni4p4nfeStrZmFFHHtyqT8GYJWVWr5IzFKw=";
   };
 
-  installPhase = ''
-    mkdir $out
-    make install PREFIX=$out
-  '';
+  buildInputs = [ ncurses ];
+
+  makeFlags = [ "RANLIB:=$(RANLIB)" "SFEED_CURSES_LDFLAGS:=-lncurses" ]
+    # use macOS's strlcat() and strlcpy() instead of vendored ones
+    ++ lib.optional stdenv.isDarwin "COMPATOBJ:=";
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  # otherwise does not find SIGWINCH
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-D_DARWIN_C_SOURCE";
 
   meta = with lib; {
     homepage = "https://codemadness.org/sfeed-simple-feed-parser.html";
diff --git a/nixpkgs/pkgs/tools/misc/shadowenv/default.nix b/nixpkgs/pkgs/tools/misc/shadowenv/default.nix
index 79075dcc8a21..a4f8fff4ae20 100644
--- a/nixpkgs/pkgs/tools/misc/shadowenv/default.nix
+++ b/nixpkgs/pkgs/tools/misc/shadowenv/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowenv";
-  version = "2.0.5";
+  version = "2.0.6";
 
   src = fetchFromGitHub {
     owner = "Shopify";
     repo = pname;
     rev = version;
-    sha256 = "sha256-MPky0ZB7yfl/gOPThx1BpRoTgvY7mkLaoqnvGKPvSPo=";
+    sha256 = "sha256-OfrK5eQ2oJ7ZeUem4PZPE2tsjIObQ+aao6GrtrK8AqA=";
   };
 
-  cargoSha256 = "sha256-reVw8YkKi+EMDk0Bva2Ugp72VhAYB6axHonkr9Kdos4=";
+  cargoSha256 = "sha256-gno44ZdLthcp5/+NP12d0C+x1jrmJHNkHSnyuHWl3Zk=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/misc/sharedown/default.nix b/nixpkgs/pkgs/tools/misc/sharedown/default.nix
index fed2a826459a..2fb9553a7fea 100644
--- a/nixpkgs/pkgs/tools/misc/sharedown/default.nix
+++ b/nixpkgs/pkgs/tools/misc/sharedown/default.nix
@@ -11,38 +11,17 @@
 , chromium
 }:
 
-let
-  binPath = lib.makeBinPath ([
-    ffmpeg
-    yt-dlp
-  ]);
-
+stdenvNoCC.mkDerivation rec {
   pname = "Sharedown";
-  version = "2.0.0";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "kylon";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Z6OsZvVzk//qEkl4ciNz4cQRqC2GFg0qYgmliAyz6fo=";
+    sha256 = "sha256-0moxrRxydH/g3J5cQmaFSDhTZh9OnUi8ncPVw7q1JC0=";
   };
 
-  modules = yarn2nix-moretea.mkYarnModules {
-    name = "${pname}-modules-${version}";
-    inherit pname version;
-
-    yarnFlags = yarn2nix-moretea.defaultYarnFlags ++ [
-      "--production"
-    ];
-
-    packageJSON = "${src}/package.json";
-    yarnLock = ./yarn.lock;
-    yarnNix = ./yarndeps.nix;
-  };
-in
-stdenvNoCC.mkDerivation rec {
-  inherit pname version src;
-
   nativeBuildInputs = [
     copyDesktopItems
     makeWrapper
@@ -61,25 +40,45 @@ stdenvNoCC.mkDerivation rec {
 
   dontBuild = true;
 
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p "$out/bin" "$out/share/Sharedown" "$out/share/applications" "$out/share/icons/hicolor/512x512/apps"
-
-    # Electron app
-    cp -r *.js *.json sharedownlogo.png sharedown "${modules}/node_modules" "$out/share/Sharedown"
-
-    # Desktop Launcher
-    cp build/icon.png "$out/share/icons/hicolor/512x512/apps/Sharedown.png"
-
-    # Install electron wrapper script
-    makeWrapper "${electron}/bin/electron" "$out/bin/Sharedown" \
-      --add-flags "$out/share/Sharedown" \
-      --prefix PATH : "${binPath}" \
-      --set PUPPETEER_EXECUTABLE_PATH "${chromium}/bin/chromium"
-
-    runHook postInstall
-  '';
+  installPhase =
+    let
+      binPath = lib.makeBinPath ([
+        ffmpeg
+        yt-dlp
+      ]);
+
+      modules = yarn2nix-moretea.mkYarnModules {
+        name = "${pname}-modules-${version}";
+        inherit pname version;
+
+        yarnFlags = yarn2nix-moretea.defaultYarnFlags ++ [
+          "--production"
+        ];
+
+        packageJSON = "${src}/package.json";
+        yarnLock = ./yarn.lock;
+        yarnNix = ./yarndeps.nix;
+      };
+    in
+    ''
+      runHook preInstall
+
+      mkdir -p "$out/bin" "$out/share/Sharedown" "$out/share/applications" "$out/share/icons/hicolor/512x512/apps"
+
+      # Electron app
+      cp -r *.js *.json sharedownlogo.png sharedown "${modules}/node_modules" "$out/share/Sharedown"
+
+      # Desktop Launcher
+      cp build/icon.png "$out/share/icons/hicolor/512x512/apps/Sharedown.png"
+
+      # Install electron wrapper script
+      makeWrapper "${electron}/bin/electron" "$out/bin/Sharedown" \
+        --add-flags "$out/share/Sharedown" \
+        --prefix PATH : "${binPath}" \
+        --set PUPPETEER_EXECUTABLE_PATH "${chromium}/bin/chromium"
+
+      runHook postInstall
+    '';
 
   passthru.updateScript = ./update.sh;
 
diff --git a/nixpkgs/pkgs/tools/misc/sharedown/update.sh b/nixpkgs/pkgs/tools/misc/sharedown/update.sh
index 5ba572f23698..584cb8511a7c 100755
--- a/nixpkgs/pkgs/tools/misc/sharedown/update.sh
+++ b/nixpkgs/pkgs/tools/misc/sharedown/update.sh
@@ -3,12 +3,12 @@
 
 set -euo pipefail
 
+nix-update sharedown
+
 dirname="$(realpath "$(dirname "$0")")"
 sourceDir="$(nix-build -A sharedown.src --no-out-link)"
 tempDir="$(mktemp -d)"
 
-nix-update sharedown
-
 cp -r "$sourceDir"/* "$tempDir"
 cd "$tempDir"
 PUPPETEER_SKIP_DOWNLOAD=1 yarn install
diff --git a/nixpkgs/pkgs/tools/misc/sharedown/yarn.lock b/nixpkgs/pkgs/tools/misc/sharedown/yarn.lock
index 48f5917ec278..5b5638db5055 100644
--- a/nixpkgs/pkgs/tools/misc/sharedown/yarn.lock
+++ b/nixpkgs/pkgs/tools/misc/sharedown/yarn.lock
@@ -16,9 +16,9 @@
     ajv-keywords "^3.4.1"
 
 "@electron/get@^1.13.0":
-  version "1.13.0"
-  resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.0.tgz#95c6bcaff4f9a505ea46792424f451efea89228c"
-  integrity sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ==
+  version "1.13.1"
+  resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.1.tgz#42a0aa62fd1189638bd966e23effaebb16108368"
+  integrity sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA==
   dependencies:
     debug "^4.1.1"
     env-paths "^2.2.0"
@@ -28,7 +28,7 @@
     semver "^6.2.0"
     sumchecker "^3.0.1"
   optionalDependencies:
-    global-agent "^2.0.2"
+    global-agent "^3.0.0"
     global-tunnel-ng "^2.7.1"
 
 "@electron/universal@1.0.5":
@@ -71,12 +71,12 @@
   dependencies:
     defer-to-connect "^1.0.1"
 
-"@tedconf/fessonia@*":
+"@tedconf/fessonia@^2.2.1":
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/@tedconf/fessonia/-/fessonia-2.2.1.tgz#24499e69c3aeda4926670675b9fdfeb9ab15f19d"
   integrity sha512-eX+O8P/xIkuCDeDI3IOIoyzuTJLVqbGnoBhLiBoFU7MwntF02ygQcByMinhUtXv2zm0pOSy6zeKoQTKAVBK60A==
 
-"@types/debug@^4.1.5":
+"@types/debug@^4.1.6":
   version "4.1.7"
   resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82"
   integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==
@@ -91,9 +91,9 @@
     "@types/node" "*"
 
 "@types/glob@^7.1.1":
-  version "7.1.4"
-  resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672"
-  integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb"
+  integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==
   dependencies:
     "@types/minimatch" "*"
     "@types/node" "*"
@@ -109,14 +109,14 @@
   integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==
 
 "@types/node@*":
-  version "16.9.6"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.6.tgz#040a64d7faf9e5d9e940357125f0963012e66f04"
-  integrity sha512-YHUZhBOMTM3mjFkXVcK+WwAcYmyhe1wL4lfqNtzI0b3qAy7yuSetnM7QJazgE5PFmgVTNGiLOgRFfJMqW7XpSQ==
+  version "16.11.10"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.10.tgz#2e3ad0a680d96367103d3e670d41c2fed3da61ae"
+  integrity sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA==
 
 "@types/node@^14.6.2":
-  version "14.17.18"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.18.tgz#0198489a751005f71217744aa966cd1f29447c81"
-  integrity sha512-haYyibw4pbteEhkSg0xdDLAI3679L75EJ799ymVrPxOA922bPx3ML59SoDsQ//rHlvqpu+e36kcbR3XRQtFblA==
+  version "14.17.34"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.34.tgz#fe4b38b3f07617c0fa31ae923fca9249641038f0"
+  integrity sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg==
 
 "@types/plist@^3.0.1":
   version "3.0.2"
@@ -136,10 +136,10 @@
   resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129"
   integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==
 
-"@types/yargs@^16.0.2":
-  version "16.0.4"
-  resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977"
-  integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==
+"@types/yargs@^17.0.1":
+  version "17.0.7"
+  resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.7.tgz#44a484c634761da4391477515a98772b82b5060f"
+  integrity sha512-OvLKmpKdea1aWtqHv9bxVVcMoT6syAeK+198dfETIFkAevYRGwqh4H+KFxfjUETZuUuE5sQCAFwdOdoHUdo8eg==
   dependencies:
     "@types/yargs-parser" "*"
 
@@ -173,23 +173,18 @@ ajv@^6.10.0, ajv@^6.12.0:
     uri-js "^4.2.2"
 
 ansi-align@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb"
-  integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59"
+  integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==
   dependencies:
-    string-width "^3.0.0"
+    string-width "^4.1.0"
 
 ansi-regex@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
   integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
 
-ansi-regex@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
-  integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
-
-ansi-regex@^5.0.0:
+ansi-regex@^5.0.1:
   version "5.0.1"
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
   integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
@@ -208,15 +203,15 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
   dependencies:
     color-convert "^2.0.1"
 
-app-builder-bin@3.5.13:
-  version "3.5.13"
-  resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.13.tgz#6dd7f4de34a4e408806f99b8c7d6ef1601305b7e"
-  integrity sha512-ighVe9G+bT1ENGdp9ecO1P+94vv/f+FUwaI+XkNzeg9bYF8Oi3BQ+mJuxS00UgyHs8luuOzjzC+qnAtdb43Mpg==
+app-builder-bin@3.7.1:
+  version "3.7.1"
+  resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.7.1.tgz#cb0825c5e12efc85b196ac3ed9c89f076c61040e"
+  integrity sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==
 
-app-builder-lib@22.11.7:
-  version "22.11.7"
-  resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.7.tgz#c0ad1119ebfbf4189a8280ad693625f5e684dca6"
-  integrity sha512-pS9/cR4/TnNZVAHZECiSvvwTBzbwblj7KBBZkMKDG57nibq0I1XY8zAaYeHFdlYTyrRcz9JUXbAqJKezya7UFQ==
+app-builder-lib@22.14.5:
+  version "22.14.5"
+  resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.14.5.tgz#a61a50b132b858e98fdc70b6b88994ae99b4f96d"
+  integrity sha512-k3VwKP4kpsnUaXoUkm1s4zaSHPHIMFnN4kPMU9yXaKmE1LfHHqBaEah5bXeTAX5V/BC41wFdg8CF5vOjvgy8Rg==
   dependencies:
     "7zip-bin" "~5.1.1"
     "@develar/schema-utils" "~2.6.5"
@@ -224,12 +219,14 @@ app-builder-lib@22.11.7:
     "@malept/flatpak-bundler" "^0.4.0"
     async-exit-hook "^2.0.1"
     bluebird-lst "^1.0.9"
-    builder-util "22.11.7"
-    builder-util-runtime "8.7.7"
+    builder-util "22.14.5"
+    builder-util-runtime "8.9.1"
     chromium-pickle-js "^0.2.0"
     debug "^4.3.2"
     ejs "^3.1.6"
-    electron-publish "22.11.7"
+    electron-osx-sign "^0.5.0"
+    electron-publish "22.14.5"
+    form-data "^4.0.0"
     fs-extra "^10.0.0"
     hosted-git-info "^4.0.2"
     is-ci "^3.0.0"
@@ -279,17 +276,22 @@ async@0.9.x:
   resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
   integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=
 
+asynckit@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+  integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
+
 at-least-node@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
   integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
 
-axios@*:
-  version "0.21.4"
-  resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
-  integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
+axios@^0.24.0:
+  version "0.24.0"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6"
+  integrity sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==
   dependencies:
-    follow-redirects "^1.14.0"
+    follow-redirects "^1.14.4"
 
 balanced-match@^1.0.0:
   version "1.0.2"
@@ -317,7 +319,7 @@ bluebird-lst@^1.0.9:
   dependencies:
     bluebird "^3.5.5"
 
-bluebird@^3.5.5:
+bluebird@^3.5.0, bluebird@^3.5.5:
   version "3.7.2"
   resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
   integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
@@ -327,10 +329,10 @@ boolean@^3.0.1:
   resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.4.tgz#f51a2fb5838a99e06f9b6ec1edb674de67026435"
   integrity sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==
 
-bootstrap@5.1.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.1.tgz#9d6eed81e08feaccedf3adaca51fe4b73a2871df"
-  integrity sha512-/jUa4sSuDZWlDLQ1gwQQR8uoYSvLJzDd8m5o6bPKh3asLAMYVZKdRCjb1joUd5WXf0WwCNzd2EjwQQhupou0dA==
+bootstrap@5.1.3:
+  version "5.1.3"
+  resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.3.tgz#ba081b0c130f810fa70900acbc1c6d3c28fa8f34"
+  integrity sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==
 
 boxen@^5.0.0:
   version "5.1.2"
@@ -354,6 +356,19 @@ brace-expansion@^1.1.7:
     balanced-match "^1.0.0"
     concat-map "0.0.1"
 
+buffer-alloc-unsafe@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
+  integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==
+
+buffer-alloc@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
+  integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==
+  dependencies:
+    buffer-alloc-unsafe "^1.1.0"
+    buffer-fill "^1.0.0"
+
 buffer-crc32@~0.2.3:
   version "0.2.13"
   resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
@@ -364,6 +379,11 @@ buffer-equal@1.0.0:
   resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe"
   integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74=
 
+buffer-fill@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
+  integrity sha1-+PeLdniYiO858gXNY39o5wISKyw=
+
 buffer-from@^1.0.0:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
@@ -377,34 +397,27 @@ buffer@^5.1.0, buffer@^5.2.1, buffer@^5.5.0:
     base64-js "^1.3.1"
     ieee754 "^1.1.13"
 
-builder-util-runtime@8.7.6:
-  version "8.7.6"
-  resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz#4b43c96db2bd494ced7694bcd7674934655e8324"
-  integrity sha512-rj9AIY7CzLSuTOXpToiaQkruYh6UEQ+kYnd5UET22ch8MGClEtIZKXHG14qEiXEr2x4EOKDMxkcTa+9TYaE+ug==
-  dependencies:
-    debug "^4.3.2"
-    sax "^1.2.4"
-
-builder-util-runtime@8.7.7:
-  version "8.7.7"
-  resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz#6c83cc3abe7a7a5c8b4ec8878f68adc828c07f0d"
-  integrity sha512-RUfoXzVrmFFI0K/Oft0CtP1LpTIOlBeLJatt5DePTI0KlxE156am4SGUpqtbbdqZNm++LkV9mX4olBDcXyGPow==
+builder-util-runtime@8.9.1:
+  version "8.9.1"
+  resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.1.tgz#25f066b3fbc20b3e6236a9b956b1ebb0e33ff66a"
+  integrity sha512-c8a8J3wK6BIVLW7ls+7TRK9igspTbzWmUqxFbgK0m40Ggm6efUbxtWVCGIjc+dtchyr5qAMAUL6iEGRdS/6vwg==
   dependencies:
     debug "^4.3.2"
     sax "^1.2.4"
 
-builder-util@22.11.7:
-  version "22.11.7"
-  resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.7.tgz#ae9707afa6a31feafa13c274ac83b4fe28ef1467"
-  integrity sha512-ihqUe5ey82LM9qqQe0/oIcaSm9w+B9UjcsWJZxJliTBsbU+sErOpDFpHW+sim0veiTF/EIcGUh9HoduWw+l9FA==
+builder-util@22.14.5:
+  version "22.14.5"
+  resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.14.5.tgz#42a18608d2a566c0846e91266464776c8bfb0cc9"
+  integrity sha512-zqIHDFJwmA7jV7SC9aI+33MWwT2mWoijH+Ol9IntNAwuuRXoS+7XeJwnhLBXOhcDBzXT4kDzHnRk4JKeaygEYA==
   dependencies:
     "7zip-bin" "~5.1.1"
-    "@types/debug" "^4.1.5"
+    "@types/debug" "^4.1.6"
     "@types/fs-extra" "^9.0.11"
-    app-builder-bin "3.5.13"
+    app-builder-bin "3.7.1"
     bluebird-lst "^1.0.9"
-    builder-util-runtime "8.7.7"
+    builder-util-runtime "8.9.1"
     chalk "^4.1.1"
+    cross-spawn "^7.0.3"
     debug "^4.3.2"
     fs-extra "^10.0.0"
     is-ci "^3.0.0"
@@ -427,9 +440,9 @@ cacheable-request@^6.0.0:
     responselike "^1.0.2"
 
 camelcase@^6.2.0:
-  version "6.2.0"
-  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
-  integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e"
+  integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==
 
 chalk@^2.4.2:
   version "2.4.2"
@@ -468,10 +481,10 @@ ci-info@^2.0.0:
   resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
   integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
 
-ci-info@^3.1.1:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6"
-  integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==
+ci-info@^3.2.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2"
+  integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==
 
 cli-boxes@^2.2.1:
   version "2.2.1"
@@ -486,7 +499,7 @@ cli-truncate@^1.1.0:
     slice-ansi "^1.0.0"
     string-width "^2.0.0"
 
-clipboardy@^2.3.0:
+clipboardy@2.3.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290"
   integrity sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==
@@ -540,6 +553,13 @@ colors@1.0.3:
   resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
   integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=
 
+combined-stream@^1.0.8:
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+  integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+  dependencies:
+    delayed-stream "~1.0.0"
+
 commander@2.9.0:
   version "2.9.0"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
@@ -552,6 +572,11 @@ commander@^5.0.0:
   resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
   integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
 
+compare-version@^0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080"
+  integrity sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=
+
 concat-map@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -587,11 +612,6 @@ configstore@^5.0.1:
     write-file-atomic "^3.0.0"
     xdg-basedir "^4.0.0"
 
-core-js@^3.6.5:
-  version "3.18.0"
-  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.18.0.tgz#9af3f4a6df9ba3428a3fb1b171f1503b3f40cc49"
-  integrity sha512-WJeQqq6jOYgVgg4NrXKL0KLQhi0CT4ZOCvFL+3CQ5o7I6J8HkT5wd53EadMfqTDp1so/MT1J+w2ujhWcCJtN7w==
-
 core-util-is@1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -620,7 +640,7 @@ cross-spawn@^6.0.0:
     shebang-command "^1.2.0"
     which "^1.2.9"
 
-cross-spawn@^7.0.1:
+cross-spawn@^7.0.1, cross-spawn@^7.0.3:
   version "7.0.3"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
   integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -639,21 +659,14 @@ crypto-random-string@^2.0.0:
   resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
   integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
 
-debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2:
+debug@4, debug@4.3.2, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2:
   version "4.3.2"
   resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
   integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
   dependencies:
     ms "2.1.2"
 
-debug@4.3.1:
-  version "4.3.1"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
-  integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
-  dependencies:
-    ms "2.1.2"
-
-debug@^2.6.9:
+debug@^2.6.8, debug@^2.6.9:
   version "2.6.9"
   resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
   integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
@@ -684,6 +697,11 @@ define-properties@^1.1.3:
   dependencies:
     object-keys "^1.0.12"
 
+delayed-stream@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+  integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
+
 detect-node@^2.0.4:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
@@ -704,14 +722,14 @@ dir-compare@^2.4.0:
     commander "2.9.0"
     minimatch "3.0.4"
 
-dmg-builder@22.11.7:
-  version "22.11.7"
-  resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.7.tgz#5956008c18d40ee72c0ea01ffea9590dbf51df89"
-  integrity sha512-+I+XfP2DODHB6PwFANgpH/WMzzCA5r5XoMvbFCIYjQjJpXlO0XnqQaamzFl2vh/Wz/Qt0d0lJMgRy8gKR3MGdQ==
+dmg-builder@22.14.5:
+  version "22.14.5"
+  resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.14.5.tgz#137c0b55e639badcc0b119eb060e6fa4ed61d948"
+  integrity sha512-1GvFGQE332bvPamcMwZDqWqfWfJTyyDLOsHMcGi0zs+Jh7JOn6/zuBkHJIWHdsj2QJbhzLVyd2/ZqttOKv7I8w==
   dependencies:
-    app-builder-lib "22.11.7"
-    builder-util "22.11.7"
-    builder-util-runtime "8.7.6"
+    app-builder-lib "22.14.5"
+    builder-util "22.14.5"
+    builder-util-runtime "8.9.1"
     fs-extra "^10.0.0"
     iconv-lite "^0.6.2"
     js-yaml "^4.1.0"
@@ -762,17 +780,17 @@ ejs@^3.1.6:
   dependencies:
     jake "^10.6.1"
 
-electron-builder@^22.11.7:
-  version "22.11.7"
-  resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.7.tgz#cd97a0d9f6e6d388112e66b4376de431cca4d596"
-  integrity sha512-yQExSLt7Hbz/P8lLkZDdE/OnJJ7NCX+uiQcV+XIH0TeEZcD87ZnSqBBzGUN5akySU4BXXlrVZKeUsXACWrm5Kw==
+electron-builder@^22.13.1:
+  version "22.14.5"
+  resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.14.5.tgz#3a25547bd4fe3728d4704da80956a794c5c31496"
+  integrity sha512-N73hSbXFz6Mz5Z6h6C5ly6CB+dUN6k1LuCDJjI8VF47bMXv/QE0HE+Kkb0GPKqTqM7Hsk/yIYX+kHCfSkR5FGg==
   dependencies:
-    "@types/yargs" "^16.0.2"
-    app-builder-lib "22.11.7"
-    builder-util "22.11.7"
-    builder-util-runtime "8.7.7"
+    "@types/yargs" "^17.0.1"
+    app-builder-lib "22.14.5"
+    builder-util "22.14.5"
+    builder-util-runtime "8.9.1"
     chalk "^4.1.1"
-    dmg-builder "22.11.7"
+    dmg-builder "22.14.5"
     fs-extra "^10.0.0"
     is-ci "^3.0.0"
     lazy-val "^1.0.5"
@@ -780,33 +798,40 @@ electron-builder@^22.11.7:
     update-notifier "^5.1.0"
     yargs "^17.0.1"
 
-electron-publish@22.11.7:
-  version "22.11.7"
-  resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.7.tgz#4126cbb08ccf082a2aa7fef89ee629b3a4b8ae9a"
-  integrity sha512-A4EhRRNBVz4SPzUlBrPO6BmuyDeI0pyprggPAV9rQ+SDVSnSB/WKPot9JwWMyArkGj3AUUTMNVT6hwZhMvhfqw==
+electron-osx-sign@^0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz#fc258c5e896859904bbe3d01da06902c04b51c3a"
+  integrity sha512-icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ==
+  dependencies:
+    bluebird "^3.5.0"
+    compare-version "^0.1.2"
+    debug "^2.6.8"
+    isbinaryfile "^3.0.2"
+    minimist "^1.2.0"
+    plist "^3.0.1"
+
+electron-publish@22.14.5:
+  version "22.14.5"
+  resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.14.5.tgz#34bcdce671f0e651330db20040d6919c77c94bd6"
+  integrity sha512-h+NANRdaA0PqGF15GKvorseWPzh1PXa/zx4I37//PIokW8eKIov8ky23foUSb55ZFWUHGpxQJux7y2NCfBtQeg==
   dependencies:
     "@types/fs-extra" "^9.0.11"
-    builder-util "22.11.7"
-    builder-util-runtime "8.7.7"
+    builder-util "22.14.5"
+    builder-util-runtime "8.9.1"
     chalk "^4.1.1"
     fs-extra "^10.0.0"
     lazy-val "^1.0.5"
     mime "^2.5.2"
 
-electron@*:
-  version "15.0.0"
-  resolved "https://registry.yarnpkg.com/electron/-/electron-15.0.0.tgz#b1b6244b1cffddf348c27c54b1310b3a3680246e"
-  integrity sha512-LlBjN5nCJoC7EDrgfDQwEGSGSAo/o08nSP5uJxN2m+ZtNA69SxpnWv4yPgo1K08X/iQPoGhoZu6C8LYYlk1Dtg==
+electron@^15.3.1:
+  version "15.3.2"
+  resolved "https://registry.yarnpkg.com/electron/-/electron-15.3.2.tgz#4f0cbad781d14e0194f5dfef1709e09a70c8074a"
+  integrity sha512-sEpOX10gjAyvq33HDxJrq2HhYZT3qndZjUrHkzG16QTLjykP7lMvGnJ/bt6wn+T75f4wwv59FUbQx2hW3Xz5TQ==
   dependencies:
     "@electron/get" "^1.13.0"
     "@types/node" "^14.6.2"
     extract-zip "^1.0.3"
 
-emoji-regex@^7.0.1:
-  version "7.0.3"
-  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
-  integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
-
 emoji-regex@^8.0.0:
   version "8.0.0"
   resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
@@ -889,9 +914,9 @@ extract-zip@^1.0.3:
     yauzl "^2.10.0"
 
 extsprintf@^1.2.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
-  integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
+  integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
 
 fast-deep-equal@^3.1.1:
   version "3.1.3"
@@ -925,16 +950,25 @@ find-up@^4.0.0:
     locate-path "^5.0.0"
     path-exists "^4.0.0"
 
-follow-redirects@^1.14.0:
-  version "1.14.4"
-  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.4.tgz#838fdf48a8bbdd79e52ee51fb1c94e3ed98b9379"
-  integrity sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==
+follow-redirects@^1.14.4:
+  version "1.14.5"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.5.tgz#f09a5848981d3c772b5392309778523f8d85c381"
+  integrity sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==
 
-font-awesome@*:
+font-awesome@^4.7.0:
   version "4.7.0"
   resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133"
   integrity sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=
 
+form-data@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
+  integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
+  dependencies:
+    asynckit "^0.4.0"
+    combined-stream "^1.0.8"
+    mime-types "^2.1.12"
+
 fs-constants@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
@@ -993,9 +1027,9 @@ get-stream@^5.1.0:
     pump "^3.0.0"
 
 glob@^7.1.3, glob@^7.1.6:
-  version "7.1.7"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
-  integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
+  integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
   dependencies:
     fs.realpath "^1.0.0"
     inflight "^1.0.4"
@@ -1004,13 +1038,12 @@ glob@^7.1.3, glob@^7.1.6:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
-global-agent@^2.0.2:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz#566331b0646e6bf79429a16877685c4a1fbf76dc"
-  integrity sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==
+global-agent@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6"
+  integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==
   dependencies:
     boolean "^3.0.1"
-    core-js "^3.6.5"
     es6-error "^4.1.1"
     matcher "^3.0.0"
     roarr "^2.15.3"
@@ -1169,11 +1202,11 @@ is-ci@^2.0.0:
     ci-info "^2.0.0"
 
 is-ci@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994"
-  integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867"
+  integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==
   dependencies:
-    ci-info "^3.1.1"
+    ci-info "^3.2.0"
 
 is-docker@^2.0.0:
   version "2.2.1"
@@ -1240,6 +1273,13 @@ isarray@~1.0.0:
   resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
   integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
 
+isbinaryfile@^3.0.2:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80"
+  integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==
+  dependencies:
+    buffer-alloc "^1.2.0"
+
 isbinaryfile@^4.0.8:
   version "4.0.8"
   resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf"
@@ -1250,7 +1290,7 @@ isexe@^2.0.0:
   resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
   integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
 
-iso8601-duration@*:
+iso8601-duration@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/iso8601-duration/-/iso8601-duration-1.3.0.tgz#29d7b69e0574e4acdee50c5e5e09adab4137ba5a"
   integrity sha512-K4CiUBzo3YeWk76FuET/dQPH03WE04R94feo5TSKQCXpoXQt9E4yx2CnY737QZnSAI3PI4WlKo/zfqizGx52QQ==
@@ -1372,7 +1412,7 @@ matcher@^3.0.0:
   dependencies:
     escape-string-regexp "^4.0.0"
 
-md5@*:
+md5@^2.3.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f"
   integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==
@@ -1381,10 +1421,22 @@ md5@*:
     crypt "0.0.2"
     is-buffer "~1.1.6"
 
+mime-db@1.51.0:
+  version "1.51.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c"
+  integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==
+
+mime-types@^2.1.12:
+  version "2.1.34"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24"
+  integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==
+  dependencies:
+    mime-db "1.51.0"
+
 mime@^2.5.2:
-  version "2.5.2"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
-  integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==
+  version "2.6.0"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
+  integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
 
 mimic-response@^1.0.0, mimic-response@^1.0.1:
   version "1.0.1"
@@ -1403,7 +1455,12 @@ minimist@^1.2.0, minimist@^1.2.5:
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
 
-mkdirp@^0.5.1, mkdirp@^0.5.4:
+mkdirp-classic@^0.5.2:
+  version "0.5.3"
+  resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
+  integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
+
+mkdirp@^0.5.4:
   version "0.5.5"
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
   integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
@@ -1430,10 +1487,12 @@ node-addon-api@^1.6.3:
   resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d"
   integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==
 
-node-fetch@2.6.1:
-  version "2.6.1"
-  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
-  integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
+node-fetch@2.6.5:
+  version "2.6.5"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd"
+  integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==
+  dependencies:
+    whatwg-url "^5.0.0"
 
 normalize-url@^4.1.0:
   version "4.5.1"
@@ -1561,12 +1620,7 @@ process-nextick-args@~2.0.0:
   resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
   integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
 
-progress@2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31"
-  integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==
-
-progress@^2.0.3:
+progress@2.0.3, progress@^2.0.3:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
   integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
@@ -1601,23 +1655,23 @@ pupa@^2.1.1:
   dependencies:
     escape-goat "^2.0.0"
 
-puppeteer@10.2.0:
-  version "10.2.0"
-  resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-10.2.0.tgz#7d8d7fda91e19a7cfd56986e0275448e6351849e"
-  integrity sha512-OR2CCHRashF+f30+LBOtAjK6sNtz2HEyTr5FqAvhf8lR/qB3uBRoIZOwQKgwoyZnMBsxX7ZdazlyBgGjpnkiMw==
+puppeteer@11.0.0:
+  version "11.0.0"
+  resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-11.0.0.tgz#0808719c38e15315ecc1b1c28911f1c9054d201f"
+  integrity sha512-6rPFqN1ABjn4shgOICGDBITTRV09EjXVqhDERBDKwCLz0UyBxeeBH6Ay0vQUJ84VACmlxwzOIzVEJXThcF3aNg==
   dependencies:
-    debug "4.3.1"
+    debug "4.3.2"
     devtools-protocol "0.0.901419"
     extract-zip "2.0.1"
     https-proxy-agent "5.0.0"
-    node-fetch "2.6.1"
+    node-fetch "2.6.5"
     pkg-dir "4.2.0"
-    progress "2.0.1"
+    progress "2.0.3"
     proxy-from-env "1.1.0"
     rimraf "3.0.2"
-    tar-fs "2.0.0"
-    unbzip2-stream "1.3.3"
-    ws "7.4.6"
+    tar-fs "2.1.1"
+    unbzip2-stream "1.4.3"
+    ws "8.2.3"
 
 rc@^1.2.8:
   version "1.2.8"
@@ -1795,9 +1849,9 @@ shebang-regex@^3.0.0:
   integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
 
 signal-exit@^3.0.0, signal-exit@^3.0.2:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.4.tgz#366a4684d175b9cab2081e3681fda3747b6c51d7"
-  integrity sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==
+  version "3.0.6"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af"
+  integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==
 
 slice-ansi@^1.0.0:
   version "1.0.0"
@@ -1812,9 +1866,9 @@ smart-buffer@^4.0.2:
   integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
 
 source-map-support@^0.5.19:
-  version "0.5.20"
-  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9"
-  integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==
+  version "0.5.21"
+  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+  integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
   dependencies:
     buffer-from "^1.0.0"
     source-map "^0.6.0"
@@ -1842,23 +1896,14 @@ string-width@^2.0.0:
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^4.0.0"
 
-string-width@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
-  integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
-  dependencies:
-    emoji-regex "^7.0.1"
-    is-fullwidth-code-point "^2.0.0"
-    strip-ansi "^5.1.0"
-
 string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2:
-  version "4.2.2"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
-  integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
+  version "4.2.3"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+  integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
   dependencies:
     emoji-regex "^8.0.0"
     is-fullwidth-code-point "^3.0.0"
-    strip-ansi "^6.0.0"
+    strip-ansi "^6.0.1"
 
 string_decoder@^1.1.1:
   version "1.3.0"
@@ -1881,19 +1926,12 @@ strip-ansi@^4.0.0:
   dependencies:
     ansi-regex "^3.0.0"
 
-strip-ansi@^5.1.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
-  integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
   dependencies:
-    ansi-regex "^4.1.0"
-
-strip-ansi@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
-  integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
-  dependencies:
-    ansi-regex "^5.0.0"
+    ansi-regex "^5.0.1"
 
 strip-eof@^1.0.0:
   version "1.0.0"
@@ -1926,17 +1964,17 @@ supports-color@^7.1.0:
   dependencies:
     has-flag "^4.0.0"
 
-tar-fs@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz#677700fc0c8b337a78bee3623fdc235f21d7afad"
-  integrity sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==
+tar-fs@2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
+  integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==
   dependencies:
     chownr "^1.1.1"
-    mkdirp "^0.5.1"
+    mkdirp-classic "^0.5.2"
     pump "^3.0.0"
-    tar-stream "^2.0.0"
+    tar-stream "^2.1.4"
 
-tar-stream@^2.0.0:
+tar-stream@^2.1.4:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
   integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
@@ -1961,9 +1999,9 @@ through@^2.3.8:
   integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
 
 tmp-promise@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz#6e933782abff8b00c3119d63589ca1fb9caaa62a"
-  integrity sha512-OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA==
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7"
+  integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==
   dependencies:
     tmp "^0.2.0"
 
@@ -1979,6 +2017,11 @@ to-readable-stream@^1.0.0:
   resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
   integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==
 
+tr46@~0.0.3:
+  version "0.0.3"
+  resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+  integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
+
 truncate-utf8-bytes@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b"
@@ -2013,10 +2056,10 @@ typedarray@^0.0.6:
   resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
   integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
 
-unbzip2-stream@1.3.3:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a"
-  integrity sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==
+unbzip2-stream@1.4.3:
+  version "1.4.3"
+  resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7"
+  integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==
   dependencies:
     buffer "^5.2.1"
     through "^2.3.8"
@@ -2083,14 +2126,27 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
   integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
 
 verror@^1.10.0:
-  version "1.10.0"
-  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
-  integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
+  version "1.10.1"
+  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz#4bf09eeccf4563b109ed4b3d458380c972b0cdeb"
+  integrity sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==
   dependencies:
     assert-plus "^1.0.0"
     core-util-is "1.0.2"
     extsprintf "^1.2.0"
 
+webidl-conversions@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+  integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
+
+whatwg-url@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
+  integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
+  dependencies:
+    tr46 "~0.0.3"
+    webidl-conversions "^3.0.0"
+
 which@^1.2.9:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
@@ -2136,10 +2192,10 @@ write-file-atomic@^3.0.0:
     signal-exit "^3.0.2"
     typedarray-to-buffer "^3.1.5"
 
-ws@7.4.6:
-  version "7.4.6"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
-  integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
+ws@8.2.3:
+  version "8.2.3"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba"
+  integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==
 
 xdg-basedir@^4.0.0:
   version "4.0.0"
@@ -2172,9 +2228,9 @@ yargs-parser@^20.2.2:
   integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
 
 yargs@^17.0.1:
-  version "17.1.1"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz#c2a8091564bdb196f7c0a67c1d12e5b85b8067ba"
-  integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==
+  version "17.2.1"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.2.1.tgz#e2c95b9796a0e1f7f3bf4427863b42e0418191ea"
+  integrity sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==
   dependencies:
     cliui "^7.0.2"
     escalade "^3.1.1"
diff --git a/nixpkgs/pkgs/tools/misc/sharedown/yarndeps.nix b/nixpkgs/pkgs/tools/misc/sharedown/yarndeps.nix
index a980ad628f28..046a6c71bad2 100644
--- a/nixpkgs/pkgs/tools/misc/sharedown/yarndeps.nix
+++ b/nixpkgs/pkgs/tools/misc/sharedown/yarndeps.nix
@@ -18,11 +18,11 @@
       };
     }
     {
-      name = "_electron_get___get_1.13.0.tgz";
+      name = "_electron_get___get_1.13.1.tgz";
       path = fetchurl {
-        name = "_electron_get___get_1.13.0.tgz";
-        url  = "https://registry.yarnpkg.com/@electron/get/-/get-1.13.0.tgz";
-        sha1 = "95c6bcaff4f9a505ea46792424f451efea89228c";
+        name = "_electron_get___get_1.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/@electron/get/-/get-1.13.1.tgz";
+        sha1 = "42a0aa62fd1189638bd966e23effaebb16108368";
       };
     }
     {
@@ -90,11 +90,11 @@
       };
     }
     {
-      name = "_types_glob___glob_7.1.4.tgz";
+      name = "_types_glob___glob_7.2.0.tgz";
       path = fetchurl {
-        name = "_types_glob___glob_7.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz";
-        sha1 = "ea59e21d2ee5c517914cb4bc8e4153b99e566672";
+        name = "_types_glob___glob_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz";
+        sha1 = "bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb";
       };
     }
     {
@@ -114,19 +114,19 @@
       };
     }
     {
-      name = "_types_node___node_16.9.6.tgz";
+      name = "_types_node___node_16.11.10.tgz";
       path = fetchurl {
-        name = "_types_node___node_16.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-16.9.6.tgz";
-        sha1 = "040a64d7faf9e5d9e940357125f0963012e66f04";
+        name = "_types_node___node_16.11.10.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-16.11.10.tgz";
+        sha1 = "2e3ad0a680d96367103d3e670d41c2fed3da61ae";
       };
     }
     {
-      name = "_types_node___node_14.17.18.tgz";
+      name = "_types_node___node_14.17.34.tgz";
       path = fetchurl {
-        name = "_types_node___node_14.17.18.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.17.18.tgz";
-        sha1 = "0198489a751005f71217744aa966cd1f29447c81";
+        name = "_types_node___node_14.17.34.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.17.34.tgz";
+        sha1 = "fe4b38b3f07617c0fa31ae923fca9249641038f0";
       };
     }
     {
@@ -154,11 +154,11 @@
       };
     }
     {
-      name = "_types_yargs___yargs_16.0.4.tgz";
+      name = "_types_yargs___yargs_17.0.7.tgz";
       path = fetchurl {
-        name = "_types_yargs___yargs_16.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz";
-        sha1 = "26aad98dd2c2a38e421086ea9ad42b9e51642977";
+        name = "_types_yargs___yargs_17.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.7.tgz";
+        sha1 = "44a484c634761da4391477515a98772b82b5060f";
       };
     }
     {
@@ -194,11 +194,11 @@
       };
     }
     {
-      name = "ansi_align___ansi_align_3.0.0.tgz";
+      name = "ansi_align___ansi_align_3.0.1.tgz";
       path = fetchurl {
-        name = "ansi_align___ansi_align_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz";
-        sha1 = "b536b371cf687caaef236c18d3e21fe3797467cb";
+        name = "ansi_align___ansi_align_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz";
+        sha1 = "0cdf12e111ace773a86e9a1fad1225c43cb19a59";
       };
     }
     {
@@ -210,14 +210,6 @@
       };
     }
     {
-      name = "ansi_regex___ansi_regex_4.1.0.tgz";
-      path = fetchurl {
-        name = "ansi_regex___ansi_regex_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz";
-        sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997";
-      };
-    }
-    {
       name = "ansi_regex___ansi_regex_5.0.1.tgz";
       path = fetchurl {
         name = "ansi_regex___ansi_regex_5.0.1.tgz";
@@ -242,19 +234,19 @@
       };
     }
     {
-      name = "app_builder_bin___app_builder_bin_3.5.13.tgz";
+      name = "app_builder_bin___app_builder_bin_3.7.1.tgz";
       path = fetchurl {
-        name = "app_builder_bin___app_builder_bin_3.5.13.tgz";
-        url  = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.13.tgz";
-        sha1 = "6dd7f4de34a4e408806f99b8c7d6ef1601305b7e";
+        name = "app_builder_bin___app_builder_bin_3.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.7.1.tgz";
+        sha1 = "cb0825c5e12efc85b196ac3ed9c89f076c61040e";
       };
     }
     {
-      name = "app_builder_lib___app_builder_lib_22.11.7.tgz";
+      name = "app_builder_lib___app_builder_lib_22.14.5.tgz";
       path = fetchurl {
-        name = "app_builder_lib___app_builder_lib_22.11.7.tgz";
-        url  = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.7.tgz";
-        sha1 = "c0ad1119ebfbf4189a8280ad693625f5e684dca6";
+        name = "app_builder_lib___app_builder_lib_22.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.14.5.tgz";
+        sha1 = "a61a50b132b858e98fdc70b6b88994ae99b4f96d";
       };
     }
     {
@@ -306,6 +298,14 @@
       };
     }
     {
+      name = "asynckit___asynckit_0.4.0.tgz";
+      path = fetchurl {
+        name = "asynckit___asynckit_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
+        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+      };
+    }
+    {
       name = "at_least_node___at_least_node_1.0.0.tgz";
       path = fetchurl {
         name = "at_least_node___at_least_node_1.0.0.tgz";
@@ -314,11 +314,11 @@
       };
     }
     {
-      name = "axios___axios_0.21.4.tgz";
+      name = "axios___axios_0.24.0.tgz";
       path = fetchurl {
-        name = "axios___axios_0.21.4.tgz";
-        url  = "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz";
-        sha1 = "c67b90dc0568e5c1cf2b0b858c43ba28e2eda575";
+        name = "axios___axios_0.24.0.tgz";
+        url  = "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz";
+        sha1 = "804e6fa1e4b9c5288501dd9dff56a7a0940d20d6";
       };
     }
     {
@@ -370,11 +370,11 @@
       };
     }
     {
-      name = "bootstrap___bootstrap_5.1.1.tgz";
+      name = "bootstrap___bootstrap_5.1.3.tgz";
       path = fetchurl {
-        name = "bootstrap___bootstrap_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.1.tgz";
-        sha1 = "9d6eed81e08feaccedf3adaca51fe4b73a2871df";
+        name = "bootstrap___bootstrap_5.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.3.tgz";
+        sha1 = "ba081b0c130f810fa70900acbc1c6d3c28fa8f34";
       };
     }
     {
@@ -394,6 +394,22 @@
       };
     }
     {
+      name = "buffer_alloc_unsafe___buffer_alloc_unsafe_1.1.0.tgz";
+      path = fetchurl {
+        name = "buffer_alloc_unsafe___buffer_alloc_unsafe_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz";
+        sha1 = "bd7dc26ae2972d0eda253be061dba992349c19f0";
+      };
+    }
+    {
+      name = "buffer_alloc___buffer_alloc_1.2.0.tgz";
+      path = fetchurl {
+        name = "buffer_alloc___buffer_alloc_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz";
+        sha1 = "890dd90d923a873e08e10e5fd51a57e5b7cce0ec";
+      };
+    }
+    {
       name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
       path = fetchurl {
         name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
@@ -410,6 +426,14 @@
       };
     }
     {
+      name = "buffer_fill___buffer_fill_1.0.0.tgz";
+      path = fetchurl {
+        name = "buffer_fill___buffer_fill_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz";
+        sha1 = "f8f78b76789888ef39f205cd637f68e702122b2c";
+      };
+    }
+    {
       name = "buffer_from___buffer_from_1.1.2.tgz";
       path = fetchurl {
         name = "buffer_from___buffer_from_1.1.2.tgz";
@@ -426,27 +450,19 @@
       };
     }
     {
-      name = "builder_util_runtime___builder_util_runtime_8.7.6.tgz";
-      path = fetchurl {
-        name = "builder_util_runtime___builder_util_runtime_8.7.6.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz";
-        sha1 = "4b43c96db2bd494ced7694bcd7674934655e8324";
-      };
-    }
-    {
-      name = "builder_util_runtime___builder_util_runtime_8.7.7.tgz";
+      name = "builder_util_runtime___builder_util_runtime_8.9.1.tgz";
       path = fetchurl {
-        name = "builder_util_runtime___builder_util_runtime_8.7.7.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz";
-        sha1 = "6c83cc3abe7a7a5c8b4ec8878f68adc828c07f0d";
+        name = "builder_util_runtime___builder_util_runtime_8.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.1.tgz";
+        sha1 = "25f066b3fbc20b3e6236a9b956b1ebb0e33ff66a";
       };
     }
     {
-      name = "builder_util___builder_util_22.11.7.tgz";
+      name = "builder_util___builder_util_22.14.5.tgz";
       path = fetchurl {
-        name = "builder_util___builder_util_22.11.7.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.7.tgz";
-        sha1 = "ae9707afa6a31feafa13c274ac83b4fe28ef1467";
+        name = "builder_util___builder_util_22.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.14.5.tgz";
+        sha1 = "42a18608d2a566c0846e91266464776c8bfb0cc9";
       };
     }
     {
@@ -458,11 +474,11 @@
       };
     }
     {
-      name = "camelcase___camelcase_6.2.0.tgz";
+      name = "camelcase___camelcase_6.2.1.tgz";
       path = fetchurl {
-        name = "camelcase___camelcase_6.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz";
-        sha1 = "924af881c9d525ac9d87f40d964e5cea982a1809";
+        name = "camelcase___camelcase_6.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz";
+        sha1 = "250fd350cfd555d0d2160b1d51510eaf8326e86e";
       };
     }
     {
@@ -514,11 +530,11 @@
       };
     }
     {
-      name = "ci_info___ci_info_3.2.0.tgz";
+      name = "ci_info___ci_info_3.3.0.tgz";
       path = fetchurl {
-        name = "ci_info___ci_info_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz";
-        sha1 = "2876cb948a498797b5236f0095bc057d0dca38b6";
+        name = "ci_info___ci_info_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz";
+        sha1 = "b4ed1fb6818dea4803a55c623041f9165d2066b2";
       };
     }
     {
@@ -602,6 +618,14 @@
       };
     }
     {
+      name = "combined_stream___combined_stream_1.0.8.tgz";
+      path = fetchurl {
+        name = "combined_stream___combined_stream_1.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz";
+        sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f";
+      };
+    }
+    {
       name = "commander___commander_2.9.0.tgz";
       path = fetchurl {
         name = "commander___commander_2.9.0.tgz";
@@ -618,6 +642,14 @@
       };
     }
     {
+      name = "compare_version___compare_version_0.1.2.tgz";
+      path = fetchurl {
+        name = "compare_version___compare_version_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz";
+        sha1 = "0162ec2d9351f5ddd59a9202cba935366a725080";
+      };
+    }
+    {
       name = "concat_map___concat_map_0.0.1.tgz";
       path = fetchurl {
         name = "concat_map___concat_map_0.0.1.tgz";
@@ -650,14 +682,6 @@
       };
     }
     {
-      name = "core_js___core_js_3.18.0.tgz";
-      path = fetchurl {
-        name = "core_js___core_js_3.18.0.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.18.0.tgz";
-        sha1 = "9af3f4a6df9ba3428a3fb1b171f1503b3f40cc49";
-      };
-    }
-    {
       name = "core_util_is___core_util_is_1.0.2.tgz";
       path = fetchurl {
         name = "core_util_is___core_util_is_1.0.2.tgz";
@@ -722,14 +746,6 @@
       };
     }
     {
-      name = "debug___debug_4.3.1.tgz";
-      path = fetchurl {
-        name = "debug___debug_4.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz";
-        sha1 = "f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee";
-      };
-    }
-    {
       name = "debug___debug_2.6.9.tgz";
       path = fetchurl {
         name = "debug___debug_2.6.9.tgz";
@@ -770,6 +786,14 @@
       };
     }
     {
+      name = "delayed_stream___delayed_stream_1.0.0.tgz";
+      path = fetchurl {
+        name = "delayed_stream___delayed_stream_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
+        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+      };
+    }
+    {
       name = "detect_node___detect_node_2.1.0.tgz";
       path = fetchurl {
         name = "detect_node___detect_node_2.1.0.tgz";
@@ -794,11 +818,11 @@
       };
     }
     {
-      name = "dmg_builder___dmg_builder_22.11.7.tgz";
+      name = "dmg_builder___dmg_builder_22.14.5.tgz";
       path = fetchurl {
-        name = "dmg_builder___dmg_builder_22.11.7.tgz";
-        url  = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.7.tgz";
-        sha1 = "5956008c18d40ee72c0ea01ffea9590dbf51df89";
+        name = "dmg_builder___dmg_builder_22.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.14.5.tgz";
+        sha1 = "137c0b55e639badcc0b119eb060e6fa4ed61d948";
       };
     }
     {
@@ -850,35 +874,35 @@
       };
     }
     {
-      name = "electron_builder___electron_builder_22.11.7.tgz";
+      name = "electron_builder___electron_builder_22.14.5.tgz";
       path = fetchurl {
-        name = "electron_builder___electron_builder_22.11.7.tgz";
-        url  = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.7.tgz";
-        sha1 = "cd97a0d9f6e6d388112e66b4376de431cca4d596";
+        name = "electron_builder___electron_builder_22.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.14.5.tgz";
+        sha1 = "3a25547bd4fe3728d4704da80956a794c5c31496";
       };
     }
     {
-      name = "electron_publish___electron_publish_22.11.7.tgz";
+      name = "electron_osx_sign___electron_osx_sign_0.5.0.tgz";
       path = fetchurl {
-        name = "electron_publish___electron_publish_22.11.7.tgz";
-        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.7.tgz";
-        sha1 = "4126cbb08ccf082a2aa7fef89ee629b3a4b8ae9a";
+        name = "electron_osx_sign___electron_osx_sign_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz";
+        sha1 = "fc258c5e896859904bbe3d01da06902c04b51c3a";
       };
     }
     {
-      name = "electron___electron_15.0.0.tgz";
+      name = "electron_publish___electron_publish_22.14.5.tgz";
       path = fetchurl {
-        name = "electron___electron_15.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/electron/-/electron-15.0.0.tgz";
-        sha1 = "b1b6244b1cffddf348c27c54b1310b3a3680246e";
+        name = "electron_publish___electron_publish_22.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.14.5.tgz";
+        sha1 = "34bcdce671f0e651330db20040d6919c77c94bd6";
       };
     }
     {
-      name = "emoji_regex___emoji_regex_7.0.3.tgz";
+      name = "electron___electron_15.3.2.tgz";
       path = fetchurl {
-        name = "emoji_regex___emoji_regex_7.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
-        sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
+        name = "electron___electron_15.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/electron/-/electron-15.3.2.tgz";
+        sha1 = "4f0cbad781d14e0194f5dfef1709e09a70c8074a";
       };
     }
     {
@@ -978,11 +1002,11 @@
       };
     }
     {
-      name = "extsprintf___extsprintf_1.4.0.tgz";
+      name = "extsprintf___extsprintf_1.4.1.tgz";
       path = fetchurl {
-        name = "extsprintf___extsprintf_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
-        sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
+        name = "extsprintf___extsprintf_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz";
+        sha1 = "8d172c064867f235c0c84a596806d279bf4bcc07";
       };
     }
     {
@@ -1026,11 +1050,11 @@
       };
     }
     {
-      name = "follow_redirects___follow_redirects_1.14.4.tgz";
+      name = "follow_redirects___follow_redirects_1.14.5.tgz";
       path = fetchurl {
-        name = "follow_redirects___follow_redirects_1.14.4.tgz";
-        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.4.tgz";
-        sha1 = "838fdf48a8bbdd79e52ee51fb1c94e3ed98b9379";
+        name = "follow_redirects___follow_redirects_1.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.5.tgz";
+        sha1 = "f09a5848981d3c772b5392309778523f8d85c381";
       };
     }
     {
@@ -1042,6 +1066,14 @@
       };
     }
     {
+      name = "form_data___form_data_4.0.0.tgz";
+      path = fetchurl {
+        name = "form_data___form_data_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz";
+        sha1 = "93919daeaf361ee529584b9b31664dc12c9fa452";
+      };
+    }
+    {
       name = "fs_constants___fs_constants_1.0.0.tgz";
       path = fetchurl {
         name = "fs_constants___fs_constants_1.0.0.tgz";
@@ -1106,19 +1138,19 @@
       };
     }
     {
-      name = "glob___glob_7.1.7.tgz";
+      name = "glob___glob_7.2.0.tgz";
       path = fetchurl {
-        name = "glob___glob_7.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz";
-        sha1 = "3b193e9233f01d42d0b3f78294bbeeb418f94a90";
+        name = "glob___glob_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz";
+        sha1 = "d15535af7732e02e948f4c41628bd910293f6023";
       };
     }
     {
-      name = "global_agent___global_agent_2.2.0.tgz";
+      name = "global_agent___global_agent_3.0.0.tgz";
       path = fetchurl {
-        name = "global_agent___global_agent_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz";
-        sha1 = "566331b0646e6bf79429a16877685c4a1fbf76dc";
+        name = "global_agent___global_agent_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz";
+        sha1 = "ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6";
       };
     }
     {
@@ -1306,11 +1338,11 @@
       };
     }
     {
-      name = "is_ci___is_ci_3.0.0.tgz";
+      name = "is_ci___is_ci_3.0.1.tgz";
       path = fetchurl {
-        name = "is_ci___is_ci_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz";
-        sha1 = "c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994";
+        name = "is_ci___is_ci_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz";
+        sha1 = "db6ecbed1bd659c43dac0f45661e7674103d1867";
       };
     }
     {
@@ -1410,6 +1442,14 @@
       };
     }
     {
+      name = "isbinaryfile___isbinaryfile_3.0.3.tgz";
+      path = fetchurl {
+        name = "isbinaryfile___isbinaryfile_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz";
+        sha1 = "5d6def3edebf6e8ca8cae9c30183a804b5f8be80";
+      };
+    }
+    {
       name = "isbinaryfile___isbinaryfile_4.0.8.tgz";
       path = fetchurl {
         name = "isbinaryfile___isbinaryfile_4.0.8.tgz";
@@ -1586,11 +1626,27 @@
       };
     }
     {
-      name = "mime___mime_2.5.2.tgz";
+      name = "mime_db___mime_db_1.51.0.tgz";
+      path = fetchurl {
+        name = "mime_db___mime_db_1.51.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz";
+        sha1 = "d9ff62451859b18342d960850dc3cfb77e63fb0c";
+      };
+    }
+    {
+      name = "mime_types___mime_types_2.1.34.tgz";
+      path = fetchurl {
+        name = "mime_types___mime_types_2.1.34.tgz";
+        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz";
+        sha1 = "5a712f9ec1503511a945803640fafe09d3793c24";
+      };
+    }
+    {
+      name = "mime___mime_2.6.0.tgz";
       path = fetchurl {
-        name = "mime___mime_2.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz";
-        sha1 = "6e3dc6cc2b9510643830e5f19d5cb753da5eeabe";
+        name = "mime___mime_2.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz";
+        sha1 = "a2a682a95cd4d0cb1d6257e28f83da7e35800367";
       };
     }
     {
@@ -1618,6 +1674,14 @@
       };
     }
     {
+      name = "mkdirp_classic___mkdirp_classic_0.5.3.tgz";
+      path = fetchurl {
+        name = "mkdirp_classic___mkdirp_classic_0.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz";
+        sha1 = "fa10c9115cc6d8865be221ba47ee9bed78601113";
+      };
+    }
+    {
       name = "mkdirp___mkdirp_0.5.5.tgz";
       path = fetchurl {
         name = "mkdirp___mkdirp_0.5.5.tgz";
@@ -1658,11 +1722,11 @@
       };
     }
     {
-      name = "node_fetch___node_fetch_2.6.1.tgz";
+      name = "node_fetch___node_fetch_2.6.5.tgz";
       path = fetchurl {
-        name = "node_fetch___node_fetch_2.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz";
-        sha1 = "045bd323631f76ed2e2b55573394416b639a0052";
+        name = "node_fetch___node_fetch_2.6.5.tgz";
+        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz";
+        sha1 = "42735537d7f080a7e5f78b6c549b7146be1742fd";
       };
     }
     {
@@ -1834,14 +1898,6 @@
       };
     }
     {
-      name = "progress___progress_2.0.1.tgz";
-      path = fetchurl {
-        name = "progress___progress_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz";
-        sha1 = "c9242169342b1c29d275889c95734621b1952e31";
-      };
-    }
-    {
       name = "progress___progress_2.0.3.tgz";
       path = fetchurl {
         name = "progress___progress_2.0.3.tgz";
@@ -1890,11 +1946,11 @@
       };
     }
     {
-      name = "puppeteer___puppeteer_10.2.0.tgz";
+      name = "puppeteer___puppeteer_11.0.0.tgz";
       path = fetchurl {
-        name = "puppeteer___puppeteer_10.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/puppeteer/-/puppeteer-10.2.0.tgz";
-        sha1 = "7d8d7fda91e19a7cfd56986e0275448e6351849e";
+        name = "puppeteer___puppeteer_11.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/puppeteer/-/puppeteer-11.0.0.tgz";
+        sha1 = "0808719c38e15315ecc1b1c28911f1c9054d201f";
       };
     }
     {
@@ -2098,11 +2154,11 @@
       };
     }
     {
-      name = "signal_exit___signal_exit_3.0.4.tgz";
+      name = "signal_exit___signal_exit_3.0.6.tgz";
       path = fetchurl {
-        name = "signal_exit___signal_exit_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.4.tgz";
-        sha1 = "366a4684d175b9cab2081e3681fda3747b6c51d7";
+        name = "signal_exit___signal_exit_3.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz";
+        sha1 = "24e630c4b0f03fea446a2bd299e62b4a6ca8d0af";
       };
     }
     {
@@ -2122,11 +2178,11 @@
       };
     }
     {
-      name = "source_map_support___source_map_support_0.5.20.tgz";
+      name = "source_map_support___source_map_support_0.5.21.tgz";
       path = fetchurl {
-        name = "source_map_support___source_map_support_0.5.20.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz";
-        sha1 = "12166089f8f5e5e8c56926b377633392dd2cb6c9";
+        name = "source_map_support___source_map_support_0.5.21.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz";
+        sha1 = "04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f";
       };
     }
     {
@@ -2162,19 +2218,11 @@
       };
     }
     {
-      name = "string_width___string_width_3.1.0.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
-        sha1 = "22767be21b62af1081574306f69ac51b62203961";
-      };
-    }
-    {
-      name = "string_width___string_width_4.2.2.tgz";
+      name = "string_width___string_width_4.2.3.tgz";
       path = fetchurl {
-        name = "string_width___string_width_4.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz";
-        sha1 = "dafd4f9559a7585cfba529c6a0a4f73488ebd4c5";
+        name = "string_width___string_width_4.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz";
+        sha1 = "269c7117d27b05ad2e536830a8ec895ef9c6d010";
       };
     }
     {
@@ -2202,19 +2250,11 @@
       };
     }
     {
-      name = "strip_ansi___strip_ansi_5.2.0.tgz";
+      name = "strip_ansi___strip_ansi_6.0.1.tgz";
       path = fetchurl {
-        name = "strip_ansi___strip_ansi_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
-        sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae";
-      };
-    }
-    {
-      name = "strip_ansi___strip_ansi_6.0.0.tgz";
-      path = fetchurl {
-        name = "strip_ansi___strip_ansi_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz";
-        sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532";
+        name = "strip_ansi___strip_ansi_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz";
+        sha1 = "9e26c63d30f53443e9489495b2105d37b67a85d9";
       };
     }
     {
@@ -2258,11 +2298,11 @@
       };
     }
     {
-      name = "tar_fs___tar_fs_2.0.0.tgz";
+      name = "tar_fs___tar_fs_2.1.1.tgz";
       path = fetchurl {
-        name = "tar_fs___tar_fs_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz";
-        sha1 = "677700fc0c8b337a78bee3623fdc235f21d7afad";
+        name = "tar_fs___tar_fs_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz";
+        sha1 = "489a15ab85f1f0befabb370b7de4f9eb5cbe8784";
       };
     }
     {
@@ -2290,11 +2330,11 @@
       };
     }
     {
-      name = "tmp_promise___tmp_promise_3.0.2.tgz";
+      name = "tmp_promise___tmp_promise_3.0.3.tgz";
       path = fetchurl {
-        name = "tmp_promise___tmp_promise_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz";
-        sha1 = "6e933782abff8b00c3119d63589ca1fb9caaa62a";
+        name = "tmp_promise___tmp_promise_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz";
+        sha1 = "60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7";
       };
     }
     {
@@ -2314,6 +2354,14 @@
       };
     }
     {
+      name = "tr46___tr46_0.0.3.tgz";
+      path = fetchurl {
+        name = "tr46___tr46_0.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz";
+        sha1 = "8184fd347dac9cdc185992f3a6622e14b9d9ab6a";
+      };
+    }
+    {
       name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz";
       path = fetchurl {
         name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz";
@@ -2362,11 +2410,11 @@
       };
     }
     {
-      name = "unbzip2_stream___unbzip2_stream_1.3.3.tgz";
+      name = "unbzip2_stream___unbzip2_stream_1.4.3.tgz";
       path = fetchurl {
-        name = "unbzip2_stream___unbzip2_stream_1.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz";
-        sha1 = "d156d205e670d8d8c393e1c02ebd506422873f6a";
+        name = "unbzip2_stream___unbzip2_stream_1.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz";
+        sha1 = "b0da04c4371311df771cdc215e87f2130991ace7";
       };
     }
     {
@@ -2434,11 +2482,27 @@
       };
     }
     {
-      name = "verror___verror_1.10.0.tgz";
+      name = "verror___verror_1.10.1.tgz";
+      path = fetchurl {
+        name = "verror___verror_1.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz";
+        sha1 = "4bf09eeccf4563b109ed4b3d458380c972b0cdeb";
+      };
+    }
+    {
+      name = "webidl_conversions___webidl_conversions_3.0.1.tgz";
+      path = fetchurl {
+        name = "webidl_conversions___webidl_conversions_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz";
+        sha1 = "24534275e2a7bc6be7bc86611cc16ae0a5654871";
+      };
+    }
+    {
+      name = "whatwg_url___whatwg_url_5.0.0.tgz";
       path = fetchurl {
-        name = "verror___verror_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
-        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+        name = "whatwg_url___whatwg_url_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz";
+        sha1 = "966454e8765462e37644d3626f6742ce8b70965d";
       };
     }
     {
@@ -2490,11 +2554,11 @@
       };
     }
     {
-      name = "ws___ws_7.4.6.tgz";
+      name = "ws___ws_8.2.3.tgz";
       path = fetchurl {
-        name = "ws___ws_7.4.6.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz";
-        sha1 = "5654ca8ecdeee47c33a9a4bf6d28e2be2980377c";
+        name = "ws___ws_8.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz";
+        sha1 = "63a56456db1b04367d0b721a0b80cae6d8becbba";
       };
     }
     {
@@ -2546,11 +2610,11 @@
       };
     }
     {
-      name = "yargs___yargs_17.1.1.tgz";
+      name = "yargs___yargs_17.2.1.tgz";
       path = fetchurl {
-        name = "yargs___yargs_17.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz";
-        sha1 = "c2a8091564bdb196f7c0a67c1d12e5b85b8067ba";
+        name = "yargs___yargs_17.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-17.2.1.tgz";
+        sha1 = "e2c95b9796a0e1f7f3bf4427863b42e0418191ea";
       };
     }
     {
diff --git a/nixpkgs/pkgs/tools/misc/smenu/default.nix b/nixpkgs/pkgs/tools/misc/smenu/default.nix
index 5ba4164346f6..3ee4de082bd3 100644
--- a/nixpkgs/pkgs/tools/misc/smenu/default.nix
+++ b/nixpkgs/pkgs/tools/misc/smenu/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.18";
+  version = "0.9.19";
   pname = "smenu";
 
   src = fetchFromGitHub {
     owner = "p-gen";
     repo = "smenu";
     rev = "v${version}";
-    sha256 = "sha256-8ALY3dsUEJxGsDnYTOxNAmJbwmmZIV8GuHjNg0vPFUQ=";
+    sha256 = "sha256-0ZA8Op1IMZMJ7g1waK2uOYOCDfqPfiqnnjopGtBW1w8=";
   };
 
   buildInputs = [ ncurses ];
diff --git a/nixpkgs/pkgs/tools/misc/snapper/default.nix b/nixpkgs/pkgs/tools/misc/snapper/default.nix
index 8eeee269b07d..37361abf2b2f 100644
--- a/nixpkgs/pkgs/tools/misc/snapper/default.nix
+++ b/nixpkgs/pkgs/tools/misc/snapper/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "snapper";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "snapper";
     rev = "v${version}";
-    sha256 = "1gx3ichbkdqlzl7w187vc3xpmr9prmnp7as0h6ympgigradj5c7g";
+    sha256 = "1ci5mdsph2n5cqad51zf4sank35yj741adsqy2gg7vqwxrhpm8mj";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/starship/default.nix b/nixpkgs/pkgs/tools/misc/starship/default.nix
index 5202527b8c0d..89d4bb662da7 100644
--- a/nixpkgs/pkgs/tools/misc/starship/default.nix
+++ b/nixpkgs/pkgs/tools/misc/starship/default.nix
@@ -11,13 +11,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "0.58.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-s84fIpCyTF7FrJZGATjIJHt/+aknlhlz1V9s+c4f+Ig=";
+    sha256 = "sha256-Rr0HCr/uJDsBQiKJIPdEL3WOaLgMY2Nq2JGOq4dEUxQ=";
   };
 
   nativeBuildInputs = [ installShellFiles ] ++ lib.optionals stdenv.isLinux [ pkg-config ];
@@ -25,6 +25,8 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optionals stdenv.isLinux [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
 
+  buildFeatures = lib.optional (!stdenv.isDarwin) "notify-rust";
+
   postInstall = ''
     for shell in bash fish zsh; do
       STARSHIP_CACHE=$TMPDIR $out/bin/starship completions $shell > starship.$shell
@@ -32,7 +34,7 @@ rustPlatform.buildRustPackage rec {
     done
   '';
 
-  cargoSha256 = "sha256-5YOF0nXn4rdp3uxatzdvaqdAbLlHK6nq5H4+ZX/7joM=";
+  cargoSha256 = "sha256-UT6t1GbyON/wrIF/oXXhsT3Z61LFjggSPWKpSDHp+PI=";
 
   preCheck = ''
     HOME=$TMPDIR
diff --git a/nixpkgs/pkgs/tools/misc/staruml/default.nix b/nixpkgs/pkgs/tools/misc/staruml/default.nix
index ab28b8777f44..3d2042978f8d 100644
--- a/nixpkgs/pkgs/tools/misc/staruml/default.nix
+++ b/nixpkgs/pkgs/tools/misc/staruml/default.nix
@@ -21,13 +21,13 @@ let
   ];
 in
 stdenv.mkDerivation rec {
-  version = "4.0.1";
+  version = "4.1.6";
   pname = "staruml";
 
   src =
     fetchurl {
       url = "https://staruml.io/download/releases-v4/StarUML_${version}_amd64.deb";
-      sha256 = "0vxrs5y4a17bnc27fd2k2qc0vi81v677mi55znylwf3a41fjfcir";
+      sha256 = "sha256-CUOdpR8RExMLeOX8469egENotMNuPU4z8S1IGqA21z0=";
     };
 
   nativeBuildInputs = [ makeWrapper dpkg ];
diff --git a/nixpkgs/pkgs/tools/misc/stderred/default.nix b/nixpkgs/pkgs/tools/misc/stderred/default.nix
new file mode 100644
index 000000000000..f159e4328c9c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/stderred/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "stderred";
+  version = "unstable-2021-04-28";
+
+  src = fetchFromGitHub {
+    owner = "sickill";
+    repo = "stderred";
+    rev = "b2238f7c72afb89ca9aaa2944d7f4db8141057ea";
+    sha256 = "sha256-k/EA327AsRHgUYu7QqSF5yzOyO6h5XcE9Uv4l1VcIPI=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  sourceRoot = "${src.name}/src";
+
+  meta = with lib; {
+    description = "stderr in red";
+    homepage = "https://github.com/sickill/stderred";
+    license = licenses.mit;
+    maintainers = with maintainers; [ vojta001 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/steampipe/default.nix b/nixpkgs/pkgs/tools/misc/steampipe/default.nix
index 691351c89b08..f3cd9b785f2f 100644
--- a/nixpkgs/pkgs/tools/misc/steampipe/default.nix
+++ b/nixpkgs/pkgs/tools/misc/steampipe/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "steampipe";
-  version = "0.8.5";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "turbot";
     repo = "steampipe";
     rev = "v${version}";
-    sha256 = "sha256-3vetSUJwCeaBzKj+635siskfcDPs/kkgCH954cg/REA=";
+    sha256 = "sha256-P/Fys9/V71+VL5Az3EGGaW+tdeQbr2wO+jvVSVZmJT0=";
   };
 
-  vendorSha256 = "sha256-TGDFNHWWbEy1cD7b2yPqAN7rRrLvL0ZX/R3BWGRWjjw=";
+  vendorSha256 = "sha256-PYaq74NNEOJ1jZ6PoS6zcTiUN4JA9JDjO7GB9tqgT6c=";
 
   # tests are failing for no obvious reasons
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix b/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
index 360e16b1fc18..ad045aa1d924 100644
--- a/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
@@ -9,13 +9,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "svtplay-dl";
-  version = "4.5";
+  version = "4.10";
 
   src = fetchFromGitHub {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    sha256 = "sha256-TiJWy5WU1VsseodfgfemAsUc5/hDwSlM03ITRYTvJbg=";
+    sha256 = "sha256-JK/JtGDmmTJ+g0kmM7mSJi7+/N552GKtlMkh7quOBjo=";
   };
 
   pythonPaths = [ cryptography pyyaml requests ];
diff --git a/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix b/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix
index a82a71abf96c..cc1835c55498 100644
--- a/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix
+++ b/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix
@@ -2,13 +2,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "swaglyrics";
-  version = "1.2.2";
+  version = "unstable-2021-06-17";
 
   src = fetchFromGitHub {
     owner = "SwagLyrics";
     repo = "SwagLyrics-For-Spotify";
-    rev = "v${version}";
-    sha256 = "1dwj9fpyhqqpm2z3imp8hfribkzxya891shh77yg77rc2xghp7mh";
+    rev = "99fe764a9e45cac6cb9fcdf724c7d2f8cb4524fb";
+    sha256 = "sha256-O48T1WsUIVnNQb8gmzSkFFHTOiFOKVSAEYhF9zUqZz0=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -17,10 +17,9 @@ python3.pkgs.buildPythonApplication rec {
 
   preConfigure = ''
     substituteInPlace setup.py \
-      --replace 'requests>=2.24.0' 'requests~=2.23' \
-      --replace 'beautifulsoup4==4.9.1' 'beautifulsoup4~=4.9' \
-      --replace 'colorama==0.4.3' 'colorama~=0.4' \
-      --replace 'unidecode==1.1.1' 'unidecode~=1.2'
+      --replace 'beautifulsoup4==4.9.3' 'beautifulsoup4>=4.9.3' \
+      --replace 'unidecode==1.2.0' 'unidecode>=1.2.0' \
+      --replace 'flask==2.0.1' 'flask>=2.0.1'
   '';
 
   preBuild = "export HOME=$NIX_BUILD_TOP";
@@ -43,6 +42,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/SwagLyrics/SwagLyrics-For-Spotify";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/synth/default.nix b/nixpkgs/pkgs/tools/misc/synth/default.nix
index 0249491fbde6..8bfca884f1f8 100644
--- a/nixpkgs/pkgs/tools/misc/synth/default.nix
+++ b/nixpkgs/pkgs/tools/misc/synth/default.nix
@@ -4,25 +4,29 @@
 , pkg-config
 , openssl
 , stdenv
+, AppKit
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "synth";
-  version = "0.6.0";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "getsynth";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-i5X2HUOCgY2znH4rDzhFpsPXsFeM7GR4soAO/rFDjjo=";
+    sha256 = "sha256-MeZ5bkOMTJVvaBfGahKsXvaYhfMKcYzPFsBp/p2dPQQ=";
   };
 
-  cargoSha256 = "sha256-47i46Y6JjTGWC7mfMd2x2k8v0SY1o2UHdEU4rF0VrsY=";
+  cargoSha256 = "sha256-lNeDpUla/PfGd/AogdcOtrmL1Jp+0Ji9LH1CF7uOEe0=";
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security;
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
+    AppKit
+    Security
+  ];
 
   # requires unstable rust features
   RUSTC_BOOTSTRAP = 1;
diff --git a/nixpkgs/pkgs/tools/misc/sysz/default.nix b/nixpkgs/pkgs/tools/misc/sysz/default.nix
index 4f5f90d04b0e..bf45983c106a 100644
--- a/nixpkgs/pkgs/tools/misc/sysz/default.nix
+++ b/nixpkgs/pkgs/tools/misc/sysz/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "sysz";
-  version = "1.3.0";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "joehillen";
     repo = pname;
     rev = version;
-    sha256 = "HNwsYE1Cv90IDi3A5PmRv3uHANR3ya+VOGBQ3+zkBLM=";
+    sha256 = "sha256-X9vj6ILPUKFo/i50JNehM2GSDWfxTdroWGYJv765Cm4=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/misc/tea/default.nix b/nixpkgs/pkgs/tools/misc/tea/default.nix
index c968b57c60ad..5ff739c46ba5 100644
--- a/nixpkgs/pkgs/tools/misc/tea/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tea/default.nix
@@ -2,14 +2,14 @@
 
 buildGoModule rec {
   pname = "tea";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitea {
     domain = "gitea.com";
     owner = "gitea";
     repo = "tea";
     rev = "v${version}";
-    sha256 = "sha256-Y/Znj8vVjVt+rs+n8JRQsptq5u17G2D7r98PDxPLyd4=";
+    sha256 = "sha256-LtLel6JfmYr2Zu7g7oBjAqDcl5y7tJL3XGL7gw+kHxU=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/misc/tealdeer/default.nix b/nixpkgs/pkgs/tools/misc/tealdeer/default.nix
index e6b53e3c7583..921cdd677a1b 100644
--- a/nixpkgs/pkgs/tools/misc/tealdeer/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tealdeer/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tealdeer";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "dbrgn";
     repo = "tealdeer";
     rev = "v${version}";
-    sha256 = "1f37qlw4nxdhlqlqzzb4j11gsv26abk2nk2qhbzj77kp4v2b125x";
+    sha256 = "sha256-yF46jCdC4UDswKa/83ZrM9VkZXQqzua2/S7y2bqYa+c=";
   };
 
-  cargoSha256 = "1rjnparpcn8rnqy43xl4gg151p1a0zj9sna600hz01r41g1hgccq";
+  cargoSha256 = "sha256-BIMaVeNSdKl2A9613S+wgmb6YmiF5YJU8pTMVQfjDwI=";
 
   buildInputs = if stdenv.isDarwin then [ Security ] else [ openssl ];
 
diff --git a/nixpkgs/pkgs/tools/misc/termplay/default.nix b/nixpkgs/pkgs/tools/misc/termplay/default.nix
index 80c6341f0253..2d493b857fc1 100644
--- a/nixpkgs/pkgs/tools/misc/termplay/default.nix
+++ b/nixpkgs/pkgs/tools/misc/termplay/default.nix
@@ -11,7 +11,6 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1w7hdqgqr1jgxid3k7f2j52wz31gv8bzr9rsm6xzp7nnihp6i45p";
   };
 
-  cargoBuildFlags = ["--features" "bin"];
   cargoSha256 = "08ip6x4kink244majlk595yh551c2ap3ry58wly994mh8wf6ifwb";
 
   nativeBuildInputs = [ makeWrapper ];
@@ -24,6 +23,8 @@ rustPlatform.buildRustPackage rec {
     libsixel
   ];
 
+  buildFeatures = [ "bin" ];
+
   postInstall = ''
     wrapProgram $out/bin/termplay --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
   '';
diff --git a/nixpkgs/pkgs/tools/misc/tfk8s/default.nix b/nixpkgs/pkgs/tools/misc/tfk8s/default.nix
index 71c6129b0ef9..ee403eaa8e02 100644
--- a/nixpkgs/pkgs/tools/misc/tfk8s/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tfk8s/default.nix
@@ -12,8 +12,7 @@ buildGoModule rec {
     sha256 = "0mkfggwjrsp0rzh7ll6nmp9kqcw4fl8q81vk67z5mbd276dkyxrb";
   };
 
-  vendorSha256 = "sha256-eLPmghs05pMMtys97Ja7YGdVMZmMmiaFeMwzaWNxW0I=";
-  runVend = true;
+  vendorSha256 = "sha256-6sMPpizrjM/UIxrAI2KQJy9uxzsjZGrSlQXjvL4wkQg=";
 
   ldflags = [
     "-s"
@@ -44,6 +43,6 @@ buildGoModule rec {
       * Strip out server side fields when piping kubectl get $R -o yaml | tfk8s --strip
     '';
     homepage = "https://github.com/jrhouston/tfk8s/";
-    maintainers = with maintainers; [ superherointj ];
+    maintainers = with maintainers; [ bryanasdev000 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/thefuck/default.nix b/nixpkgs/pkgs/tools/misc/thefuck/default.nix
index 13509af98c02..a3aa31d4dedd 100644
--- a/nixpkgs/pkgs/tools/misc/thefuck/default.nix
+++ b/nixpkgs/pkgs/tools/misc/thefuck/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildPythonApplication
+{ lib, stdenv, fetchFromGitHub, buildPythonApplication
 , colorama, decorator, psutil, pyte, six
 , go, mock, pytestCheckHook, pytest-mock
 }:
@@ -18,6 +18,23 @@ buildPythonApplication rec {
 
   checkInputs = [ go mock pytestCheckHook pytest-mock ];
 
+  disabledTests = lib.optional stdenv.isDarwin [
+    "test_settings_defaults"
+    "test_from_file"
+    "test_from_env"
+    "test_settings_from_args"
+    "test_get_all_executables_exclude_paths"
+    "test_with_blank_cache"
+    "test_with_filled_cache"
+    "test_when_etag_changed"
+    "test_for_generic_shell"
+    "test_on_first_run"
+    "test_on_run_after_other_commands"
+    "test_when_cant_configure_automatically"
+    "test_when_already_configured"
+    "test_when_successfully_configured"
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/nvbn/thefuck";
     description = "Magnificent app which corrects your previous console command";
diff --git a/nixpkgs/pkgs/tools/misc/timelimit/default.nix b/nixpkgs/pkgs/tools/misc/timelimit/default.nix
new file mode 100644
index 000000000000..22b71ca0f8f4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/timelimit/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitLab, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "timelimit";
+  version = "1.9.2";
+
+  src = fetchFromGitLab {
+    owner = "timelimit";
+    repo = pname;
+    rev = "release/${version}";
+    sha256 = "sha256-5IEAF8zCKaCVH6BAxjoa/2rrue9pRGBBkFzN57d+g+g=";
+  };
+
+  checkInputs = [ perl ];
+  doCheck = true;
+
+  installFlags = [ "PREFIX=$(out)" ];
+  INSTALL_PROGRAM = "install -m755";
+  INSTALL_DATA = "install -m644";
+
+  meta = with lib; {
+    description = "Execute a command and terminates the spawned process after a given time with a given signal";
+    homepage = "https://devel.ringlet.net/sysutils/timelimit/";
+    license = licenses.bsd2;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/timidity/default.nix b/nixpkgs/pkgs/tools/misc/timidity/default.nix
index 368efcf9de30..1f0e68bb9c07 100644
--- a/nixpkgs/pkgs/tools/misc/timidity/default.nix
+++ b/nixpkgs/pkgs/tools/misc/timidity/default.nix
@@ -1,4 +1,7 @@
-{ lib, stdenv, fetchurl, alsa-lib, libjack2, ncurses, pkg-config }:
+{ lib, stdenv, fetchurl
+, pkg-config, buildPackages
+, CoreAudio, alsa-lib, libjack2, ncurses
+}:
 
 stdenv.mkDerivation rec {
   pname = "timidity";
@@ -12,9 +15,32 @@ stdenv.mkDerivation rec {
   patches = [ ./timidity-iA-Oj.patch ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ alsa-lib libjack2 ncurses ];
+  buildInputs = [
+    libjack2
+    ncurses
+  ] ++ lib.optionals stdenv.isLinux [
+    alsa-lib
+  ] ++ lib.optionals stdenv.isDarwin [
+    CoreAudio
+  ];
 
-  configureFlags = [ "--enable-audio=oss,alsa,jack" "--enable-alsaseq" "--with-default-output=alsa" "--enable-ncurses" ];
+  configureFlags = [
+    "--enable-ncurses"
+    "lib_cv_va_copy=yes"
+    "lib_cv___va_copy=yes"
+  ] ++ lib.optionals stdenv.isLinux [
+    "--enable-audio=oss,alsa,jack"
+    "--enable-alsaseq"
+    "--with-default-output=alsa"
+    "lib_cv_va_val_copy=yes"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "--enable-audio=darwin,jack"
+    "lib_cv_va_val_copy=no"
+  ];
+
+  makeFlags = [
+    "AR=${stdenv.cc.targetPrefix}ar"
+  ];
 
   NIX_LDFLAGS = "-ljack -L${libjack2}/lib";
 
@@ -23,18 +49,27 @@ stdenv.mkDerivation rec {
     sha256 = "0lsh9l8l5h46z0y8ybsjd4pf6c22n33jsjvapfv3rjlfnasnqw67";
   };
 
+  preBuild = ''
+    # calcnewt has to be built with the host compiler.
+    ${buildPackages.stdenv.cc}/bin/cc -o timidity/calcnewt -lm timidity/calcnewt.c
+    # Remove dependencies of calcnewt so it doesn't try to remake it.
+    sed -i 's/^\(calcnewt\$(EXEEXT):\).*/\1/g' timidity/Makefile
+  '';
+
   # the instruments could be compressed (?)
   postInstall = ''
     mkdir -p $out/share/timidity/;
     cp ${./timidity.cfg} $out/share/timidity/timidity.cfg
     tar --strip-components=1 -xf $instruments -C $out/share/timidity/
   '';
+  # This fixup step is unnecessary and fails on Darwin
+  dontRewriteSymlinks = stdenv.isDarwin;
 
   meta = with lib; {
     homepage = "https://sourceforge.net/projects/timidity/";
     license = licenses.gpl2;
     description = "A software MIDI renderer";
     maintainers = [ maintainers.marcweber ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/tio/default.nix b/nixpkgs/pkgs/tools/misc/tio/default.nix
index 9b8e76f10c43..b49cfa44c18d 100644
--- a/nixpkgs/pkgs/tools/misc/tio/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tio/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     description = "Serial console TTY";
     homepage = "https://tio.github.io/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ yegortimoshenko ];
+    maintainers = with maintainers; [ yana ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/tldr/default.nix b/nixpkgs/pkgs/tools/misc/tldr/default.nix
index dfde5a9113be..05d3026e76f4 100644
--- a/nixpkgs/pkgs/tools/misc/tldr/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tldr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tldr";
-  version = "1.3.0";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "tldr-pages";
     repo = "tldr-cpp-client";
     rev = "v${version}";
-    sha256 = "10ylpiqc06p0qpma72vwksd7hd107s0vlx9c6s9rz4vc3i274lb6";
+    sha256 = "sha256-dsEqnHIs6vamdfLrkstRcV90tt7QcKIJwrPr+ksTVlQ=";
   };
 
   buildInputs = [ curl libzip ];
diff --git a/nixpkgs/pkgs/tools/misc/topgrade/default.nix b/nixpkgs/pkgs/tools/misc/topgrade/default.nix
index 0c1cea4beed7..99d6a0100e56 100644
--- a/nixpkgs/pkgs/tools/misc/topgrade/default.nix
+++ b/nixpkgs/pkgs/tools/misc/topgrade/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "topgrade";
-  version = "7.1.0";
+  version = "8.1.2";
 
   src = fetchFromGitHub {
     owner = "r-darwish";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-MGu0rQhNEaToPY4o9fz9E3RlvcLKjDq76Mqoq4UeL08=";
+    sha256 = "sha256-2ID3VVT4cQ1yZAD2WVKqkoE7qbe2nNMp1nlwfTxmlZo=";
   };
 
-  cargoSha256 = "sha256-Nx0Mw+V8Hgtioi77sk7p/lq6KGJQ3zRXWMNEIzT4Xn8=";
+  cargoSha256 = "sha256-o1V6u7FmP+p+ApL0AmaqTQTZ2f0sZTpx2ro4lR/DFi8=";
 
   buildInputs = lib.optional stdenv.isDarwin Foundation;
 
diff --git a/nixpkgs/pkgs/tools/misc/topicctl/default.nix b/nixpkgs/pkgs/tools/misc/topicctl/default.nix
new file mode 100644
index 000000000000..0a51eda48570
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/topicctl/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "topicctl";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "segmentio";
+    repo = "topicctl";
+    rev = "v${version}";
+    sha256 = "sha256-bCTlKhYmMe89dYuLiZ58CPpYZiXSGqbddxugsZS5/Cs=";
+  };
+
+  vendorSha256 = "sha256-1VRK8tmsbOuP5t5uJ1h+KPcS4K9D+y6UQKeUP2HPXrQ=";
+
+  ldflags = [
+    "-X main.BuildVersion=${version}"
+    "-X main.BuildCommitSha=unknown"
+    "-X main.BuildDate=unknown"
+  ];
+
+  # needs a kafka server
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A tool for easy, declarative management of Kafka topics";
+    inherit (src.meta) homepage;
+    license = licenses.mit;
+    maintainers = with maintainers; [ eskytthe srhb ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/toybox/default.nix b/nixpkgs/pkgs/tools/misc/toybox/default.nix
index 0f41f15d9fdb..07c875a94ccd 100644
--- a/nixpkgs/pkgs/tools/misc/toybox/default.nix
+++ b/nixpkgs/pkgs/tools/misc/toybox/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "toybox";
-  version = "0.8.5";
+  version = "0.8.6";
 
   src = fetchFromGitHub {
     owner = "landley";
     repo = pname;
     rev = version;
-    sha256 = "sha256-32LQiPsBjBh5LpRZuaYT+Dr/oETNTQERGqrpwWPhMTo=";
+    sha256 = "sha256-NbONJten685wekfCwbOOQxdS3B2/Ljfp/jdTa7D4U+M=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ]; # needed for cross
diff --git a/nixpkgs/pkgs/tools/misc/trac/default.nix b/nixpkgs/pkgs/tools/misc/trac/default.nix
deleted file mode 100644
index 1d0f9a5d8288..000000000000
--- a/nixpkgs/pkgs/tools/misc/trac/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ lib
-, buildPythonApplication
-, fetchPypi
-, Babel
-, docutils
-, pygments
-, pytz
-, jinja2
-, pysqlite
-, psycopg2
-, pymysql
-, git
-, setuptools
-}:
-
-
-buildPythonApplication rec {
-  pname = "trac";
-  version = "1.4.1";
-
-  src = fetchPypi {
-    inherit version;
-    pname = "Trac";
-    sha256 = "0d61ypn0j9wb8119bj3pj7s8swfjykdl0sz398p92k9bvxh4dayz";
-  };
-
-  prePatch = ''
-    # Removing the date format tests as they are outdated
-    substituteInPlace trac/util/tests/__init__.py \
-      --replace "suite.addTest(datefmt.test_suite())" ""
-    # Removing Pygments tests as per https://trac.edgewall.org/ticket/13229
-    substituteInPlace trac/mimeview/tests/__init__.py \
-      --replace "suite.addTest(pygments.test_suite())" ""
-  '';
-
-  propagatedBuildInputs = [
-    Babel
-    docutils
-    pygments
-    pytz
-    jinja2
-    pysqlite
-    psycopg2
-    pymysql
-    git
-    setuptools
-  ];
-
-  meta = with lib; {
-    description = "Integrated SCM, wiki, issue tracker and project environment";
-    homepage = "https://trac.edgewall.org/";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ mmahut ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/misc/trash-cli/default.nix b/nixpkgs/pkgs/tools/misc/trash-cli/default.nix
index 5824e9cc4952..5cbda62e51b4 100644
--- a/nixpkgs/pkgs/tools/misc/trash-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/trash-cli/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "trash-cli";
-  version = "0.21.7.24";
+  version = "0.21.10.24";
 
   src = fetchFromGitHub {
     owner = "andreafrancia";
     repo = "trash-cli";
     rev = version;
-    sha256 = "082mfl4mza4xkm3fdn5aka9rsbd8c149qj3cqqk62idrnszmgzg5";
+    sha256 = "01is32lk6prwhajvlmgn3xs4fcpmiqivizcqkj9k80jx6mqjifzs";
   };
 
   propagatedBuildInputs = [ python3Packages.psutil ];
diff --git a/nixpkgs/pkgs/tools/misc/trillian/default.nix b/nixpkgs/pkgs/tools/misc/trillian/default.nix
index 9959fe9375be..f86ad7a909a6 100644
--- a/nixpkgs/pkgs/tools/misc/trillian/default.nix
+++ b/nixpkgs/pkgs/tools/misc/trillian/default.nix
@@ -5,14 +5,14 @@
 
 buildGoModule rec {
   pname = "trillian";
-  version = "1.3.13";
-  vendorSha256 = "1ad0vaw0k57njzk9x233iqjbplyvw66qjk8r9j7sx87pdc6a4lpb";
+  version = "1.4.0";
+  vendorSha256 = "sha256-n5PD3CGgNGrqSYLJS+3joGFNue2fF/tdimC6CtO15yU=";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ns394yd4js9g1psd1dkrffidyzixqvjp5lhw2x2iycrxbnm3y44";
+    sha256 = "sha256-c7Sii6GMWZOeD46OwdkXU/wt9zY+EyPSnahYPJQKJcA=";
   };
 
   subPackages = [
diff --git a/nixpkgs/pkgs/tools/misc/tty-clock/default.nix b/nixpkgs/pkgs/tools/misc/tty-clock/default.nix
index b6cca5fe5c33..dc802a6fe0f8 100644
--- a/nixpkgs/pkgs/tools/misc/tty-clock/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tty-clock/default.nix
@@ -1,16 +1,27 @@
-{ lib, stdenv, fetchFromGitHub, ncurses, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "tty-clock";
-  version = "2.3";
+  version = "2.3+unstable=2021-04-07";
 
   src = fetchFromGitHub {
     owner = "xorg62";
     repo = "tty-clock";
-    rev = "v${version}";
-    sha256 = "16v3pmva13skpfjja96zacjpxrwzs1nb1iqmrp2qzvdbcm9061pp";
+    # Use unreleased version to pull in fix for ncurses-6.3
+    rev = "9e00c32098524c30dac4dab701f7e33f8bc7c880";
+    sha256 = "14jrzz06jr29887bxgad1x6kd26c2fnqrc26864wqm3838fpcqw0";
   };
 
+  patches = [
+    # Pull upstream patch pending inclusion fir more ncurses-6.3 fixes:
+    #  https://github.com/xorg62/tty-clock/pull/100
+    (fetchpatch {
+      name = "ncurses-6.2.patch";
+      url = "https://github.com/xorg62/tty-clock/commit/4cfd73080da1964557484da620c401745d73881c.patch";
+      sha256 = "13pj1v6yrfc4vynsa746974kixfxxsy2jzzpl73c8bp7msr9d3md";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ ncurses ];
 
diff --git a/nixpkgs/pkgs/tools/misc/tz/default.nix b/nixpkgs/pkgs/tools/misc/tz/default.nix
index c46137bd9e5a..8148dfdec702 100644
--- a/nixpkgs/pkgs/tools/misc/tz/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tz/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tz";
-  version = "0.5";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "oz";
     repo = "tz";
     rev = "v${version}";
-    sha256 = "sha256-OwjhV3n1B1yQTNYm4VOW500t0524g85YYiOAAu9yPeo=";
+    sha256 = "sha256-D0rakLZ+swrDwBMcr+EJPgaYsQTWob50QteW1PoIdNk=";
   };
 
-  vendorSha256 = "sha256-Soa87I7oMa34LjYKxNAz9Limi0kQ6JUtb/zI4G7yZnw=";
+  vendorSha256 = "sha256-gMHPWf/kFb55GyyMciLWRzvrQXUGDQ72RNkIhkMVe54=";
 
   meta = with lib; {
     description = "A time zone helper";
diff --git a/nixpkgs/pkgs/tools/misc/upterm/default.nix b/nixpkgs/pkgs/tools/misc/upterm/default.nix
index 2f504a0cef8c..00c6441cffe9 100644
--- a/nixpkgs/pkgs/tools/misc/upterm/default.nix
+++ b/nixpkgs/pkgs/tools/misc/upterm/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "upterm";
-  version = "0.6.5";
+  version = "0.6.7";
 
   src = fetchFromGitHub {
     owner = "owenthereal";
     repo = "upterm";
     rev = "v${version}";
-    sha256 = "sha256-wzDK7iQN/z/M1mTKPCH3c+OjFsavplV/0oMiOe5thuI=";
+    sha256 = "sha256-JxyrH48CXaaa+LkTpUPsT9aq95IuuvDoyfZndrSF1IA=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix b/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix
index 8abfb077596a..628106067553 100644
--- a/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix
@@ -12,19 +12,19 @@
 
 stdenv.mkDerivation rec {
   pname = "uutils-coreutils";
-  version = "0.0.7";
+  version = "0.0.8";
 
   src = fetchFromGitHub {
     owner = "uutils";
     repo = "coreutils";
     rev = version;
-    sha256 = "sha256-XI6061nCVyL8Q1s+QH75IesneJNhbhxGnILZxQCa5LU=";
+    sha256 = "0hx5ypy58d182gxpgs0dxcw03pdgvrcikbhczg6yqpdjjh7163as";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-bfwWyeuslLjh4OCt+H8CM8hCrRFqlibOS8gS64lysa0=";
+    hash = "sha256:1ynw97dr40yg18jaqgvz3shs0s0j6pvvlkrbka2ganiv8c9fvbyw";
   };
 
   nativeBuildInputs = [ rustPlatform.cargoSetupHook sphinx ];
diff --git a/nixpkgs/pkgs/tools/misc/uwufetch/default.nix b/nixpkgs/pkgs/tools/misc/uwufetch/default.nix
new file mode 100644
index 000000000000..c728a0c8dbee
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/uwufetch/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, makeWrapper, viu }:
+
+stdenv.mkDerivation rec {
+  pname = "uwufetch";
+  version = "1.7";
+
+  src = fetchFromGitHub {
+    owner = "TheDarkBug";
+    repo = pname;
+    rev = version;
+    hash = "sha256-6yfRWFKdg7wM18hD2Bn095HzpnURhZJtx+SYx8SVBLA=";
+  };
+
+  patches = [
+    # cannot find images in /usr
+    ./fix-paths.patch
+    # https://github.com/TheDarkBug/uwufetch/pull/150
+    (fetchpatch {
+      url = "https://github.com/lourkeur/uwufetch/commit/de561649145b57d8750843555e4ffbc1cbcb01f0.patch";
+      sha256 = "sha256-KR81zxGlmthcadYBdsiVwxa5+lZUtqP7w0O4uFuputE=";
+    })
+  ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installFlags = [
+    "PREFIX=${placeholder "out"}/bin"
+    "LIBDIR=${placeholder "out"}/lib"
+    "MANDIR=${placeholder "out"}/share/man/man1"
+  ];
+
+  postPatch = ''
+    substituteAllInPlace uwufetch.c
+  '';
+
+  postFixup = ''
+    wrapProgram $out/bin/uwufetch \
+      --prefix PATH ":" ${lib.makeBinPath [ viu ]}
+  '';
+
+  meta = with lib; {
+    description = "A meme system info tool for Linux";
+    homepage = "https://github.com/TheDarkBug/uwufetch";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ lourkeur ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/uwufetch/fix-paths.patch b/nixpkgs/pkgs/tools/misc/uwufetch/fix-paths.patch
new file mode 100644
index 000000000000..e79c2a1fb9d0
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/uwufetch/fix-paths.patch
@@ -0,0 +1,22 @@
+diff --git a/uwufetch.c b/uwufetch.c
+index 75863a2..ab31dda 100644
+--- a/uwufetch.c
++++ b/uwufetch.c
+@@ -921,7 +921,7 @@ void print_ascii()
+ 		}
+ 		else
+ 		{
+-			sprintf(ascii_file, "/usr/lib/uwufetch/ascii/%s.txt", version_name);
++			sprintf(ascii_file, "@out@/lib/uwufetch/ascii/%s.txt", version_name);
+ 		}
+ 		file = fopen(ascii_file, "r");
+ 		if (!file)
+@@ -1220,7 +1220,7 @@ void print_image()
+ 		if (strcmp(version_name, "android") == 0)
+ 			sprintf(command, "viu -t -w 18 -h 8 /data/data/com.termux/files/usr/lib/uwufetch/%s.png 2> /dev/null", version_name);
+ 		else
+-			sprintf(command, "viu -t -w 18 -h 8 /usr/lib/uwufetch/%s.png 2> /dev/null", version_name);
++			sprintf(command, "viu -t -w 18 -h 8 @out@/lib/uwufetch/%s.png 2> /dev/null", version_name);
+ 	}
+ 	printf("\n");
+ 	if (system(command) != 0)
diff --git a/nixpkgs/pkgs/tools/misc/uwuify/default.nix b/nixpkgs/pkgs/tools/misc/uwuify/default.nix
index b276abf3e5ce..2722610d0e3f 100644
--- a/nixpkgs/pkgs/tools/misc/uwuify/default.nix
+++ b/nixpkgs/pkgs/tools/misc/uwuify/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
     description = "Fast text uwuifier";
     homepage = "https://github.com/Daniel-Liu-c0deb0t/uwu";
     license = licenses.mit;
+    platforms = lib.platforms.x86; # uses SSE instructions
     maintainers = with maintainers; [ siraben ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/vector/default.nix b/nixpkgs/pkgs/tools/misc/vector/default.nix
index cf76462eb612..379c89621016 100644
--- a/nixpkgs/pkgs/tools/misc/vector/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vector/default.nix
@@ -14,6 +14,7 @@
 , coreutils
 , CoreServices
 , tzdata
+, cmake
   # kafka is optional but one of the most used features
 , enableKafka ? true
   # TODO investigate adding "api" "api-client" "vrl-cli" and various "vendor-*"
@@ -22,23 +23,26 @@
 , features ? ([ "sinks" "sources" "transforms" ]
     # the second feature flag is passed to the rdkafka dependency
     # building on linux fails without this feature flag (both x86_64 and AArch64)
-    ++ (lib.optionals enableKafka [ "rdkafka-plain" "rdkafka/dynamic_linking" ])
-    ++ (lib.optional stdenv.targetPlatform.isUnix "unix"))
+    ++ lib.optionals enableKafka [ "rdkafka-plain" "rdkafka/dynamic_linking" ]
+    ++ lib.optional stdenv.targetPlatform.isUnix "unix")
 }:
 
-rustPlatform.buildRustPackage rec {
+let
   pname = "vector";
-  version = "0.16.1";
+  version = "0.19.0";
+in
+rustPlatform.buildRustPackage {
+  inherit pname version;
 
   src = fetchFromGitHub {
     owner = "timberio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-10e0cWt6XW8msNR/RXbaOpdwTAlRLm6jVvDed905rho=";
+    sha256 = "sha256-A+Ok/BNEs0V00B8P6ghSHZ2pQ8tumfpkurplnvjpWZ8=";
   };
 
-  cargoSha256 = "sha256-ezQ/tX/uKzJprLQt2xIUZwGuUOmuRmTO+gPsf3MLEv8=";
-  nativeBuildInputs = [ pkg-config ];
+  cargoSha256 = "sha256-B9z+8TqAl0yFaou1LfNcFsDJjw7qGti6MakDPhz49tc=";
+  nativeBuildInputs = [ pkg-config cmake ];
   buildInputs = [ oniguruma openssl protobuf rdkafka zstd ]
     ++ lib.optionals stdenv.isDarwin [ Security libiconv coreutils CoreServices ];
 
@@ -48,23 +52,28 @@ rustPlatform.buildRustPackage rec {
   RUSTONIG_SYSTEM_LIBONIG = true;
   LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
 
-  cargoBuildFlags = [ "--no-default-features" "--features" (lib.concatStringsSep "," features) ];
+  TZDIR = "${tzdata}/share/zoneinfo";
+
+  buildNoDefaultFeatures = true;
+  buildFeatures = features;
+
   # TODO investigate compilation failure for tests
   # dev dependency includes httpmock which depends on iashc which depends on curl-sys with http2 feature enabled
   # compilation fails because of a missing http2 include
   doCheck = !stdenv.isDarwin;
-  # healthcheck_grafana_cloud is trying to make a network access
-  # test_stream_errors is flaky on linux-aarch64
-  # tcp_with_tls_intermediate_ca is flaky on linux-x86_64
-  checkPhase = ''
-    TZDIR=${tzdata}/share/zoneinfo cargo test \
-      --no-default-features \
-      --features ${lib.concatStringsSep "," features} \
-      -- --test-threads 1 \
-      --skip=sinks::loki::tests::healthcheck_grafana_cloud \
-      --skip=kubernetes::api_watcher::tests::test_stream_errors \
-      --skip=sources::socket::test::tcp_with_tls_intermediate_ca
-  '';
+
+  checkFlags = [
+    # tries to make a network access
+    "--skip=sinks::loki::tests::healthcheck_grafana_cloud"
+
+    # flaky on linux-aarch64
+    "--skip=kubernetes::api_watcher::tests::test_stream_errors"
+
+    # flaky on linux-x86_64
+    "--skip=sources::socket::test::tcp_with_tls_intermediate_ca"
+
+    "--skip=sources::host_metrics::cgroups::tests::generates_cgroups_metrics"
+  ];
 
   # recent overhauls of DNS support in 0.9 mean that we try to resolve
   # vector.dev during the checkPhase, which obviously isn't going to work.
diff --git a/nixpkgs/pkgs/tools/misc/veikk-linux-driver-gui/default.nix b/nixpkgs/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
index a833846dd00f..1c7dfd20330c 100644
--- a/nixpkgs/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
+++ b/nixpkgs/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
@@ -1,12 +1,12 @@
 { lib, mkDerivation, fetchFromGitHub, gnumake, qmake }:
 
 mkDerivation rec {
-  name = "veikk-linux-driver-gui";
+  pname = "veikk-linux-driver-gui";
   version = "2.0";
 
   src = fetchFromGitHub {
     owner = "jlam55555";
-    repo = name;
+    repo = pname;
     rev = "v${version}";
     sha256 = "02g1q79kwjlzg95w38a1d7nxvcry8xcsvhax2js4c7xqvzhkki5j";
   };
diff --git a/nixpkgs/pkgs/tools/misc/vial/default.nix b/nixpkgs/pkgs/tools/misc/vial/default.nix
index 5685141e4465..7bc788031675 100644
--- a/nixpkgs/pkgs/tools/misc/vial/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vial/default.nix
@@ -1,12 +1,12 @@
 { lib, fetchurl, appimageTools }:
 let
   name = "vial-${version}";
-  version = "0.4.1";
+  version = "0.4.2";
   pname = "Vial";
 
   src = fetchurl {
     url = "https://github.com/vial-kb/vial-gui/releases/download/v${version}/${pname}-v${version}-x86_64.AppImage";
-    sha256 = "sha256-aN0wvgahWPNSXP/JmV1JWaEnARIOTyRdz1ko6eC7Y5s=";
+    sha256 = "sha256-T3aSwv/qTJHR/Fa6qU1fWbp3duvny4lC+9jBwQzpw2w=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit name src; };
@@ -24,7 +24,7 @@ appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "An Open-source cross-platform (Windows, Linux and Mac) GUI and a QMK fork for configuring your keyboard in real time";
+    description = "An Open-source QMK GUI fork for configuring your keyboard in real time";
     homepage = "https://get.vial.today";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ kranzes ];
diff --git a/nixpkgs/pkgs/tools/misc/viddy/default.nix b/nixpkgs/pkgs/tools/misc/viddy/default.nix
index 1b9158df1ae3..4b65a63431bd 100644
--- a/nixpkgs/pkgs/tools/misc/viddy/default.nix
+++ b/nixpkgs/pkgs/tools/misc/viddy/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "viddy";
-  version = "0.3.1";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "sachaos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18ms4kfv332863vd8b7mmrz39y4b8gvhi6lx9x5385jfzd19w5wx";
+    sha256 = "sha256-V/x969wi5u5ND9QgJfc4vtI2t1G1ETlATzeqnpHMncc=";
   };
 
-  vendorSha256 = "0789wq4d9cynyadvlwahs4586gc3p78gdpv5wf733lpv1h5rjbv3";
+  vendorSha256 = "sha256-iSgFDTNeRPpCMxNqj2LhYV+6/eskGa58e+rT0Nhg+pE=";
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/tools/misc/vimpager/build.nix b/nixpkgs/pkgs/tools/misc/vimpager/build.nix
index a610a461656c..c77f623c5dcd 100644
--- a/nixpkgs/pkgs/tools/misc/vimpager/build.nix
+++ b/nixpkgs/pkgs/tools/misc/vimpager/build.nix
@@ -2,6 +2,7 @@
 , fetchFromGitHub
 , coreutils
 , sharutils
+, runtimeShell
 , version
 , sha256
 }:
diff --git a/nixpkgs/pkgs/tools/misc/vimpager/latest.nix b/nixpkgs/pkgs/tools/misc/vimpager/latest.nix
index c98b9a000147..4ea8d5be57fd 100644
--- a/nixpkgs/pkgs/tools/misc/vimpager/latest.nix
+++ b/nixpkgs/pkgs/tools/misc/vimpager/latest.nix
@@ -1,7 +1,10 @@
-{ callPackage }:
+{ callPackage, runtimeShell }:
 
-callPackage ./build.nix {
+(callPackage ./build.nix {
   version = "a4da4dfac44d1bbc6986c5c76fea45a60ebdd8e5";
   sha256  = "0gcjpw2q263hh8w2sjvq3f3k2d28qpkkv0jnl8hw1l7v604i8zxg";
-}
-
+}).overrideAttrs (old: {
+  postPatch = old.postPatch or "" + ''
+    echo 'echo ${runtimeShell}' > scripts/find_shell
+  '';
+})
diff --git a/nixpkgs/pkgs/tools/misc/vimwiki-markdown/default.nix b/nixpkgs/pkgs/tools/misc/vimwiki-markdown/default.nix
index 18adf99b9c99..3375b86df0fc 100644
--- a/nixpkgs/pkgs/tools/misc/vimwiki-markdown/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vimwiki-markdown/default.nix
@@ -6,12 +6,12 @@
 }:
 
 buildPythonApplication rec {
-  version = "0.3.3";
+  version = "0.4.0";
   pname = "vimwiki-markdown";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "ee4ef08f7e4df27f67ffebb5fa413a7cf4fad967a248c1c75d48b00122a5b945";
+    sha256 = "e898c58fa6ecbb7474738d79c44db2b6ab3adfa958bffe80089194c2a70b1ec0";
   };
 
   propagatedBuildInputs= [
diff --git a/nixpkgs/pkgs/tools/misc/wakatime/default.nix b/nixpkgs/pkgs/tools/misc/wakatime/default.nix
index e8bd12d567b6..5cd52a6a4ac3 100644
--- a/nixpkgs/pkgs/tools/misc/wakatime/default.nix
+++ b/nixpkgs/pkgs/tools/misc/wakatime/default.nix
@@ -1,26 +1,17 @@
-{ lib, python3Packages, fetchFromGitHub, glibcLocales }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-with python3Packages;
-buildPythonApplication rec {
+buildGoModule rec {
   pname = "wakatime";
-  version = "13.0.7";
+  version = "1.18.7";
 
   src = fetchFromGitHub {
     owner = "wakatime";
-    repo = "wakatime";
-    rev = version;
-    sha256 = "1rnapzaabg962wxrmfcq9lxz0yyqd3mxqbx3dq1ih4w33lf4fi8d";
+    repo = "wakatime-cli";
+    rev = "v${version}";
+    sha256 = "171x4pixmh5ni89iawdjl1fk9gr10bgp5bnslpskhspcqzyl1y5b";
   };
 
-  # needs more dependencies from https://github.com/wakatime/wakatime/blob/191b302bfb5f272ae928c6d3867d06f3dfcba4a8/dev-requirements.txt
-  # especially nose-capturestderr, which we do not package yet.
-  doCheck = false;
-  checkInputs = [ mock testfixtures pytest glibcLocales ];
-
-  checkPhase = ''
-    export HOME=$(mktemp -d) LC_ALL=en_US.utf-8
-    pytest tests
-  '';
+  vendorSha256 = "01c2vbnafhhm345nyfmvbvj5mga6laf9w46lhh0flq6kdgdw168s";
 
   meta = with lib; {
     inherit (src.meta) homepage;
diff --git a/nixpkgs/pkgs/tools/misc/websocat/default.nix b/nixpkgs/pkgs/tools/misc/websocat/default.nix
index 7ba2accc6787..99714df0e81a 100644
--- a/nixpkgs/pkgs/tools/misc/websocat/default.nix
+++ b/nixpkgs/pkgs/tools/misc/websocat/default.nix
@@ -3,22 +3,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "websocat";
-  version = "1.8.0";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "vi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jwoWxK4phBqhIeo3+oRnpGsfvtn9gTR1ryd4N+0Lmbw=";
+    sha256 = "sha256-aQWLsdYHmju7tCJfg3a1aOlFYui7qsQ8vJfhyMawXWo=";
   };
 
-  cargoBuildFlags = [ "--features=ssl" ];
-  cargoSha256 = "sha256-+3SG1maarY4DJ4+QiYGwltGLksOoOhKtcqstRwgzi2k=";
+  cargoSha256 = "sha256-b/B+K/LMP1XK1QEtFKY4nmy2fAqEmLTN+qL+XlrqA5w=";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
   buildInputs = [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
 
+  buildFeatures = [ "ssl" ];
+
   # Needed to get openssl-sys to use pkg-config.
   OPENSSL_NO_VENDOR=1;
 
diff --git a/nixpkgs/pkgs/tools/misc/wlc/default.nix b/nixpkgs/pkgs/tools/misc/wlc/default.nix
index dd7c5f7942f8..2bac81fd3ca0 100644
--- a/nixpkgs/pkgs/tools/misc/wlc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/wlc/default.nix
@@ -18,7 +18,6 @@ buildPythonPackage rec {
     python-dateutil
     requests
     pyxdg
-    pre-commit
     responses
     twine
   ];
diff --git a/nixpkgs/pkgs/tools/misc/woeusb-ng/default.nix b/nixpkgs/pkgs/tools/misc/woeusb-ng/default.nix
new file mode 100644
index 000000000000..6f922afdf37a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/woeusb-ng/default.nix
@@ -0,0 +1,32 @@
+{ lib, python3Packages, fetchFromGitHub, p7zip, parted, grub2 }:
+with python3Packages;
+
+buildPythonApplication rec {
+  pname = "woeusb-ng";
+  version = "0.2.10";
+
+  propagatedBuildInputs = [ p7zip parted grub2 termcolor wxPython_4_0 six ];
+
+  src = fetchFromGitHub {
+    owner = "WoeUSB";
+    repo = "WoeUSB-ng";
+    rev = "v${version}";
+    sha256 = "sha256-Nsdk3SMRzj1fqLrp5Na5V3rRDMcIReL8uDb8K2GQNWI=";
+  };
+
+  postInstall = ''
+    # TODO: the gui requires additional polkit-actions to work correctly, therefore it is currently disabled
+    rm $out/bin/woeusbgui
+  '';
+
+  # checks fail, because of polkit-actions and should be reenabled when the gui is fixed.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A tool to create a Windows USB stick installer from a real Windows DVD or image";
+    homepage = "https://github.com/WoeUSB/WoeUSB-ng";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ stunkymonkey ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/woeusb/default.nix b/nixpkgs/pkgs/tools/misc/woeusb/default.nix
index 23d1f9cccbe4..a1d371eafd49 100644
--- a/nixpkgs/pkgs/tools/misc/woeusb/default.nix
+++ b/nixpkgs/pkgs/tools/misc/woeusb/default.nix
@@ -2,14 +2,14 @@
 , coreutils, dosfstools, findutils, gawk, gnugrep, grub2_light, ncurses, ntfs3g, parted, p7zip, util-linux, wimlib, wget }:
 
 stdenv.mkDerivation rec {
-  version = "5.1.2";
+  version = "5.2.4";
   pname = "woeusb";
 
   src = fetchFromGitHub {
     owner = "WoeUSB";
     repo = "WoeUSB";
     rev = "v${version}";
-    sha256 = "sha256-7NuUCo1uN6RZIpdDJFZr1DULrr4UNcXdPzx9A5t79O8=";
+    sha256 = "sha256-HB1E7rP/U58dyL3j6YnhF5AOGAcHqmA/ZZ5JNBDibco=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/misc/x11idle/default.nix b/nixpkgs/pkgs/tools/misc/x11idle/default.nix
index cd1c11dbdb64..ee64f69897d2 100644
--- a/nixpkgs/pkgs/tools/misc/x11idle/default.nix
+++ b/nixpkgs/pkgs/tools/misc/x11idle/default.nix
@@ -1,9 +1,8 @@
 { lib, stdenv, fetchurl, libXScrnSaver, libX11 }:
 
 stdenv.mkDerivation rec {
-
   version = "9.2.4";
-  name = "x11idle-org-${version}";
+  pname = "x11idle-org";
 
   src = fetchurl {
     url = "https://code.orgmode.org/bzg/org-mode/raw/release_${version}/contrib/scripts/x11idle.c";
diff --git a/nixpkgs/pkgs/tools/misc/xcp/default.nix b/nixpkgs/pkgs/tools/misc/xcp/default.nix
index 907e39a3f27b..4b649aecb698 100644
--- a/nixpkgs/pkgs/tools/misc/xcp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/xcp/default.nix
@@ -20,6 +20,6 @@ rustPlatform.buildRustPackage rec {
     description = "An extended cp(1)";
     homepage = "https://github.com/tarka/xcp";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ legendofmiracles ];
+    maintainers = with maintainers; [ lom ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/xmlbeans/default.nix b/nixpkgs/pkgs/tools/misc/xmlbeans/default.nix
new file mode 100644
index 000000000000..ce174b195412
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/xmlbeans/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchzip, jre_headless }:
+
+stdenv.mkDerivation rec {
+  pname = "xmlbeans";
+  version = "5.0.2-20211014";
+
+  src = fetchzip {
+    url = "https://dlcdn.apache.org/poi/xmlbeans/release/bin/xmlbeans-bin-${version}.zip";
+    sha256 = "sha256-1o0kfBMhka/Midtg+GzpVDDygixL6mrfxtY5WrjLN+0=";
+  };
+
+  postPatch = ''
+    rm bin/*.cmd
+    substituteInPlace bin/dumpxsb \
+      --replace 'echo `dirname $0`' ""
+
+    substituteInPlace bin/_setlib \
+      --replace 'echo XMLBEANS_LIB=$XMLBEANS_LIB' ""
+
+    for file in bin/*; do
+      substituteInPlace $file \
+        --replace "java " "${jre_headless}/bin/java "
+    done
+  '';
+
+  installPhase = ''
+    mkdir -p $out
+    chmod +x bin/*
+    cp -r bin/ lib/ $out/
+  '';
+
+  meta = with lib; {
+    description = "Java library for accessing XML by binding it to Java types";
+    homepage = "https://xmlbeans.apache.org/";
+    downloadPage = "https://dlcdn.apache.org/poi/xmlbeans/release/bin/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/xxv/default.nix b/nixpkgs/pkgs/tools/misc/xxv/default.nix
index 99a8193c6ca7..e5852e5f51b0 100644
--- a/nixpkgs/pkgs/tools/misc/xxv/default.nix
+++ b/nixpkgs/pkgs/tools/misc/xxv/default.nix
@@ -25,7 +25,8 @@ rustPlatform.buildRustPackage rec {
 
   # I'm picking pancurses for Windows simply because that's the example given in Cursive's
   # documentation for picking an alternative backend. We could just as easily pick crossterm.
-  cargoBuildFlags = lib.optionals (!useNcurses) [ "--no-default-features" "--features pancurses-backend" ];
+  buildNoDefaultFeatures = !useNcurses;
+  buildFeatures = lib.optional (!useNcurses) "pancurses-backend";
 
   meta = with lib; {
     description = "A visual hex viewer for the terminal";
diff --git a/nixpkgs/pkgs/tools/misc/you-get/default.nix b/nixpkgs/pkgs/tools/misc/you-get/default.nix
index dd2115f99bff..a08fdcb1dd2c 100644
--- a/nixpkgs/pkgs/tools/misc/you-get/default.nix
+++ b/nixpkgs/pkgs/tools/misc/you-get/default.nix
@@ -1,8 +1,8 @@
-{ lib, buildPythonApplication, fetchPypi }:
+{ lib, buildPythonApplication, fetchPypi, installShellFiles }:
 
 buildPythonApplication rec {
   pname = "you-get";
-  version = "0.4.1545";
+  version = "0.4.1555";
 
   # Tests aren't packaged, but they all hit the real network so
   # probably aren't suitable for a build environment anyway.
@@ -10,14 +10,23 @@ buildPythonApplication rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "63e9b0527424c565303fe3d8ede1cd35d48a4ecf4afe72e1c12b0e90b9fdcd39";
+    sha256 = "99282aca720c7ee1d9ef4b63bbbd226e906ea170b789a459fafd5b0627b0b15f";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installShellCompletion --cmd you-get \
+      --zsh contrib/completion/_you-get \
+      --fish contrib/completion/you-get.fish \
+      --bash contrib/completion/you-get-completion.bash
+  '';
+
   meta = with lib; {
     description = "A tiny command line utility to download media contents from the web";
     homepage = "https://you-get.org";
+    changelog = "https://github.com/soimort/you-get/raw/v${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ ryneeverett ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix b/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
index 680000b33713..4673ab41654e 100644
--- a/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, buildPythonPackage
+{ lib, fetchurl, fetchpatch, buildPythonPackage
 , zip, ffmpeg, rtmpdump, phantomjs2, atomicparsley, pycryptodome, pandoc
 # Pandoc is required to build the package's man page. Release tarballs contain a
 # formatted man page already, though, it will still be installed. We keep the
@@ -18,13 +18,27 @@ buildPythonPackage rec {
   # The websites youtube-dl deals with are a very moving target. That means that
   # downloads break constantly. Because of that, updates should always be backported
   # to the latest stable release.
-  version = "2021.06.06";
+  version = "2021.12.17";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1hqan9h55x9gfdakw554vic68w9gpvhblchwxlw265zxp56hxjrw";
+    sha256 = "sha256-nzuZyLd4RVFltFJfIVBehsf/Vl86wxnhlzPYEBlBNd8=";
   };
 
+  patches = [
+    # Fixes throttling on youtube.com. Without the patch downloads are capped at
+    # about 80KiB/s. See, e.g.,
+    #
+    #   https://github.com/ytdl-org/youtube-dl/issues/29326
+    #
+    # The patch comes from PR https://github.com/ytdl-org/youtube-dl/pull/30188
+    (fetchpatch {
+      name = "fix-youtube-dl-speed.patch";
+      url = "https://github.com/ytdl-org/youtube-dl/pull/30188.patch";
+      sha256 = "15liban37ina2y4bnykfdywdy4rbkfff2r6vd0kqn2k7rfkcczyz";
+    })
+  ];
+
   nativeBuildInputs = [ installShellFiles makeWrapper ];
   buildInputs = [ zip ] ++ lib.optional generateManPage pandoc;
   propagatedBuildInputs = lib.optional hlsEncryptedSupport pycryptodome;
@@ -63,6 +77,6 @@ buildPythonPackage rec {
     '';
     license = licenses.publicDomain;
     platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ bluescreen303 phreedom AndersonTorres fpletz ma27 ];
+    maintainers = with maintainers; [ bluescreen303 AndersonTorres fpletz ma27 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/yt-dlp/default.nix b/nixpkgs/pkgs/tools/misc/yt-dlp/default.nix
index c5ae63527253..b8e838b4d228 100644
--- a/nixpkgs/pkgs/tools/misc/yt-dlp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yt-dlp/default.nix
@@ -20,12 +20,12 @@ buildPythonPackage rec {
   # The websites yt-dlp deals with are a very moving target. That means that
   # downloads break constantly. Because of that, updates should always be backported
   # to the latest stable release.
-  version = "2021.10.10";
+  version = "2021.12.27";
 
   src = fetchPypi {
     inherit pname;
     version = builtins.replaceStrings [ ".0" ] [ "." ] version;
-    sha256 = "sha256-zJYhHo5V67tI0uZgnA0JQlB+tUcbLOdOOPe5X41wpOc=";
+    sha256 = "sha256-IkTfN1l1FIfnlrI7ZyFr7pjnCDKjpDwlJrCw4Lv7y1s=";
   };
 
   propagatedBuildInputs = [ websockets mutagen ]
diff --git a/nixpkgs/pkgs/tools/misc/ytarchive/default.nix b/nixpkgs/pkgs/tools/misc/ytarchive/default.nix
new file mode 100644
index 000000000000..ef4d212a6201
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/ytarchive/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "ytarchive";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "Kethsar";
+    repo = "ytarchive";
+    rev = "v${version}";
+    sha256 = "sha256-7D92xKxU2WBMDJSY5uFKDbLHWlyT761xuZDiBJ1GxE4=";
+  };
+
+  vendorSha256 = "sha256-r9fDFSCDItQ7YSj9aTY1LXRrFE9T3XD0X36ywCfu0R8=";
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Kethsar/ytarchive";
+    description = "Garbage Youtube livestream downloader";
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/ytfzf/default.nix b/nixpkgs/pkgs/tools/misc/ytfzf/default.nix
index a35e9200a71d..95b4a8907230 100644
--- a/nixpkgs/pkgs/tools/misc/ytfzf/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ytfzf/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , makeWrapper
+, chafa
 , coreutils
 , curl
 , dmenu
@@ -9,27 +10,21 @@
 , gnused
 , jq
 , mpv
-, ncurses
 , ueberzug
-, youtube-dl
+, yt-dlp
 }:
 
 stdenv.mkDerivation rec {
   pname = "ytfzf";
-  version = "1.2.0";
+  version = "2.0";
 
   src = fetchFromGitHub {
     owner = "pystardust";
     repo = "ytfzf";
     rev = "v${version}";
-    sha256 = "sha256-3wbjCtRmnd9tm8kqKaIF6VmMdKsWznhOvQkEsrAJpAE=";
+    sha256 = "sha256-JuLfFC3oz2FvCaD+XPuL1N8tGKmv4atyZIBeDKWYgT8=";
   };
 
-  patches = [
-    # Updates have to be installed through Nix.
-    ./no-update.patch
-  ];
-
   nativeBuildInputs = [ makeWrapper ];
 
   makeFlags = [ "PREFIX=${placeholder "out"}/bin" ];
@@ -38,8 +33,13 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     wrapProgram "$out/bin/ytfzf" --prefix PATH : ${lib.makeBinPath [
-      coreutils curl dmenu fzf gnused jq mpv ncurses ueberzug youtube-dl
+      chafa coreutils curl dmenu fzf gnused jq mpv ueberzug yt-dlp
     ]}
+
+    gzip -c docs/man/ytfzf.1 > docs/man/ytfzf.1.gz
+    gzip -c docs/man/ytfzf.5 > docs/man/ytfzf.5.gz
+    install -Dt "$out/share/man/man1" docs/man/ytfzf.1.gz
+    install -Dt "$out/share/man/man5" docs/man/ytfzf.5.gz
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/ytfzf/no-update.patch b/nixpkgs/pkgs/tools/misc/ytfzf/no-update.patch
deleted file mode 100644
index e71582f6364f..000000000000
--- a/nixpkgs/pkgs/tools/misc/ytfzf/no-update.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/ytfzf b/ytfzf
-index f4d2e0d..7a3b4b6 100755
---- a/ytfzf
-+++ b/ytfzf
-@@ -1260,22 +1260,8 @@ EOF
- }
- 
- update_ytfzf () {
--	branch="$1"
--	updatefile="/tmp/ytfzf-update"
--	curl -L "https://raw.githubusercontent.com/pystardust/ytfzf/$branch/ytfzf" -o "$updatefile"
--
--	if sed -n '1p' < "$updatefile" | grep -q '#!/bin/sh'; then
--		chmod 755 "$updatefile"
--		[ "$(uname)" = "Darwin" ] && prefix="/usr/local/bin" || prefix="/usr/bin"
--		function_exists "sudo" && doasroot="sudo" || doasroot="doas"
--		$doasroot cp "$updatefile" "$prefix/ytfzf"
--		unset prefix doasroot
--	else
--		printf "%bFailed to update ytfzf. Try again later.%b" "$c_red" "$c_reset"
--	fi
--
--	rm "$updatefile"
--	exit 0
-+	printf "%bUpdates have to be installed through Nix.%b\n" "$c_red" "$c_reset"
-+	exit 1
- }
- 
- #gives a value to sort by (this will give the unix time the video was uploaded)
diff --git a/nixpkgs/pkgs/tools/misc/ytree/default.nix b/nixpkgs/pkgs/tools/misc/ytree/default.nix
index 9121b1289f24..fcfbdbd10da1 100644
--- a/nixpkgs/pkgs/tools/misc/ytree/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ytree/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ytree";
-  version = "2.03";
+  version = "2.04";
 
   src = fetchurl {
     url = "https://han.de/~werner/${pname}-${version}.tar.gz";
-    sha256 = "sha256-WDqnFVLRNH4Oq+OaI2+loXS/Z93piHGFO5/iojO8rvE=";
+    sha256 = "sha256-bnqLf2jv5tNlq+M6HQbXOa2F8io9VN3QrsJKNHjWZkI=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix b/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix
index 5ef75778f254..0a5ccda2cedf 100644
--- a/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix
@@ -14,11 +14,11 @@
 
 mkDerivation rec {
   pname = "yubikey-manager-qt";
-  version = "1.2.3";
+  version = "1.2.4";
 
   src = fetchurl {
     url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
-    sha256 = "sha256-54HvuJXjm846sBxwNHLmaBXvO24bbBDyK8YvY4I6LjY=";
+    sha256 = "sha256-PxHc7IeRsO+CPrNTofGypLLW8fSHDkcBqr75NwdlUyc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix b/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
index 2b7e73b35516..23b040f26097 100644
--- a/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "yubikey-manager";
-  version = "4.0.5";
+  version = "4.0.7";
 
   src = fetchFromGitHub {
     repo = "yubikey-manager";
     rev = version;
     owner = "Yubico";
-    sha256 = "sha256:0ycp7k6lkxzqwkc16fifhyqaqi7hl3351pwddsn18r5l83jnzdn2";
+    sha256 = "sha256-PG/mIM1rcs1SAz2kfQtfUWoMBIwLz2ASZM0YQrz9w5I=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/z-lua/default.nix b/nixpkgs/pkgs/tools/misc/z-lua/default.nix
index cee704e93812..751f68bf089d 100644
--- a/nixpkgs/pkgs/tools/misc/z-lua/default.nix
+++ b/nixpkgs/pkgs/tools/misc/z-lua/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/skywind3000/z.lua";
     description = "A new cd command that helps you navigate faster by learning your habits";
     license = licenses.mit;
-    maintainers = [ maintainers.marsam ];
+    maintainers = with maintainers; [ marsam ];
+    mainProgram = "z.lua";
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/zabbix-cli/default.nix b/nixpkgs/pkgs/tools/misc/zabbix-cli/default.nix
index 74e7e7223d14..3732361ea834 100644
--- a/nixpkgs/pkgs/tools/misc/zabbix-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/zabbix-cli/default.nix
@@ -1,17 +1,12 @@
-{ fetchFromGitHub, lib, python2Packages }:
-let
-  pythonPackages = python2Packages;
+{ lib
+, fetchFromGitHub
+, python3
+}:
 
-in pythonPackages.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "zabbix-cli";
   version = "2.2.1";
-
-  propagatedBuildInputs = with pythonPackages; [ ipaddr requests ];
-
-  # argparse is part of the standardlib
-  prePatch = ''
-    substituteInPlace setup.py --replace "'argparse'," ""
-  '';
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "usit-gd";
@@ -20,10 +15,24 @@ in pythonPackages.buildPythonApplication rec {
     sha256 = "0wzmrn8p09ksqhhgawr179c4az7p2liqr0l4q2dra62bxliawyqz";
   };
 
+  propagatedBuildInputs = with python3.pkgs; [
+    requests
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # TypeError: option values must be strings
+    "test_descriptor_del"
+    "test_initialize"
+  ];
+
   meta = with lib; {
     description = "Command-line interface for Zabbix";
-    homepage = src.meta.homepage;
-    license = [ licenses.gpl3 ];
-    maintainers = [ maintainers.womfoo ];
+    homepage = "https://github.com/unioslo/zabbix-cli";
+    license = licenses.gpl3Plus;
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/zellij/default.nix b/nixpkgs/pkgs/tools/misc/zellij/default.nix
index 7c56f43ca16f..2fb985c79162 100644
--- a/nixpkgs/pkgs/tools/misc/zellij/default.nix
+++ b/nixpkgs/pkgs/tools/misc/zellij/default.nix
@@ -6,20 +6,22 @@
 , pkg-config
 , libiconv
 , openssl
+, zellij
+, testVersion
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "zellij";
-  version = "0.18.1";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "zellij-org";
     repo = "zellij";
     rev = "v${version}";
-    sha256 = "sha256-r9RZVmWKJJLiNSbSQPVJPR5koLR6DoAwlitTiQOc1fI=";
+    sha256 = "sha256-DJ7FGtcsWGk4caS22aXo+8chCcvEdRlVrSRmIHsETD4=";
   };
 
-  cargoSha256 = "sha256-xaC9wuT21SYH7H8/d4usDjHeojNZ2d/NkqMqNlQQ1n0=";
+  cargoSha256 ="sha256-dWdFBSZwTEvxrPiXtTWcYLtC+4XFb5R7Wu4r1YpHQRk=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -43,9 +45,12 @@ rustPlatform.buildRustPackage rec {
       --zsh <($out/bin/zellij setup --generate-completion zsh)
   '';
 
+  passthru.tests.version = testVersion { package = zellij; };
+
   meta = with lib; {
     description = "A terminal workspace with batteries included";
     homepage = "https://zellij.dev/";
+    changelog = "https://github.com/zellij-org/zellij/blob/v${version}/Changelog.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ therealansh _0x4A6F ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/zoxide/default.nix b/nixpkgs/pkgs/tools/misc/zoxide/default.nix
index 5fa6e849ac1e..29a9c29aab48 100644
--- a/nixpkgs/pkgs/tools/misc/zoxide/default.nix
+++ b/nixpkgs/pkgs/tools/misc/zoxide/default.nix
@@ -10,13 +10,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "zoxide";
-  version = "0.7.7";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "ajeetdsouza";
     repo = "zoxide";
     rev = "v${version}";
-    sha256 = "18sm7smp0r7rmbq6ajl905947l5vni7hb4dfd0hhnrqjxwlkynds";
+    sha256 = "sha256-5syCq2Qjjk/XoYqW4MGoSSTRLqzgBwadBJwZDDdWNgU=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
       --replace '"fzf"' '"${fzf}/bin/fzf"'
   '';
 
-  cargoSha256 = "0km4bgdl03m5ri4wzy0fsvvwlifx99m9x2j599x58ryq6lx2kkyc";
+  cargoSha256 = "sha256-egZqMiN53k2R1b1dbCn4j0KEJqb27TdE25YYEZ4Nvao=";
 
   postInstall = ''
     installManPage man/*
diff --git a/nixpkgs/pkgs/tools/networking/airfield/node.nix b/nixpkgs/pkgs/tools/networking/airfield/node.nix
index 0bcd0eb4b851..e6ff9b78d386 100644
--- a/nixpkgs/pkgs/tools/networking/airfield/node.nix
+++ b/nixpkgs/pkgs/tools/networking/airfield/node.nix
@@ -6,7 +6,7 @@
 
 let
   nodeEnv = import ../../../development/node-packages/node-env.nix {
-    inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
+    inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
     inherit pkgs nodejs;
     libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
   };
diff --git a/nixpkgs/pkgs/tools/networking/amass/default.nix b/nixpkgs/pkgs/tools/networking/amass/default.nix
index caecece80ae6..c15633a4f5d4 100644
--- a/nixpkgs/pkgs/tools/networking/amass/default.nix
+++ b/nixpkgs/pkgs/tools/networking/amass/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "amass";
-  version = "3.14.1";
+  version = "3.15.2";
 
   src = fetchFromGitHub {
     owner = "OWASP";
     repo = "Amass";
     rev = "v${version}";
-    sha256 = "sha256-AKvTnr1NeoTMBn5KNuqdR1z1P/pkQU9E1WrPQPhl8Yw=";
+    sha256 = "sha256-0zTnknpjTvUEai06JsRfQASclxpvaJnEfYK7biZeqU0=";
   };
 
-  vendorSha256 = "sha256-v+x0S47dEgRLr2Yv8t1GnFM/iQ9bKKanPhPJMI+mF7s=";
+  vendorSha256 = "sha256-Lh/VN+IBXpT8e7ok5Qjfk5tgXEUVwKMHYcp9WrChN3A=";
 
   outputs = [ "out" "wordlists" ];
 
diff --git a/nixpkgs/pkgs/tools/networking/assh/default.nix b/nixpkgs/pkgs/tools/networking/assh/default.nix
index 5bbedf0f7e5b..4300f8797b84 100644
--- a/nixpkgs/pkgs/tools/networking/assh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/assh/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "assh";
-  version = "2.11.3";
+  version = "2.12.0";
 
   src = fetchFromGitHub {
     repo = "advanced-ssh-config";
     owner = "moul";
     rev = "v${version}";
-    sha256 = "sha256-NH7Dmqsu7uRhKWGFHBnh5GGqsNFOijDxsc+ATt28jtY=";
+    sha256 = "sha256-FqxxNTsZVmCsIGNHRWusFP2gba2+geqBubw+6PeR75c=";
   };
 
-  vendorSha256 = "sha256-6OAsO7zWAgPfQWD9k+nYH7hnDDUlKIjTB61ivvoubn0=";
+  vendorSha256 = "sha256-AYBwuRSeam5i2gex9PSG9Qk+FHdEhIpY250CJo01cFE=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/atinout/default.nix b/nixpkgs/pkgs/tools/networking/atinout/default.nix
index 93535531d91b..6fad1174bbf0 100644
--- a/nixpkgs/pkgs/tools/networking/atinout/default.nix
+++ b/nixpkgs/pkgs/tools/networking/atinout/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchgit, ronn, mount }:
 
 stdenv.mkDerivation rec {
-  name = "atinout-${version}";
+  pname = "atinout";
   version = "0.9.2-alpha";
 
   NIX_CFLAGS_COMPILE = lib.optionalString (!stdenv.cc.isClang) "-Werror=implicit-fallthrough=0";
diff --git a/nixpkgs/pkgs/tools/networking/axel/default.nix b/nixpkgs/pkgs/tools/networking/axel/default.nix
index f7e761ac0fd0..eb2b109dbecd 100644
--- a/nixpkgs/pkgs/tools/networking/axel/default.nix
+++ b/nixpkgs/pkgs/tools/networking/axel/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "axel";
-  version = "2.17.10";
+  version = "2.17.11";
 
   src = fetchFromGitHub {
     owner = "axel-download-accelerator";
     repo = pname;
     rev = "v${version}";
-    sha256 = "01mpfkz98r2fx4n0gyi3b4zvlyfd5bxydp2wh431lnj0ahrsiikp";
+    sha256 = "sha256-yC4TL8IXWGEwRXAyeon6QnQa+rT1xL/McLsghjZ4ky4=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config autoconf-archive txt2man ];
diff --git a/nixpkgs/pkgs/tools/networking/bacnet-stack/default.nix b/nixpkgs/pkgs/tools/networking/bacnet-stack/default.nix
index a4f2ef36360e..9e47993df602 100644
--- a/nixpkgs/pkgs/tools/networking/bacnet-stack/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bacnet-stack/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  name = "bacnet-stack";
+  pname = "bacnet-stack";
   version = "1.0.0";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/tools/networking/badvpn/default.nix b/nixpkgs/pkgs/tools/networking/badvpn/default.nix
index fd7c3b23adfe..b1fc3b5b9b60 100644
--- a/nixpkgs/pkgs/tools/networking/badvpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/badvpn/default.nix
@@ -1,39 +1,33 @@
-{lib, stdenv, fetchurl, cmake, openssl, nss, pkg-config, nspr, bash, debug ? false}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="badvpn";
-    version="1.999.130";
-    name="${baseName}-${version}";
-    hash="02b1fra43l75mljkhrq45vcrrqv0znicjn15g7nbqx3jppzbpm5z";
-    url="https://github.com/ambrop72/badvpn/archive/1.999.130.tar.gz";
-    sha256="02b1fra43l75mljkhrq45vcrrqv0znicjn15g7nbqx3jppzbpm5z";
-  };
+{ lib, stdenv, fetchFromGitHub, cmake, openssl, nss, pkg-config, nspr, bash, debug ? false }:
+
+stdenv.mkDerivation rec {
+  pname = "badvpn";
+  version = "1.999.130";
 
+  src = fetchFromGitHub {
+    owner = "ambrop72";
+    repo = "badvpn";
+    rev = version;
+    sha256 = "sha256-bLTDpq3ohUP+KooPvhv1/AZfdo0HwB3g9QOuE2E/pmY=";
+  };
 
-  compileFlags = "-O3 ${lib.optionalString (!debug) "-DNDEBUG"}";
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [
-    openssl nss nspr
+    openssl
+    nss
+    nspr
   ];
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
 
   preConfigure = ''
     find . -name '*.sh' -exec sed -e 's@#!/bin/sh@${stdenv.shell}@' -i '{}' ';'
     find . -name '*.sh' -exec sed -e 's@#!/bin/bash@${bash}/bin/bash@' -i '{}' ';'
-    cmakeFlagsArray=("-DCMAKE_BUILD_TYPE=" "-DCMAKE_C_FLAGS=${compileFlags}");
+    cmakeFlagsArray=("-DCMAKE_BUILD_TYPE=" "-DCMAKE_C_FLAGS=-O3 ${lib.optionalString (!debug) "-DNDEBUG"}");
   '';
 
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "A set of network-related (mostly VPN-related) tools";
-    license = lib.licenses.bsd3 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/badvpn/default.upstream b/nixpkgs/pkgs/tools/networking/badvpn/default.upstream
deleted file mode 100644
index 2a85ba7cb519..000000000000
--- a/nixpkgs/pkgs/tools/networking/badvpn/default.upstream
+++ /dev/null
@@ -1,3 +0,0 @@
-url https://github.com/ambrop72/badvpn/releases
-version_link '[0-9][.]tar[.][a-z0-9]+$'
-version '.*/([0-9.]+)[.]tar[.].*' '\1'
diff --git a/nixpkgs/pkgs/tools/networking/bgpq3/default.nix b/nixpkgs/pkgs/tools/networking/bgpq3/default.nix
index bd0a623a916d..16bebda7d3dc 100644
--- a/nixpkgs/pkgs/tools/networking/bgpq3/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bgpq3/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bgpq3";
-  version = "0.1.35";
+  version = "0.1.36";
 
   src = fetchFromGitHub {
     owner = "snar";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0fd5a3krq0i906m0iivgphiqq88cw6c0w1q4n7lmzyq9201mb8wj";
+    sha256 = "sha256-FBtt++w2WzCnSim+r+MVy287w2jmdNEaQIro2KaVeRI=";
   };
 
   # Fix binary install location. Remove with next upstream release.
diff --git a/nixpkgs/pkgs/tools/networking/bgpq4/default.nix b/nixpkgs/pkgs/tools/networking/bgpq4/default.nix
index bfbb138952a9..e429b5a8cd20 100644
--- a/nixpkgs/pkgs/tools/networking/bgpq4/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bgpq4/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bgpq4";
-  version = "1.2";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "bgp";
     repo = pname;
     rev = version;
-    sha256 = "sha256-8r70tetbTq8GxxtFe71gDYy+wg8yBwYpl1gsu5aAHTA=";
+    sha256 = "sha256-EFxINRFrcNXGtXpNqvBIN6pE1kG3OdeDIHYOsG2celI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/networking/bore/default.nix b/nixpkgs/pkgs/tools/networking/bore/default.nix
index b22cdb0c2ae4..66334e062103 100644
--- a/nixpkgs/pkgs/tools/networking/bore/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bore/default.nix
@@ -2,20 +2,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bore";
-  version = "0.3.3";
+  version = "0.4.1";
 
   src = fetchFromBitbucket {
     owner = "delan";
     repo = "nonymous";
-    rev = version;
-    sha256 = "0gws1f625izrb3armh6bay1k8l9p9csl37jx03yss1r720k4vn2x";
+    rev = "${pname}-${version}";
+    sha256 = "1fdnnx7d18gj4rkv1dc6q379dqabl66zks9i0rjarjwcci8m30d9";
   };
 
-  cargoSha256 = "1n09gcp1y885lz6g2f73zw3fd0fmv7nwlvaqba2yl0kylzk7naa6";
+  cargoSha256 = "1xlbfzmy0wjyz3jpr17r4ma4i79d9b32yqwwi10vrcjzr7vsyhmx";
   cargoBuildFlags = "-p ${pname}";
 
   # FIXME can’t test --all-targets and --doc in a single invocation
-  cargoTestFlags = "--features std --all-targets --workspace";
+  cargoTestFlags = [ "--all-targets" "--workspace" ];
+  checkFeatures = [ "std" ];
 
   nativeBuildInputs = [ installShellFiles ]
     ++ lib.optional stdenv.isDarwin llvmPackages.libclang;
diff --git a/nixpkgs/pkgs/tools/networking/boundary/default.nix b/nixpkgs/pkgs/tools/networking/boundary/default.nix
index 4f7b76ad8c7a..8851a4a87406 100644
--- a/nixpkgs/pkgs/tools/networking/boundary/default.nix
+++ b/nixpkgs/pkgs/tools/networking/boundary/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "boundary";
-  version = "0.6.2";
+  version = "0.7.1";
 
   src =
     let
@@ -14,9 +14,9 @@ stdenv.mkDerivation rec {
         x86_64-darwin = "darwin_amd64";
       };
       sha256 = selectSystem {
-        x86_64-linux = "sha256-qO74R6L2kTHXCNtka9SHT4lZo4Gr15w6K3e43+p2HW4=";
-        aarch64-linux = "sha256-apd16BuusNI5P2Qr8Hj95dRwoAk/ZEZa6TQi+0paIzs=";
-        x86_64-darwin = "sha256-LdCakVru1sbB88plsGrJiMDQl5HtH1GkCkcjmIVjeec=";
+        x86_64-linux = "sha256-5m5ckeX3gVY82q9aQWusnq3o/+UBPJSPDdISL86OfV8=";
+        aarch64-linux = "sha256-+dnQh89kg3JcDL8sucMceCMRFyUjoAIYuZtDM8AUMYw=";
+        x86_64-darwin = "sha256-ZoWW8y048+5Ru3s7lUxLTMxuITFBC9AgwqafyHPDc54=";
       };
     in
     fetchzip {
diff --git a/nixpkgs/pkgs/tools/networking/brook/default.nix b/nixpkgs/pkgs/tools/networking/brook/default.nix
index c45f79fb2424..ac81453e656c 100644
--- a/nixpkgs/pkgs/tools/networking/brook/default.nix
+++ b/nixpkgs/pkgs/tools/networking/brook/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
     homepage = "https://github.com/txthinking/brook";
     description = "A cross-platform Proxy/VPN software";
     license = with licenses; [ gpl3Only ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ xrelkd ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/bsd-finger/default.nix b/nixpkgs/pkgs/tools/networking/bsd-finger/default.nix
index 354c669b3366..4f8d946fa360 100644
--- a/nixpkgs/pkgs/tools/networking/bsd-finger/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bsd-finger/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "0.17";
 
   src = fetchurl {
-    url = "ftp://ftp.metalab.unc.edu/pub/linux/system/network/finger/bsd-finger-${version}.tar.gz";
+    url = "mirror://metalab/system/network/finger/bsd-finger-${version}.tar.gz";
     sha256 = "1yhkiv0in588il7f84k2xiy78g9lv12ll0y7047gazhiimk5v244";
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/burpsuite/default.nix b/nixpkgs/pkgs/tools/networking/burpsuite/default.nix
index e4783ddb0ef2..b04ddf8f597a 100644
--- a/nixpkgs/pkgs/tools/networking/burpsuite/default.nix
+++ b/nixpkgs/pkgs/tools/networking/burpsuite/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "burpsuite";
-  version = "2021.8.1";
+  version = "2021.12";
 
   src = fetchurl {
     name = "burpsuite.jar";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       "https://portswigger.net/Burp/Releases/Download?productId=100&version=${version}&type=Jar"
       "https://web.archive.org/web/https://portswigger.net/Burp/Releases/Download?productId=100&version=${version}&type=Jar"
     ];
-    sha256 = "sha256-R1WV3oaweW4nfszUOtmrfBlbKJm8HDNjwtbj97dFzB0=";
+    sha256 = "sha256-BLX/SgHctXciOZoA6Eh4zuDJoxNSZgvoj2Teg1fV80g=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/tools/networking/bwm-ng/default.nix b/nixpkgs/pkgs/tools/networking/bwm-ng/default.nix
index 97f0d1823af2..cfe0d4176a6f 100644
--- a/nixpkgs/pkgs/tools/networking/bwm-ng/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bwm-ng/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , autoreconfHook
 , fetchurl
+, fetchpatch
 , ncurses
 }:
 
@@ -14,6 +15,17 @@ stdenv.mkDerivation rec {
     sha256 = "0ikzyvnb73msm9n7ripg1dsw9av1i0c7q2hi2173xsj8zyv559f1";
   };
 
+  patches = [
+    # Pull upstream fix for ncurses-6.3 support.
+    (fetchpatch {
+      name  = "ncurses-6.3.patch";
+      url = "https://github.com/vgropp/bwm-ng/commit/6a2087db6cc7ac5b5f667fcd17c262c079e8dcf2.patch";
+      sha256 = "1l5dii9d52v0x0sq458ybw7m9p8aan2vl94gwx5s8mgxsnbcmzzx";
+      # accidentally committed changes
+      excludes = [ "config.h.in~" "configure.in" "configure~" ];
+     })
+  ];
+
   nativeBuildInputs = [
     autoreconfHook
   ];
diff --git a/nixpkgs/pkgs/tools/networking/calendar-cli/default.nix b/nixpkgs/pkgs/tools/networking/calendar-cli/default.nix
index 497b77b57ac0..b2a7b0bd0a13 100644
--- a/nixpkgs/pkgs/tools/networking/calendar-cli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/calendar-cli/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "calendar-cli";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "tobixen";
     repo = "calendar-cli";
     rev = "v${version}";
-    sha256 = "0qjld2m7hl3dx90491pqbjcja82c1f5gwx274kss4lkb8aw0kmlv";
+    hash = "sha256-wGigrBl5PJL+fVfnFnHDJ5zyB+Rq3Fm+q9vMvLuBBys=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/nixpkgs/pkgs/tools/networking/cbftp/default.nix b/nixpkgs/pkgs/tools/networking/cbftp/default.nix
index e78b8a93dc67..5709acb02ddb 100644
--- a/nixpkgs/pkgs/tools/networking/cbftp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cbftp/default.nix
@@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
 
   dontConfigure = true;
 
+  makeFlags = lib.optional stdenv.isDarwin "OPTFLAGS=-O0";
+
   installPhase = ''
     runHook preInstall
 
diff --git a/nixpkgs/pkgs/tools/networking/cdpr/default.nix b/nixpkgs/pkgs/tools/networking/cdpr/default.nix
index 6ac69b95dba6..0b92fd7aa45c 100644
--- a/nixpkgs/pkgs/tools/networking/cdpr/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cdpr/default.nix
@@ -9,6 +9,10 @@ stdenv.mkDerivation rec {
     sha256 = "1idyvyafkk0ifcbi7mc65b60qia6hpsdb6s66j4ggqp7if6vblrj";
   };
 
+  postPatch = ''
+    substituteInPlace Makefile --replace 'gcc' '"$$CC"'
+  '';
+
   buildInputs = [ libpcap ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/networking/checkip/default.nix b/nixpkgs/pkgs/tools/networking/checkip/default.nix
index b379a1725de9..94d83b9f3981 100644
--- a/nixpkgs/pkgs/tools/networking/checkip/default.nix
+++ b/nixpkgs/pkgs/tools/networking/checkip/default.nix
@@ -5,21 +5,16 @@
 
 buildGoModule rec {
   pname = "checkip";
-  version = "0.2.2";
+  version = "0.16.2";
 
   src = fetchFromGitHub {
     owner = "jreisinger";
     repo = pname;
     rev = "v${version}";
-    sha256 = "065426z4iak72h56qvp1vk86r2vw5rdqy3qi1zbw1l0hnyq83zwq";
+    sha256 = "sha256-ktAb5kUwEE4xCgsuj0gO4jP6EybOBLjdlskUF/zwrqU=";
   };
 
-  vendorSha256 = "10hk2wfkpvnavs20q390qgaj1gj10j1fy8vlqb9s9f76gpb130h4";
-
-  postFixup = ''
-    # Rename binary
-    mv $out/bin/cmd $out/bin/${pname}
-  '';
+  vendorSha256 = "sha256-4XA7B0gmFE52VoKiPLsa0urPS7IdzrTBXuU4wZv/Lag=";
 
   # Requires network
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/networking/chrony/default.nix b/nixpkgs/pkgs/tools/networking/chrony/default.nix
index 24968c64a093..cff2d4df8e86 100644
--- a/nixpkgs/pkgs/tools/networking/chrony/default.nix
+++ b/nixpkgs/pkgs/tools/networking/chrony/default.nix
@@ -5,11 +5,11 @@ assert stdenv.isLinux -> libcap != null;
 
 stdenv.mkDerivation rec {
   pname = "chrony";
-  version = "4.1";
+  version = "4.2";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/chrony/${pname}-${version}.tar.gz";
-    sha256 = "sha256-7Xby0/k0esYiGpGtS9VT3QVlrBiM10kNCAHQj3FxFkw=";
+    sha256 = "sha256-Jz+f0Vwyjtbzpfa6a67DWkIaNKc7tyVgUymxcSBI25o=";
   };
 
   postPatch = ''
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   hardeningEnable = [ "pie" ];
 
-  configureFlags = [ "--chronyvardir=$(out)/var/lib/chrony" ]
+  configureFlags = [ "--chronyvardir=$(out)/var/lib/chrony" "--enable-ntp-signd" ]
     ++ lib.optional stdenv.isLinux "--enable-scfilter";
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/networking/cjdns/default.nix b/nixpkgs/pkgs/tools/networking/cjdns/default.nix
index 474c9d59c9e5..b68eaeabd633 100644
--- a/nixpkgs/pkgs/tools/networking/cjdns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cjdns/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, nodejs, which, python27, util-linux, nixosTests }:
+{ lib, stdenv, fetchFromGitHub, nodejs, which, python3, util-linux, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "cjdns";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "NOmk+vMZ8i0E2MjrUzksk+tkJ9XVVNEXlE5OOTNa+Y0=";
   };
 
-  buildInputs = [ which python27 nodejs ] ++
+  buildInputs = [ which python3 nodejs ] ++
     # for flock
     lib.optional stdenv.isLinux util-linux;
 
@@ -21,12 +21,8 @@ stdenv.mkDerivation rec {
     + "bash do";
   installPhase = ''
     install -Dt "$out/bin/" cjdroute makekeys privatetopublic publictoip6
-    sed -i 's,/usr/bin/env node,'$(type -P node), \
-      $(find contrib -name "*.js")
-    sed -i 's,/usr/bin/env python,'$(type -P python), \
-      $(find contrib -type f)
     mkdir -p $out/share/cjdns
-    cp -R contrib tools node_build node_modules $out/share/cjdns/
+    cp -R tools node_build node_modules $out/share/cjdns/
   '';
 
   passthru.tests.basic = nixosTests.cjdns;
diff --git a/nixpkgs/pkgs/tools/networking/cnping/default.nix b/nixpkgs/pkgs/tools/networking/cnping/default.nix
new file mode 100644
index 000000000000..0a7aed4fcb5d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/cnping/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchFromGitHub, libglvnd, xorg }:
+
+stdenv.mkDerivation rec {
+  pname = "cnping";
+  version = "unstable-2021-04-04";
+
+  src = fetchFromGitHub {
+    owner = "cntools";
+    repo = "cnping";
+    rev = "6b89363e6b79ecbf612306d42a8ef94a5a2f756a";
+    sha256 = "sha256-E3Wm5or6C4bHq7YoyaEbtDwyd+tDVYUOMeQrprlmL4A=";
+    fetchSubmodules = true;
+  };
+
+  buildInputs = [ libglvnd xorg.libXinerama xorg.libXext xorg.libX11 ];
+
+  # The "linuxinstall" target won't work for us:
+  # it tries to setcap and copy to a FHS directory
+  installPhase = ''
+    mkdir -p $out/{bin,share/man/man1}
+    cp cnping $out/bin/cnping
+    cp cnping.1 $out/share/man/man1/cnping.1
+  '';
+
+  meta = with lib; {
+    description = "Minimal Graphical IPV4 Ping Tool";
+    homepage = "https://github.com/cntools/cnping";
+    license = with licenses; [ mit bsd3 ]; # dual licensed, MIT-x11 & BSD-3-Clause
+    maintainers = with maintainers; [ ckie ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/connman/connman.nix b/nixpkgs/pkgs/tools/networking/connman/connman.nix
index 3ec9bce0b4c7..c92cceeabc6f 100644
--- a/nixpkgs/pkgs/tools/networking/connman/connman.nix
+++ b/nixpkgs/pkgs/tools/networking/connman/connman.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchurl
+, fetchpatch
 , pkg-config
 , file
 , glib
@@ -61,23 +62,31 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-GleufOI0qjoXRKrDvlwhIdmNzpmUQO+KucxO39XtyxI=";
   };
 
+  patches = lib.optionals stdenv.hostPlatform.isMusl [
+    # Fix Musl build by avoiding a Glibc-only API.
+    (fetchpatch {
+      url = "https://git.alpinelinux.org/aports/plain/community/connman/libresolv.patch?id=e393ea84386878cbde3cccadd36a30396e357d1e";
+      sha256 = "1kg2nml7pdxc82h5hgsa3npvzdxy4d2jpz2f93pa97if868i8d43";
+    })
+  ];
+
   buildInputs = [
     glib
     dbus
     libmnl
     gnutls
     readline
-  ] ++ optionals (enableOpenconnect) [ openconnect ];
+  ] ++ optionals (enableOpenconnect) [ openconnect ]
+    ++ optionals (firewallType == "iptables") [ iptables ]
+    ++ optionals (firewallType == "nftables") [ libnftnl ]
+    ++ optionals (enablePolkit) [ polkit ]
+    ++ optionals (enablePptp) [ pptp ppp ]
+  ;
 
   nativeBuildInputs = [
     pkg-config
     file
-  ]
-    ++ optionals (enablePolkit) [ polkit ]
-    ++ optionals (enablePptp) [ pptp ppp ]
-    ++ optionals (firewallType == "iptables") [ iptables ]
-    ++ optionals (firewallType == "nftables") [ libnftnl ]
-  ;
+  ];
 
   # fix invalid path to 'file'
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/networking/connman/connman_dmenu/default.nix b/nixpkgs/pkgs/tools/networking/connman/connman_dmenu/default.nix
index 3ac730f471f7..86e5a62fb8de 100644
--- a/nixpkgs/pkgs/tools/networking/connman/connman_dmenu/default.nix
+++ b/nixpkgs/pkgs/tools/networking/connman/connman_dmenu/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation {
   pname = "connman_dmenu";
-  version = "git-29-9-2015";
+  version = "unstable-2015-09-29";
 
   src = fetchFromGitHub {
     owner = "march-linux";
@@ -26,10 +26,10 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description  = "A dmenu wrapper for connmann";
-    homepage     = "https://github.com/march-linux/connman_dmenu";
-    license      = lib.licenses.free;
-    maintainers  = [ lib.maintainers.magnetophon ];
-    platforms    = lib.platforms.all;
+    description = "A dmenu wrapper for connmann";
+    homepage = "https://github.com/march-linux/connman_dmenu";
+    license = lib.licenses.free;
+    maintainers = [ lib.maintainers.magnetophon ];
+    platforms = lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/croc/default.nix b/nixpkgs/pkgs/tools/networking/croc/default.nix
index 8c9e1bcdf0f7..57b2f8be52c6 100644
--- a/nixpkgs/pkgs/tools/networking/croc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/croc/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "9.4.2";
+  version = "9.5.0";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-aB3jYQKyqfaQBcCbFbN8ZIfosyLy+bX6SJF+iiT2ELQ=";
+    sha256 = "sha256-BgUurfzgezbbH0pCTuRINocc5y6ANCM91VlWht86QeE=";
   };
 
-  vendorSha256 = "sha256-bsggZ6e9a7tq0jgOpqIRgfj4FUu/krLWuLBZjaialO0=";
+  vendorSha256 = "sha256-MstlmaMEbbAY9+h5pNVCXqDOqoSv5hjuRSFS/MTg6lo=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/curl/7.79.1-darwin-no-systemconfiguration.patch b/nixpkgs/pkgs/tools/networking/curl/7.79.1-darwin-no-systemconfiguration.patch
new file mode 100644
index 000000000000..eddc282dd87b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/curl/7.79.1-darwin-no-systemconfiguration.patch
@@ -0,0 +1,52 @@
+On darwin, providing SystemConfiguration to curl currently results in a
+reference loop, so we have to disable the check for it and the feature
+which requires it (NAT64).
+
+Patching actual configure script here as we also don't want to require
+autoconf in the bootstrap loop just to regenerate a patched configure.ac.
+
+--- a/configure   2021-10-16 00:51:59.000000000 +0100
++++ b/configure   2021-10-16 01:06:46.000000000 +0100
+@@ -20810,7 +20810,7 @@
+     if test "x$build_for_macos" != xno; then
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ printf "%s\n" "yes" >&6; }
+-      LDFLAGS="$LDFLAGS -framework CoreFoundation -framework SystemConfiguration"
++      LDFLAGS="$LDFLAGS -framework CoreFoundation"
+     else
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ printf "%s\n" "no" >&6; }
+@@ -22211,9 +22211,6 @@
+ fi
+ 
+ 
+-if test "$HAVE_GETHOSTBYNAME" != "1"; then
+-  as_fn_error $? "couldn't find libraries for gethostbyname()" "$LINENO" 5
+-fi
+ 
+ 
+ curl_includes_winsock2="\
+diff --git a/lib/curl_setup.h b/lib/curl_setup.h
+index 99048c489..19abfbbac 100644
+--- a/lib/curl_setup.h
++++ b/lib/curl_setup.h
+@@ -247,19 +247,6 @@
+ #  include "setup-win32.h"
+ #endif
+ 
+-/*
+- * Use getaddrinfo to resolve the IPv4 address literal. If the current network
+- * interface doesn't support IPv4, but supports IPv6, NAT64, and DNS64,
+- * performing this task will result in a synthesized IPv6 address.
+- */
+-#if defined(__APPLE__) && !defined(USE_ARES)
+-#include <TargetConditionals.h>
+-#define USE_RESOLVE_ON_IPS 1
+-#  if defined(TARGET_OS_OSX) && TARGET_OS_OSX
+-#    define CURL_OSX_CALL_COPYPROXIES 1
+-#  endif
+-#endif
+-
+ #ifdef USE_LWIPSOCK
+ #  include <lwip/init.h>
+ #  include <lwip/sockets.h>
diff --git a/nixpkgs/pkgs/tools/networking/curl/CVE-2021-22897.patch b/nixpkgs/pkgs/tools/networking/curl/CVE-2021-22897.patch
deleted file mode 100644
index a48888795036..000000000000
--- a/nixpkgs/pkgs/tools/networking/curl/CVE-2021-22897.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From bbb71507b7bab52002f9b1e0880bed6a32834511 Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg <daniel@haxx.se>
-Date: Fri, 23 Apr 2021 10:54:10 +0200
-Subject: [PATCH] schannel: don't use static to store selected ciphers
-
-CVE-2021-22897
-
-Bug: https://curl.se/docs/CVE-2021-22897.html
----
- lib/vtls/schannel.c | 9 +++++----
- lib/vtls/schannel.h | 3 +++
- 2 files changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c
-index 8c25ac5dd5a5..dba7072273a9 100644
---- a/lib/vtls/schannel.c
-+++ b/lib/vtls/schannel.c
-@@ -328,12 +328,12 @@ get_alg_id_by_name(char *name)
- }
- 
- static CURLcode
--set_ssl_ciphers(SCHANNEL_CRED *schannel_cred, char *ciphers)
-+set_ssl_ciphers(SCHANNEL_CRED *schannel_cred, char *ciphers,
-+                int *algIds)
- {
-   char *startCur = ciphers;
-   int algCount = 0;
--  static ALG_ID algIds[45]; /*There are 45 listed in the MS headers*/
--  while(startCur && (0 != *startCur) && (algCount < 45)) {
-+  while(startCur && (0 != *startCur) && (algCount < NUMOF_CIPHERS)) {
-     long alg = strtol(startCur, 0, 0);
-     if(!alg)
-       alg = get_alg_id_by_name(startCur);
-@@ -593,7 +593,8 @@ schannel_connect_step1(struct Curl_easy *data, struct connectdata *conn,
-     }
- 
-     if(SSL_CONN_CONFIG(cipher_list)) {
--      result = set_ssl_ciphers(&schannel_cred, SSL_CONN_CONFIG(cipher_list));
-+      result = set_ssl_ciphers(&schannel_cred, SSL_CONN_CONFIG(cipher_list),
-+                               BACKEND->algIds);
-       if(CURLE_OK != result) {
-         failf(data, "Unable to set ciphers to passed via SSL_CONN_CONFIG");
-         return result;
-diff --git a/lib/vtls/schannel.h b/lib/vtls/schannel.h
-index 2952caa1a5a1..77853aa30f96 100644
---- a/lib/vtls/schannel.h
-+++ b/lib/vtls/schannel.h
-@@ -71,6 +71,8 @@ CURLcode Curl_verify_certificate(struct Curl_easy *data,
- #endif
- #endif
- 
-+#define NUMOF_CIPHERS 45 /* There are 45 listed in the MS headers */
-+
- struct Curl_schannel_cred {
-   CredHandle cred_handle;
-   TimeStamp time_stamp;
-@@ -102,6 +104,7 @@ struct ssl_backend_data {
- #ifdef HAS_MANUAL_VERIFY_API
-   bool use_manual_cred_validation; /* true if manual cred validation is used */
- #endif
-+  ALG_ID algIds[NUMOF_CIPHERS];
- };
- #endif /* EXPOSE_SCHANNEL_INTERNAL_STRUCTS */
- 
diff --git a/nixpkgs/pkgs/tools/networking/curl/CVE-2021-22898.patch b/nixpkgs/pkgs/tools/networking/curl/CVE-2021-22898.patch
deleted file mode 100644
index ea4d2cb37e87..000000000000
--- a/nixpkgs/pkgs/tools/networking/curl/CVE-2021-22898.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 39ce47f219b09c380b81f89fe54ac586c8db6bde Mon Sep 17 00:00:00 2001
-From: Harry Sintonen <sintonen@iki.fi>
-Date: Fri, 7 May 2021 13:09:57 +0200
-Subject: [PATCH] telnet: check sscanf() for correct number of matches
-
-CVE-2021-22898
-
-Bug: https://curl.se/docs/CVE-2021-22898.html
----
- lib/telnet.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/telnet.c b/lib/telnet.c
-index 26e0658ba9cc..fdd137fb0c04 100644
---- a/lib/telnet.c
-+++ b/lib/telnet.c
-@@ -922,7 +922,7 @@ static void suboption(struct Curl_easy *data)
-         size_t tmplen = (strlen(v->data) + 1);
-         /* Add the variable only if it fits */
-         if(len + tmplen < (int)sizeof(temp)-6) {
--          if(sscanf(v->data, "%127[^,],%127s", varname, varval)) {
-+          if(sscanf(v->data, "%127[^,],%127s", varname, varval) == 2) {
-             msnprintf((char *)&temp[len], sizeof(temp) - len,
-                       "%c%s%c%s", CURL_NEW_ENV_VAR, varname,
-                       CURL_NEW_ENV_VALUE, varval);
diff --git a/nixpkgs/pkgs/tools/networking/curl/CVE-2021-22901.patch b/nixpkgs/pkgs/tools/networking/curl/CVE-2021-22901.patch
deleted file mode 100644
index 6bd70aa41b1e..000000000000
--- a/nixpkgs/pkgs/tools/networking/curl/CVE-2021-22901.patch
+++ /dev/null
@@ -1,437 +0,0 @@
-Based on upstream 7f4a9a9b2a49547eae24d2e19bc5c346e9026479, modified by ris to
-apply without 0c55fbab45bedb761766109d41c3da49c4bc66c6
-
-diff --git a/lib/multi.c b/lib/multi.c
-index 54365f399e9b..1b3e261c682a 100644
---- a/lib/multi.c
-+++ b/lib/multi.c
-@@ -878,8 +878,10 @@ bool Curl_multiplex_wanted(const struct Curl_multi *multi)
- void Curl_detach_connnection(struct Curl_easy *data)
- {
-   struct connectdata *conn = data->conn;
--  if(conn)
-+  if(conn) {
-     Curl_llist_remove(&conn->easyq, &data->conn_queue, NULL);
-+    Curl_ssl_detach_conn(data, conn);
-+  }
-   data->conn = NULL;
- }
- 
-@@ -896,6 +898,7 @@ void Curl_attach_connnection(struct Curl_easy *data,
-   data->conn = conn;
-   Curl_llist_insert_next(&conn->easyq, conn->easyq.tail, data,
-                          &data->conn_queue);
-+  Curl_ssl_associate_conn(data, conn);
- }
- 
- static int waitconnect_getsock(struct connectdata *conn,
-diff --git a/lib/vtls/gskit.c b/lib/vtls/gskit.c
-index c648f624579b..ca953769d1ba 100644
---- a/lib/vtls/gskit.c
-+++ b/lib/vtls/gskit.c
-@@ -1304,7 +1304,9 @@ const struct Curl_ssl Curl_ssl_gskit = {
-   Curl_none_set_engine_default,   /* set_engine_default */
-   Curl_none_engines_list,         /* engines_list */
-   Curl_none_false_start,          /* false_start */
--  NULL                            /* sha256sum */
-+  NULL,                           /* sha256sum */
-+  NULL,                           /* associate_connection */
-+  NULL                            /* disassociate_connection */
- };
- 
- #endif /* USE_GSKIT */
-diff --git a/lib/vtls/gtls.c b/lib/vtls/gtls.c
-index a10c0dbcca05..ecde5c44deeb 100644
---- a/lib/vtls/gtls.c
-+++ b/lib/vtls/gtls.c
-@@ -1656,7 +1656,9 @@ const struct Curl_ssl Curl_ssl_gnutls = {
-   Curl_none_set_engine_default,  /* set_engine_default */
-   Curl_none_engines_list,        /* engines_list */
-   Curl_none_false_start,         /* false_start */
--  gtls_sha256sum                 /* sha256sum */
-+  gtls_sha256sum,                /* sha256sum */
-+  NULL,                          /* associate_connection */
-+  NULL                           /* disassociate_connection */
- };
- 
- #endif /* USE_GNUTLS */
-diff --git a/lib/vtls/mbedtls.c b/lib/vtls/mbedtls.c
-index ca77de58667c..3a0be0f04b4f 100644
---- a/lib/vtls/mbedtls.c
-+++ b/lib/vtls/mbedtls.c
-@@ -1093,7 +1093,9 @@ const struct Curl_ssl Curl_ssl_mbedtls = {
-   Curl_none_set_engine_default,     /* set_engine_default */
-   Curl_none_engines_list,           /* engines_list */
-   Curl_none_false_start,            /* false_start */
--  mbedtls_sha256sum                 /* sha256sum */
-+  mbedtls_sha256sum,                /* sha256sum */
-+  NULL,                             /* associate_connection */
-+  NULL                              /* disassociate_connection */
- };
- 
- #endif /* USE_MBEDTLS */
-diff --git a/lib/vtls/mesalink.c b/lib/vtls/mesalink.c
-index f16c77c27fe0..bf8600d3230b 100644
---- a/lib/vtls/mesalink.c
-+++ b/lib/vtls/mesalink.c
-@@ -666,7 +666,9 @@ const struct Curl_ssl Curl_ssl_mesalink = {
-   Curl_none_set_engine_default,  /* set_engine_default */
-   Curl_none_engines_list,        /* engines_list */
-   Curl_none_false_start,         /* false_start */
--  NULL                           /* sha256sum */
-+  NULL,                          /* sha256sum */
-+  NULL,                          /* associate_connection */
-+  NULL                           /* disassociate_connection */
- };
- 
- #endif
-diff --git a/lib/vtls/nss.c b/lib/vtls/nss.c
-index 2aa4bdaa134f..1582b1e580a9 100644
---- a/lib/vtls/nss.c
-+++ b/lib/vtls/nss.c
-@@ -2465,7 +2465,9 @@ const struct Curl_ssl Curl_ssl_nss = {
-   Curl_none_set_engine_default, /* set_engine_default */
-   Curl_none_engines_list,       /* engines_list */
-   nss_false_start,              /* false_start */
--  nss_sha256sum                 /* sha256sum */
-+  nss_sha256sum,                /* sha256sum */
-+  NULL,                         /* associate_connection */
-+  NULL                          /* disassociate_connection */
- };
- 
- #endif /* USE_NSS */
-diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
-index 1521600dd5f6..ebd7abc3b4ac 100644
---- a/lib/vtls/openssl.c
-+++ b/lib/vtls/openssl.c
-@@ -240,6 +240,10 @@ struct ssl_backend_data {
- #endif
- };
- 
-+static void ossl_associate_connection(struct Curl_easy *data,
-+                                      struct connectdata *conn,
-+                                      int sockindex);
-+
- /*
-  * Number of bytes to read from the random number seed file. This must be
-  * a finite value (because some entropy "files" like /dev/urandom have
-@@ -2581,6 +2585,7 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
-   curl_socket_t sockfd = conn->sock[sockindex];
-   struct ssl_connect_data *connssl = &conn->ssl[sockindex];
-   ctx_option_t ctx_options = 0;
-+  void *ssl_sessionid = NULL;
- 
- #ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
-   bool sni;
-@@ -3225,46 +3230,23 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
-   }
- #endif
- 
--  /* Check if there's a cached ID we can/should use here! */
--  if(SSL_SET_OPTION(primary.sessionid)) {
--    void *ssl_sessionid = NULL;
--    int data_idx = ossl_get_ssl_data_index();
--    int connectdata_idx = ossl_get_ssl_conn_index();
--    int sockindex_idx = ossl_get_ssl_sockindex_index();
--    int proxy_idx = ossl_get_proxy_index();
--
--    if(data_idx >= 0 && connectdata_idx >= 0 && sockindex_idx >= 0 &&
--       proxy_idx >= 0) {
--      /* Store the data needed for the "new session" callback.
--       * The sockindex is stored as a pointer to an array element. */
--      SSL_set_ex_data(backend->handle, data_idx, data);
--      SSL_set_ex_data(backend->handle, connectdata_idx, conn);
--      SSL_set_ex_data(backend->handle, sockindex_idx, conn->sock + sockindex);
--#ifndef CURL_DISABLE_PROXY
--      SSL_set_ex_data(backend->handle, proxy_idx, SSL_IS_PROXY() ? (void *) 1:
--                      NULL);
--#else
--      SSL_set_ex_data(backend->handle, proxy_idx, NULL);
--#endif
--
--    }
-+  ossl_associate_connection(data, conn, sockindex);
- 
--    Curl_ssl_sessionid_lock(data);
--    if(!Curl_ssl_getsessionid(data, conn, SSL_IS_PROXY() ? TRUE : FALSE,
--                              &ssl_sessionid, NULL, sockindex)) {
--      /* we got a session id, use it! */
--      if(!SSL_set_session(backend->handle, ssl_sessionid)) {
--        Curl_ssl_sessionid_unlock(data);
--        failf(data, "SSL: SSL_set_session failed: %s",
--              ossl_strerror(ERR_get_error(), error_buffer,
--                            sizeof(error_buffer)));
--        return CURLE_SSL_CONNECT_ERROR;
--      }
--      /* Informational message */
--      infof(data, "SSL re-using session ID\n");
-+  Curl_ssl_sessionid_lock(data);
-+  if(!Curl_ssl_getsessionid(data, conn, SSL_IS_PROXY() ? TRUE : FALSE,
-+                            &ssl_sessionid, NULL, sockindex)) {
-+    /* we got a session id, use it! */
-+    if(!SSL_set_session(backend->handle, ssl_sessionid)) {
-+      Curl_ssl_sessionid_unlock(data);
-+      failf(data, "SSL: SSL_set_session failed: %s",
-+            ossl_strerror(ERR_get_error(), error_buffer,
-+                          sizeof(error_buffer)));
-+      return CURLE_SSL_CONNECT_ERROR;
-     }
--    Curl_ssl_sessionid_unlock(data);
-+    /* Informational message */
-+    infof(data, "SSL re-using session ID\n");
-   }
-+  Curl_ssl_sessionid_unlock(data);
- 
- #ifndef CURL_DISABLE_PROXY
-   if(conn->proxy_ssl[sockindex].use) {
-@@ -4498,6 +4480,90 @@ static void *ossl_get_internals(struct ssl_connect_data *connssl,
-          (void *)backend->ctx : (void *)backend->handle;
- }
- 
-+static void ossl_associate_connection(struct Curl_easy *data,
-+                                      struct connectdata *conn,
-+                                      int sockindex)
-+{
-+  struct ssl_connect_data *connssl = &conn->ssl[sockindex];
-+  struct ssl_backend_data *backend = connssl->backend;
-+
-+  /* If we don't have SSL context, do nothing. */
-+  if(!backend->handle)
-+    return;
-+
-+  if(SSL_SET_OPTION(primary.sessionid)) {
-+    int data_idx = ossl_get_ssl_data_index();
-+    int connectdata_idx = ossl_get_ssl_conn_index();
-+    int sockindex_idx = ossl_get_ssl_sockindex_index();
-+    int proxy_idx = ossl_get_proxy_index();
-+
-+    if(data_idx >= 0 && connectdata_idx >= 0 && sockindex_idx >= 0 &&
-+       proxy_idx >= 0) {
-+      /* Store the data needed for the "new session" callback.
-+       * The sockindex is stored as a pointer to an array element. */
-+      SSL_set_ex_data(backend->handle, data_idx, data);
-+      SSL_set_ex_data(backend->handle, connectdata_idx, conn);
-+      SSL_set_ex_data(backend->handle, sockindex_idx, conn->sock + sockindex);
-+#ifndef CURL_DISABLE_PROXY
-+      SSL_set_ex_data(backend->handle, proxy_idx, SSL_IS_PROXY() ? (void *) 1:
-+                      NULL);
-+#else
-+      SSL_set_ex_data(backend->handle, proxy_idx, NULL);
-+#endif
-+    }
-+  }
-+}
-+
-+/*
-+ * Starting with TLS 1.3, the ossl_new_session_cb callback gets called after
-+ * the handshake. If the transfer that sets up the callback gets killed before
-+ * this callback arrives, we must make sure to properly clear the data to
-+ * avoid UAF problems. A future optimization could be to instead store another
-+ * transfer that might still be using the same connection.
-+ */
-+
-+static void ossl_disassociate_connection(struct Curl_easy *data,
-+                                         int sockindex)
-+{
-+  struct connectdata *conn = data->conn;
-+  struct ssl_connect_data *connssl = &conn->ssl[sockindex];
-+  struct ssl_backend_data *backend = connssl->backend;
-+
-+  /* If we don't have SSL context, do nothing. */
-+  if(!backend->handle)
-+    return;
-+
-+  if(SSL_SET_OPTION(primary.sessionid)) {
-+    bool isproxy = FALSE;
-+    bool incache;
-+    void *old_ssl_sessionid = NULL;
-+    int data_idx = ossl_get_ssl_data_index();
-+    int connectdata_idx = ossl_get_ssl_conn_index();
-+    int sockindex_idx = ossl_get_ssl_sockindex_index();
-+    int proxy_idx = ossl_get_proxy_index();
-+
-+    if(data_idx >= 0 && connectdata_idx >= 0 && sockindex_idx >= 0 &&
-+       proxy_idx >= 0) {
-+      /* Invalidate the session cache entry, if any */
-+      isproxy = SSL_get_ex_data(backend->handle, proxy_idx) ? TRUE : FALSE;
-+
-+      /* Disable references to data in "new session" callback to avoid
-+       * accessing a stale pointer. */
-+      SSL_set_ex_data(backend->handle, data_idx, NULL);
-+      SSL_set_ex_data(backend->handle, connectdata_idx, NULL);
-+      SSL_set_ex_data(backend->handle, sockindex_idx, NULL);
-+      SSL_set_ex_data(backend->handle, proxy_idx, NULL);
-+    }
-+
-+    Curl_ssl_sessionid_lock(data);
-+    incache = !(Curl_ssl_getsessionid(data, conn, isproxy,
-+                                      &old_ssl_sessionid, NULL, sockindex));
-+    if(incache)
-+      Curl_ssl_delsessionid(data, old_ssl_sessionid);
-+    Curl_ssl_sessionid_unlock(data);
-+  }
-+}
-+
- const struct Curl_ssl Curl_ssl_openssl = {
-   { CURLSSLBACKEND_OPENSSL, "openssl" }, /* info */
- 
-@@ -4533,10 +4599,12 @@ const struct Curl_ssl Curl_ssl_openssl = {
-   ossl_engines_list,        /* engines_list */
-   Curl_none_false_start,    /* false_start */
- #if (OPENSSL_VERSION_NUMBER >= 0x0090800fL) && !defined(OPENSSL_NO_SHA256)
--  ossl_sha256sum            /* sha256sum */
-+  ossl_sha256sum,           /* sha256sum */
- #else
--  NULL                      /* sha256sum */
-+  NULL,                     /* sha256sum */
- #endif
-+  ossl_associate_connection, /* associate_connection */
-+  ossl_disassociate_connection /* disassociate_connection */
- };
- 
- #endif /* USE_OPENSSL */
-diff --git a/lib/vtls/rustls.c b/lib/vtls/rustls.c
-index 9dfbd2c3c4c2..161f3bf51d75 100644
---- a/lib/vtls/rustls.c
-+++ b/lib/vtls/rustls.c
-@@ -604,7 +604,9 @@ const struct Curl_ssl Curl_ssl_rustls = {
-   Curl_none_set_engine_default,    /* set_engine_default */
-   Curl_none_engines_list,          /* engines_list */
-   Curl_none_false_start,           /* false_start */
--  NULL                             /* sha256sum */
-+  NULL,                            /* sha256sum */
-+  NULL,                            /* associate_connection */
-+  NULL                             /* disassociate_connection */
- };
- 
- #endif /* USE_RUSTLS */
-diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c
-index dba7072273a9..2bcf11db2576 100644
---- a/lib/vtls/schannel.c
-+++ b/lib/vtls/schannel.c
-@@ -329,7 +329,7 @@ get_alg_id_by_name(char *name)
- 
- static CURLcode
- set_ssl_ciphers(SCHANNEL_CRED *schannel_cred, char *ciphers,
--                int *algIds)
-+                ALG_ID *algIds)
- {
-   char *startCur = ciphers;
-   int algCount = 0;
-@@ -2433,7 +2433,9 @@ const struct Curl_ssl Curl_ssl_schannel = {
-   Curl_none_set_engine_default,      /* set_engine_default */
-   Curl_none_engines_list,            /* engines_list */
-   Curl_none_false_start,             /* false_start */
--  schannel_sha256sum                 /* sha256sum */
-+  schannel_sha256sum,                /* sha256sum */
-+  NULL,                              /* associate_connection */
-+  NULL                               /* disassociate_connection */
- };
- 
- #endif /* USE_SCHANNEL */
-diff --git a/lib/vtls/sectransp.c b/lib/vtls/sectransp.c
-index 4276b89cfb3a..8b1e84ed7715 100644
---- a/lib/vtls/sectransp.c
-+++ b/lib/vtls/sectransp.c
-@@ -3453,6 +3453,8 @@ const struct Curl_ssl Curl_ssl_sectransp = {
-   Curl_none_engines_list,             /* engines_list */
-   sectransp_false_start,              /* false_start */
-   sectransp_sha256sum                 /* sha256sum */
-+  NULL,                               /* associate_connection */
-+  NULL                                /* disassociate_connection */
- };
- 
- #ifdef __clang__
-diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c
-index d63fd5c76386..65f4f773dd63 100644
---- a/lib/vtls/vtls.c
-+++ b/lib/vtls/vtls.c
-@@ -586,6 +586,25 @@ CURLcode Curl_ssl_addsessionid(struct Curl_easy *data,
-   return CURLE_OK;
- }
- 
-+void Curl_ssl_associate_conn(struct Curl_easy *data,
-+                             struct connectdata *conn)
-+{
-+  if(Curl_ssl->associate_connection) {
-+    Curl_ssl->associate_connection(data, conn, FIRSTSOCKET);
-+    if(conn->sock[SECONDARYSOCKET] && conn->bits.sock_accepted)
-+      Curl_ssl->associate_connection(data, conn, SECONDARYSOCKET);
-+  }
-+}
-+
-+void Curl_ssl_detach_conn(struct Curl_easy *data,
-+                          struct connectdata *conn)
-+{
-+  if(Curl_ssl->disassociate_connection) {
-+    Curl_ssl->disassociate_connection(data, FIRSTSOCKET);
-+    if(conn->sock[SECONDARYSOCKET] && conn->bits.sock_accepted)
-+      Curl_ssl->disassociate_connection(data, SECONDARYSOCKET);
-+  }
-+}
- 
- void Curl_ssl_close_all(struct Curl_easy *data)
- {
-@@ -1214,7 +1233,9 @@ static const struct Curl_ssl Curl_ssl_multi = {
-   Curl_none_set_engine_default,      /* set_engine_default */
-   Curl_none_engines_list,            /* engines_list */
-   Curl_none_false_start,             /* false_start */
--  NULL                               /* sha256sum */
-+  NULL,                              /* sha256sum */
-+  NULL,                              /* associate_connection */
-+  NULL                               /* disassociate_connection */
- };
- 
- const struct Curl_ssl *Curl_ssl =
-diff --git a/lib/vtls/vtls.h b/lib/vtls/vtls.h
-index a22d526ca810..7f93e7aedb21 100644
---- a/lib/vtls/vtls.h
-+++ b/lib/vtls/vtls.h
-@@ -84,6 +84,11 @@ struct Curl_ssl {
-   bool (*false_start)(void);
-   CURLcode (*sha256sum)(const unsigned char *input, size_t inputlen,
-                     unsigned char *sha256sum, size_t sha256sumlen);
-+
-+  void (*associate_connection)(struct Curl_easy *data,
-+                               struct connectdata *conn,
-+                               int sockindex);
-+  void (*disassociate_connection)(struct Curl_easy *data, int sockindex);
- };
- 
- #ifdef USE_SSL
-@@ -283,6 +288,11 @@ bool Curl_ssl_cert_status_request(void);
- 
- bool Curl_ssl_false_start(void);
- 
-+void Curl_ssl_associate_conn(struct Curl_easy *data,
-+                             struct connectdata *conn);
-+void Curl_ssl_detach_conn(struct Curl_easy *data,
-+                          struct connectdata *conn);
-+
- #define SSL_SHUTDOWN_TIMEOUT 10000 /* ms */
- 
- #else /* if not USE_SSL */
-@@ -309,6 +319,8 @@ bool Curl_ssl_false_start(void);
- #define Curl_ssl_cert_status_request() FALSE
- #define Curl_ssl_false_start() FALSE
- #define Curl_ssl_tls13_ciphersuites() FALSE
-+#define Curl_ssl_associate_conn(a,b) Curl_nop_stmt
-+#define Curl_ssl_detach_conn(a,b) Curl_nop_stmt
- #endif
- 
- #endif /* HEADER_CURL_VTLS_H */
-diff --git a/lib/vtls/wolfssl.c b/lib/vtls/wolfssl.c
-index 02fcd236697e..60e27e366252 100644
---- a/lib/vtls/wolfssl.c
-+++ b/lib/vtls/wolfssl.c
-@@ -1125,7 +1125,9 @@ const struct Curl_ssl Curl_ssl_wolfssl = {
-   Curl_none_set_engine_default,    /* set_engine_default */
-   Curl_none_engines_list,          /* engines_list */
-   Curl_none_false_start,           /* false_start */
--  wolfssl_sha256sum                /* sha256sum */
-+  wolfssl_sha256sum,               /* sha256sum */
-+  NULL,                            /* associate_connection */
-+  NULL                             /* disassociate_connection */
- };
- 
- #endif
diff --git a/nixpkgs/pkgs/tools/networking/curl/default.nix b/nixpkgs/pkgs/tools/networking/curl/default.nix
index b3572e01c96d..a5abbc26a741 100644
--- a/nixpkgs/pkgs/tools/networking/curl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/curl/default.nix
@@ -3,7 +3,7 @@
 , idnSupport ? false, libidn ? null
 , ldapSupport ? false, openldap ? null
 , zlibSupport ? true, zlib ? null
-, sslSupport ? zlibSupport, openssl ? null
+, opensslSupport ? zlibSupport, openssl ? null
 , gnutlsSupport ? false, gnutls ? null
 , wolfsslSupport ? false, wolfssl ? null
 , scpSupport ? zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin, libssh2 ? null
@@ -30,10 +30,10 @@ assert http2Support -> nghttp2 != null;
 assert idnSupport -> libidn != null;
 assert ldapSupport -> openldap != null;
 assert zlibSupport -> zlib != null;
-assert sslSupport -> openssl != null;
-assert !(gnutlsSupport && sslSupport);
+assert opensslSupport -> openssl != null;
+assert !(gnutlsSupport && opensslSupport);
 assert !(gnutlsSupport && wolfsslSupport);
-assert !(sslSupport && wolfsslSupport);
+assert !(opensslSupport && wolfsslSupport);
 assert gnutlsSupport -> gnutls != null;
 assert wolfsslSupport -> wolfssl != null;
 assert scpSupport -> libssh2 != null;
@@ -43,20 +43,18 @@ assert gssSupport -> libkrb5 != null;
 
 stdenv.mkDerivation rec {
   pname = "curl";
-  version = "7.76.1";
+  version = "7.80.0";
 
   src = fetchurl {
     urls = [
       "https://curl.haxx.se/download/${pname}-${version}.tar.bz2"
       "https://github.com/curl/curl/releases/download/${lib.replaceStrings ["."] ["_"] pname}-${version}/${pname}-${version}.tar.bz2"
     ];
-    sha256 = "1scmfrp0c27pkd7yva9k50miprjpsyfbb33apx72qc9igm6ii3ks";
+    sha256 = "170qb2w2p5fga0vqhhnzi417z4h4vy764sz16pzhm5fd9471a3fx";
   };
 
   patches = [
-    ./CVE-2021-22897.patch
-    ./CVE-2021-22898.patch
-    ./CVE-2021-22901.patch
+    ./7.79.1-darwin-no-systemconfiguration.patch
   ];
 
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
@@ -78,7 +76,7 @@ stdenv.mkDerivation rec {
     optional zlibSupport zlib ++
     optional gssSupport libkrb5 ++
     optional c-aresSupport c-ares ++
-    optional sslSupport openssl ++
+    optional opensslSupport openssl ++
     optional gnutlsSupport gnutls ++
     optional wolfsslSupport wolfssl ++
     optional scpSupport libssh2 ++
@@ -98,17 +96,17 @@ stdenv.mkDerivation rec {
       # The build fails when using wolfssl with --with-ca-fallback
       (lib.withFeature (!wolfsslSupport) "ca-fallback")
       "--disable-manual"
-      (lib.withFeatureAs sslSupport "ssl" openssl.dev)
-      (lib.withFeatureAs gnutlsSupport "gnutls" gnutls.dev)
-      (lib.withFeatureAs scpSupport "libssh2" libssh2.dev)
+      (lib.withFeatureAs opensslSupport "openssl" (lib.getDev openssl))
+      (lib.withFeatureAs gnutlsSupport "gnutls" (lib.getDev gnutls))
+      (lib.withFeatureAs scpSupport "libssh2" (lib.getDev libssh2))
       (lib.enableFeature ldapSupport "ldap")
       (lib.enableFeature ldapSupport "ldaps")
-      (lib.withFeatureAs idnSupport "libidn" libidn.dev)
+      (lib.withFeatureAs idnSupport "libidn" (lib.getDev libidn))
       (lib.withFeature brotliSupport "brotli")
     ]
-    ++ lib.optional wolfsslSupport "--with-wolfssl=${wolfssl.dev}"
+    ++ lib.optional wolfsslSupport "--with-wolfssl=${lib.getDev wolfssl}"
     ++ lib.optional c-aresSupport "--enable-ares=${c-ares}"
-    ++ lib.optional gssSupport "--with-gssapi=${libkrb5.dev}"
+    ++ lib.optional gssSupport "--with-gssapi=${lib.getDev libkrb5}"
        # For the 'urandom', maybe it should be a cross-system option
     ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
        "--with-random=/dev/urandom"
@@ -128,7 +126,7 @@ stdenv.mkDerivation rec {
     # Install completions
     make -C scripts install
   '' + lib.optionalString scpSupport ''
-    sed '/^dependency_libs/s|${libssh2.dev}|${libssh2.out}|' -i "$out"/lib/*.la
+    sed '/^dependency_libs/s|${lib.getDev libssh2}|${lib.getLib libssh2}|' -i "$out"/lib/*.la
   '' + lib.optionalString gnutlsSupport ''
     ln $out/lib/libcurl.so $out/lib/libcurl-gnutls.so
     ln $out/lib/libcurl.so $out/lib/libcurl-gnutls.so.4
@@ -136,12 +134,12 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    inherit sslSupport openssl;
+    inherit opensslSupport openssl;
   };
 
   meta = with lib; {
     description = "A command line tool for transferring files with URL syntax";
-    homepage    = "https://curl.haxx.se/";
+    homepage    = "https://curl.se/";
     license = licenses.curl;
     maintainers = with maintainers; [ lovek323 ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/tools/networking/curlie/default.nix b/nixpkgs/pkgs/tools/networking/curlie/default.nix
index 9d3e4025a991..2e6683ef4ea3 100644
--- a/nixpkgs/pkgs/tools/networking/curlie/default.nix
+++ b/nixpkgs/pkgs/tools/networking/curlie/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "curlie";
-  version = "1.6.2";
+  version = "1.6.7";
 
   src= fetchFromGitHub {
     owner = "rs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-2CZpqc1MnAY6M1UFakKLaqGjaifw+7bN4hxc0jWgSps=";
+    sha256 = "sha256-uWLJWhsqJaLji2JSuVX8Vu929AdozhtAPwsqXdpEt84=";
   };
 
   vendorSha256 = "sha256-tYZtnD7RUurhl8yccXlTIvOxybBJITM+it1ollYJ1OI=";
diff --git a/nixpkgs/pkgs/tools/networking/dd-agent/datadog-agent.nix b/nixpkgs/pkgs/tools/networking/dd-agent/datadog-agent.nix
index 7f500b2c09fc..12ac37af7105 100644
--- a/nixpkgs/pkgs/tools/networking/dd-agent/datadog-agent.nix
+++ b/nixpkgs/pkgs/tools/networking/dd-agent/datadog-agent.nix
@@ -10,15 +10,15 @@ let
 
 in buildGoModule rec {
   pname = "datadog-agent";
-  version = "7.30.2";
+  version = "7.32.4";
 
   src = fetchFromGitHub {
     inherit owner repo;
     rev = version;
-    sha256 = "17ahrxhb87sj7f04wg44xv4k9wrlvf04j92ac5936a6maygp01rd";
+    sha256 = "sha256-/vHNxcJQb0QHwFq6lxsSh9zc+Bkhb2SUymI5jEzkjm4=";
   };
 
-  vendorSha256 = "06ryy501vibc6n14qwg94394c76l060525y6qg261qb748mbi8qi";
+  vendorSha256 = "sha256-LyXveLSa+p9GEzcKifTXweY8nJwPISwhboi8zBeBrMo=";
 
   subPackages = [
     "cmd/agent"
diff --git a/nixpkgs/pkgs/tools/networking/dhcp/default.nix b/nixpkgs/pkgs/tools/networking/dhcp/default.nix
index 7df04ac0c895..10418d978105 100644
--- a/nixpkgs/pkgs/tools/networking/dhcp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dhcp/default.nix
@@ -24,6 +24,14 @@ stdenv.mkDerivation rec {
         url = "https://gitlab.isc.org/isc-projects/dhcp/-/commit/6c7e61578b1b449272dbb40dd8b98d03dad8a57a.patch";
         sha256 = "1g37ix0yf9zza8ri8bg438ygcjviniblfyb20y4gzc8lysy28m8b";
       })
+
+      # Fix parallel build failure, the patch is pending upstream inclusion:
+      #  https://gitlab.isc.org/isc-projects/dhcp/-/merge_requests/76
+      (fetchpatch {
+        name = "parallel-make.patch";
+        url = "https://gitlab.isc.org/isc-projects/dhcp/-/commit/46d101b97c5a3b19a3f63f7b60e5f88994a64e22.patch";
+        sha256 = "1y3nsmqjzcg4bhp1xmqp47v7rkl3bpcildkx6mlrg255yvxapmdp";
+      })
     ];
 
   nativeBuildInputs = [ perl makeWrapper ];
@@ -43,7 +51,8 @@ stdenv.mkDerivation rec {
     "--sysconfdir=/etc"
     "--localstatedir=/var"
   ] ++ lib.optional stdenv.isLinux "--with-randomdev=/dev/random"
-    ++ lib.optionals (openldap != null) [ "--with-ldap" "--with-ldapcrypto" ];
+    ++ lib.optionals (openldap != null) [ "--with-ldap" "--with-ldapcrypto" ]
+    ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "BUILD_CC=$(CC_FOR_BUILD)";
 
   NIX_CFLAGS_COMPILE = builtins.toString [
     "-Wno-error=pointer-compare"
@@ -79,6 +88,8 @@ stdenv.mkDerivation rec {
       export AR='${stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar'
     '';
 
+  enableParallelBuilding = true;
+
   meta = with lib; {
     description = "Dynamic Host Configuration Protocol (DHCP) tools";
 
diff --git a/nixpkgs/pkgs/tools/networking/dhcpcd/default.nix b/nixpkgs/pkgs/tools/networking/dhcpcd/default.nix
index 0962335ad1a3..d60c87e51ff9 100644
--- a/nixpkgs/pkgs/tools/networking/dhcpcd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dhcpcd/default.nix
@@ -1,15 +1,21 @@
-{ lib, stdenv, fetchurl, fetchpatch, pkg-config, udev, runtimeShellPackage,
-runtimeShell }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, udev
+, runtimeShellPackage
+, runtimeShell
+, nixosTests
+, enablePrivSep ? true
+}:
 
 stdenv.mkDerivation rec {
-  # when updating this to >=7, check, see previous reverts:
-  # nix-build -A nixos.tests.networking.scripted.macvlan.x86_64-linux nixos/release-combined.nix
   pname = "dhcpcd";
-  version = "8.1.4";
+  version = "9.4.1";
 
   src = fetchurl {
     url = "mirror://roy/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0gf1qif25wy5lffzw39pi4sshmpxz1f4a1m9sglj7am1gaix3817";
+    sha256 = "sha256-gZNXY07+0epc9E7AGyTT0/iFL+yLQkmSXcxWZ8VON2w=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -22,19 +28,17 @@ stdenv.mkDerivation rec {
     substituteInPlace hooks/dhcpcd-run-hooks.in --replace /bin/sh ${runtimeShell}
   '';
 
-  patches = [
-    (fetchpatch {
-      name = "?id=114870290a8d3d696bc4049c32eef3eed03d6070";
-      url = "https://roy.marples.name/git/dhcpcd/commitdiff_plain/114870290a8d3d696bc4049c32eef3eed03d6070";
-      sha256 = "0kzpwjh2gzvl5lvlnw6lis610p67nassk3apns68ga2pyxlky8qb";
-    })
-  ];
-
   preConfigure = "patchShebangs ./configure";
 
   configureFlags = [
     "--sysconfdir=/etc"
     "--localstatedir=/var"
+  ]
+  ++ lib.optionals enablePrivSep [
+    "--enable-privsep"
+    # dhcpcd disables privsep if it can't find the default user,
+    # so we explicitly specify a user.
+    "--privsepuser=dhcpcd"
   ];
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
@@ -46,6 +50,8 @@ stdenv.mkDerivation rec {
   # Check that the udev plugin got built.
   postInstall = lib.optionalString (udev != null) "[ -e ${placeholder "out"}/lib/dhcpcd/dev/udev.so ]";
 
+  passthru.tests = { inherit (nixosTests.networking.scripted) macvlan dhcpSimple dhcpOneIf; };
+
   meta = with lib; {
     description = "A client for the Dynamic Host Configuration Protocol (DHCP)";
     homepage = "https://roy.marples.name/projects/dhcpcd";
diff --git a/nixpkgs/pkgs/tools/networking/dhcpdump/default.nix b/nixpkgs/pkgs/tools/networking/dhcpdump/default.nix
index b8bd1d88bf20..d940731c7c95 100644
--- a/nixpkgs/pkgs/tools/networking/dhcpdump/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dhcpdump/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "1.8";
 
   src = fetchurl {
-    url = "http://archive.ubuntu.com/ubuntu/pool/universe/d/dhcpdump/dhcpdump_${version}.orig.tar.gz";
+    url = "mirror://ubuntu/pool/universe/d/dhcpdump/dhcpdump_${version}.orig.tar.gz";
     sha256 = "143iyzkqvhj4dscwqs75jvfr4wvzrs11ck3fqn5p7yv2h50vjpkd";
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/djbdns/default.nix b/nixpkgs/pkgs/tools/networking/djbdns/default.nix
index 1b93d64d08f5..52f7e9a0fb55 100644
--- a/nixpkgs/pkgs/tools/networking/djbdns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/djbdns/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, glibc, dns-root-data } :
+{ lib, stdenv, fetchurl, glibc, dns-root-data, nixosTests } :
 
 let
   version = "1.05";
@@ -19,7 +19,14 @@ stdenv.mkDerivation {
     sha256 = "0j3baf92vkczr5fxww7rp1b7gmczxmmgrqc8w2dy7kgk09m85k9w";
   };
 
-  patches = [ ./hier.patch ./fix-nix-usernamespace-build.patch ];
+  patches = [
+    ./hier.patch
+    ./fix-nix-usernamespace-build.patch
+
+    # To fix https://github.com/NixOS/nixpkgs/issues/119066.
+    # Note that the NixOS test <nixpkgs/nixos/tests/tinydns.nix> tests for this.
+    ./softlimit.patch
+  ];
 
   postPatch = ''
     echo gcc -O2 -include ${glibc.dev}/include/errno.h > conf-cc
@@ -41,6 +48,10 @@ stdenv.mkDerivation {
     rm -rv djbdns-man;
   '';
 
+  passthru.tests = {
+    tinydns = nixosTests.tinydns;
+  };
+
   meta = with lib; {
     description = "A collection of Domain Name System tools";
     longDescription = "Includes software for all the fundamental DNS operations: DNS cache: finding addresses of Internet hosts; DNS server: publishing addresses of Internet hosts; and DNS client: talking to a DNS cache.";
diff --git a/nixpkgs/pkgs/tools/networking/djbdns/softlimit.patch b/nixpkgs/pkgs/tools/networking/djbdns/softlimit.patch
new file mode 100644
index 000000000000..68598703ef43
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/djbdns/softlimit.patch
@@ -0,0 +1,12 @@
+diff -Naur a/tinydns-conf.c b/tinydns-conf.c
+--- a/tinydns-conf.c	2001-02-11 21:11:45.000000000 +0000
++++ b/tinydns-conf.c	2021-11-08 17:23:06.181385437 +0000
+@@ -46,7 +46,7 @@
+
+   start("run");
+   outs("#!/bin/sh\nexec 2>&1\nexec envuidgid "); outs(user);
+-  outs(" envdir ./env softlimit -d300000 ");
++  outs(" envdir ./env softlimit -d4500000 ");
+   outs(auto_home); outs("/bin/tinydns\n");
+   finish();
+   perm(0755);
diff --git a/nixpkgs/pkgs/tools/networking/dnscrypt-proxy2/default.nix b/nixpkgs/pkgs/tools/networking/dnscrypt-proxy2/default.nix
index ced5b4774653..af4f1db4cd1d 100644
--- a/nixpkgs/pkgs/tools/networking/dnscrypt-proxy2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnscrypt-proxy2/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "dnscrypt-proxy2";
-  version = "2.1.0";
+  version = "2.1.1";
 
   vendorSha256 = null;
 
@@ -12,7 +12,7 @@ buildGoModule rec {
     owner = "DNSCrypt";
     repo = "dnscrypt-proxy";
     rev = version;
-    sha256 = "sha256-HU5iy1dJbCp/PHnJjLi6MM+axz5Nrlcad5GEkD2p874=";
+    sha256 = "sha256-BtH/h2HejXDWSoqWRTjZXMLYDRoMe8lSUDX6Gay1gA8=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/networking/dnsperf/default.nix b/nixpkgs/pkgs/tools/networking/dnsperf/default.nix
index bb63e05c0e14..96fa955a6b66 100644
--- a/nixpkgs/pkgs/tools/networking/dnsperf/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsperf/default.nix
@@ -1,51 +1,44 @@
-{ lib, stdenv, fetchurl, fetchFromGitHub, autoreconfHook, pkg-config
-, openssl, ldns, libck
+{ lib
+, stdenv
+, autoreconfHook
+, fetchFromGitHub
+, ldns
+, libck
+, nghttp2
+, openssl
+, pkg-config
 }:
 
 stdenv.mkDerivation rec {
   pname = "dnsperf";
-  version = "2.5.2";
+  version = "2.9.0";
 
-  # The same as the initial commit of the new GitHub repo (only readme changed).
   src = fetchFromGitHub {
     owner = "DNS-OARC";
     repo = "dnsperf";
     rev = "v${version}";
-    sha256 = "0dzi28z7hnyxbibwdsalvd93czf4d5pgmvrbn6hlh52znsn40gbb";
+    sha256 = "sha256-TWFi3oPTIKjBaw0Rq0AfZgxyVukvL2SWa2qvWw2WAQ4=";
   };
 
-  outputs = [ "out" "man" "doc" ];
-
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
 
   buildInputs = [
-    openssl
     ldns # optional for DDNS (but cheap anyway)
     libck
+    nghttp2
+    openssl
   ];
 
   doCheck = true;
 
-  # For now, keep including the old PDFs as well.
-  # https://github.com/DNS-OARC/dnsperf/issues/27
-  postInstall = let
-    src-doc = fetchurl {
-      url = "ftp://ftp.nominum.com/pub/nominum/dnsperf/2.1.0.0/"
-          + "dnsperf-src-2.1.0.0-1.tar.gz";
-      sha256 = "03kfc65s5a9csa5i7xjsv0psq144k8d9yw7xlny61bg1h2kg1db4";
-    };
-  in ''
-    tar xf '${src-doc}'
-    cp ./dnsperf-src-*/doc/*.pdf "$doc/share/doc/dnsperf/"
-  '';
-
   meta = with lib; {
-    outputsToInstall = outputs; # The man pages and docs are likely useful to most.
-
     description = "Tools for DNS benchmaring";
-    homepage = "https://github.com/DNS-OARC/dnsperf";
+    homepage = "https://www.dns-oarc.net/tools/dnsperf";
     license = licenses.isc;
     platforms = platforms.unix;
-    maintainers = [ maintainers.vcunat ];
+    maintainers = with maintainers; [ vcunat ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix b/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
index b7b75037ebb0..8a98600f0dcf 100644
--- a/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
@@ -1,24 +1,26 @@
-{ lib, fetchFromGitHub, buildGoModule }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "dnsproxy";
-  version = "0.39.7";
+  version = "0.40.1";
 
   src = fetchFromGitHub {
     owner = "AdguardTeam";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jU5O+t8muaIM7JhuNhqfWh1pWezaFvdg+oRPYAQpIkk=";
+    sha256 = "sha256-tvYurE+/ZPJeV/ZKMIC0yrwzomxd/3y0KtChei/HO6c=";
   };
 
   vendorSha256 = null;
 
+  ldflags = [ "-s" "-w" "-X" "main.VersionString=${version}" ];
+
   doCheck = false;
 
   meta = with lib; {
     description = "Simple DNS proxy with DoH, DoT, and DNSCrypt support";
     homepage = "https://github.com/AdguardTeam/dnsproxy";
-    license = licenses.gpl3;
+    license = licenses.asl20;
     maintainers = with maintainers; [ contrun ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dnstwist/default.nix b/nixpkgs/pkgs/tools/networking/dnstwist/default.nix
index e19b4dabd78b..034b69d2ecd7 100644
--- a/nixpkgs/pkgs/tools/networking/dnstwist/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnstwist/default.nix
@@ -5,14 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "dnstwist";
-  version = "20201228";
-  disabled = python3.pythonOlder "3.6";
+  version = "20211204";
 
   src = fetchFromGitHub {
     owner = "elceef";
     repo = pname;
     rev = version;
-    sha256 = "0bxshi1p0va2f449v6vsm8bav5caa3r3pyknj3zf4n5rvk6say70";
+    sha256 = "sha256-D7qesxkJMx/N0oyaw3ev007SLCm4RKhZSNW22CNgKPw=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -26,7 +25,10 @@ python3.pkgs.buildPythonApplication rec {
 
   # Project has no tests
   doCheck = false;
-  pythonImportsCheck = [ "dnstwist" ];
+
+  pythonImportsCheck = [
+    "dnstwist"
+  ];
 
   meta = with lib; {
     description = "Domain name permutation engine for detecting homograph phishing attacks";
diff --git a/nixpkgs/pkgs/tools/networking/dogdns/default.nix b/nixpkgs/pkgs/tools/networking/dogdns/default.nix
index 1374e4473c07..c101615855f6 100644
--- a/nixpkgs/pkgs/tools/networking/dogdns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dogdns/default.nix
@@ -1,10 +1,11 @@
-{ lib, stdenv
-, fetchFromGitHub
+{ lib
 , rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, stdenv
 , pkg-config
 , openssl
 , Security
-, installShellFiles
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -34,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://dns.lookup.dog";
     license = licenses.eupl12;
     maintainers = with maintainers; [ bbigras ];
+    mainProgram = "dog";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/driftnet/default.nix b/nixpkgs/pkgs/tools/networking/driftnet/default.nix
index 042f29d3ca31..1f489b7fbc71 100644
--- a/nixpkgs/pkgs/tools/networking/driftnet/default.nix
+++ b/nixpkgs/pkgs/tools/networking/driftnet/default.nix
@@ -35,6 +35,8 @@ stdenv.mkDerivation rec {
       url = "https://github.com/deiv/driftnet/pull/33/commits/bef5f3509ab5710161e9e21ea960a997eada534f.patch";
       sha256 = "1b7p9fkgp7dxv965l7q7y632s80h3nnrkaqnak2h0hakwv0i4pvm";
     })
+    # https://github.com/deiv/driftnet/issues/37
+    ./libwebsockets-4.3.0.patch
   ];
 
   enableParallelBuilding = true;
@@ -59,6 +61,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/deiv/driftnet";
     maintainers = with maintainers; [ offline ];
     platforms = platforms.linux ++ platforms.darwin;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/driftnet/fix-darwin-build.patch b/nixpkgs/pkgs/tools/networking/driftnet/fix-darwin-build.patch
deleted file mode 100644
index d1bde0f2e605..000000000000
--- a/nixpkgs/pkgs/tools/networking/driftnet/fix-darwin-build.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff --git a/src/compat/compat.h b/src/compat/compat.h
-index 6add422..ea80406 100644
---- a/src/compat/compat.h
-+++ b/src/compat/compat.h
-@@ -17,7 +17,7 @@
-     #include <config.h>
- #endif
- 
--#ifdef __FreeBSD__
-+#if defined(__FreeBSD__) || defined(__APPLE__)
-     #include <sys/types.h>
- #endif
- 
-diff --git a/src/network/layer2.c b/src/network/layer2.c
-index 763f0ac..2497b72 100644
---- a/src/network/layer2.c
-+++ b/src/network/layer2.c
-@@ -14,7 +14,7 @@
- 
- #include <string.h>
- 
--#ifdef __FreeBSD__
-+#if defined(__FreeBSD__) || defined(__APPLE__)
- #include <netinet/in_systm.h>
- #include <netinet/in.h>
- #else
-@@ -29,7 +29,7 @@
- /*
-  * Freebsd and Cygwin doesn't define 'ethhdr'
-  */
--#if defined(__FreeBSD__) || defined(__CYGWIN__)
-+#if defined(__FreeBSD__) || defined(__CYGWIN__) || defined(__APPLE__)
- 
- #define ETH_ALEN	6			/* Octets in one ethernet addr	 */
- #define ETH_P_IP	0x0800		/* Internet Protocol packet	*/
-diff --git a/src/network/layer3.c b/src/network/layer3.c
-index 7864126..aae2041 100644
---- a/src/network/layer3.c
-+++ b/src/network/layer3.c
-@@ -15,7 +15,7 @@
- #include <string.h>
- #include <assert.h>
- 
--#ifdef __FreeBSD__
-+#if defined(__FreeBSD__) || defined(__APPLE__)
- #include <netinet/in_systm.h>
- #include <netinet/in.h>
- #include <sys/socket.h>
-diff --git a/src/pid.c b/src/pid.c
-index 621834e..94e7dcc 100644
---- a/src/pid.c
-+++ b/src/pid.c
-@@ -14,7 +14,7 @@
- 
- #include "compat/compat.h"
- 
--#ifdef __FreeBSD__
-+#if defined(__FreeBSD__) || defined(__APPLE__)
- #include <sys/stat.h>
- #endif
- #include <fcntl.h>
diff --git a/nixpkgs/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch b/nixpkgs/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch
new file mode 100644
index 000000000000..5e5cfd50af3e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch
@@ -0,0 +1,12 @@
+diff --git a/src/http_display/httpd.c b/src/http_display/httpd.c
+index f4709ef..7921d23 100644
+--- a/src/http_display/httpd.c
++++ b/src/http_display/httpd.c
+@@ -191,7 +191,6 @@ static void * http_server_dispatch(void *arg)
+         LWSMPRO_FILE,                  /* mount type is a directory in a filesystem */
+         1,                                     /* strlen("/"), ie length of the mountpoint */
+         NULL,
+-        { NULL, NULL } // sentinel
+     };
+
+     memset(&info, 0, sizeof info);
diff --git a/nixpkgs/pkgs/tools/networking/drill/default.nix b/nixpkgs/pkgs/tools/networking/drill/default.nix
index f29a7ee705f4..beb931f8d1b6 100644
--- a/nixpkgs/pkgs/tools/networking/drill/default.nix
+++ b/nixpkgs/pkgs/tools/networking/drill/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , rustPlatform
 , fetchFromGitHub
 , pkg-config
@@ -19,15 +20,20 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "04gj9gaysjcm2d81ds2raak847hr8w84jgfdwqd51wi8xm32w5jf";
 
-  nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
-  buildInputs = [ ]
-    ++ lib.optionals stdenv.isLinux [ openssl ]
-    ++ lib.optionals stdenv.isDarwin [ Security ];
+  nativeBuildInputs = lib.optionals stdenv.isLinux [
+    pkg-config
+  ];
+
+  buildInputs = lib.optionals stdenv.isLinux [
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    Security
+  ];
 
   meta = with lib; {
     description = "HTTP load testing application inspired by Ansible syntax";
     homepage = "https://github.com/fcsonline/drill";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ Br1ght0ne ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/easyrsa/2.x.nix b/nixpkgs/pkgs/tools/networking/easyrsa/2.x.nix
index 52cf2082d63f..b88aeda0fc5a 100644
--- a/nixpkgs/pkgs/tools/networking/easyrsa/2.x.nix
+++ b/nixpkgs/pkgs/tools/networking/easyrsa/2.x.nix
@@ -1,12 +1,21 @@
-{ lib, stdenv, fetchurl, autoreconfHook, makeWrapper
-, gnugrep, openssl }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, makeWrapper
+, gnugrep
+, openssl
+}:
 
-stdenv.mkDerivation {
-  name = "easyrsa-2.2.0";
+stdenv.mkDerivation rec {
+  pname = "easyrsa";
+  version = "2.2.0";
 
-  src = fetchurl {
-    url = "https://github.com/OpenVPN/easy-rsa/archive/v2.2.0.tar.gz";
-    sha256 = "1xq4by5frb6ikn53ss3y8v7ss639dccxfq8jfrbk07ynkmk668qk";
+  src = fetchFromGitHub {
+    owner = "OpenVPN";
+    repo = "easy-rsa";
+    rev = "v${version}";
+    sha256 = "sha256-zTdk8mv+gC/SHK813wZ6CWZf9Jm2XkKfAPU3feFpAkY=";
   };
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/tools/networking/eggdrop/default.nix b/nixpkgs/pkgs/tools/networking/eggdrop/default.nix
index 79ae5a9713be..a294267bef60 100644
--- a/nixpkgs/pkgs/tools/networking/eggdrop/default.nix
+++ b/nixpkgs/pkgs/tools/networking/eggdrop/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     license = licenses.gpl2;
     platforms = platforms.unix;
-    homepage = "http://www.eggheads.org";
+    homepage = "https://www.eggheads.org";
     description = "An Internet Relay Chat (IRC) bot";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/eternal-terminal/default.nix b/nixpkgs/pkgs/tools/networking/eternal-terminal/default.nix
index 21bd75a3ebae..7724d2d89fdc 100644
--- a/nixpkgs/pkgs/tools/networking/eternal-terminal/default.nix
+++ b/nixpkgs/pkgs/tools/networking/eternal-terminal/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "eternal-terminal";
-  version = "6.1.8";
+  version = "6.1.9";
 
   src = fetchFromGitHub {
     owner = "MisterTea";
     repo = "EternalTerminal";
     rev = "et-v${version}";
-    sha256 = "sha256-VSJ6AoVBvlCdKSirSDqsemixF+kAnvPgBQlyJxjoPcs=";
+    sha256 = "0kpabxpy779ppkaqaigq0x34ymz1jcwpsa78rm6nr55mdap2xxv6";
   };
 
   cmakeFlags= [
diff --git a/nixpkgs/pkgs/tools/networking/fakeroute/default.nix b/nixpkgs/pkgs/tools/networking/fakeroute/default.nix
index 025eef72332f..6e5fbdb13d28 100644
--- a/nixpkgs/pkgs/tools/networking/fakeroute/default.nix
+++ b/nixpkgs/pkgs/tools/networking/fakeroute/default.nix
@@ -1,14 +1,18 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "fakeroute";
   version = "0.3";
 
-  src = fetchurl {
-    url = "https://moxie.org/software/fakeroute/${pname}-${version}.tar.gz";
-    sha256 = "1sp342rxgm1gz4mvi5vvz1knz7kn9px9s39ii3jdjp4ks7lr5c8f";
+  src = fetchFromGitHub {
+    owner = "museoa";
+    repo = "fakeroute";
+    rev = "f8cb9c0ae3abb4c0662d9e1fcac67eefeeac3963";
+    sha256 = "12dhahwlpjzv79wpdpryjihamfbh4d8cfzfw4wi1jkl0dv2d41jg";
   };
 
+  sourceRoot = "source/fakeroute-0.3";
+
   meta = with lib; {
     description = ''
       Makes your machine appear to be anywhere on the internet
diff --git a/nixpkgs/pkgs/tools/networking/fast-ssh/default.nix b/nixpkgs/pkgs/tools/networking/fast-ssh/default.nix
new file mode 100644
index 000000000000..912cac758650
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/fast-ssh/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fast-ssh";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "julien-r44";
+    repo = "fast-ssh";
+    rev = "v${version}";
+    sha256 = "sha256-eHJdMe8RU6Meg/9+NCfIneD5BqNUc2yIiQ8Z5UqUBUI=";
+  };
+
+  cargoSha256 = "sha256-sIQNoH3UWX3SwCFCPZEREIFR7C28ml4oGsrq6wuOAT0=";
+
+  buildInputs = lib.optional stdenv.isDarwin Security;
+
+  meta = with lib; {
+    description = "TUI tool to use the SSH config for connections";
+    homepage = "https://github.com/julien-r44/fast-ssh";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/fastd/default.nix b/nixpkgs/pkgs/tools/networking/fastd/default.nix
index 8d1594b8187d..47007e1646ee 100644
--- a/nixpkgs/pkgs/tools/networking/fastd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/fastd/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   ];
 
   # some options are only available on x86
-  mesonFlags = lib.optionals (!stdenv.isx86_64 && !stdenv.isi686) [
+  mesonFlags = lib.optionals (!stdenv.hostPlatform.isx86) [
     "-Dcipher_salsa20_xmm=disabled"
     "-Dcipher_salsa2012_xmm=disabled"
     "-Dmac_ghash_pclmulqdq=disabled"
diff --git a/nixpkgs/pkgs/tools/networking/ferm/default.nix b/nixpkgs/pkgs/tools/networking/ferm/default.nix
index 29f9481fe328..580ca848c62b 100644
--- a/nixpkgs/pkgs/tools/networking/ferm/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ferm/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, makeWrapper, perl, ebtables, ipset, iptables, nixosTests }:
+{ lib, stdenv, fetchurl, makeWrapper, perl, iptables, nixosTests }:
 
 let
   inherit (lib.versions) majorMinor;
@@ -23,7 +23,7 @@ in stdenv.mkDerivation rec {
   postInstall = ''
     rm -r $out/lib/systemd
     for i in "$out/sbin/"*; do
-      wrapProgram "$i" --prefix PATH : "${lib.makeBinPath [ iptables ipset ebtables ]}"
+      wrapProgram "$i" --prefix PATH : "${lib.makeBinPath [ iptables ]}"
     done
   '';
 
diff --git a/nixpkgs/pkgs/tools/networking/findomain/default.nix b/nixpkgs/pkgs/tools/networking/findomain/default.nix
index 37499757e757..09524b80895f 100644
--- a/nixpkgs/pkgs/tools/networking/findomain/default.nix
+++ b/nixpkgs/pkgs/tools/networking/findomain/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "findomain";
-  version = "5.0.0";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = "Edu4rdSHL";
     repo = pname;
     rev = version;
-    sha256 = "sha256-xuabmlpejQVN8pYCNa97aL2IJUAgV7zLXpkEIp9SZRI=";
+    sha256 = "sha256-nfpVW+Y6+YtMhDepj2DbnzItH11zABlnEs9c0FzfouA=";
   };
 
-  cargoSha256 = "sha256-hrgTWB5D0eKmfuR+lrMN4mx6yGomHe/jUJxw2uyrjHg=";
+  cargoSha256 = "sha256-s7xikSZx29zv8TD/YOTckCUh/8MBBIdZOUUwfkVZfx8=";
 
   nativeBuildInputs = [ installShellFiles perl ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
diff --git a/nixpkgs/pkgs/tools/networking/flannel/default.nix b/nixpkgs/pkgs/tools/networking/flannel/default.nix
index 86010f4adb91..3bb1ab38e6b3 100644
--- a/nixpkgs/pkgs/tools/networking/flannel/default.nix
+++ b/nixpkgs/pkgs/tools/networking/flannel/default.nix
@@ -1,26 +1,33 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
 with lib;
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "flannel";
-  version = "0.13.0";
+  version = "0.15.1";
   rev = "v${version}";
 
-  goPackagePath = "github.com/coreos/flannel";
+  vendorSha256 = null;
 
   src = fetchFromGitHub {
     inherit rev;
-    owner = "coreos";
+    owner = "flannel-io";
     repo = "flannel";
-    sha256 = "0mmswnaybwpf18h832haapcs5b63wn5w2hax0smm3inldiggsbw8";
+    sha256 = "1p4rz4kdiif8i78zgxhw6dd0c1bq159f6l1idvig5apph7zi2bwm";
   };
 
+  ldflags = [ "-X github.com/flannel-io/flannel/version.Version=${rev}" ];
+
+  # TestRouteCache/TestV6RouteCache fail with "Failed to create newns: operation not permitted"
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests) flannel; };
+
   meta = {
     description = "Network fabric for containers, designed for Kubernetes";
     license = licenses.asl20;
-    homepage = "https://github.com/coreos/flannel";
-    maintainers = with maintainers; [johanot offline];
+    homepage = "https://github.com/flannel-io/flannel";
+    maintainers = with maintainers; [ johanot offline ];
     platforms = with platforms; linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/flannel/plugin.nix b/nixpkgs/pkgs/tools/networking/flannel/plugin.nix
index 51e29a31ddc5..db55a3dfd04c 100644
--- a/nixpkgs/pkgs/tools/networking/flannel/plugin.nix
+++ b/nixpkgs/pkgs/tools/networking/flannel/plugin.nix
@@ -2,22 +2,29 @@
 
 buildGoModule rec {
   pname = "cni-plugin-flannel";
-  version = "1.1";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "flannel-io";
     repo = "cni-plugin";
     rev = "v${version}";
-    sha256 = "sha256-DZC6uJR6TIHdmu8kZcbM+RC7pdejqLCOep0v3PM8/QY=";
+    sha256 = "sha256-zWxw4LZIlkT88yGTnxdupq7cUSacNRxPzzp01O9USDw=";
   };
 
-  vendorSha256 = "sha256-TLAwE3pTnJYOi1AsOQfsG6t3xLKOah/7DvYjsqyltKs=";
+  vendorSha256 = "sha256-zteMlrvRTVxOFlBy+z/qfiSii8+c8PMapwIsdbN+Aig=";
 
   postInstall = ''
     mv $out/bin/cni-plugin $out/bin/flannel
   '';
 
   doCheck = false;
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/flannel 2>&1 | fgrep -q v$version
+    runHook postInstallCheck
+  '';
 
   meta = with lib; {
     description = "flannel CNI plugin";
diff --git a/nixpkgs/pkgs/tools/networking/frp/default.nix b/nixpkgs/pkgs/tools/networking/frp/default.nix
index 1fc91277ef3b..80108f77fe53 100644
--- a/nixpkgs/pkgs/tools/networking/frp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/frp/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "frp";
-  version = "0.37.1";
+  version = "0.38.0";
 
   src = fetchFromGitHub {
     owner = "fatedier";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-TEVSxTzMgoIPcIUmhtRnFSp3xClJmOsIUjpKEr5sId8=";
+    sha256 = "sha256-wdK8o+Id7+YiSk7nZv04kTYa/9YOypstlecu6TPFI6w=";
   };
 
-  vendorSha256 = "sha256-4vvIobj1I7FbPVJJG4NZogwv4BMo7GRa5Fo5gO2Daws=";
+  vendorSha256 = "sha256-R//kD9A6U9m/7Q7FPToA5kn0kzR7W/A82HezA/+dCFY=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/gemget/default.nix b/nixpkgs/pkgs/tools/networking/gemget/default.nix
new file mode 100644
index 000000000000..e501172f75e5
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/gemget/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "gemget";
+  version = "1.8.0";
+
+  src = fetchFromGitHub {
+    owner = "makeworld-the-better-one";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "PmtIgxnzfLduNGTx8SNDky6juv+NTJ8Cr++SOCk/QNU=";
+  };
+
+  vendorSha256 = "sha256-Ep6HAJgurxFbA4L77z8V2ar06BBVWlAJS9VoSSUg27U=";
+
+  meta = with lib; {
+    description = "Command line downloader for the Gemini protocol";
+    homepage = "https://github.com/makeworld-the-better-one/gemget";
+    license = licenses.mit;
+    maintainers = with maintainers; [ amfl ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/getmail6/default.nix b/nixpkgs/pkgs/tools/networking/getmail6/default.nix
index 045ead7569db..15fa401ec062 100644
--- a/nixpkgs/pkgs/tools/networking/getmail6/default.nix
+++ b/nixpkgs/pkgs/tools/networking/getmail6/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "getmail6";
-  version = "6.18.4";
+  version = "6.18.5";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pxrwqpg8vnrrljigzzaq8g2g6nx55x7a8q032bp4wqyhc6jhpxq";
+    sha256 = "1bckrnvjkkbrybs9ccknd4vakzvd7vpp541p2cpv4isaizyxp2ji";
   };
 
   # needs a Docker setup
diff --git a/nixpkgs/pkgs/tools/networking/globalprotect-openconnect/default.nix b/nixpkgs/pkgs/tools/networking/globalprotect-openconnect/default.nix
index d61668f7b65e..f4b0607d49fb 100644
--- a/nixpkgs/pkgs/tools/networking/globalprotect-openconnect/default.nix
+++ b/nixpkgs/pkgs/tools/networking/globalprotect-openconnect/default.nix
@@ -1,34 +1,24 @@
 { stdenv, lib, fetchFromGitHub
-, qmake, qtwebsockets, qtwebengine, wrapQtAppsHook, openconnect
+, cmake, qtwebsockets, qtwebengine, wrapQtAppsHook, openconnect
 }:
 
 stdenv.mkDerivation rec {
   pname = "globalprotect-openconnect";
-  version = "1.2.6";
+  version = "1.3.4";
 
   src = fetchFromGitHub {
     owner = "yuezk";
     repo = "GlobalProtect-openconnect";
-    rev = "c14a6ad1d2b62f8d297bc4cfbcb1dcea4d99112f";
     fetchSubmodules = true;
-    sha256 = "1zkc3vk1j31n2zs5ammzv23dah7x163gfrzz222ynbkvsccrhzrk";
+    rev = "v${version}";
+    sha256 = "sha256-w2y6DOFgQ8Xpi1abibvRNpEUbBsdvwDMGqlJxQSCpVg=";
   };
 
-  nativeBuildInputs = [ qmake wrapQtAppsHook ];
+  nativeBuildInputs = [ cmake wrapQtAppsHook ];
 
   buildInputs = [ openconnect qtwebsockets qtwebengine ];
 
   patchPhase = ''
-    for f in GPClient/GPClient.pro \
-      GPClient/com.yuezk.qt.gpclient.desktop \
-      GPService/GPService.pro \
-      GPService/dbus/com.yuezk.qt.GPService.service \
-      GPService/systemd/gpservice.service; do
-        substituteInPlace $f \
-          --replace /usr $out \
-          --replace /etc $out/lib;
-    done;
-
     substituteInPlace GPService/gpservice.h \
       --replace /usr/local/bin/openconnect ${openconnect}/bin/openconnect;
   '';
diff --git a/nixpkgs/pkgs/tools/networking/gobgp/default.nix b/nixpkgs/pkgs/tools/networking/gobgp/default.nix
index 9c39b6783b3c..df159d292327 100644
--- a/nixpkgs/pkgs/tools/networking/gobgp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gobgp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gobgp";
-  version = "2.31.0";
+  version = "2.34.0";
 
   src = fetchFromGitHub {
     owner = "osrg";
     repo = "gobgp";
     rev = "v${version}";
-    sha256 = "sha256-Q55BA5iMZP5D8lLfJn82fsxQ0SP5e4OdXtGly4j3dXU=";
+    sha256 = "sha256-xyakq5DXwzONEP6EvDpAuzCrTDWcs+7asDlq9Vf4c1k=";
   };
 
   vendorSha256 = "sha256-+dX/XByFW5/zvfXvyWePAv9X71dJEKaQf6xNXAXoMxw=";
diff --git a/nixpkgs/pkgs/tools/networking/godns/default.nix b/nixpkgs/pkgs/tools/networking/godns/default.nix
index fb46a144ee7b..fffcbbb528b7 100644
--- a/nixpkgs/pkgs/tools/networking/godns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/godns/default.nix
@@ -2,21 +2,21 @@
 
 buildGoModule rec {
   pname = "godns";
-  version = "2.5";
+  version = "2.5.3";
 
   src = fetchFromGitHub {
     owner = "TimothyYe";
     repo = "godns";
     rev = "v${version}";
-    sha256 = "sha256-ia0FmV2KlFPh9gmKOqVxiStgmBbX9vUIc7KllpUt44Q=";
+    sha256 = "sha256-C2Auk0BJLhW8r4cnmoZiUddb8rcZqND5fER9L+3ooH4=";
   };
 
-  vendorSha256 = "sha256-FZLDaMrPEyoTGFmGBlpqPWsMuobqwkBaot5qjcRJe9w=";
+  vendorSha256 = "sha256-/egdqQCkbmrxuQ3vPfHOtHxAgW143Y2eZEzKAsBVmaI=";
 
   # Some tests require internet access, broken in sandbox
   doCheck = false;
 
-  ldflags = [ "-X main.Version=${version}" ];
+  ldflags = [ "-s" "-w" "-X main.Version=${version}" ];
 
   meta = with lib; {
     description = "A dynamic DNS client tool supports AliDNS, Cloudflare, Google Domains, DNSPod, HE.net & DuckDNS & DreamHost, etc";
diff --git a/nixpkgs/pkgs/tools/networking/godspeed/default.nix b/nixpkgs/pkgs/tools/networking/godspeed/default.nix
new file mode 100644
index 000000000000..011d09848d8e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/godspeed/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, libpcap
+}:
+
+buildGoModule rec {
+  pname = "godspeed";
+  version = "unstable-2021-08-27";
+
+  src = fetchFromGitHub {
+    owner = "redcode-labs";
+    repo = "GodSpeed";
+    rev = "c02b184ab0fd304d1bd8cbe1566a3d3de727975e";
+    sha256 = "sha256-y/mCfNWe5ShdxEz8IUQ8zUzgVkUy/+5lX6rcJ3r6KoI=";
+  };
+
+  vendorSha256 = "sha256-MCr1ShhkxM9CeSmqqtgAW0qv0QaIPRSOzASj8gt2ZAg=";
+
+  buildInputs = [
+    libpcap
+  ];
+
+  postFixup = ''
+    mv $out/bin/GodSpeed $out/bin/${pname}
+  '';
+
+  meta = with lib; {
+    description = "Manager for reverse shells";
+    homepage = "https://github.com/redcode-labs/GodSpeed";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/goimapnotify/default.nix b/nixpkgs/pkgs/tools/networking/goimapnotify/default.nix
index 968d5774b5b5..c2581fe3485b 100644
--- a/nixpkgs/pkgs/tools/networking/goimapnotify/default.nix
+++ b/nixpkgs/pkgs/tools/networking/goimapnotify/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "goimapnotify";
-  version = "2.3.2";
+  version = "2.3.7";
 
   src = fetchFromGitLab {
     owner = "shackra";
     repo = "goimapnotify";
     rev = version;
-    sha256 = "sha256-pkpdIkabxz9bu0LnyU1/wu1qqPc/pQqCn8tePc2fIfg=";
+    sha256 = "sha256-Wot+E+rDgXQ4FVgdfqe6a3O9oYUK3X1xImC33eDuUBo=";
   };
 
-  vendorSha256 = "sha256-4+2p/7BAEk+1V0TII9Q2O2YNX0rvBiw2Ss7k1dsvUbk=";
+  vendorSha256 = "sha256-DphGe9jbKo1aIfpF5kRYNSn/uIYHaRMrygda5t46svw=";
 
   postPatch = ''
     for f in command.go command_test.go; do
diff --git a/nixpkgs/pkgs/tools/networking/goimapnotify/deps.nix b/nixpkgs/pkgs/tools/networking/goimapnotify/deps.nix
deleted file mode 100644
index fc377c50be4c..000000000000
--- a/nixpkgs/pkgs/tools/networking/goimapnotify/deps.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath = "github.com/emersion/go-imap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/emersion/go-imap";
-      rev = "b7db4a2bc5cc04fb568fb036a438da43ee9a9f78";
-      sha256 = "1v5hp02k9rfdq7gqiydz575dw6a991pspynhxypv0fvgh1vgqs0s";
-    };
-  }
-  {
-    goPackagePath = "github.com/emersion/go-imap-idle";
-    fetch = {
-      type = "git";
-      url = "https://github.com/emersion/go-imap-idle";
-      rev = "2af93776db6b042cc1116b0d0af00d7f58eea696";
-      sha256 = "19dh8sryjr3a8f0bgwywiz2fqccxhf4j66sm0w1jkjzh131f3pr7";
-    };
-  }
-  {
-    goPackagePath = "github.com/emersion/go-sasl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/emersion/go-sasl";
-      rev = "7e096a0a6197b89989e8cc31016daa67c8c62051";
-      sha256 = "0mr9nzi4wc3ck730zqfqwmy8wk7d90h80yvvivqnxyfyadqy48kd";
-    };
-  }
-  {
-    goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
-    fetch = {
-      type = "git";
-      url = "https://github.com/konsorten/go-windows-terminal-sequences";
-      rev = "f55edac94c9bbba5d6182a4be46d86a2c9b5b50e";
-      sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7";
-    };
-  }
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev = "8bdbc7bcc01dcbb8ec23dc8a28e332258d25251f";
-      sha256 = "1m7ny9jkb98cxqhsp13xa5hnqh1s9f25x04q6arsala4zswsw33c";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "a129542de9ae0895210abff9c95d67a1f33cb93d";
-      sha256 = "13p5q7s25rsvfkk8fcwf432j8djf7bjg7chs296rzlig4vqcdxi4";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "342b2e1fbaa52c93f31447ad2c6abc048c63e475";
-      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/tools/networking/gping/default.nix b/nixpkgs/pkgs/tools/networking/gping/default.nix
index a6ace183df67..24dc47176e89 100644
--- a/nixpkgs/pkgs/tools/networking/gping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gping/default.nix
@@ -2,21 +2,29 @@
 , stdenv
 , rustPlatform
 , fetchFromGitHub
+, fetchpatch
 , libiconv
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "gping";
-  version = "1.2.1";
+  version = "1.2.6";
 
   src = fetchFromGitHub {
     owner = "orf";
     repo = "gping";
-    rev = "v${version}";
-    sha256 = "sha256-lApm1JLXNjDKLj6zj25OaZDVp7lLW3qyrDsvJrudl8I=";
+    rev = "gping-v${version}";
+    sha256 = "sha256-Sxmwuf+iTBTlpfMFCEUp6JyEaoHgmLIKB/gws2KY/xc=";
   };
 
-  cargoSha256 = "sha256-d1NjPwT3YDp1U9JWeUejpWDbJonFlt5lYbUf7p3jVT0=";
+  cargoSha256 = "sha256-xEASs6r5zxYJXS+at6aX5n0whGp5qwuNwq6Jh0GM+/4=";
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/orf/gping/commit/b843beb9617e4b7b98d4f6d3942067cad59c9d60.patch";
+      sha256 = "sha256-9DIeeweCuGqymvUj4EBct82XVevkFSbHWaV76ExjGbs=";
+    })
+  ];
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
diff --git a/nixpkgs/pkgs/tools/networking/grpcui/default.nix b/nixpkgs/pkgs/tools/networking/grpcui/default.nix
index 1fa47ba917fc..14d790fedecd 100644
--- a/nixpkgs/pkgs/tools/networking/grpcui/default.nix
+++ b/nixpkgs/pkgs/tools/networking/grpcui/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "grpcui";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "fullstorydev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1l8ldx7nx2pa2ac5znss0j0dhapn3syj02xqys4jz22hr5gvfj6m";
+    sha256 = "sha256-gHzafx3nIrdLyiGlz5v6pJ8XVT+7tDN59rsdfp1V/Q0=";
   };
 
-  vendorSha256 = "15qgpbsl41swifw8w1lx0pbniwv3rf35127ald7h1r157vfa0r8b";
+  vendorSha256 = "sha256-6K644KSmFEA60yMnw7GmCmycsb5x2stvc0unyV4pF9g=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/grpcurl/default.nix b/nixpkgs/pkgs/tools/networking/grpcurl/default.nix
index e6cd09dc2fd7..d075482638f4 100644
--- a/nixpkgs/pkgs/tools/networking/grpcurl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/grpcurl/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "grpcurl";
-  version = "1.8.2";
+  version = "1.8.5";
 
   src = fetchFromGitHub {
     owner = "fullstorydev";
     repo = "grpcurl";
     rev = "v${version}";
-    sha256 = "sha256-/no8bRGoKibtcjaITUuzwAbX+gPHNJROSf79iuuRwe4=";
+    sha256 = "sha256-73gp3UQk7D3aWK2jtMpiY4tiVhvHkTqZipoynosd3ec=";
   };
 
   subPackages = [ "cmd/grpcurl" ];
 
-  vendorSha256 = "sha256-nl8vKVhUMSO20qCDyhNkU5cghNy8vIFqSBvLk59nbWg=";
+  vendorSha256 = "sha256-dHh8zHtU/r6AscInfNfVFd5psys2b6D1FS02lSoiGto=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
diff --git a/nixpkgs/pkgs/tools/networking/gupnp-tools/default.nix b/nixpkgs/pkgs/tools/networking/gupnp-tools/default.nix
index c1861e33c081..c29d2c501df8 100644
--- a/nixpkgs/pkgs/tools/networking/gupnp-tools/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gupnp-tools/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ stdenv
+, lib
 , fetchurl
 , meson
 , ninja
@@ -16,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gupnp-tools";
-  version = "0.10.0";
+  version = "0.10.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "13d1qr1avz9r76989nvgxhhclmqzr025xjk4rfnja94fpbspznj1";
+    sha256 = "beSe9LN1uKFk90t2YWixGE4NKBlrawek9TQfCN/YXWw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/networking/gvproxy/default.nix b/nixpkgs/pkgs/tools/networking/gvproxy/default.nix
index 535e8d6bdfbf..f7a6ee5b3cb0 100644
--- a/nixpkgs/pkgs/tools/networking/gvproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gvproxy/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gvproxy";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "gvisor-tap-vsock";
     rev = "v${version}";
-    sha256 = "sha256-iRFjELJCgxPvqkhBvJqCFapQrHLL3uRpKsJ/DaXSKnw=";
+    sha256 = "sha256-xoPqgt/d0RyDqkRY+ZhP02nKr3uEu8be0Go2H7JRg3k=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/networking/horst/default.nix b/nixpkgs/pkgs/tools/networking/horst/default.nix
index 194365130bf3..331738be5329 100644
--- a/nixpkgs/pkgs/tools/networking/horst/default.nix
+++ b/nixpkgs/pkgs/tools/networking/horst/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchFromGitHub, pkg-config, ncurses, libnl }:
+{lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, ncurses, libnl }:
 
 stdenv.mkDerivation rec {
   pname = "horst";
@@ -11,6 +11,22 @@ stdenv.mkDerivation rec {
     sha256 = "140pyv6rlsh4c745w4b59pz3hrarr39qq3mz9z1lsd3avc12nx1a";
   };
 
+  patches = [
+    # Fix pending upstream inclusion for ncurses-6.3:
+    #  https://github.com/br101/horst/pull/110
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/br101/horst/commit/c9e9b6cc1f97edb9c53f3a67b43f3588f3ac6ea7.patch";
+      sha256 = "15pahbnql44d5zzxmkd5ky8bl3c3hh3lh5190wynd90jrrhf1a26";
+      # collides for context change, well apply this part in postPatch
+      excludes = [ "display-main.c" ];
+    })
+  ];
+  postPatch = ''
+    # Apply second part of ncurses-6.3.patch:
+    substituteInPlace display-main.c --replace 'wprintw(dump_win, str);' 'wprintw(dump_win, "%s", str);'
+  '';
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ ncurses libnl ];
 
diff --git a/nixpkgs/pkgs/tools/networking/httping/default.nix b/nixpkgs/pkgs/tools/networking/httping/default.nix
index 7389c78ef8db..77f2b52890e0 100644
--- a/nixpkgs/pkgs/tools/networking/httping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httping/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, gettext, libintl, ncurses, openssl
+{ lib, stdenv, fetchurl, fetchpatch, gettext, libintl, ncurses, openssl
 , fftw ? null }:
 
 stdenv.mkDerivation rec {
@@ -10,6 +10,15 @@ stdenv.mkDerivation rec {
     sha256 = "1y7sbgkhgadmd93x1zafqc4yp26ssiv16ni5bbi9vmvvdl55m29y";
   };
 
+  patches = [
+    # Upstream fix for ncurses-6.3.
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/folkertvanheusden/HTTPing/commit/4ea9d5b78540c972e3fe1bf44db9f7b3f87c0ad0.patch";
+      sha256 = "0w3kdkq6c6hz1d9jjnw0ldvd6dy39yamj8haf0hvcyb1sb67qjmp";
+    })
+  ];
+
   buildInputs = [ fftw libintl ncurses openssl ];
   nativeBuildInputs = [ gettext ];
 
diff --git a/nixpkgs/pkgs/tools/networking/httplz/default.nix b/nixpkgs/pkgs/tools/networking/httplz/default.nix
index 52654a49d65f..1d482f2bebf1 100644
--- a/nixpkgs/pkgs/tools/networking/httplz/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httplz/default.nix
@@ -13,15 +13,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "httplz";
-  version = "1.12.1";
+  version = "1.12.2";
 
   src = fetchCrate {
     inherit version;
     pname = "https";
-    sha256 = "sha256-vMhQHWzsZlqMVkEQHCZTB8T4ETTaf8iAS9QhgYdfcx0=";
+    sha256 = "sha256-FhxNYss6n0AJEszpJ7+6CAJE2sdsflWQkvSLakTnFdY=";
   };
 
-  cargoSha256 = "sha256-9gnKVZ3HQs3kNj4i1cgC+Jl3dhjx7QRaHSih1HOB3nI=";
+  cargoSha256 = "sha256-wyksA3RYpGkD6nhllNv8WkUwEdml4TiPM2a4GzfBD1o=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/nixpkgs/pkgs/tools/networking/hurl/default.nix b/nixpkgs/pkgs/tools/networking/hurl/default.nix
index 0843ba3a756a..1264bc107ea6 100644
--- a/nixpkgs/pkgs/tools/networking/hurl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/hurl/default.nix
@@ -12,13 +12,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hurl";
-  version = "1.3.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "Orange-OpenSource";
     repo = pname;
     rev = version;
-    sha256 = "sha256-BmBqFJ64Nolq+eGZ5D3LQU3Ek2Gs+HpH/bptCQScbIg=";
+    sha256 = "sha256-avgi3Y5PRI/RZLYw10ifYV6eKKEBi349NYtYs07GS2k=";
   };
 
   nativeBuildInputs = [
@@ -37,7 +37,7 @@ rustPlatform.buildRustPackage rec {
   # Tests require network access to a test server
   doCheck = false;
 
-  cargoSha256 = "sha256-tAg3xwmh7SjJsm9r5TnhXHIDLpUQpz3YDS6gWxFgps4=";
+  cargoSha256 = "sha256-GB+MnvWkXcdlJvaxtSItm3nGRyr8zWhxSq58smPk/aY=";
 
   postInstall = ''
     python ci/gen_manpage.py docs/hurl.md > hurl.1
diff --git a/nixpkgs/pkgs/tools/networking/i2pd/default.nix b/nixpkgs/pkgs/tools/networking/i2pd/default.nix
index a4534d1fc8bb..7c034a03e2e9 100644
--- a/nixpkgs/pkgs/tools/networking/i2pd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/i2pd/default.nix
@@ -9,13 +9,13 @@ assert upnpSupport -> miniupnpc != null;
 
 stdenv.mkDerivation rec {
   pname = "i2pd";
-  version = "2.39.0";
+  version = "2.40.0";
 
   src = fetchFromGitHub {
     owner = "PurpleI2P";
     repo = pname;
     rev = version;
-    sha256 = "sha256-j8kHuX5Ca90ODjmF94HpGvjSpocDSuSxfVmvbIYRAKo=";
+    sha256 = "sha256-Cld5TP2YoLzm73q7uP/pwqEeUsT5uMPAUx9HABOVeZA=";
   };
 
   buildInputs = with lib; [ boost zlib openssl ]
diff --git a/nixpkgs/pkgs/tools/networking/inadyn/default.nix b/nixpkgs/pkgs/tools/networking/inadyn/default.nix
index 7a3ee1e01211..359c13435942 100644
--- a/nixpkgs/pkgs/tools/networking/inadyn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/inadyn/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "inadyn";
-  version = "2.8.1";
+  version = "2.9.0";
 
   src = fetchFromGitHub {
     owner = "troglobit";
     repo = "inadyn";
     rev = "v${version}";
-    sha256 = "sha256-kr9xh7HMikargi0hhj3epH2c6R5lN4qD9nDaChNI4Kg=";
+    sha256 = "sha256-WYl602gDcPKxjQAlBedPHEOCNtaGgcaVZ/KbxcP2El4=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/tools/networking/innernet/default.nix b/nixpkgs/pkgs/tools/networking/innernet/default.nix
index cf63342fbb65..5baaf2e12205 100644
--- a/nixpkgs/pkgs/tools/networking/innernet/default.nix
+++ b/nixpkgs/pkgs/tools/networking/innernet/default.nix
@@ -1,16 +1,27 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, llvmPackages, sqlite, installShellFiles, Security, libiconv }:
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, llvmPackages
+, sqlite
+, installShellFiles
+, Security
+, libiconv
+, innernet
+, testVersion
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "innernet";
-  version = "1.5.0";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "tonarino";
-    repo = pname;
+    repo = "innernet";
     rev = "v${version}";
-    sha256 = "sha256-9oL91jacfUADaPvdTTvvXhpwzr9OnNnVLwy1okORss4=";
+    sha256 = "141zjfl125m5lrimam1dbpk40dqfq4vnaz42sbiq1v1avyg684fq";
   };
-  cargoSha256 = "sha256-jHWt7Jqv4B7u6Mvo3q69Omcn8kdnXGJSyzod1lDzvKE=";
+  cargoSha256 = "0559d0ayysvqs4k46fhgd4r8wa89abgx6rvhlh0gnlnga8vacpw5";
 
   nativeBuildInputs = with llvmPackages; [
     llvm
@@ -28,21 +39,10 @@ rustPlatform.buildRustPackage rec {
     installShellCompletion doc/innernet-server.completions.{bash,fish,zsh}
   '';
 
-  doInstallCheck = true;
-  installCheckPhase = ''
-    if [[ "$("$out/bin/${pname}"-server --version)" == "${pname}-server ${version}" ]]; then
-      echo '${pname}-server smoke check passed'
-    else
-      echo '${pname}-server smoke check failed'
-      return 1
-    fi
-    if [[ "$("$out/bin/${pname}" --version)" == "${pname} ${version}" ]]; then
-      echo '${pname} smoke check passed'
-    else
-      echo '${pname} smoke check failed'
-      return 1
-    fi
-  '';
+  passthru.tests = {
+    serverVersion = testVersion { package = innernet; command = "innernet-server --version"; };
+    version = testVersion { package = innernet; command = "innernet --version"; };
+  };
 
   meta = with lib; {
     description = "A private network system that uses WireGuard under the hood";
diff --git a/nixpkgs/pkgs/tools/networking/ipinfo/default.nix b/nixpkgs/pkgs/tools/networking/ipinfo/default.nix
index 9a48588d3d86..c67a8747aa89 100644
--- a/nixpkgs/pkgs/tools/networking/ipinfo/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ipinfo/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "ipinfo";
-  version = "2.1.1";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "cli";
     rev = "${pname}-${version}";
-    sha256 = "15pwx94n4qi02r3ppqkpnkikpnbqmr8rrn9gmkbjy2vbdi147qwl";
+    sha256 = "sha256-5kXFSxdZrlaBX+7R9hlM+40+3KlJ7g8xu4BN2PyxXEc=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/networking/isync/default.nix b/nixpkgs/pkgs/tools/networking/isync/default.nix
index a6181e6f2ded..e26526dc68d5 100644
--- a/nixpkgs/pkgs/tools/networking/isync/default.nix
+++ b/nixpkgs/pkgs/tools/networking/isync/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "isync";
-  version = "1.4.3";
+  version = "1.4.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/isync/${pname}-${version}.tar.gz";
-    sha256 = "024p3glj4p7fhrssw5sr55arls9zna1igxxrspxlfd6sbds21ixl";
+    sha256 = "1zq0wwvmqsl9y71546dr0aygzn9gjjfiw19hlcq87s929y4p6ckw";
   };
 
   nativeBuildInputs = [ pkg-config perl ];
diff --git a/nixpkgs/pkgs/tools/networking/jnettop/default.nix b/nixpkgs/pkgs/tools/networking/jnettop/default.nix
index 91f92236ecf8..2c002843eca1 100644
--- a/nixpkgs/pkgs/tools/networking/jnettop/default.nix
+++ b/nixpkgs/pkgs/tools/networking/jnettop/default.nix
@@ -18,6 +18,14 @@ stdenv.mkDerivation rec {
       url = "https://sources.debian.net/data/main/j/jnettop/0.13.0-1/debian/patches/0001-Use-64-bit-integers-for-byte-totals-support-bigger-u.patch";
       sha256 = "1b0alc12sj8pzcb66f8xslbqlbsvq28kz34v6jfhbb1q25hyr7jg";
     })
+
+    # Fix pending upstream inclusion for ncurses-6.3:
+    #  https://sourceforge.net/p/jnettop/patches/5/
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://sourceforge.net/p/jnettop/patches/5/attachment/jnettop-0.13.0-ncurses-6.3.patch";
+      sha256 = "1a0g3bal6f2fh1sq9q5kfwljrnskfvrhdzhjadcds34gzsr26v7x";
+    })
   ];
 
   preConfigure = "autoconf ";
@@ -31,7 +39,7 @@ stdenv.mkDerivation rec {
       by bandwidth they use.
     '';
 
-    homepage = "http://jnettop.kubs.info/";
+    homepage = "https://sourceforge.net/projects/jnettop/";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
   };
diff --git a/nixpkgs/pkgs/tools/networking/kail/default.nix b/nixpkgs/pkgs/tools/networking/kail/default.nix
index ae431b329eaf..7777c129dbf5 100644
--- a/nixpkgs/pkgs/tools/networking/kail/default.nix
+++ b/nixpkgs/pkgs/tools/networking/kail/default.nix
@@ -1,27 +1,23 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "kail";
-  version = "0.8.0";
+  version = "0.15.0";
 
-  goPackagePath = "github.com/boz/kail";
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.version=${version}"
+  ];
 
   src = fetchFromGitHub {
     owner = "boz";
     repo = "kail";
     rev = "v${version}";
-    sha256 = "0ibk7j40pj6f2086qcnwp998wld61d2gvrv7yiy6hlkalhww2pq7";
+    sha256 = "0b4abzk8lc5qa04ywkl8b5hb9jmxhyi2dpgbl27gmw81525wjnj7";
   };
 
-  # regenerate deps.nix using following steps:
-  #
-  # go get -u github.com/boz/kail
-  # cd $GOPATH/src/github.com/boz/kail
-  # git checkout <version>
-  # dep init
-  # dep2nix
-  deleteVendor = true;
-  goDeps = ./deps.nix;
+  vendorSha256 = "09s7sq23hglcb2rsi9igzql39zs4238f3jfmvxz9a8v41da225np";
 
   meta = with lib; {
     description = "Kubernetes log viewer";
diff --git a/nixpkgs/pkgs/tools/networking/kail/deps.nix b/nixpkgs/pkgs/tools/networking/kail/deps.nix
deleted file mode 100644
index b6d9c3e9cf34..000000000000
--- a/nixpkgs/pkgs/tools/networking/kail/deps.nix
+++ /dev/null
@@ -1,408 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "cloud.google.com/go";
-    fetch = {
-      type = "git";
-      url = "https://code.googlesource.com/gocloud";
-      rev =  "06f11fffc537c4aef126d9fd3a92e2d7968f118f";
-      sha256 = "1zhr1pyzk44zb95r2bcs4kkngvmzdr5bac55315nnzl3adx4y4dn";
-    };
-  }
-  {
-    goPackagePath  = "github.com/Azure/go-autorest";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/go-autorest";
-      rev =  "1ff28809256a84bb6966640ff3d0371af82ccba4";
-      sha256 = "0sxvj2j1833bqwxvhq3wq3jgq73rnb81pnzvl0x3y1m0hzpaf2zv";
-    };
-  }
-  {
-    goPackagePath  = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev =  "a0175ee3bccc567396460bf5acd36800cb10c49c";
-      sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
-    };
-  }
-  {
-    goPackagePath  = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev =  "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a";
-      sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
-    };
-  }
-  {
-    goPackagePath  = "github.com/boz/go-lifecycle";
-    fetch = {
-      type = "git";
-      url = "https://github.com/boz/go-lifecycle";
-      rev =  "c39961a5a0ce6b046f15d62bcbed79701666a9e0";
-      sha256 = "12xzjzgi0pspb28xrcmp4v33jij2bbg609z1kpq1pql9mxs6h31k";
-    };
-  }
-  {
-    goPackagePath  = "github.com/boz/go-logutil";
-    fetch = {
-      type = "git";
-      url = "https://github.com/boz/go-logutil";
-      rev =  "9d21a9e4757dbc497f947fe5253f9570c34562fa";
-      sha256 = "0rhhyvvz1lvjalv3hx4yvyh90jqfia27nzx9m54m0i7d0znrwpbj";
-    };
-  }
-  {
-    goPackagePath  = "github.com/boz/kcache";
-    fetch = {
-      type = "git";
-      url = "https://github.com/boz/kcache";
-      rev =  "a012826955254d3f31548911e75a9dbd817f9470";
-      sha256 = "0xqw4mgz0scjrcfsyfwfdhggq1q80dv4mdqgdaryy5ir18srg15l";
-    };
-  }
-  {
-    goPackagePath  = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev =  "adab96458c51a58dc1783b3335dcce5461522e75";
-      sha256 = "1y743w875aqqwggrh4lwlmqyx7ls5m1bnw5y4vr3zps4ib3gb4n5";
-    };
-  }
-  {
-    goPackagePath  = "github.com/dgrijalva/jwt-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgrijalva/jwt-go";
-      rev =  "06ea1031745cb8b3dab3f6a236daf2b0aa468b7e";
-      sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp";
-    };
-  }
-  {
-    goPackagePath  = "github.com/fatih/color";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/color";
-      rev =  "67c513e5729f918f5e69786686770c27141a4490";
-      sha256 = "045i2y2h1a6ml7fm1b3if4692320kjgg3cpxn7chlmpq7z1bmrrn";
-    };
-  }
-  {
-    goPackagePath  = "github.com/ghodss/yaml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ghodss/yaml";
-      rev =  "0ca9ea5df5451ffdf184b4428c902747c2c11cd7";
-      sha256 = "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g";
-    };
-  }
-  {
-    goPackagePath  = "github.com/gogo/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gogo/protobuf";
-      rev =  "1c2b16bc280d6635de6c52fc1471ab962dc36ec9";
-      sha256 = "0h9vkfy3ydz0d6x72853yg49r9k54cgjnlv6a7v12gzqw47p941i";
-    };
-  }
-  {
-    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 =  "1909bc2f63dc92bb931deace8b8312c4db72d12f";
-      sha256 = "0d4pknkgp5qlbfpw8xp81dqgrfm0na1pfi2ll559nwvjz5vc90g5";
-    };
-  }
-  {
-    goPackagePath  = "github.com/google/btree";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/btree";
-      rev =  "316fb6d3f031ae8f4d457c6c5186b9e3ded70435";
-      sha256 = "1fyj10cy2d37mpfk73hjfjwpsgpnmdzf2mrkkvzyx0d41sf46xfd";
-    };
-  }
-  {
-    goPackagePath  = "github.com/google/gofuzz";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/gofuzz";
-      rev =  "24818f796faf91cd76ec7bddd72458fbced7a6c1";
-      sha256 = "0cq90m2lgalrdfrwwyycrrmn785rgnxa3l3vp9yxkvnv88bymmlm";
-    };
-  }
-  {
-    goPackagePath  = "github.com/googleapis/gnostic";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/gnostic";
-      rev =  "57b0290873708074edf87ad921eccec8bef5f8ec";
-      sha256 = "14raxxsx2bww4f0am0yygv64h950avkswm7bdvq6k4d4lry6dgg8";
-    };
-  }
-  {
-    goPackagePath  = "github.com/gophercloud/gophercloud";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gophercloud/gophercloud";
-      rev =  "b4c2377fa77951a0e08163f52dc9b3e206355194";
-      sha256 = "00j9ny59zlf3ajwydf2k41n3l92kl2hf0ljx9x73jcfkdkn2xv5k";
-    };
-  }
-  {
-    goPackagePath  = "github.com/gregjones/httpcache";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gregjones/httpcache";
-      rev =  "c1f8028e62adb3d518b823a2f8e6a95c38bdd3aa";
-      sha256 = "1v7fb4ix2xg0plx5p1f7xd1srvimyss7v7ppn3j7py9ycl560qhr";
-    };
-  }
-  {
-    goPackagePath  = "github.com/imdario/mergo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/imdario/mergo";
-      rev =  "e3000cb3d28c72b837601cac94debd91032d19fe";
-      sha256 = "1bsz1aj0h266x7g08jj7f3nd3d5islbad0cygb5vh37hjgzirg4d";
-    };
-  }
-  {
-    goPackagePath  = "github.com/json-iterator/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/json-iterator/go";
-      rev =  "ab8a2e0c74be9d3be70b3184d9acc634935ded82";
-      sha256 = "1x3wz44p1238gpyzkiiilvvrq9q8dwjdm9kdidq65yjq0zcn0sq4";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-colorable";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-colorable";
-      rev =  "6df6d4d004b64986bbb0d1b25945f42b44787e90";
-      sha256 = "0ha2biq708is9i3hqc30vihcpajak3qawn0rnacb9k1gyxsxwb60";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-isatty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-isatty";
-      rev =  "fc9e8d8ef48496124e79ae0df75490096eccf6fe";
-      sha256 = "1r5f9gkavkb1w6sr0qs5kj16706xirl3qnlq3hqpszkw9w27x65a";
-    };
-  }
-  {
-    goPackagePath  = "github.com/modern-go/concurrent";
-    fetch = {
-      type = "git";
-      url = "https://github.com/modern-go/concurrent";
-      rev =  "bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94";
-      sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs";
-    };
-  }
-  {
-    goPackagePath  = "github.com/modern-go/reflect2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/modern-go/reflect2";
-      rev =  "94122c33edd36123c84d5368cfb2b69df93a0ec8";
-      sha256 = "06a3sablw53n1dqqbr2f53jyksbxdmmk8axaas4yvnhyfi55k4lf";
-    };
-  }
-  {
-    goPackagePath  = "github.com/petar/GoLLRB";
-    fetch = {
-      type = "git";
-      url = "https://github.com/petar/GoLLRB";
-      rev =  "53be0d36a84c2a886ca057d34b6aa4468df9ccb4";
-      sha256 = "01xp3lcamqkvl91jg6ly202gdsgf64j39rkrcqxi6v4pbrcv7hz0";
-    };
-  }
-  {
-    goPackagePath  = "github.com/peterbourgon/diskv";
-    fetch = {
-      type = "git";
-      url = "https://github.com/peterbourgon/diskv";
-      rev =  "5f041e8faa004a95c88a202771f4cc3e991971e6";
-      sha256 = "1mxpa5aad08x30qcbffzk80g9540wvbca4blc1r2qyzl65b8929b";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev =  "2b3a18b5f0fb6b4f9190549597d3f962c02bc5eb";
-      sha256 = "07fd392kqyaj7fnl4sgzy7fcs0sw4jx3mx2khhgk64n9j9i37l59";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev =  "792786c7400a136282c1664665ae0a8db921c6c2";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-  {
-    goPackagePath  = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev =  "181d419aa9e2223811b824e8f0b4af96f9ba9302";
-      sha256 = "08ff47w4clnkym3l0v4hhhfq21zvvwzpljvs0qvki5k0azv7siyc";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev =  "e57e3eeb33f795204c1ca35f56c44f83227c6e66";
-      sha256 = "13mhx4i913jil32j295m3a36jzvq1y64xig0naadiz7q9ja011r2";
-    };
-  }
-  {
-    goPackagePath  = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev =  "2aa2c176b9dab406a6970f6a55f513e8a8c8b18f";
-      sha256 = "1j92x4291flz3i4pk6bi3y59nnsi6lj34zmyfp7axf68fd8vm5ml";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev =  "b176d7def5d71bdd214203491f89843ed217f420";
-      sha256 = "1ayi4iagsxhf193rx93j6y2rb48730hgm2qbahiq9lawm5g3vc14";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev =  "1c05540f6879653db88113bc4a2b70aec4bd491f";
-      sha256 = "0h8yqb0vcqgllgydrf9d3rzp83w8wlr8f0nm6r1rwf2qg30pq1pd";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/oauth2";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/oauth2";
-      rev =  "9a379c6b3e95a790ffc43293c2a78dee0d7b6e20";
-      sha256 = "156wff8s9g3sxni2z80wky4v688pvdgfzxbpfp5rmqjvgqnifxkf";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev =  "2d3e384235de683634e9080b58f757466840aa48";
-      sha256 = "1w8zrcjv4sfi3skchdbvbixgwzp5n1g0vny8r20dlapnqbazah0x";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev =  "b19bf474d317b857955b12035d2c5acb57ce8b01";
-      sha256 = "0wc8csaafp0ps9jb2hdk8d6xpyw1axhk1np73h0z17x09zk3ylcr";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/time";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/time";
-      rev =  "fbb02b2291d28baffd63558aa44b4b56f178d650";
-      sha256 = "0jjqcv6rzihlgg4i797q80g1f6ch5diz2kxqh6488gwkb6nds4h4";
-    };
-  }
-  {
-    goPackagePath  = "google.golang.org/appengine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/appengine";
-      rev =  "d9a072cfa7b9736e44311ef77b3e09d804bfa599";
-      sha256 = "07x7s65q9pydpaniga6zf259kw7qs40q6554wb22inq423wcs0nb";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/kingpin";
-      rev =  "1087e65c9441605df944fb12c33f0fe7072d18ca";
-      sha256 = "18llqzkdqf62qbqcv2fd3j0igl6cwwn4dissf5skkvxrcxjcmmj0";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/inf.v0";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-inf/inf";
-      rev =  "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4";
-      sha256 = "0rf3vwyb8aqnac9x9d6ax7z5526c45a16yjm2pvkijr6qgqz8b82";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-yaml/yaml";
-      rev =  "eb3733d160e74a9c7e442f435eb3bea458e1d19f";
-      sha256 = "1srhvcaa9db3a6xj29mkjr5kg33y71pclrlx4vcwz5m1lgb5c7q6";
-    };
-  }
-  {
-    goPackagePath  = "k8s.io/api";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kubernetes/api";
-      rev =  "2d6f90ab1293a1fb871cf149423ebb72aa7423aa";
-      sha256 = "1cwrwdm104xd3608b1a5mw6a19w45532p647xdwnyn62rw2f08jx";
-    };
-  }
-  {
-    goPackagePath  = "k8s.io/apimachinery";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kubernetes/apimachinery";
-      rev =  "103fd098999dc9c0c88536f5c9ad2e5da39373ae";
-      sha256 = "04navnpm59d75dhlz07rmay7m2izrf4m0i9xklxzqg7mlk9g20jc";
-    };
-  }
-  {
-    goPackagePath  = "k8s.io/client-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kubernetes/client-go";
-      rev =  "1f13a808da65775f22cbf47862c4e5898d8f4ca1";
-      sha256 = "1vkcjg80l49hxiadqmkkd031kj6kc10m8mwcnla3k1ml8fv4qna9";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/tools/networking/kapp/default.nix b/nixpkgs/pkgs/tools/networking/kapp/default.nix
index cb568d4182ab..1c3f2de7212b 100644
--- a/nixpkgs/pkgs/tools/networking/kapp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/kapp/default.nix
@@ -1,19 +1,23 @@
 { lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 buildGoModule rec {
   pname = "kapp";
-  version = "0.40.0";
+  version = "0.43.0";
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "carvel-kapp";
     rev = "v${version}";
-    sha256 = "sha256-9nvYxLE35IwmVB1Dzw7t3DZw4/kSiMPIqzl2PUKODtU=";
+    sha256 = "sha256-9e5vgOIB8PHbM5nsDaasyEfWP5dr7j3vU3+WzFua6bI=";
   };
 
   vendorSha256 = null;
 
   subPackages = [ "cmd/kapp" ];
 
+  ldflags = [
+    "-X github.com/k14s/kapp/pkg/kapp/version.Version=${version}"
+  ];
+
   nativeBuildInputs = [ installShellFiles ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/tools/networking/kea/default.nix b/nixpkgs/pkgs/tools/networking/kea/default.nix
index 9bc3c1e8da3c..3458e5c6e54b 100644
--- a/nixpkgs/pkgs/tools/networking/kea/default.nix
+++ b/nixpkgs/pkgs/tools/networking/kea/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kea";
-  version = "2.0.0"; # only even minor versions are stable
+  version = "2.0.1"; # only even minor versions are stable
 
   src = fetchurl {
     url = "https://ftp.isc.org/isc/${pname}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-BYVODDhxtFLtrOGOzMarYYlA4CSfvnwjKjbQauWb9B0=";
+    sha256 = "sha256-9Qu5qVTjFDFrQDOhddyAdJa7nBdUEQvZKiHBZanoTFc=";
   };
 
   patches = [ ./dont-create-var.patch ];
diff --git a/nixpkgs/pkgs/tools/networking/linkchecker/default.nix b/nixpkgs/pkgs/tools/networking/linkchecker/default.nix
index 480321ad15fc..3cb5ecb01530 100644
--- a/nixpkgs/pkgs/tools/networking/linkchecker/default.nix
+++ b/nixpkgs/pkgs/tools/networking/linkchecker/default.nix
@@ -4,13 +4,13 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "linkchecker";
-  version = "10.0.0";
+  version = "10.0.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v" + version;
-    sha256 = "sha256-gcaamRxGn124LZ8rU+WzjRookU3akDO0ZyzI7/S6kFA=";
+    sha256 = "sha256-OOssHbX9nTCURpMKIy+95ZTvahuUAabLUhPnRp3xpN4=";
   };
 
   nativeBuildInputs = [ gettext ];
diff --git a/nixpkgs/pkgs/tools/networking/lldpd/default.nix b/nixpkgs/pkgs/tools/networking/lldpd/default.nix
index a4e5d565756b..29ca9961546a 100644
--- a/nixpkgs/pkgs/tools/networking/lldpd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/lldpd/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lldpd";
-  version = "1.0.11";
+  version = "1.0.13";
 
   src = fetchurl {
     url = "https://media.luffy.cx/files/lldpd/${pname}-${version}.tar.gz";
-    sha256 = "sha256-tR0VcA+678t/uFw1BrSdMxc6DxXXAPkz7wRAZ7QtRuQ=";
+    sha256 = "sha256-1jmCf9iidyDRv9lLxS7KJK9j3cw8nS2mB4h3iInYRwE=";
   };
 
   configureFlags = [
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "802.1ab implementation (LLDP) to help you locate neighbors of all your equipments";
-    homepage = "https://vincentbernat.github.io/lldpd/";
+    homepage = "https://lldpd.github.io/";
     license = licenses.isc;
     maintainers = with maintainers; [ fpletz ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/networking/lychee/default.nix b/nixpkgs/pkgs/tools/networking/lychee/default.nix
index 72f5b6f57fd2..657fd108b9a0 100644
--- a/nixpkgs/pkgs/tools/networking/lychee/default.nix
+++ b/nixpkgs/pkgs/tools/networking/lychee/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lychee";
-  version = "0.7.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "lycheeverse";
     repo = pname;
-    rev = version;
-    sha256 = "0kpwpbv0dqb0p4bxjlcjas6x1n91rdsvy2psrc1nyr1sh6gb1q5j";
+    rev = "v${version}";
+    sha256 = "sha256-TjjSysG4UCXVi5ytWaJVL31TFLHC3Ro5OEB56pzbn7s=";
   };
 
-  cargoSha256 = "1b915zkg41n3azk4hhg6fgc83n7iq8p7drvdyil2m2a4qdjvp9r3";
+  cargoSha256 = "sha256-apRXxd7RBnNjhZb0xAUr5hSTafyMbg0k1wgHT93Z66g=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/networking/mailsend/default.nix b/nixpkgs/pkgs/tools/networking/mailsend/default.nix
index 9856634116eb..13a6dc005dd8 100644
--- a/nixpkgs/pkgs/tools/networking/mailsend/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mailsend/default.nix
@@ -1,24 +1,17 @@
-{lib, stdenv, fetchurl, openssl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="mailsend";
-    version="1.19";
-    name="${baseName}-${version}";
-    hash="1xwk6jvl5li8ddlik1lj88qswnyminp9wlf5cm8gg3n54szgcpjn";
-    url="https://github.com/muquit/mailsend/archive/1.19.tar.gz";
-    sha256="1xwk6jvl5li8ddlik1lj88qswnyminp9wlf5cm8gg3n54szgcpjn";
+{ lib, stdenv, fetchurl, openssl }:
+
+stdenv.mkDerivation rec {
+  pname = "mailsend";
+  version = "1.19";
+
+  src = fetchurl {
+    url = "https://github.com/muquit/mailsend/archive/${version}.tar.gz";
+    sha256 = "sha256-Vl72vibFjvdQZcVRnq6N1VuuMUKShhlpayjSQrc0k/c=";
   };
+
   buildInputs = [
     openssl
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
   configureFlags = [
     "--with-openssl=${openssl.dev}"
   ];
@@ -29,12 +22,11 @@ stdenv.mkDerivation {
       sha256 = "0vz373zcfl19inflybfjwshcq06rvhx0i5g0f4b021cxfhyb1sm0";
     })
   ];
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "CLI email sending tool";
-    license = lib.licenses.bsd3 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
     homepage = "https://github.com/muquit/mailsend";
     downloadPage = "https://github.com/muquit/mailsend/releases";
   };
diff --git a/nixpkgs/pkgs/tools/networking/mailsend/default.upstream b/nixpkgs/pkgs/tools/networking/mailsend/default.upstream
deleted file mode 100644
index 3d9862a3de21..000000000000
--- a/nixpkgs/pkgs/tools/networking/mailsend/default.upstream
+++ /dev/null
@@ -1,3 +0,0 @@
-url "https://github.com/muquit/mailsend/releases"
-ensure_choice
-version '.*/([0-9][0-9.a-z]*)[.]tar[.].*' '\1'
diff --git a/nixpkgs/pkgs/tools/networking/mcrcon/default.nix b/nixpkgs/pkgs/tools/networking/mcrcon/default.nix
index ed2596bc88ba..713a3dbfd91b 100644
--- a/nixpkgs/pkgs/tools/networking/mcrcon/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mcrcon/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mcrcon";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "Tiiffi";
     repo = "mcrcon";
     rev = "v${version}";
-    sha256 = "004h1glagyw1mic1k461bky0w2fxdfhrhcqjzr9wp6gvyy9s8bix";
+    sha256 = "sha256-cedeKsZgEyu0jqN4kBSgMJzFNUfCVXCEwH3M54miSG4=";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/tools/networking/minio-client/default.nix b/nixpkgs/pkgs/tools/networking/minio-client/default.nix
index e36390f85271..535deea0a01a 100644
--- a/nixpkgs/pkgs/tools/networking/minio-client/default.nix
+++ b/nixpkgs/pkgs/tools/networking/minio-client/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "minio-client";
-  version = "2021-09-02T09-21-27Z";
+  version = "2021-12-20T23-43-34Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "mc";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-6G0MyeDYc8Y6eib2T+2VB5mDjyO13FdBsufy57osIEk=";
+    sha256 = "sha256-9/8h7KlvGRyxFiGLd5YAOjvzGsrkDUJDei6WQtrgY2s=";
   };
 
-  vendorSha256 = "sha256-J1khnNTiHkTPRjNlU2yQu8b+bwKP/KBF1KxTIvGLs+U=";
+  vendorSha256 = "sha256-hC/HMS585eICdxXKpSPQaL0/+3/GMmhA3bXwKo1dN2s=";
 
   subPackages = [ "." ];
 
@@ -29,7 +29,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/minio/mc";
     description = "A replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage";
-    maintainers = with maintainers; [ bachp eelco superherointj ];
+    maintainers = with maintainers; [ bachp eelco ];
     platforms = platforms.unix;
     license = licenses.asl20;
   };
diff --git a/nixpkgs/pkgs/tools/networking/miniupnpc/default.nix b/nixpkgs/pkgs/tools/networking/miniupnpc/default.nix
index 0182440a8eb7..65adb3c5eb89 100644
--- a/nixpkgs/pkgs/tools/networking/miniupnpc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/miniupnpc/default.nix
@@ -19,7 +19,9 @@ let
 
       makeFlags = [ "PREFIX=$(out)" "INSTALLPREFIX=$(out)" ];
 
-      postInstall = ''chmod +x "$out"/lib/libminiupnpc.so'';
+      postInstall = ''
+        chmod +x "$out"/lib/libminiupnpc${stdenv.hostPlatform.extensions.sharedLibrary}
+      '';
 
       meta = with lib; {
         homepage = "http://miniupnp.free.fr/";
diff --git a/nixpkgs/pkgs/tools/networking/modemmanager/default.nix b/nixpkgs/pkgs/tools/networking/modemmanager/default.nix
index e352e67d3fe5..299342197897 100644
--- a/nixpkgs/pkgs/tools/networking/modemmanager/default.nix
+++ b/nixpkgs/pkgs/tools/networking/modemmanager/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "modemmanager";
-  version = "1.16.10";
+  version = "1.18.2";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/ModemManager/ModemManager-${version}.tar.xz";
-    sha256 = "sha256-LM8fcWwtEh6OZwm8+K8p7oaXGpCtrMoujWKIswJ4hi4=";
+    sha256 = "sha256-N0vhWK4cH7OKKe7xzDzfif81NrSP8TINIIqyBOpsX4o=";
   };
 
   nativeBuildInputs = [ vala gobject-introspection gettext pkg-config ];
diff --git a/nixpkgs/pkgs/tools/networking/mosh/default.nix b/nixpkgs/pkgs/tools/networking/mosh/default.nix
index 00746a7afbd2..e87b550aa6fe 100644
--- a/nixpkgs/pkgs/tools/networking/mosh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mosh/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
     # Fix build with bash-completion 2.10
     ./bash_completion_datadir.patch
   ];
+
   postPatch = ''
     # Fix build with Xcode 12.5 toolchain/case-insensitive filesystems
     # Backport of https://github.com/mobile-shell/mosh/commit/12199114fe4234f791ef4c306163901643b40538;
@@ -40,12 +41,12 @@ stdenv.mkDerivation rec {
     }}
 
     substituteInPlace scripts/mosh.pl \
-        --subst-var-by ssh "${openssh}/bin/ssh"
-    substituteInPlace scripts/mosh.pl \
-        --subst-var-by mosh-client "$out/bin/mosh-client"
+      --subst-var-by ssh "${openssh}/bin/ssh" \
+      --subst-var-by mosh-client "$out/bin/mosh-client"
   '';
 
-  configureFlags = [ "--enable-completion" ] ++ lib.optional withUtempter "--with-utempter";
+  configureFlags = [ "--enable-completion" ]
+    ++ lib.optional withUtempter "--with-utempter";
 
   postInstall = ''
       wrapProgram $out/bin/mosh --prefix PERL5LIB : $PERL5LIB
@@ -65,7 +66,7 @@ stdenv.mkDerivation rec {
       especially over Wi-Fi, cellular, and long-distance links.
     '';
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ viric ];
+    maintainers = with maintainers; [ viric SuperSandro2000 ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/mqttui/default.nix b/nixpkgs/pkgs/tools/networking/mqttui/default.nix
new file mode 100644
index 000000000000..7945cd168d42
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/mqttui/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "mqttui";
+  version = "0.13.0";
+
+  src = fetchFromGitHub {
+    owner = "EdJoPaTo";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-taGpVLO9K5VmthWadstQcujcLHTb3fhEWDxKGd3Pj+E=";
+  };
+
+  cargoSha256 = "sha256-aAMDl8GZ+XqA4uBiDm2eHQsNFiqCrMBO66X0ruEjpJg=";
+
+  buildInputs = lib.optional stdenv.isDarwin Security;
+
+  meta = with lib; {
+    description = "Terminal client for MQTT";
+    homepage = "https://github.com/EdJoPaTo/mqttui";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/mtr/default.nix b/nixpkgs/pkgs/tools/networking/mtr/default.nix
index 1257c167e768..177fdee99b37 100644
--- a/nixpkgs/pkgs/tools/networking/mtr/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mtr/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, lib, fetchFromGitHub, autoreconfHook, pkg-config
-, libcap, ncurses
+{ stdenv, lib, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config
+, libcap, ncurses, jansson
 , withGtk ? false, gtk3 }:
 
 stdenv.mkDerivation rec {
@@ -13,6 +13,16 @@ stdenv.mkDerivation rec {
     sha256 = "0wnz87cr2lcl74bj8qxq9xgai40az3pk9k0z893scyc8svd61xz6";
   };
 
+  patches = [
+    # pull patch to fix build failure against ncurses-6.3:
+    #  https://github.com/traviscross/mtr/pull/411
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/traviscross/mtr/commit/aeb493e08eabcb4e6178bda0bb84e9cd01c9f213.patch";
+      sha256 = "1qk8lf4sha18g36mr84vbdvll2s8khgbzyyq0as3ifx44lv0qlf2";
+    })
+  ];
+
   # we need this before autoreconfHook does its thing
   postPatch = ''
     echo ${version} > .tarball-version
@@ -28,7 +38,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
-  buildInputs = [ ncurses ]
+  buildInputs = [ ncurses jansson ]
     ++ lib.optional withGtk gtk3
     ++ lib.optional stdenv.isLinux libcap;
 
diff --git a/nixpkgs/pkgs/tools/networking/mu/default.nix b/nixpkgs/pkgs/tools/networking/mu/default.nix
index 4b9efdc24a60..47d0dffda007 100644
--- a/nixpkgs/pkgs/tools/networking/mu/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mu/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mu";
-  version = "1.6.6";
+  version = "1.6.10";
 
   src = fetchFromGitHub {
     owner  = "djcb";
     repo   = "mu";
     rev    = version;
-    sha256 = "64TfXPz1NCGKnozI9j+yog+hln1rA/qpzCLvPNSvH+c=";
+    sha256 = "1uJB8QdR0JgWlogb1cdUicz+LLtYQpAvYJjwcRjXt+E=";
   };
 
   postPatch = lib.optionalString (batchSize != null) ''
diff --git a/nixpkgs/pkgs/tools/networking/mubeng/default.nix b/nixpkgs/pkgs/tools/networking/mubeng/default.nix
index 2c560cffb07b..750461b708e8 100644
--- a/nixpkgs/pkgs/tools/networking/mubeng/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mubeng/default.nix
@@ -5,16 +5,18 @@
 
 buildGoModule rec {
   pname = "mubeng";
-  version = "0.5.2";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "kitabisa";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jwBDa/TfXrD+f0q4nyQkpi52Jwl1XWZrMd3fPowNzgA=";
+    sha256 = "sha256-ckTIHtS7lUUP1Ozt+6O0CAyl3JrcXFqiBC6c+Uc7lwA=";
   };
 
-  vendorSha256 = "sha256-/K1kBuxGEDUCBC7PiSpQRv1NEvTKwN+vNg2rz7pg838=";
+  vendorSha256 = "sha256-sAcDyGNOSm+BnsYyrR2x1vkGo6ZEykhkF7L9lzPrD+o=";
+
+  ldflags = [ "-s" "-w" "-X ktbs.dev/mubeng/common.Version=${version}" ];
 
   meta = with lib; {
     description = "Proxy checker and IP rotator";
diff --git a/nixpkgs/pkgs/tools/networking/ndn-tools/default.nix b/nixpkgs/pkgs/tools/networking/ndn-tools/default.nix
new file mode 100644
index 000000000000..1b693f21f62e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/ndn-tools/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, boost175
+, fetchFromGitHub
+, libpcap
+, ndn-cxx
+, openssl
+, pkg-config
+, sphinx
+, wafHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ndn-tools";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "named-data";
+    repo = pname;
+    rev = "ndn-tools-${version}";
+    sha256 = "sha256-3hE/esOcS/ln94wZIRVCLjWgouEYnJJf3EvirNEGTeA=";
+  };
+
+  nativeBuildInputs = [ pkg-config sphinx wafHook ];
+  buildInputs = [ libpcap ndn-cxx openssl ];
+
+  wafConfigureFlags = [
+    "--boost-includes=${boost175.dev}/include"
+    "--boost-libs=${boost175.out}/lib"
+    # "--with-tests"
+  ];
+
+  doCheck = false;
+  checkPhase = ''
+    runHook preCheck
+    build/unit-tests
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    homepage = "https://named-data.net/";
+    description = "Named Data Neworking (NDN) Essential Tools";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ bertof ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/nebula/default.nix b/nixpkgs/pkgs/tools/networking/nebula/default.nix
index 2aec2fb50c76..a30c9f3bbdcd 100644
--- a/nixpkgs/pkgs/tools/networking/nebula/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nebula/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGo117Module, fetchFromGitHub }:
 
-buildGoModule rec {
+buildGo117Module rec {
   pname = "nebula";
-  version = "1.4.0";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "slackhq";
     repo = pname;
     rev = "v${version}";
-    sha256 = "lu2/rSB9cFD7VUiK+niuqCX9CI2x+k4Pi+U5yksETSU=";
+    sha256 = "kxBu+r99sC3XWDX+xTmhdUJx0HMVWA0Xgy7wgfrjZ5E=";
   };
 
-  vendorSha256 = "p1inJ9+NAb2d81cn+y+ofhxFz9ObUiLgj+9cACa6Jqg=";
+  vendorSha256 = "5Yv2t5vdUNCcCo2KAm1xCkRVrt6gIasKHLqH7VVPDuU=";
 
   doCheck = false;
 
@@ -38,7 +38,7 @@ buildGoModule rec {
     '';
     homepage = "https://github.com/slackhq/nebula";
     license = licenses.mit;
-    maintainers = with maintainers; [ Br1ght0ne ];
+    maintainers = with maintainers; [ Br1ght0ne numinit ];
   };
 
 }
diff --git a/nixpkgs/pkgs/tools/networking/netboot/default.nix b/nixpkgs/pkgs/tools/networking/netboot/default.nix
index fdd1857ef10e..cfd768e40ab6 100644
--- a/nixpkgs/pkgs/tools/networking/netboot/default.nix
+++ b/nixpkgs/pkgs/tools/networking/netboot/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, bison, lzo, db4 }:
 
 stdenv.mkDerivation rec {
-  name = "netboot";
+  pname = "netboot";
   version = "0.10.2";
 
   src = fetchurl {
diff --git a/nixpkgs/pkgs/tools/networking/netdiscover/default.nix b/nixpkgs/pkgs/tools/networking/netdiscover/default.nix
new file mode 100644
index 000000000000..1a7b93eef8ab
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/netdiscover/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, libpcap, libnet, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  pname = "netdiscover";
+  version = "0.8.1";
+
+  src = fetchFromGitHub {
+    owner = "netdiscover-scanner";
+    repo = pname;
+    rev = version;
+    sha256 = "13fp9rfr9vh756m5wck76zbcr0296ir52dahzlqdr52ha9vrswbb";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ libpcap libnet ];
+
+  # Running update-oui-database.sh would probably make the build irreproducible
+
+  meta = with lib; {
+    description = "A network address discovering tool, developed mainly for those wireless networks without dhcp server, it also works on hub/switched networks";
+    homepage = "https://github.com/netdiscover-scanner/netdiscover";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ vdot0x23 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/nethogs/default.nix b/nixpkgs/pkgs/tools/networking/nethogs/default.nix
index c6a8f3b7f4e9..c26cb527f55e 100644
--- a/nixpkgs/pkgs/tools/networking/nethogs/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nethogs/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, ncurses, libpcap }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses, libpcap }:
 
 stdenv.mkDerivation rec {
   pname = "nethogs";
@@ -11,9 +11,19 @@ stdenv.mkDerivation rec {
     sha256 = "0sn1sdp86akwlm4r1vmkxjjl50c0xaisk91bbz57z7kcsaphxna9";
   };
 
+  patches = [
+    # Pull upstream patch for ncurses-6.3 support:
+    #  https://github.com/raboof/nethogs/pull/210
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/raboof/nethogs/commit/455daf357da7f394763e5b93b11b3defe1f82ed1.patch";
+      sha256 = "0wkp0yr6qg1asgvmsn7blf7rq48sh5k4n3w0nxf5869hxvkhnnzs";
+    })
+  ];
+
   buildInputs = [ ncurses libpcap ];
 
-  makeFlags = [ "VERSION=${version}" ];
+  makeFlags = [ "VERSION=${version}" "nethogs" ];
 
   installFlags = [ "PREFIX=$(out)" "sbin=$(out)/bin" ];
 
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/applet/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/applet/default.nix
index e6cf8d0e09cc..fbb56f4c5c90 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/applet/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/applet/default.nix
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.gnome.org/GNOME/network-manager-applet/";
     description = "NetworkManager control applet for GNOME";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ phreedom ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/default.nix
index 8a1a6dd8fa1b..ac261f83d570 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/default.nix
@@ -54,11 +54,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "networkmanager";
-  version = "1.32.10";
+  version = "1.32.12";
 
   src = fetchurl {
     url = "mirror://gnome/sources/NetworkManager/${lib.versions.majorMinor version}/NetworkManager-${version}.tar.xz";
-    sha256 = "sha256-PlzMZoBWWePxGnGOOlmflya3mgHW/xSBS+ati8Xai7g=";
+    sha256 = "sha256-qKs2oKUC/nPNjjustlhfl/u5Tr73nids268Rwz/49Us=";
   };
 
   outputs = [ "out" "dev" "devdoc" "man" "doc" ];
@@ -191,7 +191,7 @@ stdenv.mkDerivation rec {
     description = "Network configuration and management tool";
     license = licenses.gpl2Plus;
     changelog = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/raw/${version}/NEWS";
-    maintainers = teams.freedesktop.members ++ (with maintainers; [ phreedom domenkozar obadz maxeaubrey ]);
+    maintainers = teams.freedesktop.members ++ (with maintainers; [ domenkozar obadz maxeaubrey ]);
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/nfstrace/default.nix b/nixpkgs/pkgs/tools/networking/nfstrace/default.nix
index ca75e50fa527..7e2b938e4c8b 100644
--- a/nixpkgs/pkgs/tools/networking/nfstrace/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nfstrace/default.nix
@@ -22,11 +22,21 @@ stdenv.mkDerivation rec {
       url = "https://github.com/epam/nfstrace/commit/4562a895ed3ac0e811bdd489068ad3ebe4d7b501.patch";
       sha256 = "1fbicbllyykjknik7asa81x0ixxmbwqwkiz74cnznagv10jlkj3p";
     })
+
+    # Fix pending upstream inclusion for ncurses-6.3 support:
+    #  https://github.com/epam/nfstrace/pull/50
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/epam/nfstrace/commit/29c7c415f5412df1aae9b1e6ed3a2760d2c227a0.patch";
+      sha256 = "134709w6bld010jx3xdy9imcjzal904a84n9f8vv0wnas5clxdmx";
+    })
   ];
 
   postPatch = ''
+   # -Wall -Wextra -Werror fails on clang and newer gcc
     substituteInPlace CMakeLists.txt \
-      --replace "-Wno-braced-scalar-init" ""
+      --replace "-Wno-braced-scalar-init" "" \
+      --replace "-Werror" ""
   '';
 
   buildInputs = [ json_c libpcap ncurses libtirpc ];
diff --git a/nixpkgs/pkgs/tools/networking/ngrep/default.nix b/nixpkgs/pkgs/tools/networking/ngrep/default.nix
index 1e57ac75843e..bee8678d1c93 100644
--- a/nixpkgs/pkgs/tools/networking/ngrep/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ngrep/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
     # 'BSD-like' license but that the 'regex' library (in the ngrep tarball) is
     # GPLv2.
     license = "ngrep";  # Some custom BSD-style, see LICENSE.txt
-    platforms = platforms.linux;
+    platforms = with platforms; linux ++ darwin;
     maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix b/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix
index 2840b9d8400a..6093cea40f07 100644
--- a/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix
@@ -2,7 +2,7 @@
 
 with lib;
 
-let versions = builtins.fromJSON (builtins.readFile ./versions.json);
+let versions = lib.importJSON ./versions.json;
     arch = if stdenv.isi686 then "386"
            else if stdenv.isx86_64 then "amd64"
            else if stdenv.isAarch32 then "arm"
@@ -16,8 +16,8 @@ let versions = builtins.fromJSON (builtins.readFile ./versions.json);
 
 in
 stdenv.mkDerivation {
-  name = "ngrok-${version}";
-  version = version;
+  pname = "ngrok";
+  inherit version;
 
   # run ./update
   src = fetchurl { inherit sha256 url; };
@@ -34,6 +34,9 @@ stdenv.mkDerivation {
 
   passthru.updateScript = ./update.sh;
 
+  # Stripping causes SEGFAULT on x86_64-darwin
+  dontStrip = true;
+
   meta = {
     description = "Allows you to expose a web server running on your local machine to the internet";
     homepage = "https://ngrok.com/";
diff --git a/nixpkgs/pkgs/tools/networking/nss-mdns/default.nix b/nixpkgs/pkgs/tools/networking/nss-mdns/default.nix
index 6faf1f06dbb8..6ba996401a84 100644
--- a/nixpkgs/pkgs/tools/networking/nss-mdns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nss-mdns/default.nix
@@ -21,14 +21,13 @@ stdenv.mkDerivation rec {
       "--localstatedir=/var"
     ];
 
-  patches = lib.optional stdenv.hostPlatform.isMusl
-    (
-      fetchpatch
-      {
-        url = "https://raw.githubusercontent.com/openembedded/openembedded-core/94f780e889f194b67a48587ac68b3200288bee10/meta/recipes-connectivity/libnss-mdns/libnss-mdns/0001-check-for-nss.h.patch";
-        sha256 = "1l1kjbdw8z31br4vib3l5b85jy7kxin760a2f24lww8v6lqdpgds";
-      }
-    );
+  patches = [
+    # Provide compat definition for libc lacking <nss.h> (e.g. musl)
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/openembedded/openembedded-core/94f780e889f194b67a48587ac68b3200288bee10/meta/recipes-connectivity/libnss-mdns/libnss-mdns/0001-check-for-nss.h.patch";
+      sha256 = "1l1kjbdw8z31br4vib3l5b85jy7kxin760a2f24lww8v6lqdpgds";
+    })
+  ];
 
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/networking/ntp/default.nix b/nixpkgs/pkgs/tools/networking/ntp/default.nix
index c8af08a3a30d..92a6005e2a66 100644
--- a/nixpkgs/pkgs/tools/networking/ntp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ntp/default.nix
@@ -1,11 +1,4 @@
-{ stdenv, lib, fetchurl, openssl, perl, libcap ? null, libseccomp ? null, pps-tools }:
-
-assert stdenv.isLinux -> libcap != null;
-assert stdenv.isLinux -> libseccomp != null;
-
-let
-  withSeccomp = stdenv.isLinux && (stdenv.isi686 || stdenv.isx86_64);
-in
+{ stdenv, lib, fetchurl, openssl, perl, pps-tools, libcap }:
 
 stdenv.mkDerivation rec {
   pname = "ntp";
@@ -16,10 +9,6 @@ stdenv.mkDerivation rec {
     sha256 = "06cwhimm71safmwvp6nhxp6hvxsg62whnbgbgiflsqb8mgg40n7n";
   };
 
-  # The hardcoded list of allowed system calls for seccomp is
-  # insufficient for NixOS, add more to make it work (issue #21136).
-  patches = [ ./seccomp.patch ];
-
   configureFlags = [
     "--sysconfdir=/etc"
     "--localstatedir=/var"
@@ -27,12 +16,10 @@ stdenv.mkDerivation rec {
     "--with-openssl-incdir=${openssl.dev}/include"
     "--enable-ignore-dns-errors"
     "--with-yielding-select=yes"
-  ] ++ lib.optional stdenv.isLinux "--enable-linuxcaps"
-    ++ lib.optional withSeccomp "--enable-libseccomp";
+  ] ++ lib.optional stdenv.isLinux "--enable-linuxcaps";
 
-  buildInputs = [ libcap openssl perl ]
-    ++ lib.optional withSeccomp libseccomp
-    ++ lib.optional stdenv.isLinux pps-tools;
+  buildInputs = [ openssl perl ]
+    ++ lib.optionals stdenv.isLinux [ pps-tools libcap ];
 
   hardeningEnable = [ "pie" ];
 
diff --git a/nixpkgs/pkgs/tools/networking/ntp/seccomp.patch b/nixpkgs/pkgs/tools/networking/ntp/seccomp.patch
deleted file mode 100644
index c75536dac7fb..000000000000
--- a/nixpkgs/pkgs/tools/networking/ntp/seccomp.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 881e427f3236046466bdb8235edf86e6dfa34391 Mon Sep 17 00:00:00 2001
-From: Michael Bishop <cleverca22@gmail.com>
-Date: Mon, 11 Jun 2018 08:30:48 -0300
-Subject: [PATCH] fix the seccomp filter to include a few previously missed
- syscalls
-
----
- ntpd/ntpd.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/ntpd/ntpd.c b/ntpd/ntpd.c
-index 2c7f02ec5..4c59dc2ba 100644
---- a/ntpd/ntpd.c
-+++ b/ntpd/ntpd.c
-@@ -1140,10 +1140,12 @@ int scmp_sc[] = {
- 	SCMP_SYS(close),
- 	SCMP_SYS(connect),
- 	SCMP_SYS(exit_group),
-+	SCMP_SYS(fcntl),
- 	SCMP_SYS(fstat),
- 	SCMP_SYS(fsync),
- 	SCMP_SYS(futex),
- 	SCMP_SYS(getitimer),
-+	SCMP_SYS(getpid),
- 	SCMP_SYS(getsockname),
- 	SCMP_SYS(ioctl),
- 	SCMP_SYS(lseek),
-@@ -1162,6 +1164,8 @@ int scmp_sc[] = {
- 	SCMP_SYS(sendto),
- 	SCMP_SYS(setitimer),
- 	SCMP_SYS(setsid),
-+	SCMP_SYS(setsockopt),
-+	SCMP_SYS(openat),
- 	SCMP_SYS(socket),
- 	SCMP_SYS(stat),
- 	SCMP_SYS(time),
-@@ -1178,9 +1182,11 @@ int scmp_sc[] = {
- 	SCMP_SYS(clock_settime),
- 	SCMP_SYS(close),
- 	SCMP_SYS(exit_group),
-+	SCMP_SYS(fcntl),
- 	SCMP_SYS(fsync),
- 	SCMP_SYS(futex),
- 	SCMP_SYS(getitimer),
-+	SCMP_SYS(getpid),
- 	SCMP_SYS(madvise),
- 	SCMP_SYS(mmap),
- 	SCMP_SYS(mmap2),
-@@ -1194,6 +1200,8 @@ int scmp_sc[] = {
- 	SCMP_SYS(select),
- 	SCMP_SYS(setitimer),
- 	SCMP_SYS(setsid),
-+	SCMP_SYS(setsockopt),
-+	SCMP_SYS(openat),
- 	SCMP_SYS(sigprocmask),
- 	SCMP_SYS(sigreturn),
- 	SCMP_SYS(socketcall),
diff --git a/nixpkgs/pkgs/tools/networking/oapi-codegen/default.nix b/nixpkgs/pkgs/tools/networking/oapi-codegen/default.nix
index 41e80a3e12cb..163341d06466 100644
--- a/nixpkgs/pkgs/tools/networking/oapi-codegen/default.nix
+++ b/nixpkgs/pkgs/tools/networking/oapi-codegen/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "oapi-codegen";
-  version = "1.8.2";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "deepmap";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8hyRuGKspWqv+uBeSz4i12Grl83EQVPWB1weEVf9yhA=";
+    sha256 = "sha256-pGkTCOQ2OR/9c5+L9UgESJjSMmz9FjfJw9NB8Nr6gRQ=";
   };
 
-  vendorSha256 = "sha256-YCZzIsu1mMAAjLGHISrDkfY4Lx0az2SZV8bnZOMalx8=";
+  vendorSha256 = "sha256-hvY64cmfvEeHniscD1WDyaeFpWeBJwsDNwr76e9F6ow=";
 
   # Tests use network
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/networking/obfs4/default.nix b/nixpkgs/pkgs/tools/networking/obfs4/default.nix
index 0a74deea17d5..ab13d3f4ef98 100644
--- a/nixpkgs/pkgs/tools/networking/obfs4/default.nix
+++ b/nixpkgs/pkgs/tools/networking/obfs4/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "obfs4";
-  version = "0.0.10";
+  version = "0.0.11";
 
   src = fetchgit {
     url = meta.repositories.git;
     rev = "refs/tags/${pname}proxy-${version}";
-    sha256 = "05aqmw8x8s0yqyqmdj5zcsq06gsbcmrlcd52gaqm20m1pg9503ad";
+    sha256 = "sha256-VjJ/Pc1YjNB2iLnN/5CxuaxolcaR1IMWgoESMzOXU/g=";
   };
 
-  vendorSha256 = "0h3gjxv26pc6cysvy1hny2f4abw6i847dk8fx0m113ixx9qghk87";
+  vendorSha256 = "sha256-xGCK8biTYcrmKbsl6ZyCjpRrVP9x5xGrC3VcMsR7ETo=";
 
   doCheck = false;
 
@@ -18,6 +18,6 @@ buildGoModule rec {
     description = "A pluggable transport proxy";
     homepage = "https://www.torproject.org/projects/obfsproxy";
     repositories.git = "https://git.torproject.org/pluggable-transports/obfs4.git";
-    maintainers = with maintainers; [ phreedom thoughtpolice ];
+    maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ocserv/default.nix b/nixpkgs/pkgs/tools/networking/ocserv/default.nix
index 2f5dd14757bc..5391ec03ae7c 100644
--- a/nixpkgs/pkgs/tools/networking/ocserv/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ocserv/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ocserv";
-  version = "0.12.6";
+  version = "1.1.2";
 
   src = fetchFromGitLab {
     owner = "openconnect";
     repo = "ocserv";
-    rev = "ocserv_${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "0k7sx9sg8akxwfdl51cvdqkdrx9qganqddgri2yhcgznc3f3pz5b";
+    rev = version;
+    sha256 = "gXolG4zTnJpgI32SuudhvlP9snI0k4Oa1mqE7eGbdE0=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.com/openconnect/ocserv";
     license = licenses.gpl2;
     description = "This program is openconnect VPN server (ocserv), a server for the openconnect VPN client";
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ neverbehave ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/offlineimap/default.nix b/nixpkgs/pkgs/tools/networking/offlineimap/default.nix
index 5dc789e0dc58..98aabadf6da3 100644
--- a/nixpkgs/pkgs/tools/networking/offlineimap/default.nix
+++ b/nixpkgs/pkgs/tools/networking/offlineimap/default.nix
@@ -1,6 +1,6 @@
 { lib
 , fetchFromGitHub
-, python2Packages
+, python3
 , asciidoc
 , cacert
 , docbook_xsl
@@ -9,15 +9,15 @@
 , libxslt
 }:
 
-python2Packages.buildPythonApplication rec {
-  version = "7.3.4";
+python3.pkgs.buildPythonApplication rec {
   pname = "offlineimap";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "OfflineIMAP";
-    repo = "offlineimap";
+    repo = "offlineimap3";
     rev = "v${version}";
-    sha256 = "sha256-sra2H0+5+LAIU3+uJnii+AYA05nuDyKVMW97rbaFOfI=";
+    sha256 = "0y3giaz9i8vvczlxkbwymfkn3vi9fv599dy4pc2pn2afxsl4mg2w";
   };
 
   nativeBuildInputs = [
@@ -28,11 +28,14 @@ python2Packages.buildPythonApplication rec {
     libxslt
   ];
 
-  propagatedBuildInputs = with python2Packages; [
-    six
+  propagatedBuildInputs = with python3.pkgs; [
+    certifi
+    distro
+    imaplib2
     kerberos
-    rfc6555
     pysocks
+    rfc6555
+    urllib3
   ];
 
   postPatch = ''
@@ -40,7 +43,7 @@ python2Packages.buildPythonApplication rec {
     sed -i docs/Makefile -e "s|a2x -v -d |a2x -L -v -d |"
 
     # Provide CA certificates (Used when "sslcacertfile = OS-DEFAULT" is configured")
-    sed -i offlineimap/utils/distro.py -e '/def get_os_sslcertfile():/a\ \ \ \ return "${cacert}/etc/ssl/certs/ca-bundle.crt"'
+    sed -i offlineimap/utils/distro_utils.py -e '/def get_os_sslcertfile():/a\ \ \ \ return "${cacert}/etc/ssl/certs/ca-bundle.crt"'
   '';
 
   postInstall = ''
@@ -52,6 +55,10 @@ python2Packages.buildPythonApplication rec {
   # Test requires credentials
   doCheck = false;
 
+  pythonImportsCheck = [
+    "offlineimap"
+  ];
+
   meta = with lib; {
     description = "Synchronize emails between two repositories, so that you can read the same mailbox from multiple computers";
     homepage = "http://offlineimap.org";
diff --git a/nixpkgs/pkgs/tools/networking/ofono/default.nix b/nixpkgs/pkgs/tools/networking/ofono/default.nix
index 647cfd4a44ff..de8b3d699603 100644
--- a/nixpkgs/pkgs/tools/networking/ofono/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ofono/default.nix
@@ -12,14 +12,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ofono";
-  version = "1.32";
+  version = "1.33";
 
   outputs = [ "out" "dev" ];
 
   src = fetchgit {
     url = "git://git.kernel.org/pub/scm/network/ofono/ofono.git";
     rev = version;
-    sha256 = "sha256-bJ7Qgau5soPiptrhcMZ8rWxfprRCTeR7OjQ5HZQ9hbc=";
+    sha256 = "sha256-UTFP69yv1epVrqBoRKCRcR2WiKBG01sLTzrsh/Nude4=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/networking/ookla-speedtest/default.nix b/nixpkgs/pkgs/tools/networking/ookla-speedtest/default.nix
index 200b488cf714..5fc03c19c902 100644
--- a/nixpkgs/pkgs/tools/networking/ookla-speedtest/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ookla-speedtest/default.nix
@@ -2,16 +2,16 @@
 
 let
   pname = "ookla-speedtest";
-  version = "1.0.0";
+  version = "1.1.1";
 
   srcs = {
     x86_64-linux = fetchurl {
-      url = "https://install.speedtest.net/app/cli/${pname}-${version}-x86_64-linux.tgz";
-      sha256 = "sha256-X+ICjw1EJ+T0Ix2fnPcOZpG7iQpwY211Iy/k2XBjMWg=";
+      url = "https://install.speedtest.net/app/cli/${pname}-${version}-linux-x86_64.tgz";
+      sha256 = "sha256-lwR3/f7k10HnXwiPr2SPm1HHvgQxP7iP+13gfrGjBAw=";
     };
     aarch64-linux = fetchurl {
-      url = "https://install.speedtest.net/app/cli/${pname}-${version}-aarch64-linux.tgz";
-      sha256 = "sha256-BzaE3DSQUIygGwTFhV4Ez9eX/tM/bqam7cJt+8b2qp4=";
+      url = "https://install.speedtest.net/app/cli/${pname}-${version}-linux-aarch64.tgz";
+      sha256 = "sha256-J2pAhz/hw8okohWAwvxkqpLtNY/8bbYHGhPQOo1DH9k=";
     };
   };
 in
@@ -19,7 +19,7 @@ in
 stdenv.mkDerivation rec {
   inherit pname version;
 
-  src = srcs.${stdenv.hostPlatform.system};
+  src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   setSourceRoot = ''
     sourceRoot=$PWD
diff --git a/nixpkgs/pkgs/tools/networking/oonf-olsrd2/default.nix b/nixpkgs/pkgs/tools/networking/oonf-olsrd2/default.nix
new file mode 100644
index 000000000000..c2ab89834afa
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/oonf-olsrd2/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "oonf-olsrd2";
+  version = "0.15.1";
+
+  src = fetchFromGitHub {
+    owner = "OLSR";
+    repo = "OONF";
+    rev = "v${version}";
+    hash = "sha256-7EH2K7gaBGD95WFlG6RRhKEWJm91Xv2GOHYQjZWuzl0=";
+  };
+
+  cmakeFlags = [
+    "-DOONF_NO_WERROR=yes"
+  ];
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  meta = with lib; {
+    description = "An adhoc wireless mesh routing daemon";
+    license = licenses.bsd3;
+    homepage = "http://olsr.org/";
+    maintainers = with maintainers; [ mkg20001 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix b/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix
index e02782cccbfd..30495b918462 100644
--- a/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix
@@ -8,13 +8,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openfortivpn";
-  version = "1.16.0";
+  version = "1.17.1";
 
   src = fetchFromGitHub {
     owner = "adrienverge";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wijP9VGKXlxCAU3xN6+cv9+NGwBS55ql8WsZZ592b/k=";
+    sha256 = "sha256-wSbE3vq9/o1r80zRT1rO9zAG6ws1nG18ALXYd9BAbLA=";
   };
 
   # we cannot write the config file to /etc and as we don't need the file, so drop it
diff --git a/nixpkgs/pkgs/tools/networking/opensnitch/daemon.nix b/nixpkgs/pkgs/tools/networking/opensnitch/daemon.nix
index 31057a8f5271..27d3a6ce5181 100644
--- a/nixpkgs/pkgs/tools/networking/opensnitch/daemon.nix
+++ b/nixpkgs/pkgs/tools/networking/opensnitch/daemon.nix
@@ -1,23 +1,26 @@
 { buildGoModule
 , fetchFromGitHub
 , fetchpatch
+, protobuf
+, go-protobuf
 , pkg-config
 , libnetfilter_queue
 , libnfnetlink
 , lib
 , coreutils
 , iptables
+, makeWrapper
 }:
 
 buildGoModule rec {
   pname = "opensnitch";
-  version = "1.3.6";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "evilsocket";
     repo = "opensnitch";
     rev = "v${version}";
-    sha256 = "sha256-Cgo+bVQQeUZuYYhA1WSqlLyQQGAeXbbNno9LS7oNvhI=";
+    sha256 = "1c2v2x8hfqk524sa42vry74lda4lg6ii40ljk2qx9j2f69446sva";
   };
 
   patches = [
@@ -28,10 +31,22 @@ buildGoModule rec {
       url = "https://github.com/evilsocket/opensnitch/commit/8a3f63f36aa92658217bbbf46d39e6d20b2c0791.patch";
       sha256 = "sha256-WkwjKTQZppR0nqvRO4xiQoKZ307NvuUwoRx+boIpuTg=";
     })
+    # Upstream has inconsistent vendoring
+    ./go-mod.patch
   ];
 
   modRoot = "daemon";
 
+  buildInputs = [ libnetfilter_queue libnfnetlink ];
+
+  nativeBuildInputs = [ pkg-config protobuf go-protobuf makeWrapper ];
+
+  vendorSha256 = "sha256-sTfRfsvyiFk1bcga009W6jD6RllrySRAU6B/8mF6+ow=";
+
+  preBuild = ''
+    make -C ../proto ../daemon/ui/protocol/ui.pb.go
+  '';
+
   postBuild = ''
     mv $GOPATH/bin/daemon $GOPATH/bin/opensnitchd
     mkdir -p $out/lib/systemd/system
@@ -39,14 +54,12 @@ buildGoModule rec {
       --replace "/usr/local/bin/opensnitchd" "$out/bin/opensnitchd" \
       --replace "/etc/opensnitchd/rules" "/var/lib/opensnitch/rules" \
       --replace "/bin/mkdir" "${coreutils}/bin/mkdir"
-    sed -i '/\[Service\]/a Environment=PATH=${iptables}/bin' $out/lib/systemd/system/opensnitchd.service
   '';
 
-  vendorSha256 = "sha256-LMwQBFkHg1sWIUITLOX2FZi5QUfOivvrkcl9ELO3Trk=";
-
-  nativeBuildInputs = [ pkg-config ];
-
-  buildInputs = [ libnetfilter_queue libnfnetlink ];
+  postInstall = ''
+    wrapProgram $out/bin/opensnitchd \
+      --prefix PATH : ${lib.makeBinPath [ iptables ]}
+  '';
 
   meta = with lib; {
     description = "An application firewall";
diff --git a/nixpkgs/pkgs/tools/networking/opensnitch/go-mod.patch b/nixpkgs/pkgs/tools/networking/opensnitch/go-mod.patch
new file mode 100644
index 000000000000..290e92ca755f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/opensnitch/go-mod.patch
@@ -0,0 +1,24 @@
+diff --git a/daemon/go.mod b/daemon/go.mod
+index ec21c04..a859bfb 100644
+--- a/daemon/go.mod
++++ b/daemon/go.mod
+@@ -5,17 +5,12 @@ go 1.14
+ require (
+ 	github.com/evilsocket/ftrace v1.2.0
+ 	github.com/fsnotify/fsnotify v1.4.7
+-	github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect
+-	github.com/golang/protobuf v1.5.0
+ 	github.com/google/gopacket v1.1.14
+ 	github.com/google/nftables v0.0.0-20210514154851-a285acebcad3
+ 	github.com/iovisor/gobpf v0.2.0
+ 	github.com/vishvananda/netlink v1.1.0
+-	github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df // indirect
+-	golang.org/x/net v0.0.0-20190311183353-d8887717615a
+-	golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 // indirect
+-	golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444 // indirect
+-	golang.org/x/text v0.3.0 // indirect
++	golang.org/x/net v0.0.0-20191028085509-fe3aa8a45271
++	golang.org/x/sys v0.0.0-20191029155521-f43be2a4598c
+ 	google.golang.org/grpc v1.27.0
+ 	google.golang.org/protobuf v1.26.0
+ )
diff --git a/nixpkgs/pkgs/tools/networking/opensnitch/ui.nix b/nixpkgs/pkgs/tools/networking/opensnitch/ui.nix
index 69b26492282d..d211a10d2c5a 100644
--- a/nixpkgs/pkgs/tools/networking/opensnitch/ui.nix
+++ b/nixpkgs/pkgs/tools/networking/opensnitch/ui.nix
@@ -6,16 +6,19 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "opensnitch-ui";
-  version = "1.3.6";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "evilsocket";
     repo = "opensnitch";
     rev = "v${version}";
-    sha256 = "sha256-Cgo+bVQQeUZuYYhA1WSqlLyQQGAeXbbNno9LS7oNvhI=";
+    sha256 = "sha256-amtDSDJOyNSxmJICEqN5lKhGyfF5C6I0EWViB1EXW7A=";
   };
 
-  nativeBuildInputs = [ wrapQtAppsHook ];
+  nativeBuildInputs = [
+    python3Packages.pyqt5
+    wrapQtAppsHook
+  ];
 
   propagatedBuildInputs = with python3Packages; [
     grpcio-tools
@@ -25,6 +28,11 @@ python3Packages.buildPythonApplication rec {
     pyinotify
   ];
 
+  preBuild = ''
+    make -C ../proto ../ui/opensnitch/ui_pb2.py
+    pyrcc5 -o opensnitch/resources_rc.py opensnitch/res/resources.qrc
+  '';
+
   preConfigure = ''
     cd ui
   '';
@@ -33,6 +41,10 @@ python3Packages.buildPythonApplication rec {
     export PYTHONPATH=opensnitch:$PYTHONPATH
   '';
 
+  postInstall = ''
+    mv $out/lib/python3.9/site-packages/usr/* $out/
+  '';
+
   dontWrapQtApps = true;
   makeWrapperArgs = [ "\${qtWrapperArgs[@]}" ];
 
diff --git a/nixpkgs/pkgs/tools/networking/openssh/common.nix b/nixpkgs/pkgs/tools/networking/openssh/common.nix
index eaa42039dbaa..ee8d2a92697f 100644
--- a/nixpkgs/pkgs/tools/networking/openssh/common.nix
+++ b/nixpkgs/pkgs/tools/networking/openssh/common.nix
@@ -18,10 +18,12 @@
 , libedit
 , pkg-config
 , pam
+, libredirect
 , etcDir ? null
 , withKerberos ? !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
 , libkrb5
 , libfido2
+, hostname
 , nixosTests
 , withFIDO ? stdenv.hostPlatform.isUnix && !stdenv.hostPlatform.isMusl
 , linkOpenssl ? true
@@ -100,6 +102,60 @@ stdenv.mkDerivation rec {
 
   hardeningEnable = [ "pie" ];
 
+  doCheck = true;
+  enableParallelChecking = false;
+  checkInputs = optional (!stdenv.isDarwin) hostname;
+  preCheck = ''
+    # construct a dummy HOME
+    export HOME=$(realpath ../dummy-home)
+    mkdir -p ~/.ssh
+
+    # construct a dummy /etc/passwd file for the sshd under test
+    # to use to look up the connecting user
+    DUMMY_PASSWD=$(realpath ../dummy-passwd)
+    cat > $DUMMY_PASSWD <<EOF
+    $(whoami)::$(id -u):$(id -g)::$HOME:$SHELL
+    EOF
+
+    # we need to NIX_REDIRECTS /etc/passwd both for processes
+    # invoked directly and those invoked by the "remote" session
+    cat > ~/.ssh/environment.base <<EOF
+    NIX_REDIRECTS=/etc/passwd=$DUMMY_PASSWD
+    LD_PRELOAD=${libredirect}/lib/libredirect.so
+    EOF
+
+    # use an ssh environment file to ensure environment is set
+    # up appropriately for build environment even when no shell
+    # is invoked by the ssh session. otherwise the PATH will
+    # only contain default unix paths like /bin which we don't
+    # have in our build environment
+    cat - regress/test-exec.sh > regress/test-exec.sh.new <<EOF
+    cp $HOME/.ssh/environment.base $HOME/.ssh/environment
+    echo "PATH=\$PATH" >> $HOME/.ssh/environment
+    EOF
+    mv regress/test-exec.sh.new regress/test-exec.sh
+
+    # explicitly enable the PermitUserEnvironment feature
+    substituteInPlace regress/test-exec.sh \
+      --replace \
+        'cat << EOF > $OBJ/sshd_config' \
+        $'cat << EOF > $OBJ/sshd_config\n\tPermitUserEnvironment yes'
+
+    # some tests want to use files under /bin as example files
+    for f in regress/sftp-cmds.sh regress/forwarding.sh; do
+      substituteInPlace $f --replace '/bin' "$(dirname $(type -p ls))"
+    done
+
+    # set up NIX_REDIRECTS for direct invocations
+    set -a; source ~/.ssh/environment.base; set +a
+  '';
+  # integration tests hard to get working on darwin with its shaky
+  # sandbox
+  # t-exec tests fail on musl
+  checkTarget = optional (!stdenv.isDarwin && !stdenv.hostPlatform.isMusl) "t-exec"
+    # other tests are less demanding of the environment
+    ++ [ "unit" "file-tests" "interop-tests" ];
+
   postInstall = ''
     # Install ssh-copy-id, it's very useful.
     cp contrib/ssh-copy-id $out/bin/
@@ -122,7 +178,7 @@ stdenv.mkDerivation rec {
     changelog = "https://www.openssh.com/releasenotes.html";
     license = licenses.bsd2;
     platforms = platforms.unix ++ platforms.windows;
-    maintainers = with maintainers; [ eelco aneeshusa ];
+    maintainers = (extraMeta.maintainers or []) ++ (with maintainers; [ eelco aneeshusa ]);
     mainProgram = "ssh";
   } // extraMeta;
 }
diff --git a/nixpkgs/pkgs/tools/networking/openssh/default.nix b/nixpkgs/pkgs/tools/networking/openssh/default.nix
index c8bc1f8a1dda..4bc181717168 100644
--- a/nixpkgs/pkgs/tools/networking/openssh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openssh/default.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, fetchFromGitHub, autoreconfHook }:
+{ callPackage, lib, fetchurl, fetchpatch, fetchFromGitHub, autoreconfHook }:
 let
   common = opts: callPackage (import ./common.nix opts) { };
 in
@@ -6,14 +6,15 @@ in
 
   openssh = common rec {
     pname = "openssh";
-    version = "8.7p1";
+    version = "8.8p1";
 
     src = fetchurl {
       url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz";
-      sha256 = "090yxpi03pxxzb4ppx8g8hdpw7c4nf8p0avr6c7ybsaana5lp8vw";
+      sha256 = "1s8z6f7mi1pwsl79cqai8cr350m5lf2ifcxff57wx6mvm478k425";
     };
 
     extraPatches = [ ./ssh-keysign-8.5.patch ];
+    extraMeta.maintainers = with lib.maintainers; [ das_j ];
   };
 
   openssh_hpn = common rec {
diff --git a/nixpkgs/pkgs/tools/networking/openvpn/openvpn_learnaddress.nix b/nixpkgs/pkgs/tools/networking/openvpn/openvpn_learnaddress.nix
index 2120679fef3e..514491c2be21 100644
--- a/nixpkgs/pkgs/tools/networking/openvpn/openvpn_learnaddress.nix
+++ b/nixpkgs/pkgs/tools/networking/openvpn/openvpn_learnaddress.nix
@@ -1,7 +1,8 @@
-{ lib, stdenv, fetchgit, makeWrapper,  coreutils, gawk, util-linux }:
+{ lib, stdenv, fetchgit, makeWrapper, coreutils, gawk, util-linux }:
 
 stdenv.mkDerivation {
-  name = "openvpn-learnaddress-19b03c3";
+  pname = "openvpn-learnaddress";
+  version = "unstable-2013-10-21";
 
   src = fetchgit {
     url = "https://gist.github.com/4058733.git";
diff --git a/nixpkgs/pkgs/tools/networking/openvpn/update-resolv-conf.nix b/nixpkgs/pkgs/tools/networking/openvpn/update-resolv-conf.nix
index d71ab72901bc..e8533a214af1 100644
--- a/nixpkgs/pkgs/tools/networking/openvpn/update-resolv-conf.nix
+++ b/nixpkgs/pkgs/tools/networking/openvpn/update-resolv-conf.nix
@@ -3,8 +3,10 @@
 let
   binPath = lib.makeBinPath [ coreutils openresolv systemd ];
 
-in stdenv.mkDerivation {
-  name = "update-resolv-conf-2017-06-21";
+in
+stdenv.mkDerivation {
+  pname = "update-resolv-conf";
+  version = "unstable-2017-06-21";
 
   src = fetchFromGitHub {
     owner = "masterkorp";
diff --git a/nixpkgs/pkgs/tools/networking/p2p/amule/default.nix b/nixpkgs/pkgs/tools/networking/p2p/amule/default.nix
index 96bf7656e8ae..c2e5f4568242 100644
--- a/nixpkgs/pkgs/tools/networking/p2p/amule/default.nix
+++ b/nixpkgs/pkgs/tools/networking/p2p/amule/default.nix
@@ -7,10 +7,11 @@
 , lib
 , cmake
 , zlib
-, wxGTK
+, wxGTK30-gtk3 # WxGTK 3.0 must be used because aMule does not yet work well with 3.1
 , perl
 , cryptopp
 , libupnp
+, boost # Not using boost leads to crashes with gtk3
 , gettext
 , libpng
 , autoreconfHook
@@ -33,7 +34,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake gettext makeWrapper pkg-config ];
 
   buildInputs = [
-    zlib wxGTK perl cryptopp.dev libupnp
+    zlib wxGTK30-gtk3 perl cryptopp.dev libupnp boost
   ] ++ lib.optional httpServer libpng
     ++ lib.optional client libX11;
 
@@ -66,7 +67,7 @@ stdenv.mkDerivation rec {
 
     homepage = "https://github.com/amule-project/amule";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ phreedom ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
     # cmake fails: Cannot specify link libraries for target "wxWidgets::ADV" which is not built by this project.
     broken = enableDaemon;
diff --git a/nixpkgs/pkgs/tools/networking/p2p/jesec-rtorrent/default.nix b/nixpkgs/pkgs/tools/networking/p2p/jesec-rtorrent/default.nix
new file mode 100644
index 000000000000..56fec5333fc7
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/p2p/jesec-rtorrent/default.nix
@@ -0,0 +1,9 @@
+{ lib
+, pkgs
+, callPackage
+}:
+
+rec {
+  libtorrent = callPackage ./libtorrent.nix { };
+  rtorrent = callPackage ./rtorrent.nix { };
+}
diff --git a/nixpkgs/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix b/nixpkgs/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix
new file mode 100644
index 000000000000..d46e4a159399
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gtest
+, openssl
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "jesec-libtorrent";
+  version = "0.13.8-r3";
+
+  src = fetchFromGitHub {
+    owner = "jesec";
+    repo = "libtorrent";
+    rev = "v${version}";
+    hash = "sha256-S3DOKzXkvU+ZJxfrxwLXCVBnepzmiZ+3iiQqz084BEk=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+  buildInputs = [
+    openssl
+    zlib
+  ];
+
+  doCheck = true;
+  preCheck = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD
+  '';
+  checkInputs = [
+    gtest
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/jesec/libtorrent";
+    description = "A BitTorrent library written in C++ for *nix, with focus on high performance and good code (jesec's fork)";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ winter AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/p2p/rtorrent-jesec/default.nix b/nixpkgs/pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix
index eeff6e91399d..7fe444228d37 100644
--- a/nixpkgs/pkgs/tools/networking/p2p/rtorrent-jesec/default.nix
+++ b/nixpkgs/pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix
@@ -2,40 +2,48 @@
 , stdenv
 , fetchFromGitHub
 , cmake
-, gtest
-, libtorrent-jesec
 , curl
+, gtest
+, libtorrent
 , ncurses
-, xmlrpc_c
-, nlohmann_json
-, xmlRpcSupport ? true
-, jsonRpcSupport ? true
+, jsonRpcSupport ? true, nlohmann_json
+, xmlRpcSupport ? true, xmlrpc_c
 }:
-let
-  inherit (lib) optional;
-in
+
 stdenv.mkDerivation rec {
-  pname = "rtorrent-jesec";
-  version = "0.9.8-r14";
+  pname = "jesec-rtorrent";
+  version = "0.9.8-r15";
 
   src = fetchFromGitHub {
     owner = "jesec";
     repo = "rtorrent";
     rev = "v${version}";
-    sha256 = "sha256-AbjzNIha3MkCZi6MuyUfPx9r3zeXeTUzkbD7uHB85lo=";
+    hash = "sha256-yYOw8wsiQd478JijLgPtEWsw2/ewd46re+t9D705rmk=";
   };
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ libtorrent-jesec curl ncurses ]
-    ++ optional xmlRpcSupport xmlrpc_c
-    ++ optional jsonRpcSupport nlohmann_json;
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    curl
+    libtorrent
+    ncurses
+  ]
+  ++ lib.optional jsonRpcSupport nlohmann_json
+  ++ lib.optional xmlRpcSupport xmlrpc_c;
+
+  cmakeFlags = [
+    "-DUSE_RUNTIME_CA_DETECTION=NO"
+  ]
+  ++ lib.optional (!jsonRpcSupport) "-DUSE_JSONRPC=NO"
+  ++ lib.optional (!xmlRpcSupport) "-DUSE_XMLRPC=NO";
 
-  cmakeFlags = [ "-DUSE_RUNTIME_CA_DETECTION=NO" ]
-    ++ optional (!xmlRpcSupport) "-DUSE_XMLRPC=NO"
-    ++ optional (!jsonRpcSupport) "-DUSE_JSONRPC=NO";
 
   doCheck = true;
-  checkInputs = [ gtest ];
+  checkInputs = [
+    gtest
+  ];
 
   prePatch = ''
     substituteInPlace src/main.cc \
@@ -51,7 +59,7 @@ stdenv.mkDerivation rec {
     description = "An ncurses client for libtorrent, ideal for use with screen, tmux, or dtach (jesec's fork)";
     homepage = "https://github.com/jesec/rtorrent";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ winterqt ];
+    maintainers = with maintainers; [ winter AndersonTorres ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/p2p/libtorrent-jesec/default.nix b/nixpkgs/pkgs/tools/networking/p2p/libtorrent-jesec/default.nix
deleted file mode 100644
index 0fd16f4799d6..000000000000
--- a/nixpkgs/pkgs/tools/networking/p2p/libtorrent-jesec/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, gtest, openssl, zlib }:
-
-stdenv.mkDerivation rec {
-  pname = "libtorrent-jesec";
-  version = "0.13.8-r2";
-
-  src = fetchFromGitHub {
-    owner = "jesec";
-    repo = "libtorrent";
-    rev = "v${version}";
-    sha256 = "sha256-eIXVTbVOCRHcxSsLPvIm9F60t2upk5ORpDSOOYqTCJ4=";
-  };
-
-  patches = [
-    (fetchpatch {
-      name = "test-fallback";
-      url = "https://github.com/jesec/libtorrent/commit/a38205ce06aadc9908478ec3a9c8aefd9be06344.patch";
-      sha256 = "sha256-2TyQ9zYWZw6bzAfVZzTOQSkfIZnDU8ykgpRAFXscEH0=";
-    })
-  ];
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ openssl zlib ];
-
-  doCheck = true;
-  preCheck = ''
-    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD
-  '';
-  checkInputs = [ gtest ];
-
-  meta = with lib; {
-    description = "A BitTorrent library written in C++ for *nix, with focus on high performance and good code (jesec's fork)";
-    homepage = "https://github.com/jesec/libtorrent";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ winterqt ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/p2p/libtorrent/default.nix b/nixpkgs/pkgs/tools/networking/p2p/libtorrent/default.nix
deleted file mode 100644
index 4d3ccf5fc150..000000000000
--- a/nixpkgs/pkgs/tools/networking/p2p/libtorrent/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-# NOTE: this is rakshava's version of libtorrent, used mainly by rtorrent
-# This is NOT libtorrent-rasterbar, used by Deluge, qbitttorent, and others
-{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook
-, cppunit, openssl, libsigcxx, zlib
-}:
-
-stdenv.mkDerivation rec {
-  pname = "libtorrent";
-  version = "0.13.8";
-
-  src = fetchFromGitHub {
-    owner = "rakshasa";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1h5y6ab3gs20yyprdfwcw8fh1c6czs4yrdj0kf54d2vp9qwz685r";
-  };
-
-  nativeBuildInputs = [ pkg-config autoreconfHook ];
-  buildInputs = [ cppunit openssl libsigcxx zlib ];
-
-  meta = with lib; {
-    homepage = "https://github.com/rakshasa/libtorrent";
-    description = "A BitTorrent library written in C++ for *nix, with focus on high performance and good code";
-
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ ebzzry codyopel ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/p2p/rakshasa-rtorrent/default.nix b/nixpkgs/pkgs/tools/networking/p2p/rakshasa-rtorrent/default.nix
new file mode 100644
index 000000000000..56fec5333fc7
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/p2p/rakshasa-rtorrent/default.nix
@@ -0,0 +1,9 @@
+{ lib
+, pkgs
+, callPackage
+}:
+
+rec {
+  libtorrent = callPackage ./libtorrent.nix { };
+  rtorrent = callPackage ./rtorrent.nix { };
+}
diff --git a/nixpkgs/pkgs/tools/networking/p2p/rakshasa-rtorrent/libtorrent.nix b/nixpkgs/pkgs/tools/networking/p2p/rakshasa-rtorrent/libtorrent.nix
new file mode 100644
index 000000000000..fff4cbb36cf6
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/p2p/rakshasa-rtorrent/libtorrent.nix
@@ -0,0 +1,48 @@
+# Note: this is rakshasa's version of libtorrent, used mainly by rtorrent.
+# *Do not* mistake it by libtorrent-rasterbar, used by Deluge, qbitttorent etc.
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoconf-archive
+, autoreconfHook
+, cppunit
+, libsigcxx
+, openssl
+, pkg-config
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rakshasa-libtorrent";
+  version = "0.13.8+date=2021-08-07";
+
+  src = fetchFromGitHub {
+    owner = "rakshasa";
+    repo = "libtorrent";
+    rev = "53596afc5fae275b3fb5753a4bb2a1a7f7cf6a51";
+    hash = "sha256-gyl/jfbptHz/gHkkVGWShhv1Z7o9fa9nJIz27U2A6wg=";
+  };
+
+  nativeBuildInputs = [
+    autoconf-archive
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    cppunit
+    libsigcxx
+    openssl
+    zlib
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/rakshasa/libtorrent";
+    description = "A BitTorrent library written in C++ for *nix, with focus on high performance and good code";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ebzzry codyopel ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/p2p/rakshasa-rtorrent/rtorrent.nix b/nixpkgs/pkgs/tools/networking/p2p/rakshasa-rtorrent/rtorrent.nix
new file mode 100644
index 000000000000..f166f6d0e29f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/p2p/rakshasa-rtorrent/rtorrent.nix
@@ -0,0 +1,68 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchFromGitHub
+, autoreconfHook
+, autoconf-archive
+, cppunit
+, curl
+, libsigcxx
+, libtool
+, libtorrent
+, ncurses
+, openssl
+, pkg-config
+, xmlrpc_c
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rakshasa-rtorrent";
+  version = "0.9.8+date=2021-08-07";
+
+  src = fetchFromGitHub {
+    owner = "rakshasa";
+    repo = "rtorrent";
+    rev = "a6bc99bb821d86b3b0633552db3fbd0a22497657";
+    hash = "sha256-HTwAs8dfZVXfLRNiT6QpjKGnuahHfoMfYWqdKkedUL0=";
+  };
+
+  nativeBuildInputs = [
+    autoconf-archive
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    cppunit
+    curl
+    libsigcxx
+    libtool
+    libtorrent
+    ncurses
+    openssl
+    xmlrpc_c
+    zlib
+  ];
+
+  configureFlags = [
+    "--with-xmlrpc-c"
+    "--with-posix-fallocate"
+  ];
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    mkdir -p $out/share/man/man1 $out/share/doc/rtorrent
+    mv doc/old/rtorrent.1 $out/share/man/man1/rtorrent.1
+    mv doc/rtorrent.rc $out/share/doc/rtorrent/rtorrent.rc
+  '';
+
+  meta = with lib; {
+    homepage = "https://rakshasa.github.io/rtorrent/";
+    description = "An ncurses client for libtorrent, ideal for use with screen, tmux, or dtach";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ebzzry codyopel ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/p2p/rtorrent/default.nix b/nixpkgs/pkgs/tools/networking/p2p/rtorrent/default.nix
deleted file mode 100644
index 20f9cec6f5fe..000000000000
--- a/nixpkgs/pkgs/tools/networking/p2p/rtorrent/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ lib, stdenv, fetchurl, fetchFromGitHub, pkg-config
-, libtool, autoconf, automake, cppunit
-, libtorrent, ncurses, libsigcxx, curl
-, zlib, openssl, xmlrpc_c
-
-# This no longer works
-, colorSupport ? false
-}:
-
-stdenv.mkDerivation rec {
-  pname = "rtorrent";
-  version = "0.9.8";
-
-  src = fetchFromGitHub {
-    owner = "rakshasa";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0hcaf1brk402caa7hhlb2r1c93mjzxkm8gb19xfl33gkp3jpf372";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [
-    libtool autoconf automake cppunit
-    libtorrent ncurses libsigcxx curl zlib openssl xmlrpc_c
-  ];
-
-  # Optional patch adds support for custom configurable colors
-  # https://github.com/Chlorm/chlorm_overlay/blob/master/net-p2p/rtorrent/README.md
-  patches = lib.optional colorSupport (fetchurl {
-    url = "https://gist.githubusercontent.com/codyopel/a816c2993f8013b5f4d6/raw/b952b32da1dcf14c61820dfcf7df00bc8918fec4/rtorrent-color.patch";
-    sha256 = "00gcl7yq6261rrfzpz2k8bd7mffwya0ifji1xqcvhfw50syk8965";
-  });
-
-  preConfigure = "./autogen.sh";
-
-  configureFlags = [ "--with-xmlrpc-c" "--with-posix-fallocate" ];
-
-  postInstall = ''
-    mkdir -p $out/share/man/man1 $out/share/doc/rtorrent
-    mv doc/old/rtorrent.1 $out/share/man/man1/rtorrent.1
-    mv doc/rtorrent.rc $out/share/doc/rtorrent/rtorrent.rc
-  '';
-
-  meta = with lib; {
-    homepage = "https://rakshasa.github.io/rtorrent/";
-    description = "An ncurses client for libtorrent, ideal for use with screen, tmux, or dtach";
-
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ ebzzry codyopel ];
-    license = licenses.gpl2Plus;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/pcapfix/default.nix b/nixpkgs/pkgs/tools/networking/pcapfix/default.nix
index bdce32f0813e..5a8f24355c26 100644
--- a/nixpkgs/pkgs/tools/networking/pcapfix/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pcapfix/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pcapfix";
-  version = "1.1.4";
+  version = "1.1.7";
 
   src = fetchurl {
     url = "https://f00l.de/pcapfix/pcapfix-${version}.tar.gz";
-    sha256 = "0m6308ka33wqs568b7cwa1f5q0bv61j2nwfizdyzrazw673lnh6d";
+    sha256 = "sha256-bL6/b5npdrGrdok5JK65DNh8MWUILRUmTBkz8POz4Ow=";
   };
 
   postPatch = ''sed -i "s|/usr|$out|" Makefile'';
diff --git a/nixpkgs/pkgs/tools/networking/pirate-get/default.nix b/nixpkgs/pkgs/tools/networking/pirate-get/default.nix
index dc9133229af7..112b78dcae8b 100644
--- a/nixpkgs/pkgs/tools/networking/pirate-get/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pirate-get/default.nix
@@ -4,11 +4,11 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "pirate-get";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07s5ss9dxccx1mip7pyga1fagywkqchxmzz55ng47ac9053ffxkq";
+    sha256 = "0pr703fwinr2f4rba86zp57mpf5j2jgvp5n50rc5vy5g7yfwsddm";
   };
 
   propagatedBuildInputs = [ colorama veryprettytable pyperclip ];
diff --git a/nixpkgs/pkgs/tools/networking/polysh/default.nix b/nixpkgs/pkgs/tools/networking/polysh/default.nix
deleted file mode 100644
index 69e5d0427e58..000000000000
--- a/nixpkgs/pkgs/tools/networking/polysh/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, fetchurl, python2Packages }:
-
-let
-  inherit (python2Packages) buildPythonApplication;
-in
-buildPythonApplication rec {
-  pname = "polysh";
-  version = "0.4";
-  src = fetchurl {
-          url = "http://guichaz.free.fr/polysh/files/${pname}-${version}.tar.bz2";
-          sha256 = "0kxhp38c8a8hc8l86y53l2z5zpzxc4b8lx5zyzmq1badcrfc4mh4";
-        };
-
-  meta = with lib; {
-    description = "A tool to aggregate several remote shells into one";
-    longDescription = ''
-      Polysh is a tool to aggregate several remote shells into one. It
-      is used to launch an interactive remote shell on many machines
-      at once.
-    '';
-    maintainers = [ maintainers.astsmtl ];
-    homepage = "http://guichaz.free.fr/polysh/";
-    license = licenses.gpl2;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/ppp/default.nix b/nixpkgs/pkgs/tools/networking/ppp/default.nix
index 708932ac1c9d..5608b032ac50 100644
--- a/nixpkgs/pkgs/tools/networking/ppp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ppp/default.nix
@@ -4,6 +4,7 @@
 , substituteAll
 , libpcap
 , openssl
+, bash
 }:
 
 stdenv.mkDerivation rec {
@@ -31,18 +32,22 @@ stdenv.mkDerivation rec {
   buildInputs = [
     libpcap
     openssl
+    bash
   ];
 
   postPatch = ''
-    # strip is not found when cross compiling with seemingly no way to point
-    # make to the right place, fixup phase will correctly strip
-    # everything anyway so we remove it from the Makefiles
     for file in $(find -name Makefile.linux); do
-      substituteInPlace "$file" --replace '$(INSTALL) -s' '$(INSTALL)'
       substituteInPlace "$file" --replace '-m 4550' '-m 550'
     done
+
+    patchShebangs --host \
+      scripts/{pon,poff,plog}
   '';
 
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
   installPhase = ''
     runHook preInstall
     mkdir -p $out/bin
@@ -52,9 +57,7 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    for tgt in pon poff plog; do
-      substituteInPlace "$out/bin/$tgt" --replace "/usr/sbin" "$out/bin"
-    done
+    substituteInPlace "$out/bin/pon" --replace "/usr/sbin" "$out/bin"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/networking/prettyping/default.nix b/nixpkgs/pkgs/tools/networking/prettyping/default.nix
index 43f32ddb9fb4..16311f5b9961 100644
--- a/nixpkgs/pkgs/tools/networking/prettyping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/prettyping/default.nix
@@ -1,12 +1,11 @@
 { stdenv, lib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  name = "${program}-${version}";
-  program = "prettyping";
+  pname = "prettyping";
   version = "1.0.1";
   src = fetchFromGitHub {
     owner = "denilsonsa";
-    repo = program;
+    repo = pname;
     rev = "v${version}";
     sha256 = "05vfaq9y52z40245j47yjk1xaiwrazv15sgjq64w91dfyahjffxf";
   };
diff --git a/nixpkgs/pkgs/tools/networking/privoxy/default.nix b/nixpkgs/pkgs/tools/networking/privoxy/default.nix
index 9fc159d810c1..33c7584dbdc9 100644
--- a/nixpkgs/pkgs/tools/networking/privoxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/privoxy/default.nix
@@ -8,11 +8,11 @@
 stdenv.mkDerivation rec {
 
   pname = "privoxy";
-  version = "3.0.32";
+  version = "3.0.33";
 
   src = fetchurl {
     url = "mirror://sourceforge/ijbswa/Sources/${version}%20%28stable%29/${pname}-${version}-stable-src.tar.gz";
-    sha256 = "sha256-xh3kAIxiRF7Bjx8nBAfL8jcuq6k76szcnjI4uy3v7tc=";
+    sha256 = "sha256-BLEE5w2sYVYbndEQaEslD6/IwT2+Q3pg+uGN3ZqIH64=";
   };
 
   hardeningEnable = [ "pie" ];
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     # GPLv2 (or later). See https://www.privoxy.org/user-manual/copyright.html
     license = licenses.gpl2Plus;
     platforms = platforms.all;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
   };
 
 }
diff --git a/nixpkgs/pkgs/tools/networking/proxify/default.nix b/nixpkgs/pkgs/tools/networking/proxify/default.nix
index 47e36df3ac64..36db5037a44c 100644
--- a/nixpkgs/pkgs/tools/networking/proxify/default.nix
+++ b/nixpkgs/pkgs/tools/networking/proxify/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "proxify";
-  version = "0.0.4";
+  version = "0.0.5";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "proxify";
     rev = "v${version}";
-    sha256 = "0qhr51naa7ad80fsr12ka432071mfb1zq2wd852p1lyvy0mdf52s";
+    sha256 = "sha256-jITmLJHKTIXnQRUTLaXQPv57gJSbD+6AfJNl36AemR0=";
   };
 
-  vendorSha256 = "0dynyhqh8jzmljqng1yh07r6k6zfzlsgh36rlynbdgcvjl7jdhnx";
+  vendorSha256 = "sha256-Yf1edWWHao2A+iY/5N14mvtvLP+IJDZEEB0Voj47sCs=";
 
   meta = with lib; {
     description = "Proxy tool for HTTP/HTTPS traffic capture";
diff --git a/nixpkgs/pkgs/tools/networking/radsecproxy/default.nix b/nixpkgs/pkgs/tools/networking/radsecproxy/default.nix
index 1c56d520b907..7f15ef91e1be 100644
--- a/nixpkgs/pkgs/tools/networking/radsecproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/radsecproxy/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "radsecproxy";
-  version = "1.9.0";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0ppgnvmzk5j42zvz74mwaz6767lzf9vpl8y57w612fvqpg65g4bv";
+    sha256 = "sha256-gSXjwQ9zJPVNzGqLsZzTEQ0OxbQUiUJYGxrEm56DZDE=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    homepage = "https://software.nordu.net/radsecproxy/";
+    homepage = "https://radsecproxy.github.io/";
     description = "A generic RADIUS proxy that supports both UDP and TLS (RadSec) RADIUS transports";
     license = licenses.bsd3;
     maintainers = with maintainers; [ sargon ];
diff --git a/nixpkgs/pkgs/tools/networking/redsocks/default.nix b/nixpkgs/pkgs/tools/networking/redsocks/default.nix
index b609cce90bc5..9b8989f30c2a 100644
--- a/nixpkgs/pkgs/tools/networking/redsocks/default.nix
+++ b/nixpkgs/pkgs/tools/networking/redsocks/default.nix
@@ -1,15 +1,12 @@
 { lib, stdenv, fetchFromGitHub, libevent }:
 
-let
-  pkg = "redsocks";
+stdenv.mkDerivation rec {
+  pname = "redsocks";
   version = "0.5";
-in
-stdenv.mkDerivation {
-  name = "${pkg}-${version}";
 
   src = fetchFromGitHub {
     owner = "darkk";
-    repo = pkg;
+    repo = "redsocks";
     rev = "release-${version}";
     sha256 = "170cpvvivb6y2kwsqj9ppx5brgds9gkn8mixrnvj8z9c15xhvplm";
   };
diff --git a/nixpkgs/pkgs/tools/networking/rp-pppoe/default.nix b/nixpkgs/pkgs/tools/networking/rp-pppoe/default.nix
index fd3a563c209d..572625651e9a 100644
--- a/nixpkgs/pkgs/tools/networking/rp-pppoe/default.nix
+++ b/nixpkgs/pkgs/tools/networking/rp-pppoe/default.nix
@@ -1,9 +1,10 @@
 { lib, stdenv, fetchurl, ppp } :
 let
-  version = "3.12";
 in
-stdenv.mkDerivation {
-  name = "rp-pppoe-" + version;
+stdenv.mkDerivation rec {
+  pname = "rp-pppoe";
+  version = "3.12";
+
   src = fetchurl {
     url = "https://www.roaringpenguin.com/files/download/rp-pppoe-${version}.tar.gz";
     sha256 = "1hl6rjvplapgsyrap8xj46kc9kqwdlm6ya6gp3lv0ihm0c24wy80";
@@ -11,7 +12,6 @@ stdenv.mkDerivation {
 
   buildInputs = [ ppp ];
 
-
   preConfigure = ''
     cd src
     export PPPD=${ppp}/sbin/pppd
diff --git a/nixpkgs/pkgs/tools/networking/s5cmd/default.nix b/nixpkgs/pkgs/tools/networking/s5cmd/default.nix
index c472e2626e01..f7847f324cb0 100644
--- a/nixpkgs/pkgs/tools/networking/s5cmd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/s5cmd/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "s5cmd";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "peak";
     repo = "s5cmd";
     rev = "v${version}";
-    sha256 = "sha256-sood01wI0ZnkXUKDHX14ix3bWHR/PRu6+MDNeos5Jk0=";
+    sha256 = "sha256-12bKMZ6SMPsqLqaBTVxCxvs7PZ0CKimI9wlqvWZ/bgY=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/networking/s6-dns/default.nix b/nixpkgs/pkgs/tools/networking/s6-dns/default.nix
index 0a7307b6293b..678b8639f07b 100644
--- a/nixpkgs/pkgs/tools/networking/s6-dns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/s6-dns/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "s6-dns";
-  version = "2.3.5.2";
-  sha256 = "0nczzjprvp6wirzycgf5h32dlgx4r8grzkqhif27n3ii6f5g78yw";
+  version = "2.3.5.3";
+  sha256 = "1nknkh2rw7ggf5ncspb11wyp6ldyqc9lf3nmnklwb5fcf5kjzi1a";
 
   description = "A suite of DNS client programs and libraries for Unix systems";
 
diff --git a/nixpkgs/pkgs/tools/networking/s6-networking/default.nix b/nixpkgs/pkgs/tools/networking/s6-networking/default.nix
index 42f7187fabed..abdc773280b4 100644
--- a/nixpkgs/pkgs/tools/networking/s6-networking/default.nix
+++ b/nixpkgs/pkgs/tools/networking/s6-networking/default.nix
@@ -19,8 +19,8 @@ assert sslSupportEnabled -> sslLibs ? ${sslSupport};
 
 buildPackage {
   pname = "s6-networking";
-  version = "2.5.0.0";
-  sha256 = "1fn3g9gkwgmnxallhk82f5rly81pnkilj7n49g5fbfmaalsq96mh";
+  version = "2.5.1.0";
+  sha256 = "0hgzj68bk17r1gr32ld1dm5s1x1a5x8ac03klykhfbasx8gwa1r5";
 
   description = "A suite of small networking utilities for Unix systems";
 
diff --git a/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix b/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
index 971570717331..b6d91da334e4 100644
--- a/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
+++ b/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
@@ -2,28 +2,36 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowsocks-rust";
-  version = "1.10.7";
+  version = "1.12.5";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shadowsocks";
     repo = pname;
-    sha256 = "08k5j469750bhlq49qc5nwc2jjgmy9qsm58nf2jfwhxlpflv12sc";
+    sha256 = "sha256-whPaFb+4mYOWmtFc/a+NkH9avCfOnGnAvqz3UFTt+RY=";
   };
 
-  cargoSha256 = "1r8w5cdygd26m95q9qpqa85aixx25jr510hpjlllbpfvm7zjpbqk";
+  cargoSha256 = "sha256-w7AqNsa9lolPEiHEv7E4XGaFV/UbCeYvmWekr9YzO6Q=";
 
   RUSTC_BOOTSTRAP = 1;
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices libiconv ];
 
-  checkFlags = [ "--skip=http_proxy" "--skip=udp_tunnel" ];
+  # all of these rely on connecting to www.example.com:80
+  checkFlags = [
+    "--skip=http_proxy"
+    "--skip=tcp_tunnel"
+    "--skip=udp_tunnel"
+    "--skip=udp_relay"
+    "--skip=socks4_relay_connect"
+    "--skip=socks5_relay_aead"
+    "--skip=socks5_relay_stream"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/shadowsocks/shadowsocks-rust";
     description = "A Rust port of shadowsocks";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
-    broken = stdenv.isAarch64;  # crypto2 crate doesn't build on aarch64
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/shorewall/default.nix b/nixpkgs/pkgs/tools/networking/shorewall/default.nix
index f95fc9d92b18..0c9e515ce094 100644
--- a/nixpkgs/pkgs/tools/networking/shorewall/default.nix
+++ b/nixpkgs/pkgs/tools/networking/shorewall/default.nix
@@ -1,10 +1,8 @@
 { coreutils
-, ebtables
 , fetchurl
 , gnugrep
 , gnused
 , iproute2
-, ipset
 , iptables
 , perl
 , perlPackages
@@ -17,8 +15,6 @@ let
            [ "${coreutils}/bin"
              "${iproute2}/bin"
              "${iptables}/bin"
-             "${ipset}/bin"
-             "${ebtables}/bin"
              "${util-linux}/bin"
              "${gnugrep}/bin"
              "${gnused}/bin"
@@ -47,9 +43,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     coreutils
     iproute2
-    ipset
     iptables
-    ebtables
     util-linux
     gnugrep
     gnused
diff --git a/nixpkgs/pkgs/tools/networking/slowlorust/default.nix b/nixpkgs/pkgs/tools/networking/slowlorust/default.nix
new file mode 100644
index 000000000000..dc98d95828f5
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/slowlorust/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "slowlorust";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "MJVL";
+    repo = pname;
+    rev = version;
+    sha256 = "c4NWkQ/QvlUo1YoV2s7rWB6wQskAP5Qp1WVM23wvV3c=";
+  };
+
+  cargoSha256 = "Wu1mm+yJw2SddddxC5NfnMWLr+dplnRxH3AJ1/mTAKM=";
+
+  meta = with lib; {
+    description = "Lightweight slowloris (HTTP DoS) tool";
+    homepage = "https://github.com/MJVL/slowlorust";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/sniffglue/default.nix b/nixpkgs/pkgs/tools/networking/sniffglue/default.nix
index 502ab323e8e2..48ffb550c205 100644
--- a/nixpkgs/pkgs/tools/networking/sniffglue/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sniffglue/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sniffglue";
-  version = "0.13.1";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-P8ubw523sw1O6Gpruy1Wa/Y0I3qJgvMdT53wBBoEGhE=";
+    sha256 = "sha256-s+2YzfSy7+o0VZZ4j/Cfd6F5GvBytthmDJqrPw+7SU0=";
   };
 
-  cargoSha256 = "sha256-+Wh+/C9LvYppCghv11e8NKNhiMy0SV4S3nEWA6b1hQk=";
+  cargoSha256 = "sha256-4G1OGY7/vE8NKBFeuOZzqyZ0DQN4hy/HBO9qrEtBYlM=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/networking/socat/default.nix b/nixpkgs/pkgs/tools/networking/socat/default.nix
index 7a24ccf33b74..b26760a72941 100644
--- a/nixpkgs/pkgs/tools/networking/socat/default.nix
+++ b/nixpkgs/pkgs/tools/networking/socat/default.nix
@@ -9,13 +9,20 @@
 
 stdenv.mkDerivation rec {
   pname = "socat";
-  version = "1.7.4.1";
+  version = "1.7.4.2";
 
   src = fetchurl {
     url = "http://www.dest-unreach.org/socat/download/${pname}-${version}.tar.bz2";
-    sha256 = "1sbmqqvni3ss9wyay6ik5v81kxffkra80mh4ypgj74g82iba5b1z";
+    sha256 = "sha256-ZpCp+ZkEV7UFCXonK78sv0zDVXYXb3ZkbjUksOkcF2M=";
   };
 
+  patches = [
+    # This adds missing feature checks for TCP_INFO, a Linux feature
+    #
+    # Discussed in https://github.com/Homebrew/homebrew-core/pull/88595
+    ./socat-fix-feature-check-tcpinfo.patch
+  ];
+
   postPatch = ''
     patchShebangs test.sh
     substituteInPlace test.sh \
diff --git a/nixpkgs/pkgs/tools/networking/socat/socat-fix-feature-check-tcpinfo.patch b/nixpkgs/pkgs/tools/networking/socat/socat-fix-feature-check-tcpinfo.patch
new file mode 100644
index 000000000000..ec0ea88359c8
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/socat/socat-fix-feature-check-tcpinfo.patch
@@ -0,0 +1,21 @@
+diff --git a/filan.c b/filan.c
+index 3465f7c..77c22a4 100644
+--- a/filan.c
++++ b/filan.c
+@@ -905,6 +905,7 @@ int tcpan(int fd, FILE *outfile) {
+ #if WITH_TCP
+ 
+ int tcpan2(int fd, FILE *outfile) {
++#ifdef TCP_INFO
+    struct tcp_info tcpinfo;
+    socklen_t tcpinfolen = sizeof(tcpinfo);
+    int result;
+@@ -930,6 +931,8 @@ int tcpan2(int fd, FILE *outfile) {
+    // fprintf(outfile, "%s={%u}\t", "TCPI_", tcpinfo.tcpi_);
+ 
+    return 0;
++#endif
++   return -1;
+ }
+ 
+ #endif /* WITH_TCP */
diff --git a/nixpkgs/pkgs/tools/networking/spiped/default.nix b/nixpkgs/pkgs/tools/networking/spiped/default.nix
index 8b9d4c9e7b89..233da21ec93e 100644
--- a/nixpkgs/pkgs/tools/networking/spiped/default.nix
+++ b/nixpkgs/pkgs/tools/networking/spiped/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "spiped";
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchurl {
     url    = "https://www.tarsnap.com/spiped/${pname}-${version}.tgz";
-    sha256 = "8d7089979db79a531a0ecc507b113ac6f2cf5f19305571eff1d3413e0ab33713";
+    sha256 = "sha256-BdRofRLRHX+YiNQ/PYDFQbdyHJhwONCF9xyRuwYgRWc=";
   };
 
   buildInputs = [ openssl ];
diff --git a/nixpkgs/pkgs/tools/networking/spoof-mac/default.nix b/nixpkgs/pkgs/tools/networking/spoof-mac/default.nix
index fdd282fa8b5f..3b7bbd0d52a2 100644
--- a/nixpkgs/pkgs/tools/networking/spoof-mac/default.nix
+++ b/nixpkgs/pkgs/tools/networking/spoof-mac/default.nix
@@ -16,6 +16,8 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
+  pythonImportsCheck = [ "spoofmac" ];
+
   meta = with lib; {
     description = "Change your MAC address for debugging purposes";
     homepage = "https://github.com/feross/SpoofMAC";
diff --git a/nixpkgs/pkgs/tools/networking/sshoogr/default.nix b/nixpkgs/pkgs/tools/networking/sshoogr/default.nix
index f3c9c1a31fb8..e20978c277d9 100644
--- a/nixpkgs/pkgs/tools/networking/sshoogr/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sshoogr/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "0.9.26";
 
   src = fetchzip {
-    url = "https://repo1.maven.org/maven2/com/aestasit/infrastructure/${pname}/${pname}/${version}/${pname}-${version}.zip";
+    url = "mirror://maven/com/aestasit/infrastructure/${pname}/${pname}/${version}/${pname}-${version}.zip";
     sha256 = "134qlx90y82g1rfxhyn12z9r2imm1l3fz09hrrn3pgcdcq5jz2s1";
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/ssldump/default.nix b/nixpkgs/pkgs/tools/networking/ssldump/default.nix
index 0d3e5ccf07e6..dd01bf504404 100644
--- a/nixpkgs/pkgs/tools/networking/ssldump/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ssldump/default.nix
@@ -47,6 +47,6 @@ stdenv.mkDerivation rec {
     homepage = "http://ssldump.sourceforge.net";
     license = "BSD-style";
     maintainers = with maintainers; [ aycanirican ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/sstp/default.nix b/nixpkgs/pkgs/tools/networking/sstp/default.nix
index 151538462a35..65449c203e1d 100644
--- a/nixpkgs/pkgs/tools/networking/sstp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sstp/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sstp-client";
-  version = "1.0.15";
+  version = "1.0.16";
 
   src = fetchurl {
     url = "mirror://sourceforge/sstp-client/sstp-client/sstp-client-${version}.tar.gz";
-    sha256 = "sha256-hISqUfv75Big661YrSCo7hxG7XH4AL4YvNI7Qua6rWQ=";
+    sha256 = "sha256-r74U/RIveHX0+tDtmC0XRRNtLmbMNrl/cu8aERF4TKE=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/networking/strongswan/default.nix b/nixpkgs/pkgs/tools/networking/strongswan/default.nix
index 601446abb95c..9edc1c79fb0c 100644
--- a/nixpkgs/pkgs/tools/networking/strongswan/default.nix
+++ b/nixpkgs/pkgs/tools/networking/strongswan/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchpatch, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub
 , pkg-config, autoreconfHook, perl, gperf, bison, flex
 , gmp, python3, iptables, ldns, unbound, openssl, pcsclite, glib
 , openresolv
@@ -17,13 +17,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "strongswan";
-  version = "5.8.1"; # Make sure to also update <nixpkgs/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix> when upgrading!
+  version = "5.9.4"; # Make sure to also update <nixpkgs/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix> when upgrading!
 
   src = fetchFromGitHub {
     owner = "strongswan";
     repo = "strongswan";
     rev = version;
-    sha256 = "1a1hw2jsbwvkdhhxjmq87hz13ivbgvqwks1q3adz14mqgbc64snd";
+    sha256 = "1y1gs232x7hsbccjga9nbkf4bbi5wxazlkg00qd2v1nz86sfy4cd";
   };
 
   dontPatchELF = true;
@@ -40,19 +40,6 @@ stdenv.mkDerivation rec {
     ./ext_auth-path.patch
     ./firewall_defaults.patch
     ./updown-path.patch
-
-    # Don't use etc/dbus-1/system.d
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/strongswan/strongswan/pull/150.patch";
-      sha256 = "1irfxb99blb8v3hs0kmlhzkkwbmds1p0gq319z8lmacz36cgyj2c";
-    })
-
-    # fix build with -fno-common tollchain
-    (fetchpatch {
-      name = "fno-common.patch";
-      url = "https://git.strongswan.org/?p=strongswan.git;a=patch;h=91c6387e69c09beaa9b9ca1e28471751a834fc24";
-      sha256 = "0jp9walxwffp5cl7q0hb80h3s2gdj1nn3n8bvnbmwgh2s6pi148f";
-    })
   ];
 
   postPatch = optionalString stdenv.isLinux ''
diff --git a/nixpkgs/pkgs/tools/networking/stubby/default.nix b/nixpkgs/pkgs/tools/networking/stubby/default.nix
deleted file mode 100644
index abe11b7bcb91..000000000000
--- a/nixpkgs/pkgs/tools/networking/stubby/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, getdns, doxygen, libyaml, darwin, cmake, systemd }:
-
-stdenv.mkDerivation rec {
-  pname = "stubby";
-  version = "0.3.0";
-
-  src = fetchFromGitHub {
-    owner = "getdnsapi";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "04izd1v4fv9l7r75aafkrp6svczbx4cvv1vnfyx5n9105pin11mx";
-  };
-
-  nativeBuildInputs = [ cmake libyaml ];
-
-  buildInputs = [ doxygen getdns systemd ]
-    ++ lib.optionals stdenv.isDarwin [ darwin.Security ];
-
-  meta = with lib; {
-    description = "A local DNS Privacy stub resolver (using DNS-over-TLS)";
-    longDescription = ''
-      Stubby is an application that acts as a local DNS Privacy stub
-      resolver (using RFC 7858, aka DNS-over-TLS). Stubby encrypts DNS
-      queries sent from a client machine (desktop or laptop) to a DNS
-      Privacy resolver increasing end user privacy. Stubby is developed by
-      the getdns team.
-    '';
-    homepage = "https://dnsprivacy.org/wiki/x/JYAT";
-    downloadPage = "https://github.com/getdnsapi/stubby";
-    maintainers = with maintainers; [ leenaars ehmry ];
-    license = licenses.bsd3; platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/stunnel/default.nix b/nixpkgs/pkgs/tools/networking/stunnel/default.nix
index 68c2fc935fcd..5b73e7d3fb48 100644
--- a/nixpkgs/pkgs/tools/networking/stunnel/default.nix
+++ b/nixpkgs/pkgs/tools/networking/stunnel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "stunnel";
-  version = "5.60";
+  version = "5.61";
 
   src = fetchurl {
     url    = "https://www.stunnel.org/downloads/${pname}-${version}.tar.gz";
-    sha256 = "sha256-xF12WxUhhh/qmwO0JbndfUizBVEowK7Gc7ul75uPeH0=";
+    sha256 = "sha256-keoMpkgtj359lx7mSrT4aigX0DijcvCJPigxXvIBXXo=";
     # please use the contents of "https://www.stunnel.org/downloads/${name}.tar.gz.sha256",
     # not the output of `nix-prefetch-url`
   };
diff --git a/nixpkgs/pkgs/tools/networking/subfinder/default.nix b/nixpkgs/pkgs/tools/networking/subfinder/default.nix
index ae87d02fe236..7960324cbd71 100644
--- a/nixpkgs/pkgs/tools/networking/subfinder/default.nix
+++ b/nixpkgs/pkgs/tools/networking/subfinder/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "subfinder";
-  version = "2.4.8";
+  version = "2.4.9";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1g1j3il1a595g7z8blhvyd5l03h6kccl7mzrx51c33jz74cms5kn";
+    sha256 = "sha256-BtyPy6ow3flHl4jM9cfF+y3JCtLYx2c+a8f7ol3nQj4=";
   };
 
-  vendorSha256 = "1jmik0zmfy1n3g4yjkskiqzd28dpywf0hw6adgz2jshlhka58iw0";
+  vendorSha256 = "sha256-jIU5UZdmBUqyjva+g7zoijPqHF2p3vzImEFQCP/CFwE=";
 
   modRoot = "./v2";
 
diff --git a/nixpkgs/pkgs/tools/networking/swagger-codegen/default.nix b/nixpkgs/pkgs/tools/networking/swagger-codegen/default.nix
index f2847703bdba..37e35e95e7f4 100644
--- a/nixpkgs/pkgs/tools/networking/swagger-codegen/default.nix
+++ b/nixpkgs/pkgs/tools/networking/swagger-codegen/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   ];
 
   src = fetchurl {
-    url = "https://repo1.maven.org/maven2/io/swagger/${pname}-cli/${version}/${jarfilename}";
+    url = "mirror://maven/io/swagger/${pname}-cli/${version}/${jarfilename}";
     sha256 = "04wl5k8k1ziqz7k5w0g7i6zdfn41pbh3k0m8vq434k1886inf8yn";
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/swagger-codegen3/default.nix b/nixpkgs/pkgs/tools/networking/swagger-codegen3/default.nix
index 8fc908a1f2c2..499b829b4376 100644
--- a/nixpkgs/pkgs/tools/networking/swagger-codegen3/default.nix
+++ b/nixpkgs/pkgs/tools/networking/swagger-codegen3/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "3.0.25";
+  version = "3.0.31";
   pname = "swagger-codegen";
 
   jarfilename = "${pname}-cli-${version}.jar";
@@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
   ];
 
   src = fetchurl {
-    url = "https://repo1.maven.org/maven2/io/swagger/codegen/v3/${pname}-cli/${version}/${jarfilename}";
-    sha256 = "1rdz45kmmg60fs7ddnla1xq30nah6s6rd18fqbjbjxng8r92brnd";
+    url = "mirror://maven/io/swagger/codegen/v3/${pname}-cli/${version}/${jarfilename}";
+    sha256 = "sha256-GZJLS+gy23FcSS2twF4fnRf5QkVEpx23UaN7pdJIudM=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/tools/networking/tcpreplay/default.nix b/nixpkgs/pkgs/tools/networking/tcpreplay/default.nix
index ed83e4d45549..6e2fb35fd4c2 100644
--- a/nixpkgs/pkgs/tools/networking/tcpreplay/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tcpreplay/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     "--enable-shared"
     "--enable-tcpreplay-edit"
     "--with-libpcap=${libpcap}"
-    "--with-tcpdump=${tcpdump}/bin"
+    "--with-tcpdump=${tcpdump}/bin/tcpdump"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/networking/tdns-cli/default.nix b/nixpkgs/pkgs/tools/networking/tdns-cli/default.nix
index 9f1ac89ce8ec..a38456bcc760 100644
--- a/nixpkgs/pkgs/tools/networking/tdns-cli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tdns-cli/default.nix
@@ -1,17 +1,17 @@
 { lib, fetchFromGitHub, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
-  name = "tdns-cli";
+  pname = "tdns-cli";
   version = "0.0.5";
 
   src = fetchFromGitHub {
     owner = "rotty";
-    repo = name;
+    repo = pname;
     rev = "v${version}";
     sha256 = "0nn036in5j1h0vxkwif0lf7fn900zy4f4kxlzy6qdx3jakgmxvwh";
   };
 
-  cargoSha256 = "14mmfj5my8gbsdhlhz17w8wjcc085c6dkj78kwr2hhsbcxp1vjgg";
+  cargoSha256 = "sha256-O4n38dla2WgZ4949Ata6AYbZF9LMnXDyuFNoXRrTN7I=";
 
   meta = with lib; {
     description = "DNS tool that aims to replace dig and nsupdate";
diff --git a/nixpkgs/pkgs/tools/networking/telepresence2/default.nix b/nixpkgs/pkgs/tools/networking/telepresence2/default.nix
index e7ae903e8682..9a2e1b4bbc78 100644
--- a/nixpkgs/pkgs/tools/networking/telepresence2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/telepresence2/default.nix
@@ -1,17 +1,27 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, kubernetes-helm }:
 
 buildGoModule rec {
   pname = "telepresence2";
-  version = "2.4.0";
+  version = "2.4.6";
 
   src = fetchFromGitHub {
     owner = "telepresenceio";
     repo = "telepresence";
     rev = "v${version}";
-    sha256 = "1v2jkhdlyq37akqyhb8mwsh7rjdv2fjw8kyzys3dv04k3dy5sl0f";
+    sha256 = "09w7yk7jk5m6clq3drbgdr61w60b21jmfd635brfahms8pykmmzl";
   };
 
-  vendorSha256 = "1snmp461h8driy1w1xggk669yxl0sjl1m9pbqm7dwk44yb94zi1q";
+  # The Helm chart is go:embed'ed as a tarball in the binary.
+  # That tarball is generated by running ./build-aux/package_embedded_chart/main.go,
+  # which tries to invoke helm from tools/bin/helm.
+  # Oh well…
+  preBuild = ''
+    mkdir -p tools/bin
+    ln -sfn ${kubernetes-helm}/bin/helm tools/bin/helm
+    go run ./build-aux/package_embedded_chart/main.go ${src.rev}
+  '';
+
+  vendorSha256 = "0przkcqaf56a0sgan2xxqfpbs9nbmq4brwdv1qnag7i9myzvixxb";
 
   ldflags = [
     "-s" "-w" "-X=github.com/telepresenceio/telepresence/v2/pkg/version.Version=${src.rev}"
diff --git a/nixpkgs/pkgs/tools/networking/tendermint/default.nix b/nixpkgs/pkgs/tools/networking/tendermint/default.nix
index 1f363ae3f9f1..12eb1a7f0a64 100644
--- a/nixpkgs/pkgs/tools/networking/tendermint/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tendermint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tendermint";
-  version = "0.34.13";
+  version = "0.35.0";
 
   src = fetchFromGitHub {
     owner = "tendermint";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-z3rbDdk68PTvJ/LPnAx8kOjCGXMfxQA0LK9GLYgaiUY=";
+    sha256 = "sha256-fSDmwZNKAHXcMtNZlqJmUFkuFdZLkDbnn+ZrNtnszgU=";
   };
 
-  vendorSha256 = "sha256-bwDyis/dHKSqBFw5jFWSZip5YjBe1bq/ieg6Jg0P/TM=";
+  vendorSha256 = "sha256-DktuZ0NUyg8LbYklxde2ZZJ8/WOyBq50E9yEHtS+Hqw=";
 
   subPackages = [ "cmd/tendermint" ];
 
diff --git a/nixpkgs/pkgs/tools/networking/termscp/default.nix b/nixpkgs/pkgs/tools/networking/termscp/default.nix
new file mode 100644
index 000000000000..58bbfe5e46c6
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/termscp/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, dbus
+, fetchFromGitHub
+, libssh
+, openssl
+, pkg-config
+, rustPlatform
+, Foundation
+, Security
+, stdenv
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "termscp";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "veeso";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "131kij6pnw9r0p2a28g00z85dh758h4rm9ic09qmp61cq7dphkc1";
+  };
+
+  cargoSha256 = "1k2vwmfy6dczgs3bz8k4j24cc8l7l9fdh3ymp79ril4rp1v6kfp2";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    dbus
+    libssh
+    openssl
+  ] ++ lib.optional stdenv.isDarwin [
+    Foundation
+    Security
+  ];
+
+  # Requires network access
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Terminal tool for file transfer and explorer";
+    homepage = "https://github.com/veeso/termscp";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/tgt/default.nix b/nixpkgs/pkgs/tools/networking/tgt/default.nix
index ba1f89af433e..fdaf0dc177f3 100644
--- a/nixpkgs/pkgs/tools/networking/tgt/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tgt/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tgt";
-  version = "1.0.80";
+  version = "1.0.81";
 
   src = fetchFromGitHub {
     owner = "fujita";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5qBqCHbkL6yw/iT2AtSumw8V0bV74TEyYMRgcPHW2lg=";
+    sha256 = "sha256-SgMpoaVAuTbgpmnXRfQFWlK5gl01fsE9vJxu3C2ctPU=";
   };
 
   nativeBuildInputs = [ libxslt docbook_xsl makeWrapper ];
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "iSCSI Target daemon with RDMA support";
-    homepage = "http://stgt.sourceforge.net/";
+    homepage = "https://github.com/fujita/tgt";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ johnazoidberg ];
diff --git a/nixpkgs/pkgs/tools/networking/tinyssh/default.nix b/nixpkgs/pkgs/tools/networking/tinyssh/default.nix
new file mode 100644
index 000000000000..9bfa8aa3ab53
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/tinyssh/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "tinyssh";
+  version = "20210601";
+
+  src = fetchFromGitHub {
+    owner = "janmojzis";
+    repo = "tinyssh";
+    rev = version;
+    sha256 = "sha256-+THoPiD6dW5ZuiQmmLckOJGyjhzdF3qF0DgC51zjGY8=";
+  };
+
+  preConfigure = ''
+    echo /bin       > conf-bin
+    echo /share/man > conf-man
+  '';
+
+  DESTDIR = placeholder "out";
+
+  meta = with lib; {
+    description = "minimalistic SSH server";
+    homepage = "https://tinyssh.org";
+    license = licenses.publicDomain;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.kaction ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/tox-node/default.nix b/nixpkgs/pkgs/tools/networking/tox-node/default.nix
index 5ed6aa632d33..80d20a7ce7f7 100644
--- a/nixpkgs/pkgs/tools/networking/tox-node/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tox-node/default.nix
@@ -1,6 +1,7 @@
 { lib, rustPlatform, fetchFromGitHub
 , libsodium, openssl
 , pkg-config
+, fetchpatch
 }:
 
 with rustPlatform;
@@ -16,6 +17,14 @@ buildRustPackage rec {
     sha256 = "sha256-tB6v2NEBdTNHf89USdQOr/pV0mbxxb8ftOYPPJMvz5Y=";
   };
 
+  cargoPatches = [
+    # update cargo lock
+    (fetchpatch {
+      url = "https://github.com/tox-rs/tox-node/commit/63712d49d84e55df7bba9710e129780bbc636de3.patch";
+      sha256 = "sha256-jI6b5IHsAuGuM+7sPCdFnOOuV6K9rBmc5QqU5x72Fl0=";
+    })
+  ];
+
   buildInputs = [ libsodium openssl ];
   nativeBuildInputs = [ pkg-config ];
 
@@ -23,13 +32,13 @@ buildRustPackage rec {
 
   doCheck = false;
 
-  cargoSha256 = "sha256-J/0KO33vZmOvm6V7qCXInuAJTbRqyy5/qj6p6dEmoas=";
+  cargoSha256 = "sha256-yHsYjKJJNjepvcNszj4XQ0DbOY3AEJMZOnz0cAiwO1A=";
 
   meta = with lib; {
     description = "A server application to run tox node written in pure Rust";
     homepage = "https://github.com/tox-rs/tox-node";
     license = [ licenses.gpl3Plus ];
     platforms = platforms.linux;
-    maintainers = with maintainers; [ suhr ];
+    maintainers = with maintainers; [ suhr kurnevsky ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/toxvpn/default.nix b/nixpkgs/pkgs/tools/networking/toxvpn/default.nix
index c5aaec66d9e3..57a5510bd430 100644
--- a/nixpkgs/pkgs/tools/networking/toxvpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/toxvpn/default.nix
@@ -11,7 +11,7 @@
 }:
 
 stdenv.mkDerivation {
-  name = "toxvpn";
+  pname = "toxvpn";
   version = "unstable-2019-09-09";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/tools/networking/unbound/default.nix b/nixpkgs/pkgs/tools/networking/unbound/default.nix
index 393756a9b2ab..f9ff82735b90 100644
--- a/nixpkgs/pkgs/tools/networking/unbound/default.nix
+++ b/nixpkgs/pkgs/tools/networking/unbound/default.nix
@@ -12,6 +12,8 @@
 , pkg-config
 , makeWrapper
 , symlinkJoin
+, bison
+, nixosTests
   #
   # By default unbound will not be built with systemd support. Unbound is a very
   # commmon dependency. The transitive dependency closure of systemd also
@@ -30,6 +32,9 @@
 , withDNSTAP ? false
 , withTFO ? false
 , withRedis ? false
+# Avoid .lib depending on openssl.out
+# The build gets a little hacky, so in some cases we disable this approach.
+, withSlimLib ? stdenv.isLinux && !stdenv.hostPlatform.isMusl && !withDNSTAP
 , libnghttp2
 }:
 
@@ -82,7 +87,7 @@ stdenv.mkDerivation rec {
     "--with-libhiredis=${hiredis}"
   ];
 
-  PROTOC_C = if withDNSTAP then "${protobufc}/bin/protoc-c" else null;
+  PROTOC_C = lib.optionalString withDNSTAP "${protobufc}/bin/protoc-c";
 
   # Remove references to compile-time dependencies that are included in the configure flags
   postConfigure = let
@@ -91,6 +96,10 @@ stdenv.mkDerivation rec {
     sed -E '/CONFCMDLINE/ s;${storeDir}/[a-z0-9]{32}-;${storeDir}/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-;g' -i config.h
   '';
 
+  checkInputs = [ bison ];
+
+  doCheck = true;
+
   installFlags = [ "configfile=\${out}/etc/unbound/unbound.conf" ];
 
   postInstall = ''
@@ -99,14 +108,16 @@ stdenv.mkDerivation rec {
       --prefix PATH : ${lib.makeBinPath [ openssl ]}
   '';
 
-  preFixup = lib.optionalString (stdenv.isLinux && !stdenv.hostPlatform.isMusl) # XXX: revisit
+  preFixup = lib.optionalString withSlimLib
     # Build libunbound again, but only against nettle instead of openssl.
     # This avoids gnutls.out -> unbound.lib -> openssl.out.
-    # There was some problem with this on Darwin; let's not complicate non-Linux.
     ''
       configureFlags="$configureFlags --with-nettle=${nettle.dev} --with-libunbound-only"
       configurePhase
       buildPhase
+      if [ -n "$doCheck" ]; then
+          checkPhase
+      fi
       installPhase
     ''
   # get rid of runtime dependencies on $dev outputs
@@ -115,6 +126,8 @@ stdenv.mkDerivation rec {
     (pkg: lib.optionalString (pkg ? dev) " --replace '-L${pkg.dev}/lib' '-L${pkg.out}/lib' --replace '-R${pkg.dev}/lib' '-R${pkg.out}/lib'")
     (builtins.filter (p: p != null) buildInputs);
 
+  passthru.tests = nixosTests.unbound;
+
   meta = with lib; {
     description = "Validating, recursive, and caching DNS resolver";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/tools/networking/urlwatch/default.nix b/nixpkgs/pkgs/tools/networking/urlwatch/default.nix
index b1a374f0349d..705b2397c6ac 100644
--- a/nixpkgs/pkgs/tools/networking/urlwatch/default.nix
+++ b/nixpkgs/pkgs/tools/networking/urlwatch/default.nix
@@ -5,13 +5,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "urlwatch";
-  version = "2.23";
+  version = "2.24";
 
   src = fetchFromGitHub {
     owner = "thp";
     repo = "urlwatch";
     rev = version;
-    sha256 = "1ryygy7lalmwnv9kc8q4920gkdx878izy33a5dgxb780sy2qq8pg";
+    sha256 = "sha256-H7dusAXVEGOUu2fr6UjiXjw13Gm9xNeJDQ4jqV+8QmU=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/tools/networking/v2ray/default.nix b/nixpkgs/pkgs/tools/networking/v2ray/default.nix
index b37b98d7efc6..d3ea5a071e10 100644
--- a/nixpkgs/pkgs/tools/networking/v2ray/default.nix
+++ b/nixpkgs/pkgs/tools/networking/v2ray/default.nix
@@ -1,43 +1,23 @@
-{ lib, fetchFromGitHub, fetchurl, linkFarm, buildGoModule, runCommand, makeWrapper, nixosTests
-, assetOverrides ? {}
+{ lib, fetchFromGitHub, fetchurl, symlinkJoin, buildGoModule, runCommand, makeWrapper, nixosTests
+, v2ray-geoip, v2ray-domain-list-community, assets ? [ v2ray-geoip v2ray-domain-list-community ]
 }:
 
 let
-  version = "4.43.0";
+  version = "4.44.0";
 
   src = fetchFromGitHub {
     owner = "v2fly";
     repo = "v2ray-core";
     rev = "v${version}";
-    sha256 = "sha256-kOTQQUbaRQBABopU0x36j8Qre+Ko0UecUDNN8dvFni8=";
+    sha256 = "1yk02n2lllbcwqkz4f3l3d2df1w3m768zxvdawgmafjgmbqf0gjf";
   };
 
   vendorSha256 = "sha256-7zSIAKcMwtaTvokKuLJ8orqJc2jGuaw5FglEJadeZ9I=";
 
-  assets = {
-    # MIT licensed
-    "geoip.dat" = let
-      geoipRev = "202109300030";
-      geoipSha256 = "1d2z3ljs0v9rd10cfj8cpiijz3ikkplsymr44f7y90g4dmniwqh0";
-    in fetchurl {
-      url = "https://github.com/v2fly/geoip/releases/download/${geoipRev}/geoip.dat";
-      sha256 = geoipSha256;
-    };
-
-    # MIT licensed
-    "geosite.dat" = let
-      geositeRev = "20211001023210";
-      geositeSha256 = "02d55i1pdndwvmi4v42hnncjng517s0k06gr3yn5krnj2qfjli2w";
-    in fetchurl {
-      url = "https://github.com/v2fly/domain-list-community/releases/download/${geositeRev}/dlc.dat";
-      sha256 = geositeSha256;
-    };
-
-  } // assetOverrides;
-
-  assetsDrv = linkFarm "v2ray-assets" (lib.mapAttrsToList (name: path: {
-    inherit name path;
-  }) assets);
+  assetsDrv = symlinkJoin {
+    name = "v2ray-assets";
+    paths = assets;
+  };
 
   core = buildGoModule rec {
     pname = "v2ray-core";
@@ -84,6 +64,6 @@ in runCommand "v2ray-${version}" {
 } ''
   for file in ${core}/bin/*; do
     makeWrapper "$file" "$out/bin/$(basename "$file")" \
-      --set-default V2RAY_LOCATION_ASSET ${assetsDrv}
+      --set-default V2RAY_LOCATION_ASSET ${assetsDrv}/share/v2ray
   done
 ''
diff --git a/nixpkgs/pkgs/tools/networking/v2ray/update.sh b/nixpkgs/pkgs/tools/networking/v2ray/update.sh
index f645b8ea0939..9b8e4cef13a4 100755
--- a/nixpkgs/pkgs/tools/networking/v2ray/update.sh
+++ b/nixpkgs/pkgs/tools/networking/v2ray/update.sh
@@ -8,10 +8,8 @@ deps_nix=./deps.nix
 nixpkgs=../../../..
 
 old_core_rev=$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$version_nix")
-old_geoip_rev=$(sed -En 's/.*\bgeoipRev = "(.*?)".*/\1/p' "$version_nix")
-old_geosite_rev=$(sed -En 's/.*\bgeositeRev = "(.*?)".*/\1/p' "$version_nix")
 echo "Current version:" >&2
-echo "core: $old_core_rev, geoip: $old_geoip_rev, geosite: $old_geosite_rev" >&2
+echo "core: $old_core_rev" >&2
 
 function fetch_latest_rev {
     curl "https://api.github.com/repos/v2fly/$1/releases" |
@@ -20,10 +18,8 @@ function fetch_latest_rev {
 
 core_rev=$(fetch_latest_rev 'v2ray-core')
 core_rev=${core_rev:1}
-geoip_rev=$(fetch_latest_rev 'geoip')
-geosite_rev=$(fetch_latest_rev 'domain-list-community')
 echo "Latest version:" >&2
-echo "core: $core_rev, geoip: $geoip_rev, geosite: $geosite_rev" >&2
+echo "core: $core_rev" >&2
 
 if [[ $core_rev != $old_core_rev ]]; then
     echo "Prefetching core..." >&2
@@ -38,24 +34,6 @@ if [[ $core_rev != $old_core_rev ]]; then
         "$version_nix"
 fi
 
-if [[ $geoip_rev != $old_geoip_rev ]]; then
-    echo "Prefetching geoip..." >&2
-    hash=$(nix-prefetch-url "https://github.com/v2fly/geoip/releases/download/$geoip_rev/geoip.dat")
-    sed --in-place \
-        -e "s/\bgeoipRev = \".*\"/geoipRev = \"$geoip_rev\"/" \
-        -e "s/\bgeoipSha256 = \".*\"/geoipSha256 = \"$hash\"/" \
-        "$version_nix"
-fi
-
-if [[ $geosite_rev != $old_geosite_rev ]]; then
-    echo "Prefetching geosite..." >&2
-    hash=$(nix-prefetch-url "https://github.com/v2fly/domain-list-community/releases/download/$geosite_rev/dlc.dat")
-    sed --in-place \
-        -e "s/\bgeositeRev = \".*\"/geositeRev = \"$geosite_rev\"/" \
-        -e "s/\bgeositeSha256 = \".*\"/geositeSha256 = \"$hash\"/" \
-        "$version_nix"
-fi
-
 echo "Prebuilding..." >&2
 set +o pipefail
 vendorSha256=$(
diff --git a/nixpkgs/pkgs/tools/networking/vde2/default.nix b/nixpkgs/pkgs/tools/networking/vde2/default.nix
index 694a2bc02056..31d4f9e3ff57 100644
--- a/nixpkgs/pkgs/tools/networking/vde2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/vde2/default.nix
@@ -34,6 +34,13 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
+  # Disable parallel build as it fails as:
+  #   make: *** No rule to make target '../../src/lib/libvdemgmt.la',
+  #    needed by 'libvdesnmp.la'.  Stop.
+  # Next release should address it with
+  #     https://github.com/virtualsquare/vde-2/commit/7dd9ed46d5dca125ca45d679ac9f3acbfb0f9300.patch
+  enableParallelBuilding = false;
+
   meta = with lib; {
     homepage = "https://github.com/virtualsquare/vde-2";
     description = "Virtual Distributed Ethernet, an Ethernet compliant virtual network";
diff --git a/nixpkgs/pkgs/tools/networking/vopono/default.nix b/nixpkgs/pkgs/tools/networking/vopono/default.nix
index b90f405ec684..aa49d93ef660 100644
--- a/nixpkgs/pkgs/tools/networking/vopono/default.nix
+++ b/nixpkgs/pkgs/tools/networking/vopono/default.nix
@@ -5,14 +5,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "vopono";
-  version = "0.8.6";
+  version = "0.8.10";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "0dsyav755mggnsybj7iwvdqbqzz0gfd3j9vh0hmg5b7pbffanzvy";
+    sha256 = "sha256-+ZRvuUA7BvM8YW1QZQ7iJrLvleitl1hqEOrTkrLVSes";
   };
 
-  cargoHash = "sha256:187mi36dgr2f1klqclci175zqgyrm0b6awrcnav63vira7hqz076";
+  cargoHash = "sha256-zM5JufS0qEYPEEwl6iPZYge3cssrsLu835AhAd8F3vc";
 
   meta = with lib; {
     description = "Run applications through VPN connections in network namespaces";
diff --git a/nixpkgs/pkgs/tools/networking/vpn-slice/default.nix b/nixpkgs/pkgs/tools/networking/vpn-slice/default.nix
index 9511c214c08c..0e98212ad5a5 100644
--- a/nixpkgs/pkgs/tools/networking/vpn-slice/default.nix
+++ b/nixpkgs/pkgs/tools/networking/vpn-slice/default.nix
@@ -1,20 +1,26 @@
-{ lib, buildPythonApplication, python3Packages, fetchFromGitHub }:
+{ lib, buildPythonApplication, nix-update-script, python3Packages, fetchFromGitHub }:
 
 buildPythonApplication rec {
   pname = "vpn-slice";
-  version = "0.14";
+  version = "0.16.1";
 
   src = fetchFromGitHub {
     owner = "dlenski";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1z2mdl3arzl95zrj4ir57f762gcimmmq5nk91j679cshxz4snxyr";
+    sha256 = "sha256-T6VULLNRLWO4OcAsuTmhty6H4EhinyxQSg0dfv2DUJs=";
   };
 
   propagatedBuildInputs = with python3Packages; [ setproctitle dnspython ];
 
   doCheck = false;
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
   meta = with lib; {
     homepage = "https://github.com/dlenski/vpn-slice";
     description =
diff --git a/nixpkgs/pkgs/tools/networking/vpnc-scripts/default.nix b/nixpkgs/pkgs/tools/networking/vpnc-scripts/default.nix
index 776e8450d13c..f0d5991d34bc 100644
--- a/nixpkgs/pkgs/tools/networking/vpnc-scripts/default.nix
+++ b/nixpkgs/pkgs/tools/networking/vpnc-scripts/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation {
   pname = "vpnc-scripts";
-  version = "unstable-2021-03-21";
+  version = "unstable-2021-09-24";
   src = fetchgit {
-    url = "git://git.infradead.org/users/dwmw2/vpnc-scripts.git";
-    rev = "8fff06090ed193c4a7285e9a10b42e6679e8ecf3";
-    sha256 = "14bzzpwz7kdmlbx825h6s4jjdml9q6ziyrq8311lp8caql68qdq1";
+    url = "https://gitlab.com/openconnect/vpnc-scripts.git";
+    rev = "b749c2cadc2f32e2efffa69302861f9a7d4a4e5f";
+    sha256 = "sha256:19aj6mfkclbkx6ycyd4xm7id1bq78ismw0y6z23f6s016k3sjc8c";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/networking/vpnc/default.nix b/nixpkgs/pkgs/tools/networking/vpnc/default.nix
index 6928bacd6ce7..f67d29f09d49 100644
--- a/nixpkgs/pkgs/tools/networking/vpnc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/vpnc/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
     rm -r $sourceRoot/{trunk,branches,tags}
   '';
 
-  patches = [ ./makefile.patch ./no_default_route_when_netmask.patch ];
+  patches = [ ./no_default_route_when_netmask.patch ];
 
   # The `etc/vpnc/vpnc-script' script relies on `which' and on
   # `ifconfig' as found in net-tools (not GNU Inetutils).
@@ -23,6 +23,16 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [libgcrypt perl openssl ];
 
+  makeFlags = [
+    "PREFIX=$(out)"
+    "ETCDIR=$(out)/etc/vpnc"
+    "SCRIPT_PATH=$(out)/etc/vpnc/vpnc-script"
+  ];
+
+  postPatch = ''
+    patchShebangs makeman.pl
+  '';
+
   preConfigure = ''
     sed -i 's|^#OPENSSL|OPENSSL|g' Makefile
 
@@ -33,9 +43,6 @@ stdenv.mkDerivation {
 
     substituteInPlace "config.c" \
       --replace "/etc/vpnc/vpnc-script" "$out/etc/vpnc/vpnc-script"
-
-    substituteInPlace "pcf2vpnc" \
-      --replace "/usr/bin/perl" "${perl}/bin/perl"
   '';
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/tools/networking/vpnc/makefile.patch b/nixpkgs/pkgs/tools/networking/vpnc/makefile.patch
deleted file mode 100644
index 89a8cd6da952..000000000000
--- a/nixpkgs/pkgs/tools/networking/vpnc/makefile.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- vpnc-0.5.1.orig/Makefile	2008-02-10 22:22:43.000000000 +0100
-+++ vpnc-0.5.1/Makefile	2008-02-10 22:22:32.000000000 +0100
-@@ -20,8 +20,8 @@
- # $Id: Makefile 236 2007-09-05 20:40:59Z Joerg Mayer $
- 
- DESTDIR=
--PREFIX=/usr/local
--ETCDIR=/etc/vpnc
-+PREFIX=$(out)
-+ETCDIR=$(out)/etc/vpnc
- BINDIR=$(PREFIX)/bin
- SBINDIR=$(PREFIX)/sbin
- MANDIR=$(PREFIX)/share/man
-@@ -71,7 +71,7 @@
- 	$(CC) -o $@ $^ $(LDFLAGS)
- 
- vpnc.8 : vpnc.8.template makeman.pl vpnc
--	./makeman.pl
-+	perl makeman.pl
- 
- cisco-decrypt : cisco-decrypt.o config.o supp.o sysdep.o vpnc-debug.o
- 	$(CC) -o $@ $^ $(LDFLAGS)
diff --git a/nixpkgs/pkgs/tools/networking/vtun/default.nix b/nixpkgs/pkgs/tools/networking/vtun/default.nix
deleted file mode 100644
index 61c18af16561..000000000000
--- a/nixpkgs/pkgs/tools/networking/vtun/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib, stdenv, fetchurl, fetchpatch, openssl, lzo, zlib, bison, flex }:
-
-stdenv.mkDerivation rec {
-  pname = "vtun";
-  version = "3.0.4";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/vtun/vtun-${version}.tar.gz";
-    sha256 = "1fcqzn2bdjw31j1hvv6lg99v2phhszm29kp2xambxzp32mmxzy5b";
-  };
-
-  patches = [
-    (fetchpatch { url = "http://sources.debian.net/data/main/v/vtun/3.0.3-2.2/debian/patches/08-gcc5-inline.patch";
-                 sha256 = "18sys97v2hx6vac5zp3ld7sa6kz4izv3g9dnkm0lflbaxhym2vs1";
-                })
-  ];
-
-  postPatch = ''
-    sed -i -e 's/-m 755//' -e 's/-o root -g 0//' Makefile.in
-    sed -i '/strip/d' Makefile.in
-  '';
-  buildInputs = [ lzo openssl zlib bison flex ];
-
-  configureFlags = [
-    "--with-lzo-headers=${lzo}/include/lzo"
-    "--with-ssl-headers=${openssl.dev}/include/openssl"
-    "--with-blowfish-headers=${openssl.dev}/include/openssl"
-  ];
-
-  meta = with lib; {
-      description = "Virtual Tunnels over TCP/IP with traffic shaping, compression and encryption";
-      homepage = "http://vtun.sourceforge.net/";
-      license = licenses.gpl2;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ pSub ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/waitron/default.nix b/nixpkgs/pkgs/tools/networking/waitron/default.nix
index 8364cd5763dc..c37d82024fe6 100644
--- a/nixpkgs/pkgs/tools/networking/waitron/default.nix
+++ b/nixpkgs/pkgs/tools/networking/waitron/default.nix
@@ -2,8 +2,8 @@
 { lib, buildGoPackage, fetchgit, fetchhg, fetchbzr, fetchsvn }:
 
 buildGoPackage rec {
-  name = "waitron-unstable-${version}";
-  version = "2020-01-24";
+  pname = "waitron";
+  version = "unstable-2020-01-24";
   rev = "c96833619cbb0cf2bc71b1d7b534101e139cc6e6";
 
   goPackagePath = "github.com/ns1/waitron";
diff --git a/nixpkgs/pkgs/tools/networking/wg-friendly-peer-names/default.nix b/nixpkgs/pkgs/tools/networking/wg-friendly-peer-names/default.nix
new file mode 100644
index 000000000000..a2ec966a6045
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/wg-friendly-peer-names/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, wireguard-tools
+}:
+
+stdenv.mkDerivation {
+  pname = "wg-friendly-peer-names";
+  version = "unstable-2021-11-08";
+
+  src = fetchFromGitHub {
+    owner = "FlyveHest";
+    repo = "wg-friendly-peer-names";
+    rev = "66b9b6b74ec77b9fec69b2a58296635321d4f5f1";
+    sha256 = "pH/b5rCHIqLxz/Fnx+Dm0m005qAUWBsczSU9vGEQ2RQ=";
+  };
+
+  installPhase = ''
+    install -D wgg.sh $out/bin/wgg
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/FlyveHest/wg-friendly-peer-names";
+    description = "Small shellscript that makes it possible to give peers a friendlier and more readable name in the `wg` peer list";
+    license = licenses.mit;
+    platforms = wireguard-tools.meta.platforms;
+    maintainers = with maintainers; [ mkg20001 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/wifite2/default.nix b/nixpkgs/pkgs/tools/networking/wifite2/default.nix
index 8a4b5f2e0514..4069e378a29b 100644
--- a/nixpkgs/pkgs/tools/networking/wifite2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wifite2/default.nix
@@ -1,6 +1,6 @@
 { lib, fetchFromGitHub, fetchpatch, python3, wirelesstools
 , aircrack-ng, wireshark-cli, reaverwps-t6x, cowpatty, hashcat, hcxtools
-, hcxdumptool, pyrit, which, bully, pixiewps }:
+, hcxdumptool, which, bully, pixiewps }:
 
 python3.pkgs.buildPythonApplication rec {
   version = "2.5.7";
@@ -14,6 +14,11 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   patches = [
+    # Fix issue when missing optional pyrit dependency: https://github.com/kimocoder/wifite2/pull/76
+    (fetchpatch {
+      url = "https://github.com/kimocoder/wifite2/commit/2e5d76c794f2e5493cf5048384d6564727ae2c19.patch";
+      sha256 = "0lawk8s1md98g061xg6ma37wqyqc4j2ag0gmf7insf4kvlgg3l9z";
+    })
     (fetchpatch {
       url = "https://salsa.debian.org/pkg-security-team/wifite/raw/debian/${version}-1/debian/patches/Disable-aircrack-failing-test.patch";
       sha256 = "04qql8w27c1lqk59ghkr1n6r08jwdrb1dcam5k88szkk2bxv8yx1";
@@ -22,6 +27,10 @@ python3.pkgs.buildPythonApplication rec {
       url = "https://salsa.debian.org/pkg-security-team/wifite/raw/debian/${version}-1/debian/patches/Disable-two-failing-tests.patch";
       sha256 = "1sixcqz1kbkhxf38yq55pwycm54adjx22bq46dfnl44mg69nx356";
     })
+    (fetchpatch {
+      url = "https://salsa.debian.org/pkg-security-team/wifite/raw/debian/2.5.8-2/debian/patches/fix-for-new-which.patch";
+      sha256 = "0p6sa09qpq9qarkjrai2ksx9nz2v2hs6dk1y01qnfbsmc4hhm30g";
+    })
   ];
 
   propagatedBuildInputs = [
@@ -33,7 +42,6 @@ python3.pkgs.buildPythonApplication rec {
     hcxtools
     hcxdumptool
     wirelesstools
-    pyrit
     which
     bully
     pixiewps
diff --git a/nixpkgs/pkgs/tools/networking/wireguard-go/default.nix b/nixpkgs/pkgs/tools/networking/wireguard-go/default.nix
index 3fa487a7dc6d..6f7bc6caa7f0 100644
--- a/nixpkgs/pkgs/tools/networking/wireguard-go/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wireguard-go/default.nix
@@ -25,6 +25,6 @@ buildGoPackage rec {
     description = "Userspace Go implementation of WireGuard";
     homepage = "https://git.zx2c4.com/wireguard-go/about/";
     license = licenses.mit;
-    maintainers = with maintainers; [ elseym kirelagin yegortimoshenko zx2c4 ];
+    maintainers = with maintainers; [ elseym kirelagin yana zx2c4 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix b/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix
index 5df98954ae16..00b91adc2738 100644
--- a/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
     downloadPage = "https://git.zx2c4.com/wireguard-tools/refs/";
     homepage = "https://www.wireguard.com/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ elseym ericsagnes mic92 zx2c4 globin ma27 d-xo ];
+    maintainers = with maintainers; [ elseym ericsagnes zx2c4 globin ma27 d-xo ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wormhole-william/default.nix b/nixpkgs/pkgs/tools/networking/wormhole-william/default.nix
index 4379aa89ceb5..157119e64750 100644
--- a/nixpkgs/pkgs/tools/networking/wormhole-william/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wormhole-william/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "wormhole-william";
-  version = "1.0.5";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "psanford";
     repo = "wormhole-william";
     rev = "v${version}";
-    sha256 = "sha256-75pSFMzaZW+rtikO0khuxXIgb3Wj8ieSE4sB6quKgo4=";
+    sha256 = "sha256-L/0zgQkwADElpIzOJAROa3CN/YNl76Af2pAhX8y2Wxs=";
   };
 
-  vendorSha256 = "sha256-8GZ4h+DFQaCizOCxsMzAllXyaQgzQQBsbCnVi5MWbFg=";
+  vendorSha256 = "sha256-J6iht3cagcwFekydShgaYJtkNLfEvSDqonkC7+frldM=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/wrk/default.nix b/nixpkgs/pkgs/tools/networking/wrk/default.nix
index 4298bd70d600..74280724ca40 100644
--- a/nixpkgs/pkgs/tools/networking/wrk/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wrk/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wrk";
-  version = "4.1.0";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     owner = "wg";
     repo = "wrk";
     rev = version;
-    sha256 = "0dblb3qdg8mbgb8iiks0g420pza13npbr33b2xkc5dgv7kcwmvqj";
+    sha256 = "sha256-nCfA444p7krXOB3qRtDKWxWj9tsrDZsGf03ThtE1dXM=";
   };
 
   buildInputs = [ luajit openssl perl ];
diff --git a/nixpkgs/pkgs/tools/networking/xh/default.nix b/nixpkgs/pkgs/tools/networking/xh/default.nix
index 75eaa8774df2..ad6d02399efe 100644
--- a/nixpkgs/pkgs/tools/networking/xh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/xh/default.nix
@@ -1,22 +1,33 @@
-{ stdenv, lib, openssl, pkg-config, rustPlatform, fetchFromGitHub, Security
-, libiconv, installShellFiles }:
+{ stdenv
+, lib
+, pkg-config
+, rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, withNativeTls ? true
+, Security
+, libiconv
+, openssl }:
 
 rustPlatform.buildRustPackage rec {
   pname = "xh";
-  version = "0.13.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "ducaale";
     repo = "xh";
     rev = "v${version}";
-    sha256 = "sha256-fTd4VSUUj9Im+kCEuFgDsA7eofM1xQfrRzigr1vyJ3I=";
+    sha256 = "sha256-zq1jpkMcq7WHc6weht2iEFMlxIJSoDreWqJCi8F+Lxs=";
   };
 
-  cargoSha256 = "sha256-yZdGw/6iVg8PaUyjTrxj6h/2yhBtqEqvMhdRHhMwDZc=";
+  cargoSha256 = "sha256-NcznWWMcgK4RixqvumPEQUlvIFRyYkbeTTGvjQ91ggE=";
+
+  buildFeatures = lib.optional withNativeTls "native-tls";
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
-  buildInputs = if stdenv.isDarwin then [ Security libiconv ] else [ openssl ];
+  buildInputs = lib.optionals withNativeTls
+    (if stdenv.isDarwin then [ Security libiconv ] else [ openssl ]);
 
   # Get openssl-sys to use pkg-config
   OPENSSL_NO_VENDOR = 1;
diff --git a/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix b/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix
index bb17691cbad4..0284e5117d31 100644
--- a/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix
+++ b/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "yggdrasil";
-  version = "0.4.0";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "yggdrasil-network";
     repo = "yggdrasil-go";
     rev = "v${version}";
-    sha256 = "sha256-sMcbOTLdmAXp3U2XeNM0hrwOTjzr+9B6IvAaVbjhuFY=";
+    sha256 = "sha256-5bx9KGZD7m+FX9hWU1pu8uJ2FU+P/TetRS3kJL5jhhI=";
   };
 
   vendorSha256 = "sha256-QQN8ePOQ7DT9KeuY4ohFuPtocuinh3Y3us6QMnCQ4gc=";
@@ -33,6 +33,6 @@ buildGoModule rec {
       "An experiment in scalable routing as an encrypted IPv6 overlay network";
     homepage = "https://yggdrasil-network.github.io/";
     license = licenses.lgpl3;
-    maintainers = with maintainers; [ ehmry gazally lassulus ];
+    maintainers = with maintainers; [ bbigras ehmry gazally lassulus ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/yrd/default.nix b/nixpkgs/pkgs/tools/networking/yrd/default.nix
index 75a89b859fe8..1aace6aefbb5 100644
--- a/nixpkgs/pkgs/tools/networking/yrd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/yrd/default.nix
@@ -1,27 +1,37 @@
-{ lib, fetchFromGitHub, pythonPackages }:
+{ lib
+, python3
+, fetchFromGitHub
+}:
 
-let
+python3.pkgs.buildPythonApplication rec {
   pname = "yrd";
   version = "0.5.3";
-  sha256 = "1yx1hr8z4cvlb3yi24dwafs0nxq41k4q477jc9q24w61a0g662ps";
-
-in pythonPackages.buildPythonApplication {
-  name = "${pname}-${version}";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    inherit sha256;
+    sha256 = "1yx1hr8z4cvlb3yi24dwafs0nxq41k4q477jc9q24w61a0g662ps";
   };
 
-  propagatedBuildInputs = with pythonPackages; [ argh ];
+  propagatedBuildInputs = with python3.pkgs; [
+    argh
+    requests
+  ];
+
+  checkInputs = with python3.pkgs; [
+    nose
+  ];
+
+  checkPhase = ''
+    nosetests -v yrd
+  '';
 
   meta = with lib; {
     description = "Cjdns swiss army knife";
     maintainers = with maintainers; [ akru ];
     platforms = platforms.linux;
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     homepage = "https://github.com/kpcyrd/yrd";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ytcc/default.nix b/nixpkgs/pkgs/tools/networking/ytcc/default.nix
index 1c83acc2a186..46b6e649b5c6 100644
--- a/nixpkgs/pkgs/tools/networking/ytcc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ytcc/default.nix
@@ -1,24 +1,21 @@
-{ lib, python3Packages, fetchFromGitHub, gettext }:
+{ lib, python3Packages, fetchFromGitHub, gettext, installShellFiles }:
 
 python3Packages.buildPythonApplication rec {
   pname = "ytcc";
-  version = "2.5.1";
+  version = "2.5.4";
 
   src = fetchFromGitHub {
     owner = "woefe";
     repo = "ytcc";
     rev = "v${version}";
-    sha256 = "1w2frcy51kwsvd486awhpl5kkm11zj1nw3nnv9337316gfs213nw";
+    sha256 = "sha256-nYHfmksZnIZGMSSFDhW7ajvv1F5h3aJo8IXw6yYOEw0=";
   };
 
-  nativeBuildInputs = [ gettext ];
+  nativeBuildInputs = [ gettext installShellFiles ];
 
   propagatedBuildInputs = with python3Packages; [
+    yt-dlp
     click
-    feedparser
-    lxml
-    sqlalchemy
-    youtube-dl
     wcwidth
   ];
 
@@ -38,10 +35,14 @@ python3Packages.buildPythonApplication rec {
     "test_download"
   ];
 
+  postInstall = ''
+    installManPage doc/ytcc.1
+  '';
+
   meta = {
     description = "Command Line tool to keep track of your favourite YouTube channels without signing up for a Google account";
     homepage = "https://github.com/woefe/ytcc";
     license = lib.licenses.gpl3Plus;
-    maintainers = with lib.maintainers; [ marius851000 ];
+    maintainers = with lib.maintainers; [ marius851000 marsam ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/zap/default.nix b/nixpkgs/pkgs/tools/networking/zap/default.nix
index bccc840a27a4..8fdf8a38f317 100644
--- a/nixpkgs/pkgs/tools/networking/zap/default.nix
+++ b/nixpkgs/pkgs/tools/networking/zap/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "zap";
-  version = "2.10.0";
+  version = "2.11.1";
   src = fetchurl {
     url = "https://github.com/zaproxy/zaproxy/releases/download/v${version}/ZAP_${version}_Linux.tar.gz";
-    sha256 = "1mz9s56pbs62g4pnd1ml8y6jpf9ilisdwwvjv5kn6yxrcdi2zzqh";
+    sha256 = "0b1qqrjm4m76djy0az9hnz3rqpz1qkql4faqmi7gkx33b1p6d0sz";
   };
 
   buildInputs = [ jre ];
diff --git a/nixpkgs/pkgs/tools/networking/zerotierone/default.nix b/nixpkgs/pkgs/tools/networking/zerotierone/default.nix
index f2afb6d3baeb..3062befe2d3b 100644
--- a/nixpkgs/pkgs/tools/networking/zerotierone/default.nix
+++ b/nixpkgs/pkgs/tools/networking/zerotierone/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zerotierone";
-  version = "1.6.6";
+  version = "1.8.4";
 
   src = fetchFromGitHub {
     owner = "zerotier";
     repo = "ZeroTierOne";
     rev = version;
-    sha256 = "0pi22252c21gxmjcgwmagkrnp5y1hhqrm9jkjj9pg1nlzzrlyrnm";
+    sha256 = "sha256-aM0FkcrSd5dEJVdJryIGuyWNFwvKH0SBfOuy4dIMK4A=";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/tools/nix/cached-nix-shell/default.nix b/nixpkgs/pkgs/tools/nix/cached-nix-shell/default.nix
index acbb0be3b9cf..3df316ef9e35 100644
--- a/nixpkgs/pkgs/tools/nix/cached-nix-shell/default.nix
+++ b/nixpkgs/pkgs/tools/nix/cached-nix-shell/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, openssl, pkg-config, ronn, rustPlatform }:
+{ lib, fetchFromGitHub, nix, openssl, pkg-config, ronn, rustPlatform }:
 
 let
   blake3-src = fetchFromGitHub {
@@ -10,23 +10,23 @@ let
 
 in rustPlatform.buildRustPackage rec {
   pname = "cached-nix-shell";
-  version = "0.1.4";
+  version = "0.1.5";
 
   src = fetchFromGitHub {
     owner = "xzfc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0w6khry1ncyqy5h6996xw1f6viw4wdrfji5m8lz9gm487xlq5v0b";
+    sha256 = "17v38llx83mp05a0axjxcd2zyafd57syh7xhx5cq6qibcbha0by9";
   };
 
-  cargoSha256 = "05lcm5fzsn3h6dl2n2yq52r2vagrgmab08kafinz2kdcvv05wpk5";
+  cargoSha256 = "1jkkwsn3k2anmzf99x99r9zfnf0gpcjbi5pyakh4agiryqcdyg0j";
 
   # The BLAKE3 C library is intended to be built by the project depending on it
   # rather than as a standalone library.
   # https://github.com/BLAKE3-team/BLAKE3/blob/0.3.1/c/README.md#building
   BLAKE3_CSRC = "${blake3-src}/c";
 
-  nativeBuildInputs = [ ronn ];
+  nativeBuildInputs = [ nix ronn ];
 
   postBuild = ''
     make -f nix/Makefile post-build
diff --git a/nixpkgs/pkgs/tools/nix/info/info.sh b/nixpkgs/pkgs/tools/nix/info/info.sh
index f108962b3bad..6708a541f3d9 100755
--- a/nixpkgs/pkgs/tools/nix/info/info.sh
+++ b/nixpkgs/pkgs/tools/nix/info/info.sh
@@ -70,7 +70,7 @@ nixev() {
 }
 
 desc_system() {
-    nixev '(import <nixpkgs> {}).system'
+    nixev '(import <nixpkgs> {}).stdenv.hostPlatform.system'
 }
 
 desc_host_os() {
diff --git a/nixpkgs/pkgs/tools/nix/nix-output-monitor/default.nix b/nixpkgs/pkgs/tools/nix/nix-output-monitor/default.nix
index a94ae45ccea5..a0700e43c5b2 100644
--- a/nixpkgs/pkgs/tools/nix/nix-output-monitor/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nix-output-monitor/default.nix
@@ -5,11 +5,11 @@
 }:
 mkDerivation rec {
   pname = "nix-output-monitor";
-  version = "1.0.3.3";
+  version = "1.0.4.0";
   src = fetchFromGitHub {
     owner = "maralorn";
     repo = "nix-output-monitor";
-    sha256 = "1x26s9gzcygn96600g0r1a1sxqav6c38iq981rhmc808mqlyxmp8";
+    hash = "sha256-3EQgjrDX8C3qG6danuPRl2gnPlX1qZjxjrROrKitsS0=";
     rev = "v${version}";
   };
   isLibrary = true;
diff --git a/nixpkgs/pkgs/tools/nix/nixos-generators/default.nix b/nixpkgs/pkgs/tools/nix/nixos-generators/default.nix
index 01e12e9fd58f..e20f36b1ef99 100644
--- a/nixpkgs/pkgs/tools/nix/nixos-generators/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nixos-generators/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "nixos-generators";
-  version = "1.4.0";
+  version = "1.5.0";
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nixos-generators";
     rev = version;
-    sha256 = "1kn2anp8abpi0n3p7j0yczbpy7mdhk8rv84ywyghqdvf2wjmnlnp";
+    sha256 = "sha256-Icz/2Jl3eO4JnatU1iAFiMzVAQR9IDrsiqhOIvMkCS4=";
   };
   nativeBuildInputs = [ makeWrapper ];
   installFlags = [ "PREFIX=$(out)" ];
diff --git a/nixpkgs/pkgs/tools/nix/statix/default.nix b/nixpkgs/pkgs/tools/nix/statix/default.nix
new file mode 100644
index 000000000000..fd219935aeeb
--- /dev/null
+++ b/nixpkgs/pkgs/tools/nix/statix/default.nix
@@ -0,0 +1,29 @@
+{ lib, rustPlatform, fetchFromGitHub, withJson ? true, stdenv }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "statix";
+  # also update version of the vim plugin in pkgs/misc/vim-plugins/overrides.nix
+  # the version can be found in flake.nix of the source code
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "nerdypepper";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-4hVEwm2xuuHFy38/EJLKjGuxTYCAcKRHHfFKLvqp+M0=";
+  };
+
+  cargoSha256 = "sha256-15C/ye8nYLtriBlqbf1ul41IFtShGY2LTX10z1/08Po=";
+
+  buildFeatures = lib.optional withJson "json";
+
+  # tests are failing on darwin
+  doCheck = !stdenv.isDarwin;
+
+  meta = with lib; {
+    description = "Lints and suggestions for the nix programming language";
+    homepage = "https://github.com/nerdypepper/statix";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda nerdypepper ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/package-management/apk-tools/default.nix b/nixpkgs/pkgs/tools/package-management/apk-tools/default.nix
index 8d8645de2deb..eda95f25529c 100644
--- a/nixpkgs/pkgs/tools/package-management/apk-tools/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/apk-tools/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "apk-tools";
-  version = "2.12.7";
+  version = "2.12.8";
 
   src = fetchFromGitLab {
     domain = "gitlab.alpinelinux.org";
     owner = "alpine";
     repo = "apk-tools";
     rev = "v${version}";
-    sha256 = "sha256-sGAsC5HZV5jaaUXgaPDUf4+vDL4zSGldzhykpdZlFS4=";
+    sha256 = "1bqrvdyqqllzsyx9gdkqmd17wxcmli6ljwxxa8wj9gzg9pqhlhqz";
   };
 
   nativeBuildInputs = [ pkg-config scdoc ]
diff --git a/nixpkgs/pkgs/tools/package-management/auditwheel/default.nix b/nixpkgs/pkgs/tools/package-management/auditwheel/default.nix
index 7c633698e389..ccb85080824c 100644
--- a/nixpkgs/pkgs/tools/package-management/auditwheel/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/auditwheel/default.nix
@@ -52,5 +52,6 @@ python3.pkgs.buildPythonApplication rec {
       bsd3  # from https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-projects/pax-utils/lddtree.py
     ];
     maintainers = with maintainers; [ davhau ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix
index d2acffc2009b..74f59d16a4da 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix
@@ -1,23 +1,31 @@
-{ lib, rustPlatform, fetchFromGitHub, stdenv, libiconv }:
+{ lib, rustPlatform, fetchFromGitHub, pkg-config, zstd, stdenv }:
+
 rustPlatform.buildRustPackage rec {
   pname = "cargo-about";
-  version = "0.3.0";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = "cargo-about";
     rev = version;
-    sha256 = "sha256-MsXNneKj2xCci1guj1TKcIrX7XByJ5/lWUmjxAsgzPY=";
+    sha256 = "sha256-wBBG4fpUy9EKuWFZNzdXn0B01TY3ETAsvBXk2pLaSSo=";
   };
 
-  cargoSha256 = "sha256-ssAmY+o+/2+C9sol+PeFlpNwVuN5JNoofgkr3cUW+S4=";
+  # enable pkg-config feature of zstd
+  cargoPatches = [ ./zstd-pkg-config.patch ];
+
+  cargoSha256 = "sha256-QlUiBxRB9vKY1RCzeARy2b0Cvsh1uYaKkq5GiB1yEwE=";
+
+  nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = lib.optional stdenv.isDarwin libiconv;
+  buildInputs = [ zstd ];
 
   meta = with lib; {
     description = "Cargo plugin to generate list of all licenses for a crate";
     homepage = "https://github.com/EmbarkStudios/cargo-about";
+    changelog = "https://github.com/EmbarkStudios/cargo-about/blob/${version}/CHANGELOG.md";
     license = with licenses; [ mit /* or */ asl20 ];
-    maintainers = with maintainers; [ evanjs ];
+    maintainers = with maintainers; [ evanjs figsoda ];
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-about/zstd-pkg-config.patch b/nixpkgs/pkgs/tools/package-management/cargo-about/zstd-pkg-config.patch
new file mode 100644
index 000000000000..e084538ca924
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/cargo-about/zstd-pkg-config.patch
@@ -0,0 +1,39 @@
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -183,6 +183,7 @@ dependencies = [
+  "toml_edit",
+  "twox-hash",
+  "url",
++ "zstd",
+ ]
+ 
+ [[package]]
+@@ -1039,6 +1040,12 @@ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+ 
++[[package]]
++name = "pkg-config"
++version = "0.3.22"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f"
++
+ [[package]]
+ name = "ppv-lite86"
+ version = "0.2.15"
+@@ -1902,4 +1909,5 @@ checksum = "2141bed8922b427761470e6bbfeff255da94fa20b0bbeab0d9297fcaf71e3aa7"
+ dependencies = [
+  "cc",
+  "libc",
++ "pkg-config",
+ ]
+diff --git a/Cargo.toml b/Cargo.toml
+index bf2a896..35cbf7c 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -80,3 +80,5 @@ toml_edit = "0.9"
+ twox-hash = "1.6"
+ # Url parsing
+ url = "2.2"
++
++zstd = { version = "*", features = ["pkg-config"] }
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
index b871b4a53b21..22a1d3b5f768 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-audit";
-  version = "0.15.2";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "RustSec";
     repo = "rustsec";
     rev = "cargo-audit%2Fv${version}";
-    sha256 = "1j5ijrjhzqimamhj51qhpbaxx485hcxhaj64lknkn0xrda3apkx8";
+    sha256 = "sha256-6Jb7ViVY4YcnNvGarnHWyBPnpz7xiHQjumOmVaA8rzg=";
   };
 
-  cargoSha256 = "1qvrzaila3wbjmc7ri5asa3di2nzln78ys9innzd84fr36c90kkc";
+  cargoSha256 = "sha256-31zZMjIFnMIzSmTEACFBE4nSMje9SvE9KzZdoxTg4VM=";
 
   nativeBuildInputs = [
     pkg-config
@@ -32,8 +32,7 @@ rustPlatform.buildRustPackage rec {
     Security
   ];
 
-  # enables `cargo audit fix`
-  cargoBuildFlags = [ "--features fix" ];
+  buildFeatures = [ "fix" ];
 
   # The tests require network access which is not available in sandboxed Nix builds.
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-deps/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-deps/default.nix
index af0424c5bec2..b98a0d75793f 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-deps/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-deps/default.nix
@@ -1,14 +1,12 @@
-{ lib, fetchFromGitHub, rustPlatform }:
+{ lib, fetchCrate, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deps";
   version = "1.4.1";
 
-  src = fetchFromGitHub {
-    owner = "m-cat";
-    repo = pname;
-    rev = "4033018eaa53134fd6169653b709b195a5f5958b";
-    sha256 = "1cdmgdag9chjifsp2hxr9j15hb6l6anqq38y8srj1nk047a3kbcw";
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "sha256-WzvWkn2o39InESSzF5oLVP1I876b+r749hjZgh2DxOk=";
   };
 
   cargoSha256 = "15pf4x2aw8sl65g63cz4yv9y78yc2wi25h9khpqx6i7gyd7dxbsc";
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-edit/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-edit/default.nix
index de5abca29bec..c5e60fb88fd6 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-edit/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-edit/default.nix
@@ -1,26 +1,26 @@
-{ stdenv
-, lib
+{ lib
 , rustPlatform
 , fetchFromGitHub
 , pkg-config
 , openssl
+, zlib
+, stdenv
 , libiconv
 , Security
-, zlib
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-edit";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "killercup";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256:0fh1lq793k4ddpqsf2av447hcb74vcq53afkm3g4672k48mjjw1y";
+    hash = "sha256-n9Ei1kpbDqOogNJJVvg9DRAPMVGNChCGGiuCVsuK3/8=";
   };
 
-  cargoSha256 = "0ah3zjx36ibax4gi66g13finh4m2k0aidxkg2nxx1c2aqj847mm1";
+  cargoSha256 = "sha256-6546jD+zDoScrJmpw5xtNdWeIPJ9Ma0bcIdnI1kFmu8=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -34,7 +34,8 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "A utility for managing cargo dependencies from the command line";
     homepage = "https://github.com/killercup/cargo-edit";
+    changelog = "https://github.com/killercup/cargo-edit/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
-    maintainers = with maintainers; [ gerschtli jb55 Br1ght0ne killercup ];
+    maintainers = with maintainers; [ Br1ght0ne figsoda gerschtli jb55 killercup ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix
index beb04041861e..d15cbe8a9ccb 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix
@@ -1,29 +1,37 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, libiconv, curl, darwin }:
+{ lib
+, rustPlatform
+, fetchCrate
+, pkg-config
+, openssl
+, stdenv
+, curl
+, Security
+, SystemConfiguration
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-outdated";
-  version = "0.9.17";
+  version = "0.10.2";
 
-  src = fetchFromGitHub {
-    owner = "kbknapp";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-Ian/vXGoPHecguQUp2IUgdLW6Ll8OdCA2W0WmoYPDrI=";
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "sha256-U6qElZkray4kjScv9X4I5m2z1ZWQzqcPYAuPzpyRpW0=";
   };
 
-  cargoSha256 = "sha256-eDu1dAs543AryUEsCY9COHrvuamQocCk0nBXDIdFmYs=";
+  cargoSha256 = "sha256-0J02Uz184zx5xZYhqUmyaAFCQ0aogwy0fQTXbteBdV8=";
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl ]
-  ++ lib.optionals stdenv.isDarwin [
-    darwin.apple_sdk.frameworks.Security
-    libiconv
+
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
     curl
+    Security
+    SystemConfiguration
   ];
 
   meta = with lib; {
     description = "A cargo subcommand for displaying when Rust dependencies are out of date";
     homepage = "https://github.com/kbknapp/cargo-outdated";
+    changelog = "https://github.com/kbknapp/cargo-outdated/blob/${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ sondr3 ivan ];
   };
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix
index 9b7f78fa3b51..dffe16242a10 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-release";
-  version = "0.17.1";
+  version = "0.18.6";
 
   src = fetchFromGitHub {
     owner = "crate-ci";
     repo = "cargo-release";
     rev = "v${version}";
-    sha256 = "sha256-zQwgnZFYXYG1NWzC9ZultTUlU+o/Sr2u3CnRXzr+Lk8=";
+    sha256 = "sha256-4ZXur3Hja5nlJ2GLGei9r7ZPz+bvw41rm9xzaIo68gw=";
   };
 
-  cargoSha256 = "sha256-ORv5O7DhZhmmOM5RnRIIe/WBU77iyROPIRGMJikUCgo=";
+  cargoSha256 = "sha256-vBr3RYBFoeCJquS8ugVpl29J7CUraN/HuxtKv8Dqi/k=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-update/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-update/default.nix
index f49a74615d12..28ba43e9d662 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-update/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-update/default.nix
@@ -15,14 +15,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-update";
-  version = "7.0.1";
+  version = "8.1.2";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-qUrQWXiK4Gb79Wtcj9nM/FFT/C+b3vAgm9JohvIY2NU=";
+    sha256 = "sha256-9/4HQbf6wPNzsYqXbtrWoe9n2iKQoNILhjhwrbOY3Z0=";
   };
 
-  cargoSha256 = "sha256-jCaP6e/z9/gjKJfBKIq+dq7pWs5tWyct+JCnUFVVHBY=";
+  cargoSha256 = "sha256-iUJBhBKWYRpzwMcOvMIP8smmw5OnsTv1olv61pel5dY=";
 
   nativeBuildInputs = [ cmake installShellFiles pkg-config ronn ];
 
diff --git a/nixpkgs/pkgs/tools/package-management/disnix/dydisnix/default.nix b/nixpkgs/pkgs/tools/package-management/disnix/dydisnix/default.nix
index 924ed8252811..0c95e41f8c9a 100644
--- a/nixpkgs/pkgs/tools/package-management/disnix/dydisnix/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/disnix/dydisnix/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   version = "unstable-2020-11-02";
-  name = "dydisnix-${version}";
+  pname = "dydisnix";
 
   src = fetchFromGitHub {
     owner = "svanderburg";
diff --git a/nixpkgs/pkgs/tools/package-management/dpkg/default.nix b/nixpkgs/pkgs/tools/package-management/dpkg/default.nix
index a4e9ef41fc96..ad55c6b88b47 100644
--- a/nixpkgs/pkgs/tools/package-management/dpkg/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/dpkg/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, perl, zlib, bzip2, xz, makeWrapper, coreutils }:
+{ lib, stdenv, fetchurl, perl, zlib, bzip2, xz, zstd
+, makeWrapper, coreutils, autoreconfHook, pkg-config
+}:
 
 stdenv.mkDerivation rec {
   pname = "dpkg";
-  version = "1.20.9";
+  version = "1.20.9ubuntu2";
 
   src = fetchurl {
-    url = "mirror://debian/pool/main/d/dpkg/dpkg_${version}.tar.xz";
-    sha256 = "sha256-XOJCgw8hO1Yg8I5sQYOtse9Nydoo0xmIonyHxx/lNM4=";
+    url = "mirror://ubuntu/pool/main/d/dpkg/dpkg_${version}.tar.xz";
+    sha256 = "sha256-BuCofGpi9R0cyhvkZqu9IxupqZvZhbE2J/B4wgUqMQw=";
   };
 
   configureFlags = [
@@ -17,6 +19,8 @@ stdenv.mkDerivation rec {
     (lib.optionalString stdenv.isDarwin "--disable-start-stop-daemon")
   ];
 
+  enableParallelBuilding = true;
+
   preConfigure = ''
     # Nice: dpkg has a circular dependency on itself. Its configure
     # script calls scripts/dpkg-architecture, which calls "dpkg" in
@@ -49,8 +53,8 @@ stdenv.mkDerivation rec {
        --replace '"diff"' \"${coreutils}/bin/diff\"
   '';
 
-  buildInputs = [ perl zlib bzip2 xz ];
-  nativeBuildInputs = [ makeWrapper perl ];
+  buildInputs = [ perl zlib bzip2 xz zstd ];
+  nativeBuildInputs = [ makeWrapper perl autoreconfHook pkg-config ];
 
   postInstall =
     ''
diff --git a/nixpkgs/pkgs/tools/package-management/emplace/default.nix b/nixpkgs/pkgs/tools/package-management/emplace/default.nix
index 6b7f51d3ab69..07f17343cb7b 100644
--- a/nixpkgs/pkgs/tools/package-management/emplace/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/emplace/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "emplace";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "tversteeg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lBCGSeEVxlXrn1RHqMEYSXLOehJw/DiL+33nx4+rV2Y=";
+    sha256 = "sha256-5PuSIOXns0FVLgyIw1mk8hZ/tYhikMV860BHTDlji78=";
   };
 
-  cargoSha256 = "sha256-7LpUaOeBTIpi6A3cTRQAc1QostRgJp6bOf+AXy3mjyE=";
+  cargoSha256 = "sha256-UbbVjT5JQuVSCgbcelEVaAql4CUnCtO99zHp3Ei31Gs=";
 
   meta = with lib; {
     description = "Mirror installed software on multiple machines";
diff --git a/nixpkgs/pkgs/tools/package-management/home-manager/default.nix b/nixpkgs/pkgs/tools/package-management/home-manager/default.nix
index db60d5e8429e..e6c596c07145 100644
--- a/nixpkgs/pkgs/tools/package-management/home-manager/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/home-manager/default.nix
@@ -1,18 +1,18 @@
 #Adapted from
 #https://github.com/rycee/home-manager/blob/2c07829be2bcae55e04997b19719ff902a44016d/home-manager/default.nix
 
-{ bash, coreutils, findutils, gnused, less, lib, stdenv, makeWrapper, fetchFromGitHub }:
+{ bash, coreutils, findutils, gnused, less, gettext, nixos-option, lib, stdenv, makeWrapper, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
 
   pname = "home-manager";
-  version = "2021-03-21";
+  version = "2021-12-25";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "home-manager";
-    rev = "ddcd476603dfd3388b1dc8234fa9d550156a51f5";
-    sha256 = "sha256-E6ABXtzw6bHmrIirB1sJL6S2MEa3sfcvRLzRa92frCo=";
+    rev = "48f2b381dd397ec88040d3354ac9c036739ba139";
+    sha256 = "1i9v94brh9vhyhzcqyfj64nzhaibdj0sw74pxgk4bcsp0hqawgcd";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -23,14 +23,29 @@ stdenv.mkDerivation rec {
 
     substituteInPlace $out/bin/home-manager \
       --subst-var-by bash "${bash}" \
-      --subst-var-by coreutils "${coreutils}" \
-      --subst-var-by findutils "${findutils}" \
-      --subst-var-by gnused "${gnused}" \
-      --subst-var-by less "${less}" \
-      --subst-var-by HOME_MANAGER_PATH '${src}'
-
-    install -D -m755 home-manager/completion.bash \
-      "$out/share/bash-completion/completions/home-manager"
+      --subst-var-by DEP_PATH "${
+        lib.makeBinPath [ coreutils findutils gettext gnused less nixos-option ]
+      }" \
+      --subst-var-by HOME_MANAGER_LIB '${src}/lib/bash/home-manager.sh' \
+      --subst-var-by HOME_MANAGER_PATH '${src}' \
+      --subst-var-by OUT "$out"
+
+    install -D -m755 ${src}/home-manager/completion.bash \
+      $out/share/bash-completion/completions/home-manager
+    install -D -m755 ${src}/home-manager/completion.zsh \
+      $out/share/zsh/site-functions/_home-manager
+    install -D -m755 ${src}/home-manager/completion.fish \
+      $out/share/fish/vendor_completions.d/home-manager.fish
+
+    install -D -m755 ${src}/lib/bash/home-manager.sh \
+      "$out/share/bash/home-manager.sh"
+
+    for path in ${src}/home-manager/po/*.po; do
+      lang="''${path##*/}"
+      lang="''${lang%%.*}"
+      mkdir -p "$out/share/locale/$lang/LC_MESSAGES"
+      ${gettext}/bin/msgfmt -o "$out/share/locale/$lang/LC_MESSAGES/home-manager.mo" "$path"
+    done
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/package-management/libdnf/default.nix b/nixpkgs/pkgs/tools/package-management/libdnf/default.nix
index 47ce3dad62d6..3de0bb399d83 100644
--- a/nixpkgs/pkgs/tools/package-management/libdnf/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/libdnf/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libdnf";
-  version = "0.63.1";
+  version = "0.65.0";
 
   src = fetchFromGitHub {
     owner = "rpm-software-management";
     repo = pname;
     rev = version;
-    sha256 = "sha256-SwkqFSAl99fQoXT96BPRqKFqJg3HEziiT+jXcugPyxM=";
+    sha256 = "sha256-vGXK4pOkff4yGaRZE+FFFIqEizUeCID+lxiE/TWt0Bs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/package-management/microdnf/default.nix b/nixpkgs/pkgs/tools/package-management/microdnf/default.nix
index 498d6d21f39c..03324a447105 100644
--- a/nixpkgs/pkgs/tools/package-management/microdnf/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/microdnf/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "microdnf";
-  version = "3.7.1";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "rpm-software-management";
     repo = pname;
     rev = version;
-    sha256 = "1is8hqckjdz1h9w44iq1ljyfs5b0qd2cyivl30ny4dv8m8zba4zv";
+    sha256 = "sha256-Ip1XcE8fPXhdgVaR4VPH+ElP6JbnK4JekZuWyT5ot/M=";
   };
 
   nativeBuildInputs = [ pkg-config cmake gettext help2man ];
diff --git a/nixpkgs/pkgs/tools/package-management/micromamba/default.nix b/nixpkgs/pkgs/tools/package-management/micromamba/default.nix
index ad325cd4f41a..016f07a7d335 100644
--- a/nixpkgs/pkgs/tools/package-management/micromamba/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/micromamba/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, fetchpatch, cmake
-, cli11, nlohmann_json, curl, libarchive, libyamlcpp, libsolv, reproc
+, cli11, nlohmann_json, curl, libarchive, libyamlcpp, libsolv, reproc, spdlog, termcolor, ghc_filesystem
 }:
 
 let
@@ -11,44 +11,26 @@ let
     patches = [
       # Patch added by the mamba team
       (fetchpatch {
-        url = "https://raw.githubusercontent.com/mamba-org/boa-forge/f766da0cc18701c4d107a41de22417a65b53cc2d/libsolv/add_strict_repo_prio_rule.patch";
+        url = "https://raw.githubusercontent.com/mamba-org/boa-forge/20530f80e2e15012078d058803b6e2c75ed54224/libsolv/add_strict_repo_prio_rule.patch";
         sha256 = "19c47i5cpyy88nxskf7k6q6r43i55w61jvnz7fc2r84hpjkcrv7r";
       })
       # Patch added by the mamba team
       (fetchpatch {
-        url = "https://raw.githubusercontent.com/mamba-org/boa-forge/f766da0cc18701c4d107a41de22417a65b53cc2d/libsolv/conda_variant_priorization.patch";
+        url = "https://raw.githubusercontent.com/mamba-org/boa-forge/20530f80e2e15012078d058803b6e2c75ed54224/libsolv/conda_variant_priorization.patch";
         sha256 = "1iic0yx7h8s662hi2jqx68w5kpyrab4fr017vxd4wyxb6wyk35dd";
       })
-      # Patch added by the mamba team
-      (fetchpatch {
-        url = "https://raw.githubusercontent.com/mamba-org/boa-forge/f766da0cc18701c4d107a41de22417a65b53cc2d/libsolv/memcpy_to_memmove.patch";
-        sha256 = "1c9ir40l6crcxllj5zwhzbrbgibwqaizyykd0vip61gywlfzss64";
-      })
     ];
   });
-
-  # fails linking with yaml-cpp 0.7.x
-  libyamlcpp' = libyamlcpp.overrideAttrs (oldAttrs: rec {
-
-    version = "0.6.3";
-
-    src = fetchFromGitHub {
-      owner = "jbeder";
-      repo = "yaml-cpp";
-      rev = "yaml-cpp-${version}";
-      sha256 = "0ykkxzxcwwiv8l8r697gyqh1nl582krpvi7m7l6b40ijnk4pw30s";
-    };
-  });
 in
 stdenv.mkDerivation rec {
   pname = "micromamba";
-  version = "0.15.0";
+  version = "0.18.1";
 
   src = fetchFromGitHub {
     owner = "mamba-org";
     repo = "mamba";
     rev = version;
-    sha256 = "1zksp4zqj4wn9p9jb1qx1acajaz20k9xnm80yi7bab2d37y18hcw";
+    sha256 = "1gr9r257l300hafp8zm61bn58rysdk9i4wv1879q96b6n6v8hwa6";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -58,23 +40,32 @@ stdenv.mkDerivation rec {
     nlohmann_json
     curl
     libarchive
-    libyamlcpp'
+    libyamlcpp
     libsolv'
     reproc
-    # python3Packages.pybind11 # Would be necessary if someone wants to build with bindings I guess.
+    spdlog
+    termcolor
+    ghc_filesystem
   ];
 
+  postPatch = ''
+    # See https://github.com/gabime/spdlog/issues/1897
+    sed -i '1a add_compile_definitions(SPDLOG_FMT_EXTERNAL)' CMakeLists.txt
+    echo 'target_link_libraries(micromamba PRIVATE -lspdlog -lfmt)' >> micromamba/CMakeLists.txt
+  '';
+
   cmakeFlags = [
-    "-DBUILD_BINDINGS=OFF" # Fails to build, I don't think it's necessary for now.
-    "-DBUILD_EXE=ON"
+    "-DBUILD_LIBMAMBA=ON"
+    "-DBUILD_SHARED=ON"
+    "-DBUILD_MICROMAMBA=ON"
+    # "-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON"
   ];
 
-  CXXFLAGS = "-DMAMBA_USE_STD_FS";
-
   meta = with lib; {
     description = "Reimplementation of the conda package manager";
     homepage = "https://github.com/mamba-org/mamba";
     license = licenses.bsd3;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ mausch ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/nfpm/default.nix b/nixpkgs/pkgs/tools/package-management/nfpm/default.nix
index 9331bdba6843..85d8c259d677 100644
--- a/nixpkgs/pkgs/tools/package-management/nfpm/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nfpm/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "nfpm";
-  version = "2.6.0";
+  version = "2.11.2";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-GKdfi4hdvpB9VY8VqGYNjTezmPxotrzL/XSm1H5VLQs=";
+    sha256 = "sha256-ycb5331o/ILz+eUGGipBrjI7/pYnmHUSDRc4UNpJO5s=";
   };
 
-  vendorSha256 = "sha256-APF6WHuH+YzgX3GbkSzZArGdiE7xPsLljEzCu96BvO4=";
+  vendorSha256 = "sha256-RaAb8QDFp/7TolsNZqcXurozr3vvK0SRyyy2h8MPhnk=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/package-management/nix-bundle/default.nix b/nixpkgs/pkgs/tools/package-management/nix-bundle/default.nix
index 7b52f2585f35..a32f788bf4dc 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-bundle/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-bundle/default.nix
@@ -1,37 +1,61 @@
-{ stdenv, lib, fetchFromGitHub, nix, makeWrapper, coreutils, gnutar, gzip, bzip2 }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, bzip2
+, coreutils
+, gnutar
+, gzip
+, makeWrapper
+, nix
+}:
 
 stdenv.mkDerivation rec {
   pname = "nix-bundle";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "matthewbauer";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0hdvdjm467w37clkhbifn54hbdmnxlbk66cj88lwaz26j4s2ik5g";
+    sha256 = "0js8spwjvw6kjxz1i072scd035fhiyazixvn84ibdnw8dx087gjv";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
-  # coreutils, gnutar is actually needed by nix for bootstrap
-  buildInputs = [ nix coreutils gnutar gzip bzip2 ];
-
-  binPath = lib.makeBinPath [ nix coreutils gnutar gzip bzip2 ];
+  # coreutils, gnutar are needed by nix for bootstrap
+  buildInputs = [
+    bzip2
+    coreutils
+    gnutar
+    gzip
+    nix
+  ];
 
   makeFlags = [ "PREFIX=$(out)" ];
 
   postInstall = ''
     mkdir -p $out/bin
     makeWrapper $out/share/nix-bundle/nix-bundle.sh $out/bin/nix-bundle \
-      --prefix PATH : ${binPath}
-    cp $out/share/nix-bundle/nix-run.sh $out/bin/nix-run
+      --prefix PATH : ${lib.makeBinPath buildInputs}
+    ln -s $out/share/nix-bundle/nix-run.sh $out/bin/nix-run
   '';
 
   meta = with lib; {
-    maintainers = [ maintainers.matthewbauer ];
-    platforms = platforms.all;
+    homepage = "https://github.com/matthewbauer/nix-bundle";
     description = "Create bundles from Nixpkgs attributes";
+    longDescription = ''
+      nix-bundle is a way to package Nix attributes into single-file
+      executables.
+
+      Benefits:
+      - Single-file output
+      - Can be run by non-root users
+      - No runtime
+      - Distro agnostic
+      - No installation
+    '';
     license = licenses.mit;
-    homepage = "https://github.com/matthewbauer/nix-bundle";
+    maintainers = [ maintainers.matthewbauer ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix b/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix
index e12bed7d925c..d3d45e6bbb72 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-doc";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "lf-";
     repo = "nix-doc";
-    sha256 = "0yx5y90shdjwihbjrvv2m3bycgpdalafc9q4acfczfaymag8ggad";
+    sha256 = "sha256-P4AX8ERsMHGkGowc05M7xE5HTFSmaJvD2z0Prz4emeQ=";
   };
 
   doCheck = true;
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkg-config ];
 
-  cargoSha256 = "11bcn111j4iqwqwpp26w7rnycasbhiixaqb1rq4ry2402hvl90j7";
+  cargoSha256 = "sha256-RxsH4bSAzBslK8MVGmCJxduf6MYOtQEKxt9QjgUCg1o=";
 
   meta = with lib; {
     description = "An interactive Nix documentation tool";
diff --git a/nixpkgs/pkgs/tools/package-management/nix-du/default.nix b/nixpkgs/pkgs/tools/package-management/nix-du/default.nix
index 75de1caa2db9..e0f2a192c232 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-du/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-du/default.nix
@@ -1,17 +1,27 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, nix, boost, graphviz, Security, pkg-config }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, nix
+, nlohmann_json
+, boost
+, graphviz
+, Security
+, pkg-config
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-du";
-  version = "0.3.4";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "symphorien";
     repo = "nix-du";
     rev = "v${version}";
-    sha256 = "0iwlprjbphwsrxdhgsxa8ja73snsyh0rdxrpsf1ygid2ky5vc83f";
+    sha256 = "0v6hixj81aa6g3sddny46i0yqaaqv6krp5xadj0xz1g77cb8xy2w";
   };
 
-  cargoSha256 = "19fwkw9iswzkhqgfq7pmcabqmq5c7vvirwaxbfjshkwcgn47rgjl";
+  cargoSha256 = "11jaks6adsvrvxlqqw3glvn4ff7xh9j35ayfrl89rb4achvqp7xn";
 
   doCheck = true;
   checkInputs = [ nix graphviz ];
@@ -19,6 +29,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [
     boost
     nix
+    nlohmann_json
   ] ++ lib.optionals stdenv.isDarwin [ Security ];
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/tools/package-management/nix-eval-jobs/default.nix b/nixpkgs/pkgs/tools/package-management/nix-eval-jobs/default.nix
index 0407ad4528de..fbab464afd6b 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-eval-jobs/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-eval-jobs/default.nix
@@ -4,23 +4,23 @@
 , fetchFromGitHub
 , meson
 , ninja
-, nixUnstable
+, nix
 , nlohmann_json
 , pkg-config
 , stdenv
 }:
 stdenv.mkDerivation rec {
   pname = "nix-eval-jobs";
-  version = "0.0.1";
+  version = "0.0.2";
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-LTMW4356f8pvIyfYdOyZbF9yzU8MH9mryQgB4LrwZMI=";
+    hash = "sha256-kZw/nPJqWuBMMnDWsWF3oMY93QYVRem1XTbaxdbQ2oM=";
   };
   buildInputs = [
     boost
-    nixUnstable
+    nix
     nlohmann_json
   ];
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/package-management/nix-serve/default.nix b/nixpkgs/pkgs/tools/package-management/nix-serve/default.nix
index 93e240ad3463..d9faea9cea4d 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-serve/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-serve/default.nix
@@ -37,7 +37,10 @@ stdenv.mkDerivation {
                 --add-flags $out/libexec/nix-serve/nix-serve.psgi
   '';
 
-  passthru.tests.nix-serve = nixosTests.nix-serve;
+  passthru.tests = {
+    nix-serve = nixosTests.nix-serve;
+    nix-serve-ssh = nixosTests.nix-serve-ssh;
+  };
 
   meta = {
     homepage = "https://github.com/edolstra/nix-serve";
diff --git a/nixpkgs/pkgs/tools/package-management/nix-template/default.nix b/nixpkgs/pkgs/tools/package-management/nix-template/default.nix
index 13c254cbee29..39a5517ba27b 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-template/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-template/default.nix
@@ -9,17 +9,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-template";
-  version = "0.1.4";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     name = "${pname}-${version}-src";
     owner = "jonringer";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kNFhSfHUYBUOCXoD6m7thMho4tOIpRHfHGcsW8FTgkc=";
+    sha256 = "sha256-5CIGxm9LJ5GGUM2D2tZxzMsNlWIlfTWCVzyM/VNh15I=";
   };
 
-  cargoSha256 = "sha256-7PthFLCEt+E/Gx5//aulHYYBKZqapNEWKtKfRlDr3Pw=";
+  cargoSha256 = "sha256-enclL7lGwIiJFrMwH/d4vTK+lKbP5ytySKha5mkHsvc=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/nixpkgs/pkgs/tools/package-management/nix-universal-prefetch/default.nix b/nixpkgs/pkgs/tools/package-management/nix-universal-prefetch/default.nix
index 802fc4047bfc..69ebf1c7cd00 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-universal-prefetch/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-universal-prefetch/default.nix
@@ -6,13 +6,13 @@
 # No gems used, so mkDerivation is fine.
 stdenv.mkDerivation rec {
   pname = "nix-universal-prefetch";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "samueldr";
     repo = "nix-universal-prefetch";
     rev = "v${version}";
-    sha256 = "1nmxp6846ip2x3mibys3ymgi0813g18p9szqnsciiib3dbis4kwf";
+    sha256 = "sha256-HGn4qHWqpUwlS3yQrD3j5oH0yOlphsoSPD2vkyyRv+0=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/package-management/nix-update/default.nix b/nixpkgs/pkgs/tools/package-management/nix-update/default.nix
index 1345e2caa406..fd3b4a5a3e46 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-update/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-update/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonApplication
 , fetchFromGitHub
-, nixUnstable
+, nix
 , nix-prefetch
 , nixpkgs-fmt
 , nixpkgs-review
@@ -19,7 +19,7 @@ buildPythonApplication rec {
   };
 
   makeWrapperArgs = [
-    "--prefix" "PATH" ":" (lib.makeBinPath [ nixUnstable nix-prefetch nixpkgs-fmt nixpkgs-review ])
+    "--prefix" "PATH" ":" (lib.makeBinPath [ nix nix-prefetch nixpkgs-fmt nixpkgs-review ])
   ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/tools/package-management/nix/default.nix b/nixpkgs/pkgs/tools/package-management/nix/default.nix
index 2302e14b1aaa..146b9311fca6 100644
--- a/nixpkgs/pkgs/tools/package-management/nix/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix/default.nix
@@ -31,10 +31,12 @@ common =
   }:
   let
      sh = busybox-sandbox-shell;
-     nix = stdenv.mkDerivation rec {
-      inherit pname version src patches;
 
-      is24 = lib.versionAtLeast version "2.4pre";
+    is24 = lib.versionAtLeast version "2.4pre";
+    is25 = lib.versionAtLeast version "2.5pre";
+
+    nix = stdenv.mkDerivation {
+      inherit pname version src patches;
 
       VERSION_SUFFIX = suffix;
 
@@ -58,7 +60,7 @@ common =
            ];
 
       buildInputs =
-        [ curl libsodium openssl sqlite xz bzip2 nlohmann_json
+        [ curl libsodium openssl sqlite xz bzip2
           brotli boost editline
         ]
         ++ lib.optionals stdenv.isDarwin [ Security ]
@@ -77,17 +79,12 @@ common =
 
       propagatedBuildInputs = [ boehmgc ];
 
-      # Seems to be required when using std::atomic with 64-bit types
-      NIX_LDFLAGS =
-        # need to list libraries individually until
+      NIX_LDFLAGS = lib.optionals (!is24) [
         # https://github.com/NixOS/nix/commit/3e85c57a6cbf46d5f0fe8a89b368a43abd26daba
-        # is in a release
-          lib.optionalString enableStatic "-lssl -lbrotlicommon -lssh2 -lz -lnghttp2 -lcrypto"
-
-        # need to detect it here until
+        (lib.optionalString enableStatic "-lssl -lbrotlicommon -lssh2 -lz -lnghttp2 -lcrypto")
         # https://github.com/NixOS/nix/commits/74b4737d8f0e1922ef5314a158271acf81cd79f8
-        # is in a release
-        + lib.optionalString (stdenv.hostPlatform.system == "armv5tel-linux" || stdenv.hostPlatform.system == "armv6l-linux") "-latomic";
+        (lib.optionalString (stdenv.hostPlatform.system == "armv5tel-linux" || stdenv.hostPlatform.system == "armv6l-linux") "-latomic")
+      ];
 
       preConfigure =
         # Copy libboost_context so we don't get all of Boost in our closure.
@@ -150,13 +147,17 @@ common =
       # socket path becomes too long otherwise
       preInstallCheck = lib.optionalString stdenv.isDarwin ''
         export TMPDIR=$NIX_BUILD_TOP
+      ''
+      # See https://github.com/NixOS/nix/issues/5687
+      + lib.optionalString (is25 && stdenv.isDarwin) ''
+        echo "exit 99" > tests/gc-non-blocking.sh
       '';
 
-      separateDebugInfo = stdenv.isLinux;
+      separateDebugInfo = stdenv.isLinux && (is24 -> !enableStatic);
 
       enableParallelBuilding = true;
 
-      meta = {
+      meta = with lib; {
         description = "Powerful package manager that makes package management reliable and reproducible";
         longDescription = ''
           Nix is a powerful package manager for Linux and other Unix systems that
@@ -166,13 +167,16 @@ common =
           environments.
         '';
         homepage = "https://nixos.org/";
-        license = lib.licenses.lgpl2Plus;
-        maintainers = [ lib.maintainers.eelco ];
-        platforms = lib.platforms.unix;
-        outputsToInstall = [ "out" ] ++ lib.optional enableDocumentation "man";
+        license = licenses.lgpl2Plus;
+        maintainers = with maintainers; [ eelco lovesegfault ];
+        platforms = platforms.unix;
+        outputsToInstall = [ "out" ] ++ optional enableDocumentation "man";
       };
 
       passthru = {
+        is24 = lib.warn ''nix package: attribute .is24 is deprecated. Please use lib.versionAtLeast X.version "2.4pre".'' is24;
+        is25 = lib.warn ''nix package: attribute .is25 is deprecated. Please use lib.versionAtLeast X.version "2.5pre".'' is25;
+
         perl-bindings = perl.pkgs.toPerlModule (stdenv.mkDerivation {
           pname = "nix-perl";
           inherit version;
@@ -200,25 +204,34 @@ common =
     };
   in nix;
 
-  boehmgc_nix = boehmgc.override {
+  boehmgc_nix_2_3 = boehmgc.override {
     enableLargeConfig = true;
   };
 
-  boehmgc_nixUnstable = boehmgc_nix.overrideAttrs (drv: {
+  boehmgc_nix = boehmgc_nix_2_3.overrideAttrs (drv: {
     patches = (drv.patches or []) ++ [
       # Part of the GC solution in https://github.com/NixOS/nix/pull/4944
       (fetchpatch {
-        url = https://github.com/hercules-ci/nix/raw/5c58d84a76d96f269e3ff1e72c9c9ba5f68576af/boehmgc-coroutine-sp-fallback.diff;
+        url = "https://github.com/hercules-ci/nix/raw/5c58d84a76d96f269e3ff1e72c9c9ba5f68576af/boehmgc-coroutine-sp-fallback.diff";
         sha256 = "sha256-JvnWVTlkltmQUs/0qApv/LPZ690UX1/2hEP+LYRwKbI=";
       })
     ];
   });
 
+  # master: https://github.com/NixOS/nix/pull/5536
+  # 2.4: https://github.com/NixOS/nix/pull/5537
+  installNlohmannJsonPatch = fetchpatch {
+    url = "https://github.com/NixOS/nix/pull/5536.diff";
+    sha256 = "sha256-SPnam4xNIjbMgnq6IP1AaM1V62X0yZNo4DEVmI8sHOo=";
+  };
+
 in rec {
 
   nix = nixStable;
 
-  nixStable = callPackage common (rec {
+  nixStable = nix_2_5;
+
+  nix_2_3 = callPackage common (rec {
     pname = "nix";
     version = "2.3.16";
     src = fetchurl {
@@ -226,40 +239,62 @@ in rec {
       sha256 = "sha256-fuaBtp8FtSVJLSAsO+3Nne4ZYLuBj2JpD2xEk7fCqrw=";
     };
 
-    boehmgc = boehmgc_nix;
+    boehmgc = boehmgc_nix_2_3;
 
     inherit storeDir stateDir confDir;
   });
 
   nix_2_4 = callPackage common (rec {
     pname = "nix";
-    version = "2.4pre-rc1";
+    version = "2.4";
 
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
       rev = version;
-      sha256 = "sha256-KOb8etMm5LksvT2l+CkvqzMO1bgmo9tJmyaNh0LvaR8=";
+      sha256 = "sha256-op48CCDgLHK0qV1Batz4Ln5FqBiRjlE6qHTiZgt3b6k=";
     };
 
-    boehmgc = boehmgc_nixUnstable;
+    boehmgc = boehmgc_nix;
+
+    patches = [ installNlohmannJsonPatch ];
+
+    inherit storeDir stateDir confDir;
+  });
+
+  nix_2_5 = callPackage common (rec {
+    pname = "nix";
+    version = "2.5.1";
+
+    src = fetchFromGitHub {
+      owner = "NixOS";
+      repo = "nix";
+      rev = version;
+      sha256 = "sha256-GOsiqy9EaTwDn2PLZ4eFj1VkXcBUbqrqHehRE9GuGdU=";
+    };
+
+    boehmgc = boehmgc_nix;
+
+    patches = [ installNlohmannJsonPatch ];
 
     inherit storeDir stateDir confDir;
   });
 
   nixUnstable = lib.lowPrio (callPackage common rec {
     pname = "nix";
-    version = "2.5${suffix}";
-    suffix = "pre20211007_${lib.substring 0 7 src.rev}";
+    version = "2.6${suffix}";
+    suffix = "pre20211217_${lib.substring 0 7 src.rev}";
 
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "844dd901a7debe8b03ec93a7f717b6c4038dc572";
-      sha256 = "sha256-fe1B4lXkS6/UfpO0rJHwLC06zhOPrdSh4s9PmQ1JgPo=";
+      rev = "6e6e998930f0d7361d64644eb37d9134e74e8501";
+      sha256 = "sha256-RZSWOJUPkXIlMNYMC5a+WNrOjpqAHyhzyqD57BGfNY8=";
     };
 
-    boehmgc = boehmgc_nixUnstable;
+    boehmgc = boehmgc_nix;
+
+    patches = [ installNlohmannJsonPatch ];
 
     inherit storeDir stateDir confDir;
 
diff --git a/nixpkgs/pkgs/tools/package-management/nixpkgs-review/default.nix b/nixpkgs/pkgs/tools/package-management/nixpkgs-review/default.nix
index 9b4b37a232ca..d21c9b3c568f 100644
--- a/nixpkgs/pkgs/tools/package-management/nixpkgs-review/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nixpkgs-review/default.nix
@@ -1,23 +1,23 @@
 { lib
 , python3
 , fetchFromGitHub
-, nixUnstable
+, nix
 , git
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "nixpkgs-review";
-  version = "2.6.2";
+  version = "2.6.4";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nixpkgs-review";
     rev = version;
-    sha256 = "0991jz2l834pyzwcrkvjf3wlp122fkkz6avs4j5n9idv549c5xc0";
+    sha256 = "sha256-6vKMaCTilPXd8K3AuLqtYInVyyFhdun0o9cX1WRMmWo=";
   };
 
   makeWrapperArgs = [
-    "--prefix" "PATH" ":" "${lib.makeBinPath [ nixUnstable git ]}"
+    "--prefix" "PATH" ":" "${lib.makeBinPath [ nix git ]}"
   ];
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/package-management/nixui/nixui.nix b/nixpkgs/pkgs/tools/package-management/nixui/nixui.nix
index 0bcd0eb4b851..e6ff9b78d386 100644
--- a/nixpkgs/pkgs/tools/package-management/nixui/nixui.nix
+++ b/nixpkgs/pkgs/tools/package-management/nixui/nixui.nix
@@ -6,7 +6,7 @@
 
 let
   nodeEnv = import ../../../development/node-packages/node-env.nix {
-    inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
+    inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
     inherit pkgs nodejs;
     libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
   };
diff --git a/nixpkgs/pkgs/tools/package-management/nox/default.nix b/nixpkgs/pkgs/tools/package-management/nox/default.nix
index bf98f5400b8e..b215a8e1d285 100644
--- a/nixpkgs/pkgs/tools/package-management/nox/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nox/default.nix
@@ -1,7 +1,7 @@
 { lib, python3Packages, fetchurl, git }:
 
 python3Packages.buildPythonApplication rec {
-  name = "nox-${version}";
+  pname = "nox";
   version = "0.0.6";
   namePrefix = "";
 
@@ -15,7 +15,7 @@ python3Packages.buildPythonApplication rec {
   buildInputs = [ python3Packages.pbr git ];
 
   propagatedBuildInputs = with python3Packages; [
-      dogpile_cache
+      dogpile-cache
       click
       requests
       characteristic
diff --git a/nixpkgs/pkgs/tools/package-management/nvd/default.nix b/nixpkgs/pkgs/tools/package-management/nvd/default.nix
index 1218ac01f9a6..2a00acff690c 100644
--- a/nixpkgs/pkgs/tools/package-management/nvd/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nvd/default.nix
@@ -2,13 +2,15 @@
 
 stdenv.mkDerivation rec {
   pname = "nvd";
-  version = "0.1.1";
+  version = "0.1.2";
 
   src = fetchFromGitLab {
     owner = "khumba";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "0accq0cw6qsxin1fb2bp2ijgjf9akb9qlivkykpfsgnk5qjafv2n";
+    # There is a 0.1.2 release but no tag yet
+    # https://gitlab.com/khumba/nvd/-/issues/7
+    rev = "13d3ab1255e0de03693cecb7da9764c9afd5d472";
+    sha256 = "1537s7j0m0hkahf0s1ai7bm94xj9fz6b9x78py0dn3cgnl9bfzla";
   };
 
   buildInputs = [ python3 ];
diff --git a/nixpkgs/pkgs/tools/package-management/opkg/default.nix b/nixpkgs/pkgs/tools/package-management/opkg/default.nix
index 631274cb7222..1853c080166c 100644
--- a/nixpkgs/pkgs/tools/package-management/opkg/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/opkg/default.nix
@@ -2,11 +2,11 @@
 , autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.4";
+  version = "0.4.5";
   pname = "opkg";
   src = fetchurl {
     url = "https://downloads.yoctoproject.org/releases/opkg/opkg-${version}.tar.gz";
-    sha256 = "sha256-IhesxYuOsxMAYx66514iLrxwDJwc9kCAiHBdGaRyyDk=";
+    sha256 = "sha256-oSFKdfo0+5Io242kcwjg5xGxyT/Yk4zxZMEP0o61Dx4=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/nixpkgs/pkgs/tools/package-management/protontricks/default.nix b/nixpkgs/pkgs/tools/package-management/protontricks/default.nix
index 99751c00d99c..125b96953734 100644
--- a/nixpkgs/pkgs/tools/package-management/protontricks/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/protontricks/default.nix
@@ -9,17 +9,18 @@
 , winetricks
 , yad
 , pytestCheckHook
+, nix-update-script
 }:
 
 buildPythonApplication rec {
   pname = "protontricks";
-  version = "1.6.0";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = "Matoking";
     repo = pname;
     rev = version;
-    hash = "sha256-sbYIqVsuDZ2Htb6SVIe/gBA1UIvUzu4fjTjWQ7k1WFs=";
+    sha256 = "sha256-XC5ip12wlXRo/AaTFJWEZvEZPPC1WtXTyeYivvyHZaE=";
   };
 
   patches = [
@@ -55,6 +56,10 @@ buildPythonApplication rec {
 
   pythonImportsCheck = [ "protontricks" ];
 
+  passthru.updateScript = nix-update-script {
+    attrPath = pname;
+  };
+
   meta = with lib; {
     description = "A simple wrapper for running Winetricks commands for Proton-enabled games";
     homepage = "https://github.com/Matoking/protontricks";
diff --git a/nixpkgs/pkgs/tools/package-management/protontricks/steam-run.patch b/nixpkgs/pkgs/tools/package-management/protontricks/steam-run.patch
index 0144160c5af8..d27289bb3f5c 100644
--- a/nixpkgs/pkgs/tools/package-management/protontricks/steam-run.patch
+++ b/nixpkgs/pkgs/tools/package-management/protontricks/steam-run.patch
@@ -1,5 +1,5 @@
 diff --git a/src/protontricks/cli/main.py b/src/protontricks/cli/main.py
-index 535ec9b..690c1f9 100755
+index bd651aa..2b82aea 100755
 --- a/src/protontricks/cli/main.py
 +++ b/src/protontricks/cli/main.py
 @@ -14,8 +14,8 @@ import sys
@@ -48,7 +48,7 @@ index 535ec9b..690c1f9 100755
              steam_app=steam_app,
              use_steam_runtime=use_steam_runtime,
 -            legacy_steam_runtime_path=legacy_steam_runtime_path,
-             command=[winetricks_path, "--gui"],
+             command=[str(winetricks_path), "--gui"],
              use_bwrap=use_bwrap
          )
 @@ -286,7 +276,6 @@ def main(args=None):
@@ -57,9 +57,9 @@ index 535ec9b..690c1f9 100755
              use_steam_runtime=use_steam_runtime,
 -            legacy_steam_runtime_path=legacy_steam_runtime_path,
              use_bwrap=use_bwrap,
-             command=[winetricks_path] + args.winetricks_command)
-     elif args.command:
-@@ -296,7 +285,6 @@ def main(args=None):
+             command=[str(winetricks_path)] + args.winetricks_command
+         )
+@@ -297,7 +286,6 @@ def main(args=None):
              steam_app=steam_app,
              command=args.command,
              use_steam_runtime=use_steam_runtime,
@@ -68,10 +68,10 @@ index 535ec9b..690c1f9 100755
              # Pass the command directly into the shell *without*
              # escaping it
 diff --git a/src/protontricks/steam.py b/src/protontricks/steam.py
-index e898caf..7448d11 100644
+index be5322b..552f894 100644
 --- a/src/protontricks/steam.py
 +++ b/src/protontricks/steam.py
-@@ -12,8 +12,8 @@ from .util import lower_dict
+@@ -12,8 +12,8 @@ from .util import lower_dict, is_flatpak_sandbox
  
  __all__ = (
      "COMMON_STEAM_DIRS", "SteamApp", "find_steam_path",
@@ -82,7 +82,7 @@ index e898caf..7448d11 100644
      "find_proton_app", "get_steam_lib_paths", "get_compat_tool_dirs",
      "get_custom_compat_tool_installations_in_dir", "get_custom_compat_tool_installations",
      "find_current_steamid3", "get_appid_from_shortcut",
-@@ -311,37 +311,6 @@ def find_steam_path():
+@@ -318,37 +318,6 @@ def find_steam_path():
      return None, None
  
  
@@ -121,7 +121,7 @@ index e898caf..7448d11 100644
  APPINFO_STRUCT_SECTION = "<LLLLQ20sL"
  
 diff --git a/src/protontricks/util.py b/src/protontricks/util.py
-index 5252d6c..f16dfec 100644
+index f2482fc..f9c1c33 100644
 --- a/src/protontricks/util.py
 +++ b/src/protontricks/util.py
 @@ -5,15 +5,14 @@ import shutil
@@ -243,7 +243,7 @@ index 5252d6c..f16dfec 100644
          use_bwrap=True,
          **kwargs):
      """Run an arbitrary command with the correct environment variables
-@@ -351,7 +338,7 @@ def run_command(
+@@ -353,7 +340,7 @@ def run_command(
              os.environ["STEAM_RUNTIME_PATH"] = \
                  str(proton_app.required_tool_app.install_path)
              os.environ["PROTON_LD_LIBRARY_PATH"] = \
@@ -252,7 +252,7 @@ index 5252d6c..f16dfec 100644
  
              runtime_name = proton_app.required_tool_app.name
              logger.info(
-@@ -372,11 +359,8 @@ def run_command(
+@@ -374,11 +361,8 @@ def run_command(
                      "Current Steam Runtime not recognized by Protontricks."
                  )
          else:
@@ -265,7 +265,7 @@ index 5252d6c..f16dfec 100644
  
          # When Steam Runtime is enabled, create a set of helper scripts
          # that load the underlying Proton Wine executables with Steam Runtime
-@@ -384,8 +368,6 @@ def run_command(
+@@ -386,8 +370,6 @@ def run_command(
          wine_bin_dir = create_wine_bin_dir(
              proton_app=proton_app, use_bwrap=use_bwrap
          )
@@ -275,7 +275,7 @@ index 5252d6c..f16dfec 100644
          os.environ["PATH"] = "".join([
              str(wine_bin_dir), os.pathsep, os.environ["PATH"]
 diff --git a/tests/cli/test_main.py b/tests/cli/test_main.py
-index e6da0fb..46b9545 100644
+index 605ae26..4bf7e80 100644
 --- a/tests/cli/test_main.py
 +++ b/tests/cli/test_main.py
 @@ -116,15 +116,10 @@ class TestCLIRun:
@@ -324,7 +324,7 @@ index e6da0fb..46b9545 100644
          assert command.env["STEAM_RUNTIME_PATH"] == \
              str(steam_runtime_soldier.install_path)
  
-@@ -335,7 +326,6 @@ class TestCLIRun:
+@@ -344,7 +335,6 @@ class TestCLIRun:
  
          # Also ensure log messages are included in the error message
          assert b"Found Steam directory at" in message
@@ -332,7 +332,7 @@ index e6da0fb..46b9545 100644
  
      def test_run_gui_provider_not_found(self, cli, home_dir, steam_app_factory):
          """
-@@ -349,20 +339,6 @@ class TestCLIRun:
+@@ -358,20 +348,6 @@ class TestCLIRun:
  
          assert "YAD or Zenity is not installed" in result
  
@@ -345,11 +345,11 @@ index e6da0fb..46b9545 100644
 -        steam_app_factory(name="Fake game 1", appid=10)
 -        result = cli(
 -            ["10", "winecfg"], env={"STEAM_RUNTIME": "invalid/path"},
--            expect_exit=True
+-            expect_returncode=1
 -        )
 -
 -        assert "Steam Runtime was enabled but couldn't be found" in result
 -
      def test_run_proton_not_found(self, cli, steam_dir, steam_app_factory):
          steam_app_factory(name="Fake game 1", appid=10)
-         result = cli(["10", "winecfg"], expect_exit=True)
+         result = cli(["10", "winecfg"], expect_returncode=1)
diff --git a/nixpkgs/pkgs/tools/package-management/reuse/default.nix b/nixpkgs/pkgs/tools/package-management/reuse/default.nix
index 5b49cbf023bf..0c84abada1ef 100644
--- a/nixpkgs/pkgs/tools/package-management/reuse/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/reuse/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "reuse";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "fsfe";
     repo = "reuse-tool";
     rev = "v${version}";
-    sha256 = "0didqsbvrn06aylp71jl3hqb4rd95d8s613xz6jw6mngyjqv0hq2";
+    sha256 = "1pjc8pckacjlrb8xypyca7jq8ii4an7m5b1g7941d7kkhnlbzm7v";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/tools/package-management/rpm/default.nix b/nixpkgs/pkgs/tools/package-management/rpm/default.nix
index 910b86e13184..9c0da87a90ae 100644
--- a/nixpkgs/pkgs/tools/package-management/rpm/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/rpm/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   outputs = [ "out" "dev" "man" ];
+  separateDebugInfo = true;
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ cpio zlib zstd bzip2 file libarchive libgcrypt nspr nss db xz python lua sqlite ]
@@ -62,6 +63,8 @@ stdenv.mkDerivation rec {
     ln -sf $out/bin/{rpm,rpmverify}
   '';
 
+  enableParallelBuilding = true;
+
   meta = with lib; {
     homepage = "https://www.rpm.org/";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
diff --git a/nixpkgs/pkgs/tools/security/acsccid/default.nix b/nixpkgs/pkgs/tools/security/acsccid/default.nix
index da461a96957a..f471393b2cfc 100644
--- a/nixpkgs/pkgs/tools/security/acsccid/default.nix
+++ b/nixpkgs/pkgs/tools/security/acsccid/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , autoconf
 , automake
@@ -77,7 +78,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = src.meta.homepage;
     license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ roberth ];
+    maintainers = with maintainers; [ ];
     platforms = with platforms; unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/afl/qemu.nix b/nixpkgs/pkgs/tools/security/afl/qemu.nix
index b88da7599d1d..e33c4c2fb03a 100644
--- a/nixpkgs/pkgs/tools/security/afl/qemu.nix
+++ b/nixpkgs/pkgs/tools/security/afl/qemu.nix
@@ -5,23 +5,23 @@
 with lib;
 
 let
-  qemuName = "qemu-2.10.0";
   cpuTarget = if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64-linux-user"
     else if stdenv.hostPlatform.system == "i686-linux" then "i386-linux-user"
     else throw "afl: no support for ${stdenv.hostPlatform.system}!";
 in
-stdenv.mkDerivation {
-  name = "afl-${qemuName}";
+stdenv.mkDerivation rec {
+  pname = "afl-qemu";
+  version = "2.10.0";
 
   srcs = [
     (fetchurl {
-      url = "http://wiki.qemu.org/download/${qemuName}.tar.bz2";
+      url = "http://wiki.qemu.org/download/qemu-${version}.tar.bz2";
       sha256 = "0j3dfxzrzdp1w21k21fjvmakzc6lcha1rsclaicwqvbf63hkk7vy";
     })
     afl.src
   ];
 
-  sourceRoot = qemuName;
+  sourceRoot = "qemu-${version}";
 
   postUnpack = ''
     cp ${afl.src.name}/types.h $sourceRoot/afl-types.h
diff --git a/nixpkgs/pkgs/tools/security/aflplusplus/qemu.nix b/nixpkgs/pkgs/tools/security/aflplusplus/qemu.nix
index 0a98f27182bf..1fb613aef2e2 100644
--- a/nixpkgs/pkgs/tools/security/aflplusplus/qemu.nix
+++ b/nixpkgs/pkgs/tools/security/aflplusplus/qemu.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, aflplusplus, python2, zlib, pkg-config, glib, perl
+{ lib, stdenv, fetchurl, aflplusplus, python3, zlib, pkg-config, glib, perl
 , texinfo, libuuid, flex, bison, pixman, autoconf
 }:
 
@@ -44,7 +44,7 @@ stdenv.mkDerivation {
   '';
 
   nativeBuildInputs = [
-    python2 perl pkg-config flex bison autoconf texinfo
+    python3 perl pkg-config flex bison autoconf texinfo
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/security/age-plugin-yubikey/default.nix b/nixpkgs/pkgs/tools/security/age-plugin-yubikey/default.nix
new file mode 100644
index 000000000000..a880f490dc7e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/age-plugin-yubikey/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, pcsclite
+, PCSC
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "age-plugin-yubikey";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "str4d";
+    repo = pname;
+    rev = "51910edfab4006a068864602469ff7db3766bfbe"; # no tag for this release
+    sha256 = "sha256-mMqvBlGFdwe5BaC0bXZg/27BGNmFTTYbLUHWUciqxQ0=";
+  };
+
+  cargoSha256 = "sha256-OCbVLSmGx51pJ/EPgPfOyVrYWdloNEbexDV1zMsmEJc=";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs =
+    if stdenv.isDarwin then [
+      PCSC
+    ] else [
+      pcsclite
+    ];
+
+  meta = with lib; {
+    description = "YubiKey plugin for age clients";
+    homepage = "https://github.com/str4d/age-plugin-yubikey";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ vtuan10 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/arsenal/default.nix b/nixpkgs/pkgs/tools/security/arsenal/default.nix
new file mode 100644
index 000000000000..cd927715d2e8
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/arsenal/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "arsenal";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "Orange-Cyberdefense";
+    repo = "arsenal";
+    rev = version;
+    sha256 = "sha256-RZxGSrtEa3hAtowD2lUb9BgwpSWlYo90fU9nDvUfoAk=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    libtmux
+    docutils
+    pyperclip
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "arsenal"
+  ];
+
+  meta = with lib; {
+    description = "Tool to generate commands for security and network tools";
+    homepage = "https://github.com/Orange-Cyberdefense/arsenal";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "arsenal";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/b2sum/default.nix b/nixpkgs/pkgs/tools/security/b2sum/default.nix
index 393043df6758..bf415e7554e6 100644
--- a/nixpkgs/pkgs/tools/security/b2sum/default.nix
+++ b/nixpkgs/pkgs/tools/security/b2sum/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, openmp ? null }:
+{ lib, stdenv, fetchFromGitHub, openmp ? null }:
 
 with lib;
 
@@ -6,9 +6,11 @@ stdenv.mkDerivation {
   pname = "b2sum";
   version = "unstable-2018-06-11";
 
-  src = fetchzip {
-    url = "https://github.com/BLAKE2/BLAKE2/archive/320c325437539ae91091ce62efec1913cd8093c2.tar.gz";
-    sha256 = "0agmc515avdpr64bsgv87wby2idm0d3wbndxzkhdfjgzhgv0rb8k";
+  src = fetchFromGitHub {
+    owner = "BLAKE2";
+    repo = "BLAKE2";
+    rev = "320c325437539ae91091ce62efec1913cd8093c2";
+    sha256 = "E60M9oP/Sdfg/L3ZxUcDtUXhFz9oP72IybdtVUJh9Sk=";
   };
 
   sourceRoot = "source/b2sum";
diff --git a/nixpkgs/pkgs/tools/security/b3sum/default.nix b/nixpkgs/pkgs/tools/security/b3sum/default.nix
index 9238ba06b1f5..b6792763c231 100644
--- a/nixpkgs/pkgs/tools/security/b3sum/default.nix
+++ b/nixpkgs/pkgs/tools/security/b3sum/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "b3sum";
-  version = "1.0.0";
+  version = "1.2.0";
 
   src = fetchCrate {
     inherit version pname;
-    sha256 = "sha256-eWsvCpMG3iWB2cYIKaaP6h9QwKQQrpFNliHTqBtdzVw=";
+    sha256 = "sha256-v6OCUXes8jaBh+sKqj1yCNOTb1NQY/ENGzKf5XWGZ3w=";
   };
 
-  cargoSha256 = "sha256-YglKiEz/D5+Dz6CIzWIpoc33bhMSdGTM4MP/uJCxe7E=";
+  cargoSha256 = "sha256-y5QVgu716p8TFoEeWIzX9aJWeT3FKwlh5vUQkKR6pdE=";
 
   meta = {
     description = "BLAKE3 cryptographic hash function";
diff --git a/nixpkgs/pkgs/tools/security/beyond-identity/default.nix b/nixpkgs/pkgs/tools/security/beyond-identity/default.nix
new file mode 100644
index 000000000000..121c71fab351
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/beyond-identity/default.nix
@@ -0,0 +1,89 @@
+{ lib, stdenv, fetchurl, dpkg, buildFHSUserEnv
+, glibc, glib, openssl, tpm2-tss
+, gtk3, gnome, polkit, polkit_gnome
+}:
+
+let
+  pname = "beyond-identity";
+  version = "2.45.0-0";
+  libPath = lib.makeLibraryPath ([ glib glibc openssl tpm2-tss gtk3 gnome.gnome-keyring polkit polkit_gnome ]);
+  meta = with lib; {
+    description = "Passwordless MFA identities for workforces, customers, and developers";
+    homepage = "https://www.beyondidentity.com";
+    downloadPage = "https://app.byndid.com/downloads";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ klden ];
+    platforms = [ "x86_64-linux" ];
+  };
+
+  beyond-identity = stdenv.mkDerivation {
+    inherit pname version meta;
+
+    src = fetchurl {
+      url = "https://packages.beyondidentity.com/public/linux-authenticator/deb/ubuntu/pool/focal/main/b/be/${pname}_${version}/${pname}_${version}_amd64.deb";
+      sha512 = "852689d473b7538cdca60d264295f39972491b5505accad897fd924504189f0a6d8b6481cc0520ee762d4642e0f4fd664a03b5741f9ea513ec46ab16b05158f2";
+    };
+
+    nativeBuildInputs = [
+      dpkg
+    ];
+
+    unpackPhase = ''
+      dpkg -x $src .
+    '';
+
+    installPhase = ''
+      mkdir -p $out/opt/beyond-identity
+
+      rm -rf usr/share/doc
+
+      # https://github.com/NixOS/nixpkgs/issues/42117
+      sed -i -e 's/auth_self/yes/g' usr/share/polkit-1/actions/com.beyondidentity.endpoint.stepup.policy
+
+      cp -ar usr/{bin,share} $out
+      cp -ar opt/beyond-identity/bin $out/opt/beyond-identity
+
+      ln -s $out/opt/beyond-identity/bin/* $out/bin/
+    '';
+
+    postFixup = ''
+      substituteInPlace \
+        $out/share/applications/com.beyondidentity.endpoint.BeyondIdentity.desktop \
+        --replace /usr/bin/ $out/bin/
+      substituteInPlace \
+        $out/share/applications/com.beyondidentity.endpoint.webserver.BeyondIdentity.desktop \
+        --replace /opt/ $out/opt/
+      substituteInPlace \
+        $out/opt/beyond-identity/bin/byndid-web \
+        --replace /opt/ $out/opt/
+      substituteInPlace \
+        $out/bin/beyond-identity \
+        --replace /opt/ $out/opt/ \
+        --replace /usr/bin/gtk-launch ${gtk3}/bin/gtk-launch
+
+      patchelf \
+        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --set-rpath "${libPath}" \
+        --force-rpath \
+        $out/bin/byndid
+    '';
+  };
+# /usr/bin/pkcheck is hardcoded in binary - we need FHS
+in buildFHSUserEnv {
+   inherit meta;
+   name = pname;
+
+   targetPkgs = pkgs: [
+     beyond-identity
+     glib glibc openssl tpm2-tss
+     gtk3 gnome.gnome-keyring
+     polkit polkit_gnome
+   ];
+
+   extraInstallCommands = ''
+     ln -s ${beyond-identity}/share $out
+   '';
+
+   runScript = "beyond-identity";
+}
+
diff --git a/nixpkgs/pkgs/tools/security/bitwarden/default.nix b/nixpkgs/pkgs/tools/security/bitwarden/default.nix
index 7d7afa624931..198295fcdfe0 100644
--- a/nixpkgs/pkgs/tools/security/bitwarden/default.nix
+++ b/nixpkgs/pkgs/tools/security/bitwarden/default.nix
@@ -4,6 +4,7 @@
 , fetchurl
 , lib
 , libsecret
+, libxshmfence
 , makeDesktopItem
 , makeWrapper
 , stdenv
@@ -11,78 +12,61 @@
 , wrapGAppsHook
 }:
 
-let
-  inherit (stdenv.hostPlatform) system;
-
+stdenv.mkDerivation rec {
   pname = "bitwarden";
+  version = "1.30.0";
 
-  version = {
-    x86_64-linux = "1.28.1";
-  }.${system} or "";
-
-  sha256 = {
-    x86_64-linux = "sha256-vyEbISZDTN+CHqSEtElzfg4M4i+2RjUux5vzwJw8/dc=";
-  }.${system} or "";
-
-  meta = with lib; {
-    description = "A secure and free password manager for all of your devices";
-    homepage = "https://bitwarden.com";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ kiwi ];
-    platforms = [ "x86_64-linux" ];
+  src = fetchurl {
+    url = "https://github.com/bitwarden/desktop/releases/download/v${version}/Bitwarden-${version}-amd64.deb";
+    sha256 = "sha256-x0i7MUVr0nhPy8M/dTVtRjaLfJQlzqhzLQ/JHLRmL6E=";
   };
 
-  linux = stdenv.mkDerivation rec {
-    inherit pname version meta;
-
-    src = fetchurl {
-      url = "https://github.com/bitwarden/desktop/releases/download/"
-      + "v${version}/Bitwarden-${version}-amd64.deb";
-      inherit sha256;
-    };
+  desktopItem = makeDesktopItem {
+    name = "bitwarden";
+    exec = "bitwarden %U";
+    icon = "bitwarden";
+    comment = "A secure and free password manager for all of your devices";
+    desktopName = "Bitwarden";
+    categories = "Utility";
+  };
 
-    desktopItem = makeDesktopItem {
-      name = "bitwarden";
-      exec = "bitwarden %U";
-      icon = "bitwarden";
-      comment = "A secure and free password manager for all of your devices";
-      desktopName = "Bitwarden";
-      categories = "Utility";
-    };
+  dontBuild = true;
+  dontConfigure = true;
+  dontPatchELF = true;
+  dontWrapGApps = true;
 
-    dontBuild = true;
-    dontConfigure = true;
-    dontPatchELF = true;
-    dontWrapGApps = true;
+  nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook wrapGAppsHook ];
 
-    buildInputs = [ libsecret ] ++ atomEnv.packages;
+  buildInputs = [ libsecret libxshmfence ] ++ atomEnv.packages;
 
-    nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook wrapGAppsHook ];
+  unpackPhase = "dpkg-deb -x $src .";
 
-    unpackPhase = "dpkg-deb -x $src .";
+  installPhase = ''
+    mkdir -p "$out/bin"
+    cp -R "opt" "$out"
+    cp -R "usr/share" "$out/share"
+    chmod -R g-w "$out"
 
-    installPhase = ''
-      mkdir -p "$out/bin"
-      cp -R "opt" "$out"
-      cp -R "usr/share" "$out/share"
-      chmod -R g-w "$out"
+    # Desktop file
+    mkdir -p "$out/share/applications"
+    cp "${desktopItem}/share/applications/"* "$out/share/applications"
+  '';
 
-      # Desktop file
-      mkdir -p "$out/share/applications"
-      cp "${desktopItem}/share/applications/"* "$out/share/applications"
-    '';
+  runtimeDependencies = [
+    (lib.getLib udev)
+  ];
 
-    runtimeDependencies = [
-      (lib.getLib udev)
-    ];
+  postFixup = ''
+    makeWrapper $out/opt/Bitwarden/bitwarden $out/bin/bitwarden \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libsecret stdenv.cc.cc ] }" \
+      "''${gappsWrapperArgs[@]}"
+  '';
 
-    postFixup = ''
-      makeWrapper $out/opt/Bitwarden/bitwarden $out/bin/bitwarden \
-        --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libsecret stdenv.cc.cc ] }" \
-        "''${gappsWrapperArgs[@]}"
-    '';
+  meta = with lib; {
+    description = "A secure and free password manager for all of your devices";
+    homepage = "https://bitwarden.com";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ kiwi ];
+    platforms = [ "x86_64-linux" ];
   };
-
-in if stdenv.isDarwin
-then throw "Bitwarden has not been packaged for macOS yet"
-else linux
+}
diff --git a/nixpkgs/pkgs/tools/security/boofuzz/default.nix b/nixpkgs/pkgs/tools/security/boofuzz/default.nix
new file mode 100644
index 000000000000..353758c3d5f9
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/boofuzz/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "boofuzz";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "jtpereyda";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "4WtTZ2S2rC2XXN0HbiEht9NW0JXcPnpp66AH67F88yk=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    attrs
+    click
+    colorama
+    flask
+    funcy
+    future
+    psutil
+    pyserial
+    pydot
+    six
+    tornado
+  ];
+
+  checkInputs = with python3.pkgs; [
+    mock
+    netifaces
+    pytest-bdd
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Tests require socket access
+    "test_raw_l2"
+    "test_raw_l3"
+  ];
+
+  pythonImportsCheck = [
+    "boofuzz"
+  ];
+
+  meta = with lib; {
+    description = "Network protocol fuzzing tool";
+    homepage = "https://github.com/jtpereyda/boofuzz";
+    license = with licenses; [ gpl2Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/bpb/default.nix b/nixpkgs/pkgs/tools/security/bpb/default.nix
index 121c5674c08c..4d601aac1553 100644
--- a/nixpkgs/pkgs/tools/security/bpb/default.nix
+++ b/nixpkgs/pkgs/tools/security/bpb/default.nix
@@ -2,6 +2,7 @@
 , lib
 , rustPlatform
 , fetchFromGitHub
+, Security
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -20,6 +21,8 @@ rustPlatform.buildRustPackage rec {
   # a nightly compiler is required unless we use this cheat code.
   RUSTC_BOOTSTRAP = 1;
 
+  buildInputs = lib.optional stdenv.isDarwin Security;
+
   meta = with lib; {
     description = "Tool to automatically sign git commits, replacing gpg for that purpose";
     homepage = "https://github.com/withoutboats/bpb";
diff --git a/nixpkgs/pkgs/tools/security/buttercup-desktop/default.nix b/nixpkgs/pkgs/tools/security/buttercup-desktop/default.nix
new file mode 100644
index 000000000000..07df51e84e38
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/buttercup-desktop/default.nix
@@ -0,0 +1,33 @@
+{ lib, fetchurl, appimageTools }:
+
+let
+  pname = "buttercup-desktop";
+  version = "2.13.0";
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "https://github.com/buttercup/buttercup-desktop/releases/download/v${version}/Buttercup-linux-x86_64.AppImage";
+    sha256 = "sha256-JXXJZyd/fp2463WyxIB+pKcNzGUFfCouPE6iTx2lhME=";
+  };
+  appimageContents = appimageTools.extractType2 { inherit name src; };
+
+in appimageTools.wrapType2 {
+  inherit name src;
+
+  extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ pkgs.libsecret ];
+
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/buttercup-desktop
+    install -m 444 -D ${appimageContents}/buttercup.desktop -t $out/share/applications
+    substituteInPlace $out/share/applications/buttercup.desktop \
+      --replace 'Exec=AppRun' 'Exec=buttercup-desktop'
+    cp -r ${appimageContents}/usr/share/icons $out/share
+  '';
+
+  meta = with lib; {
+    description = "Cross-Platform Passwords & Secrets Vault";
+    homepage = "https://buttercup.pw";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/cariddi/default.nix b/nixpkgs/pkgs/tools/security/cariddi/default.nix
index 655b55d8cc28..670a03c88810 100644
--- a/nixpkgs/pkgs/tools/security/cariddi/default.nix
+++ b/nixpkgs/pkgs/tools/security/cariddi/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "cariddi";
-  version = "1.1";
+  version = "1.1.5";
 
   src = fetchFromGitHub {
     owner = "edoardottt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0cwkycydwndda11m1jszbxchpqabrgspj17y2aj3y3m2x446h27z";
+    sha256 = "sha256-PXQljC9rwlxXQ96fII3EjD4NXu61EMkYvMWqkcJZ4vU=";
   };
 
-  vendorSha256 = "0rmiya517i9s4l9nxzwly5vq8cqhhpq66rc7y4sapyaihx20ai3r";
+  vendorSha256 = "sha256-yVfRjUlw90oUsbF2P6pW6FhMXok9ZwcKmAWyTFLI/cY=";
 
   meta = with lib; {
     description = "Crawler for URLs and endpoints";
diff --git a/nixpkgs/pkgs/tools/security/ccid/default.nix b/nixpkgs/pkgs/tools/security/ccid/default.nix
index a7312731203b..d1b5f4a83c0f 100644
--- a/nixpkgs/pkgs/tools/security/ccid/default.nix
+++ b/nixpkgs/pkgs/tools/security/ccid/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ccid";
-  version = "1.4.35";
+  version = "1.4.36";
 
   src = fetchurl {
     url = "https://ccid.apdu.fr/files/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-fD4qeSTt2nIhicpXyNHP+lHn+TVKI+ga7NnRro2XEMo=";
+    sha256 = "sha256-K3OsiF8byrgZ3DV4lE0XQGJB4MckBCmJzqQ3NTtnScE=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/security/cdk-go/default.nix b/nixpkgs/pkgs/tools/security/cdk-go/default.nix
index 465b987ec74f..14f7e05140e0 100644
--- a/nixpkgs/pkgs/tools/security/cdk-go/default.nix
+++ b/nixpkgs/pkgs/tools/security/cdk-go/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildGoModule
 , fetchFromGitHub
 }:
@@ -25,5 +26,6 @@ buildGoModule rec {
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ fab ];
     mainProgram = "cdk";
+    broken = stdenv.isDarwin; # needs to update gopsutil to at least v3.21.3 to include https://github.com/shirou/gopsutil/pull/1042
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/certipy/default.nix b/nixpkgs/pkgs/tools/security/certipy/default.nix
new file mode 100644
index 000000000000..9e3d4573df22
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/certipy/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "certipy";
+  version = "unstable-2021-11-08";
+
+  src = fetchFromGitHub {
+    owner = "ly4k";
+    repo = "Certipy";
+    rev = "c2f5581505c54f3bf9fe4e6f07c17fa9ef501cab";
+    sha256 = "0m2n30prqd9d02kmryk8vry4cabcad1892qr8a02qfg6r98x8q3q";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    asn1crypto
+    pycryptodome
+    impacket
+    ldap3
+    pyasn1
+    dnspython
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "certipy"
+  ];
+
+  meta = with lib; {
+    description = "Tool to enumerate and abuse misconfigurations in Active Directory Certificate Services";
+    homepage = "https://github.com/ly4k/Certipy";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/chopchop/default.nix b/nixpkgs/pkgs/tools/security/chopchop/default.nix
new file mode 100644
index 000000000000..10ac9e7f4a77
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/chopchop/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "chopchop";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "michelin";
+    repo = "ChopChop";
+    rev = "v${version}";
+    sha256 = "qSBQdcS6d0tctSHRbkY4T7s6Zj7xI2abaPUvNKh1M2E=";
+  };
+
+  vendorSha256 = "UxWARWOFp8AYKEdiJwRZNwFrphgMTJSZjnvktTNOsgU=";
+
+  meta = with lib; {
+    description = "CLI to search for sensitive services/files/folders";
+    homepage = "https://github.com/michelin/ChopChop";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/clamav/default.nix b/nixpkgs/pkgs/tools/security/clamav/default.nix
index 2019f8ac99d1..8fb66ebcb3ff 100644
--- a/nixpkgs/pkgs/tools/security/clamav/default.nix
+++ b/nixpkgs/pkgs/tools/security/clamav/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.clamav.net";
     description = "Antivirus engine designed for detecting Trojans, viruses, malware and other malicious threats";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ phreedom robberer qknight fpletz globin ];
+    maintainers = with maintainers; [ robberer qknight fpletz globin ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/cosign/default.nix b/nixpkgs/pkgs/tools/security/cosign/default.nix
index 64e64e3854bf..0c934e3c6953 100644
--- a/nixpkgs/pkgs/tools/security/cosign/default.nix
+++ b/nixpkgs/pkgs/tools/security/cosign/default.nix
@@ -1,29 +1,39 @@
-{ stdenv, lib, buildGoModule, fetchFromGitHub, pcsclite, pkg-config, PCSC, pivKeySupport ? true }:
+{ stdenv, lib, buildGoModule, fetchFromGitHub, pcsclite, pkg-config, installShellFiles, PCSC, pivKeySupport ? true, pkcs11Support ? true }:
 
 buildGoModule rec {
   pname = "cosign";
-  version = "1.2.1";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "sigstore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-peR/TPydR4O6kGkRUpOgUCJ7xGRLbl9pYB1lAehjVK4=";
+    sha256 = "sha256-WjYW9Fo27wE1pg/BqYsdHd8jwd8jG5bk37HmU1DqnyE=";
   };
 
-  buildInputs =
-    lib.optional (stdenv.isLinux && pivKeySupport) (lib.getDev pcsclite)
+  buildInputs = lib.optional (stdenv.isLinux && pivKeySupport) (lib.getDev pcsclite)
     ++ lib.optionals (stdenv.isDarwin && pivKeySupport) [ PCSC ];
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config installShellFiles ];
 
-  vendorSha256 = "sha256-DyRMQ43BJOkDtWEqmAzqICyaSyQJ9H4i69VJ4dCGF44=";
+  vendorSha256 = "sha256-6T98zu55BQ26e43a1i68rhebaLwY/iFM8CRqRcv2QwI=";
 
-  excludedPackages = "\\(copasetic\\|sample\\|webhook\\)";
+  excludedPackages = "\\(sample\\|webhook\\|help\\)";
 
-  tags = lib.optionals pivKeySupport [ "pivkey" ];
+  tags = [] ++ lib.optionals pivKeySupport [ "pivkey" ] ++ lib.optionals pkcs11Support [ "pkcs11key" ];
 
-  ldflags = [ "-s" "-w" "-X github.com/sigstore/cosign/cmd/cosign/cli.GitVersion=v${version}" ];
+  ldflags = [ "-s" "-w" "-X github.com/sigstore/cosign/pkg/version.GitVersion=v${version}" ];
+
+  postInstall = ''
+    installShellCompletion --cmd cosign \
+      --bash <($out/bin/cosign completion bash) \
+      --fish <($out/bin/cosign completion fish) \
+      --zsh <($out/bin/cosign completion zsh)
+    installShellCompletion --cmd sget \
+      --bash <($out/bin/sget completion bash) \
+      --fish <($out/bin/sget completion fish) \
+      --zsh <($out/bin/sget completion zsh)
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/sigstore/cosign";
diff --git a/nixpkgs/pkgs/tools/security/creddump/default.nix b/nixpkgs/pkgs/tools/security/creddump/default.nix
deleted file mode 100644
index e9e5685acf4a..000000000000
--- a/nixpkgs/pkgs/tools/security/creddump/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, fetchFromGitLab, python2, python2Packages }:
-
-python2Packages.buildPythonApplication rec {
-  pname = "creddump";
-  version = "0.3";
-
-  src = fetchFromGitLab {
-    owner = "kalilinux";
-    repo = "packages/creddump";
-    rev = "debian/${version}-1kali2";
-    sha256 = "0r3rs2hggsvv619l3fh3c0jli6d3ryyj30ni3hz0nz670z5smzcf";
-  };
-
-  # No setup.py is available
-  dontBuild = true;
-  doCheck = false;
-  propagatedBuildInputs = [ python2Packages.pycrypto ];
-
-  installPhase = ''
-    mkdir -p ${placeholder "out"}/bin
-    cp -r framework ${placeholder "out"}/bin/framework
-    cp pwdump.py ${placeholder "out"}/bin/pwdump
-    cp cachedump.py ${placeholder "out"}/bin/cachedump
-    cp lsadump.py ${placeholder "out"}/bin/lsadump
-  '';
-
-  meta = with lib; {
-    description = "Python tool to extract various credentials and secrets from Windows registry hives";
-    homepage = "https://gitlab.com/kalilinux/packages/creddump";
-    license = licenses.gpl3;
-    platforms = platforms.unix;
-    maintainers = [ maintainers.fishi0x01 ];
-  };
-}
-
diff --git a/nixpkgs/pkgs/tools/security/credslayer/default.nix b/nixpkgs/pkgs/tools/security/credslayer/default.nix
index 0de8d37c0db4..223f9dd70eb9 100644
--- a/nixpkgs/pkgs/tools/security/credslayer/default.nix
+++ b/nixpkgs/pkgs/tools/security/credslayer/default.nix
@@ -29,10 +29,20 @@ python3.pkgs.buildPythonApplication rec {
   disabledTests = [
     # Requires a telnet setup
     "test_telnet"
+    # stdout has all the correct data, but the underlying test code fails
+    # functionally everything seems to be intact
+    "http_get_auth"
+    "test_http_post_auth"
+    "test_ntlmssp"
   ];
 
   pythonImportsCheck = [ "credslayer" ];
 
+  postInstall = ''
+    wrapProgram $out/bin/credslayer \
+       --prefix PATH : "${lib.makeBinPath [ wireshark-cli ]}"
+  '';
+
   meta = with lib; {
     description = "Extract credentials and other useful info from network captures";
     homepage = "https://github.com/ShellCode33/CredSLayer";
diff --git a/nixpkgs/pkgs/tools/security/cve-bin-tool/default.nix b/nixpkgs/pkgs/tools/security/cve-bin-tool/default.nix
index fac922628752..dd26ce887eaa 100644
--- a/nixpkgs/pkgs/tools/security/cve-bin-tool/default.nix
+++ b/nixpkgs/pkgs/tools/security/cve-bin-tool/default.nix
@@ -28,13 +28,13 @@
 }:
 buildPythonApplication rec {
   pname = "cve-bin-tool";
-  version = "2.2.1";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "cve-bin-tool";
     rev = "v${version}";
-    sha256 = "087w7fsc4vd4sjz8ww6q71b108yhz94ydr76d99rhlmcqsq7fihs";
+    sha256 = "1fmdnlhi03fdr4d4n7ydf6m0gx0cl77n3db8ldbs3m9zryblhzpr";
   };
 
   # Wants to open a sqlite database, access the internet, etc
diff --git a/nixpkgs/pkgs/tools/security/dalfox/default.nix b/nixpkgs/pkgs/tools/security/dalfox/default.nix
index 9303058b380a..2919354db4ec 100644
--- a/nixpkgs/pkgs/tools/security/dalfox/default.nix
+++ b/nixpkgs/pkgs/tools/security/dalfox/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "dalfox";
-  version = "2.5.2";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "hahwul";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/tS9/VxH5r4CSmxZ7uZOgAMLRtmPs+bgPtvljOhLALc=";
+    sha256 = "sha256-QSIaqHUNsVpb1qbQLIxxjoDH1DMM1XpXxWZtImMV1yM=";
   };
 
-  vendorSha256 = "sha256-AZbzcGqje2u9waH2NGWITXpax2GCFqbIEd4uNiDmcIY=";
+  vendorSha256 = "sha256-QtSWlGsbCxLpb4+TZgV0/wfSb5flGG3qHquO2maIOKU=";
 
   meta = with lib; {
     description = "Tool for analysing parameter and XSS scanning";
diff --git a/nixpkgs/pkgs/tools/security/dnsrecon/default.nix b/nixpkgs/pkgs/tools/security/dnsrecon/default.nix
index 6fa2041de3c0..e3fe955eb9f1 100644
--- a/nixpkgs/pkgs/tools/security/dnsrecon/default.nix
+++ b/nixpkgs/pkgs/tools/security/dnsrecon/default.nix
@@ -5,19 +5,20 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "dnsrecon";
-  version = "0.10.1";
+  version = "1.0.0";
+  format = "other";
 
   src = fetchFromGitHub {
     owner = "darkoperator";
     repo = pname;
     rev = version;
-    sha256 = "1ysf8wx287psfk89r0i2vgnrjvxdj44s6nhf6sva59jbwvr9lghy";
+    sha256 = "sha256-VRO5ugr/+iZh+hh3tVs/JNAr7GXao/HK43O3FlkbcSM=";
   };
 
-  format = "other";
-
-  pythonPath = with python3.pkgs; [
-    dnspython netaddr lxml
+  propagatedBuildInputs = with python3.pkgs; [
+    dnspython
+    netaddr
+    lxml
   ];
 
   postPatch = ''
@@ -36,11 +37,11 @@ python3.pkgs.buildPythonApplication rec {
     runHook postInstall
   '';
 
+
   meta = with lib; {
-    description = "DNS Enumeration Script";
+    description = "DNS Enumeration script";
     homepage = "https://github.com/darkoperator/dnsrecon";
     license = licenses.gpl2Only;
-    platforms = platforms.all;
     maintainers = with maintainers; [ c0bw3b fab ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/dnsx/default.nix b/nixpkgs/pkgs/tools/security/dnsx/default.nix
index 7872e4a8eace..5b4f0a5da146 100644
--- a/nixpkgs/pkgs/tools/security/dnsx/default.nix
+++ b/nixpkgs/pkgs/tools/security/dnsx/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "dnsx";
-  version = "1.0.6";
+  version = "1.0.7";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "dnsx";
     rev = "v${version}";
-    sha256 = "sha256-rAicKytDtdnPwWdxJvBd5UnMGTAI4NHcPUjISlT7kCw=";
+    sha256 = "sha256-92J9yRTSk2EP3lXCWH1+Ha+dx3dTNur6LIDMKbGmseI=";
   };
 
-  vendorSha256 = "sha256-8YoYfn2BFUnVwH9FcAgb1p5CV3dJVrWjEMPfivOGvQE=";
+  vendorSha256 = "sha256-692PcWFYNInWcZm9NQHLQmRHGFV9XUSFoCqHo7fcGEU=";
 
   meta = with lib; {
     description = "Fast and multi-purpose DNS toolkit";
diff --git a/nixpkgs/pkgs/tools/security/doppler/default.nix b/nixpkgs/pkgs/tools/security/doppler/default.nix
index 18ca909cd5e0..27b44ce6042a 100644
--- a/nixpkgs/pkgs/tools/security/doppler/default.nix
+++ b/nixpkgs/pkgs/tools/security/doppler/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "doppler";
-  version = "3.31.1";
+  version = "3.36.2";
 
   src = fetchFromGitHub {
     owner = "dopplerhq";
     repo = "cli";
     rev = version;
-    sha256 = "sha256-m8dugkZ0n51RnclZwKGgjVG3OrDMz3MsOQMvNbG4BPU=";
+    sha256 = "sha256-T8WqQTB3ogxGiImkyZUUbKcXTdSgGM0Vb4OkckslzYE=";
   };
 
-  vendorSha256 = "sha256-yb7L4GSKtlwagwdxBMd5aSk9fre1NKKsy6CM4Iv2ya8=";
+  vendorSha256 = "sha256-VPxHxNtDeP5CFDMTeMsZYED9ZGWMquJdeupeCVldY/E=";
 
   ldflags = [ "-X github.com/DopplerHQ/cli/pkg/version.ProgramVersion=v${version}" ];
 
diff --git a/nixpkgs/pkgs/tools/security/echidna/default.nix b/nixpkgs/pkgs/tools/security/echidna/default.nix
index 70628b75fd6a..88deac03a8f7 100644
--- a/nixpkgs/pkgs/tools/security/echidna/default.nix
+++ b/nixpkgs/pkgs/tools/security/echidna/default.nix
@@ -12,23 +12,15 @@
 }:
 mkDerivation rec {
   pname = "echidna";
-  version = "1.7.2";
+  version = "1.7.3";
 
   src = fetchFromGitHub {
     owner = "crytic";
     repo = "echidna";
     rev = "v${version}";
-    sha256 = "sha256-eFhL8Zn8204JRrF69ibPtd7VpFW63i1iVXoGwXHlqps=";
+    sha256 = "sha256-NkAAXYa1bbCNUO0eDM7LQbyC3//RRFAKmEHGH2Dhl/M=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "update-hevm-to-0.47.0.patch";
-      url = "https://github.com/crytic/echidna/commit/25dfdad93d0e0dd822f22a1c1e63a0ecf2b22a23.patch";
-      sha256 = "sha256-dj3Ie+Z4zE1fgROE/KuWZXaH9knsXJi1ai3gu5zyw/E=";
-    })
-  ];
-
   isLibrary = true;
   isExecutable = true;
   libraryHaskellDepends = [
diff --git a/nixpkgs/pkgs/tools/security/enpass/default.nix b/nixpkgs/pkgs/tools/security/enpass/default.nix
index 63f25bc12efe..00c161eeb730 100644
--- a/nixpkgs/pkgs/tools/security/enpass/default.nix
+++ b/nixpkgs/pkgs/tools/security/enpass/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, dpkg, xorg
 , glib, libGLU, libGL, libpulseaudio, zlib, dbus, fontconfig, freetype
 , gtk3, pango
-, makeWrapper , python2Packages, lib
+, makeWrapper , python3Packages, lib
 , lsof, curl, libuuid, cups, mesa, xz, libxkbcommon
 }:
 
 let
-  all_data = builtins.fromJSON (builtins.readFile ./data.json);
+  all_data = lib.importJSON ./data.json;
   system_map = {
     # i686-linux = "i386"; Uncomment if enpass 6 becomes available on i386
     x86_64-linux = "amd64";
@@ -89,7 +89,7 @@ let
       name = "enpass-update-script";
       SCRIPT =./update_script.py;
 
-      buildInputs = with python2Packages; [python requests pathlib2 six attrs ];
+      buildInputs = with python3Packages; [python requests pathlib2 six attrs ];
       shellHook = ''
         exec python $SCRIPT --target pkgs/tools/security/enpass/data.json --repo ${baseUrl}
       '';
diff --git a/nixpkgs/pkgs/tools/security/enum4linux/default.nix b/nixpkgs/pkgs/tools/security/enum4linux/default.nix
index 9a9f2039ac20..b6da742dc6fa 100644
--- a/nixpkgs/pkgs/tools/security/enum4linux/default.nix
+++ b/nixpkgs/pkgs/tools/security/enum4linux/default.nix
@@ -1,16 +1,34 @@
-{ lib, stdenv, fetchurl, makeWrapper, samba, perl, openldap }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, samba
+, perl
+, openldap
+}:
 
 stdenv.mkDerivation rec {
   pname = "enum4linux";
-  version = "0.8.9";
-  src = fetchurl {
-    url = "https://labs.portcullis.co.uk/download/enum4linux-${version}.tar.gz";
-    sha256 = "41334df0cb1ba82db9e3212981340372bb355a8160073331d2a1610908a62d85";
+  version = "0.9.1";
+
+  src = fetchFromGitHub {
+    owner = "CiscoCXSecurity";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-/R0P4Ft9Y0LZwKwhDGAe36UKviih6CNbJbj1lcNKEkM=";
   };
 
   dontBuild = true;
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ samba perl openldap ];
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  buildInputs = [
+    openldap
+    perl
+    samba
+  ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -23,9 +41,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A tool for enumerating information from Windows and Samba systems";
     homepage = "https://labs.portcullis.co.uk/tools/enum4linux/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ fishi0x01 ];
     platforms = platforms.unix;
-    maintainers = [ maintainers.fishi0x01 ];
   };
 }
 
diff --git a/nixpkgs/pkgs/tools/security/expliot/default.nix b/nixpkgs/pkgs/tools/security/expliot/default.nix
index 2a3c1df0e8f7..848ee536380f 100644
--- a/nixpkgs/pkgs/tools/security/expliot/default.nix
+++ b/nixpkgs/pkgs/tools/security/expliot/default.nix
@@ -22,8 +22,6 @@ buildPythonApplication rec {
   pname = "expliot";
   version = "0.9.8";
 
-  disabled = python3.pythonOlder "3.7";
-
   src = fetchFromGitLab {
     owner = "expliot_framework";
     repo = pname;
@@ -50,10 +48,18 @@ buildPythonApplication rec {
     zeroconf
   ];
 
+  postPatch = ''
+    # https://gitlab.com/expliot_framework/expliot/-/merge_requests/113
+    substituteInPlace setup.py \
+      --replace "pynetdicom>=1.5.1,<2" "pynetdicom>=2,<3"
+  '';
+
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "expliot" ];
+  pythonImportsCheck = [
+    "expliot"
+  ];
 
   meta = with lib; {
     description = "IoT security testing and exploitation framework";
diff --git a/nixpkgs/pkgs/tools/security/exploitdb/default.nix b/nixpkgs/pkgs/tools/security/exploitdb/default.nix
index 7d2793647d85..a6d5a3855a87 100644
--- a/nixpkgs/pkgs/tools/security/exploitdb/default.nix
+++ b/nixpkgs/pkgs/tools/security/exploitdb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exploitdb";
-  version = "2021-10-16";
+  version = "2021-12-21";
 
   src = fetchFromGitHub {
     owner = "offensive-security";
     repo = pname;
     rev = version;
-    sha256 = "sha256-kzMMcipE9AKOWka2yAuljwNG/g+8fF2rYehTtxdQY+k=";
+    sha256 = "sha256-HTs8dGDSYU/Ih/8CS+4C4AtERxQHwlmpfrA0YrrKoyY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/security/fail2ban/default.nix b/nixpkgs/pkgs/tools/security/fail2ban/default.nix
index 18128639ff4a..92848def1d1c 100644
--- a/nixpkgs/pkgs/tools/security/fail2ban/default.nix
+++ b/nixpkgs/pkgs/tools/security/fail2ban/default.nix
@@ -47,7 +47,10 @@ python3.pkgs.buildPythonApplication rec {
     in
     ''
       # see https://github.com/NixOS/nixpkgs/issues/4968
-      rm -r ${sitePackages}/etc ${sitePackages}/usr
+      rm -r "${sitePackages}/etc"
+    '' + lib.optionalString stdenv.isLinux ''
+      # see https://github.com/NixOS/nixpkgs/issues/4968
+      rm -r "${sitePackages}/usr"
     '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/security/fierce/default.nix b/nixpkgs/pkgs/tools/security/fierce/default.nix
index 95be0dcaedde..9b8d8735b079 100644
--- a/nixpkgs/pkgs/tools/security/fierce/default.nix
+++ b/nixpkgs/pkgs/tools/security/fierce/default.nix
@@ -1,31 +1,40 @@
-{ lib, fetchFromGitHub, python3 }:
+{ lib
+, fetchFromGitHub
+, python3
+}:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "fierce";
-  version = "1.4.0";
+  version = "1.5.0";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "mschwager";
     repo = pname;
     rev = version;
-    sha256 = "11yaz8ap9swx95j3wpqh0b6jhw6spqgfnsyn1liw9zqi4jwgiax7";
+    sha256 = "sha256-9VTPD5i203BTl2nADjq131W9elgnaHNIWGIUuCiYlHg=";
   };
 
+  propagatedBuildInputs = with python3.pkgs; [
+    dnspython
+  ];
+
   postPatch = ''
-    substituteInPlace requirements.txt --replace 'dnspython==1.16.0' 'dnspython'
+    substituteInPlace requirements.txt \
+      --replace 'dnspython==1.16.0' 'dnspython'
   '';
 
-  propagatedBuildInputs = [ python3.pkgs.dnspython ];
-
   # tests require network access
   doCheck = false;
-  pythonImportsCheck = [ "fierce" ];
+
+  pythonImportsCheck = [
+    "fierce"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/mschwager/fierce";
     description = "DNS reconnaissance tool for locating non-contiguous IP space";
+    homepage = "https://github.com/mschwager/fierce";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ c0bw3b ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/fprintd/tod.nix b/nixpkgs/pkgs/tools/security/fprintd/tod.nix
new file mode 100644
index 000000000000..4900124f8d19
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/fprintd/tod.nix
@@ -0,0 +1,21 @@
+{ fetchFromGitLab
+, fprintd
+, libfprint-tod
+}:
+
+(fprintd.override { libfprint = libfprint-tod; }).overrideAttrs (oldAttrs:
+  let
+    pname = "fprintd-tod";
+    version = "1.90.9";
+  in
+  {
+    inherit pname version;
+
+    src = fetchFromGitLab {
+      domain = "gitlab.freedesktop.org";
+      owner = "libfprint";
+      repo = "${oldAttrs.pname}";
+      rev = "v${version}";
+      sha256 = "sha256-rOTVThHOY/Q2IIu2RGiv26UE2V/JFfWWnfKZQfKl5Mg=";
+    };
+  })
diff --git a/nixpkgs/pkgs/tools/security/fprot/default.nix b/nixpkgs/pkgs/tools/security/fprot/default.nix
index 22779327a9bf..6b930adcc26b 100644
--- a/nixpkgs/pkgs/tools/security/fprot/default.nix
+++ b/nixpkgs/pkgs/tools/security/fprot/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation {
     homepage = "http://www.f-prot.com";
     description = "A popular proprietary antivirus program";
     license = licenses.unfree;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/gau/default.nix b/nixpkgs/pkgs/tools/security/gau/default.nix
index fec4e4e013b5..95d5f228c803 100644
--- a/nixpkgs/pkgs/tools/security/gau/default.nix
+++ b/nixpkgs/pkgs/tools/security/gau/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "gau";
-  version = "1.2.0";
+  version = "2.0.6";
 
   src = fetchFromGitHub {
     owner = "lc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-hUIUDDP9NtMmJXj5GCD/ISUUcx5prKCVVFztff9txoU=";
+    sha256 = "sha256-d9Cfd2KD+ymGnzOjlVQkSm3XBamoJIUKQLnRZzSDBtk=";
   };
 
-  vendorSha256 = "sha256-WMoFbqtBMcjTWX51mEMzpgDEAndCElldNqjG27yXd2w=";
+  vendorSha256 = "sha256-u5ketxHPwZN2mV0uTgwJbY+ImusGZ9GTTmFAGvdH5yA=";
 
   meta = with lib; {
     description = "Tool to fetch known URLs";
diff --git a/nixpkgs/pkgs/tools/security/genpass/default.nix b/nixpkgs/pkgs/tools/security/genpass/default.nix
index e726da340316..9565bf80c950 100644
--- a/nixpkgs/pkgs/tools/security/genpass/default.nix
+++ b/nixpkgs/pkgs/tools/security/genpass/default.nix
@@ -7,15 +7,15 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "genpass";
-  version = "0.4.12";
+  version = "0.5.1";
 
   src = fetchgit {
     url = "https://git.sr.ht/~cyplo/genpass";
     rev = "v${version}";
-    sha256 = "154kprbqc59f06ciz60il4ax299zapwa0hz8vjn25rl4gr5gzn4l";
+    sha256 = "UyEgOlKtDyneRteN3jHA2BJlu5U1HFL8HA2MTQz5rns=";
   };
 
-  cargoSha256 = "1b9jqkg11d0ih46km063inqqjwfy1nrwb2xb3dagg3hi8hahpqpb";
+  cargoSha256 = "ls3tzZ+gtZQlObmbtwJDq6N/f5nY+Ps7RL5R/fR5Vgg=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreFoundation libiconv Security ];
 
diff --git a/nixpkgs/pkgs/tools/security/ghdorker/default.nix b/nixpkgs/pkgs/tools/security/ghdorker/default.nix
new file mode 100644
index 000000000000..c6882fb110a8
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/ghdorker/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "ghdorker";
+  version = "0.3.2";
+  format = "setuptools";
+
+  src = python3.pkgs.fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-wF4QoXxH55SpdYgKLHf4sCwUk1rkCpSdnIX5FvFi/BU=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    ghapi
+    glom
+    python-dotenv
+    pyyaml
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "GHDorker"
+  ];
+
+  meta = with lib; {
+    description = "Extensible GitHub dorking tool";
+    homepage = "https://github.com/dtaivpp/ghdorker";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/ghidra/default.nix b/nixpkgs/pkgs/tools/security/ghidra/default.nix
index 3b3f5ed44e70..e57f60637e25 100644
--- a/nixpkgs/pkgs/tools/security/ghidra/default.nix
+++ b/nixpkgs/pkgs/tools/security/ghidra/default.nix
@@ -24,12 +24,12 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "ghidra";
-  version = "10.0";
-  versiondate = "20210621";
+  version = "10.1.1";
+  versiondate = "20211221";
 
   src = fetchzip {
     url = "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_${version}_build/ghidra_${version}_PUBLIC_${versiondate}.zip";
-    sha256 = "0m1ksng2fkmcg7m22lqil10qn95s06gxnxdz7ih9qpbx67pmmq9x";
+    sha256 = "1aib24hjfavy31vq0pasbzix9lpqrb90m3hp4n0iakg6ck8jcl5r";
   };
 
   nativeBuildInputs = [
@@ -70,7 +70,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission";
-    homepage = "https://ghidra-sre.org/";
+    homepage = "https://github.com/NationalSecurityAgency/ghidra";
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     license = licenses.asl20;
     maintainers = with maintainers; [ ck3d govanify mic92 ];
diff --git a/nixpkgs/pkgs/tools/security/gitleaks/default.nix b/nixpkgs/pkgs/tools/security/gitleaks/default.nix
index 16e1013c7c01..e37accbe7c35 100644
--- a/nixpkgs/pkgs/tools/security/gitleaks/default.nix
+++ b/nixpkgs/pkgs/tools/security/gitleaks/default.nix
@@ -5,26 +5,31 @@
 
 buildGoModule rec {
   pname = "gitleaks";
-  version = "7.6.1";
+  version = "8.2.5";
 
   src = fetchFromGitHub {
     owner = "zricethezav";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-52Wi3bQvKdHoJ1nVb4OVJ9wd8hDVF+6zlVSpsEai0Jw=";
+    sha256 = "sha256-lHKdIQyGbQt6PmMaTRIUx1q/81Q4KOfQ8zLnpt9aGbk=";
   };
 
-  vendorSha256 = "sha256-86PspExE+T/IuCvpf6LAkWcCRlHPqP5VUbHAckEzALc=";
+  vendorSha256 = "sha256-cIwte59AdVOWMBUWE4gKZSHhU37HgEW4k0v+jUUyj1Q=";
 
   ldflags = [
-    "-s" "-w" "-X github.com/zricethezav/gitleaks/v${lib.versions.major version}/version.Version=${version}"
+    "-s"
+    "-w"
+    "-X github.com/zricethezav/gitleaks/v${lib.versions.major version}/version.Version=${version}"
   ];
 
+  # With v8 the config tests are are blocking
+  doCheck = false;
+
   meta = with lib; {
     description = "Scan git repos (or files) for secrets";
     longDescription = ''
       Gitleaks is a SAST tool for detecting hardcoded secrets like passwords,
-      API keys, and tokens in git repos.
+      API keys and tokens in git repos.
     '';
     homepage = "https://github.com/zricethezav/gitleaks";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/tools/security/gnupg/1.nix b/nixpkgs/pkgs/tools/security/gnupg/1.nix
index 66b05384c6be..8fc5dce7ba04 100644
--- a/nixpkgs/pkgs/tools/security/gnupg/1.nix
+++ b/nixpkgs/pkgs/tools/security/gnupg/1.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, readline, bzip2 }:
 
 stdenv.mkDerivation rec {
-  name = "gnupg-1.4.23";
+  pname = "gnupg";
+  version = "1.4.23";
 
   src = fetchurl {
-    url = "mirror://gnupg/gnupg/${name}.tar.bz2";
+    url = "mirror://gnupg/gnupg/gnupg-${version}.tar.bz2";
     sha256 = "1fkq4sqldvf6a25mm2qz95swv1qjg464736091w51djiwqbjyin9";
   };
 
diff --git a/nixpkgs/pkgs/tools/security/gnupg/1compat.nix b/nixpkgs/pkgs/tools/security/gnupg/1compat.nix
index 371a7ca67afd..6625a4567954 100644
--- a/nixpkgs/pkgs/tools/security/gnupg/1compat.nix
+++ b/nixpkgs/pkgs/tools/security/gnupg/1compat.nix
@@ -1,7 +1,8 @@
 { stdenv, gnupg, coreutils, writeScript }:
 
 stdenv.mkDerivation {
-  name = "gnupg1compat-${gnupg.version}";
+  pname = "gnupg1compat";
+  version = gnupg.version;
 
   builder = writeScript "gnupg1compat-builder" ''
     PATH=${coreutils}/bin
diff --git a/nixpkgs/pkgs/tools/security/gomapenum/default.nix b/nixpkgs/pkgs/tools/security/gomapenum/default.nix
new file mode 100644
index 000000000000..f77b513c42da
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/gomapenum/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "gomapenum";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "nodauf";
+    repo = "GoMapEnum";
+    rev = "v${version}";
+    sha256 = "sha256-6WZTmRse3mj1bimHE81JdSc4VKpMFbcJN3U4zgHMzJc=";
+  };
+
+  vendorSha256 = "sha256-Z/uLZIPKd75P9nI7kTFOwzWFkRTVwUojYEQms4OJ6Bk=";
+
+  postInstall = ''
+    mv $out/bin/src $out/bin/$pname
+  '';
+
+  meta = with lib; {
+    description = "Tools for user enumeration and password bruteforce";
+    homepage = "https://github.com/nodauf/GoMapEnum";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/gopass/default.nix b/nixpkgs/pkgs/tools/security/gopass/default.nix
index 6a099299e905..3555f65c40d0 100644
--- a/nixpkgs/pkgs/tools/security/gopass/default.nix
+++ b/nixpkgs/pkgs/tools/security/gopass/default.nix
@@ -13,7 +13,7 @@
 
 buildGoModule rec {
   pname = "gopass";
-  version = "1.12.8";
+  version = "1.13.0";
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
 
@@ -21,10 +21,10 @@ buildGoModule rec {
     owner = "gopasspw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0f3nnhipx2p8w04rxva0pcf7g1nhr4f5bz5dbvr2m76lkiaz5q3v";
+    sha256 = "sha256-MBpk84H3Ng/+rCjW2Scm/su0/5kgs7IzvFk/bFLNzXY=";
   };
 
-  vendorSha256 = "14khs15k9d5m5dms3l4a5bi0s3zl1irm0i4s9pf86gpyz7b55l6a";
+  vendorSha256 = "sha256-HGc6jUp4WO5P5dwfa0r7+X78a8us9fWrf+/IOotZHqk=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/tools/security/gosh/default.nix b/nixpkgs/pkgs/tools/security/gosh/default.nix
index 5c5ad25e6d9e..7d5cd7a15251 100644
--- a/nixpkgs/pkgs/tools/security/gosh/default.nix
+++ b/nixpkgs/pkgs/tools/security/gosh/default.nix
@@ -16,9 +16,7 @@ buildGoModule rec {
     sha256 = "143ig0lqnkpnydhl8gnfzhg613x4wc38ibdbikkqwfyijlr6sgzd";
   };
 
-  vendorSha256 = "06j6cj4m0w6n9vl7sxlxpsgk77k941npq9767rdzzgy2srfqlskq";
-
-  runVend = true;
+  vendorSha256 = "sha256-ITz6nkhttG6bsIZLsp03rcbEBHUQ7pFl4H6FOHTXIU4=";
 
   subPackages = [ "." ];
 
@@ -26,6 +24,6 @@ buildGoModule rec {
     description = "Reverse/bind shell generator";
     homepage = "https://github.com/redcode-labs/GoSH";
     license = licenses.mit;
-    maintainers = with maintainers; [ fab ];
+    maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/gospider/default.nix b/nixpkgs/pkgs/tools/security/gospider/default.nix
index f4b750d394a0..469be63a9024 100644
--- a/nixpkgs/pkgs/tools/security/gospider/default.nix
+++ b/nixpkgs/pkgs/tools/security/gospider/default.nix
@@ -1,20 +1,20 @@
-{ buildGoModule
+{ lib
+, buildGoModule
 , fetchFromGitHub
-, lib
 }:
 
 buildGoModule rec {
   pname = "gospider";
-  version = "1.1.5";
+  version = "1.1.6";
 
   src = fetchFromGitHub {
     owner = "jaeles-project";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-yfW94sQzT1u6O0s1sqpeANlukC5y8fNvHNL2c77+dxU=";
+    rev = "v${version}";
+    sha256 = "sha256-1EnKheHaS1kxw0cjxCahT3rUWBXiqxjKefrDBI2xIvY=";
   };
 
-  vendorSha256 = "sha256-1aOw0lk+khcX9IETA0+wGx91BFXrJ79zYWhEI2JrhDU=";
+  vendorSha256 = "sha256-egjjSEZH8F6UMbnkz3xytIzdW/oITB3RL1ddxrmvSZM=";
 
   # tests require internet access and API keys
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/security/gpg-tui/default.nix b/nixpkgs/pkgs/tools/security/gpg-tui/default.nix
index 666056774c41..636358f6ea63 100644
--- a/nixpkgs/pkgs/tools/security/gpg-tui/default.nix
+++ b/nixpkgs/pkgs/tools/security/gpg-tui/default.nix
@@ -16,16 +16,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gpg-tui";
-  version = "0.8.0";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "gpg-tui";
     rev = "v${version}";
-    sha256 = "sha256-UUfZd6wTBoOyBdkidzxa3Fyc3GjeGdCT0n7jKmhdNa0=";
+    hash = "sha256-jddkws4TXuW0AdLBEpS5RPk1a/mEkwYWMbYiLjt22LU=";
   };
 
-  cargoSha256 = "sha256-yX/g/An06nx95IaxjfYVUofvDDS2ZjiNAZf3ivi6ZF0=";
+  cargoHash = "sha256-bj77fMmpXeOqb1MzOPsEPQUh5AnZxBrapzt864V+IUU=";
 
   nativeBuildInputs = [
     gpgme # for gpgme-config
diff --git a/nixpkgs/pkgs/tools/security/grype/default.nix b/nixpkgs/pkgs/tools/security/grype/default.nix
index b4be43311f83..9d327f37af6a 100644
--- a/nixpkgs/pkgs/tools/security/grype/default.nix
+++ b/nixpkgs/pkgs/tools/security/grype/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "grype";
-  version = "0.22.0";
+  version = "0.28.0";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5TOfy7eapkvXwVC4TcSo3mWSAkLqBeVco7SG2H21lRo=";
+    sha256 = "sha256-Mc0bO9BDcIXEoHwhQDbX9g84kagcT3gVz8PPxXpG7dw=";
   };
 
-  vendorSha256 = "sha256-pgasbJdyTBIYIeaidKYFLy0LqmCTKE7IUkFqddJtcR0=";
+  vendorSha256 = "sha256-su0dg9Gidd8tQKM5IzX6/GC5jk8SCIO+qsI3UGlvpwg=";
 
   propagatedBuildInputs = [ docker ];
 
diff --git a/nixpkgs/pkgs/tools/security/hash-slinger/default.nix b/nixpkgs/pkgs/tools/security/hash-slinger/default.nix
index ee06c112481b..e51d93e9d7fa 100644
--- a/nixpkgs/pkgs/tools/security/hash-slinger/default.nix
+++ b/nixpkgs/pkgs/tools/security/hash-slinger/default.nix
@@ -1,45 +1,63 @@
-{ lib, stdenv, fetchFromGitHub, python2Packages, unbound, libreswan }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, python3
+, unbound
+, libreswan
+}:
 
-let
-  pythonPackages = python2Packages;
-in stdenv.mkDerivation rec {
-  pname    = "hash-slinger";
-  version = "2.7";
+stdenv.mkDerivation rec {
+  pname = "hash-slinger";
+  version = "3.1";
 
   src = fetchFromGitHub {
     owner = "letoams";
     repo = pname;
     rev = version;
-    sha256 = "05wn744ydclpnpyah6yfjqlfjlasrrhzj48lqmm5a91nyps5yqyn";
+    sha256 = "sha256-mhMUdZt846QjwRIh2m/4EE+93fUcCKc2FFeoFpzKYvk=";
   };
 
-  pythonPath = with pythonPackages; [ dnspython m2crypto ipaddr python-gnupg
-                                      pyunbound ];
+  pythonPath = with python3.pkgs; [
+    dnspython
+    m2crypto
+    python-gnupg
+    pyunbound
+  ];
 
-  buildInputs = [ pythonPackages.wrapPython ];
-  propagatedBuildInputs = [ unbound libreswan ] ++ pythonPath;
-  propagatedUserEnvPkgs = [ unbound libreswan ];
+  buildInputs = [
+    python3.pkgs.wrapPython
+  ];
 
-  patchPhase = ''
+  propagatedBuildInputs = [
+    unbound
+    libreswan
+  ] ++ pythonPath;
+
+  propagatedUserEnvPkgs = [
+    unbound
+    libreswan
+  ];
+
+  postPatch = ''
     substituteInPlace Makefile \
       --replace "$(DESTDIR)/usr" "$out"
     substituteInPlace ipseckey \
       --replace "/usr/sbin/ipsec" "${libreswan}/sbin/ipsec"
     substituteInPlace tlsa \
-      --replace "/var/lib/unbound/root" "${pythonPackages.pyunbound}/etc/pyunbound/root"
+      --replace "/var/lib/unbound/root" "${python3.pkgs.pyunbound}/etc/pyunbound/root"
     patchShebangs *
-    '';
+  '';
 
   installPhase = ''
-    mkdir -p $out/bin $out/man $out/${pythonPackages.python.sitePackages}/
+    mkdir -p $out/bin $out/man $out/lib/${python3.libPrefix}/site-packages
     make install
     wrapPythonPrograms
-   '';
+  '';
 
-   meta = {
+  meta = with lib; {
     description = "Various tools to generate special DNS records";
-    homepage    = "https://github.com/letoams/hash-slinger";
-    license     = lib.licenses.gpl2Plus;
-    maintainers = [ lib.maintainers.leenaars ];
+    homepage = "https://github.com/letoams/hash-slinger";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ leenaars ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/hashcat/default.nix b/nixpkgs/pkgs/tools/security/hashcat/default.nix
index c45724e80e0a..ed06ee992e4a 100644
--- a/nixpkgs/pkgs/tools/security/hashcat/default.nix
+++ b/nixpkgs/pkgs/tools/security/hashcat/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname   = "hashcat";
-  version = "6.2.4";
+  version = "6.2.5";
 
   src = fetchurl {
     url = "https://hashcat.net/files/hashcat-${version}.tar.gz";
-    sha256 = "sha256-kCA5b/kzaT4xC0ebZB6G8Xg9mBnWDR2Qd1KtjSSmDDE=";
+    sha256 = "sha256-b2iZ162Jlln3tDpNaAmFQ6tUbSFx+OUdaR0Iplk3iWk=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/security/hcxtools/default.nix b/nixpkgs/pkgs/tools/security/hcxtools/default.nix
index 2a08ce6a1c8f..15abe8449eb0 100644
--- a/nixpkgs/pkgs/tools/security/hcxtools/default.nix
+++ b/nixpkgs/pkgs/tools/security/hcxtools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hcxtools";
-  version = "6.2.4";
+  version = "6.2.5";
 
   src = fetchFromGitHub {
     owner = "ZerBea";
     repo = pname;
     rev = version;
-    sha256 = "sha256-C6nAZkkdtBSv4WDxoXPsHzcGglB8PEX3ioFaTydiHsU=";
+    sha256 = "sha256-f8QNP4ApBdgZooeWOs4Om2LtIFoiBbe1ZfCzokyzs0I=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/tools/security/httpx/default.nix b/nixpkgs/pkgs/tools/security/httpx/default.nix
index 07becc2c3488..3e9164befc96 100644
--- a/nixpkgs/pkgs/tools/security/httpx/default.nix
+++ b/nixpkgs/pkgs/tools/security/httpx/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "httpx";
-  version = "1.1.3";
+  version = "1.1.4";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "httpx";
     rev = "v${version}";
-    sha256 = "sha256-sB/z7Z35SQt2D6YHgSJjXS/O9qbkqVrcl/OB+YhGhwQ=";
+    sha256 = "sha256-Mis3DQwcTazHVF7hkTRQ2OtQxeGut5LRUAloBXCdq3s=";
   };
 
-  vendorSha256 = "sha256-/GC81ukWpC7h86noPv6zayS9fxWhJpWGXPM8u56F5c4=";
+  vendorSha256 = "sha256-53Mvc637J306MJLw+l1amAuZhUE/NdDvuWEe0fg4Hog=";
 
   meta = with lib; {
     description = "Fast and multi-purpose HTTP toolkit";
diff --git a/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix b/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix
index d556566a7d54..c5b738678aa2 100644
--- a/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix
+++ b/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lib, openssl }:
+{ stdenv, fetchurl, fetchpatch, lib, openssl }:
 
 stdenv.mkDerivation rec {
   pname = "ibm-sw-tpm2";
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-VRRZKK0rJPNL5qDqz5+0kuEODqkZuEKMch+pcOhdYUc=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/kgoldman/ibmswtpm2/commit/e6684009aff9c1bad38875e3319c2e02ef791424.patch";
+      sha256 = "1flzlri807c88agmpb0w8xvh5f16mmqv86xw4ic4z272iynzd40j";
+    })
+  ];
+
+  patchFlags = [ "-p2" ];
+
   buildInputs = [ openssl ];
 
   sourceRoot = "src";
diff --git a/nixpkgs/pkgs/tools/security/inql/default.nix b/nixpkgs/pkgs/tools/security/inql/default.nix
new file mode 100644
index 000000000000..28abbe075bf4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/inql/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "inql";
+  version = "4.0.5";
+
+  src = fetchFromGitHub {
+    owner = "doyensec";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-0LPJMCg7F9kcPcq4jkADdCPNLfRThXu8QHy4qOn7+QU=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    stickytape
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "inql"
+  ];
+
+  meta = with lib; {
+    description = "Security testing tool for GraphQL";
+    homepage = "https://github.com/doyensec/inql";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/ioccheck/default.nix b/nixpkgs/pkgs/tools/security/ioccheck/default.nix
index 1ad7bfd85fe2..e936ab025fad 100644
--- a/nixpkgs/pkgs/tools/security/ioccheck/default.nix
+++ b/nixpkgs/pkgs/tools/security/ioccheck/default.nix
@@ -3,13 +3,33 @@
 , python3
 }:
 
-python3.pkgs.buildPythonApplication rec {
+let
+  py = python3.override {
+    packageOverrides = self: super: {
+
+      # Support for later tweepy releases is missing
+      # https://github.com/ranguli/ioccheck/issues/70
+      tweepy = super.tweepy.overridePythonAttrs (oldAttrs: rec {
+        version = "3.10.0";
+
+        src = fetchFromGitHub {
+          owner = "tweepy";
+          repo = "tweepy";
+          rev = "v${version}";
+          sha256 = "0k4bdlwjna6f1k19jki4xqgckrinkkw8b9wihzymr1l04rwd05nw";
+        };
+        doCheck = false;
+      });
+    };
+  };
+in
+with py.pkgs;
+
+buildPythonApplication rec {
   pname = "ioccheck";
   version = "unstable-2021-09-29";
   format = "pyproject";
 
-  disabled = python3.pythonOlder "3.7";
-
   src = fetchFromGitHub {
     owner = "ranguli";
     repo = pname;
@@ -17,11 +37,11 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "0lgqypcd5lzb2yqd5lr02pba24m26ghly4immxgz13svi8f6vzm9";
   };
 
-  nativeBuildInputs = with python3.pkgs; [
+  nativeBuildInputs = with py.pkgs; [
     poetry-core
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = with py.pkgs; [
     backoff
     click
     emoji
@@ -36,17 +56,20 @@ python3.pkgs.buildPythonApplication rec {
     vt-py
   ];
 
-  checkInputs = with python3.pkgs; [
+  checkInputs = with py.pkgs; [
     pytestCheckHook
   ];
 
   postPatch = ''
     # Can be removed with the next release
     substituteInPlace pyproject.toml \
-      --replace '"hurry.filesize" = "^0.9"' ""
+      --replace '"hurry.filesize" = "^0.9"' "" \
+      --replace 'vt-py = ">=0.6.1,<0.8.0"' 'vt-py = ">=0.6.1"'
   '';
 
-  pythonImportsCheck = [ "ioccheck" ];
+  pythonImportsCheck = [
+    "ioccheck"
+  ];
 
   meta = with lib; {
     description = "Tool for researching IOCs";
diff --git a/nixpkgs/pkgs/tools/security/jadx/default.nix b/nixpkgs/pkgs/tools/security/jadx/default.nix
index 02533f7f6f5f..ec94b0e73d4f 100644
--- a/nixpkgs/pkgs/tools/security/jadx/default.nix
+++ b/nixpkgs/pkgs/tools/security/jadx/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "jadx";
-  version = "1.2.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "skylot";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1w1wc81mkjcsgjbrihbsphxkcmwnfnf555pmlsd2vs2a04nki01y";
+    hash = "sha256-6I8pK1DZkjAf6XljREMasoZQGR9YGDxn6+sdQ/nf31A=";
   };
 
   deps = stdenv.mkDerivation {
@@ -21,6 +21,14 @@ let
       export GRADLE_USER_HOME=$(mktemp -d)
       export JADX_VERSION=${version}
       gradle --no-daemon jar
+
+      # Apparently, Gradle won't cache the `compileOnlyApi` dependency
+      # `org.jetbrains:annotations:22.0.0` which is defined in
+      # `io.github.skylot:raung-common`. To make it available in the
+      # output, we patch `build.gradle` and run Gradle again.
+      substituteInPlace build.gradle \
+        --replace 'org.jetbrains:annotations:23.0.0' 'org.jetbrains:annotations:22.0.0'
+      gradle --no-daemon jar
     '';
 
     # Mavenize dependency paths
@@ -31,9 +39,8 @@ let
         | sh
     '';
 
-    outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "05fsycpd90dbak2vgdpd9cz08liq5j78ag9ry9y1s62ld776g0hz";
+    outputHash = "sha256-i+vK085P1T182wW4PajpDyZgyupKHlrx1yJgzJdHETU=";
   };
 in stdenv.mkDerivation {
   inherit pname version src;
diff --git a/nixpkgs/pkgs/tools/security/jwt-cli/default.nix b/nixpkgs/pkgs/tools/security/jwt-cli/default.nix
index e1cd9ec359f1..bf9a93f162b9 100644
--- a/nixpkgs/pkgs/tools/security/jwt-cli/default.nix
+++ b/nixpkgs/pkgs/tools/security/jwt-cli/default.nix
@@ -2,21 +2,25 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jwt-cli";
-  version = "4.0.0";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "mike-engel";
     repo = pname;
     rev = version;
-    sha256 = "sha256-82Le0kdt/fnSQwsRRYHy4Jv9rsCPGf5dIWmoZE2cPxY=";
+    sha256 = "0za4mpzry6i5gki524kp4by0n74pbc96cvzrkq286v8w033wj01i";
   };
 
-  cargoSha256 = "sha256-sCauVxc6JPJ4dBi5LOt+v9bdlRW+oF4cd/sfG5Xdv70=";
+  cargoSha256 = "1l5fhr5c2ygdlnpwsx62fm8di8li0wf15nvvcnnivjcic7f9b5j0";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
   doInstallCheck = true;
-  installCheckPhase = "$out/bin/jwt --version";
+  installCheckPhase = ''
+    $out/bin/jwt --version > /dev/null
+    $out/bin/jwt decode eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c \
+      | grep -q 'John Doe'
+  '';
 
   meta = with lib; {
     description = "Super fast CLI tool to decode and encode JWTs";
diff --git a/nixpkgs/pkgs/tools/security/kbs2/default.nix b/nixpkgs/pkgs/tools/security/kbs2/default.nix
index 54c9bfa1f4b1..5cccc1dd5f52 100644
--- a/nixpkgs/pkgs/tools/security/kbs2/default.nix
+++ b/nixpkgs/pkgs/tools/security/kbs2/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kbs2";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "woodruffw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Mh56VjFHwjiZ0fvOF3fFw+1IU5HwkRdMlFrt3tZjcZY=";
+    sha256 = "1bipphrzfz4dfzaqn1q60qazs7ylcx0b34gyl4q6d6jivsrhi8a4";
   };
 
-  cargoSha256 = "sha256-hjUDLA5vNCCIEFQsAhv3hDur1LIGQKYO2rR6AoEb+wA=";
+  cargoSha256 = "0r254k85hqf2v8kdhwld8k7b350qjvkwfw2v22ikk2b41b2g4gbw";
 
   nativeBuildInputs = [ installShellFiles ]
     ++ lib.optionals stdenv.isLinux [ python3 ];
diff --git a/nixpkgs/pkgs/tools/security/keybase/default.nix b/nixpkgs/pkgs/tools/security/keybase/default.nix
index 8b65d3b8b00d..058ed8d1487a 100644
--- a/nixpkgs/pkgs/tools/security/keybase/default.nix
+++ b/nixpkgs/pkgs/tools/security/keybase/default.nix
@@ -6,7 +6,7 @@
 
 buildGoPackage rec {
   pname = "keybase";
-  version = "5.7.1";
+  version = "5.8.1";
 
   goPackagePath = "github.com/keybase/client";
   subPackages = [ "go/kbnm" "go/keybase" ];
@@ -17,7 +17,7 @@ buildGoPackage rec {
     owner = "keybase";
     repo = "client";
     rev = "v${version}";
-    sha256 = "sha256-72rVk8pYIQFESQqBu4bmFBPpAOB0oG2Iu36TbAdecBw=";
+    sha256 = "sha256-SeBZtrRsWTv5yBBsp18daKCNAr70OalH3shlKf+aiEU=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/security/keybase/gui.nix b/nixpkgs/pkgs/tools/security/keybase/gui.nix
index 7a19a439a8eb..8912961e3520 100644
--- a/nixpkgs/pkgs/tools/security/keybase/gui.nix
+++ b/nixpkgs/pkgs/tools/security/keybase/gui.nix
@@ -4,17 +4,16 @@
 , runtimeShell, gsettings-desktop-schemas }:
 
 let
-  versionSuffix = "20210623205749.763227b4c6";
+  versionSuffix = "20210930160723.fefa22edc1";
 in
 
 stdenv.mkDerivation rec {
   pname = "keybase-gui";
-  version = "5.7.1"; # Find latest version from https://prerelease.keybase.io/deb/dists/stable/main/binary-amd64/Packages
+  version = "5.8.1"; # Find latest version from https://prerelease.keybase.io/deb/dists/stable/main/binary-amd64/Packages
 
   src = fetchurl {
-
     url = "https://s3.amazonaws.com/prerelease.keybase.io/linux_binaries/deb/keybase_${version + "-" + versionSuffix}_amd64.deb";
-    sha256 = "0ajpkidbzfwhi7q018wriws0n3amcy9g3mfiqm13cpz0q6vkjx83";
+    sha256 = "cqbGvnJ6wx5boVe78Ju8CimH1H08DfkM5nmwbV0uKG0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/security/keyscope/default.nix b/nixpkgs/pkgs/tools/security/keyscope/default.nix
new file mode 100644
index 000000000000..dad09970b911
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/keyscope/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+, stdenv
+, DiskArbitration
+, Foundation
+, IOKit
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "keyscope";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "spectralops";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-4ZKIukxeadzGpq2lwxbyyIKqWgbZpdHPRAT+LsyWjzk=";
+  };
+
+  cargoSha256 = "sha256-aq7xUma8QDRnu74R7JSuZjrXCco7L9JrNmAZiGtTyts=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
+    DiskArbitration
+    Foundation
+    IOKit
+    Security
+  ];
+
+  # build script tries to get information from git
+  postPatch = ''
+    echo "fn main() {}" > build.rs
+  '';
+
+  VERGEN_GIT_SEMVER = "v${version}";
+
+  meta = with lib; {
+    description = "A key and secret workflow (validation, invalidation, etc.) tool";
+    homepage = "https://github.com/spectralops/keyscope";
+    changelog = "https://github.com/spectralops/keyscope/blob/v${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/keysmith/default.nix b/nixpkgs/pkgs/tools/security/keysmith/default.nix
deleted file mode 100644
index 142e9c1e4a04..000000000000
--- a/nixpkgs/pkgs/tools/security/keysmith/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib
-, mkDerivation
-, makeWrapper
-, fetchFromGitHub
-, cmake
-, extra-cmake-modules
-, qtbase
-, qtquickcontrols2
-, qtdeclarative
-, qtgraphicaleffects
-, kirigami2
-, oathToolkit
-, ki18n
-, libsodium
-}:
-mkDerivation rec {
-
-  pname = "keysmith";
-  version = "0.2";
-
-  src = fetchFromGitHub {
-    owner = "KDE";
-    repo = "keysmith";
-    rev = "v${version}";
-    sha256 = "1gvzw23mly8cp7ag3xpbngpid9gqrfj8cyv9dar6i9j660bh03km";
-  };
-
-  nativeBuildInputs = [ cmake extra-cmake-modules makeWrapper ];
-
-  buildInputs = [ libsodium ki18n oathToolkit kirigami2 qtquickcontrols2 qtbase ];
-  propagatedBuildInput = [ oathToolkit ];
-
-  meta = with lib; {
-    description = "OTP client for Plasma Mobile and Desktop";
-    license = licenses.gpl3;
-    homepage = "https://github.com/KDE/keysmith";
-    maintainers = with maintainers; [ shamilton ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/security/knockknock/default.nix b/nixpkgs/pkgs/tools/security/knockknock/default.nix
deleted file mode 100644
index 960667e72def..000000000000
--- a/nixpkgs/pkgs/tools/security/knockknock/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib, fetchFromGitHub, python2Packages, hping }:
-let
-  rev  = "bf14bbff";
-in python2Packages.buildPythonApplication rec {
-  pname = "knockknock-r";
-  version = rev;
-
-  src = fetchFromGitHub {
-    inherit rev;
-    owner  = "moxie0";
-    repo   = "knockknock";
-    sha256 = "1chpfs3w2vkjrgay69pbdr116z1jldv53fi768a1i05fdqhy1px4";
-  };
-
-  propagatedBuildInputs = [ python2Packages.pycrypto ];
-
-  # No tests
-  doCheck = false;
-
-  patchPhase = ''
-    sed -i '/build\//d' setup.py
-    substituteInPlace setup.py --replace "/etc" "$out/etc"
-    substituteInPlace knockknock.py --replace 'existsInPath("hping3")' '"${hping}/bin/hping3"'
-  '';
-
-  meta = with lib; {
-    description = "Simple, secure port knocking daemon and client written in Python";
-    homepage    = "http://www.thoughtcrime.org/software/knockknock/";
-    license     = licenses.gpl3;
-    maintainers = with maintainers; [ copumpkin ];
-    platforms   = platforms.linux;
-  };
-}
-
diff --git a/nixpkgs/pkgs/tools/security/kube-hunter/default.nix b/nixpkgs/pkgs/tools/security/kube-hunter/default.nix
new file mode 100644
index 000000000000..6f15bde0104e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/kube-hunter/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "kube-hunter";
+  version = "0.6.3";
+
+  src = fetchFromGitHub {
+    owner = "aquasecurity";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-OXiFWdbp6L9S57gRIROzuvXZ0R16lvKDqZR0kW0eEYQ=";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    netaddr
+    netifaces
+    scapy
+    requests
+    prettytable
+    urllib3
+    ruamel-yaml
+    future
+    packaging
+    pluggy
+    kubernetes
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+    requests-mock
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "dataclasses" "" \
+      --replace "kubernetes==12.0.1" "kubernetes" \
+      --replace "--cov=kube_hunter" ""
+  '';
+
+  pythonImportsCheck = [
+    "kube_hunter"
+  ];
+
+  meta = with lib; {
+    description = "Tool to search issues in Kubernetes clusters";
+    homepage = "https://github.com/aquasecurity/kube-hunter";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/kubeaudit/default.nix b/nixpkgs/pkgs/tools/security/kubeaudit/default.nix
new file mode 100644
index 000000000000..76cf9f65c36c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/kubeaudit/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "kubeaudit";
+  version = "0.16.0";
+
+  src = fetchFromGitHub {
+    owner = "Shopify";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-AIvH9HF0Ha1b+NZiJmiT6beYuKnCqJMXKzDFUzV9J4c=";
+  };
+
+  vendorSha256 = "sha256-XrEzkhQU/KPElQNgCX6yWDMQXZSd3lRXmUDJpsj5ACY=";
+
+  postInstall = ''
+    mv $out/bin/cmd $out/bin/$pname
+  '';
+
+  # Tests require a running Kubernetes instance
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Audit tool for Kubernetes";
+    homepage = "https://github.com/Shopify/kubeaudit";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/kubescape/default.nix b/nixpkgs/pkgs/tools/security/kubescape/default.nix
index 612e14b52498..0a13b54d2bfa 100644
--- a/nixpkgs/pkgs/tools/security/kubescape/default.nix
+++ b/nixpkgs/pkgs/tools/security/kubescape/default.nix
@@ -1,28 +1,58 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
+, installShellFiles
 }:
 
 buildGoModule rec {
   pname = "kubescape";
-  version = "1.0.123";
+  version = "1.0.136";
 
   src = fetchFromGitHub {
     owner = "armosec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-mrpQXIcV1KxOLDhWAS9Og76k18jsey7vPAcbhGe+cN4=";
+    sha256 = "sha256-g7gM+fZIDb6YK3QDiBqiQaTEyFtIQ30mTe6AAR3S3iw=";
   };
 
-  vendorSha256 = "sha256-4v/7JrSGZKOyLwU6U3+hc9P+kzxGGj4aXG/wXmNdo+M=";
+  nativeBuildInputs = [
+    installShellFiles
+  ];
 
-  # One test is failing, disabling for now
-  doCheck = false;
+  vendorSha256 = "sha256-hEj69RsYj+KxfZPri2j+vFxUU2S8wuK85EYGND5wtWg=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/armosec/kubescape/clihandler/cmd.BuildNumber=v${version}"
+  ];
+
+  postInstall = ''
+    # Running kubescape to generate completions outputs error warnings
+    # but does not crash and completes successfully
+    # https://github.com/armosec/kubescape/issues/200
+    installShellCompletion --cmd kubescape \
+      --bash <($out/bin/kubescape completion bash) \
+      --fish <($out/bin/kubescape completion fish) \
+      --zsh <($out/bin/kubescape completion zsh)
+  '';
 
   meta = with lib; {
     description = "Tool for testing if Kubernetes is deployed securely";
     homepage = "https://github.com/armosec/kubescape";
+    changelog = "https://github.com/armosec/kubescape/releases/tag/v${version}";
+    longDescription = ''
+      Kubescape is the first open-source tool for testing if Kubernetes is
+      deployed securely according to multiple frameworks: regulatory, customized
+      company policies and DevSecOps best practices, such as the NSA-CISA and
+      the MITRE ATT&CK®.
+      Kubescape scans K8s clusters, YAML files, and HELM charts, and detect
+      misconfigurations and software vulnerabilities at early stages of the
+      CI/CD pipeline and provides a risk score instantly and risk trends over
+      time. Kubescape integrates natively with other DevOps tools, including
+      Jenkins, CircleCI and Github workflows.
+    '';
     license = licenses.asl20;
-    maintainers = with maintainers; [ fab ];
+    maintainers = with maintainers; [ fab jk ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/lethe/default.nix b/nixpkgs/pkgs/tools/security/lethe/default.nix
index 4f9e65b49b8b..502757262787 100644
--- a/nixpkgs/pkgs/tools/security/lethe/default.nix
+++ b/nixpkgs/pkgs/tools/security/lethe/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lethe";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "kostassoid";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-WYDO44S2cBPe14vv/4i51tgtnoR+6FN2GyAbjJ7AYy8=";
+    sha256 = "sha256-0UYUzef7ja8nc2zs7eWqqXQfVVbEJEH9/NRRHVkvkYk=";
   };
 
-  cargoSha256 = "sha256-5fWclZgt5EuWrsYRheTX9otNiGbJ41Q/fTYdKMWRMHc=";
+  cargoSha256 = "sha256-suE8USKTZECVlTX4Wpz3vapo/Wmn7qaC3eyAJ3gmzqk=";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/nixpkgs/pkgs/tools/security/libtpms/default.nix b/nixpkgs/pkgs/tools/security/libtpms/default.nix
index 64bb10cb8bf2..b49ce7305deb 100644
--- a/nixpkgs/pkgs/tools/security/libtpms/default.nix
+++ b/nixpkgs/pkgs/tools/security/libtpms/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libtpms";
-  version = "0.8.6";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "stefanberger";
     repo = "libtpms";
     rev = "v${version}";
-    sha256 = "sha256-XvugcpoFQhdCBBg7hOgsUzSn4ad7RUuAEkvyiPLg4Lw=";
+    sha256 = "sha256-30P/YggrPEVpsh2qo751aW6RtrpIVe1XQWyYZm8P4yA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/security/lmp/default.nix b/nixpkgs/pkgs/tools/security/lmp/default.nix
new file mode 100644
index 000000000000..6fd544df20a4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/lmp/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "lmp";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "0xInfection";
+    repo = "LogMePwn";
+    rev = "v${version}";
+    sha256 = "sha256-VL/Hp7YaXNcV9JPb3kgRHcdhJJ5p3KHUf3hHbT3gKVk=";
+  };
+
+  vendorSha256 = "sha256-K3jD+r/JFQH5QeLHatCzTdgiABbmKOd/jR3Di10w6mo=";
+
+  meta = with lib; {
+    description = "Scanning and validation toolkit for the Log4J vulnerability";
+    homepage = "https://github.com/0xInfection/LogMePwn";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/log4j-detect/default.nix b/nixpkgs/pkgs/tools/security/log4j-detect/default.nix
new file mode 100644
index 000000000000..aaad1fb94efb
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/log4j-detect/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "log4j-detect";
+  version = "unstable-2021-12-14";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "takito1812";
+    repo = pname;
+    rev = "2f5b7a598a6d0b4aee8111bb574ea72c6a1c76d6";
+    sha256 = "sha256-fFKW7uPBfrnze0UoPL3Mfwd4sFOuHYuDP7kv6VtdM3o=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    requests
+  ];
+
+  postPatch = ''
+    sed -i "1 i #!/usr/bin/python" ${pname}.py
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -vD ${pname}.py $out/bin/${pname}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tool to detect the log4j vulnerability";
+    homepage = "https://github.com/takito1812/log4j-detect";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/log4j-scan/default.nix b/nixpkgs/pkgs/tools/security/log4j-scan/default.nix
new file mode 100644
index 000000000000..bd2772efb416
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/log4j-scan/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "log4j-scan";
+  version = "unstable-2021-12-18";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "fullhunt";
+    repo = pname;
+    rev = "070fbd00f0945645bd5e0daa199a554ef3884b95";
+    sha256 = "sha256-ORSc4KHyAMjuA7QHReDh6SYY5yZRunBBN1+lkCayqL4=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pycryptodome
+    requests
+    termcolor
+  ];
+
+  postPatch = ''
+    substituteInPlace log4j-scan.py \
+      --replace "headers.txt" "../share/headers.txt"
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -vD ${pname}.py $out/bin/${pname}
+    install -vD headers.txt headers-large.txt -t $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Scanner for finding hosts which are vulnerable for log4j";
+    homepage = "https://github.com/fullhunt/log4j-scan";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/log4j-sniffer/default.nix b/nixpkgs/pkgs/tools/security/log4j-sniffer/default.nix
new file mode 100644
index 000000000000..07d966353abf
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/log4j-sniffer/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, git
+}:
+
+buildGoModule rec {
+  pname = "log4j-sniffer";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "palantir";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-2scESCuENM4m3YrxPjoXcPKEkBPTMWOGJR3WenkTNBA=";
+  };
+
+  vendorSha256 = null;
+
+  checkInputs = [
+    git
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d);
+    cd $HOME
+    git init
+  '';
+
+  meta = with lib; {
+    description = "Tool that scans archives to check for vulnerable log4j versions";
+    homepage = "https://github.com/palantir/log4j-sniffer";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/log4j-vuln-scanner/default.nix b/nixpkgs/pkgs/tools/security/log4j-vuln-scanner/default.nix
new file mode 100644
index 000000000000..67bfa89ad2eb
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/log4j-vuln-scanner/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "log4j-vuln-scanner";
+  version = "0.11";
+
+  src = fetchFromGitHub {
+    owner = "hillu";
+    repo = "local-log4j-vuln-scanner";
+    rev = "v${version}";
+    sha256 = "sha256-YGo2dhfqLPNP8O9gdRJfxKmEK/pKd17WNTXQ2cq78qg=";
+  };
+
+  vendorSha256 = null;
+
+  postInstall = ''
+    mv $out/bin/scanner $out/bin/$pname
+    mv $out/bin/patcher $out/bin/log4j-vuln-patcher
+  '';
+
+  meta = with lib; {
+    description = "Local log4j vulnerability scanner";
+    homepage = "https://github.com/hillu/local-log4j-vuln-scanner";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/log4jcheck/default.nix b/nixpkgs/pkgs/tools/security/log4jcheck/default.nix
new file mode 100644
index 000000000000..291bf1ff96b4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/log4jcheck/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "log4jcheck";
+  version = "unstable-2021-12-14";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "NorthwaveSecurity";
+    repo = pname;
+    rev = "736f1f4044e8a9b7bf5db515e2d1b819253f0f6d";
+    sha256 = "sha256-1al7EMYbE/hFXKV4mYZlkEWTUIKYxgXYU3qBLlczYvs=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    requests
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -vD nw_log4jcheck.py $out/bin/${pname}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tool to check for vulnerable Log4j (CVE-2021-44228) systems";
+    homepage = "https://github.com/NorthwaveSecurity/log4jcheck";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/log4shell-detector/default.nix b/nixpkgs/pkgs/tools/security/log4shell-detector/default.nix
new file mode 100644
index 000000000000..6c51c5bcd6e9
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/log4shell-detector/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "log4shell-detector";
+  version = "unstable-2021-12-16";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "Neo23x0";
+    repo = pname;
+    rev = "622b88e7ea36819da23ce6ac090785cd6cca77f9";
+    sha256 = "sha256-N81x9hq473LfM+bQIQLWizCAsVc/pzyB84PV7/N5jk4=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    zstandard
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -vD ${pname}.py $out/bin/${pname}
+    install -vd $out/${python3.sitePackages}/
+    cp -R Log4ShellDetector $out/${python3.sitePackages}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Detector for Log4Shell exploitation attempts";
+    homepage = "https://github.com/Neo23x0/log4shell-detector";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/logmap/default.nix b/nixpkgs/pkgs/tools/security/logmap/default.nix
new file mode 100644
index 000000000000..d6d4cb0f1a54
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/logmap/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "logmap";
+  version = "unstable-2021-12-15";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "zhzyker";
+    repo = pname;
+    rev = "5040707b4ae260830072de93ccd6a23615073abf";
+    sha256 = "sha256-LOGjK5l/gaKObWbC9vaLruE8DdDsabztnEW/TjvCdtE=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    requests
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -vD ${pname}.py $out/bin/${pname}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tools for fuzzing Log4j2 jndi injection";
+    homepage = "https://github.com/zhzyker/logmap";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/maigret/default.nix b/nixpkgs/pkgs/tools/security/maigret/default.nix
new file mode 100644
index 000000000000..08ef82ff9d6e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/maigret/default.nix
@@ -0,0 +1,92 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "maigret";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "soxoj";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "cq7pATICVQa2yTx2uiP58OBTn4B6iCjIB6LMmpaQfx0=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    aiodns
+    aiohttp
+    aiohttp-socks
+    arabic-reshaper
+    async-timeout
+    attrs
+    beautifulsoup4
+    certifi
+    chardet
+    colorama
+    future
+    html5lib
+    idna
+    jinja2
+    lxml
+    markupsafe
+    mock
+    multidict
+    networkx
+    pycountry
+    pypdf2
+    pysocks
+    python-bidi
+    pyvis
+    requests
+    requests-futures
+    six
+    socid-extractor
+    soupsieve
+    stem
+    torrequest
+    tqdm
+    typing-extensions
+    webencodings
+    xhtml2pdf
+    xmind
+    yarl
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytest-httpserver
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # Remove all version pinning
+    sed -i -e "s/==[0-9.]*//" requirements.txt
+    # We are not build for Python < 3.7
+    sed -i -e '/future-annotations/d' requirements.txt
+    # We can't work with dummy packages
+    sed -i -e 's/bs4/beautifulsoup4/g' requirements.txt
+  '';
+
+  disabledTests = [
+    # Tests require network access
+    "test_extract_ids_from_page"
+    "test_import_aiohttp_cookies"
+    "test_maigret_results"
+    "test_pdf_report"
+    "test_self_check_db_negative_enabled"
+    "test_self_check_db_positive_enable"
+  ];
+
+  pythonImportsCheck = [
+    "maigret"
+  ];
+
+  meta = with lib; {
+    description = "Tool to collect details about an username";
+    homepage = "https://maigret.readthedocs.io";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/masscan/default.nix b/nixpkgs/pkgs/tools/security/masscan/default.nix
index 46bae3c20c51..b7924936d6ca 100644
--- a/nixpkgs/pkgs/tools/security/masscan/default.nix
+++ b/nixpkgs/pkgs/tools/security/masscan/default.nix
@@ -17,6 +17,11 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-mnGC/moQANloR5ODwRjzJzBa55OEZ9QU+9WpAHxQE/g=";
   };
 
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    # Fix broken install command
+    substituteInPlace Makefile --replace "-pm755" "-pDm755"
+  '';
+
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
   makeFlags = [
diff --git a/nixpkgs/pkgs/tools/security/metasploit/Gemfile b/nixpkgs/pkgs/tools/security/metasploit/Gemfile
index 1ea4f8b05191..a5808532cafc 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/Gemfile
+++ b/nixpkgs/pkgs/tools/security/metasploit/Gemfile
@@ -1,4 +1,4 @@
 # frozen_string_literal: true
 source "https://rubygems.org"
 
-gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.1.10"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.1.21"
diff --git a/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock b/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
index 1eaf6d48a38c..84330722835e 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,9 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: 822dd1ef2b1a1171d62803add58ee2afce30ea06
-  ref: refs/tags/6.1.10
+  revision: 0b16a2cd771a6afd286188da1c60c9fd772ab0f1
+  ref: refs/tags/6.1.21
   specs:
-    metasploit-framework (6.1.10)
+    metasploit-framework (6.1.21)
       actionpack (~> 6.0)
       activerecord (~> 6.0)
       activesupport (~> 6.0)
@@ -31,9 +31,9 @@ GIT
       metasploit-concern
       metasploit-credential
       metasploit-model
-      metasploit-payloads (= 2.0.58)
+      metasploit-payloads (= 2.0.66)
       metasploit_data_models
-      metasploit_payloads-mettle (= 1.0.13)
+      metasploit_payloads-mettle (= 1.0.17)
       mqtt
       msgpack
       nessus_rest
@@ -98,25 +98,25 @@ GEM
   remote: https://rubygems.org/
   specs:
     Ascii85 (1.1.0)
-    actionpack (6.1.4.1)
-      actionview (= 6.1.4.1)
-      activesupport (= 6.1.4.1)
+    actionpack (6.1.4.4)
+      actionview (= 6.1.4.4)
+      activesupport (= 6.1.4.4)
       rack (~> 2.0, >= 2.0.9)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (6.1.4.1)
-      activesupport (= 6.1.4.1)
+    actionview (6.1.4.4)
+      activesupport (= 6.1.4.4)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activemodel (6.1.4.1)
-      activesupport (= 6.1.4.1)
-    activerecord (6.1.4.1)
-      activemodel (= 6.1.4.1)
-      activesupport (= 6.1.4.1)
-    activesupport (6.1.4.1)
+    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)
@@ -125,26 +125,26 @@ GEM
     addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
     afm (0.2.2)
-    arel-helpers (2.12.1)
-      activerecord (>= 3.1.0, < 7)
+    arel-helpers (2.14.0)
+      activerecord (>= 3.1.0, < 8)
     aws-eventstream (1.2.0)
-    aws-partitions (1.516.0)
-    aws-sdk-core (3.121.1)
+    aws-partitions (1.543.0)
+    aws-sdk-core (3.125.0)
       aws-eventstream (~> 1, >= 1.0.2)
-      aws-partitions (~> 1, >= 1.239.0)
+      aws-partitions (~> 1, >= 1.525.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-ec2 (1.270.0)
-      aws-sdk-core (~> 3, >= 3.120.0)
+    aws-sdk-ec2 (1.288.0)
+      aws-sdk-core (~> 3, >= 3.125.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-iam (1.61.0)
-      aws-sdk-core (~> 3, >= 3.120.0)
+    aws-sdk-iam (1.65.0)
+      aws-sdk-core (~> 3, >= 3.125.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kms (1.49.0)
-      aws-sdk-core (~> 3, >= 3.120.0)
+    aws-sdk-kms (1.53.0)
+      aws-sdk-core (~> 3, >= 3.125.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.103.0)
-      aws-sdk-core (~> 3, >= 3.120.0)
+    aws-sdk-s3 (1.110.0)
+      aws-sdk-core (~> 3, >= 3.125.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.4)
     aws-sigv4 (1.4.0)
@@ -152,7 +152,7 @@ GEM
     bcrypt (3.1.16)
     bcrypt_pbkdf (1.1.0)
     bindata (2.4.10)
-    bson (4.12.1)
+    bson (4.13.0)
     builder (3.2.4)
     concurrent-ruby (1.0.5)
     cookiejar (0.3.3)
@@ -212,7 +212,7 @@ GEM
       domain_name (~> 0.5)
     http_parser.rb (0.8.0)
     httpclient (2.8.3)
-    i18n (1.8.10)
+    i18n (1.8.11)
       concurrent-ruby (~> 1.0)
     io-console (0.5.9)
     irb (1.3.6)
@@ -220,12 +220,12 @@ GEM
     jmespath (1.4.0)
     jsobfu (0.4.2)
       rkelly-remix
-    json (2.6.0)
+    json (2.6.1)
     little-plugger (1.1.4)
     logging (2.3.0)
       little-plugger (~> 1.1)
       multi_json (~> 1.14)
-    loofah (2.12.0)
+    loofah (2.13.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     metasm (1.0.5)
@@ -247,7 +247,7 @@ GEM
       activemodel (~> 6.0)
       activesupport (~> 6.0)
       railties (~> 6.0)
-    metasploit-payloads (2.0.58)
+    metasploit-payloads (2.0.66)
     metasploit_data_models (5.0.4)
       activerecord (~> 6.0)
       activesupport (~> 6.0)
@@ -258,10 +258,10 @@ GEM
       railties (~> 6.0)
       recog (~> 2.0)
       webrick
-    metasploit_payloads-mettle (1.0.13)
+    metasploit_payloads-mettle (1.0.17)
     method_source (1.0.0)
     mini_portile2 (2.6.1)
-    minitest (5.14.4)
+    minitest (5.15.0)
     mqtt (0.5.0)
     msgpack (1.4.2)
     multi_json (1.15.0)
@@ -288,7 +288,7 @@ GEM
       pcaprub
     patch_finder (1.0.2)
     pcaprub (0.12.4)
-    pdf-reader (2.5.0)
+    pdf-reader (2.7.0)
       Ascii85 (~> 1.0)
       afm (~> 0.2.1)
       hashery (~> 2.0)
@@ -298,7 +298,7 @@ GEM
     public_suffix (4.0.6)
     puma (5.5.2)
       nio4r (~> 2.0)
-    racc (1.5.2)
+    racc (1.6.0)
     rack (2.2.3)
     rack-protection (2.1.0)
       rack
@@ -309,15 +309,15 @@ GEM
       nokogiri (>= 1.6)
     rails-html-sanitizer (1.4.2)
       loofah (~> 2.3)
-    railties (6.1.4.1)
-      actionpack (= 6.1.4.1)
-      activesupport (= 6.1.4.1)
+    railties (6.1.4.4)
+      actionpack (= 6.1.4.4)
+      activesupport (= 6.1.4.4)
       method_source
       rake (>= 0.13)
       thor (~> 1.0)
     rake (13.0.6)
     rb-readline (0.5.5)
-    recog (2.3.21)
+    recog (2.3.22)
       nokogiri
     redcarpet (3.5.1)
     reline (0.2.5)
@@ -330,7 +330,7 @@ GEM
       rex-core
       rex-struct2
       rex-text
-    rex-core (0.1.18)
+    rex-core (0.1.20)
     rex-encoder (0.1.6)
       metasm
       rex-arch
@@ -349,7 +349,7 @@ GEM
       rex-arch
     rex-ole (0.1.7)
       rex-text
-    rex-powershell (0.1.93)
+    rex-powershell (0.1.94)
       rex-random_identifier
       rex-text
       ruby-rc4
@@ -360,9 +360,9 @@ GEM
       metasm
       rex-core
       rex-text
-    rex-socket (0.1.33)
+    rex-socket (0.1.34)
       rex-core
-    rex-sslscan (0.1.6)
+    rex-sslscan (0.1.7)
       rex-core
       rex-socket
       rex-text
@@ -375,7 +375,7 @@ GEM
     ruby-macho (2.5.1)
     ruby-rc4 (0.1.5)
     ruby2_keywords (0.0.5)
-    ruby_smb (2.0.11)
+    ruby_smb (2.0.12)
       bindata
       openssl-ccm
       openssl-cmac
@@ -405,7 +405,7 @@ GEM
     ttfunk (1.7.0)
     tzinfo (2.0.4)
       concurrent-ruby (~> 1.0)
-    tzinfo-data (1.2021.3)
+    tzinfo-data (1.2021.5)
       tzinfo (>= 1.0.0)
     unf (0.1.4)
       unf_ext
@@ -433,7 +433,7 @@ GEM
       activesupport (>= 4.2, < 7.0)
     xmlrpc (0.3.2)
       webrick
-    zeitwerk (2.4.2)
+    zeitwerk (2.5.1)
 
 PLATFORMS
   ruby
diff --git a/nixpkgs/pkgs/tools/security/metasploit/default.nix b/nixpkgs/pkgs/tools/security/metasploit/default.nix
index 91b2bd60a318..e2659abe6ab3 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/default.nix
+++ b/nixpkgs/pkgs/tools/security/metasploit/default.nix
@@ -4,6 +4,7 @@
 , makeWrapper
 , ruby
 , bundlerEnv
+, python3
 }:
 
 let
@@ -14,16 +15,17 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.1.10";
+  version = "6.1.21";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = version;
-    sha256 = "sha256-VdnczTauHKYexXZs6U5F5v4DP8lJb8wCDy6yiPdEavI=";
+    sha256 = "sha256-43abc6XUmLZZ+KuaAqyT/fJT+79JWKeRRA41NJOWoPY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ (python3.withPackages (ps: [ ps.requests ])) ];
 
   dontPatchELF = true; # stay away from exploit executables
 
@@ -32,6 +34,8 @@ in stdenv.mkDerivation rec {
 
     cp -r * $out/share/msf
 
+    grep -rl "^#\!.*python2$" $out/share/msf | xargs -d '\n' rm
+
     (
       cd $out/share/msf/
       for i in msf*; do
diff --git a/nixpkgs/pkgs/tools/security/metasploit/gemset.nix b/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
index 8ba307e2b5a0..9e6f49e96d7f 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
+++ b/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
@@ -4,50 +4,50 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xgysqnibjsy6kdz10x2xb3kwa6lssiqhh0zggrbgs31ypwhlpia";
+      sha256 = "171ida68hrk21cq1zz1kfl9h94a3qw5p3afviqzsirl0kx6qjyv9";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   actionview = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yf4ic5kl324rs0raralpwx24s6hvvdzxfhinafylf8f3x7jj23z";
+      sha256 = "1lm2pf35p6q4ff78z175h6ihmzfg2j7ssn41374rb9iy9gpiiidm";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   activemodel = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16ixam4lni8b5lgx0whnax0imzh1dh10fy5r9pxs52n83yz5nbq3";
+      sha256 = "0g3qdz8dw6zkgz45jd13lwfdnm7rhgczv1pssw63g9k6qj3bkxjm";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   activerecord = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ccgvlj767ybps3pxlaa4iw77n7wbriw2sr8754id3ngjfap08ja";
+      sha256 = "090d4wl1pq06m9mibpck0m5nm8h45fwhs3fjx27297kjmnv4gzik";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   activesupport = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19gx1jcq46x9d1pi1w8xq0bgvvfw239y4lalr8asm291gj3q3ds4";
+      sha256 = "0rvnz9lsf9mrkpji748sf51f54m027snkw6rm8flyvf7fq18rm98";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   addressable = {
     groups = ["default"];
@@ -74,10 +74,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1733g96xxmmgjxambhnr98aj2yq401vgg0afyf46ayzgablij4cb";
+      sha256 = "1b14yqwfjynlvl6x7jclhr4b2imik2cvabwxn9cpylabdnhr7gza";
       type = "gem";
     };
-    version = "2.12.1";
+    version = "2.14.0";
   };
   Ascii85 = {
     groups = ["default"];
@@ -104,60 +104,60 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jx44f1hc41712k8fqmzrbpqs2j9yl0msdqcmmfp0pirkbqw6ri0";
+      sha256 = "07ydbhiyncl0l1dwy09z8inf72x1k961qlcwwg62l4yacv0a74wq";
       type = "gem";
     };
-    version = "1.516.0";
+    version = "1.543.0";
   };
   aws-sdk-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0njlpd4w008whz7bd7rrqs3k1m6xbm33hblzwh67pnk1frabv4q6";
+      sha256 = "06mkw688mrhz4j2d2ajzigr87041hxczy2w45j0iv1mnvs5yrhan";
       type = "gem";
     };
-    version = "3.121.1";
+    version = "3.125.0";
   };
   aws-sdk-ec2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m46n4fn505l0qqwamc5gk88h6aqvjqc7j0pkrcngxcgh5r7hcvf";
+      sha256 = "0s67sgpv7b6asg3am157brsclq15p8r3fm2gc741zz546xfbfpm3";
       type = "gem";
     };
-    version = "1.270.0";
+    version = "1.288.0";
   };
   aws-sdk-iam = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m5cc26kkh83f6c05y2a07nfz3dsdvkdf7jfrjkrhlkmdq9hha0m";
+      sha256 = "0gss3wi1csngmd2iirxznnhafr0yvgqnkr0cksz7dk9kqrly04gl";
       type = "gem";
     };
-    version = "1.61.0";
+    version = "1.65.0";
   };
   aws-sdk-kms = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15iar7b74lnvw1cafacp8vc63xy3zxa8zxmranfssa37mhk53byi";
+      sha256 = "044nzbh16x4vx7kbjv1hfh553sp126kcdk2x99apr52j506sk87c";
       type = "gem";
     };
-    version = "1.49.0";
+    version = "1.53.0";
   };
   aws-sdk-s3 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xsa6nsdflwkm2wzmsr6kiy4am44f9f9459lbkrwxlcl166g05jq";
+      sha256 = "1587v0xh0hcrxn0ki0ahx70kkpny4pm32fj4bh7500wzvjki6d6v";
       type = "gem";
     };
-    version = "1.103.0";
+    version = "1.110.0";
   };
   aws-sigv4 = {
     groups = ["default"];
@@ -204,10 +204,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pnr0b7phdzhkw9xqhmqnw5673ndi13ks3dqwqmbxq6v0rsxiapc";
+      sha256 = "0ir2fml3d6gjzqhiqpxl8rqmgrp5lqrx8xdwz9cmcnxhfzmqgxbp";
       type = "gem";
     };
-    version = "4.12.1";
+    version = "4.13.0";
   };
   builder = {
     groups = ["default"];
@@ -544,10 +544,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
+      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
       type = "gem";
     };
-    version = "1.8.10";
+    version = "1.8.11";
   };
   io-console = {
     groups = ["default"];
@@ -594,10 +594,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0a7p95md8j8lbgxx9dzygysxmrg1s80895f46f1y47k9kq9q56ry";
+      sha256 = "1z9grvjyfz16ag55hg522d3q4dh07hf391sf9s96npc0vfi85xkz";
       type = "gem";
     };
-    version = "2.6.0";
+    version = "2.6.1";
   };
   little-plugger = {
     groups = ["default"];
@@ -624,10 +624,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nqcya57x2n58y1dify60i0dpla40n4yir928khp4nj5jrn9mgmw";
+      sha256 = "17rvbrqcci1579d7dpbsfmz1f9g7msk82lyh9ip5h29dkrnixcgg";
       type = "gem";
     };
-    version = "2.12.0";
+    version = "2.13.0";
   };
   metasm = {
     groups = ["default"];
@@ -664,12 +664,12 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "822dd1ef2b1a1171d62803add58ee2afce30ea06";
-      sha256 = "1wka8kvqicif1w1cqvs9r4zh7zp68m7fjv3nqlgac75f6v6xrnam";
+      rev = "0b16a2cd771a6afd286188da1c60c9fd772ab0f1";
+      sha256 = "1xm0js9k8d8f8j8sfn29pzxm7wpxjfn056mbz1cvd66llmrrnxp3";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.1.10";
+    version = "6.1.21";
   };
   metasploit-model = {
     groups = ["default"];
@@ -686,10 +686,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05z0lqa2w6n1nqw3k2s0cxfbqa7bf1p199gccfahjyxjn9xzhcf7";
+      sha256 = "0gpsxysd6lg4falybci1fwlxjmxazjx5birqppdyc9wkqha58j9r";
       type = "gem";
     };
-    version = "2.0.58";
+    version = "2.0.66";
   };
   metasploit_data_models = {
     groups = ["default"];
@@ -706,10 +706,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "108jm8nz4xs62k33w5frw15xadd17pbmwpczhvcpzh3bf54sihsr";
+      sha256 = "06v72lyj08haqzs5a12ds6vadq6r2kxy50s7jxp1vxq5i2j4p2gm";
       type = "gem";
     };
-    version = "1.0.13";
+    version = "1.0.17";
   };
   method_source = {
     groups = ["default"];
@@ -736,10 +736,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
+      sha256 = "06xf558gid4w8lwx13jwfdafsch9maz8m0g85wnfymqj63x5nbbd";
       type = "gem";
     };
-    version = "5.14.4";
+    version = "5.15.0";
   };
   mqtt = {
     groups = ["default"];
@@ -947,10 +947,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14cxj3ra9nnn334qpm2vsx9s0zk3095s8ih6cwcp47h3hv03c73y";
+      sha256 = "0c8s9p3s7z39zv9s6avaf5ddqncpglraqpqn50yhb1lrnna3akgi";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.7.0";
   };
   pg = {
     groups = ["default"];
@@ -987,10 +987,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d";
       type = "gem";
     };
-    version = "1.5.2";
+    version = "1.6.0";
   };
   rack = {
     groups = ["default"];
@@ -1047,10 +1047,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kwpm068cqys34p2g0j3l1g0cd5f3kxnsay5v7lmbd0sgarac0vy";
+      sha256 = "1nmyds2www6dmqbbd5ggq31gxxb9mwxd5llzmb3iyczssk6l7lla";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   rake = {
     groups = ["default"];
@@ -1077,10 +1077,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ndzawr0rd3jdizxgjyrgipi3ccn9jpagvplxk91kb5spy9lnsy2";
+      sha256 = "0ml58i34gjpgmpl392c77v2n50w2w233gwxgy6cxq81bp58ywj92";
       type = "gem";
     };
-    version = "2.3.21";
+    version = "2.3.22";
   };
   redcarpet = {
     groups = ["default"];
@@ -1127,10 +1127,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i3rn2ndf9ijgjfn3c8rpblw8lnqynm2flmfmm6dbfhjyhhawnaz";
+      sha256 = "0hy7xrd3pwyfk2199zkgfa6kz1fsx7ngf6s512gpk8gadjc8hq6j";
       type = "gem";
     };
-    version = "0.1.18";
+    version = "0.1.20";
   };
   rex-encoder = {
     groups = ["default"];
@@ -1197,10 +1197,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qpf4na2c57bypyxna7pqll8ym643cydh347v5zvlxknripjhjyz";
+      sha256 = "0ib75d16j8z0chni7m9v74xpxf13164hh8kr7v7yg93zpsqxw6p5";
       type = "gem";
     };
-    version = "0.1.93";
+    version = "0.1.94";
   };
   rex-random_identifier = {
     groups = ["default"];
@@ -1237,20 +1237,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kl221lsf1dk62vsf6fsgcx54crav0wgqsb9rwjxl7gfd7kmyz04";
+      sha256 = "1rsgssbnnl5frxgnq17xq0n6rpxns6xdmxpya9852c2n72nm5ac0";
       type = "gem";
     };
-    version = "0.1.33";
+    version = "0.1.34";
   };
   rex-sslscan = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r58n1ifbay1gq3kln9yg5iqjwp69l0pmb9sqakhqwhjlhzqx2kr";
+      sha256 = "128y9xrb2nv8ccs85lav8wcydp8239y04ad7mjkc43r59hhkx74p";
       type = "gem";
     };
-    version = "0.1.6";
+    version = "0.1.7";
   };
   rex-struct2 = {
     groups = ["default"];
@@ -1337,10 +1337,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06szny4dcbwlcq2fki1fbrghsbk2dgwy3zyl9y8zjkf334yjb57k";
+      sha256 = "103rm0p44w8q2gyw3yigb6k2v12hi7gkj71b2wkj4859jzi96vyb";
       type = "gem";
     };
-    version = "2.0.11";
+    version = "2.0.12";
   };
   rubyntlm = {
     groups = ["default"];
@@ -1477,10 +1477,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f9wlg8p1p1wa86hcskiy58abbdysdqwr4pv2dmkhkfbi94f1lmr";
+      sha256 = "0w1iyvw0m2xvdr4654jnn1g27jwj84y94dvaj1k2p3lcrvndm698";
       type = "gem";
     };
-    version = "1.2021.3";
+    version = "1.2021.5";
   };
   unf = {
     groups = ["default"];
@@ -1607,9 +1607,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
+      sha256 = "18l4r6layck0d80ydc692mv1lxak5xbf6w2paj1x7m2ggbggzxgj";
       type = "gem";
     };
-    version = "2.4.2";
+    version = "2.5.1";
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/metasploit/update.sh b/nixpkgs/pkgs/tools/security/metasploit/update.sh
index e4da457c6f57..ba41b78c0e8d 100755
--- a/nixpkgs/pkgs/tools/security/metasploit/update.sh
+++ b/nixpkgs/pkgs/tools/security/metasploit/update.sh
@@ -4,7 +4,7 @@
 set -eu -o pipefail
 cd "$(dirname "$(readlink -f "$0")")"
 
-latest=$(curl https://github.com/rapid7/metasploit-framework/releases.atom | xmlstarlet sel -N atom="http://www.w3.org/2005/Atom" -t -m /atom:feed/atom:entry -v atom:title -n | head -n1)
+latest=$(curl https://github.com/rapid7/metasploit-framework/tags.atom | xmlstarlet sel -N atom="http://www.w3.org/2005/Atom" -t -m /atom:feed/atom:entry -v atom:title -n | head -n1)
 echo "Updating metasploit to $latest"
 
 sed -i "s#refs/tags/.*#refs/tags/$latest\"#" Gemfile
diff --git a/nixpkgs/pkgs/tools/security/minio-certgen/default.nix b/nixpkgs/pkgs/tools/security/minio-certgen/default.nix
index f87fffc4f957..ec7b0e976ee2 100644
--- a/nixpkgs/pkgs/tools/security/minio-certgen/default.nix
+++ b/nixpkgs/pkgs/tools/security/minio-certgen/default.nix
@@ -17,6 +17,6 @@ buildGoModule rec {
     description = "A simple Minio tool to generate self-signed certificates, and provides SAN certificates with DNS and IP entries";
     downloadPage = "https://github.com/minio/certgen";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ superherointj ];
+    maintainers = with maintainers; [ bryanasdev000 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/minisign/default.nix b/nixpkgs/pkgs/tools/security/minisign/default.nix
index 1fb1d6893a9f..a0e634730422 100644
--- a/nixpkgs/pkgs/tools/security/minisign/default.nix
+++ b/nixpkgs/pkgs/tools/security/minisign/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "minisign";
-  version = "0.9";
+  version = "0.10";
 
   src = fetchFromGitHub {
     repo = "minisign";
     owner = "jedisct1";
     rev = version;
-    sha256 = "0qx3hnkwx6ij0hgp5vc74x36qfc4h5wgzr70fqqhmv3zb8q9f2vn";
+    sha256 = "sha256-uqlX4m1e5NTqqyI99j1c6/w/YQWeJC39FufpxAf4JT4=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/tools/security/mkp224o/default.nix b/nixpkgs/pkgs/tools/security/mkp224o/default.nix
index dc17cc602764..17d8e8ad4ffb 100644
--- a/nixpkgs/pkgs/tools/security/mkp224o/default.nix
+++ b/nixpkgs/pkgs/tools/security/mkp224o/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
       variants = [
         { suffix = "ref10";         configureFlags = ["--enable-ref10"]; }
         { suffix = "donna";         configureFlags = ["--enable-donna"]; }
-      ] ++ lib.optionals (stdenv.isi686 || stdenv.isx86_64) [
+      ] ++ lib.optionals stdenv.hostPlatform.isx86 [
         { suffix = "donna-sse2";    configureFlags = ["--enable-donna-sse2"]; }
       ] ++ lib.optionals stdenv.isx86_64 [
         { suffix = "amd64-51-30k";  configureFlags = ["--enable-amd64-51-30k"]; }
diff --git a/nixpkgs/pkgs/tools/security/mkpasswd/default.nix b/nixpkgs/pkgs/tools/security/mkpasswd/default.nix
index e001239f3136..7fea400f008c 100644
--- a/nixpkgs/pkgs/tools/security/mkpasswd/default.nix
+++ b/nixpkgs/pkgs/tools/security/mkpasswd/default.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, whois, perl }:
+{ lib, stdenv, whois, libxcrypt, perl, pkg-config }:
 
 stdenv.mkDerivation {
-  name = "mkpasswd-${whois.version}";
+  pname = "mkpasswd";
+  inherit (whois) version src;
 
-  src = whois.src;
+  nativeBuildInputs = [ perl pkg-config ];
+  buildInputs = [ libxcrypt ];
 
-  nativeBuildInputs = [ perl ];
-
-  preConfigure = whois.preConfigure;
+  inherit (whois) preConfigure;
   buildPhase = "make mkpasswd";
   installPhase = "make install-mkpasswd";
 
diff --git a/nixpkgs/pkgs/tools/security/nmap/default.nix b/nixpkgs/pkgs/tools/security/nmap/default.nix
index ff416f793e1c..69bea2ac54ff 100644
--- a/nixpkgs/pkgs/tools/security/nmap/default.nix
+++ b/nixpkgs/pkgs/tools/security/nmap/default.nix
@@ -11,7 +11,7 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  name = "nmap${optionalString graphicalSupport "-graphical"}-${version}";
+  pname = "nmap${optionalString graphicalSupport "-graphical"}";
   version = "7.92";
 
   src = fetchurl {
diff --git a/nixpkgs/pkgs/tools/security/nosqli/default.nix b/nixpkgs/pkgs/tools/security/nosqli/default.nix
index 3163d1683710..dbe336edc6d0 100644
--- a/nixpkgs/pkgs/tools/security/nosqli/default.nix
+++ b/nixpkgs/pkgs/tools/security/nosqli/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nosqli";
-  version = "0.5.2";
+  version = "0.5.4";
 
   src = fetchFromGitHub {
     owner = "Charlie-belmer";
     repo = pname;
     rev = "v${version}";
-    sha256 = "006z76v4a3pxzgnkj5nl0mrlsqmfgvg51w20dl118k2xa70zz63j";
+    sha256 = "sha256-CgD9b5eHDK/8QhQmrqT09Jf9snn9WItNMtTNbJFT2sI=";
   };
 
-  vendorSha256 = "01spdh2gbzp6yg2jbiwfnyhqb5s605hyfxhs0f9h4ps4qbi1h9cv";
+  vendorSha256 = "sha256-QnrzEei4Pt4C0vCJu4YN28lWWAqEikmNLrqshd3knx4=";
 
   meta = with lib; {
     description = "NoSql Injection tool for finding vulnerable websites using MongoDB";
diff --git a/nixpkgs/pkgs/tools/security/nuclei/default.nix b/nixpkgs/pkgs/tools/security/nuclei/default.nix
index 4d8107902e6e..396b8e03792c 100644
--- a/nixpkgs/pkgs/tools/security/nuclei/default.nix
+++ b/nixpkgs/pkgs/tools/security/nuclei/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nuclei";
-  version = "2.5.2";
+  version = "2.5.4";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1rn4qys3af41f40zr4gi23zy9gawbbjddssm95v5a4zyd5xjfr6b";
+    sha256 = "sha256-r6nOVTg/vZr2somTCoEJQHtbMMZ1RCkdDzGQeTISreU=";
   };
 
-  vendorSha256 = "04q9japkv41127kl0x2268n6j13y22qg1icd783cl40584ajk2am";
+  vendorSha256 = "sha256-/TFg+ztubfZfyUbRabVr943oF9R0Xg8mIDxUl/MFbJE=";
 
   modRoot = "./v2";
   subPackages = [
diff --git a/nixpkgs/pkgs/tools/security/nwipe/default.nix b/nixpkgs/pkgs/tools/security/nwipe/default.nix
index eb87e8cba862..8cfa47b5d44a 100644
--- a/nixpkgs/pkgs/tools/security/nwipe/default.nix
+++ b/nixpkgs/pkgs/tools/security/nwipe/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nwipe";
-  version = "0.31";
+  version = "0.32";
 
   src = fetchFromGitHub {
     owner = "martijnvanbrummelen";
     repo = "nwipe";
     rev = "v${version}";
-    sha256 = "sha256-+xwQLjl0jhven6udfCprRKW8qWM6JMh5MOZ+ZdaJWQg=";
+    sha256 = "sha256-O3kYiai+5KMHWd2om4+HrTIw9lB2wLJF3Mrr6iY2+I8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/security/onioncircuits/default.nix b/nixpkgs/pkgs/tools/security/onioncircuits/default.nix
index f5d9185dc986..0186accc24a8 100644
--- a/nixpkgs/pkgs/tools/security/onioncircuits/default.nix
+++ b/nixpkgs/pkgs/tools/security/onioncircuits/default.nix
@@ -24,7 +24,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://tails.boum.org";
     description = "GTK application to display Tor circuits and streams";
     license = licenses.gpl3;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
   };
 }
 
diff --git a/nixpkgs/pkgs/tools/security/onlykey/default.nix b/nixpkgs/pkgs/tools/security/onlykey/default.nix
index 4cad7e513acd..312f580c0239 100644
--- a/nixpkgs/pkgs/tools/security/onlykey/default.nix
+++ b/nixpkgs/pkgs/tools/security/onlykey/default.nix
@@ -12,7 +12,7 @@ let
   # parse the version from package.json
   version =
     let
-      packageJson = builtins.fromJSON (builtins.readFile ./package.json);
+      packageJson = lib.importJSON ./package.json;
       splits = builtins.split "^.*#v(.*)$" (builtins.getAttr "onlykey" (builtins.head packageJson));
       matches = builtins.elemAt splits 1;
       elem = builtins.head matches;
diff --git a/nixpkgs/pkgs/tools/security/onlykey/onlykey.nix b/nixpkgs/pkgs/tools/security/onlykey/onlykey.nix
index 6fb86dfd79e7..f9a1999f36d7 100644
--- a/nixpkgs/pkgs/tools/security/onlykey/onlykey.nix
+++ b/nixpkgs/pkgs/tools/security/onlykey/onlykey.nix
@@ -6,7 +6,7 @@
 
 let
   nodeEnv = import ../../../development/node-packages/node-env.nix {
-    inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
+    inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
     inherit pkgs nodejs;
     libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
   };
diff --git a/nixpkgs/pkgs/tools/security/open-ecard/default.nix b/nixpkgs/pkgs/tools/security/open-ecard/default.nix
index 00ff112ba844..470e5f6530fc 100644
--- a/nixpkgs/pkgs/tools/security/open-ecard/default.nix
+++ b/nixpkgs/pkgs/tools/security/open-ecard/default.nix
@@ -2,7 +2,6 @@
 
 let
   version = "1.2.4";
-
   srcs = {
     richclient = fetchurl {
       url = "https://jnlp.openecard.org/richclient-${version}-20171212-0958.jar";
@@ -18,8 +17,8 @@ let
     };
   };
 in stdenv.mkDerivation rec {
-  appName = "open-ecard";
-  name = "${appName}-${version}";
+  pname = "open-ecard";
+  inherit version;
 
   src = srcs.richclient;
 
@@ -28,12 +27,12 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper ];
 
   desktopItem = makeDesktopItem {
-    name = appName;
+    name = pname;
     desktopName = "Open eCard App";
     genericName = "eCard App";
     comment = "Client side implementation of the eCard-API-Framework";
     icon = "oec_logo_bg-transparent.svg";
-    exec = appName;
+    exec = pname;
     categories = "Utility;Security;";
   };
 
@@ -47,7 +46,7 @@ in stdenv.mkDerivation rec {
     cp ${srcs.logo} $out/share/pixmaps/oec_logo_bg-transparent.svg
 
     mkdir -p $out/bin
-    makeWrapper ${jre}/bin/java $out/bin/${appName} \
+    makeWrapper ${jre}/bin/java $out/bin/${pname} \
       --add-flags "-cp $out/share/java/cifs-${version}.jar" \
       --add-flags "-jar $out/share/java/richclient-${version}.jar" \
       --suffix LD_LIBRARY_PATH ':' ${lib.getLib pcsclite}/lib
diff --git a/nixpkgs/pkgs/tools/security/otpauth/default.nix b/nixpkgs/pkgs/tools/security/otpauth/default.nix
index 28dfab546a8b..b8974bc720de 100644
--- a/nixpkgs/pkgs/tools/security/otpauth/default.nix
+++ b/nixpkgs/pkgs/tools/security/otpauth/default.nix
@@ -5,17 +5,16 @@
 
 buildGoModule rec {
   pname = "otpauth";
-  version = "0.3.5";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "dim13";
     repo = "otpauth";
     rev = "v${version}";
-    sha256 = "sha256-Jr1cZbXKZa6M7tIex67SjDPkWSYHWSZ7vRYd8us7Oek=";
+    sha256 = "sha256-LGDeNkCxVLDVpwi5VFFL0DFsf8CexI7Nc5l+l2ASHaw=";
   };
 
-  runVend = true;
-  vendorSha256 = "sha256-s0pcm3fO50cuMEJ6Pp7qay6BGGa+FCiBegUbQlB0OnY=";
+  vendorSha256 = "sha256-fwO3cmlnmuD682vGB8X06yGHZqBadeltRrsEUjQWazc=";
   doCheck = true;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/security/passff-host/default.nix b/nixpkgs/pkgs/tools/security/passff-host/default.nix
index fb348800f5a1..4eb615b79032 100644
--- a/nixpkgs/pkgs/tools/security/passff-host/default.nix
+++ b/nixpkgs/pkgs/tools/security/passff-host/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "passff-host";
-  version = "1.2.1";
+  version = "1.2.3";
 
   src = fetchFromGitHub {
     owner = "passff";
     repo = pname;
     rev = version;
-    sha256 = "0ydfwvhgnw5c3ydx2gn5d7ys9g7cxlck57vfddpv6ix890v21451";
+    sha256 = "sha256-1JPToJF/ruu69TEZAAvV3Zl0qcTpEyMb2qQDAWWgKNw=";
   };
 
   buildInputs = [ python3 ];
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
       /etc/opt/chrome/native-messaging-hosts
       /etc/chromium/native-messaging-hosts
       /etc/vivaldi/native-messaging-hosts
+      /lib/librewolf/native-messaging-hosts
     )
 
     for manifestDir in "''${nativeMessagingPaths[@]}"; do
@@ -42,6 +43,6 @@ stdenv.mkDerivation rec {
     description = "Host app for the WebExtension PassFF";
     homepage = "https://github.com/passff/passff-host";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ nadrieril ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/pcsclite/default.nix b/nixpkgs/pkgs/tools/security/pcsclite/default.nix
index 71bd13c4a729..1488e6561c9a 100644
--- a/nixpkgs/pkgs/tools/security/pcsclite/default.nix
+++ b/nixpkgs/pkgs/tools/security/pcsclite/default.nix
@@ -2,6 +2,7 @@
 , lib
 , fetchurl
 , autoreconfHook
+, autoconf-archive
 , pkg-config
 , perl
 , python3
@@ -13,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pcsclite";
-  version = "1.9.1";
+  version = "1.9.4";
 
   outputs = [ "bin" "out" "dev" "doc" "man" ];
 
   src = fetchurl {
     url = "https://pcsclite.apdu.fr/files/pcsc-lite-${version}.tar.bz2";
-    sha256 = "sha256-c8R4m3h2qDOnD0k82iFlXf6FaJ2bfilwHCQyduVeaDo=";
+    sha256 = "sha256:0jqwnpywk9ka3q88b1k93p8s0xhmx1isdpcqa80nd8p04z1am34a";
   };
 
   patches = [ ./no-dropdir-literals.patch ];
@@ -55,7 +56,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ autoreconfHook pkg-config perl ];
+  nativeBuildInputs = [ autoreconfHook autoconf-archive pkg-config perl ];
 
   buildInputs = [ python3 ]
     ++ lib.optionals stdenv.isLinux [ dbus polkit systemd ]
diff --git a/nixpkgs/pkgs/tools/security/pcsctools/default.nix b/nixpkgs/pkgs/tools/security/pcsctools/default.nix
index 51813526de15..cf8ecf180b3a 100644
--- a/nixpkgs/pkgs/tools/security/pcsctools/default.nix
+++ b/nixpkgs/pkgs/tools/security/pcsctools/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pcsc-tools";
-  version = "1.5.7";
+  version = "1.5.8";
 
   src = fetchurl {
     url = "http://ludovic.rousseau.free.fr/softwares/pcsc-tools/${pname}-${version}.tar.bz2";
-    sha256 = "17b9jxvcxmn007lavan20l25v4jvm6dqc4x9dlqzbg6mjs28zsp0";
+    sha256 = "sha256-h8HtvbjJc1Bj9oiqPgXjiTqI54syLcaa+AdX7ZAoIhI=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/security/pgpdump/default.nix b/nixpkgs/pkgs/tools/security/pgpdump/default.nix
index c0f496438a4e..f6fade16b868 100644
--- a/nixpkgs/pkgs/tools/security/pgpdump/default.nix
+++ b/nixpkgs/pkgs/tools/security/pgpdump/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pgpdump";
-  version = "0.33";
+  version = "0.34";
 
   src = fetchFromGitHub {
     owner = "kazu-yamamoto";
     repo = "pgpdump";
     rev = "v${version}";
-    sha256 = "0pi9qdbmcmi58gmljin51ylbi3zkknl8fm26jm67cpl55hvfsn23";
+    sha256 = "1vvxhbz8nqzw9gf7cdmas2shzziznsqj84w6w74h8zzgb4m3byzz";
   };
 
   buildInputs = lib.optionals supportCompressedPackets [ zlib bzip2 ];
diff --git a/nixpkgs/pkgs/tools/security/pinentry/default.nix b/nixpkgs/pkgs/tools/security/pinentry/default.nix
index 65abea4a112f..f34acafc9fe9 100644
--- a/nixpkgs/pkgs/tools/security/pinentry/default.nix
+++ b/nixpkgs/pkgs/tools/security/pinentry/default.nix
@@ -1,7 +1,6 @@
 { fetchurl, mkDerivation, fetchpatch, stdenv, lib, pkg-config, autoreconfHook, wrapGAppsHook
 , libgpg-error, libassuan, qtbase, wrapQtAppsHook
-, ncurses, gtk2, gcr
-, libcap ? null, libsecret ? null
+, ncurses, gtk2, gcr, libcap, libsecret
 , enabledFlavors ? [ "curses" "tty" "gtk2" "emacs" ]
   ++ lib.optionals stdenv.isLinux [ "gnome3" ]
   ++ lib.optionals (stdenv.hostPlatform.system != "aarch64-darwin") [ "qt" ]
@@ -43,16 +42,17 @@ in
 
 pinentryMkDerivation rec {
   pname = "pinentry";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchurl {
     url = "mirror://gnupg/pinentry/${pname}-${version}.tar.bz2";
-    sha256 = "0w35ypl960pczg5kp6km3dyr000m1hf0vpwwlh72jjkjza36c1v8";
+    sha256 = "sha256-EAcgRaPgQ9BYH5HNVnb8rH/+6VehZjat7apPWDphZHA=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ]
     ++ concatMap(f: flavorInfo.${f}.nativeBuildInputs or []) enabledFlavors;
-  buildInputs = [ libgpg-error libassuan libcap libsecret ]
+  buildInputs = [ libgpg-error libassuan libsecret ]
+    ++ lib.optional (!stdenv.isDarwin) libcap
     ++ concatMap(f: flavorInfo.${f}.buildInputs or []) enabledFlavors;
 
   dontWrapGApps = true;
diff --git a/nixpkgs/pkgs/tools/security/polkit-gnome/default.nix b/nixpkgs/pkgs/tools/security/polkit-gnome/default.nix
index c4c9e9929d53..e0d57d9bde23 100644
--- a/nixpkgs/pkgs/tools/security/polkit-gnome/default.nix
+++ b/nixpkgs/pkgs/tools/security/polkit-gnome/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.gnome.org/Archive/policykit-gnome";
     description = "A dbus session bus service that is used to bring up authentication dialogs";
     license = lib.licenses.lgpl2Plus;
-    maintainers = with lib.maintainers; [ phreedom ];
+    maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/pwncat/default.nix b/nixpkgs/pkgs/tools/security/pwncat/default.nix
index 67cfac9085fa..398132c4cee7 100644
--- a/nixpkgs/pkgs/tools/security/pwncat/default.nix
+++ b/nixpkgs/pkgs/tools/security/pwncat/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonApplication rec {
   pname = "pwncat";
-  version = "0.1.1";
+  version = "0.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "62e625e9061f037cfca7b7455a4f7db4213c1d1302e73d4c475c63f924f1805f";
+    sha256 = "1230fdn5mx3wwr3a3nn6z2vwh973n248m11hnx9y3fjq7bgpky67";
   };
 
   # Tests requires to start containers
diff --git a/nixpkgs/pkgs/tools/security/pyrit/default.nix b/nixpkgs/pkgs/tools/security/pyrit/default.nix
deleted file mode 100644
index dc1d0b97f879..000000000000
--- a/nixpkgs/pkgs/tools/security/pyrit/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib, fetchFromGitHub, python2Packages, openssl, zlib, libpcap, opencl-headers, ocl-icd }:
-
-let
-  version = "2019-12-13";
-  src = fetchFromGitHub {
-    owner = "JPaulMora";
-    repo = "Pyrit";
-    rev = "f0f1913c645b445dd391fb047b812b5ba511782c";
-    sha256 = "1npkvngc4g3g6mpjip2wwhvcd4a75jy3dbddxhxhzrrz4p7259gr";
-  };
-
-  cpyrit_opencl = python2Packages.buildPythonPackage {
-    pname = "cpyrit-opencl";
-    inherit version;
-
-    src = "${src}/modules/cpyrit_opencl";
-
-    buildInputs = [ opencl-headers ocl-icd openssl zlib ];
-
-    postInstall = let
-      python = python2Packages.python;
-    in ''
-      # pyrit uses "import _cpyrit_cuda" so put the output in the root site-packages
-      mv $out/lib/${python.libPrefix}/site-packages/cpyrit/_cpyrit_opencl.so $out/lib/${python.libPrefix}/site-packages/
-    '';
-  };
-in
-python2Packages.buildPythonApplication rec {
-  pname = "pyrit";
-  inherit version src;
-
-  buildInputs = [ openssl zlib libpcap ];
-  propagatedBuildInputs = [ cpyrit_opencl ];
-
-  meta = with lib; {
-    homepage = "https://github.com/JPaulMora/Pyrit";
-    description = "GPGPU-driven WPA/WPA2-PSK key cracker";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ danielfullmer ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/security/qdigidoc/default.nix b/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
index 86dc3dfff335..b47a2455b672 100644
--- a/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
+++ b/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
@@ -1,25 +1,22 @@
-{ lib, mkDerivation, fetchgit, fetchurl, cmake, darkhttpd, gettext, makeWrapper, pkg-config
-, libdigidocpp, opensc, openldap, openssl, pcsclite, qtbase, qttranslations, qtsvg }:
+{ lib, mkDerivation, fetchurl, cmake, darkhttpd, gettext, makeWrapper
+, pkg-config, libdigidocpp, opensc, openldap, openssl, pcsclite, qtbase
+, qttranslations, qtsvg }:
 
 mkDerivation rec {
   pname = "qdigidoc";
-  version = "4.2.8";
+  version = "4.2.9";
 
-  src = fetchgit {
-    url = "https://github.com/open-eid/DigiDoc4-Client";
-    rev = "v${version}";
-    sha256 = "02k2s6l79ssvrksa0midm7bq856llrmq0n40yxwm3j011nvc8vsm";
-    fetchSubmodules = true;
+  src = fetchurl {
+    url =
+      "https://github.com/open-eid/DigiDoc4-Client/releases/download/v${version}/qdigidoc4-${version}.tar.gz";
+    sha256 = "1rhd3mvj6ld16zgfscj81f1vhs2nvifsizky509l1av7dsjfbbzr";
   };
 
   tsl = fetchurl {
-    url = "https://ec.europa.eu/information_society/policy/esignature/trusted-list/tl-mp.xml";
-    sha256 = "0klz9blrp0jjhlr9k1i266afp44pqmii1x0y8prk0417ia3fxpli";
+    url = "https://ec.europa.eu/tools/lotl/eu-lotl-pivot-300.xml";
+    sha256 = "1cikz36w9phgczcqnwk4k3mx3kk919wy2327jksmfa4cjfjq4a8d";
   };
 
-  # Adds explicit imports for QPainterPath, fixed in upstream (https://github.com/open-eid/DigiDoc4-Client/pull/914)
-  patches = [ ./qt5.15.patch ];
-
   nativeBuildInputs = [ cmake darkhttpd gettext makeWrapper pkg-config ];
 
   postPatch = ''
@@ -48,6 +45,6 @@ mkDerivation rec {
     homepage = "https://www.id.ee/";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ yegortimoshenko mmahut ];
+    maintainers = with maintainers; [ mmahut yana ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/qdigidoc/qt5.15.patch b/nixpkgs/pkgs/tools/security/qdigidoc/qt5.15.patch
deleted file mode 100644
index 6f390702348b..000000000000
--- a/nixpkgs/pkgs/tools/security/qdigidoc/qt5.15.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 1aa314f5433b9b3e89a1c05b5c465fb477435e23 Mon Sep 17 00:00:00 2001
-From: Dmitri Smirnov <dmitri@smirnov.ee>
-Date: Mon, 8 Mar 2021 14:15:27 +0100
-Subject: [PATCH] =?UTF-8?q?Added=20explicit=20imports=20for=20QPainterPath?=
- =?UTF-8?q?=20to=20fix=20builds=20with=20Qt=20=E2=89=A5=205.15?=
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Dmitri Smirnov <dmitri@smirnov.ee>
----
- client/widgets/CheckBox.cpp   | 1 +
- client/widgets/MainAction.cpp | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/client/widgets/CheckBox.cpp b/client/widgets/CheckBox.cpp
-index a03b56e5d..725d585b7 100644
---- a/client/widgets/CheckBox.cpp
-+++ b/client/widgets/CheckBox.cpp
-@@ -22,6 +22,7 @@
- #include <QBrush>
- #include <QPaintEvent>
- #include <QPainter>
-+#include <QPainterPath>
- #include <QStyleOptionButton>
- 
- CheckBox::CheckBox(QWidget *parent)
-diff --git a/client/widgets/MainAction.cpp b/client/widgets/MainAction.cpp
-index 4cf4bb1cf..a46c193e3 100644
---- a/client/widgets/MainAction.cpp
-+++ b/client/widgets/MainAction.cpp
-@@ -24,6 +24,7 @@
- 
- #include <QtCore/QSettings>
- #include <QtGui/QPainter>
-+#include <QtGui/QPainterPath>
- #include <QtGui/QPaintEvent>
- 
- using namespace ria::qdigidoc4;
diff --git a/nixpkgs/pkgs/tools/security/rage/default.nix b/nixpkgs/pkgs/tools/security/rage/default.nix
index 99e61dc23581..589a56adc329 100644
--- a/nixpkgs/pkgs/tools/security/rage/default.nix
+++ b/nixpkgs/pkgs/tools/security/rage/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rage";
-  version = "0.6.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "str4d";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1vag448zpjyplcjpf1ir81l8ip3yxm9vkrxffqr78zslb4k6hw2w";
+    sha256 = "sha256-0OQnYc1IWYscvSw5YZH54Fh8cBasLlcVqrQcQ4MAsU8=";
   };
 
-  cargoSha256 = "06jfhq9vnkq5g5bw1zl2sxsih63yajcyk9zaizhzkdsbhydr4955";
+  cargoSha256 = "sha256-31s70pgEQDw3uifmhv1iWQuzKQVc2q+f76PPnGKIYdc=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/security/rbw/default.nix b/nixpkgs/pkgs/tools/security/rbw/default.nix
index 17ecdee6d309..919fda9c67c5 100644
--- a/nixpkgs/pkgs/tools/security/rbw/default.nix
+++ b/nixpkgs/pkgs/tools/security/rbw/default.nix
@@ -9,27 +9,32 @@
 , Security
 , libiconv
 
-# rbw-fzf
-, withFzf ? false, fzf, perl
+  # rbw-fzf
+, withFzf ? false
+, fzf
+, perl
 
-# rbw-rofi
-, withRofi ? false, rofi, xclip
+  # rbw-rofi
+, withRofi ? false
+, rofi
+, xclip
 
-# pass-import
-, withPass ? false, pass
+  # pass-import
+, withPass ? false
+, pass
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rbw";
-  version = "1.3.0";
+  version = "1.4.1";
 
   src = fetchCrate {
     inherit version;
     crateName = pname;
-    sha256 = "17x4q29rsljbalc70r3ks4r6g5zc6jl4si75i33fcicxsvx6f39q";
+    sha256 = "sha256-RNdxAp3Q/xNrK1XcKZPMfuqxWzDtdhwT+nqG25SjJhI=";
   };
 
-  cargoSha256 = "14095ds8f5knrqcriphjlbvasc29n9rf8h5vlkmhpxyk7wh9azzc";
+  cargoSha256 = "sha256-I0KwHCmfYxgSF5IMHiPooaf2bypd6eYCOPSB+qnEBJY=";
 
   nativeBuildInputs = [
     pkg-config
@@ -39,7 +44,11 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv ];
 
-  postPatch = lib.optionalString withFzf ''
+  postPatch = ''
+    patchShebangs bin/git-credential-rbw
+    substituteInPlace bin/git-credential-rbw \
+        --replace rbw $out/bin/rbw
+  '' + lib.optionalString withFzf ''
     patchShebangs bin/rbw-fzf
     substituteInPlace bin/rbw-fzf \
         --replace fzf ${fzf}/bin/fzf \
@@ -65,6 +74,7 @@ rustPlatform.buildRustPackage rec {
       $out/bin/rbw gen-completions $shell > rbw.$shell
       installShellCompletion rbw.$shell
     done
+    cp bin/git-credential-rbw $out/bin
   '' + lib.optionalString withFzf ''
     cp bin/rbw-fzf $out/bin
   '' + lib.optionalString withRofi ''
diff --git a/nixpkgs/pkgs/tools/security/rekor/default.nix b/nixpkgs/pkgs/tools/security/rekor/default.nix
index 4ff36910bb1b..d982d73f5411 100644
--- a/nixpkgs/pkgs/tools/security/rekor/default.nix
+++ b/nixpkgs/pkgs/tools/security/rekor/default.nix
@@ -1,23 +1,32 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 let
   generic = { pname, packageToBuild, description }:
     buildGoModule rec {
       inherit pname;
-      version = "0.3.0";
+      version = "0.4.0";
 
       src = fetchFromGitHub {
         owner = "sigstore";
         repo = "rekor";
         rev = "v${version}";
-        sha256 = "sha256-FaVZm9C1pewJCZlYgNyD/ZYr/UIRvhqVTUhFTmysxeg=";
+        sha256 = "sha256-15p4hm4Cvs/yLaQIcxctVdMKRWPjIIFwBcbru6QcjXo=";
       };
 
-      vendorSha256 = "sha256-EBKj/+ruE88qvlbOme4GBfAqt3/1jHcqhY0IHxh6Y5U=";
+      vendorSha256 = "sha256-XCCO4Vamzj5pJFmu1A8mpTLlVAtocrn20myYJVWtBrY=";
+
+      nativeBuildInputs = [ installShellFiles ];
 
       subPackages = [ packageToBuild ];
 
-      ldflags = [ "-s" "-w" "-X github.com/sigstore/rekor/${packageToBuild}/app.gitVersion=v${version}" ];
+      ldflags = [ "-s" "-w" "-X github.com/sigstore/rekor/${packageToBuild}/app.GitVersion=v${version}" ];
+
+      postInstall = ''
+        installShellCompletion --cmd ${pname} \
+          --bash <($out/bin/${pname} completion bash) \
+          --fish <($out/bin/${pname} completion fish) \
+          --zsh <($out/bin/${pname} completion zsh)
+      '';
 
       meta = with lib; {
         inherit description;
diff --git a/nixpkgs/pkgs/tools/security/rhash/default.nix b/nixpkgs/pkgs/tools/security/rhash/default.nix
index 68bf35a751e7..e82052d961b8 100644
--- a/nixpkgs/pkgs/tools/security/rhash/default.nix
+++ b/nixpkgs/pkgs/tools/security/rhash/default.nix
@@ -1,23 +1,37 @@
-{ lib, stdenv, fetchFromGitHub, which
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, which
 , enableStatic ? stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.4.1";
+  version = "1.4.2";
   pname = "rhash";
 
   src = fetchFromGitHub {
     owner = "rhash";
     repo = "RHash";
     rev = "v${version}";
-    sha256 = "sha256-kmi1FtJYPBUdMfJlzEsQkTwcYB99isP3yzH1EYlk54g=";
+    sha256 = "sha256-HkDgWwHoRWCNtWyfP4sj3veEd+KT5J7yL4J4Z/hJcrE=";
   };
 
+  patches = [
+    # Fix clang configuration; remove with next release
+    (fetchpatch {
+      url = "https://github.com/rhash/RHash/commit/4dc506066cf1727b021e6352535a8bb315c3f8dc.patch";
+      sha256 = "0i5jz2s37h278c8d36pzphhp8rjy660zmhpg2cqlp960f6ny8wwj";
+    })
+  ];
+
   nativeBuildInputs = [ which ];
 
   # configure script is not autotools-based, doesn't support these options
   dontAddStaticConfigureFlags = true;
+
   configurePlatforms = [ ];
+
   configureFlags = [
     "--ar=${stdenv.cc.targetPrefix}ar"
     (lib.enableFeature enableStatic "static")
@@ -28,14 +42,18 @@ stdenv.mkDerivation rec {
 
   checkTarget = "test-full";
 
-  installTargets = [ "install" "install-lib-headers" ]
-    ++ lib.optional (!enableStatic) "install-lib-so-link";
+  installTargets = [
+    "install"
+    "install-lib-headers"
+  ] ++ lib.optional (!enableStatic) [
+    "install-lib-so-link"
+  ];
 
   meta = with lib; {
     homepage = "http://rhash.sourceforge.net/";
     description = "Console utility and library for computing and verifying hash sums of files";
     license = licenses.bsd0;
     platforms = platforms.all;
-    maintainers = [ maintainers.andrewrk ];
+    maintainers = with maintainers; [ andrewrk ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/ripasso/cursive.nix b/nixpkgs/pkgs/tools/security/ripasso/cursive.nix
index 3126dd9fe57f..1a2ed1374611 100644
--- a/nixpkgs/pkgs/tools/security/ripasso/cursive.nix
+++ b/nixpkgs/pkgs/tools/security/ripasso/cursive.nix
@@ -2,19 +2,19 @@
 
 with rustPlatform;
 buildRustPackage rec {
-  version = "0.5.1";
+  version = "0.5.2";
   pname = "ripasso-cursive";
 
   src = fetchFromGitHub {
     owner = "cortex";
     repo = "ripasso";
     rev  = "release-${version}";
-    sha256 = "1jx6qv7skikl1ap3g1r34rkz4ab756kra7dgwwv45vl2fb6x74k4";
+    sha256 = "sha256-De/xCDzdRHCslD0j6vT8bwjcMTf5R8KZ32aaB3i+Nig=";
   };
 
   patches = [ ./fix-tests.patch ];
 
-  cargoSha256 = "1li1gmcs7lnjr4qhzs0rrgngdcxy1paiibjwk9zx2rrs71021cgk";
+  cargoSha256 = "sha256-ZmHzxHV4uIxPlLkkOLJApPNLo0GGVj9EopoIwi/j6DE=";
 
   cargoBuildFlags = [ "-p ripasso-cursive" ];
 
diff --git a/nixpkgs/pkgs/tools/security/safe/default.nix b/nixpkgs/pkgs/tools/security/safe/default.nix
index 747528b0ac4e..6b5160e7e753 100644
--- a/nixpkgs/pkgs/tools/security/safe/default.nix
+++ b/nixpkgs/pkgs/tools/security/safe/default.nix
@@ -1,22 +1,22 @@
 { lib
-, buildGoPackage
+, buildGoModule
 , fetchFromGitHub
 }:
 
-with builtins;
-
-buildGoPackage rec {
+buildGoModule rec {
   pname = "safe";
-  version = "1.5.1";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "starkandwayne";
     repo = "safe";
     rev = "v${version}";
-    sha256 = "12gzxrnyl890h79z9yx23m1wwgy8ahm74q4qwi8n2nh7ydq6mn2d";
+    sha256 = "sha256-ankX4BeMvBEd0e01mQHfaPg4z1z+IZqELaSEJ5deF8Y=";
   };
 
-  goPackagePath = "github.com/starkandwayne/safe";
+  vendorSha256 = "sha256-7hX35FfFxfoiI/dSxWhZH8iJoRWa4slAJF0lULq8KL4=";
+
+  subPackages = [ "." ];
 
   ldflags = [
     "-X main.Version=${version}"
diff --git a/nixpkgs/pkgs/tools/security/saml2aws/default.nix b/nixpkgs/pkgs/tools/security/saml2aws/default.nix
index bd49721a68a2..6d96025f0ce3 100644
--- a/nixpkgs/pkgs/tools/security/saml2aws/default.nix
+++ b/nixpkgs/pkgs/tools/security/saml2aws/default.nix
@@ -2,17 +2,16 @@
 
 buildGoModule rec {
   pname = "saml2aws";
-  version = "2.32.0";
+  version = "2.33.0";
 
   src = fetchFromGitHub {
     owner = "Versent";
     repo = "saml2aws";
     rev = "v${version}";
-    sha256 = "sha256-VMNK6kmMPe1Qwfb/NmMaBhtdqg59KmtiankVNZmhNdY=";
+    sha256 = "sha256-99URhGJJKO4l+ztMGljiuNKVTYIG2iyWUMBXG1WTPdI=";
   };
 
-  runVend = true;
-  vendorSha256 = "sha256-2tu3wSp9N+icpKvDeUgzYRLc6jXivn1D0jX/5LSgwNw=";
+  vendorSha256 = "sha256-oUEgJ1DDzhKUpYevylIr+1X28xFGaWMh5+q1HTqOHaU=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ AppKit ];
 
diff --git a/nixpkgs/pkgs/tools/security/sammler/default.nix b/nixpkgs/pkgs/tools/security/sammler/default.nix
index f5bfab987a17..083422cf9919 100644
--- a/nixpkgs/pkgs/tools/security/sammler/default.nix
+++ b/nixpkgs/pkgs/tools/security/sammler/default.nix
@@ -15,16 +15,14 @@ buildGoModule rec {
     sha256 = "1gsv83sbqc9prkigbjvkhh547w12l3ynbajpnbqyf8sz4bd1nj5c";
   };
 
-  vendorSha256 = "1510rhdac8v21kpp00q8yy6b13hgac8547d7f5q7nwrgnihg03w4";
+  vendorSha256 = "sha256-0ZBPLONUZyazZ22oLO097hdX5xuHx2G6rZCAsCwqq4s=";
 
   subPackages = [ "." ];
 
-  runVend = true;
-
   meta = with lib; {
     description = "Tool to extract useful data from documents";
     homepage = "https://github.com/redcode-labs/Sammler";
     license = licenses.mit;
-    maintainers = with maintainers; [ fab ];
+    maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/scorecard/default.nix b/nixpkgs/pkgs/tools/security/scorecard/default.nix
index 0cc94c63c9f0..e08ff55bc18b 100644
--- a/nixpkgs/pkgs/tools/security/scorecard/default.nix
+++ b/nixpkgs/pkgs/tools/security/scorecard/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "scorecard";
-  version = "3.0.1";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner = "ossf";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-19XDAgv9ARCZ7eNlWUPcsbGNyKA9vYFry8m6D3+vQP8=";
+    sha256 = "sha256-MVFhw/r1sws82oofV4LHmiSlKxyYd8abYq8oFiB0HH8=";
     # populate values otherwise taken care of by goreleaser,
     # unfortunately these require us to use git. By doing
     # this in postFetch we can delete .git afterwards and
@@ -27,7 +27,7 @@ buildGoModule rec {
       find "$out" -name .git -print0 | xargs -0 rm -rf
     '';
   };
-  vendorSha256 = "sha256-ucF26pTEvG8tkzsyC9WNbvl8QCeetKBvBIcQL2NTfjo=";
+  vendorSha256 = "sha256-WrM2aE0z6SnfoPEBqgn1TO6sSGPMrQvL6+ddvOS2w1k=";
 
   # Install completions post-install
   nativeBuildInputs = [ installShellFiles ];
diff --git a/nixpkgs/pkgs/tools/security/scrypt/default.nix b/nixpkgs/pkgs/tools/security/scrypt/default.nix
index 89ff50e0a8a0..5a3ab9cb68b4 100644
--- a/nixpkgs/pkgs/tools/security/scrypt/default.nix
+++ b/nixpkgs/pkgs/tools/security/scrypt/default.nix
@@ -1,4 +1,10 @@
-{ lib, stdenv, fetchurl, openssl, util-linux, getconf }:
+{ lib
+, stdenv
+, fetchurl
+, openssl
+, getconf
+, util-linux
+}:
 
 stdenv.mkDerivation rec {
   pname = "scrypt";
@@ -27,7 +33,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
   checkTarget = "test";
-  checkInputs = [ util-linux ];
+  checkInputs = lib.optionals stdenv.isLinux [ util-linux ];
 
   meta = with lib; {
     description = "Encryption utility";
diff --git a/nixpkgs/pkgs/tools/security/sedutil/default.nix b/nixpkgs/pkgs/tools/security/sedutil/default.nix
index 6ed4a23af1dd..cb0e367fa2cc 100644
--- a/nixpkgs/pkgs/tools/security/sedutil/default.nix
+++ b/nixpkgs/pkgs/tools/security/sedutil/default.nix
@@ -1,28 +1,34 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "sedutil";
-  version = "1.15.1";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
-    owner  = "Drive-Trust-Alliance";
-    repo   = "sedutil";
-    rev    = version;
-    sha256 = "0zg5v27vbrzzl2vqzks91zj48z30qgcshkqkm1g8ycnhi145l0mf";
+    owner = "Drive-Trust-Alliance";
+    repo = "sedutil";
+    rev = version;
+    sha256 = "sha256-NG/7aqe48ShHWW5hW8axYWV4+zX0dBE7Wy9q58l0S3E=";
   };
 
   postPatch = ''
     patchShebangs .
   '';
 
-  nativeBuildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [
+    autoreconfHook
+  ];
 
   enableParallelBuilding = true;
 
   meta = with lib; {
     description = "DTA sedutil Self encrypting drive software";
-    homepage    = "https://www.drivetrust.com";
-    license     = licenses.gpl3;
-    platforms   = platforms.linux;
+    homepage = "https://www.drivetrust.com";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/sheesy-cli/default.nix b/nixpkgs/pkgs/tools/security/sheesy-cli/default.nix
index ea71be7c9534..4be2189e2935 100644
--- a/nixpkgs/pkgs/tools/security/sheesy-cli/default.nix
+++ b/nixpkgs/pkgs/tools/security/sheesy-cli/default.nix
@@ -14,12 +14,16 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "159a5ph1gxwcgahyr8885lq3c1w76nxzfrfdpyqixqrr7jzx2rd3";
   cargoDepsName = pname;
 
-  cargoBuildFlags = [ "--bin sy" "--features" "vault,extract,completions,substitute,process" ];
-
   nativeBuildInputs = [ libgpg-error gpgme gettext installShellFiles ];
 
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
 
+  buildFeatures = [ "vault" "extract" "completions" "substitute" "process" ];
+
+  checkFeatures = [ ];
+
+  cargoBuildFlags = [ "--bin" "sy" ];
+
   postInstall = ''
     installShellCompletion --cmd sy \
       --bash <($out/bin/sy completions bash) \
diff --git a/nixpkgs/pkgs/tools/security/sn0int/default.nix b/nixpkgs/pkgs/tools/security/sn0int/default.nix
index bdcfe6e28bac..b2d812d521af 100644
--- a/nixpkgs/pkgs/tools/security/sn0int/default.nix
+++ b/nixpkgs/pkgs/tools/security/sn0int/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sn0int";
-  version = "0.22.0";
+  version = "0.24.1";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-0BadgWZhP73WOVO18jtcdhsM0L7AM0TQ3PF7MNJM7M0=";
+    sha256 = "sha256-AP/3QCol2qOvRqNW9F/m9JpiZrqtfXvr//Ku2XE3vqY=";
   };
 
-  cargoSha256 = "sha256-KYrJIOaFX2wTDj4KeHn3d8wBHfVevCKQK/bDglfLWAU=";
+  cargoSha256 = "sha256-gdDQjYU8hJdkQCh1Iswn5KlPW2BT/J5vCSOS/KHvbH4=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/tools/security/snallygaster/default.nix b/nixpkgs/pkgs/tools/security/snallygaster/default.nix
index e77743d86480..31619ea7f543 100644
--- a/nixpkgs/pkgs/tools/security/snallygaster/default.nix
+++ b/nixpkgs/pkgs/tools/security/snallygaster/default.nix
@@ -5,13 +5,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "snallygaster";
-  version = "0.0.10";
+  version = "0.0.11";
 
   src = fetchFromGitHub {
     owner = "hannob";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1xd483sl94zhs7yhc52s0zrn3pj7vf5izggp4ap1d2j0lbwwcyka";
+    sha256 = "sha256-xUWnu+T6+5Ro6TrmtFD/Qd40FffY5rfuAvWzNkBhTME=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/tools/security/snowcat/default.nix b/nixpkgs/pkgs/tools/security/snowcat/default.nix
new file mode 100644
index 000000000000..e6211caec556
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/snowcat/default.nix
@@ -0,0 +1,33 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "snowcat";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "praetorian-inc";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-EulQYGOMIh952e4Xp13hT/HMW3qP1QXYtt5PEej1VTY=";
+  };
+  vendorSha256 = "sha256-D6ipwGMxT0B3uYUzg6Oo2TYnsOVBY0mYO5lC7vtVPc0=";
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/praetorian-inc/snowcat";
+    changelog = "https://github.com/praetorian-inc/snowcat/releases/tag/v${version}";
+    description = "A tool to audit the istio service mesh";
+    longDescription = ''
+      Snowcat gathers and analyzes the configuration of an Istio cluster and
+      audits it for potential violations of security best practices.
+
+      There are two main modes of operation for Snowcat. With no positional
+      argument, Snowcat will assume it is running inside of a cluster enabled
+      with Istio, and begin to enumerate the required data. Optionally, you can
+      point snowcat at a directory containing Kubernets YAML files.
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jk ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/snowcrash/default.nix b/nixpkgs/pkgs/tools/security/snowcrash/default.nix
index cd85ff90bf91..bce05ed8f2e9 100644
--- a/nixpkgs/pkgs/tools/security/snowcrash/default.nix
+++ b/nixpkgs/pkgs/tools/security/snowcrash/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildGoModule
 , fetchFromGitHub
 }:
@@ -14,13 +15,11 @@ buildGoModule rec {
     sha256 = "16p1nfi9zdlcffjyrk1phrippjqrdzf3cpc51dgdy3bfr7pds2ld";
   };
 
-  vendorSha256 = "1xm2yjr4mqkara3yib6vgfj14ldh7r0v1vr2i0ks13l1rm54x840";
+  vendorSha256 = "sha256-YryQKLHwUDhR/Z7eWfCdL86Z83GrqBTvdGGj+dGKvjI";
 
   subPackages = [ "." ];
 
-  runVend = true;
-
-  postFixup = ''
+  postFixup = lib.optionals (!stdenv.isDarwin) ''
     mv $out/bin/SNOWCRASH $out/bin/${pname}
   '';
 
@@ -28,6 +27,6 @@ buildGoModule rec {
     description = "Polyglot payload generator";
     homepage = "https://github.com/redcode-labs/SNOWCRASH";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ fab ];
+    maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/srm/default.nix b/nixpkgs/pkgs/tools/security/srm/default.nix
index 587d7782e765..8e4b3e697312 100644
--- a/nixpkgs/pkgs/tools/security/srm/default.nix
+++ b/nixpkgs/pkgs/tools/security/srm/default.nix
@@ -1,12 +1,11 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-
-  name = "srm-" + version;
+  pname = "srm";
   version = "1.2.15";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/srm/${version}/${name}.tar.gz";
+    url = "mirror://sourceforge/project/srm/${version}/srm-${version}.tar.gz";
     sha256 = "10sjarhprs6s4zandndg720528rcnd4xk8dl48pjj7li1q9c30vm";
   };
 
diff --git a/nixpkgs/pkgs/tools/security/sslscan/default.nix b/nixpkgs/pkgs/tools/security/sslscan/default.nix
index 4bd7a3ff2214..1c9dfc36107a 100644
--- a/nixpkgs/pkgs/tools/security/sslscan/default.nix
+++ b/nixpkgs/pkgs/tools/security/sslscan/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sslscan";
-  version = "2.0.10";
+  version = "2.0.11";
 
   src = fetchFromGitHub {
     owner = "rbsec";
     repo = "sslscan";
     rev = version;
-    sha256 = "sha256-L6cNmvR6zy2tkMHh+LBsQ3VZDUr0tD5AlOEj+dTLV5k=";
+    sha256 = "sha256-ROdi1pU2VeswmItHOSZimOkPYlgdqEMg2b7zt0f9WrM=";
   };
 
   buildInputs = [ openssl ];
diff --git a/nixpkgs/pkgs/tools/security/stacs/default.nix b/nixpkgs/pkgs/tools/security/stacs/default.nix
new file mode 100644
index 000000000000..352c217b76a4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/stacs/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "stacs";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "stacscan";
+    repo = pname;
+    rev = version;
+    sha256 = "00ZYdpJktqUXdzPcouHyZcOQyFm7jdFNVuDqsufOviE=";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    setupmeta
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    click
+    pydantic
+    typing-extensions
+    yara-python
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "stacs"
+  ];
+
+  meta = with lib; {
+    description = "Static token and credential scanner";
+    homepage = "https://github.com/stacscan/stacs";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/step-ca/default.nix b/nixpkgs/pkgs/tools/security/step-ca/default.nix
index f99e1fe74db8..d403d7283171 100644
--- a/nixpkgs/pkgs/tools/security/step-ca/default.nix
+++ b/nixpkgs/pkgs/tools/security/step-ca/default.nix
@@ -7,20 +7,21 @@
 , PCSC
 , pkg-config
 , hsmSupport ? true
+, nixosTests
 }:
 
 buildGoModule rec {
   pname = "step-ca";
-  version = "0.17.4";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = "certificates";
     rev = "v${version}";
-    sha256 = "sha256-X4dOrd/wxtYLw3C4Lj88RV/J6CEkmsOeqtiVX/6VFHg=";
+    sha256 = "sha256-f9sp5sAWysOOoIdCiCJxTWRhyt0wfpO5p4pxW6jj0xc=";
   };
 
-  vendorSha256 = "sha256-/8Glo+U8MS8Y8mKECgTAB7JWmp/rjMQhG4nZkNs+Zgs=";
+  vendorSha256 = "sha256-iDfPCRU91cuZsKqNOjkLGYmWf8i5FO4NmDsfD5Xqip0=";
 
   ldflags = [ "-buildid=" ];
 
@@ -46,6 +47,8 @@ buildGoModule rec {
   # panic: httptest: failed to listen on a port: listen tcp6 [::1]:0: bind: operation not permitted
   __darwinAllowLocalNetworking = true;
 
+  passthru.tests.step-ca = nixosTests.step-ca;
+
   meta = with lib; {
     description = "A private certificate authority (X.509 & SSH) & ACME server for secure automated certificate management, so you can use TLS everywhere & SSO for SSH";
     homepage = "https://smallstep.com/certificates/";
diff --git a/nixpkgs/pkgs/tools/security/step-cli/default.nix b/nixpkgs/pkgs/tools/security/step-cli/default.nix
index 6908b54a2759..900469909271 100644
--- a/nixpkgs/pkgs/tools/security/step-cli/default.nix
+++ b/nixpkgs/pkgs/tools/security/step-cli/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "step-cli";
-  version = "0.17.6";
+  version = "0.17.7";
 
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-xkdn6e8He/yVvTubi88tVpU8I0XNEeJSzosbkCUZODk=";
+    sha256 = "sha256-Qg71JcnA+20zme1ltG4J6qht4P46J5sHPjV3w4HCKPc=";
   };
 
   ldflags = [
@@ -25,7 +25,7 @@ buildGoModule rec {
     rm command/certificate/remote_test.go
   '';
 
-  vendorSha256 = "sha256-/aN3lXc3mPk3wIpNVjBXz35NlWNg8tob8q2oJ7Az2Bs=";
+  vendorSha256 = "sha256-kVvbSTybO23zb1ivCrjZqkM44ljPGD1GdBv76qCpTEQ=";
 
   meta = with lib; {
     description = "A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc";
@@ -33,5 +33,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ xfix ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "step";
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/swtpm/default.nix b/nixpkgs/pkgs/tools/security/swtpm/default.nix
index fa2d774e1174..f05658f8a98e 100644
--- a/nixpkgs/pkgs/tools/security/swtpm/default.nix
+++ b/nixpkgs/pkgs/tools/security/swtpm/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchFromGitHub, fetchpatch
+, fetchFromGitHub
 , autoreconfHook
 , pkg-config
 , libtasn1, openssl, fuse, glib, libseccomp, json-glib
@@ -8,31 +8,32 @@
 , unixtools, expect, socat
 , gnutls
 , perl
+
+# Tests
+, python3, which
 }:
 
 stdenv.mkDerivation rec {
   pname = "swtpm";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "stefanberger";
     repo = "swtpm";
     rev = "v${version}";
-    sha256 = "sha256-7YzdwGAGECj7PhaCOf/dLSILPXqtbylCkN79vuFBw5Y=";
+    sha256 = "sha256-5MKQmZxTW8WofmTkV9kGeGN5RxsgVVMFZEF3rPDUO6Q=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/stefanberger/swtpm/pull/527.patch";
-      sha256 = "sha256-cpKHP15a27ifmmswSgHoNzGPO6TY/ZuJIfM5xLOlqlU=";
-    })
-  ];
-
   nativeBuildInputs = [
     pkg-config unixtools.netstat expect socat
     perl # for pod2man
     autoreconfHook
   ];
+
+  checkInputs = [
+    python3 which
+  ];
+
   buildInputs = [
     libtpms
     openssl libtasn1 libseccomp
@@ -45,18 +46,21 @@ stdenv.mkDerivation rec {
     "--localstatedir=/var"
   ];
 
-  prePatch = ''
-    # Makefile tries to create the directory /var/lib/swtpm-localcafor, which fails
+  postPatch = ''
+    patchShebangs tests/*
+
+    # Makefile tries to create the directory /var/lib/swtpm-localca, which fails
     substituteInPlace samples/Makefile.am \
         --replace 'install-data-local:' 'do-not-execute:'
 
     # Use the correct path to the certtool binary
     # instead of relying on it being in the environment
-    substituteInPlace samples/swtpm_localca.c --replace \
+    substituteInPlace src/swtpm_localca/swtpm_localca.c --replace \
         '# define CERTTOOL_NAME "certtool"' \
         '# define CERTTOOL_NAME "${gnutls}/bin/certtool"'
   '';
 
+  doCheck = true;
   enableParallelBuilding = true;
 
   outputs = [ "out" "man" ];
diff --git a/nixpkgs/pkgs/tools/security/tboot/default.nix b/nixpkgs/pkgs/tools/security/tboot/default.nix
index 86051c51dece..d11426a2b48c 100644
--- a/nixpkgs/pkgs/tools/security/tboot/default.nix
+++ b/nixpkgs/pkgs/tools/security/tboot/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tboot";
-  version = "1.10.2";
+  version = "1.10.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/tboot/${pname}-${version}.tar.gz";
-    sha256 = "sha256-Lheco7ULg87lbC8qXkCWwG3R8jiPdQgznDkPBPy6sRE=";
+    sha256 = "sha256-ixFs9Bd6VNT1n5RU6n38hFR+m4+SBNzwrCNXRmCHgOQ=";
   };
 
   buildInputs = [ openssl trousers zlib ];
diff --git a/nixpkgs/pkgs/tools/security/terrascan/default.nix b/nixpkgs/pkgs/tools/security/terrascan/default.nix
index 0308bc5d35bc..da338ba347ca 100644
--- a/nixpkgs/pkgs/tools/security/terrascan/default.nix
+++ b/nixpkgs/pkgs/tools/security/terrascan/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "terrascan";
-  version = "1.11.0";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "accurics";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-vKKBbTculy/r1l3lHnHiBZLAwhw/61kDAsypa0o2VXQ=";
+    sha256 = "sha256-DYWp7D2CQxasEYkoCEa0KdFQDvo4rNgRcTKzxYLsYFg=";
   };
 
   vendorSha256 = "0vx406y3kj1qmgr1y9vg3rprwjpm5g8p9shmhq28gp7sxz3j82ry";
diff --git a/nixpkgs/pkgs/tools/security/theharvester/default.nix b/nixpkgs/pkgs/tools/security/theharvester/default.nix
index dc1596facdff..81bcd66948f3 100644
--- a/nixpkgs/pkgs/tools/security/theharvester/default.nix
+++ b/nixpkgs/pkgs/tools/security/theharvester/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "theharvester";
-  version = "4.0.0";
+  version = "4.0.3";
 
   src = fetchFromGitHub {
     owner = "laramies";
     repo = pname;
     rev = version;
-    sha256 = "02jhk34znpvq522pqr3x4c0rljw37x62znwycijf1zx81dpbn4rm";
+    sha256 = "sha256-Ckouhe/Uq6Dv9p/LRpPQkiKuYrwrl/Z7KkYYamDHav8=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -27,6 +27,7 @@ python3.pkgs.buildPythonApplication rec {
     fastapi
     lxml
     netaddr
+    orjson
     plotly
     pyppeteer
     pyyaml
diff --git a/nixpkgs/pkgs/tools/security/tor/default.nix b/nixpkgs/pkgs/tools/security/tor/default.nix
index a472b502b612..76bfee421968 100644
--- a/nixpkgs/pkgs/tools/security/tor/default.nix
+++ b/nixpkgs/pkgs/tools/security/tor/default.nix
@@ -30,11 +30,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "tor";
-  version = "0.4.6.7";
+  version = "0.4.6.9";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${pname}-${version}.tar.gz";
-    sha256 = "16hga7195va8v0x062dc05nbz4sm3dscifcqpl8235dj47hmqrpz";
+    sha256 = "1ad99k4wysxrnlaprv7brxr2nc0h5zdnrh0rma10pqlck2037sf7";
   };
 
   outputs = [ "out" "geoip" ];
@@ -61,7 +61,14 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  doCheck = true;
+  # disable tests on aarch64-darwin, the following tests fail there:
+  # oom/circbuf: [forking]
+  #   FAIL src/test/test_oom.c:187: assert(c1->marked_for_close)
+  #   [circbuf FAILED]
+  # oom/streambuf: [forking]
+  #   FAIL src/test/test_oom.c:287: assert(x_ OP_GE 500 - 5): 0 vs 495
+  #   [streambuf FAILED]
+  doCheck = !(stdenv.isDarwin && stdenv.isAarch64);
 
   postInstall = ''
     mkdir -p $geoip/share/tor
@@ -106,7 +113,7 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
 
     maintainers = with maintainers;
-      [ phreedom thoughtpolice joachifm prusnak ];
+      [ thoughtpolice joachifm prusnak ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/tor/disable-monotonic-timer-tests.patch b/nixpkgs/pkgs/tools/security/tor/disable-monotonic-timer-tests.patch
index a95a373bbb64..bb124c394f25 100644
--- a/nixpkgs/pkgs/tools/security/tor/disable-monotonic-timer-tests.patch
+++ b/nixpkgs/pkgs/tools/security/tor/disable-monotonic-timer-tests.patch
@@ -2,7 +2,7 @@ diff --git a/src/test/test_util.c b/src/test/test_util.c
 index 0d86a5ab5..e93c6ba89 100644
 --- a/src/test/test_util.c
 +++ b/src/test/test_util.c
-@@ -5829,13 +5829,9 @@ test_util_monotonic_time(void *arg)
+@@ -6490,13 +6490,9 @@ test_util_monotonic_time(void *arg)
    /* We need to be a little careful here since we don't know the system load.
     */
    tt_i64_op(monotime_diff_msec(&mt1, &mt2), OP_GE, 175);
@@ -16,11 +16,33 @@ index 0d86a5ab5..e93c6ba89 100644
  
    tt_u64_op(msec1, OP_GE, nsec1 / 1000000);
    tt_u64_op(usec1, OP_GE, nsec1 / 1000);
-@@ -5849,7 +5845,6 @@ test_util_monotonic_time(void *arg)
+@@ -6509,8 +6509,6 @@ test_util_monotonic_time(void *arg)
+ 
    uint64_t coarse_stamp_diff =
      monotime_coarse_stamp_units_to_approx_msec(stamp2-stamp1);
-   tt_u64_op(coarse_stamp_diff, OP_GE, 120);
+-  tt_u64_op(coarse_stamp_diff, OP_GE, 120);
 -  tt_u64_op(coarse_stamp_diff, OP_LE, 1200);
  
    {
      uint64_t units = monotime_msec_to_approx_coarse_stamp_units(5000);
+@@ -6515,8 +6515,8 @@ test_util_monotonic_time(void *arg)
+   {
+     uint64_t units = monotime_msec_to_approx_coarse_stamp_units(5000);
+     uint64_t ms = monotime_coarse_stamp_units_to_approx_msec(units);
+-    tt_u64_op(ms, OP_GE, 4950);
+-    tt_u64_op(ms, OP_LT, 5050);
++    tt_u64_op(ms, OP_GE, 4000);
++    tt_u64_op(ms, OP_LT, 6000);
+   }
+ 
+  done:
+@@ -6640,9 +6640,6 @@ test_util_monotonic_time_add_msec(void *arg)
+   monotime_coarse_add_msec(&ct2, &ct1, 1337);
+   tt_i64_op(monotime_diff_msec(&t1, &t2), OP_EQ, 1337);
+   tt_i64_op(monotime_coarse_diff_msec(&ct1, &ct2), OP_EQ, 1337);
+-  // The 32-bit variant must be within 1% of the regular one.
+-  tt_int_op(monotime_coarse_diff_msec32_(&ct1, &ct2), OP_GT, 1323);
+-  tt_int_op(monotime_coarse_diff_msec32_(&ct1, &ct2), OP_LT, 1350);
+ 
+   /* Add 1337 msec twice more; make sure that any second rollover issues
+    * worked. */
diff --git a/nixpkgs/pkgs/tools/security/tor/tor-arm.nix b/nixpkgs/pkgs/tools/security/tor/tor-arm.nix
deleted file mode 100644
index fcdb628e0f4a..000000000000
--- a/nixpkgs/pkgs/tools/security/tor/tor-arm.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ lib, stdenv, fetchurl, makeWrapper
-, python2Packages, ncurses, lsof, nettools
-}:
-
-stdenv.mkDerivation rec {
-  pname = "tor-arm";
-  version = "1.4.5.0";
-
-  src = fetchurl {
-    url = "https://www.atagar.com/arm/resources/static/arm-${version}.tar.bz2";
-    sha256 = "1yi87gdglkvi1a23hv5c3k7mc18g0rw7b05lfcw81qyxhlapf3pw";
-  };
-
-  nativeBuildInputs = [ makeWrapper python2Packages.python ];
-
-  outputs = [ "out" "man" ];
-
-  postPatch = ''
-    substituteInPlace ./setup.py --replace "/usr/bin" "$out/bin"
-    substituteInPlace ./src/util/connections.py \
-      --replace "lsof -wnPi"   "${lsof}/bin/lsof"
-    substituteInPlace ./src/util/torTools.py \
-      --replace "netstat -npl" "${nettools}/bin/netstat -npl" \
-      --replace "lsof -wnPi"   "${lsof}/bin/lsof"
-
-    substituteInPlace ./arm --replace '"$0" = /usr/bin/arm' 'true'
-    substituteInPlace ./arm --replace "python" "${python2Packages.python}/bin/python"
-
-    for i in ./install ./arm ./src/gui/controller.py ./src/cli/wizard.py ./src/resources/torrcOverride/override.h ./src/resources/torrcOverride/override.py ./src/resources/arm.1 ./setup.py; do
-      substituteInPlace $i --replace "/usr/share" "$out/share"
-    done
-
-    # fixes man page installation
-    substituteInPlace ./setup.py --replace "src/resoureces" "src/resources"
-  '';
-
-  installPhase = ''
-    mkdir -p $out/share/arm $out/bin $out/libexec
-    python setup.py install --prefix=$out --docPath $out/share/doc/arm
-    cp -R src/TorCtl $out/libexec
-
-    wrapProgram $out/bin/arm \
-      --prefix PYTHONPATH : "$(toPythonPath $out):$out/libexec:$PYTHONPATH" \
-      --set TERMINFO "${ncurses.out}/share/terminfo" \
-      --set TERM "xterm"
-  '';
-
-  meta = {
-    description = "A terminal status monitor for Tor relays";
-    homepage    = "https://www.atagar.com/arm/";
-    license     = lib.licenses.gpl3;
-    platforms   = lib.platforms.unix;
-    maintainers = [ lib.maintainers.thoughtpolice ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/security/tor/torsocks.nix b/nixpkgs/pkgs/tools/security/tor/torsocks.nix
index 22cfa51d4e52..399afe7f75cb 100644
--- a/nixpkgs/pkgs/tools/security/tor/torsocks.nix
+++ b/nixpkgs/pkgs/tools/security/tor/torsocks.nix
@@ -38,6 +38,6 @@ stdenv.mkDerivation rec {
     repositories.git = "https://git.torproject.org/torsocks.git";
     license          = lib.licenses.gpl2;
     platforms        = lib.platforms.unix;
-    maintainers      = with lib.maintainers; [ phreedom thoughtpolice ];
+    maintainers      = with lib.maintainers; [ thoughtpolice ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/tpm-luks/default.nix b/nixpkgs/pkgs/tools/security/tpm-luks/default.nix
index 2af4a742208c..4aab72cb5dfc 100644
--- a/nixpkgs/pkgs/tools/security/tpm-luks/default.nix
+++ b/nixpkgs/pkgs/tools/security/tpm-luks/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation {
   pname = "tpm-luks";
-  version = "git-2015-07-11";
+  version = "unstable-2015-07-11";
 
   src = fetchgit {
     url = "https://github.com/momiji/tpm-luks";
@@ -23,14 +23,14 @@ stdenv.mkDerivation {
     make install DESTDIR=$out
     mv $out/$out/sbin $out/bin
     rm -r $out/nix
-    '';
+  '';
 
   meta = with lib; {
     description = "LUKS key storage in TPM NVRAM";
-    homepage    = "https://github.com/shpedoikal/tpm-luks/";
+    homepage = "https://github.com/shpedoikal/tpm-luks/";
     maintainers = [ maintainers.tstrobel ];
     license = with licenses; [ gpl2Only ];
-    platforms   = platforms.linux;
+    platforms = platforms.linux;
   };
 }
 
diff --git a/nixpkgs/pkgs/tools/security/tpm2-tools/default.nix b/nixpkgs/pkgs/tools/security/tpm2-tools/default.nix
index 25a781d8fd86..3a2e62d4b595 100644
--- a/nixpkgs/pkgs/tools/security/tpm2-tools/default.nix
+++ b/nixpkgs/pkgs/tools/security/tpm2-tools/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tpm2-tools";
-  version = "5.1.1";
+  version = "5.2";
 
   src = fetchurl {
     url = "https://github.com/tpm2-software/${pname}/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-VQCBD3r5mTkbq7EyFtdYQ77p8/nRVE/u1eUD2AEXSjs=";
+    sha256 = "sha256-wLQC9qezRW6OskRSEeLUHEbH52ngX+TYkJ/2QRn3pjA=";
   };
 
   nativeBuildInputs = [ pandoc pkg-config makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/security/trufflehog/default.nix b/nixpkgs/pkgs/tools/security/trufflehog/default.nix
index 353590ed87c8..57f49988e75b 100644
--- a/nixpkgs/pkgs/tools/security/trufflehog/default.nix
+++ b/nixpkgs/pkgs/tools/security/trufflehog/default.nix
@@ -12,11 +12,11 @@ let
 in
   python3Packages.buildPythonApplication rec {
     pname = "truffleHog";
-    version = "2.1.11";
+    version = "2.2.1";
 
     src = python3Packages.fetchPypi {
       inherit pname version;
-      sha256 = "53619f0c5be082abd377f987291ace80bc3b88f864972b1a30494780980f769e";
+      sha256 = "sha256-fw0JyM2iqQrkL4FAXllEozJdkKWELS3eAURx5NZcceQ=";
     };
 
     # Relax overly restricted version constraint
diff --git a/nixpkgs/pkgs/tools/security/vault/default.nix b/nixpkgs/pkgs/tools/security/vault/default.nix
index 1c8682e93bc0..b50604bf15fa 100644
--- a/nixpkgs/pkgs/tools/security/vault/default.nix
+++ b/nixpkgs/pkgs/tools/security/vault/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "vault";
-  version = "1.8.4";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    sha256 = "sha256-t/BQu6nq0FcmqTc/vo3bTUbVNDqzePqlOMFkl4pD598=";
+    sha256 = "sha256-vuwVPBB7zxpmJsBZ+J/vl0E49gx7CUGGi5j1Grgv2Jo=";
   };
 
-  vendorSha256 = "sha256-9eXDcuVm+N4nenotUtCvyp2qB5uPDwzGHk43Y4uTT14=";
+  vendorSha256 = "sha256-OHGQ6v51jfxEhe7v8b9/yh7aPZmgTod+WFKFzwXk4LU=";
 
   subPackages = [ "." ];
 
@@ -38,7 +38,7 @@ buildGoModule rec {
       --prefix PATH ${lib.makeBinPath [ gawk glibc ]}
   '';
 
-  passthru.tests.vault = nixosTests.vault;
+  passthru.tests = { inherit (nixosTests) vault vault-postgresql; };
 
   meta = with lib; {
     homepage = "https://www.vaultproject.io/";
diff --git a/nixpkgs/pkgs/tools/security/vault/vault-bin.nix b/nixpkgs/pkgs/tools/security/vault/vault-bin.nix
index b67d63938c95..1ffd793be8b2 100644
--- a/nixpkgs/pkgs/tools/security/vault/vault-bin.nix
+++ b/nixpkgs/pkgs/tools/security/vault/vault-bin.nix
@@ -1,26 +1,30 @@
 { lib, stdenv, fetchurl, unzip, makeWrapper, gawk, glibc }:
 
 let
-  version = "1.8.4";
+  version = "1.9.1";
 
   sources = let
     base = "https://releases.hashicorp.com/vault/${version}";
   in {
     x86_64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_amd64.zip";
-      sha256 = "sha256-zrCRnIScIWJ8ocrgYPNhtvuX3PBLF9HX0dyZU/zY4yk=";
+      sha256 = "sha256-kP1wLbkktVCTZopVaT0h/WKqAG3Pd9g7qeruk4MIWJM=";
     };
     i686-linux = fetchurl {
       url = "${base}/vault_${version}_linux_386.zip";
-      sha256 = "0sh9q29b0bi5ap6nvll0ykxd5vf4wliksj31cmm4gw5vp90irvl3";
+      sha256 = "sha256-cTZ/hek8wQo9FxIRQ/cc23h7Nqjfonvprf492/lSzLw=";
     };
     x86_64-darwin = fetchurl {
       url = "${base}/vault_${version}_darwin_amd64.zip";
-      sha256 = "09nhfdw20g46fnrn82my7a59pfa81dxncxhiswmha3cdy8n0p6wb";
+      sha256 = "sha256-uKW9Yl4PjxWJ886OVAHl1sbPhgYWoL6IJK44vczLQsY=";
+    };
+    aarch64-darwin = fetchurl {
+      url = "${base}/vault_${version}_darwin_arm64.zip";
+      sha256 = "sha256-J0qwUBcnZRZU5TTQB3K8wNE6rdQC1Boy/gKNQRvUYEI=";
     };
     aarch64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_arm64.zip";
-      sha256 = "01ra0xrgivf01ff87p0gqmi1flnac9y02x7jpv5j6a9czr1sqw1j";
+      sha256 = "sha256-eU5s15tBuZFThJGNtnjOV07tiBoVjSSHMS9sY2WqO1o=";
     };
   };
 
@@ -47,10 +51,12 @@ in stdenv.mkDerivation {
     runHook postInstall
   '';
 
+  dontStrip = stdenv.isDarwin;
+
   meta = with lib; {
     homepage = "https://www.vaultproject.io";
     description = "A tool for managing secrets, this binary includes the UI";
-    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ];
+    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-darwin" "aarch64-linux" ];
     license = licenses.mpl20;
     maintainers = with maintainers; teams.serokell.members ++ [ offline psyanticy Chili-Man ];
   };
diff --git a/nixpkgs/pkgs/tools/security/vaultwarden/default.nix b/nixpkgs/pkgs/tools/security/vaultwarden/default.nix
index eb4de54c303e..13399698c0ed 100644
--- a/nixpkgs/pkgs/tools/security/vaultwarden/default.nix
+++ b/nixpkgs/pkgs/tools/security/vaultwarden/default.nix
@@ -3,21 +3,24 @@
 , libiconv, Security, CoreServices
 , dbBackend ? "sqlite", libmysqlclient, postgresql }:
 
-let
-  featuresFlag = "--features ${dbBackend}";
-
-in rustPlatform.buildRustPackage rec {
+rustPlatform.buildRustPackage rec {
   pname = "vaultwarden";
-  version = "1.22.2";
+  version = "1.23.1";
 
   src = fetchFromGitHub {
     owner = "dani-garcia";
     repo = pname;
     rev = version;
-    sha256 = "sha256-37+Gor3xyo0yb3I4rrleJoPnqTA7G3WmeMSTltthi2E=";
+    sha256 = "sha256-UMeltpuGUPdB5j4NBxA6SuLUqzinrF8USCaJk9SjDJA=";
   };
 
-  cargoSha256 = "sha256-+zu5OfvXj8DMglf5Xv5ZcaUlbE03cwyD8TN7YftgWO0=";
+  cargoSha256 = "sha256-8SjCWioOK/bk6G+0Yfl0ilgbLu83hn+AtuX9QWrnQEc=";
+
+  postPatch = ''
+    # Upstream specifies 1.57; nixpkgs has 1.56 which also produces a working
+    # vaultwarden when using RUSTC_BOOTSTRAP=1
+    sed -ri 's/^rust-version = .*//g' Cargo.toml
+  '';
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = with lib; [ openssl ]
@@ -25,16 +28,11 @@ in rustPlatform.buildRustPackage rec {
     ++ optional (dbBackend == "mysql") libmysqlclient
     ++ optional (dbBackend == "postgresql") postgresql;
 
+  # vaultwarden depends on rocket v0.5.0-dev, which requires nightly features.
+  # This may be removed if https://github.com/dani-garcia/vaultwarden/issues/712 is fixed.
   RUSTC_BOOTSTRAP = 1;
 
-  cargoBuildFlags = [ featuresFlag ];
-
-  checkPhase = ''
-    runHook preCheck
-    echo "Running cargo cargo test ${featuresFlag} -- ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}"
-    cargo test ${featuresFlag} -- ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"}
-    runHook postCheck
-  '';
+  buildFeatures = dbBackend;
 
   passthru.tests = nixosTests.vaultwarden;
 
@@ -42,6 +40,6 @@ in rustPlatform.buildRustPackage rec {
     description = "Unofficial Bitwarden compatible server written in Rust";
     homepage = "https://github.com/dani-garcia/vaultwarden";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ msteen ];
+    maintainers = with maintainers; [ msteen ivan ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/vaultwarden/vault.nix b/nixpkgs/pkgs/tools/security/vaultwarden/vault.nix
index 0d4070e47ab9..5ec014de9593 100644
--- a/nixpkgs/pkgs/tools/security/vaultwarden/vault.nix
+++ b/nixpkgs/pkgs/tools/security/vaultwarden/vault.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "vaultwarden-vault";
-  version = "2.22.3";
+  version = "2.25.0";
 
   src = fetchurl {
     url = "https://github.com/dani-garcia/bw_web_builds/releases/download/v${version}/bw_web_v${version}.tar.gz";
-    sha256 = "sha256-cPyh6Hyvqw6ygmOP+qiyhSNAwdryC4nowm8n2ULOJxs=";
+    sha256 = "sha256-0uxkHz/oHWl4MdzV7zRVKgkEqOkrl7Fd405TOf472gw=";
   };
 
   buildCommand = ''
diff --git a/nixpkgs/pkgs/tools/security/verifpal/default.nix b/nixpkgs/pkgs/tools/security/verifpal/default.nix
index 02f41477c7ef..821118f598c5 100644
--- a/nixpkgs/pkgs/tools/security/verifpal/default.nix
+++ b/nixpkgs/pkgs/tools/security/verifpal/default.nix
@@ -6,15 +6,15 @@
 
 buildGoModule rec {
   pname = "verifpal";
-  version = "0.26.0";
+  version = "0.26.1";
 
   src = fetchgit {
     url = "https://source.symbolic.software/verifpal/verifpal.git";
     rev = "v${version}";
-    sha256 = "1ag1fpgk4xa5041y6a0pchmh32j876bl0iqjb7lxxqg5nc76d3v1";
+    sha256 = "sha256-y07RXv2QSyUJpGuFsLJ2sGNo4YzhoCYQr3PkUj4eIOY=";
   };
 
-  vendorSha256 = "XHeXonzRDHXayge5G3apvDarbOfTiV+UQ+IqSbrLkCk=";
+  vendorSha256 = "sha256-gUpgnd/xiLqRNl1bPzVp+0GM/J5GEx0VhUfo6JsX8N8=";
 
   nativeBuildInputs = [ pigeon ];
 
diff --git a/nixpkgs/pkgs/tools/security/wad/default.nix b/nixpkgs/pkgs/tools/security/wad/default.nix
index ee731798097d..9b284a42a018 100644
--- a/nixpkgs/pkgs/tools/security/wad/default.nix
+++ b/nixpkgs/pkgs/tools/security/wad/default.nix
@@ -1,31 +1,32 @@
 { lib
-, buildPythonApplication
-, fetchPypi
-, mock
-, pytestCheckHook
-, six
+, fetchFromGitHub
+, python3
 }:
 
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "wad";
   version = "0.4.6";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname;
-    inherit version;
-    sha256 = "02jq77h6g9v7n4qqq7qri6wmhggy257983dwgmpjsf4qsagkgwy8";
+  src = fetchFromGitHub {
+    owner = "CERN-CERT";
+    repo = "WAD";
+    rev = "v${version}";
+    hash = "sha256-/mlmOzFkyKpmK/uk4813Wk0cf/+ynX3Qxafnd1mGR5k=";
   };
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with python3.pkgs; [
     six
   ];
 
-  checkInputs = [
-    pytestCheckHook
+  checkInputs = with python3.pkgs; [
     mock
+    pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "wad" ];
+  pythonImportsCheck = [
+    "wad"
+  ];
 
   meta = with lib; {
     description = "Tool for detecting technologies used by web applications";
diff --git a/nixpkgs/pkgs/tools/security/wapiti/default.nix b/nixpkgs/pkgs/tools/security/wapiti/default.nix
index 38ba47a51223..e27851f618d6 100644
--- a/nixpkgs/pkgs/tools/security/wapiti/default.nix
+++ b/nixpkgs/pkgs/tools/security/wapiti/default.nix
@@ -5,13 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "wapiti";
-  version = "3.0.5";
+  version = "3.0.9";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "wapiti-scanner";
     repo = pname;
     rev = version;
-    sha256 = "0663hzpmn6p5xh65d2gk4yk2zh992lfd9lhdwwabhpv3n85nza75";
+    sha256 = "sha256-olqPM8EQ8LxQQM7kqcjbT9RMdBeYdhfn6Qp6BUu8K5Q=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
@@ -19,19 +20,29 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
+    aiocache
+    aiosqlite
     beautifulsoup4
+    brotli
     browser-cookie3
     cryptography
-    Mako
-    markupsafe
-    pysocks
+    dnspython
     httpx
     httpx-ntlm
     httpx-socks
+    humanize
+    loguru
+    Mako
+    markupsafe
+    pysocks
     six
+    sslyze
+    sqlalchemy
     tld
     yaswfp
-  ] ++ lib.optionals (python3.pythonOlder "3.8") [ importlib-metadata ];
+  ] ++ lib.optionals (python3.pythonOlder "3.8") [
+    importlib-metadata
+  ];
 
   checkInputs = with python3.pkgs; [
     respx
@@ -42,9 +53,10 @@ python3.pkgs.buildPythonApplication rec {
   postPatch = ''
     # Ignore pinned versions
     substituteInPlace setup.py \
-      --replace "==" ">="
+      --replace "httpx-socks[asyncio] == 0.6.0" "httpx-socks[asyncio]"
+    sed -i -e "s/==[0-9.]*//" setup.py
     substituteInPlace setup.cfg \
-      --replace " --cov" ""
+      --replace " --cov --cov-report=xml" ""
   '';
 
   preCheck = ''
@@ -87,11 +99,13 @@ python3.pkgs.buildPythonApplication rec {
     "test_request_object"
     "test_script"
     "test_ssrf"
+    "test_merge_with_and_without_redirection"
     "test_tag_name_escape"
     "test_timeout"
     "test_title_false_positive"
     "test_title_positive"
     "test_true_positive_request_count"
+    "test_unregistered_cname"
     "test_url_detection"
     "test_warning"
     "test_whole"
@@ -104,11 +118,13 @@ python3.pkgs.buildPythonApplication rec {
     # Requires a PHP installation
     "test_timesql"
     "test_cookies"
-    # E           TypeError: Expected bytes or bytes-like object got: <class 'str'>
+    # TypeError: Expected bytes or bytes-like object got: <class 'str'>
     "test_persister_upload"
   ];
 
-  pythonImportsCheck = [ "wapitiCore" ];
+  pythonImportsCheck = [
+    "wapitiCore"
+  ];
 
   meta = with lib; {
     description = "Web application vulnerability scanner";
diff --git a/nixpkgs/pkgs/tools/security/whispers/default.nix b/nixpkgs/pkgs/tools/security/whispers/default.nix
new file mode 100644
index 000000000000..07c1f1e707e4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/whispers/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "whispers";
+  version = "1.5.3";
+
+  src = fetchFromGitHub {
+    owner = "Skyscanner";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-jruUGyoZCyMu015QKtlvfx5WRMfxo/eYUue9wUIWb6o=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    astroid
+    beautifulsoup4
+    jproperties
+    luhn
+    lxml
+    python-Levenshtein
+    pyyaml
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace '"pytest-runner"' ""
+  '';
+
+  preCheck = ''
+    # Some tests need the binary available in PATH
+    export PATH=$out/bin:$PATH
+  '';
+
+  pythonImportsCheck = [
+    "whispers"
+  ];
+
+  meta = with lib; {
+    description = "Tool to identify hardcoded secrets in static structured text";
+    homepage = "https://github.com/Skyscanner/whispers";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/wpscan/Gemfile.lock b/nixpkgs/pkgs/tools/security/wpscan/Gemfile.lock
index 23e4a17ea8af..9fd526674365 100644
--- a/nixpkgs/pkgs/tools/security/wpscan/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/security/wpscan/Gemfile.lock
@@ -26,16 +26,16 @@ GEM
     ffi (1.15.4)
     get_process_mem (0.2.7)
       ffi (~> 1.0)
-    i18n (1.8.10)
+    i18n (1.8.11)
       concurrent-ruby (~> 1.0)
     minitest (5.14.4)
-    nokogiri (1.12.4-x86_64-linux)
+    nokogiri (1.12.5-x86_64-linux)
       racc (~> 1.4)
     opt_parse_validator (1.9.5)
       activesupport (>= 5.2, < 6.2.0)
       addressable (>= 2.5, < 2.9)
     public_suffix (4.0.6)
-    racc (1.5.2)
+    racc (1.6.0)
     ruby-progressbar (1.11.0)
     sys-proctable (1.2.6)
       ffi
@@ -44,12 +44,12 @@ GEM
     tzinfo (2.0.4)
       concurrent-ruby (~> 1.0)
     webrick (1.7.0)
-    wpscan (3.8.19)
+    wpscan (3.8.20)
       cms_scanner (~> 0.13.6)
     xmlrpc (0.3.2)
       webrick
     yajl-ruby (1.4.1)
-    zeitwerk (2.4.2)
+    zeitwerk (2.5.1)
 
 PLATFORMS
   x86_64-linux
diff --git a/nixpkgs/pkgs/tools/security/wpscan/gemset.nix b/nixpkgs/pkgs/tools/security/wpscan/gemset.nix
index d62c17bc94d2..0c882a313312 100644
--- a/nixpkgs/pkgs/tools/security/wpscan/gemset.nix
+++ b/nixpkgs/pkgs/tools/security/wpscan/gemset.nix
@@ -80,30 +80,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
+      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
       type = "gem";
     };
-    version = "1.8.10";
+    version = "1.8.11";
   };
-  minitest = {
+  mini_portile2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
+      sha256 = "1lvxm91hi0pabnkkg47wh1siv56s6slm2mdq1idfm86dyfidfprq";
       type = "gem";
     };
-    version = "5.14.4";
+    version = "2.6.1";
   };
-  mini_portile2 = {
+  minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lvxm91hi0pabnkkg47wh1siv56s6slm2mdq1idfm86dyfidfprq";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "2.6.1";
+    version = "5.14.4";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -111,10 +111,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sad16idsxayhaaswc3bksii1ydiqyzikl7y0ng35cn7w4g1dv3z";
+      sha256 = "1v02g7k7cxiwdcahvlxrmizn3avj2q6nsjccgilq1idc89cr081b";
       type = "gem";
     };
-    version = "1.12.4";
+    version = "1.12.5";
   };
   opt_parse_validator = {
     dependencies = ["activesupport" "addressable"];
@@ -142,10 +142,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d";
       type = "gem";
     };
-    version = "1.5.2";
+    version = "1.6.0";
   };
   ruby-progressbar = {
     groups = ["default"];
@@ -206,10 +206,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gv5ym8sxr9901z55d0dakc7af954rp2asnd1a68arjvfyj96sq3";
+      sha256 = "07mzbds1j0a1y6jw4swgc4d7kcflkycdk3ivdw3lxaqaqvbfs35p";
       type = "gem";
     };
-    version = "3.8.19";
+    version = "3.8.20";
   };
   xmlrpc = {
     dependencies = ["webrick"];
@@ -237,9 +237,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
+      sha256 = "18l4r6layck0d80ydc692mv1lxak5xbf6w2paj1x7m2ggbggzxgj";
       type = "gem";
     };
-    version = "2.4.2";
+    version = "2.5.1";
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/yara/default.nix b/nixpkgs/pkgs/tools/security/yara/default.nix
index 7b56e50e3bc0..a0a06e2906c4 100644
--- a/nixpkgs/pkgs/tools/security/yara/default.nix
+++ b/nixpkgs/pkgs/tools/security/yara/default.nix
@@ -14,14 +14,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "4.1.2";
+  version = "4.1.3";
   pname = "yara";
 
   src = fetchFromGitHub {
     owner = "VirusTotal";
     repo = "yara";
     rev = "v${version}";
-    sha256 = "0n716snh0h5pk00kps6xvfi8z16xw12h1a8cd7w02cj2537xzj3m";
+    sha256 = "sha256-7t2KksI3l+wFHqUSw2L4FXepMTJfTow/cTFYA47YBqY=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/tools/security/yubikey-touch-detector/default.nix b/nixpkgs/pkgs/tools/security/yubikey-touch-detector/default.nix
index 93531d3a2b67..8a06c363faf0 100644
--- a/nixpkgs/pkgs/tools/security/yubikey-touch-detector/default.nix
+++ b/nixpkgs/pkgs/tools/security/yubikey-touch-detector/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "yubikey-touch-detector";
-  version = "1.9.1";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner = "maximbaz";
     repo = "yubikey-touch-detector";
     rev = version;
-    sha256 = "sha256-I9dRCQhbXd8K1zp291z9XVwHI9DcxgvrzYaHICZH5v0=";
+    sha256 = "sha256-f6j+YNYASH0Adg3236QijApALd/yXJjNMYEdP0Pifw0=";
   };
-  vendorSha256 = "sha256-UeDLGwYrXwLOtQt/8fEmficc/1j0x+zr/JLa6lLF5cs=";
+  vendorSha256 = "sha256-bmFbxMU3PEWpYI0eQw/1RRDP+JGfUY8kOCeTWbdVt9k=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/system/acpica-tools/default.nix b/nixpkgs/pkgs/tools/system/acpica-tools/default.nix
index 4f0ab0297506..2374aa1489fa 100644
--- a/nixpkgs/pkgs/tools/system/acpica-tools/default.nix
+++ b/nixpkgs/pkgs/tools/system/acpica-tools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "acpica-tools";
-  version = "20210730";
+  version = "20210930";
 
   src = fetchurl {
     url = "https://acpica.org/sites/acpica/files/acpica-unix-${version}.tar.gz";
-    sha256 = "1pmm977nyl3bs71ipzcl4dh30qm8x9wm2p2ml0m62rl62kai832a";
+    sha256 = "08a8q174ac3jwxnd8q8iqc3cckwc2f7ncrc6f3171g0n38l2mn1w";
   };
 
   NIX_CFLAGS_COMPILE = "-O3";
diff --git a/nixpkgs/pkgs/tools/system/bottom/default.nix b/nixpkgs/pkgs/tools/system/bottom/default.nix
index ad049784c3c8..6a6ae20dfa98 100644
--- a/nixpkgs/pkgs/tools/system/bottom/default.nix
+++ b/nixpkgs/pkgs/tools/system/bottom/default.nix
@@ -11,13 +11,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bottom";
-  version = "0.6.4";
+  version = "0.6.6";
 
   src = fetchFromGitHub {
     owner = "ClementTsang";
     repo = pname;
     rev = version;
-    sha256 = "sha256-4L8TUfpEfhjfE1E8GjpRnXPf8kfXdJ02FEusXB/dZWo=";
+    sha256 = "sha256-nE718NA3oLkBTTjewypYyUVRgTm4xiDTui5kEPYYCBc=";
   };
 
   prePatch = ''
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
     libiconv
   ];
 
-  cargoSha256 = "sha256-pfDj3lbJpoqnUnzGL64Azcj2HU/UhRe1k55Unh85C/k=";
+  cargoSha256 = "sha256-M6LgriXjhxlnoky+TNU7Eb15M+uTgbVKk3g/Sk90xsg=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/system/bpytop/default.nix b/nixpkgs/pkgs/tools/system/bpytop/default.nix
index f552ede91b5e..eb0630d33eea 100644
--- a/nixpkgs/pkgs/tools/system/bpytop/default.nix
+++ b/nixpkgs/pkgs/tools/system/bpytop/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bpytop";
-  version = "1.0.67";
+  version = "1.0.68";
 
   src = fetchFromGitHub {
     owner = "aristocratos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nvpIqX16WP9kslFo1ne5+QAZcvG+WFm5kDVOLN4C+b0=";
+    sha256 = "sha256-NHfaWWwNpGhqu/ALcW4p4X6sktEyLbKQuNHpAUUw4LY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -47,6 +47,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; linux ++ freebsd ++ darwin;
 
     # https://github.com/NixOS/nixpkgs/pull/94625#issuecomment-668509399
-    broken = stdenv.isDarwin;
+    broken = stdenv.isDarwin && stdenv.isx86_64;
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/btop/default.nix b/nixpkgs/pkgs/tools/system/btop/default.nix
index 99d1d0bfa970..9ffdd46c6b48 100644
--- a/nixpkgs/pkgs/tools/system/btop/default.nix
+++ b/nixpkgs/pkgs/tools/system/btop/default.nix
@@ -1,26 +1,54 @@
 { lib
-, fetchFromGitHub
 , stdenv
+, fetchFromGitHub
+, runCommand
+, darwin
+, removeReferencesTo
 }:
 
 stdenv.mkDerivation rec {
   pname = "btop";
-  version = "1.0.16";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = "aristocratos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-navmEd77+LOvCpjPe6dReOYGO1wGRO3OGIv8mC05Kec=";
+    sha256 = "sha256-uKR1ogQwEoyxyWBiLnW8BsOsYgTpeIpKrKspq0JwYjY=";
   };
 
+  hardeningDisable = lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [ "stackprotector" ];
+
+  ADDFLAGS = with darwin.apple_sdk.frameworks;
+    lib.optional stdenv.isDarwin
+      "-F${IOKit}/Library/Frameworks/";
+
+  buildInputs = with darwin.apple_sdk;
+    lib.optionals stdenv.isDarwin [
+      frameworks.CoreFoundation
+      frameworks.IOKit
+    ] ++ lib.optional (stdenv.isDarwin && stdenv.isx86_64) (
+      # Found this explanation for needing to create a header directory for libproc.h alone.
+      # https://github.com/NixOS/nixpkgs/blob/049e5e93af9bbbe06b4c40fd001a4e138ce1d677/pkgs/development/libraries/webkitgtk/default.nix#L154
+      # TL;DR, the other headers in the include path for the macOS SDK is not compatible with the C++ stdlib and causes issues, so we copy
+      # this to avoid those issues
+      runCommand "${pname}_headers" { } ''
+        install -Dm444 "${lib.getDev sdk}"/include/libproc.h "$out"/include/libproc.h
+      ''
+    );
+
   installFlags = [ "PREFIX=$(out)" ];
 
+  postInstall = ''
+    ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc.cc} $(readlink -f $out/bin/btop)
+  '';
+
   meta = with lib; {
     description = "A monitor of resources";
     homepage = "https://github.com/aristocratos/btop";
+    changelog = "https://github.com/aristocratos/btop/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ rmcgibbo ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/clinfo/default.nix b/nixpkgs/pkgs/tools/system/clinfo/default.nix
index 9c5b54f554bd..a9e7c0c81def 100644
--- a/nixpkgs/pkgs/tools/system/clinfo/default.nix
+++ b/nixpkgs/pkgs/tools/system/clinfo/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, ocl-icd, opencl-headers }:
+{ lib, stdenv, fetchFromGitHub, ocl-icd, opencl-headers, OpenCL }:
 
 stdenv.mkDerivation rec {
   pname = "clinfo";
@@ -11,11 +11,11 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-0ijfbfv1F6mnt1uFH/A4yOADJoAFrPMa3yAOFJW53ek=";
   };
 
-  buildInputs = [ ocl-icd opencl-headers ];
-
-  NIX_CFLAGS_COMPILE = [
-    "-Wno-error=stringop-overflow"
-    "-Wno-error=stringop-truncation"
+  buildInputs = lib.optionals (!stdenv.isDarwin) [
+    ocl-icd
+    opencl-headers
+  ] ++ lib.optionals stdenv.isDarwin [
+    OpenCL
   ];
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "Print all known information about all available OpenCL platforms and devices in the system";
     homepage = "https://github.com/Oblomov/clinfo";
     license = licenses.cc0;
-    maintainers = with maintainers; [ athas ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ athas r-burns ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/collectd/default.nix b/nixpkgs/pkgs/tools/system/collectd/default.nix
index 600c5cbfecd3..8d272b15acf1 100644
--- a/nixpkgs/pkgs/tools/system/collectd/default.nix
+++ b/nixpkgs/pkgs/tools/system/collectd/default.nix
@@ -2,6 +2,7 @@
 , autoreconfHook
 , pkg-config
 , libtool
+, nixosTests
 , ...
 }@args:
 let
@@ -16,6 +17,15 @@ stdenv.mkDerivation rec {
     sha256 = "1mh97afgq6qgmpvpr84zngh58m0sl1b4wimqgvvk376188q09bjv";
   };
 
+  patches = [
+    # fix -t never printing syntax errors
+    # should be included in next release
+    (fetchpatch {
+      url = "https://github.com/collectd/collectd/commit/3f575419e7ccb37a3b10ecc82adb2e83ff2826e1.patch";
+      sha256 = "0jwjdlfl0dp7mlbwygp6h0rsbaqfbgfm5z07lr5l26z6hhng2h2y";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config autoreconfHook ];
   buildInputs = [
     libtool
@@ -41,6 +51,10 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.tests = {
+    inherit (nixosTests) collectd;
+  };
+
   meta = with lib; {
     description = "Daemon which collects system performance statistics periodically";
     homepage = "https://collectd.org";
diff --git a/nixpkgs/pkgs/tools/system/consul-template/default.nix b/nixpkgs/pkgs/tools/system/consul-template/default.nix
index 020e56a1526b..7a16c5ab592c 100644
--- a/nixpkgs/pkgs/tools/system/consul-template/default.nix
+++ b/nixpkgs/pkgs/tools/system/consul-template/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "consul-template";
-  version = "0.27.0";
+  version = "0.27.2";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "consul-template";
     rev = "v${version}";
-    sha256 = "sha256-XzsewkHaFIq1kvFDHIsnhfhtLPLFRin7YrhiZuF1+co=";
+    sha256 = "sha256-Uqb0HXaYHGcW7lkUNLa2oXM0gu+SWwpv+NdPnOO87cs=";
   };
 
-  vendorSha256 = "sha256-/4ZY4YRGsUSL2e6uYPJ9tWEvXDjU5/L56yf49pUkJ2E=";
+  vendorSha256 = "sha256-my4ECzmvrPhbKlcEptQ0xi4lYxHm42IrEsOvcetuMeQ=";
 
   # consul-template tests depend on vault and consul services running to
   # execute tests so we skip them here
diff --git a/nixpkgs/pkgs/tools/system/daemonize/default.nix b/nixpkgs/pkgs/tools/system/daemonize/default.nix
index b79da1986d73..b3cf2a4356f6 100644
--- a/nixpkgs/pkgs/tools/system/daemonize/default.nix
+++ b/nixpkgs/pkgs/tools/system/daemonize/default.nix
@@ -1,18 +1,20 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "daemonize";
   version = "1.7.8";
 
-  src = fetchurl {
-    url    = "https://github.com/bmc/daemonize/archive/release-${version}.tar.gz";
-    sha256 = "0q2c3i3si3k7wfhl6fyckkmkc81yp67pz52p3ggis79p4nczri10";
+  src = fetchFromGitHub {
+    owner = "bmc";
+    repo = "daemonize";
+    rev = "release-${version}";
+    sha256 = "1e6LZXf/lK7sB2CbXwOg7LOi0Q8IBQNAa4d7rX0Ej3A=";
   };
 
   meta = with lib; {
     description = "Runs a command as a Unix daemon";
-    homepage    = "http://software.clapper.org/daemonize/";
-    license     = licenses.bsd3;
+    homepage = "http://software.clapper.org/daemonize/";
+    license = licenses.bsd3;
     platforms = with platforms; linux ++ freebsd ++ darwin;
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/das_watchdog/default.nix b/nixpkgs/pkgs/tools/system/das_watchdog/default.nix
index d9332acc898f..65be63bffe12 100644
--- a/nixpkgs/pkgs/tools/system/das_watchdog/default.nix
+++ b/nixpkgs/pkgs/tools/system/das_watchdog/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation {
   pname = "das_watchdog";
-  version = "git-2015-09-12";
+  version = "unstable-2015-09-12";
 
   src = fetchgit {
     url = "https://github.com/kmatheussen/das_watchdog.git";
diff --git a/nixpkgs/pkgs/tools/system/datefudge/default.nix b/nixpkgs/pkgs/tools/system/datefudge/default.nix
index be2ad70498ae..079b6b694360 100644
--- a/nixpkgs/pkgs/tools/system/datefudge/default.nix
+++ b/nixpkgs/pkgs/tools/system/datefudge/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, fetchpatch }:
+{ stdenv, lib, fetchgit, fetchpatch, makeWrapper, coreutils }:
 
 stdenv.mkDerivation rec {
   pname = "datefudge";
@@ -10,6 +10,10 @@ stdenv.mkDerivation rec {
     sha256 = "1nh433yx4y4djp0bs6aawqbwk7miq7fsbs9wpjlyh2k9dvil2lrm";
   };
 
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs = [ coreutils ];
+
   postPatch = ''
     substituteInPlace Makefile \
      --replace "/usr" "/" \
@@ -20,7 +24,10 @@ stdenv.mkDerivation rec {
 
   installFlags = [ "DESTDIR=$(out)" ];
 
-  postInstall = "chmod +x $out/lib/datefudge/datefudge.so";
+  postInstall = ''
+    chmod +x $out/lib/datefudge/datefudge.so
+    wrapProgram $out/bin/datefudge --prefix PATH : ${coreutils}/bin
+  '';
 
   meta = with lib; {
     description = "Fake the system date";
diff --git a/nixpkgs/pkgs/tools/system/efibootmgr/default.nix b/nixpkgs/pkgs/tools/system/efibootmgr/default.nix
index 0c678dd9c51b..fd7eceede159 100644
--- a/nixpkgs/pkgs/tools/system/efibootmgr/default.nix
+++ b/nixpkgs/pkgs/tools/system/efibootmgr/default.nix
@@ -22,8 +22,6 @@ stdenv.mkDerivation rec {
       sha256 = "1sbijvlpv4khkix3vix9mbhzffj8lp8zpnbxm9gnzjz8yssz9p5h";
     })
   ];
-  # We have no LTO here since commit 22284b07.
-  postPatch = if stdenv.isi686 then "sed '/^CFLAGS/s/-flto//' -i Make.defaults" else null;
 
   makeFlags = [ "EFIDIR=nixos" "PKG_CONFIG=${stdenv.cc.targetPrefix}pkg-config" ];
 
diff --git a/nixpkgs/pkgs/tools/system/efivar/default.nix b/nixpkgs/pkgs/tools/system/efivar/default.nix
index c92b28e7f5ea..ed831c5ecf6d 100644
--- a/nixpkgs/pkgs/tools/system/efivar/default.nix
+++ b/nixpkgs/pkgs/tools/system/efivar/default.nix
@@ -39,9 +39,11 @@ stdenv.mkDerivation rec {
       sha256 = "1ajj11wwsvamfspq4naanvw08h63gr0g71q0dfbrrywrhc0jlmdw";
     })
   ];
-  # We have no LTO here since commit 22284b07.  With GCC 10 that triggers a warning.
-  postPatch = "sed '/^OPTIMIZE /s/-flto//' -i Make.defaults";
-  NIX_CFLAGS_COMPILE = "-Wno-error=stringop-truncation";
+
+  NIX_CFLAGS_COMPILE = [
+    "-Wno-error=stringop-truncation"
+    "-flto-partition=none"
+  ];
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ popt ];
diff --git a/nixpkgs/pkgs/tools/system/fcron/default.nix b/nixpkgs/pkgs/tools/system/fcron/default.nix
index 9e3b3c2c16d3..8b54b77e8a2c 100644
--- a/nixpkgs/pkgs/tools/system/fcron/default.nix
+++ b/nixpkgs/pkgs/tools/system/fcron/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fcron";
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchurl {
     url = "http://fcron.free.fr/archives/${pname}-${version}.src.tar.gz";
-    sha256 = "0q5b1fdq1rpsd4lj7v717x47pmn62hhm13394g0yxqi614xd7sls";
+    sha256 = "sha256-81naoIpj3ft/4vlkuz9cUiRMJao2+SJaPMVNNvRoEQY=";
   };
 
   buildInputs = [ perl ];
diff --git a/nixpkgs/pkgs/tools/system/fio/default.nix b/nixpkgs/pkgs/tools/system/fio/default.nix
index dedcbc6f1e4c..c15c623f374d 100644
--- a/nixpkgs/pkgs/tools/system/fio/default.nix
+++ b/nixpkgs/pkgs/tools/system/fio/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fio";
-  version = "3.28";
+  version = "3.29";
 
   src = fetchFromGitHub {
     owner  = "axboe";
     repo   = "fio";
     rev    = "fio-${version}";
-    sha256 = "sha256-8F31tyZ4/Qk14uwkg0DRPMdSaZGRVnI1dUDOITWhYAA=";
+    sha256 = "sha256-SSQFZK8oVarenp/I37QX/N4F4Es2r2bVyWw6U2OcCHw=";
   };
 
   buildInputs = [ python3 zlib ]
diff --git a/nixpkgs/pkgs/tools/system/gdu/default.nix b/nixpkgs/pkgs/tools/system/gdu/default.nix
index 8c70910a9925..a771e3967c80 100644
--- a/nixpkgs/pkgs/tools/system/gdu/default.nix
+++ b/nixpkgs/pkgs/tools/system/gdu/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "gdu";
-  version = "5.8.1";
+  version = "5.12.1";
 
   src = fetchFromGitHub {
     owner = "dundee";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1410mmijzjvcylrynyq4p2fayi1wjy61sibd3kws96k3k7ylb14n";
+    sha256 = "sha256-pXHMNyebUkHEZvUWtDkyp5Fqk07GA5sd+254fls8PjU=";
   };
 
   vendorSha256 = "0ls0pw1m6hy203cdkmp9847h2fmvc4hjkv5x2v6r7516cqbs25ac";
diff --git a/nixpkgs/pkgs/tools/system/gkraken/default.nix b/nixpkgs/pkgs/tools/system/gkraken/default.nix
new file mode 100644
index 000000000000..9cd30e83c325
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/gkraken/default.nix
@@ -0,0 +1,86 @@
+{ python3Packages
+, lib
+, fetchFromGitLab
+, meson
+, pkg-config
+, glib
+, ninja
+, desktop-file-utils
+, gobject-introspection
+, gtk3
+, libnotify
+, dbus
+, wrapGAppsHook
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "gkraken";
+  version = "1.1.6";
+
+  src = fetchFromGitLab {
+    owner = "leinardi";
+    repo = "gkraken";
+    rev = version;
+    sha256 = "085zz6m7c3xzsrvkw50gbbz8l9fmswxj2hjya2f52dvgs8daijdy";
+  };
+
+  format = "other";
+
+  postPatch = ''
+    patchShebangs scripts/meson_post_install.py
+  '';
+
+  nativeBuildInputs = [
+    meson
+    pkg-config
+    glib
+    ninja
+    gtk3
+    desktop-file-utils
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    glib
+    gtk3
+    libnotify
+    dbus
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    pygobject3
+    peewee
+    rx
+    injector
+    liquidctl
+    pyxdg
+    requests
+    matplotlib
+    dbus-python
+  ];
+
+  dontWrapGApps = true;
+
+  # Extract udev rules from python code
+  postInstall = ''
+    mkdir -p $out/lib/udev/rules.d
+    sed -e '/\s*\(from\|@singleton\|@inject\)/d' $src/gkraken/interactor/udev_interactor.py > udev_interactor.py
+    python -c 'from udev_interactor import _UDEV_RULE; print(_UDEV_RULE)' > $out/lib/udev/rules.d/60-gkraken.rules
+  '';
+
+  preFixup = ''
+    makeWrapperArgs+=(
+      "''${gappsWrapperArgs[@]}"
+    )
+  '';
+
+  meta = with lib; {
+    description = "GUI that allows to control the cooling (fan and/or pump profiles) of NZXT Kraken AIO liquid coolers from Linux";
+    homepage = "https://gitlab.com/leinardi/gkraken";
+    changelog = "https://gitlab.com/leinardi/gkraken/-/tags/${version}";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/system/gotop/default.nix b/nixpkgs/pkgs/tools/system/gotop/default.nix
index dffbaaa81832..27b24b869cf2 100644
--- a/nixpkgs/pkgs/tools/system/gotop/default.nix
+++ b/nixpkgs/pkgs/tools/system/gotop/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     changelog = "https://github.com/xxxserxxx/gotop/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = [ maintainers.magnetophon ];
+    broken = stdenv.isDarwin; # needs to update gopsutil to at least v3.21.3 to include https://github.com/shirou/gopsutil/pull/1042
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/gptfdisk/default.nix b/nixpkgs/pkgs/tools/system/gptfdisk/default.nix
index 0e7aff32bf07..fc6bf89e4498 100644
--- a/nixpkgs/pkgs/tools/system/gptfdisk/default.nix
+++ b/nixpkgs/pkgs/tools/system/gptfdisk/default.nix
@@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ldGYVvAE2rxLjDQrJhLo0KnuvdUgBClxiDafFS6dxt8=";
   };
 
+  patches = [
+    # fix build failure against ncurses-6.3 (pending upstream inclusion):
+    #  https://sourceforge.net/p/gptfdisk/mailman/message/37392412/
+    ./ncurses-6.3.patch
+  ];
+
   postPatch = ''
     patchShebangs gdisk_test.sh
   '' + lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/tools/system/gptfdisk/ncurses-6.3.patch b/nixpkgs/pkgs/tools/system/gptfdisk/ncurses-6.3.patch
new file mode 100644
index 000000000000..4b8ec91aa04e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/gptfdisk/ncurses-6.3.patch
@@ -0,0 +1,96 @@
+From 9d5032d1487a8fe6ef7229d413418a27e32a28e5 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Mon, 1 Nov 2021 07:51:10 +0000
+Subject: [PATCH:gptfdisk] gptcurses.cc: always use "%s"-style format for printf()-style
+ functions
+
+`ncuses-6.3` added printf-style function attributes and now makes
+it easier to catch cases when user input is used in palce of format
+string when built with CFLAGS=-Werror=format-security:
+
+    gptcurses.cc:274:10: error:
+        format not a string literal and no format arguments [-Werror=format-security]
+      274 |    printw(theLine.c_str());
+          |    ~~~~~~^~~~~~~~~~~~~~~~~
+
+Let's wrap all the missing places with "%s" format.
+---
+ gptcurses.cc | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+--- a/gptcurses.cc
++++ b/gptcurses.cc
+@@ -239,22 +239,22 @@ Space* GPTDataCurses::ShowSpace(int spaceNum, int lineNum) {
+       ClearLine(lineNum);
+       if (space->partNum == -1) { // space is empty
+          move(lineNum, 12);
+-         printw(BytesToIeee((space->lastLBA - space->firstLBA + 1), blockSize).c_str());
++         printw("%s", BytesToIeee((space->lastLBA - space->firstLBA + 1), blockSize).c_str());
+          move(lineNum, 24);
+          printw("free space");
+       } else { // space holds a partition
+          move(lineNum, 3);
+          printw("%d", space->partNum + 1);
+          move(lineNum, 12);
+-         printw(BytesToIeee((space->lastLBA - space->firstLBA + 1), blockSize).c_str());
++         printw("%s", BytesToIeee((space->lastLBA - space->firstLBA + 1), blockSize).c_str());
+          move(lineNum, 24);
+-         printw(space->origPart->GetTypeName().c_str());
++         printw("%s", space->origPart->GetTypeName().c_str());
+          move(lineNum, 50);
+          #ifdef USE_UTF16
+          space->origPart->GetDescription().extract(0, 39, temp, 39);
+-         printw(temp);
++         printw("%s", temp);
+          #else
+-         printw(space->origPart->GetDescription().c_str());
++         printw("%s", space->origPart->GetDescription().c_str());
+          #endif
+       } // if/else
+    } // if
+@@ -271,10 +271,10 @@ int GPTDataCurses::DisplayParts(int selected) {
+ 
+    move(lineNum++, 0);
+    theLine = "Part. #     Size        Partition Type            Partition Name";
+-   printw(theLine.c_str());
++   printw("%s", theLine.c_str());
+    move(lineNum++, 0);
+    theLine = "----------------------------------------------------------------";
+-   printw(theLine.c_str());
++   printw("%s", theLine.c_str());
+    numToShow = LINES - RESERVED_TOP - RESERVED_BOTTOM;
+    pageNum = selected / numToShow;
+    for (i = pageNum * numToShow; i <= (pageNum + 1) * numToShow - 1; i++) {
+@@ -636,7 +636,7 @@ void GPTDataCurses::DisplayOptions(char selectedKey) {
+          } // if/else
+       } // for
+       move(LINES - 1, (COLS - optionDesc.length()) / 2);
+-      printw(optionDesc.c_str());
++      printw("%s", optionDesc.c_str());
+       currentKey = selectedKey;
+    } // if
+ } // GPTDataCurses::DisplayOptions()
+@@ -748,11 +748,11 @@ void GPTDataCurses::DrawMenu(void) {
+ 
+    clear();
+    move(0, (COLS - title.length()) / 2);
+-   printw(title.c_str());
++   printw("%s", title.c_str());
+    move(2, (COLS - drive.length()) / 2);
+-   printw(drive.c_str());
++   printw("%s", drive.c_str());
+    move(3, (COLS - size.str().length()) / 2);
+-   printw(size.str().c_str());
++   printw("%s", size.str().c_str());
+    DisplayParts(currentSpaceNum);
+ } // DrawMenu
+ 
+@@ -802,7 +802,7 @@ void PromptToContinue(void) {
+ void Report(string theText) {
+    clear();
+    move(0, 0);
+-   printw(theText.c_str());
++   printw("%s", theText.c_str());
+    move(LINES - 2, (COLS - 29) / 2);
+    printw("Press any key to continue....");
+    cbreak();
diff --git a/nixpkgs/pkgs/tools/system/gptman/default.nix b/nixpkgs/pkgs/tools/system/gptman/default.nix
index 648b68bcbc4c..ed486fbf4c52 100644
--- a/nixpkgs/pkgs/tools/system/gptman/default.nix
+++ b/nixpkgs/pkgs/tools/system/gptman/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gptman";
-  version = "0.8.0";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "cecton";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11zyjrw4f8gi5s4sd2kl3sdiz0avq7clr8zqnwl04y61b3fpg7y1";
+    sha256 = "sha256-MWrTwVXlV2B8GzYRgI3np6NqqSGPbRZCKpLU7aC1mX0=";
   };
 
-  cargoSha256 = "1cp8cyrd7ab8r2j28b69c2p3ysix5b9hpsqk07cmzgqwwml0qj12";
+  cargoSha256 = "sha256-dVvZTYk17fyurtrJxjUgkxU37rxJubiTAQ1AWMnFP4s=";
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
diff --git a/nixpkgs/pkgs/tools/system/honcho/default.nix b/nixpkgs/pkgs/tools/system/honcho/default.nix
index 17fa94893336..66d217296565 100644
--- a/nixpkgs/pkgs/tools/system/honcho/default.nix
+++ b/nixpkgs/pkgs/tools/system/honcho/default.nix
@@ -8,30 +8,21 @@ in
 
 python3Packages.buildPythonApplication rec {
   name = "${pname}-${version}";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "nickstenning";
     repo = "honcho";
     rev = "v${version}";
-    sha256 = "11bd87474qpif20xdcn0ra1idj5k16ka51i658wfpxwc6nzsn92b";
+    sha256 = "1y0r8dw4pqcq7r4n58ixjdg1iy60lp0gxsd7d2jmhals16ij71rj";
   };
 
-  checkInputs = with python3Packages; [ jinja2 pytest mock coverage ];
-
-  buildPhase = ''
-    ${python.interpreter} setup.py build
-  '';
+  propagatedBuildInputs = [ python3Packages.setuptools ];
 
-  installPhase = ''
-    mkdir -p "$out/${python.sitePackages}"
-
-    export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
+  checkInputs = with python3Packages; [ jinja2 pytest mock coverage ];
 
-    ${python.interpreter} setup.py install \
-      --install-lib=$out/${python.sitePackages} \
-      --prefix="$out"
-  '';
+  # missing plugins
+  doCheck = false;
 
   checkPhase = ''
     runHook preCheck
diff --git a/nixpkgs/pkgs/tools/system/htop/default.nix b/nixpkgs/pkgs/tools/system/htop/default.nix
index bc8dde743c8e..26d10d1278da 100644
--- a/nixpkgs/pkgs/tools/system/htop/default.nix
+++ b/nixpkgs/pkgs/tools/system/htop/default.nix
@@ -11,13 +11,13 @@ assert systemdSupport -> stdenv.isLinux;
 
 stdenv.mkDerivation rec {
   pname = "htop";
-  version = "3.1.0";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "htop-dev";
     repo = pname;
     rev = version;
-    sha256 = "sha256-/48Ca7JPzhPS4eYsPbwbSVcx9aS1f0LHcqsbNVWL+9k=";
+    sha256 = "sha256-RKYS8UYZTVKMR/3DG31eqkG4knPRl8WXsZU/XGmGmAg=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/tools/system/htop/htop-vim.nix b/nixpkgs/pkgs/tools/system/htop/htop-vim.nix
new file mode 100644
index 000000000000..05af41ae0ce4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/htop/htop-vim.nix
@@ -0,0 +1,22 @@
+{ lib, htop, fetchFromGitHub }:
+
+htop.overrideAttrs (oldAttrs: rec {
+  pname = "htop-vim";
+  version = "unstable-2021-10-11";
+
+  src = fetchFromGitHub {
+    owner = "KoffeinFlummi";
+    repo = pname;
+    rev = "ba6fd3891e9af60b41bd092524cc05f2469fec4b";
+    sha256 = "sha256-G83+5GgEz41begDkdK8zNx48UleufFCJ9pOQ9nbtFNs=";
+  };
+
+  meta = with lib; {
+    description = "An interactive process viewer for Linux, with vim-style keybindings";
+    homepage = "https://github.com/KoffeinFlummi/htop-vim";
+    license = licenses.gpl2Only;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ thiagokokada ];
+    mainProgram = "htop";
+  };
+})
diff --git a/nixpkgs/pkgs/tools/system/hwinfo/default.nix b/nixpkgs/pkgs/tools/system/hwinfo/default.nix
index bf9e5cd9438b..12840b3f5100 100644
--- a/nixpkgs/pkgs/tools/system/hwinfo/default.nix
+++ b/nixpkgs/pkgs/tools/system/hwinfo/default.nix
@@ -1,16 +1,33 @@
-{ lib, stdenv, fetchFromGitHub, libx86emu, flex, perl, libuuid }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, flex
+, libuuid
+, libx86emu
+, perl
+}:
 
 stdenv.mkDerivation rec {
   pname = "hwinfo";
-  version = "21.76";
+  version = "21.80";
 
   src = fetchFromGitHub {
     owner = "opensuse";
     repo = "hwinfo";
     rev = version;
-    sha256 = "sha256-C0aYEgJC+ITxWcYBLPehNz9J1Y25gS1+UDVc3+7nIKQ=";
+    sha256 = "sha256-T4ny1tq3IMtmeZRgcAOvu2O23XEiLeKRoqOxhuVGBRw=";
   };
 
+  nativeBuildInputs = [
+    flex
+  ];
+
+  buildInputs = [
+    libuuid
+    libx86emu
+    perl
+  ];
+
   postPatch = ''
     # VERSION and changelog are usually generated using Git
     # unless HWINFO_VERSION is defined (see Makefile)
@@ -22,13 +39,13 @@ stdenv.mkDerivation rec {
     substituteInPlace hwinfo.pc.in --replace "prefix=/usr" "prefix=$out"
   '';
 
-  nativeBuildInputs = [ flex ];
-  buildInputs = [ libx86emu perl libuuid ];
-
-  makeFlags = [ "LIBDIR=/lib" ];
-  #enableParallelBuilding = true;
+  makeFlags = [
+    "LIBDIR=/lib"
+  ];
 
-  installFlags = [ "DESTDIR=$(out)" ];
+  installFlags = [
+    "DESTDIR=$(out)"
+  ];
 
   meta = with lib; {
     description = "Hardware detection tool from openSUSE";
diff --git a/nixpkgs/pkgs/tools/system/ipmiutil/default.nix b/nixpkgs/pkgs/tools/system/ipmiutil/default.nix
index a11890dabd6f..2166a671ab1c 100644
--- a/nixpkgs/pkgs/tools/system/ipmiutil/default.nix
+++ b/nixpkgs/pkgs/tools/system/ipmiutil/default.nix
@@ -1,12 +1,11 @@
 { lib, stdenv, fetchurl, openssl }:
 
 stdenv.mkDerivation rec {
-  baseName = "ipmiutil";
+  pname = "ipmiutil";
   version = "3.1.6";
-  name = "${baseName}-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/${baseName}/${name}.tar.gz";
+    url = "mirror://sourceforge/project/ipmiutil/pmiutil-${version}.tar.gz";
     sha256 = "0jlfb4firph3hc0854n7cw7yjwlax3wdxn37r2jl0l94dj684548";
   };
 
diff --git a/nixpkgs/pkgs/tools/system/kmon/default.nix b/nixpkgs/pkgs/tools/system/kmon/default.nix
index 7bf2c810298b..36181b371eaf 100644
--- a/nixpkgs/pkgs/tools/system/kmon/default.nix
+++ b/nixpkgs/pkgs/tools/system/kmon/default.nix
@@ -1,31 +1,32 @@
-{ lib, fetchFromGitHub, rustPlatform, python3, libxcb }:
+{ lib, rustPlatform, fetchFromGitHub, installShellFiles, python3, libxcb }:
 
 rustPlatform.buildRustPackage rec {
   pname = "kmon";
-  version = "1.5.5";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-x4P9p2zXthGtokfKcWR/xaX/E7a9mEuQiK6cjFw4nS8=";
+    sha256 = "sha256-0sjRTbTLtBUTyx6+HnihL9TggoeIOqX9zKRaXjBUfE0=";
   };
 
-  cargoSha256 = "sha256-ZAHp7eR2pu+xEP9NZOLoczEF8QSFA5Z/8bKsCYqk4Ww=";
+  cargoSha256 = "sha256-QMJ3Rpgcfrza2zFiA5LFBuYedn+VnffzpyzAGeC0PSM=";
 
-  nativeBuildInputs = [ python3 ];
+  nativeBuildInputs = [ installShellFiles python3 ];
 
   buildInputs = [ libxcb ];
 
   postInstall = ''
-    install -D man/kmon.8 -t $out/share/man/man8/
+    installManPage man/kmon.8
   '';
 
   meta = with lib; {
     description = "Linux Kernel Manager and Activity Monitor";
     homepage = "https://github.com/orhun/kmon";
-    license = with licenses; [ gpl3 ];
+    changelog = "https://github.com/orhun/kmon/blob/v${version}/CHANGELOG.md";
+    license = licenses.gpl3Only;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ misuzu ];
+    maintainers = with maintainers; [ figsoda misuzu ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/localtime/default.nix b/nixpkgs/pkgs/tools/system/localtime/default.nix
index 0ad17c6c6595..943651fa2497 100644
--- a/nixpkgs/pkgs/tools/system/localtime/default.nix
+++ b/nixpkgs/pkgs/tools/system/localtime/default.nix
@@ -1,38 +1,40 @@
-{ lib, fetchFromGitHub, buildGoPackage, m4 }:
-
-buildGoPackage rec {
+{ buildGoModule
+, fetchFromGitHub
+, geoclue2-with-demo-agent
+, lib
+, m4
+}:
+
+buildGoModule {
   pname = "localtime";
-  version = "unstable-2017-11-07";
+  version = "unstable-2021-11-23";
 
   src = fetchFromGitHub {
     owner = "Stebalien";
     repo = "localtime";
-    rev = "2e7b4317c723406bd75b2a1d640219ab9f8090ce";
-    sha256 = "04fyna8p7q7skzx9fzmncd6gx7x5pwa9jh8a84hpljlvj0kldfs8";
+    rev = "3e5d6cd64444b2164e87cea03448bfb8eefd6ccd";
+    sha256 = "sha256-6uxxPq6abtRqM/R2Fw46ynP9PEkHggTSUymLYlQXQRU=";
   };
 
-  goPackagePath = "github.com/Stebalien/localtime";
-
-  nativeBuildInputs = [ m4 ];
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-    "BINDIR=${placeholder "out"}/bin"
-  ];
+  vendorSha256 = "sha256-sf3sL6aO5jSytT2NtBkA3lhg77RIzbYkSC4fkH+cwwk=";
 
-  buildPhase = ''
-    cd go/src/${goPackagePath}
-    make $makeFlags
+  postPatch = ''
+    demoPath="${geoclue2-with-demo-agent}/libexec/geoclue-2.0/demos/agent"
+    sed -i localtimed.go -e "s#/usr/lib/geoclue-2.0/demos/agent#$demoPath#"
   '';
 
+  nativeBuildInputs = [ m4 ];
+
   installPhase = ''
-    make install $makeFlags
+    runHook preInstall
+    make PREFIX="$out" install
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "A daemon for keeping the system timezone up-to-date based on the current location";
     homepage = "https://github.com/Stebalien/localtime";
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ lovesegfault ];
     platforms = platforms.linux;
     license = licenses.gpl3;
   };
diff --git a/nixpkgs/pkgs/tools/system/lshw/default.nix b/nixpkgs/pkgs/tools/system/lshw/default.nix
index 040f065acd72..25bf79cadddf 100644
--- a/nixpkgs/pkgs/tools/system/lshw/default.nix
+++ b/nixpkgs/pkgs/tools/system/lshw/default.nix
@@ -2,14 +2,12 @@
 , withGUI ? false, gtk2, pkg-config, sqlite # compile GUI
 }:
 
-let numVersion = "02.18"; # :(
-in
 stdenv.mkDerivation rec {
-  name = "lshw-${numVersion}b";
-  version = numVersion;
+  pname = "lshw";
+  version = "B.02.18";
 
   src = fetchurl {
-    url = "https://ezix.org/software/files/lshw-B.${version}.tar.gz";
+    url = "https://ezix.org/software/files/lshw-${version}.tar.gz";
     sha256 = "0brwra4jld0d53d7jsgca415ljglmmx1l2iazpj4ndilr48yy8mf";
   };
 
@@ -48,7 +46,7 @@ stdenv.mkDerivation rec {
     homepage = "https://ezix.org/project/wiki/HardwareLiSter";
     description = "Provide detailed information on the hardware configuration of the machine";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ phreedom ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/natscli/default.nix b/nixpkgs/pkgs/tools/system/natscli/default.nix
index 226528782e5f..97a690690ac4 100644
--- a/nixpkgs/pkgs/tools/system/natscli/default.nix
+++ b/nixpkgs/pkgs/tools/system/natscli/default.nix
@@ -5,12 +5,12 @@
 
 buildGoModule rec {
   pname = "natscli";
-  version = "0.0.26";
+  version = "0.0.28";
 
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = pname;
-    rev = version;
+    rev = "v${version}";
     sha256 = "sha256-w0a2BzfRKf55hFgdaDLsR2YeC5Jqa2uynlRN2oGPX8g=";
   };
 
diff --git a/nixpkgs/pkgs/tools/system/openipmi/default.nix b/nixpkgs/pkgs/tools/system/openipmi/default.nix
index 06df9afa8139..7e54a5549b71 100644
--- a/nixpkgs/pkgs/tools/system/openipmi/default.nix
+++ b/nixpkgs/pkgs/tools/system/openipmi/default.nix
@@ -2,19 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "OpenIPMI";
-  version = "2.0.31";
+  version = "2.0.32";
 
   src = fetchurl {
     url = "mirror://sourceforge/openipmi/OpenIPMI-${version}.tar.gz";
-    sha256 = "05wpkn74nxqp5p6sa2yaf2ajrh8b0gfkb7y4r86lnigz4rvz6lkh";
+    sha256 = "sha256-9tD9TAp0sF+AkHIp0LJw9UyiMpS8wRl5+LjRJ2Z4aUU=";
   };
 
-  patches = [
-    # fix assertion when used as a library in collectd
-    # taken from https://sourceforge.net/p/openipmi/code/ci/d613d279dbce2d5e4594f6fed39653d83af0d99b/
-    ./fix-collectd-assertion.diff
-  ];
-
   buildInputs = [ ncurses popt python3 readline ];
 
   outputs = [ "out" "lib" "dev" "man" ];
diff --git a/nixpkgs/pkgs/tools/system/openipmi/fix-collectd-assertion.diff b/nixpkgs/pkgs/tools/system/openipmi/fix-collectd-assertion.diff
deleted file mode 100644
index af39fcc05677..000000000000
--- a/nixpkgs/pkgs/tools/system/openipmi/fix-collectd-assertion.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/unix/posix_thread_os_hnd.c
-+++ b/unix/posix_thread_os_hnd.c
-@@ -140,8 +140,6 @@
-     fd_data->data_ready = data_ready;
-     fd_data->handler = handler;
-     fd_data->freed = freed;
--    sel_set_fd_write_handler(posix_sel, fd, SEL_FD_HANDLER_DISABLED);
--    sel_set_fd_except_handler(posix_sel, fd, SEL_FD_HANDLER_DISABLED);
-     rv = sel_set_fd_handlers(posix_sel, fd, fd_data, fd_handler, NULL, NULL,
- 			     free_fd_data);
-     if (rv) {
diff --git a/nixpkgs/pkgs/tools/system/openseachest/default.nix b/nixpkgs/pkgs/tools/system/openseachest/default.nix
new file mode 100644
index 000000000000..7b7909fbe002
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/openseachest/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, fetchFromGitHub
+, stdenv
+}:
+
+stdenv.mkDerivation rec {
+  pname = "openseachest";
+  version = "21.06.21";
+
+  src = fetchFromGitHub {
+    owner = "Seagate";
+    repo = "openSeaChest";
+    rev = "v${version}";
+    sha256 = "09xay3frk0yh48ww650dsjp0rx0w1m3ab3rpz5k1jizppv4kk9fi";
+    fetchSubmodules = true;
+  };
+
+  makeFlags = [ "-C Make/gcc" ];
+  buildFlags = [ "release" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,share}
+    cp -r Make/gcc/openseachest_exes/. $out/bin
+    cp -r docs/man $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A collection of command line diagnostic tools for storage devices";
+    homepage = "https://github.com/Seagate/openSeaChest";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ justinas ];
+    platforms = with platforms; freebsd ++ linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/system/plan9port/default.nix b/nixpkgs/pkgs/tools/system/plan9port/default.nix
index a735e35624f7..d6c8833618cd 100644
--- a/nixpkgs/pkgs/tools/system/plan9port/default.nix
+++ b/nixpkgs/pkgs/tools/system/plan9port/default.nix
@@ -1,23 +1,26 @@
-{ lib, stdenv, fetchFromGitHub, which
+{ lib
+, stdenv
+, fetchFromGitHub
 , darwin ? null
-, xorgproto ? null
+, fontconfig ? null
+, freetype ? null
 , libX11
 , libXext ? null
 , libXt ? null
-, fontconfig ? null
-, freetype ? null
 , perl ? null  # For building web manuals
+, which
+, xorgproto ? null
 }:
 
 stdenv.mkDerivation {
   pname = "plan9port";
-  version = "2021-04-22";
+  version = "2021-10-19";
 
   src =  fetchFromGitHub {
     owner = "9fans";
     repo = "plan9port";
-    rev = "70cc6e5ba7798b315c3fb3aae19620a01604a459";
-    hash = "sha256-HCn8R9YSocHrpw/xK5n8gsCLSAbAQgw0NtjO9vYIbKo=";
+    rev = "d0d440860f2000a1560abb3f593cdc325fcead4c";
+    hash = "sha256-2aYXqPGwrReyFPrLDtEjgQd/RJjpOfI3ge/tDocYpRQ=";
   };
 
   postPatch = ''
@@ -44,10 +47,19 @@ stdenv.mkDerivation {
   buildInputs = [
     perl
   ] ++ lib.optionals (!stdenv.isDarwin) [
-    xorgproto libX11 libXext libXt fontconfig
-    freetype # fontsrv wants ft2build.h provides system fonts for acme and sam.
+    fontconfig
+    freetype # fontsrv wants ft2build.h provides system fonts for acme and sam
+    libX11
+    libXext
+    libXt
+    xorgproto
   ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
-    Carbon Cocoa IOKit Metal QuartzCore
+    Carbon
+    Cocoa
+    IOKit
+    Metal
+    QuartzCore
+    darwin.DarwinTools
   ]);
 
   builder = ./builder.sh;
@@ -90,6 +102,8 @@ stdenv.mkDerivation {
       kovirobi
     ];
     platforms = platforms.unix;
+    # TODO: revisit this when the sdk situation on x86_64-darwin changes
+    broken = stdenv.isDarwin && stdenv.isx86_64;
   };
 }
 # TODO: investigate the mouse chording support patch
diff --git a/nixpkgs/pkgs/tools/system/rocm-smi/default.nix b/nixpkgs/pkgs/tools/system/rocm-smi/default.nix
index 52b75b7a4e9e..c91f5d818b17 100644
--- a/nixpkgs/pkgs/tools/system/rocm-smi/default.nix
+++ b/nixpkgs/pkgs/tools/system/rocm-smi/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-smi";
-  version = "4.3.1";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "rocm_smi_lib";
     rev = "rocm-${version}";
-    hash = "sha256-Ckno73Otkc9rHEUkSgNoOui+6ZHGUF+B9iAoe0NQH0c=";
+    hash = "sha256-zfsNGDAwBD91w0loWxd8AwuZ3kZSPCXMxxQnX6ktOiE=";
   };
 
   nativeBuildInputs = [ cmake wrapPython ];
diff --git a/nixpkgs/pkgs/tools/system/rsyslog/default.nix b/nixpkgs/pkgs/tools/system/rsyslog/default.nix
index 8e1e51469dd1..acf56b1558f1 100644
--- a/nixpkgs/pkgs/tools/system/rsyslog/default.nix
+++ b/nixpkgs/pkgs/tools/system/rsyslog/default.nix
@@ -14,11 +14,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "rsyslog";
-  version = "8.2108.0";
+  version = "8.2112.0";
 
   src = fetchurl {
     url = "https://www.rsyslog.com/files/download/rsyslog/${pname}-${version}.tar.gz";
-    sha256 = "sha256-SCbCttCBqclfRp+wEVvj+VEgZSl9PeAOxRN1jNswsdk=";
+    sha256 = "sha256-aiqXOGHpJm2ze9K3ufZytrlwv810Ojl7ju5rDcSFLEE=";
   };
 
   #patches = [ ./fix-gnutls-detection.patch ];
diff --git a/nixpkgs/pkgs/tools/system/s6-rc/default.nix b/nixpkgs/pkgs/tools/system/s6-rc/default.nix
index ab4ea7804942..0144a605e408 100644
--- a/nixpkgs/pkgs/tools/system/s6-rc/default.nix
+++ b/nixpkgs/pkgs/tools/system/s6-rc/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "s6-rc";
-  version = "0.5.2.3";
-  sha256 = "1xyaplwzvqnb53mg59a7jklakzwsiqivp6qggsry3sbaw4hf3d5j";
+  version = "0.5.3.0";
+  sha256 = "09rznjlz988fk9pff6mxc3dknwh2mibbawr9g62gcscmscmiv8wk";
 
   description = "A service manager for s6-based systems";
   platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/tools/system/s6/default.nix b/nixpkgs/pkgs/tools/system/s6/default.nix
index dc64afa6246f..f1215f9934d7 100644
--- a/nixpkgs/pkgs/tools/system/s6/default.nix
+++ b/nixpkgs/pkgs/tools/system/s6/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "s6";
-  version = "2.11.0.0";
-  sha256 = "1a3lj0xfhn1w3a4ygqsxy8q4dr3n48hnwml4xzdpz3nrikhy8if5";
+  version = "2.11.0.1";
+  sha256 = "02pr4q4cr9wc8i8ad8s6184a6fyndpmpnylgxwhfnkk3hx2j0zxd";
 
   description = "skarnet.org's small & secure supervision software suite";
 
diff --git a/nixpkgs/pkgs/tools/system/sg3_utils/default.nix b/nixpkgs/pkgs/tools/system/sg3_utils/default.nix
index 8d867c76e1ae..5aca34e344ba 100644
--- a/nixpkgs/pkgs/tools/system/sg3_utils/default.nix
+++ b/nixpkgs/pkgs/tools/system/sg3_utils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sg3_utils";
-  version = "1.46r862";
+  version = "1.47";
 
   src = fetchurl {
     url = "https://sg.danny.cz/sg/p/sg3_utils-${version}.tgz";
-    sha256 = "s2UmU+p3s7Hoe+GFri2q+/3XLBICc+h04cxM86yaAs8=";
+    sha256 = "sha256-hnPH+sqEm2s0dkMy0qqR9y2wW/9zgruDbQaIeVGZw+E=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/system/sleuthkit/default.nix b/nixpkgs/pkgs/tools/system/sleuthkit/default.nix
index 175c34020307..692746e1f7ff 100644
--- a/nixpkgs/pkgs/tools/system/sleuthkit/default.nix
+++ b/nixpkgs/pkgs/tools/system/sleuthkit/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, libewf, afflib, openssl, zlib, openjdk, perl, ant }:
 
 stdenv.mkDerivation rec {
-  version = "4.11.0";
+  version = "4.11.1";
   pname = "sleuthkit";
 
   sleuthsrc = fetchFromGitHub {
     owner = "sleuthkit";
     repo = "sleuthkit";
     rev = "${pname}-${version}";
-    sha256 = "1dh06k8grrj3wcx3h9m490p69bw41dz6cv8j5j1drpldmv67k3ki";
+    sha256 = "sha256-TM8My4dAZigukwMUNDnP3aVCQ8JDdVv/KNkchDvCl9I=";
   };
 
   # Fetch libraries using a fixed output derivation
diff --git a/nixpkgs/pkgs/tools/system/stress-ng/default.nix b/nixpkgs/pkgs/tools/system/stress-ng/default.nix
index 46a1fdfd8d3e..3fda2ec6a376 100644
--- a/nixpkgs/pkgs/tools/system/stress-ng/default.nix
+++ b/nixpkgs/pkgs/tools/system/stress-ng/default.nix
@@ -1,14 +1,16 @@
-{ lib, stdenv, fetchurl
+{ lib, stdenv, fetchFromGitHub
 , attr, judy, keyutils, libaio, libapparmor, libbsd, libcap, libgcrypt, lksctp-tools, zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "stress-ng";
-  version = "0.13.03";
+  version = "0.13.09";
 
-  src = fetchurl {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-PmDWBeN42GqFkaMNblV77XCdgqWxlhY3gALNj/ADeos=";
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-BOOB5fA/Cy1gsRA4j8aj3lVY2y4OvIfoiRqOIY9nZzM=";
   };
 
   postPatch = ''
@@ -62,9 +64,9 @@ stdenv.mkDerivation rec {
       hardware. However, it has never been intended to be used as a precise benchmark
       test suite, so do NOT use it in this manner.
     '';
-    homepage = "https://kernel.ubuntu.com/~cking/stress-ng/";
-    downloadPage = "https://kernel.ubuntu.com/~cking/tarballs/stress-ng/";
-    changelog = "https://kernel.ubuntu.com/git/cking/stress-ng.git/plain/debian/changelog?h=V${version}";
+    homepage = "https://github.com/ColinIanKing/stress-ng";
+    downloadPage = "https://github.com/ColinIanKing/stress-ng/tags";
+    changelog = "https://github.com/ColinIanKing/stress-ng/raw/V${version}/debian/changelog";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ c0bw3b ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/system/symlinks/default.nix b/nixpkgs/pkgs/tools/system/symlinks/default.nix
index ad275a2d4479..8d1213c0afef 100644
--- a/nixpkgs/pkgs/tools/system/symlinks/default.nix
+++ b/nixpkgs/pkgs/tools/system/symlinks/default.nix
@@ -1,12 +1,14 @@
-{ fetchurl, lib, stdenv }:
+{ fetchFromGitHub, lib, stdenv }:
 
 stdenv.mkDerivation rec {
   pname = "symlinks";
   version = "1.4.3";
 
-  src = fetchurl {
-    url = "https://github.com/brandt/symlinks/archive/v${version}.tar.gz";
-    sha256 = "1cihrd3dap52z1msdhhgda7b7wy1l5ysfvyba8yxb3zjk0l5n417";
+  src = fetchFromGitHub {
+    owner = "brandt";
+    repo = "symlinks";
+    rev = "v${version}";
+    sha256 = "EMWd7T/k4v1uvXe2QxhyPoQKUpKIUANE9AOwX461FgU=";
   };
 
   buildFlags = [ "CC=${stdenv.cc}/bin/cc" ];
diff --git a/nixpkgs/pkgs/tools/system/syslog-ng/default.nix b/nixpkgs/pkgs/tools/system/syslog-ng/default.nix
index 41da0b99fd98..51f8cd94da1e 100644
--- a/nixpkgs/pkgs/tools/system/syslog-ng/default.nix
+++ b/nixpkgs/pkgs/tools/system/syslog-ng/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "syslog-ng";
-  version = "3.28.1";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
-    sha256 = "1s56q8k69sdrqsh3y9lr4di01fqw7xb49wr0dz75jmz084yg8kmg";
+    sha256 = "sha256-zs457BxoyI1JNwXgpSi4PQONo4TonUg4OTzMdfYqLUw=";
   };
 
   nativeBuildInputs = [ pkg-config which ];
diff --git a/nixpkgs/pkgs/tools/system/thinkfan/default.nix b/nixpkgs/pkgs/tools/system/thinkfan/default.nix
index a53ef4ae9f85..8da87ecfa719 100644
--- a/nixpkgs/pkgs/tools/system/thinkfan/default.nix
+++ b/nixpkgs/pkgs/tools/system/thinkfan/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "thinkfan";
-  version = "1.2.2";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "vmatare";
     repo = "thinkfan";
     rev = version;
-    sha256 = "01l1pnj1cgy3dwgyys2s5iqzyv6kk47vlpy09qjafk8py21ijik3";
+    sha256 = "sha256-ZCZqi7A4qdWtDSkTw6ktHIZnPhdes2AX7+QBroaDDfI=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/system/tree/default.nix b/nixpkgs/pkgs/tools/system/tree/default.nix
index acf0813b3ac2..03ffee077d9f 100644
--- a/nixpkgs/pkgs/tools/system/tree/default.nix
+++ b/nixpkgs/pkgs/tools/system/tree/default.nix
@@ -4,22 +4,20 @@ let
   # These settings are found in the Makefile, but there seems to be no
   # way to select one ore the other setting other than editing the file
   # manually, so we have to duplicate the know how here.
-  systemFlags = with stdenv;
-    if isDarwin then ''
-      CFLAGS="-O2 -Wall -fomit-frame-pointer"
-      LDFLAGS=
-      EXTRA_OBJS=strverscmp.o
-    '' else if isCygwin then ''
-      CFLAGS="-O2 -Wall -fomit-frame-pointer -DCYGWIN"
-      LDFLAGS=-s
-      TREE_DEST=tree.exe
-      EXTRA_OBJS=strverscmp.o
-    '' else if (isFreeBSD || isOpenBSD) then ''
-      CFLAGS="-O2 -Wall -fomit-frame-pointer"
-      LDFLAGS=-s
-      EXTRA_OBJS=strverscmp.o
-    '' else
-    ""; # use linux flags by default
+  systemFlags = lib.optionalString stdenv.isDarwin ''
+    CFLAGS="-O2 -Wall -fomit-frame-pointer"
+    LDFLAGS=
+    EXTRA_OBJS=strverscmp.o
+  '' + lib.optionalString stdenv.isCygwin ''
+    CFLAGS="-O2 -Wall -fomit-frame-pointer -DCYGWIN"
+    LDFLAGS=-s
+    TREE_DEST=tree.exe
+    EXTRA_OBJS=strverscmp.o
+  '' + lib.optionalString (stdenv.isFreeBSD || stdenv.isOpenBSD) ''
+    CFLAGS="-O2 -Wall -fomit-frame-pointer"
+    LDFLAGS=-s
+    EXTRA_OBJS=strverscmp.o
+  ''; # use linux flags by default
 in
 stdenv.mkDerivation rec {
   pname = "tree";
@@ -30,27 +28,29 @@ stdenv.mkDerivation rec {
     sha256 = "1hmpz6k0mr6salv0nprvm1g0rdjva1kx03bdf1scw8a38d5mspbi";
   };
 
-  configurePhase = ''
+  preConfigure = ''
     sed -i Makefile -e 's|^OBJS=|OBJS=$(EXTRA_OBJS) |'
-    makeFlagsArray=(
-      prefix=$out
-      MANDIR=$out/share/man/man1
+    makeFlagsArray+=(
       ${systemFlags}
-      CC="$CC"
+      "CC=$CC"
     )
   '';
 
-  meta = {
+  makeFlags = [
+    "prefix=${placeholder "out"}"
+    "MANDIR=${placeholder "out"}/share/man/man1"
+  ];
+
+  meta = with lib; {
     homepage = "http://mama.indstate.edu/users/ice/tree/";
     description = "Command to produce a depth indented directory listing";
-    license = lib.licenses.gpl2;
-
+    license = licenses.gpl2;
     longDescription = ''
       Tree is a recursive directory listing command that produces a
       depth indented listing of files, which is colorized ala dircolors if
       the LS_COLORS environment variable is set and output is to tty.
     '';
-
-    platforms = lib.platforms.all;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/uefitool/variants.nix b/nixpkgs/pkgs/tools/system/uefitool/variants.nix
index 0e8d7285aab6..adf4884e2af1 100644
--- a/nixpkgs/pkgs/tools/system/uefitool/variants.nix
+++ b/nixpkgs/pkgs/tools/system/uefitool/variants.nix
@@ -3,8 +3,8 @@ let
   common = opts: libsForQt5.callPackage (import ./common.nix opts) {};
 in rec {
   new-engine = common rec {
-    version = "A58";
-    sha256 = "131hkyr07fg7rnr938yyj0gk528x3402dhisav221c27v84zb7pn";
+    version = "A59";
+    sha256 = "0m6hkj33vr75mrpjpdc0l38xv64kq73ph2mr2v9bs3wx4qlvg606";
     installFiles = [ "UEFITool/UEFITool" "UEFIFind/UEFIFind" "UEFIExtract/UEFIExtract" ];
   };
   old-engine = common rec {
diff --git a/nixpkgs/pkgs/tools/system/uptimed/default.nix b/nixpkgs/pkgs/tools/system/uptimed/default.nix
index 8e0265755355..93dcca90a264 100644
--- a/nixpkgs/pkgs/tools/system/uptimed/default.nix
+++ b/nixpkgs/pkgs/tools/system/uptimed/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "uptimed";
-  version = "0.4.4";
+  version = "0.4.6";
 
   src = fetchFromGitHub {
-    sha256 = "sha256-DSvxE9BZpjpDQi2SxbM5iuAAHgUCaiwimcgxivD4mck=";
+    sha256 = "sha256-aYP20O/8QotmnpryiFnFAfrpyk5f+0OkbkGxWf2Ug9w=";
     rev = "v${version}";
     repo = "uptimed";
     owner = "rpodgorny";
diff --git a/nixpkgs/pkgs/tools/system/zenith/default.nix b/nixpkgs/pkgs/tools/system/zenith/default.nix
index 1e36614c4274..3705c9cad90c 100644
--- a/nixpkgs/pkgs/tools/system/zenith/default.nix
+++ b/nixpkgs/pkgs/tools/system/zenith/default.nix
@@ -18,12 +18,13 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1bn364rmp0q86rd7vgv4n7x09cdf9m4njcaq92jnk85ni6h147ax";
   };
 
-  cargoBuildFlags = lib.optionals nvidiaSupport [ "--features" "nvidia" ];
   cargoSha256 = "0c2mk2bcz4qjyqmf11yqhnhy4pqxr77b3c1gvr5jfmjshx4ff7v2";
 
   nativeBuildInputs = lib.optional nvidiaSupport makeWrapper;
   buildInputs = lib.optionals stdenv.isDarwin [ IOKit ];
 
+  buildFeatures = lib.optional nvidiaSupport "nvidia";
+
   postInstall = lib.optionalString nvidiaSupport ''
     wrapProgram $out/bin/zenith \
       --suffix LD_LIBRARY_PATH : "/run/opengl-driver/lib"
diff --git a/nixpkgs/pkgs/tools/text/anewer/default.nix b/nixpkgs/pkgs/tools/text/anewer/default.nix
new file mode 100644
index 000000000000..e41b12cee447
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/anewer/default.nix
@@ -0,0 +1,22 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "anewer";
+  version = "0.1.6";
+
+  src = fetchFromGitHub {
+    owner = "ysf";
+    repo = pname;
+    rev = version;
+    sha256 = "181mi674354bddnq894yyq587w7skjh35vn61i41vfi6lqz5dy3d";
+  };
+
+  cargoSha256 = "sha256-LJ0l5CZM5NqdbCZe4ELkYf9EkKyBxL/LrNmFy+JS6gM=";
+
+  meta = with lib; {
+    description = "Append lines from stdin to a file if they don't already exist in the file";
+    homepage = "https://github.com/ysf/anewer";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/angle-grinder/default.nix b/nixpkgs/pkgs/tools/text/angle-grinder/default.nix
index 02235b057d4d..a2303c10a639 100644
--- a/nixpkgs/pkgs/tools/text/angle-grinder/default.nix
+++ b/nixpkgs/pkgs/tools/text/angle-grinder/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "angle-grinder";
-  version = "0.17.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "rcoh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jG3jHFqFOrIT/e5oyLOEckw5C3LIs7amFAa4QDEI/EY=";
+    sha256 = "sha256-kohw95pvcBLviPgTDGWIbvZuz1cJmKh4eB0Bx4AEk1E=";
   };
 
-  cargoSha256 = "sha256-Rkex+fnnacV+DCRpX3Zh9J3vGuG4QfFhFezHTs33peY=";
+  cargoSha256 = "sha256-m44hFYcyQ1yRf1O5OlomF7rEpkdnnX3FNhB8kUdriKg=";
 
   meta = with lib; {
     description = "Slice and dice logs on the command line";
diff --git a/nixpkgs/pkgs/tools/text/ansifilter/default.nix b/nixpkgs/pkgs/tools/text/ansifilter/default.nix
index 97b06b9a0c7e..79aa4e2debcd 100644
--- a/nixpkgs/pkgs/tools/text/ansifilter/default.nix
+++ b/nixpkgs/pkgs/tools/text/ansifilter/default.nix
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     substituteInPlace src/makefile --replace "CC=g++" "CC=c++"
+    # avoid timestamp non-determinism with '-n'
+    substituteInPlace makefile --replace 'gzip -9f' 'gzip -9nf'
   '';
 
   makeFlags = [
diff --git a/nixpkgs/pkgs/tools/text/cconv/default.nix b/nixpkgs/pkgs/tools/text/cconv/default.nix
index e918d620c678..de8405aed43b 100644
--- a/nixpkgs/pkgs/tools/text/cconv/default.nix
+++ b/nixpkgs/pkgs/tools/text/cconv/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, autoreconfHook, libiconv }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, libiconv }:
 
 stdenv.mkDerivation rec {
   pname = "cconv";
   version = "0.6.3";
 
-  src = fetchurl {
-    url = "https://github.com/xiaoyjy/cconv/archive/v${version}.tar.gz";
-    sha256 = "82f46a94829f5a8157d6f686e302ff5710108931973e133d6e19593061b81d84";
+  src = fetchFromGitHub {
+    owner = "xiaoyjy";
+    repo = "cconv";
+    rev = "v${version}";
+    sha256 = "RAFl/+I+usUfeG/l17F3ltThK7G4+TekyQGwzQIgeH8=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/tools/text/chroma/default.nix b/nixpkgs/pkgs/tools/text/chroma/default.nix
index 1b9cbcd3727a..42784d65a739 100644
--- a/nixpkgs/pkgs/tools/text/chroma/default.nix
+++ b/nixpkgs/pkgs/tools/text/chroma/default.nix
@@ -1,37 +1,32 @@
 { lib, buildGoModule, fetchFromGitHub }:
 
+let
+  srcInfo = lib.importJSON ./src.json;
+in
+
 buildGoModule rec {
   pname = "chroma";
-  version = "0.9.2";
+  version = "0.9.4";
 
+  # To update:
+  # nix-prefetch-git --rev v${version} https://github.com/alecthomas/chroma.git > src.json
   src = fetchFromGitHub {
     owner  = "alecthomas";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "19d7yr6q8kwrm91yyglmw9n7wa861sgi6dbwn8sl6dp55czfwvaq";
-    # populate values otherwise taken care of by goreleaser,
-    # unfortunately these require us to use git. By doing
-    # this in postFetch we can delete .git afterwards and
-    # maintain better reproducibility of the src.
-    leaveDotGit = true;
-    postFetch = ''
-      cd "$out"
-
-      commit="$(git rev-parse HEAD)"
-      date=$(git show -s --format=%aI "$commit")
-
-      substituteInPlace "$out/cmd/chroma/main.go" \
-        --replace 'version = "?"' 'version = "${version}"' \
-        --replace 'commit  = "?"' "commit = \"$commit\"" \
-        --replace 'date    = "?"' "date = \"$date\""
-
-      find "$out" -name .git -print0 | xargs -0 rm -rf
-    '';
+    inherit (srcInfo) sha256;
   };
 
-  vendorSha256 = "0y8mp08zccn9qxrsj9j7vambz8dwzsxbbgrlppzam53rg8rpxhrg";
+  vendorSha256 = "1l5ryhwifhff41r4z1d2lifpvjcc4yi1vzrzlvkx3iy9dmxqcssl";
+
+  modRoot = "./cmd/chroma";
 
-  subPackages = [ "cmd/chroma" ];
+  # substitute version info as done in goreleaser builds
+  ldflags = [
+    "-X" "main.version=${version}"
+    "-X" "main.commit=${srcInfo.rev}"
+    "-X" "main.date=${srcInfo.date}"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/alecthomas/chroma";
diff --git a/nixpkgs/pkgs/tools/text/chroma/src.json b/nixpkgs/pkgs/tools/text/chroma/src.json
new file mode 100644
index 000000000000..9bfc8d9c2c73
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/chroma/src.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/alecthomas/chroma.git",
+  "rev": "6520148857c2ae3106ff371e527abea815b23915",
+  "date": "2021-10-17T08:46:20+11:00",
+  "path": "/nix/store/0s8a46d1nyjl3yhsgni2jz5vdv95cka8-chroma",
+  "sha256": "1iy6mymdjxbl5wbll1mivv7gqdyqhl6xpfqps99z307m7y38r1ni",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/nixpkgs/pkgs/tools/text/cmigemo/default.nix b/nixpkgs/pkgs/tools/text/cmigemo/default.nix
index 6787d68991d3..92be45bbd9d7 100644
--- a/nixpkgs/pkgs/tools/text/cmigemo/default.nix
+++ b/nixpkgs/pkgs/tools/text/cmigemo/default.nix
@@ -1,5 +1,11 @@
-{ lib, stdenv, fetchFromGitHub, fetchurl, gzip, libiconv, nkf, perl, skk-dicts, which }:
-
+{ lib, stdenv, fetchFromGitHub, fetchurl, buildPackages
+, gzip, libiconv, nkf, perl, which
+, skk-dicts
+}:
+
+let
+  iconvBin = if stdenv.isDarwin then libiconv else  buildPackages.stdenv.cc.libc;
+in
 stdenv.mkDerivation {
   pname = "cmigemo";
   version = "1.3e";
@@ -21,7 +27,11 @@ stdenv.mkDerivation {
 
   makeFlags = [ "INSTALL=install" ];
 
-  buildPhase = if stdenv.isDarwin then "make osx-all" else "make gcc-all";
+  preBuild = ''
+    makeFlagsArray+=(FILTER_UTF8="${lib.getBin iconvBin}/bin/iconv -t utf-8 -f cp932")
+  '';
+
+  buildFlags = [ (if stdenv.isDarwin then "osx-all" else "gcc-all") ];
 
   installTargets = [ (if stdenv.isDarwin then "osx-install" else "gcc-install") ];
 
diff --git a/nixpkgs/pkgs/tools/text/crowdin-cli/default.nix b/nixpkgs/pkgs/tools/text/crowdin-cli/default.nix
index f5c489681e93..9b2726443f40 100644
--- a/nixpkgs/pkgs/tools/text/crowdin-cli/default.nix
+++ b/nixpkgs/pkgs/tools/text/crowdin-cli/default.nix
@@ -7,16 +7,18 @@
 , installShellFiles
 , jre
 , makeWrapper
+, crowdin-cli
+, testVersion
 , unzip
 }:
 
 stdenv.mkDerivation rec {
   pname = "crowdin-cli";
-  version = "3.7.0";
+  version = "3.7.4";
 
   src = fetchurl {
     url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip";
-    sha256 = "sha256-2TQL5k2ndckFjOOXNz7clVpwPUMStR4xgd1P+qUhNC8=";
+    sha256 = "sha256-zsd95dkKzuhqtWFwc84tjZ05MnzE25UvfF459gfp+lA=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper unzip ];
@@ -36,7 +38,10 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  passthru.tests.version = testVersion { package = crowdin-cli; };
+
   meta = with lib; {
+    mainProgram = "crowdin";
     homepage = "https://github.com/crowdin/crowdin-cli/";
     description = "A command-line client for the Crowdin API";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/text/csvdiff/default.nix b/nixpkgs/pkgs/tools/text/csvdiff/default.nix
new file mode 100644
index 000000000000..f85d725d6ca4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/csvdiff/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "csvdiff";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "aswinkarthik";
+    repo = "csvdiff";
+    rev = "v${version}";
+    sha256 = "0cd1ikxsypjqisfnmr7zix3g7x8p892w77086465chyd39gpk97b";
+  };
+
+  vendorSha256 = "1612s4kc0r8zw5y2n6agwdx9kwhxkdrjzagn4g22lzmjq02a64xf";
+
+  meta = with lib; {
+    homepage = "https://aswinkarthik.github.io/csvdiff/";
+    description = "A fast diff tool for comparing csv files";
+    license = licenses.mit;
+    maintainers = with maintainers; [ turion ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/csview/default.nix b/nixpkgs/pkgs/tools/text/csview/default.nix
index 60186a6b3b75..58d1fe2a7a68 100644
--- a/nixpkgs/pkgs/tools/text/csview/default.nix
+++ b/nixpkgs/pkgs/tools/text/csview/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "csview";
-  version = "0.3.8";
+  version = "0.3.10";
 
   src = fetchFromGitHub {
     owner = "wfxr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18bz12yn85h9vj0b18iaziix9km2iwh8gwfs93fddjv6kg87p38q";
+    sha256 = "sha256-ezN/hU8SdC/ox+l1KJQixzFwGvfmg3zfUjf/bAtnYRU=";
   };
 
-  cargoSha256 = "1my6gl8zq5k7clzapgbf1mmcgq8mmdbhl250rdd1fvfd59wkrwra";
+  cargoSha256 = "sha256-gEiZIwISlazkBwQPFaIWM6dViumc55no8RQ8E30JfUo=";
 
   meta = with lib; {
     description = "A high performance csv viewer with cjk/emoji support";
diff --git a/nixpkgs/pkgs/tools/text/dcs/default.nix b/nixpkgs/pkgs/tools/text/dcs/default.nix
index 511931f03808..e33c1b44cdf2 100644
--- a/nixpkgs/pkgs/tools/text/dcs/default.nix
+++ b/nixpkgs/pkgs/tools/text/dcs/default.nix
@@ -41,6 +41,7 @@ buildGoModule {
     homepage = "https://github.com/Debian/dcs";
     license = licenses.bsd3;
     maintainers = teams.determinatesystems.members;
-    broken = stdenv.isAarch64;
+    broken = stdenv.isAarch64
+      || stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/dcs.x86_64-darwin
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/difftastic/default.nix b/nixpkgs/pkgs/tools/text/difftastic/default.nix
index 32644fdf28b2..ee86bcd635e3 100644
--- a/nixpkgs/pkgs/tools/text/difftastic/default.nix
+++ b/nixpkgs/pkgs/tools/text/difftastic/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "difftastic";
-  version = "0.10.1";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "wilfred";
     repo = pname;
     rev = version;
-    sha256 = "12fcfwx56phs64yl94al2hkvss1km4n9wbrn2md7wfh1137jykbg";
+    sha256 = "sha256-A6Z3g6fbYBynyN4OhRrZNO0ZghvT3XnIahdUQ8SE8tU=";
   };
 
-  cargoSha256 = "0xnlnkdvsd2l7acdrkz918cjkk36k01rvvm0c8hnpx5327v6nsa8";
+  cargoSha256 = "sha256-6/JwrPymtpj/CXqx3Pe43v+MJTNONArU2WEo/zgJhT4=";
 
   postPatch = ''
     pushd vendor
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Wilfred/difftastic/raw/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ ethancedwards8 figsoda ];
+    mainProgram = "difft";
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/dirdiff/default.nix b/nixpkgs/pkgs/tools/text/dirdiff/default.nix
index b49df59b29e1..e0385d332450 100644
--- a/nixpkgs/pkgs/tools/text/dirdiff/default.nix
+++ b/nixpkgs/pkgs/tools/text/dirdiff/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "2.1";
 
   src = fetchurl {
-    url = "https://www.samba.org/ftp/paulus/${pname}-${version}.tar.gz";
+    url = "mirror://samba/paulus/${pname}-${version}.tar.gz";
     sha256 = "0lljd8av68j70733yshzzhxjr1lm0vgmbqsm8f02g03qsma3cdyb";
   };
 
diff --git a/nixpkgs/pkgs/tools/text/discount/default.nix b/nixpkgs/pkgs/tools/text/discount/default.nix
index 264e944028e3..805876bd21e2 100644
--- a/nixpkgs/pkgs/tools/text/discount/default.nix
+++ b/nixpkgs/pkgs/tools/text/discount/default.nix
@@ -11,7 +11,14 @@ stdenv.mkDerivation rec {
     sha256 = "0p2gznrsvv82zxbajqir8y2ap1ribbgagqg1bzhv3i81p2byhjh7";
   };
 
-  patches = ./fix-configure-path.patch;
+  patches = [
+    ./fix-configure-path.patch
+
+    # Fix parallel make depends:
+    # - https://github.com/Orc/discount/commit/e42188e6c4c30d9de668cf98d98dd0c13ecce7cf.patch
+    # - https://github.com/Orc/discount/pull/245
+    ./parallel-make.patch
+  ];
   configureScript = "./configure.sh";
 
   configureFlags = [
@@ -21,6 +28,7 @@ stdenv.mkDerivation rec {
     "--with-fenced-code"
   ];
 
+  enableParallelBuilding = true;
   doCheck = true;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/text/discount/parallel-make.patch b/nixpkgs/pkgs/tools/text/discount/parallel-make.patch
new file mode 100644
index 000000000000..583622a9152f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/discount/parallel-make.patch
@@ -0,0 +1,15 @@
+https://github.com/Orc/discount/pull/245
+https://github.com/Orc/discount/commit/e42188e6c4c30d9de668cf98d98dd0c13ecce7cf.patch
+
+Fix parallel make failure: add missing pandoc_headers dependency.
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -139,7 +139,7 @@ test:	$(PGMS) $(TESTFRAMEWORK) verify
+ 
+ pandoc_headers.o: tools/pandoc_headers.c config.h
+ 	$(BUILD) -c -o pandoc_headers.o tools/pandoc_headers.c
+-pandoc_headers: pandoc_headers.o
++pandoc_headers: pandoc_headers.o $(COMMON) $(MKDLIB)
+ 	$(LINK) -o pandoc_headers pandoc_headers.o $(COMMON) -lmarkdown 
+ 
+ branch.o: tools/branch.c config.h
diff --git a/nixpkgs/pkgs/tools/text/fanficfare/default.nix b/nixpkgs/pkgs/tools/text/fanficfare/default.nix
index 5fb70f63dc31..dec0a1949225 100644
--- a/nixpkgs/pkgs/tools/text/fanficfare/default.nix
+++ b/nixpkgs/pkgs/tools/text/fanficfare/default.nix
@@ -2,18 +2,20 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FanFicFare";
-  version = "3.21.0";
+  version = "4.8.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "16hklfbww6ibmjr32gg98nlnzl4dwanz6lm3fzg2x3vd7d54m92c";
+    sha256 = "0h20cw9z6k3z42fhl48pfxcqrk3i45zp4f4xm6pz7jqjzi17h9fk";
   };
 
   propagatedBuildInputs = with python3Packages; [
     beautifulsoup4
     chardet
+    cloudscraper
     html5lib
     html2text
+    requests-file
   ];
 
   doCheck = false; # no tests exist
diff --git a/nixpkgs/pkgs/tools/text/gawk/default.nix b/nixpkgs/pkgs/tools/text/gawk/default.nix
index 3eb9ed3000c2..d66d3763c036 100644
--- a/nixpkgs/pkgs/tools/text/gawk/default.nix
+++ b/nixpkgs/pkgs/tools/text/gawk/default.nix
@@ -17,11 +17,11 @@ assert (doCheck && stdenv.isLinux) -> glibcLocales != null;
 
 stdenv.mkDerivation rec {
   pname = "gawk";
-  version = "5.1.0";
+  version = "5.1.1";
 
   src = fetchurl {
     url = "mirror://gnu/gawk/gawk-${version}.tar.xz";
-    sha256 = "1gc2cccqy1x1bf6rhwlmd8q7dz7gnam6nwgl38bxapv6qm5flpyg";
+    sha256 = "18kybw47fb1sdagav7aj95r9pp09r5gm202y3ahvwjw9dqw2jxnq";
   };
 
   # When we do build separate interactive version, it makes sense to always include man.
diff --git a/nixpkgs/pkgs/tools/text/glogg/default.nix b/nixpkgs/pkgs/tools/text/glogg/default.nix
index 306c25498ad3..855490df4ab4 100644
--- a/nixpkgs/pkgs/tools/text/glogg/default.nix
+++ b/nixpkgs/pkgs/tools/text/glogg/default.nix
@@ -25,7 +25,6 @@ mkDerivation rec {
     mkdir -p $out/Applications
     mv $out/bin/glogg.app $out/Applications/glogg.app
     rm -fr $out/{bin,share}
-    wrapQtApp $out/Applications/glogg.app/Contents/MacOS/glogg
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/text/gnugrep/default.nix b/nixpkgs/pkgs/tools/text/gnugrep/default.nix
index c5a661af1153..bb0c90197d3c 100644
--- a/nixpkgs/pkgs/tools/text/gnugrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/gnugrep/default.nix
@@ -5,7 +5,7 @@
 # cgit) that are needed here should be included directly in Nixpkgs as
 # files.
 
-let version = "3.6"; in
+let version = "3.7"; in
 
 stdenv.mkDerivation {
   pname = "gnugrep";
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://gnu/grep/grep-${version}.tar.xz";
-    sha256 = "0gipv6bzkm1aihj0ncqpyh164xrzgcxcv9r1kwzyk2g1mzl1azk6";
+    sha256 = "0g42svbc1nq5bamxfj6x7320wli4dlj86padk0hwgbk04hqxl42w";
   };
 
   # Perl is needed for testing
diff --git a/nixpkgs/pkgs/tools/text/gnused/422.nix b/nixpkgs/pkgs/tools/text/gnused/422.nix
index 6b16f01f2fa1..15e57e319019 100644
--- a/nixpkgs/pkgs/tools/text/gnused/422.nix
+++ b/nixpkgs/pkgs/tools/text/gnused/422.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "gnused-4.2.2";
+stdenv.mkDerivation rec {
+  pname = "gnused";
+  version = "4.2.2";
 
   src = fetchurl {
-    url = "mirror://gnu/sed/sed-4.2.2.tar.bz2";
+    url = "mirror://gnu/sed/sed-${version}.tar.bz2";
     sha256 = "f048d1838da284c8bc9753e4506b85a1e0cc1ea8999d36f6995bcb9460cddbd7";
   };
 
diff --git a/nixpkgs/pkgs/tools/text/grin/default.nix b/nixpkgs/pkgs/tools/text/grin/default.nix
index 5d89619001b4..ffa80baf6eac 100644
--- a/nixpkgs/pkgs/tools/text/grin/default.nix
+++ b/nixpkgs/pkgs/tools/text/grin/default.nix
@@ -1,22 +1,21 @@
-{ lib, fetchFromGitHub, python2Packages }:
+{ lib, fetchFromGitHub, python3Packages }:
 
-python2Packages.buildPythonApplication rec {
-  program = "grin";
-  version = "1.2.1";
-  name = "${program}-${version}";
+python3Packages.buildPythonApplication rec {
+  pname = "grin";
+  version = "1.3.0";
   namePrefix = "";
 
   src = fetchFromGitHub {
-    owner = "rkern";
-    repo = program;
-    rev = "8dd4b5309b3bc04fe9d3e71836420f7d8d4a293f";
-    sha256 = "0vz2aahwdcy1296g4w3i79dkvmzk9jc2n2zmlcvlg5m3s6h7b6jd";
+    owner = "matthew-brett";
+    repo = pname;
+    rev = "1.3.0";
+    sha256 = "057d05vzx4sf415vnh3qj2g351xhb3illjxjs9mdl3nsnb5r84kv";
   };
 
-  buildInputs = with python2Packages; [ nose ];
+  buildInputs = with python3Packages; [ nose ];
 
   meta = {
-    homepage = "https://github.com/rkern/grin";
+    homepage = "https://github.com/matthew-brett/grin";
     description = "A grep program configured the way I like it";
     platforms = lib.platforms.all;
     maintainers = [ lib.maintainers.sjagoe ];
diff --git a/nixpkgs/pkgs/tools/text/groff/default.nix b/nixpkgs/pkgs/tools/text/groff/default.nix
index 5b158f2cbb0e..cb57fb2bb07f 100644
--- a/nixpkgs/pkgs/tools/text/groff/default.nix
+++ b/nixpkgs/pkgs/tools/text/groff/default.nix
@@ -55,10 +55,10 @@ stdenv.mkDerivation rec {
   # have to pass "--with-appresdir", too.
   configureFlags = [
     "--without-x"
+    "ac_cv_path_PERL=${buildPackages.perl}/bin/perl"
   ] ++ lib.optionals (ghostscript != null) [
     "--with-gs=${ghostscript}/bin/gs"
   ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
-    "ac_cv_path_PERL=${buildPackages.perl}/bin/perl"
     "gl_cv_func_signbit=yes"
   ];
 
@@ -106,7 +106,6 @@ stdenv.mkDerivation rec {
     substituteInPlace $perl/bin/grog \
       --replace $out/lib/groff/grog $perl/lib/groff/grog
 
-  '' + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
     find $perl/ -type f -print0 | xargs --null sed -i 's|${buildPackages.perl}|${perl}|'
   '';
 
diff --git a/nixpkgs/pkgs/tools/text/hck/default.nix b/nixpkgs/pkgs/tools/text/hck/default.nix
index 00ab04a56c66..ebb66a07a8bf 100644
--- a/nixpkgs/pkgs/tools/text/hck/default.nix
+++ b/nixpkgs/pkgs/tools/text/hck/default.nix
@@ -3,27 +3,35 @@
 , fetchFromGitHub
 , cmake
 , stdenv
-, libiconv
 , CoreFoundation
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "hck";
-  version = "0.6.6";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "sstadick";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-DUFJZEtJM5Sv41zJvSZ8KsNWFzlictM2T1wS7VxPL04=";
+    sha256 = "sha256-6PXhFOXWplj7yEyn7hOQSPS2YDGc1nxTs6wRseRvEVk=";
   };
 
-  cargoSha256 = "sha256-kubQL+p7J2koPDOje5wMxKDeCY4yi0kupfHsJCKYf44=";
+  cargoSha256 = "sha256-VAtvc8K4282twB1MRY72+dCky3JmrTRjOPx1Ft7Oqt8=";
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ libiconv CoreFoundation Security ];
+  buildInputs = lib.optionals stdenv.isDarwin [ CoreFoundation Security ];
+
+  # link System as a dylib instead of a framework on macos
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    core_affinity=../$(stripHash $cargoDeps)/core_affinity
+    oldHash=$(sha256sum $core_affinity/src/lib.rs | cut -d " " -f 1)
+    substituteInPlace $core_affinity/src/lib.rs --replace framework dylib
+    substituteInPlace $core_affinity/.cargo-checksum.json \
+      --replace $oldHash $(sha256sum $core_affinity/src/lib.rs | cut -d " " -f 1)
+  '';
 
   meta = with lib; {
     description = "A close to drop in replacement for cut that can use a regex delimiter instead of a fixed string";
diff --git a/nixpkgs/pkgs/tools/text/highlight/default.nix b/nixpkgs/pkgs/tools/text/highlight/default.nix
index 82d5eab5086f..57c607e69c6b 100644
--- a/nixpkgs/pkgs/tools/text/highlight/default.nix
+++ b/nixpkgs/pkgs/tools/text/highlight/default.nix
@@ -1,7 +1,5 @@
 { lib, stdenv, fetchFromGitLab, getopt, lua, boost, pkg-config, swig, perl, gcc }:
 
-with lib;
-
 let
   self = stdenv.mkDerivation rec {
     pname = "highlight";
@@ -16,11 +14,12 @@ let
 
     enableParallelBuilding = true;
 
-    nativeBuildInputs = [ pkg-config swig perl ] ++ optional stdenv.isDarwin gcc;
+    nativeBuildInputs = [ pkg-config swig perl ]
+      ++ lib.optional stdenv.isDarwin gcc;
 
     buildInputs = [ getopt lua boost ];
 
-    prePatch = ''
+    postPatch = ''
       substituteInPlace src/makefile \
         --replace "shell pkg-config" "shell $PKG_CONFIG"
       substituteInPlace makefile \
@@ -36,15 +35,15 @@ let
 
     # This has to happen _before_ the main build because it does a
     # `make clean' for some reason.
-    preBuild = optionalString (!stdenv.isDarwin) ''
+    preBuild = lib.optionalString (!stdenv.isDarwin) ''
       make -C extras/swig $makeFlags perl
     '';
 
-    postCheck = optionalString (!stdenv.isDarwin) ''
+    postCheck = lib.optionalString (!stdenv.isDarwin) ''
       perl -Iextras/swig extras/swig/testmod.pl
     '';
 
-    preInstall = optionalString (!stdenv.isDarwin) ''
+    preInstall = lib.optionalString (!stdenv.isDarwin) ''
       mkdir -p $out/${perl.libPrefix}
       install -m644 extras/swig/highlight.{so,pm} $out/${perl.libPrefix}
       make -C extras/swig clean # Clean up intermediate files.
diff --git a/nixpkgs/pkgs/tools/text/hyx/default.nix b/nixpkgs/pkgs/tools/text/hyx/default.nix
index c287b37dd1b5..28b4765ede4a 100644
--- a/nixpkgs/pkgs/tools/text/hyx/default.nix
+++ b/nixpkgs/pkgs/tools/text/hyx/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "hyx";
-  version = "2020-06-09";
+  version = "2021.06.09";
 
   src = fetchurl {
     url = "https://yx7.cc/code/hyx/hyx-${lib.replaceStrings [ "-" ] [ "." ] version}.tar.xz";
-    sha256 = "1x8dmll93hrnj24kn5knpwj36y6r1v2ygwynpjwrg2hwd4c1a8hi";
+    sha256 = "sha256-jU8U5YWE1syPBOQ8o4BC7tIYiCo4kknCCwhnMCVtpes=";
   };
 
   postPatch = lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/tools/text/invoice2data/default.nix b/nixpkgs/pkgs/tools/text/invoice2data/default.nix
index 8007724f4a53..941f2d6f4938 100644
--- a/nixpkgs/pkgs/tools/text/invoice2data/default.nix
+++ b/nixpkgs/pkgs/tools/text/invoice2data/default.nix
@@ -1,21 +1,54 @@
-{ lib, python3Packages, xpdf, imagemagick, tesseract }:
+{ lib
+, fetchFromGitHub
+, imagemagick
+, python3
+, tesseract
+, xpdf
+}:
 
-python3Packages.buildPythonPackage rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "invoice2data";
-  version = "0.2.93";
+  version = "0.3.6";
+  format = "setuptools";
 
-  src = python3Packages.fetchPypi {
-    inherit pname version;
-    sha256 = "1phz0a8jxg074k0im7shrrdfvdps7bn1fa4zwcf8q3sa2iig26l4";
+  src = fetchFromGitHub {
+    owner = "invoice-x";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-t1jgLyKtQsLINlnkCdSbVfTM6B/EiD1yGtx9UHjyZVE=";
   };
 
-  makeWrapperArgs = ["--prefix" "PATH" ":" (lib.makeBinPath [ imagemagick xpdf tesseract ]) ];
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools-git
+  ];
 
-  propagatedBuildInputs = with python3Packages; [ unidecode dateparser pyyaml pillow chardet pdfminer ];
+  propagatedBuildInputs = with python3.pkgs; [
+    chardet
+    dateparser
+    pdfminer
+    pillow
+    pyyaml
+    unidecode
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "pytest-runner" ""
+  '';
+
+  makeWrapperArgs = ["--prefix" "PATH" ":" (lib.makeBinPath [
+    imagemagick
+    tesseract
+    xpdf
+  ])];
 
   # Tests fails even when ran manually on my ubuntu machine !!
   doCheck = false;
 
+  pythonImportsCheck = [
+    "invoice2data"
+  ];
+
   meta = with lib; {
     description = "Data extractor for PDF invoices";
     homepage = "https://github.com/invoice-x/invoice2data";
diff --git a/nixpkgs/pkgs/tools/text/l2md/default.nix b/nixpkgs/pkgs/tools/text/l2md/default.nix
index e443cc42a2ec..758130e9f0aa 100644
--- a/nixpkgs/pkgs/tools/text/l2md/default.nix
+++ b/nixpkgs/pkgs/tools/text/l2md/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "l2md";
-  version = "unstable-2020-07-31";
+  version = "unstable-2021-10-27";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/linux/kernel/git/dborkman/l2md.git";
-    rev = "2b9fae141fc2129940e0337732a35a3fc1c33455";
-    sha256 = "PNNoD3a+rJwKH6wbOkvVU1IW4+xF7+zQaLFAlyLlYOI=";
+    rev = "9db252bc1716ebaf0abd3a47a59ea78e4e6253d6";
+    sha256 = "sha256-H/leDUwQM55akyXsmTnI2YsnG4i1KQtf4bBt1fizy8E=";
   };
 
   buildInputs = [ libgit2 ];
diff --git a/nixpkgs/pkgs/tools/text/languagetool/default.nix b/nixpkgs/pkgs/tools/text/languagetool/default.nix
index 791d779bf833..3c130162ca15 100644
--- a/nixpkgs/pkgs/tools/text/languagetool/default.nix
+++ b/nixpkgs/pkgs/tools/text/languagetool/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "LanguageTool";
-  version = "5.4";
+  version = "5.5";
 
   src = fetchzip {
     url = "https://www.languagetool.org/download/${pname}-${version}.zip";
-    sha256 = "sha256-2khadADfzwkW+J0uafPWJ6xUQRSQDm8seiBHueQGmKI=";
+    sha256 = "sha256-v9p+G1aSzrvuoJLfRqWQXGVJ+2vysxdTgrD+ZUt6Yg4=";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jre ];
diff --git a/nixpkgs/pkgs/tools/text/mark/default.nix b/nixpkgs/pkgs/tools/text/mark/default.nix
index b7a4537addaf..a0abd672559e 100644
--- a/nixpkgs/pkgs/tools/text/mark/default.nix
+++ b/nixpkgs/pkgs/tools/text/mark/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "mark";
-  version = "6.3";
+  version = "6.5.1";
 
   src = fetchFromGitHub {
     owner  = "kovetskiy";
     repo   = "mark";
     rev    = version;
-    sha256 = "sha256-HKP8ZYhYDJizZ91q4MRwS00YIMvgB6EJ3au5rMg02hg=";
+    sha256 = "sha256-NTe7J08Lu4uVI/mLj4m87n1BZXiUPDvi5OtjJfddJw8=";
   };
 
-  vendorSha256 = "sha256-y3Q8UebNbLy1jmxUC37mv+2l8dCU3b/Fk8XHn5u57p0=";
+  vendorSha256 = "sha256-Yp47FBS8JN/idBfZG0z0f2A1bzob8KTPtZ7u0cNCrM8=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
diff --git a/nixpkgs/pkgs/tools/text/mdbook-graphviz/default.nix b/nixpkgs/pkgs/tools/text/mdbook-graphviz/default.nix
index d8412605dcbe..d61daf262d9c 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-graphviz/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-graphviz/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-graphviz";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "dylanowen";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wIgWaCjJrrajvUZbJjpx9P4urN2/eVo3+Za2NjTKWvM=";
+    sha256 = "sha256-yY8ZdRNP0G9dwrwUtNZIaodIlEK4GRgZQ5D1GpLhDGg=";
   };
 
-  cargoSha256 = "sha256-F8JuEk0ztB7jfcPNjU9vGsr3HLEJ2DmWGWxvdbLuyvQ=";
+  cargoSha256 = "sha256-d8/xa2Aq6g0Kvqq11kzVTp1oooN6dPowpKW0uenBevw=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/nixpkgs/pkgs/tools/text/mdbook-plantuml/default.nix b/nixpkgs/pkgs/tools/text/mdbook-plantuml/default.nix
new file mode 100644
index 000000000000..0b26bee09538
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/mdbook-plantuml/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub, stdenv, rustPlatform, darwin, pkg-config, openssl
+, libiconv, CoreServices }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "mdbook-plantuml";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "sytsereitsma";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1m53sp3k387injn6mwk2c6rkzw16b12m4j7q0p69fdb3fiqbkign";
+  };
+
+  cargoSha256 = "0xi14k86ym3rfz6901lmj444y814m7vp90bwsyjmcph3hdv6mjp0";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [ CoreServices ];
+
+  meta = with lib; {
+    description = "mdBook preprocessor to render PlantUML diagrams to png images in the book output directory";
+    homepage = "https://github.com/sytsereitsma/mdbook-plantuml";
+    license = [ licenses.mit ];
+    maintainers = with maintainers; [ jcouyang ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/mdcat/default.nix b/nixpkgs/pkgs/tools/text/mdcat/default.nix
index 67f69ecc71d2..6cdd90f2be3d 100644
--- a/nixpkgs/pkgs/tools/text/mdcat/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdcat/default.nix
@@ -12,20 +12,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdcat";
-  version = "0.23.2";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "lunaryorn";
     repo = pname;
     rev = "mdcat-${version}";
-    sha256 = "sha256-PM6bx7qzEx4He9aX4WRO7ad/f9+wzT+gPGXKwYwG8+A=";
+    sha256 = "sha256-wrtvVFOSqpNBWLRGPL+08WBS4ltQyZwRE3/dqqT6IXg=";
   };
 
   nativeBuildInputs = [ pkg-config asciidoctor installShellFiles ];
   buildInputs = [ openssl ]
     ++ lib.optional stdenv.isDarwin Security;
 
-  cargoSha256 = "sha256-GL9WGoyM1++QFAR+bzj0XkjaRaDCWcbcahles5amNpk=";
+  cargoSha256 = "sha256-9I6/lt5VXfZp2/W6EoXtagcNj2kfxB5ZT2GkWgsUyM8=";
 
   checkInputs = [ ansi2html ];
   # Skip tests that use the network and that include files.
diff --git a/nixpkgs/pkgs/tools/text/mecab/default.nix b/nixpkgs/pkgs/tools/text/mecab/default.nix
index c579dcb8a175..04293d29efb2 100644
--- a/nixpkgs/pkgs/tools/text/mecab/default.nix
+++ b/nixpkgs/pkgs/tools/text/mecab/default.nix
@@ -4,7 +4,8 @@ let
   mecab-base = import ./base.nix { inherit fetchurl; };
 in
 stdenv.mkDerivation (mecab-base // {
-    name = "mecab-${mecab-base.version}";
+    pname = "mecab";
+    version = mecab-base.version;
 
     postInstall = ''
       sed -i 's|^dicdir = .*$|dicdir = ${mecab-ipadic}|' "$out/etc/mecabrc"
diff --git a/nixpkgs/pkgs/tools/text/mecab/nodic.nix b/nixpkgs/pkgs/tools/text/mecab/nodic.nix
index 1cbc31be4ee1..be9003623e05 100644
--- a/nixpkgs/pkgs/tools/text/mecab/nodic.nix
+++ b/nixpkgs/pkgs/tools/text/mecab/nodic.nix
@@ -4,5 +4,6 @@ let
   mecab-base = import ./base.nix { inherit fetchurl; };
 in
 stdenv.mkDerivation (mecab-base // {
-    name = "mecab-nodic-${mecab-base.version}";
+    pname = "mecab-nodic";
+    version = mecab-base.version;
 })
diff --git a/nixpkgs/pkgs/tools/text/miller/default.nix b/nixpkgs/pkgs/tools/text/miller/default.nix
index 670c0612b391..f64f195db951 100644
--- a/nixpkgs/pkgs/tools/text/miller/default.nix
+++ b/nixpkgs/pkgs/tools/text/miller/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "miller";
 
-  version = "5.10.2";
+  version = "5.10.3";
 
   src = fetchFromGitHub {
     owner = "johnkerl";
     repo = "miller";
     rev = "v${version}";
-    sha256 = "sha256-NI57U3FpUfQ6ouBEYrzzG+9kpL58BD4HoAuRAFJMO9k=";
+    sha256 = "sha256-Mag7bIfZNdp+sM54yKp8HdH3kWjwWRfyPBGthej2jd8=";
   };
 
   nativeBuildInputs = [ autoreconfHook flex libtool ];
diff --git a/nixpkgs/pkgs/tools/text/morsel/default.nix b/nixpkgs/pkgs/tools/text/morsel/default.nix
new file mode 100644
index 000000000000..3968eb2cc4a2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/morsel/default.nix
@@ -0,0 +1,22 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "morsel";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "SamLee514";
+    repo = "morsel";
+    rev = "v${version}";
+    sha256 = "sha256-m4bCni/9rMTPhZSogpd5+ARrW11TPHSvQpdz3wUr9H4=";
+  };
+
+  cargoSha256 = "sha256-2xR2/013ocDKWS1oWitpAbSDPRwEJJqFcCIm6ZQpCoc=";
+
+  meta = with lib; {
+    description = "Command line tool to translate morse code input to text in real time";
+    homepage = "https://github.com/SamLee514/morsel";
+    license = licenses.mit;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/opencc/default.nix b/nixpkgs/pkgs/tools/text/opencc/default.nix
index f99062de4131..cbb055323a68 100644
--- a/nixpkgs/pkgs/tools/text/opencc/default.nix
+++ b/nixpkgs/pkgs/tools/text/opencc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opencc";
-  version = "1.1.2";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = "BYVoid";
     repo = "OpenCC";
     rev = "ver.${version}";
-    sha256 = "1a15p9idznh23b44r7rw2zjnirbxjs5pyq3k6xkz0k64cdh2zq6h";
+    sha256 = "sha256-q/y4tRov/BYCAiE4i7fT6ysTerxxOHMZUWT2Jlo/0rI=";
   };
 
   nativeBuildInputs = [ cmake python ];
diff --git a/nixpkgs/pkgs/tools/text/papertrail/default.nix b/nixpkgs/pkgs/tools/text/papertrail/default.nix
index c3d005a97e08..afc9d2d89e7a 100644
--- a/nixpkgs/pkgs/tools/text/papertrail/default.nix
+++ b/nixpkgs/pkgs/tools/text/papertrail/default.nix
@@ -9,7 +9,8 @@ let
     gemset = ./gemset.nix;
   };
 in stdenv.mkDerivation {
-  name = "papertrail-${(import ./gemset.nix).papertrail.version}";
+  pname = "papertrail";
+  version = (import ./gemset.nix).papertrail.version;
 
   dontUnpack = true;
 
diff --git a/nixpkgs/pkgs/tools/text/patchutils/0.4.2.nix b/nixpkgs/pkgs/tools/text/patchutils/0.4.2.nix
new file mode 100644
index 000000000000..1b2c0d6b1f3e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/patchutils/0.4.2.nix
@@ -0,0 +1,8 @@
+{ callPackage, python3, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  version = "0.4.2";
+  sha256 = "sha256-iHWwll/jPeYriQ9s15O+f6/kGk5VLtv2QfH+1eu/Re0=";
+  # for gitdiff
+  extraBuildInputs = [ python3 ];
+})
diff --git a/nixpkgs/pkgs/tools/text/patchutils/generic.nix b/nixpkgs/pkgs/tools/text/patchutils/generic.nix
index d3e9da242e2e..923dd06d1826 100644
--- a/nixpkgs/pkgs/tools/text/patchutils/generic.nix
+++ b/nixpkgs/pkgs/tools/text/patchutils/generic.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchurl, perl
-, version, sha256, patches ? []
+{ lib, stdenv, fetchurl, perl, makeWrapper
+, version, sha256, patches ? [], extraBuildInputs ? []
 , ...
 }:
 stdenv.mkDerivation rec {
@@ -11,18 +11,32 @@ stdenv.mkDerivation rec {
     inherit sha256;
   };
 
-  buildInputs = [ perl ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl ] ++ extraBuildInputs;
   hardeningDisable = [ "format" ];
 
-  doCheck = false; # fails
+  postInstall = ''
+    for bin in $out/bin/{splitdiff,rediff,editdiff,dehtmldiff}; do
+      wrapProgram "$bin" \
+        --prefix PATH : "$out/bin"
+    done
+  '';
+
+  doCheck = lib.versionAtLeast version "0.3.4";
+
+  preCheck = ''
+    patchShebangs tests
+    chmod +x scripts/*
+  '' + lib.optionalString (lib.versionOlder version "0.4.2") ''
+    find tests -type f -name 'run-test' \
+      -exec sed -i '{}' -e 's|/bin/echo|echo|g' \;
+  '';
 
   meta = with lib; {
     description = "Tools to manipulate patch files";
     homepage = "http://cyberelk.net/tim/software/patchutils";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
-    executables = [ "combinediff" "dehtmldiff" "editdiff" "espdiff"
-      "filterdiff" "fixcvsdiff" "flipdiff" "grepdiff" "interdiff" "lsdiff"
-      "recountdiff" "rediff" "splitdiff" "unwrapdiff" ];
+    maintainers = with maintainers; [ artturin ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/pn/default.nix b/nixpkgs/pkgs/tools/text/pn/default.nix
index 81e4c1eb358a..d77b36651d62 100644
--- a/nixpkgs/pkgs/tools/text/pn/default.nix
+++ b/nixpkgs/pkgs/tools/text/pn/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pn";
-  version = "unstable-2021-01-28";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "Orange-OpenSource";
     repo = pname;
-    rev = "41e1215397129ed0d42b5f137fb35b5e0648edda";
-    sha256 = "1g8r7y230k01ghraa55g1bhz3fiz6bjdgcsddy2dfa5ih8c4s3jm";
+    rev = "v${version}";
+    sha256 = "sha256-vRF9MPcw/hCreHVLD6QB7g1r0wQiZv1xrfzIHj1Yf9M=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/text/poedit/default.nix b/nixpkgs/pkgs/tools/text/poedit/default.nix
index c53f521fddc4..fcb2a7019aca 100644
--- a/nixpkgs/pkgs/tools/text/poedit/default.nix
+++ b/nixpkgs/pkgs/tools/text/poedit/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "poedit";
-  version = "3.0";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "vslavik";
     repo = "poedit";
     rev = "v${version}-oss";
-    sha256 = "0bxhyxsa641ip6wab9ms9g4w6mb1bv46y5h5b436spl5c70rcn4z";
+    sha256 = "sha256-PBAOCAO3OrBE7lOho7nJNEpqwds7XiblN/f+GonrXHA=";
   };
 
   nativeBuildInputs = [ autoconf automake asciidoc wrapGAppsHook
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
     "--without-cpprest"
     "--with-boost-libdir=${boost.out}/lib"
     "CPPFLAGS=-I${nlohmann_json}/include/nlohmann/"
+    "LDFLAGS=-llucene++"
   ];
 
   preFixup = ''
diff --git a/nixpkgs/pkgs/tools/text/popfile/default.nix b/nixpkgs/pkgs/tools/text/popfile/default.nix
index 7cfb2d2d6a4b..7dec478a6342 100644
--- a/nixpkgs/pkgs/tools/text/popfile/default.nix
+++ b/nixpkgs/pkgs/tools/text/popfile/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "An email classification system that automatically sorts messages and fights spam";
-    homepage = "http://getpopfile.org";
+    homepage = "https://getpopfile.org/";
     license = lib.licenses.gpl2;
 
     # Should work on macOS, but havent tested it.
diff --git a/nixpkgs/pkgs/tools/text/proselint/default.nix b/nixpkgs/pkgs/tools/text/proselint/default.nix
index d00b71977a22..3f1b79c3e015 100644
--- a/nixpkgs/pkgs/tools/text/proselint/default.nix
+++ b/nixpkgs/pkgs/tools/text/proselint/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "proselint";
-  version = "0.12.0";
+  version = "0.13.0";
 
   doCheck = false; # fails to pass because it tries to run in home directory
 
   src = fetchurl {
     url = "mirror://pypi/p/proselint/${pname}-${version}.tar.gz";
-    sha256 = "2a98d9c14382d94ed9122a6c0b0657a814cd5c892c77d9477309fc99f86592e6";
+    sha256 = "7dd2b63cc2aa390877c4144fcd3c80706817e860b017f04882fbcd2ab0852a58";
   };
 
   propagatedBuildInputs = [ click future six ];
diff --git a/nixpkgs/pkgs/tools/text/qshowdiff/default.nix b/nixpkgs/pkgs/tools/text/qshowdiff/default.nix
index 251427f03c5b..8396e39e6d1c 100644
--- a/nixpkgs/pkgs/tools/text/qshowdiff/default.nix
+++ b/nixpkgs/pkgs/tools/text/qshowdiff/default.nix
@@ -1,12 +1,14 @@
-{lib, stdenv, fetchurl, qt4, perl, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, qt4, perl, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "qshowdiff";
   version = "1.2";
 
-  src = fetchurl {
-    url = "https://github.com/danfis/qshowdiff/archive/v${version}.tar.gz";
-    sha256 = "027959xbzvi5c2w9y1x122sr5i26k9mvp43banz2wln6gd860n1a";
+  src = fetchFromGitHub {
+    owner = "danfis";
+    repo = "qshowdiff";
+    rev = "v${version}";
+    sha256 = "g3AWQ6/LSF59ztzdgNuLi+8d6fFTPiC9z0yXMdPdB5U=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/tools/text/replace/default.nix b/nixpkgs/pkgs/tools/text/replace/default.nix
index a0873d1c8d2b..058c2ba3daa5 100644
--- a/nixpkgs/pkgs/tools/text/replace/default.nix
+++ b/nixpkgs/pkgs/tools/text/replace/default.nix
@@ -11,7 +11,11 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "man" ];
 
-  makeFlags = [ "TREE=\$(out)" "MANTREE=\$(TREE)/share/man" ];
+  makeFlags = [
+    "TREE=\$(out)"
+    "MANTREE=\$(TREE)/share/man"
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
 
   preBuild = ''
     sed -e "s@/bin/mv@$(type -P mv)@" -i replace.h
diff --git a/nixpkgs/pkgs/tools/text/ripgrep/default.nix b/nixpkgs/pkgs/tools/text/ripgrep/default.nix
index 3fa202135f51..022f8bd25bb7 100644
--- a/nixpkgs/pkgs/tools/text/ripgrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/ripgrep/default.nix
@@ -22,13 +22,13 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "1kfdgh8dra4jxgcdb0lln5wwrimz0dpp33bq3h7jgs8ngaq2a9wp";
 
-  cargoBuildFlags = lib.optional withPCRE2 "--features pcre2";
-
   nativeBuildInputs = [ asciidoctor installShellFiles ]
     ++ lib.optional withPCRE2 pkg-config;
   buildInputs = lib.optional withPCRE2 pcre2
     ++ lib.optional stdenv.isDarwin Security;
 
+  buildFeatures = lib.optional withPCRE2 "pcre2";
+
   preFixup = ''
     installManPage $releaseDir/build/ripgrep-*/out/rg.1
 
diff --git a/nixpkgs/pkgs/tools/text/rust-petname/default.nix b/nixpkgs/pkgs/tools/text/rust-petname/default.nix
index 4a3c0f596cfb..f20a9e519de9 100644
--- a/nixpkgs/pkgs/tools/text/rust-petname/default.nix
+++ b/nixpkgs/pkgs/tools/text/rust-petname/default.nix
@@ -2,15 +2,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-petname";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchCrate {
     inherit version;
     crateName = "petname";
-    sha256 = "sha256-X1p9W+N0Nhh7CSh776ofzHmG0ayi5COLJjBncxmL8CM=";
+    sha256 = "sha256-DfRWGwnWVJBcbW7aPEzgPd+gfldP+ypZlk8FcPZzp8g=";
   };
 
-  cargoSha256 = "sha256-jxN2EKLjf9yKkhZ4wsH72sNdk6UYAcCUrg4+qx75bWs=";
+  cargoSha256 = "sha256-tCVJX8NcbT+6t2kDeCMfcSDaq3O89ycj08bxTmp3JHs=";
 
   meta = with lib; {
     description = "Generate human readable random names";
diff --git a/nixpkgs/pkgs/tools/text/sgml/jade/default.nix b/nixpkgs/pkgs/tools/text/sgml/jade/default.nix
index 338520b4df2b..8aeaaaa42494 100644
--- a/nixpkgs/pkgs/tools/text/sgml/jade/default.nix
+++ b/nixpkgs/pkgs/tools/text/sgml/jade/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, gnum4 }:
 
 stdenv.mkDerivation rec {
-  name = "jade-${version}-${debpatch}";
+  pname = "jade";
   version = "1.2.1";
   debpatch = "47.3";
 
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   patchsrc =  fetchurl {
-    url = "http://ftp.debian.org/debian/pool/main/j/jade/jade_${version}-${debpatch}.diff.gz";
+    url = "mirror://debian/pool/main/j/jade/jade_${version}-${debpatch}.diff.gz";
     sha256 = "8e94486898e3503308805f856a65ba5b499a6f21994151270aa743de48305464";
   };
 
@@ -21,6 +21,11 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-Wno-deprecated";
 
+  # Makefile is missing intra-library depends, fails build as:
+  # ld: cannot find -lsp
+  # ld: cannot find -lspgrove
+  enableParallelBuilding = false;
+
   preInstall = ''
     install -d -m755 "$out"/lib
   '';
diff --git a/nixpkgs/pkgs/tools/text/sgml/opensp/default.nix b/nixpkgs/pkgs/tools/text/sgml/opensp/default.nix
index 6924c8953eef..d55afbc5dd9b 100644
--- a/nixpkgs/pkgs/tools/text/sgml/opensp/default.nix
+++ b/nixpkgs/pkgs/tools/text/sgml/opensp/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchurl, fetchpatch, xmlto, docbook_xml_dtd_412
-, libxslt, docbook_xsl, autoconf, automake, gettext, libiconv, libtool}:
+, libxslt, docbook_xsl, autoconf, automake, gettext, libiconv, libtool
+}:
 
 stdenv.mkDerivation rec {
   pname = "opensp";
@@ -30,19 +31,25 @@ stdenv.mkDerivation rec {
     sed -i -e 's/name="idm.*"//g' $out/share/doc/OpenSP/releasenotes.html
     '';
 
-  preConfigure = if stdenv.isCygwin then "autoreconf -fi" else null;
+  preConfigure = lib.optionalString stdenv.isCygwin ''
+    autoreconf -fi
+  '';
 
-  # need autoconf, automake, gettext, and libtool for reconfigure
-  nativeBuildInputs = lib.optionals stdenv.isCygwin [ autoconf automake libtool ];
+  strictDeps = true;
 
-  buildInputs = [ xmlto docbook_xml_dtd_412 libxslt docbook_xsl gettext libiconv ];
+  nativeBuildInputs = [
+    xmlto
+    docbook_xml_dtd_412
+    docbook_xsl
+  ] ++ lib.optionals stdenv.isCygwin [ autoconf automake libtool ];
 
   doCheck = false; # fails
 
-  meta = {
+  meta = with lib; {
     description = "A suite of SGML/XML processing tools";
-    license = lib.licenses.mit;
+    license = licenses.mit;
     homepage = "http://openjade.sourceforge.net/";
-    platforms = lib.platforms.unix;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/shfmt/default.nix b/nixpkgs/pkgs/tools/text/shfmt/default.nix
index faf813fb905b..5309ee01b9ac 100644
--- a/nixpkgs/pkgs/tools/text/shfmt/default.nix
+++ b/nixpkgs/pkgs/tools/text/shfmt/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "shfmt";
-  version = "3.4.0";
+  version = "3.4.2";
 
   src = fetchFromGitHub {
     owner = "mvdan";
     repo = "sh";
     rev = "v${version}";
-    sha256 = "sha256-Bxb4BlvAmJQhog3bZEGHJlrpXNqXpokkipBszPzRHSk=";
+    sha256 = "sha256-xJlOEjGhxpfH3w+RvjXKjXoWPzQ6JkpldxLuKMkVvq0=";
   };
 
   vendorSha256 = "sha256-ZYsQ+wE+G7xNrBN29npSxxPCz9+Wb/RsBzM5uwJkhO8=";
diff --git a/nixpkgs/pkgs/tools/text/smu/default.nix b/nixpkgs/pkgs/tools/text/smu/default.nix
index 854e70c7622b..02a29a91f47d 100644
--- a/nixpkgs/pkgs/tools/text/smu/default.nix
+++ b/nixpkgs/pkgs/tools/text/smu/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  name = "smu";
+  pname = "smu";
   version = "1.5";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/tools/text/snippetpixie/default.nix b/nixpkgs/pkgs/tools/text/snippetpixie/default.nix
index e66a5404f439..7102977e8eee 100644
--- a/nixpkgs/pkgs/tools/text/snippetpixie/default.nix
+++ b/nixpkgs/pkgs/tools/text/snippetpixie/default.nix
@@ -88,5 +88,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ianmjones ] ++ teams.pantheon.members;
     platforms = platforms.linux;
+    mainProgram = "com.github.bytepixie.snippetpixie";
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/source-highlight/default.nix b/nixpkgs/pkgs/tools/text/source-highlight/default.nix
index 8817b7a09fda..289740854f2e 100644
--- a/nixpkgs/pkgs/tools/text/source-highlight/default.nix
+++ b/nixpkgs/pkgs/tools/text/source-highlight/default.nix
@@ -4,6 +4,8 @@ stdenv.mkDerivation rec {
   pname = "source-highlight";
   version = "3.1.9";
 
+  outputs = [ "out" "doc" "dev" ];
+
   src = fetchurl {
     url = "mirror://gnu/src-highlite/${pname}-${version}.tar.gz";
     sha256 = "148w47k3zswbxvhg83z38ifi85f9dqcpg7icvvw1cm6bg21x4zrs";
@@ -16,6 +18,13 @@ stdenv.mkDerivation rec {
       sha256 = "1wnj0jmkmrwjww7qk9dvfxh8h06jdn7mi8v2fvwh95b6x87z5l47";
       excludes = [ "ChangeLog" ];
     })
+
+    # Upstream fix for clang-13 and gcc-12 test support
+    (fetchpatch {
+      name = "gcc-12.patch";
+      url = "http://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=ab9fe5cb9b85c5afab94f2a7f4b6d7d473c14ee9";
+      sha256 = "1v33zd2766k7cdgmajw2lffw9wd7v4f8z01f40z53f6bp608nr62";
+    })
   ];
 
   # source-highlight uses it's own binary to generate documentation.
@@ -28,17 +37,18 @@ stdenv.mkDerivation rec {
   strictDeps = true;
   buildInputs = [ boost ];
 
-  configureFlags = [ "--with-boost=${boost.out}" ];
+  configureFlags = [
+    "--with-boost=${boost.out}"
+    "--with-bash-completion=${placeholder "out"}/share/bash_completion.d"
+  ];
 
-  doCheck = !stdenv.cc.isClang;
+  doCheck = true;
 
   enableParallelBuilding = true;
   # Upstream uses the same intermediate files in multiple tests, running
   # them in parallel by make will eventually break one or more tests.
   enableParallelChecking = false;
 
-  outputs = [ "out" "doc" "dev" ];
-
   meta = with lib; {
     description = "Source code renderer with syntax highlighting";
     longDescription = ''
diff --git a/nixpkgs/pkgs/tools/text/tidy-viewer/default.nix b/nixpkgs/pkgs/tools/text/tidy-viewer/default.nix
index 4cb99ca26cea..43b38d06b928 100644
--- a/nixpkgs/pkgs/tools/text/tidy-viewer/default.nix
+++ b/nixpkgs/pkgs/tools/text/tidy-viewer/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tidy-viewer";
-  version = "0.0.22";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "alexhallam";
     repo = "tv";
     rev = version;
-    sha256 = "sha256-OuNpp9EKiU+fQSZZO7zpI36nCiZBXK6OznJGY4KMftU=";
+    sha256 = "sha256-onLu4XNe3sLfZ273Hq9IvgZEV9ir8oEXX7tQG75K2Hw=";
   };
 
-  cargoSha256 = "sha256-LRoNGDOrbCjmZJRe+EUKxkDJjC92bQRRwP48jqDp9PU=";
+  cargoSha256 = "sha256-CYiRi6ny0wzTddpjdnnMHGqcWRM9wVjF34RmETgLH5A=";
 
   # this test parses command line arguments
   # error: Found argument '--test-threads' which wasn't expected, or isn't valid in this context
diff --git a/nixpkgs/pkgs/tools/text/transifex-client/default.nix b/nixpkgs/pkgs/tools/text/transifex-client/default.nix
index f1b2928c7941..1174c2f382e3 100644
--- a/nixpkgs/pkgs/tools/text/transifex-client/default.nix
+++ b/nixpkgs/pkgs/tools/text/transifex-client/default.nix
@@ -3,7 +3,7 @@
 
 buildPythonApplication rec {
   pname = "transifex-client";
-  version = "0.14.3";
+  version = "0.14.4";
 
   propagatedBuildInputs = [
     urllib3 requests python-slugify six setuptools GitPython
@@ -11,7 +11,7 @@ buildPythonApplication rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-sKol67lRaYPFa7Bg9KNa1rDrNoT9DtUd48NY8jqK1iw=";
+    sha256 = "11dc95cefe90ebf0cef3749c8c7d85b9d389c05bd0e3389bf117685df562bd5c";
   };
 
   # https://github.com/transifex/transifex-client/issues/323
diff --git a/nixpkgs/pkgs/tools/text/ucg/default.nix b/nixpkgs/pkgs/tools/text/ucg/default.nix
index d81b5a14f091..d19379477d6c 100644
--- a/nixpkgs/pkgs/tools/text/ucg/default.nix
+++ b/nixpkgs/pkgs/tools/text/ucg/default.nix
@@ -3,14 +3,11 @@
 , pkg-config
 , autoreconfHook
 , pcre
-, nixosTests
 }:
 
-let
+stdenv.mkDerivation rec {
   pname = "ucg";
-  version = "20190225";
-in stdenv.mkDerivation {
-  inherit pname version;
+  version = "0.3.3+date=2019-02-25";
 
   src = fetchFromGitHub {
     owner = "gvansickle";
@@ -19,8 +16,29 @@ in stdenv.mkDerivation {
     sha256 = "sha256-/wU1PmI4ejlv7gZzZNasgROYXFiDiIxE9BFoCo6+G5Y=";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ pcre ];
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    pcre
+  ];
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    testFile=$(mktemp /tmp/ucg-test.XXXX)
+    echo -ne 'Lorem ipsum dolor sit amet\n2.7182818284590' > $testFile
+    $out/bin/ucg 'dolor' $testFile || { rm $testFile; exit -1; }
+    $out/bin/ucg --ignore-case 'lorem' $testFile || { rm $testFile; exit -1; }
+    $out/bin/ucg --word-regexp '2718' $testFile && { rm $testFile; exit -1; }
+    $out/bin/ucg 'pisum' $testFile && { rm $testFile; exit -1; }
+    rm $testFile
+
+    runHook postInstallCheck
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/gvansickle/ucg/";
@@ -34,7 +52,7 @@ in stdenv.mkDerivation {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = with platforms; unix;
+    broken = stdenv.isAarch64; # cpuid.h: no such file or directory
   };
-
-  passthru.tests = { inherit (nixosTests) ucg; };
 }
+# TODO: report upstream
diff --git a/nixpkgs/pkgs/tools/text/ugrep/default.nix b/nixpkgs/pkgs/tools/text/ugrep/default.nix
index 2a00ba055725..38e534932a44 100644
--- a/nixpkgs/pkgs/tools/text/ugrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/ugrep/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ugrep";
-  version = "3.3.7";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "Genivia";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-FnSOurICD4n2Z/snP0ysWZ30DnyEDZMqpjRrS1WxG+Q=";
+    sha256 = "sha256-G9MM5dIc1B8tggCQKIk+f39cv/Xb0rTLOqDYEsHwI4A=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/text/uniscribe/Gemfile b/nixpkgs/pkgs/tools/text/uniscribe/Gemfile
new file mode 100644
index 000000000000..9bc158c5435e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/uniscribe/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem "uniscribe"
diff --git a/nixpkgs/pkgs/tools/text/uniscribe/Gemfile.lock b/nixpkgs/pkgs/tools/text/uniscribe/Gemfile.lock
new file mode 100644
index 000000000000..ee6dc316669c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/uniscribe/Gemfile.lock
@@ -0,0 +1,37 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    characteristics (1.4.0)
+      unicode-categories (~> 1.7)
+    paint (2.2.1)
+    rationalist (2.0.1)
+    symbolify (1.4.0)
+      characteristics (>= 0.8, < 2.0)
+    unicode-categories (1.7.0)
+    unicode-display_width (2.1.0)
+    unicode-emoji (2.9.0)
+      unicode-version (~> 1.0)
+    unicode-name (1.10.0)
+      unicode-types (~> 1.7)
+    unicode-sequence_name (1.10.0)
+    unicode-types (1.7.0)
+    unicode-version (1.1.0)
+    uniscribe (1.7.0)
+      characteristics (~> 1.4)
+      paint (>= 0.9, < 3.0)
+      rationalist (~> 2.0, >= 2.0.1)
+      symbolify (~> 1.4)
+      unicode-display_width (~> 2.1)
+      unicode-emoji (~> 2.9)
+      unicode-name (~> 1.10)
+      unicode-sequence_name (~> 1.10)
+      unicode-version (~> 1.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  uniscribe
+
+BUNDLED WITH
+   2.1.4
diff --git a/nixpkgs/pkgs/tools/text/uniscribe/default.nix b/nixpkgs/pkgs/tools/text/uniscribe/default.nix
new file mode 100644
index 000000000000..e7b9cedd2b8c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/uniscribe/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, bundlerEnv, bundlerUpdateScript, makeWrapper }:
+
+let
+  rubyEnv = bundlerEnv {
+    name = "uniscribe";
+    gemdir = ./.;
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "uniscribe";
+  version = (import ./gemset.nix).uniscribe.version;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  dontUnpack = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    makeWrapper ${rubyEnv}/bin/uniscribe $out/bin/uniscribe
+  '';
+
+  passthru.updateScript = bundlerUpdateScript "uniscribe";
+
+  meta = with lib; {
+    description = "Explains Unicode characters/code points: Displays their name, category, and shows compositions";
+    homepage = "https://github.com/janlelis/uniscribe";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kjeremy ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/uniscribe/gemset.nix b/nixpkgs/pkgs/tools/text/uniscribe/gemset.nix
new file mode 100644
index 000000000000..d61123585c2a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/uniscribe/gemset.nix
@@ -0,0 +1,1766 @@
+{
+  characteristics = {
+    dependencies = ["unicode-categories"];
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zhgx2h89kfm1xdgfw78vyw6mgwca1nqd67hk13pfz8ffkig2ziq";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  paint = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01fhvxdaqngldqa7r0jgnskr4iv2x2i0n3z28za8j4qszpvlcb7x";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  rationalist = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zydr81pc63m7i5f5s51ryksv3g2qya5pd42s09v9ixk3fddpxgi";
+      type = "gem";
+    };
+    version = "2.0.1";
+  };
+  symbolify = {
+    dependencies = ["characteristics"];
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cjalbjgw50bwna2gyjczx42nszifslijy43bmiahn4dw76jz653";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  unicode-categories = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0prakys8s56hh56q2r4gm2iigq9wk4ywwpv9ywcyi4xr9k2pliy3";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  unicode-display_width = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0csjm9shhfik0ci9mgimb7hf3xgh7nx45rkd9rzgdz6vkwr8rzxn";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  unicode-emoji = {
+    dependencies = ["unicode-version"];
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fvm7z6s9nipbwsq4xqqz443g3x5lwkcpg7iwqxs9x43dd9r8h77";
+      type = "gem";
+    };
+    version = "2.9.0";
+  };
+  unicode-name = {
+    dependencies = ["unicode-types"];
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18ly2yy1jbdcvxgfyn2n17c2v54n9llzvr7klbfhy285lz1ylkdd";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  unicode-sequence_name = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fm57j4yplfsdq5pyxdp7pgp5adisdh8hr1dgvr5g1x076bvis16";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  unicode-types = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qrbvx01v1x931czvrng0hvlhyb1bwa3mnq008lq5w75ldrpyiis";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  unicode-version = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0isqdyqix8gh2xkpy9ab7bhwwz4nc7zrv49l0kb0hqd7n3ip9zmg";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  uniscribe = {
+    dependencies = ["characteristics" "paint" "rationalist" "symbolify" "unicode-display_width" "unicode-emoji" "unicode-name" "unicode-sequence_name" "unicode-version"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k66h24waqy51yfqkb1iish0kc3ky85h51dikzdhk6i51q2vrx7i";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/vale/default.nix b/nixpkgs/pkgs/tools/text/vale/default.nix
index fc350162845a..7b4cde33f5d1 100644
--- a/nixpkgs/pkgs/tools/text/vale/default.nix
+++ b/nixpkgs/pkgs/tools/text/vale/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "vale";
-  version = "2.11.2";
+  version = "2.13.0";
 
   subPackages = [ "cmd/vale" ];
   outputs = [ "out" "data" ];
@@ -11,10 +11,10 @@ buildGoModule rec {
     owner = "errata-ai";
     repo = "vale";
     rev = "v${version}";
-    sha256 = "1g8k9723d1xmx918f60lpla52ly90rz6z0ffzwsb2rh62r3h80h5";
+    sha256 = "sha256-I1hrmlNZUDhjWTsOzmp8xIc8rv2gTGRx2/yiAmCy9IY=";
   };
 
-  vendorSha256 = "0czxigagjbqdzzgmh1iw3q0d4sj6635384lnn1w5smws8nsqr9ia";
+  vendorSha256 = "sha256-tZarz6xwZo9IFfKB9qGxqezYaFrPyQp3wcug5jGaElY=";
 
   postInstall = ''
     mkdir -p $data/share/vale
diff --git a/nixpkgs/pkgs/tools/text/vgrep/default.nix b/nixpkgs/pkgs/tools/text/vgrep/default.nix
index 1eea8b7f67b3..928f401c3839 100644
--- a/nixpkgs/pkgs/tools/text/vgrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/vgrep/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "vgrep";
-  version = "2.5.1";
+  version = "2.5.5";
 
   src = fetchFromGitHub {
     owner = "vrothberg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "06rnmg6ljj4f1g602wdp2wy9v0m1m0sj6jl6wywyjl8grjqc3vac";
+    sha256 = "sha256-pWRc1EjL09zFT/8HLrosuCJ5qTDj2VaizoI/Eu8jsgM=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/text/xml/basex/default.nix b/nixpkgs/pkgs/tools/text/xml/basex/default.nix
index 0e2c8b824f5e..92fde60c23c0 100644
--- a/nixpkgs/pkgs/tools/text/xml/basex/default.nix
+++ b/nixpkgs/pkgs/tools/text/xml/basex/default.nix
@@ -1,18 +1,18 @@
-{ lib, stdenv, fetchurl, unzip, jre, coreutils, makeDesktopItem }:
+{ lib, stdenv, fetchurl, unzip, jre, coreutils, makeDesktopItem, copyDesktopItems }:
 
 stdenv.mkDerivation rec {
   pname = "basex";
-  version = "9.4.3";
+  version = "9.6.3";
 
   src = fetchurl {
     url = "http://files.basex.org/releases/${version}/BaseX${builtins.replaceStrings ["."] [""] version}.zip";
-    hash = "sha256-IZhRg2JcYQXQKU/lYZpLLcsSdjZZO+toY5yvk+RKUCY=";
+    hash = "sha256-OlIAyGUQKrl+Zu79p6cahHpx59zLozGkUDAEvykGN6Y=";
   };
 
-  nativeBuildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip copyDesktopItems ];
   buildInputs = [ jre ];
 
-  desktopItem = makeDesktopItem {
+  desktopItems = lib.optional (!stdenv.isDarwin) (makeDesktopItem {
     name = "basex";
     exec = "basexgui %f";
     icon = "${./basex.svg}"; # icon copied from Ubuntu basex package
@@ -21,22 +21,21 @@ stdenv.mkDerivation rec {
     genericName = "XML database tool";
     categories = "Development;Utility;Database";
     mimeType = "text/xml";
-  };
+  });
 
   dontBuild = true;
 
   installPhase = ''
+    runHook preInstall
+
     # Remove Windows batch files (unclutter $out/bin)
     rm ./bin/*.bat
 
-    mkdir -p "$out/share/basex" "$out/share/applications"
+    mkdir -p "$out/share/basex"
 
     cp -R bin etc lib webapp src BaseX.jar "$out"
     cp -R readme.txt webapp "$out/share/basex"
 
-    # Install desktop file
-    cp "$desktopItem"/share/applications/* "$out/share/applications/"
-
     # Use substitutions instead of wrapper scripts
     for file in "$out"/bin/*; do
         sed -i -e "s|/usr/bin/env bash|${stdenv.shell}|" \
@@ -47,6 +46,8 @@ stdenv.mkDerivation rec {
                -e "s|echo|${coreutils}/bin/echo|" \
             "$file"
     done
+
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -60,7 +61,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://basex.org/";
     license = licenses.bsd3;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/xml/jing-trang/default.nix b/nixpkgs/pkgs/tools/text/xml/jing-trang/default.nix
index 542a4709efeb..02f745575adb 100644
--- a/nixpkgs/pkgs/tools/text/xml/jing-trang/default.nix
+++ b/nixpkgs/pkgs/tools/text/xml/jing-trang/default.nix
@@ -1,20 +1,25 @@
 { lib, stdenv, fetchFromGitHub, jre_headless, jdk, ant, saxon }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "jing-trang";
-  version = "20151127";
+  version = "20181222";
 
   src = fetchFromGitHub {
     owner = "relaxng";
     repo = "jing-trang";
-    rev = "47a0cbdaec2d48824b78a1c19879ac7875509598"; # needed to compile with jdk8
-    sha256 = "1hhn52z9mv1x9nyvyqnmzg5yrs2lzm9xac7i15izppv02wp32qha";
+    rev = "V${version}";
+    sha256 = "sha256-Krupa3MGk5UaaQsaNpPMZuIUzHJytDiksz9ysCPkFS4=";
+    fetchSubmodules = true;
   };
 
   buildInputs = [ jdk ant saxon ];
 
   CLASSPATH = "lib/saxon.jar";
 
+  patches = [
+    ./no-git-during-build.patch
+  ];
+
   preBuild = "ant";
 
   installPhase = ''
@@ -32,6 +37,9 @@ stdenv.mkDerivation {
     chmod +x "$out"/bin/*
   '';
 
+  doCheck = true;
+  checkPhase = "ant test";
+
   meta = with lib; {
     description = "A RELAX NG validator in Java";
     # The homepage is www.thaiopensource.com, but it links to googlecode.com
diff --git a/nixpkgs/pkgs/tools/text/xml/jing-trang/no-git-during-build.patch b/nixpkgs/pkgs/tools/text/xml/jing-trang/no-git-during-build.patch
new file mode 100644
index 000000000000..3fc9b3f6ef53
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/xml/jing-trang/no-git-during-build.patch
@@ -0,0 +1,47 @@
+From db0ed6267f1a85f0785c81b8ee396f74795c77c0 Mon Sep 17 00:00:00 2001
+From: Thomas Gerbet <thomas@gerbet.me>
+Date: Sat, 27 Nov 2021 10:24:07 +0100
+Subject: [PATCH] Do not rely on Git during the build
+
+---
+ build.xml | 6 ------
+ build.xsl | 6 ------
+ 2 files changed, 12 deletions(-)
+
+diff --git a/build.xml b/build.xml
+index e8ebaed8..2d26c72f 100644
+--- a/build.xml
++++ b/build.xml
+@@ -431,12 +431,6 @@
+ <target name="clean" 
+ 	description="Remove almost all files created during the build process">
+   <delete dir="${build.dir}"/>
+-  <exec executable="git">
+-    <arg value="clean"/>
+-    <arg value="-d"/>
+-    <arg value="--force"/>
+-    <arg value="${doc.dir}"/>
+-  </exec>
+ </target>
+ 
+ <target name="realclean" depends="clean"
+diff --git a/build.xsl b/build.xsl
+index fb9f3fef..fa384a27 100644
+--- a/build.xsl
++++ b/build.xsl
+@@ -23,12 +23,6 @@
+     <target name="dummy"/>
+     <target name="init">
+       <mkdir dir="{$build}"/>
+-      <exec executable="git">
+-        <arg value="submodule"/>
+-        <arg value="update"/>
+-        <arg value="--init"/>
+-        <arg value="--recursive"/>
+-      </exec>
+       <copy todir="{$doc}">
+         <fileset dir="relaxng.org/jclark" includes="**"/>
+       </copy>
+-- 
+2.34.1
+
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile
new file mode 100644
index 000000000000..feb1437d6d40
--- /dev/null
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile
@@ -0,0 +1,11 @@
+source 'https://rubygems.org'
+gem 'asciidoctor'
+gem 'asciidoctor-diagram'
+gem 'asciidoctor-pdf'
+gem 'asciidoctor-epub3'
+gem 'asciidoctor-mathematical'
+gem 'asciidoctor-bibtex'
+gem 'asciidoctor-revealjs'
+gem 'coderay'
+gem 'pygments.rb'
+gem 'rouge'
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock
new file mode 100644
index 000000000000..14829ed7b0a6
--- /dev/null
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock
@@ -0,0 +1,131 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    Ascii85 (1.1.0)
+    addressable (2.8.0)
+      public_suffix (>= 2.0.2, < 5.0)
+    afm (0.2.2)
+    asciidoctor (2.0.16)
+    asciidoctor-bibtex (0.8.0)
+      asciidoctor (~> 2.0)
+      bibtex-ruby (~> 5.1)
+      citeproc-ruby (~> 1)
+      csl-styles (~> 1)
+      latex-decode (~> 0.2)
+    asciidoctor-diagram (2.2.1)
+      asciidoctor (>= 1.5.7, < 3.x)
+      asciidoctor-diagram-ditaamini (~> 1.0)
+      asciidoctor-diagram-plantuml (~> 1.2021)
+      rexml
+    asciidoctor-diagram-ditaamini (1.0.1)
+    asciidoctor-diagram-plantuml (1.2021.8)
+    asciidoctor-epub3 (1.5.1)
+      asciidoctor (>= 1.5.6, < 3.0.0)
+      gepub (~> 1.0.0)
+      mime-types (~> 3.0)
+    asciidoctor-mathematical (0.3.5)
+      asciidoctor (~> 2.0)
+      asciimath (~> 2.0)
+      mathematical (~> 1.6.0)
+    asciidoctor-pdf (1.6.1)
+      asciidoctor (~> 2.0)
+      concurrent-ruby (~> 1.1)
+      prawn (~> 2.4.0)
+      prawn-icon (~> 3.0.0)
+      prawn-svg (~> 0.32.0)
+      prawn-table (~> 0.2.0)
+      prawn-templates (~> 0.1.0)
+      safe_yaml (~> 1.0.0)
+      treetop (~> 1.6.0)
+    asciidoctor-revealjs (4.1.0)
+      asciidoctor (>= 2.0.0, < 3.0.0)
+      concurrent-ruby (~> 1.0)
+      thread_safe (~> 0.3.5)
+    asciimath (2.0.3)
+    bibtex-ruby (5.1.6)
+      latex-decode (~> 0.0)
+    citeproc (1.0.10)
+      namae (~> 1.0)
+    citeproc-ruby (1.1.14)
+      citeproc (~> 1.0, >= 1.0.9)
+      csl (~> 1.6)
+    coderay (1.1.3)
+    concurrent-ruby (1.1.9)
+    csl (1.6.0)
+      namae (~> 1.0)
+      rexml
+    csl-styles (1.0.1.11)
+      csl (~> 1.0)
+    css_parser (1.10.0)
+      addressable
+    gepub (1.0.15)
+      nokogiri (>= 1.8.2, < 2.0)
+      rubyzip (> 1.1.1, < 2.4)
+    hashery (2.1.2)
+    i18n (1.8.11)
+      concurrent-ruby (~> 1.0)
+    latex-decode (0.3.2)
+    mathematical (1.6.14)
+      ruby-enum (~> 0.4)
+    mime-types (3.4.1)
+      mime-types-data (~> 3.2015)
+    mime-types-data (3.2021.1115)
+    mini_portile2 (2.6.1)
+    namae (1.1.1)
+    nokogiri (1.12.5)
+      mini_portile2 (~> 2.6.1)
+      racc (~> 1.4)
+    pdf-core (0.9.0)
+    pdf-reader (2.6.0)
+      Ascii85 (~> 1.0)
+      afm (~> 0.2.1)
+      hashery (~> 2.0)
+      ruby-rc4
+      ttfunk
+    polyglot (0.3.5)
+    prawn (2.4.0)
+      pdf-core (~> 0.9.0)
+      ttfunk (~> 1.7)
+    prawn-icon (3.0.0)
+      prawn (>= 1.1.0, < 3.0.0)
+    prawn-svg (0.32.0)
+      css_parser (~> 1.6)
+      prawn (>= 0.11.1, < 3)
+      rexml (~> 3.2)
+    prawn-table (0.2.2)
+      prawn (>= 1.3.0, < 3.0.0)
+    prawn-templates (0.1.2)
+      pdf-reader (~> 2.0)
+      prawn (~> 2.2)
+    public_suffix (4.0.6)
+    pygments.rb (2.2.0)
+    racc (1.6.0)
+    rexml (3.2.5)
+    rouge (3.26.1)
+    ruby-enum (0.9.0)
+      i18n
+    ruby-rc4 (0.1.5)
+    rubyzip (2.3.2)
+    safe_yaml (1.0.5)
+    thread_safe (0.3.6)
+    treetop (1.6.11)
+      polyglot (~> 0.3)
+    ttfunk (1.7.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  asciidoctor
+  asciidoctor-bibtex
+  asciidoctor-diagram
+  asciidoctor-epub3
+  asciidoctor-mathematical
+  asciidoctor-pdf
+  asciidoctor-revealjs
+  coderay
+  pygments.rb
+  rouge
+
+BUNDLED WITH
+   2.2.24
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix
new file mode 100644
index 000000000000..6bb0eac62f12
--- /dev/null
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, bundlerApp
+, bundlerUpdateScript
+, makeWrapper
+}:
+
+bundlerApp {
+  pname = "asciidoctor";
+  gemdir = ./.;
+
+  exes = [
+    "asciidoctor"
+    "asciidoctor-pdf"
+    "asciidoctor-epub3"
+    "asciidoctor-revealjs"
+  ];
+
+  passthru = {
+    updateScript = bundlerUpdateScript "asciidoctor-with-extensions";
+  };
+
+  meta = with lib; {
+    description = "A faster Asciidoc processor written in Ruby, with many extensions enabled";
+    homepage = "https://asciidoctor.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix
new file mode 100644
index 000000000000..6bd49e099623
--- /dev/null
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix
@@ -0,0 +1,538 @@
+{
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp";
+      type = "gem";
+    };
+    version = "2.8.0";
+  };
+  afm = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06kj9hgd0z8pj27bxp2diwqh6fv7qhwwm17z64rhdc4sfn76jgn8";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  Ascii85 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ds4v9xgsyvijnlflak4dzf1qwmda9yd5bv8jwsb56nngd399rlw";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  asciidoctor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10h4pmmkbcrpy7bn76wxzkb0hriabh1k3ii1g8lm0mdji5drlhq2";
+      type = "gem";
+    };
+    version = "2.0.16";
+  };
+  asciidoctor-bibtex = {
+    dependencies = ["asciidoctor" "bibtex-ruby" "citeproc-ruby" "csl-styles" "latex-decode"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fx80bpykixvnlscyz2c4dnjr1063r5ar7j1zn2977vsr8fi8ial";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  asciidoctor-diagram = {
+    dependencies = ["asciidoctor" "asciidoctor-diagram-ditaamini" "asciidoctor-diagram-plantuml" "rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z1ilpczjaydhcwpz3yygn03yrx2ljjj55xczwkrlb8rzgh03br3";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  asciidoctor-diagram-ditaamini = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nva5n6nyns0xp77d1dxng1rjhc8ma6gyd8hczjq3h9qqxcw2q4h";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  asciidoctor-diagram-plantuml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n018kmqzapf5y1bacb5yyvb9jfwxdkfqnviwxivwz9322b9w6j7";
+      type = "gem";
+    };
+    version = "1.2021.8";
+  };
+  asciidoctor-epub3 = {
+    dependencies = ["asciidoctor" "gepub" "mime-types"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05lylv2k18vcnf3647n47zdqxpa70bg16znzn252ymp8say25zzg";
+      type = "gem";
+    };
+    version = "1.5.1";
+  };
+  asciidoctor-mathematical = {
+    dependencies = ["asciidoctor" "asciimath" "mathematical"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lxfq7qn3ql642pva6jh3h1abm9j9daxg5icfn1h73k6cjsmcisp";
+      type = "gem";
+    };
+    version = "0.3.5";
+  };
+  asciidoctor-pdf = {
+    dependencies = ["asciidoctor" "concurrent-ruby" "prawn" "prawn-icon" "prawn-svg" "prawn-table" "prawn-templates" "safe_yaml" "treetop"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17d3fa6ix6r5ikydqz41r620mm98s076wdg4w6ydsr655r7mvnpk";
+      type = "gem";
+    };
+    version = "1.6.1";
+  };
+  asciidoctor-revealjs = {
+    dependencies = ["asciidoctor" "concurrent-ruby" "thread_safe"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03vmbcc3x059h17ry4qwk1p0yar9wgh87l2qssi307gy45cjw2mq";
+      type = "gem";
+    };
+    version = "4.1.0";
+  };
+  asciimath = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h4fz93pf96y5syxwpv0vibjf7lidv2718ikpvyd2vy8c1am8zyn";
+      type = "gem";
+    };
+    version = "2.0.3";
+  };
+  bibtex-ruby = {
+    dependencies = ["latex-decode"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0adh2x935r69nm8qmns5fjsjw034xlyaqddzza2jr2npvf41g34r";
+      type = "gem";
+    };
+    version = "5.1.6";
+  };
+  citeproc = {
+    dependencies = ["namae"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13vl5sjmksk5a8kjcqnjxh7kn9gn1n4f9p1rvqfgsfhs54p0m6l2";
+      type = "gem";
+    };
+    version = "1.0.10";
+  };
+  citeproc-ruby = {
+    dependencies = ["citeproc" "csl"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a8ahyhhmdinl4kcyv51r74ipnclmfyz4zjv366dns8v49n5vkk3";
+      type = "gem";
+    };
+    version = "1.1.14";
+  };
+  coderay = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  concurrent-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
+      type = "gem";
+    };
+    version = "1.1.9";
+  };
+  csl = {
+    dependencies = ["namae" "rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n8iqmzvvqy2b1wfr4c7yj28x4z3zgm36628y8ybl49dgnmjycrk";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  csl-styles = {
+    dependencies = ["csl"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l29qlk7i74088fpba5iqhhgiqkj7glcmc42nbmvgqysx577nag8";
+      type = "gem";
+    };
+    version = "1.0.1.11";
+  };
+  css_parser = {
+    dependencies = ["addressable"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q8gj3wkc2mbzsqw5zcsr3kyzrrb2pda03pi769rjbvqr94g3bm5";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  gepub = {
+    dependencies = ["nokogiri" "rubyzip"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08fny807zd4700f263ckc76bladjipsniyk3clv8a7x76x3fqshx";
+      type = "gem";
+    };
+    version = "1.0.15";
+  };
+  hashery = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qj8815bf7q6q7llm5rzdz279gzmpqmqqicxnzv066a020iwqffj";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
+      type = "gem";
+    };
+    version = "1.8.11";
+  };
+  latex-decode = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wnxg82lfkb8bl5la9nmg1434rpkcygygm0ckixjn6ah2dy6i53m";
+      type = "gem";
+    };
+    version = "0.3.2";
+  };
+  mathematical = {
+    dependencies = ["ruby-enum"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05mn68gxhfa37qsnzsmdqaa005hf511j5lga76qsrad2gcnhan1b";
+      type = "gem";
+    };
+    version = "1.6.14";
+  };
+  mime-types = {
+    dependencies = ["mime-types-data"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb";
+      type = "gem";
+    };
+    version = "3.4.1";
+  };
+  mime-types-data = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03m3fkix2haah20kvh1jgv262yg9jlzn6wq0y31kafxk8fysfy27";
+      type = "gem";
+    };
+    version = "3.2021.1115";
+  };
+  mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lvxm91hi0pabnkkg47wh1siv56s6slm2mdq1idfm86dyfidfprq";
+      type = "gem";
+    };
+    version = "2.6.1";
+  };
+  namae = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1j3nl1klkx3gymrdxfc1hlq4a8qlvhhl9aj5v1v08b9fz27sky0l";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2" "racc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1v02g7k7cxiwdcahvlxrmizn3avj2q6nsjccgilq1idc89cr081b";
+      type = "gem";
+    };
+    version = "1.12.5";
+  };
+  pdf-core = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fz0yj4zrlii2j08kaw11j769s373ayz8jrdhxwwjzmm28pqndjg";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  pdf-reader = {
+    dependencies = ["Ascii85" "afm" "hashery" "ruby-rc4" "ttfunk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zgv9pp9cqd1cf8bwk7pb5lkm81gn7znnan0a7s42wd0qavs4nnz";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  polyglot = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr";
+      type = "gem";
+    };
+    version = "0.3.5";
+  };
+  prawn = {
+    dependencies = ["pdf-core" "ttfunk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g9avv2rprsjisdk137s9ljr05r7ajhm78hxa1vjsv0jyx22f1l2";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  prawn-icon = {
+    dependencies = ["prawn"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xdnjik5zinnkjavmybbh2s52wzcpb8hzaqckiv0mxp0vs0x9j6s";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  prawn-svg = {
+    dependencies = ["css_parser" "prawn" "rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mbxzw7r7hv43db9422flc24ib9d8bdy1nasbni2h998jc5a5lb6";
+      type = "gem";
+    };
+    version = "0.32.0";
+  };
+  prawn-table = {
+    dependencies = ["prawn"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nxd6qmxqwl850icp18wjh5k0s3amxcajdrkjyzpfgq0kvilcv9k";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  prawn-templates = {
+    dependencies = ["pdf-reader" "prawn"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w9irn3rllm992c6j7fsx81gg539i7yy8zfddyw7q53hnlys0yhi";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      type = "gem";
+    };
+    version = "4.0.6";
+  };
+  "pygments.rb" = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mshqjh8v0v8k29f8annqfr4qlgkp39nbwx3sgm69aymv4skfddb";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  rexml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
+      type = "gem";
+    };
+    version = "3.2.5";
+  };
+  rouge = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "197k0vskf72wxx0gzwld2jzg27bb7982xlvnzy9adlvkzp7nh8vf";
+      type = "gem";
+    };
+    version = "3.26.1";
+  };
+  ruby-enum = {
+    dependencies = ["i18n"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pys90hxylhyg969iw9lz3qai5lblf8xwbdg1g5aj52731a9k83p";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  ruby-rc4 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00vci475258mmbvsdqkmqadlwn6gj9m01sp7b5a3zd90knil1k00";
+      type = "gem";
+    };
+    version = "0.1.5";
+  };
+  rubyzip = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz";
+      type = "gem";
+    };
+    version = "2.3.2";
+  };
+  safe_yaml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  thread_safe = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  treetop = {
+    dependencies = ["polyglot"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0697qz1akblf8r3wi0s2dsjh468hfsd57fb0mrp93z35y2ni6bhh";
+      type = "gem";
+    };
+    version = "1.6.11";
+  };
+  ttfunk = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15iaxz9iak5643bq2bc0jkbjv8w2zn649lxgvh5wg48q9d4blw13";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile b/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile
index 702dabee2e07..32e18b53aa65 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile
@@ -1,10 +1,6 @@
 source 'https://rubygems.org'
 gem 'asciidoctor'
-gem 'asciidoctor-diagram'
 gem 'asciidoctor-pdf'
-gem 'asciidoctor-epub3'
-gem 'asciidoctor-mathematical'
-gem 'asciidoctor-revealjs'
 gem 'coderay'
 gem 'pygments.rb'
 gem 'rouge'
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock b/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
index 3240f65167e1..5c607d269b22 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
@@ -2,26 +2,11 @@ GEM
   remote: https://rubygems.org/
   specs:
     Ascii85 (1.1.0)
-    addressable (2.7.0)
+    addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
     afm (0.2.2)
-    asciidoctor (2.0.15)
-    asciidoctor-diagram (2.1.2)
-      asciidoctor (>= 1.5.7, < 3.x)
-      asciidoctor-diagram-ditaamini (~> 1.0.0)
-      asciidoctor-diagram-plantuml (~> 1.2021)
-      rexml
-    asciidoctor-diagram-ditaamini (1.0.0)
-    asciidoctor-diagram-plantuml (1.2021.7)
-    asciidoctor-epub3 (1.5.1)
-      asciidoctor (>= 1.5.6, < 3.0.0)
-      gepub (~> 1.0.0)
-      mime-types (~> 3.0)
-    asciidoctor-mathematical (0.3.5)
-      asciidoctor (~> 2.0)
-      asciimath (~> 2.0)
-      mathematical (~> 1.6.0)
-    asciidoctor-pdf (1.6.0)
+    asciidoctor (2.0.16)
+    asciidoctor-pdf (1.6.1)
       asciidoctor (~> 2.0)
       concurrent-ruby (~> 1.1)
       prawn (~> 2.4.0)
@@ -31,32 +16,13 @@ GEM
       prawn-templates (~> 0.1.0)
       safe_yaml (~> 1.0.0)
       treetop (~> 1.6.0)
-    asciidoctor-revealjs (4.1.0)
-      asciidoctor (>= 2.0.0, < 3.0.0)
-      concurrent-ruby (~> 1.0)
-      thread_safe (~> 0.3.5)
-    asciimath (2.0.2)
     coderay (1.1.3)
     concurrent-ruby (1.1.9)
-    css_parser (1.9.0)
+    css_parser (1.10.0)
       addressable
-    gepub (1.0.13)
-      nokogiri (>= 1.8.2, < 1.12)
-      rubyzip (> 1.1.1, < 2.4)
     hashery (2.1.2)
-    i18n (1.8.10)
-      concurrent-ruby (~> 1.0)
-    mathematical (1.6.14)
-      ruby-enum (~> 0.4)
-    mime-types (3.3.1)
-      mime-types-data (~> 3.2015)
-    mime-types-data (3.2021.0225)
-    mini_portile2 (2.5.3)
-    nokogiri (1.11.7)
-      mini_portile2 (~> 2.5.0)
-      racc (~> 1.4)
     pdf-core (0.9.0)
-    pdf-reader (2.5.0)
+    pdf-reader (2.6.0)
       Ascii85 (~> 1.0)
       afm (~> 0.2.1)
       hashery (~> 2.0)
@@ -79,15 +45,10 @@ GEM
       prawn (~> 2.2)
     public_suffix (4.0.6)
     pygments.rb (2.2.0)
-    racc (1.5.2)
     rexml (3.2.5)
-    rouge (3.26.0)
-    ruby-enum (0.9.0)
-      i18n
+    rouge (3.26.1)
     ruby-rc4 (0.1.5)
-    rubyzip (2.3.0)
     safe_yaml (1.0.5)
-    thread_safe (0.3.6)
     treetop (1.6.11)
       polyglot (~> 0.3)
     ttfunk (1.7.0)
@@ -97,14 +58,10 @@ PLATFORMS
 
 DEPENDENCIES
   asciidoctor
-  asciidoctor-diagram
-  asciidoctor-epub3
-  asciidoctor-mathematical
   asciidoctor-pdf
-  asciidoctor-revealjs
   coderay
   pygments.rb
   rouge
 
 BUNDLED WITH
-   2.1.4
+   2.2.24
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix
index 73fb46d2e606..5f78c12508d1 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix
@@ -1,39 +1,26 @@
-{ lib, bundlerApp, makeWrapper,
-  # Optional dependencies, can be null
-  epubcheck,
-  bundlerUpdateScript
+{ lib
+, bundlerApp
+, bundlerUpdateScript
 }:
 
-let
-  app = bundlerApp {
-    pname = "asciidoctor";
-    gemdir = ./.;
+bundlerApp {
+  pname = "asciidoctor";
+  gemdir = ./.;
 
-    exes = [
-      "asciidoctor"
-      "asciidoctor-pdf"
-      "asciidoctor-epub3"
-      "asciidoctor-revealjs"
-    ];
+  exes = [
+    "asciidoctor"
+    "asciidoctor-pdf"
+  ];
 
-    buildInputs = [ makeWrapper ];
-
-    postBuild = ''
-        wrapProgram "$out/bin/asciidoctor-epub3" \
-          ${lib.optionalString (epubcheck != null) "--set EPUBCHECK ${epubcheck}/bin/epubcheck"}
-      '';
-
-    passthru = {
-      updateScript = bundlerUpdateScript "asciidoctor";
-    };
+  passthru = {
+    updateScript = bundlerUpdateScript "asciidoctor";
+  };
 
-    meta = with lib; {
-      description = "A faster Asciidoc processor written in Ruby";
-      homepage = "https://asciidoctor.org/";
-      license = licenses.mit;
-      maintainers = with maintainers; [ gpyh nicknovitski ];
-      platforms = platforms.unix;
-    };
+  meta = with lib; {
+    description = "A faster Asciidoc processor written in Ruby";
+    homepage = "https://asciidoctor.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ gpyh nicknovitski ];
+    platforms = platforms.unix;
   };
-in
-  app
+}
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix
index 6fe57ff48565..b57d1e5ac4ad 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.8.0";
   };
   afm = {
     groups = ["default"];
@@ -35,63 +35,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k3lijm4dmiz977bfmpclk5glj5jwv7bidamwwwywm60ywb0n4n4";
+      sha256 = "10h4pmmkbcrpy7bn76wxzkb0hriabh1k3ii1g8lm0mdji5drlhq2";
       type = "gem";
     };
-    version = "2.0.15";
-  };
-  asciidoctor-diagram = {
-    dependencies = ["asciidoctor" "asciidoctor-diagram-ditaamini" "asciidoctor-diagram-plantuml" "rexml"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "09ci775f7y7d6spn0fl5wfmfyxianjp4z0p3fwcrzajy63f381v9";
-      type = "gem";
-    };
-    version = "2.1.2";
-  };
-  asciidoctor-diagram-ditaamini = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1frnjz0j00v5hqp5macgnn6jq77jcpjy2l6hqmn5jn5ds7bmi2rl";
-      type = "gem";
-    };
-    version = "1.0.0";
-  };
-  asciidoctor-diagram-plantuml = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1kcxwbaancxfq08fr7syg8mxsi97jiczxyp4an2x0ymq3mkss0k8";
-      type = "gem";
-    };
-    version = "1.2021.7";
-  };
-  asciidoctor-epub3 = {
-    dependencies = ["asciidoctor" "gepub" "mime-types"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "05lylv2k18vcnf3647n47zdqxpa70bg16znzn252ymp8say25zzg";
-      type = "gem";
-    };
-    version = "1.5.1";
-  };
-  asciidoctor-mathematical = {
-    dependencies = ["asciidoctor" "asciimath" "mathematical"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1lxfq7qn3ql642pva6jh3h1abm9j9daxg5icfn1h73k6cjsmcisp";
-      type = "gem";
-    };
-    version = "0.3.5";
+    version = "2.0.16";
   };
   asciidoctor-pdf = {
     dependencies = ["asciidoctor" "concurrent-ruby" "prawn" "prawn-icon" "prawn-svg" "prawn-table" "prawn-templates" "safe_yaml" "treetop"];
@@ -99,31 +46,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sxfz3qp2j76jlab7fb1d1ylbf0h2nnbkhg019qqch5wkd4k1iw9";
-      type = "gem";
-    };
-    version = "1.6.0";
-  };
-  asciidoctor-revealjs = {
-    dependencies = ["asciidoctor" "concurrent-ruby" "thread_safe"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "03vmbcc3x059h17ry4qwk1p0yar9wgh87l2qssi307gy45cjw2mq";
-      type = "gem";
-    };
-    version = "4.1.0";
-  };
-  asciimath = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1yq9av7rh493xqmx4cq3fjl0c6d8njxp53qw4hg2d3xkyn2lyfc5";
+      sha256 = "17d3fa6ix6r5ikydqz41r620mm98s076wdg4w6ydsr655r7mvnpk";
       type = "gem";
     };
-    version = "2.0.2";
+    version = "1.6.1";
   };
   coderay = {
     groups = ["default"];
@@ -151,21 +77,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xs4ind9xd099rb52b73pch8ha143dl8bhivqsbba4wrvxpbx751";
-      type = "gem";
-    };
-    version = "1.9.0";
-  };
-  gepub = {
-    dependencies = ["nokogiri" "rubyzip"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "01q33rkvqrhxqm8zgkhgcqhrqdfzgxswxfgiagdjxw67qdn1pids";
+      sha256 = "1q8gj3wkc2mbzsqw5zcsr3kyzrrb2pda03pi769rjbvqr94g3bm5";
       type = "gem";
     };
-    version = "1.0.13";
+    version = "1.10.0";
   };
   hashery = {
     groups = ["default"];
@@ -177,70 +92,6 @@
     };
     version = "2.1.2";
   };
-  i18n = {
-    dependencies = ["concurrent-ruby"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
-      type = "gem";
-    };
-    version = "1.8.10";
-  };
-  mathematical = {
-    dependencies = ["ruby-enum"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "05mn68gxhfa37qsnzsmdqaa005hf511j5lga76qsrad2gcnhan1b";
-      type = "gem";
-    };
-    version = "1.6.14";
-  };
-  mime-types = {
-    dependencies = ["mime-types-data"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh";
-      type = "gem";
-    };
-    version = "3.3.1";
-  };
-  mime-types-data = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi";
-      type = "gem";
-    };
-    version = "3.2021.0225";
-  };
-  mini_portile2 = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1ad0mli9rc0f17zw4ibp24dbj1y39zkykijsjmnzl4gwpg5s0j6k";
-      type = "gem";
-    };
-    version = "2.5.3";
-  };
-  nokogiri = {
-    dependencies = ["mini_portile2" "racc"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1vrn31385ix5k9b0yalnlzv360isv6dincbcvi8psllnwz4sjxj9";
-      type = "gem";
-    };
-    version = "1.11.7";
-  };
   pdf-core = {
     groups = ["default"];
     platforms = [];
@@ -257,10 +108,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14cxj3ra9nnn334qpm2vsx9s0zk3095s8ih6cwcp47h3hv03c73y";
+      sha256 = "0zgv9pp9cqd1cf8bwk7pb5lkm81gn7znnan0a7s42wd0qavs4nnz";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.6.0";
   };
   polyglot = {
     groups = ["default"];
@@ -347,16 +198,6 @@
     };
     version = "2.2.0";
   };
-  racc = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
-      type = "gem";
-    };
-    version = "1.5.2";
-  };
   rexml = {
     groups = ["default"];
     platforms = [];
@@ -372,21 +213,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3";
-      type = "gem";
-    };
-    version = "3.26.0";
-  };
-  ruby-enum = {
-    dependencies = ["i18n"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1pys90hxylhyg969iw9lz3qai5lblf8xwbdg1g5aj52731a9k83p";
+      sha256 = "197k0vskf72wxx0gzwld2jzg27bb7982xlvnzy9adlvkzp7nh8vf";
       type = "gem";
     };
-    version = "0.9.0";
+    version = "3.26.1";
   };
   ruby-rc4 = {
     groups = ["default"];
@@ -398,16 +228,6 @@
     };
     version = "0.1.5";
   };
-  rubyzip = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
-      type = "gem";
-    };
-    version = "2.3.0";
-  };
   safe_yaml = {
     groups = ["default"];
     platforms = [];
@@ -418,16 +238,6 @@
     };
     version = "1.0.5";
   };
-  thread_safe = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
-      type = "gem";
-    };
-    version = "0.3.6";
-  };
   treetop = {
     dependencies = ["polyglot"];
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/typesetting/docbook2x/default.nix b/nixpkgs/pkgs/tools/typesetting/docbook2x/default.nix
index aac992552d31..42ac92698b0d 100644
--- a/nixpkgs/pkgs/tools/typesetting/docbook2x/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/docbook2x/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, lib, stdenv, texinfo, perlPackages
 , groff, libxml2, libxslt, gnused, libiconv, opensp
-, docbook_xml_dtd_43
+, docbook_xml_dtd_43, bash
 , makeWrapper }:
 
 stdenv.mkDerivation rec {
@@ -16,8 +16,8 @@ stdenv.mkDerivation rec {
   # writes its output to stdout instead of creating a file.
   patches = [ ./db2x_texixml-to-stdout.patch ];
 
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ texinfo groff libxml2 libxslt opensp libiconv ]
+  nativeBuildInputs = [ makeWrapper perlPackages.perl texinfo libxslt ];
+  buildInputs = [ groff libxml2 opensp libiconv bash ]
     ++ (with perlPackages; [ perl XMLSAX XMLParser XMLNamespaceSupport ]);
 
   postConfigure = ''
diff --git a/nixpkgs/pkgs/tools/typesetting/docbookrx/Gemfile b/nixpkgs/pkgs/tools/typesetting/docbookrx/Gemfile
index 73fee2920d5e..d5290dcb0093 100644
--- a/nixpkgs/pkgs/tools/typesetting/docbookrx/Gemfile
+++ b/nixpkgs/pkgs/tools/typesetting/docbookrx/Gemfile
@@ -1,2 +1,2 @@
 source 'https://rubygems.org'
-gem 'nokogiri', '~> 1.8.0'
+gem 'nokogiri', '~> 1.11.7'
diff --git a/nixpkgs/pkgs/tools/typesetting/docbookrx/Gemfile.lock b/nixpkgs/pkgs/tools/typesetting/docbookrx/Gemfile.lock
index 423fac6c30a9..07b58b649f4c 100644
--- a/nixpkgs/pkgs/tools/typesetting/docbookrx/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/typesetting/docbookrx/Gemfile.lock
@@ -1,15 +1,38 @@
+PATH
+  remote: .
+  specs:
+    docbookrx (1.0.0.dev)
+      nokogiri (~> 1.11.7)
+
 GEM
   remote: https://rubygems.org/
   specs:
-    mini_portile2 (2.3.0)
-    nokogiri (1.8.5)
-      mini_portile2 (~> 2.3.0)
+    diff-lcs (1.4.4)
+    nokogiri (1.11.7-x86_64-linux)
+      racc (~> 1.4)
+    racc (1.6.0)
+    rake (13.0.6)
+    rspec (3.9.0)
+      rspec-core (~> 3.9.0)
+      rspec-expectations (~> 3.9.0)
+      rspec-mocks (~> 3.9.0)
+    rspec-core (3.9.3)
+      rspec-support (~> 3.9.3)
+    rspec-expectations (3.9.4)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.9.0)
+    rspec-mocks (3.9.1)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.9.0)
+    rspec-support (3.9.4)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  nokogiri (~> 1.8.0)
+  docbookrx!
+  rake (~> 13.0.0)
+  rspec (~> 3.9.0)
 
 BUNDLED WITH
-   2.1.4
+   2.2.24
diff --git a/nixpkgs/pkgs/tools/typesetting/docbookrx/default.nix b/nixpkgs/pkgs/tools/typesetting/docbookrx/default.nix
index a41276ea4328..059233d09b08 100644
--- a/nixpkgs/pkgs/tools/typesetting/docbookrx/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/docbookrx/default.nix
@@ -3,7 +3,6 @@
 , stdenv
 , ruby
 , bundlerEnv
-# , libxml2
 }:
 
 let
@@ -13,10 +12,6 @@ let
 
     inherit ruby;
 
-    # buildInputs = [
-    #   libxml2
-    # ];
-
     gemfile = ./Gemfile;
     lockfile = ./Gemfile.lock;
     gemset = ./gemset.nix;
@@ -25,15 +20,15 @@ let
 in stdenv.mkDerivation {
 
   pname = "docbookrx";
-  version = "unstable-2018-05-02";
+  version = "unstable-2018-05-18";
 
   buildInputs = [ env.wrappedRuby ];
 
   src = fetchFromGitHub {
     owner = "asciidoctor";
     repo = "docbookrx";
-    rev = "682d8c2f7a9e1e6f546c5f7d0067353621c68a7a";
-    sha256 = "07jilh17gj8xx4ps4ln787izmhv8xwwwv6fkqqg3pwjni5qikx7w";
+    rev = "83d1d1235e3bb44506123eda337780a912581cd0";
+    sha256 = "sha256-OdPRh7ZIhgM7hs5qPiuxLEUuMEtaXcgZ83M6i6CV6AY=";
   };
 
   # TODO: I don't know ruby packaging but this does the trick for now
diff --git a/nixpkgs/pkgs/tools/typesetting/docbookrx/gemset.nix b/nixpkgs/pkgs/tools/typesetting/docbookrx/gemset.nix
index bd756b996bbc..fde67f2d4ee9 100644
--- a/nixpkgs/pkgs/tools/typesetting/docbookrx/gemset.nix
+++ b/nixpkgs/pkgs/tools/typesetting/docbookrx/gemset.nix
@@ -1,23 +1,107 @@
 {
-  mini_portile2 = {
-    groups = ["default"];
+  diff-lcs = {
+    groups = ["default" "development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+      sha256 = "0m925b8xc6kbpnif9dldna24q1szg4mk0fvszrki837pfn46afmz";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "1.4.4";
+  };
+  docbookrx = {
+    dependencies = ["nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      path = ./.;
+      type = "path";
+    };
+    version = "1.0.0.dev";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["racc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "4976a9c9e796527d51dc6c311b9bd93a0233f6a7962a0f569aa5c782461836ef";
+      type = "gem";
+    };
+    version = "1.11.7";
+  };
+  racc = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz";
+      sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  rake = {
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      type = "gem";
+    };
+    version = "13.0.6";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hzsig4pi9ybr0xl5540m1swiyxa74c8h09225y5sdh2rjkkg84h";
+      type = "gem";
+    };
+    version = "3.9.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b8891149l4rdlaz58k1dprc09rhpvq98bblk4qpd3dvcvqklkvh";
+      type = "gem";
+    };
+    version = "3.9.3";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gjqa3h4r8jna8dh22al4f6ks4x6l4knshx2b8jygkd1gk68n92q";
+      type = "gem";
+    };
+    version = "3.9.4";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19vmdqym1v2g1zbdnq37zwmyj87y9yc9ijwc8js55igvbb9hx0mr";
+      type = "gem";
+    };
+    version = "3.9.1";
+  };
+  rspec-support = {
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ig6wk1ln6wy0d6fjlbfwxibps1nidc6111fcnm0jfa1z5nkqczl";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "3.9.4";
   };
 }
diff --git a/nixpkgs/pkgs/tools/typesetting/halibut/default.nix b/nixpkgs/pkgs/tools/typesetting/halibut/default.nix
index ec5598e4d689..de76c4956d7a 100644
--- a/nixpkgs/pkgs/tools/typesetting/halibut/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/halibut/default.nix
@@ -1,29 +1,15 @@
-{lib, stdenv, fetchurl, perl}:
+{lib, stdenv, fetchurl, cmake, perl}:
 
 stdenv.mkDerivation rec {
   pname = "halibut";
-  version = "1.2";
+  version = "1.3";
 
   src = fetchurl {
-    url = "http://ww.chiark.greenend.org.uk/~sgtatham/halibut/halibut-${version}/halibut-${version}.tar.gz";
-    sha256 = "0gqnhfqf555rfpk5xj1imbdxnbkkrv4wl3rrdb1r0wgj81igpv8s";
+    url = "https://www.chiark.greenend.org.uk/~sgtatham/halibut/halibut-${version}/halibut-${version}.tar.gz";
+    sha256 = "0ciikn878vivs4ayvwvr63nnhpcg12m8023xv514zxqpdxlzg85a";
   };
 
-  buildInputs = [ perl ];
-
-  patchPhase = ''
-    sed -i -e s@/usr/local@$out@ Makefile
-    sed -i -e 's@(prefix)/man@(prefix)/share/man@' doc/Makefile
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    mkdir -p $out/share/man/man1
-    pushd doc
-    make halibut.1
-    popd
-    make install
-  '';
+  nativeBuildInputs = [ cmake perl ];
 
   meta = with lib; {
     description = "Documentation production system for software manuals";
diff --git a/nixpkgs/pkgs/tools/typesetting/htmldoc/default.nix b/nixpkgs/pkgs/tools/typesetting/htmldoc/default.nix
index aaea9090b72e..cd48a3fd8765 100644
--- a/nixpkgs/pkgs/tools/typesetting/htmldoc/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/htmldoc/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "htmldoc";
-  version = "1.9.12";
+  version = "1.9.14";
   src = fetchFromGitHub {
     owner = "michaelrsweet";
     repo = "htmldoc";
     rev = "v${version}";
-    sha256 = "1dqima0g3j301wwzjxdhzk5pvfj724rl615gf8ssxxajfnid1gl0";
+    sha256 = "sha256-mPykntRKu2NrIIGYGNCATUC3k/dvRmVkjHyhBeFfQ2U=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/tools/typesetting/lout/builder.sh b/nixpkgs/pkgs/tools/typesetting/lout/builder.sh
index 61459e48b7f0..eab37c3c68fb 100755
--- a/nixpkgs/pkgs/tools/typesetting/lout/builder.sh
+++ b/nixpkgs/pkgs/tools/typesetting/lout/builder.sh
@@ -15,28 +15,28 @@ installDoc ()
     echo "building \`$doc' document..."
     if [ ! -f "doc/$doc/outfile.ps" ]
     then
-      ( PATH="$PWD:$PATH" ;				\
-        cd "doc/$doc" && lout -r4 -o outfile.ps all )	\
+      ( PATH="$PWD:$PATH" ; \
+        cd "doc/$doc" && lout -r4 -o outfile.ps all ) \
       || return 1
     fi
-    cp "doc/$doc/outfile.ps" "$out/doc/lout/$doc.ps" &&		\
-    ps2pdf -dPDFSETTINGS=/prepress -sPAPERSIZE=a4		\
+    cp "doc/$doc/outfile.ps" "$out/doc/lout/$doc.ps" && \
+    ps2pdf -dPDFSETTINGS=/prepress -sPAPERSIZE=a4 \
            "doc/$doc/outfile.ps" "$out/doc/lout/$doc.pdf"
   done
 
   return 0
 }
 
-unpackPhase &&									\
-cd lout-*.* &&									\
-cat makefile |									\
-  sed -e "s|^PREFIX[[:blank:]]*=.*\$|PREFIX = $out|g ;				\
-          s|^LOUTLIBDIR[[:blank:]]*=.*$|LOUTLIBDIR = \$(PREFIX)/lib/lout|g ;	\
-	  s|^LOUTDOCDIR[[:blank:]]*=.*$|LOUTDOCDIR = \$(PREFIX)/doc/lout|g ;	\
-	  s|^MANDIR[[:blank:]]*=.*$|MANDIR = \$(PREFIX)/man|g"			\
-  > "$nixMakefile" &&								\
-mkdir -p "$out/bin" && mkdir -p "$out/lib"					\
-mkdir -p "$out/man" && mkdir -p "$out/doc/lout" &&				\
-make -f "$nixMakefile" CC=cc install installman &&					\
-installDoc &&									\
+unpackPhase && \
+cd lout-*.* && \
+cat makefile | \
+  sed -e "s|^PREFIX[[:blank:]]*=.*\$|PREFIX = $out|g ; \
+    s|^LOUTLIBDIR[[:blank:]]*=.*$|LOUTLIBDIR = \$(PREFIX)/lib/lout|g ; \
+    s|^LOUTDOCDIR[[:blank:]]*=.*$|LOUTDOCDIR = \$(PREFIX)/doc/lout|g ; \
+    s|^MANDIR[[:blank:]]*=.*$|MANDIR = \$(PREFIX)/man|g" \
+  > "$nixMakefile" && \
+mkdir -p "$out/bin" && mkdir -p "$out/lib" \
+mkdir -p "$out/man" && mkdir -p "$out/doc/lout" && \
+make -f "$nixMakefile" CC=cc install installman && \
+installDoc && \
 fixupPhase
diff --git a/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix b/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix
index 32907ea3fb75..1cb9c8d40177 100644
--- a/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lowdown";
-  version = "0.9.2";
+  version = "0.10.0";
 
   outputs = [ "out" "lib" "dev" "man" ];
 
   src = fetchurl {
     url = "https://kristaps.bsd.lv/lowdown/snapshots/lowdown-${version}.tar.gz";
-    sha512 = "2dnjyx3q46n7v1wl46vfgs9rhb3kvhijsd3ydq6amdf6vlf4mf1zsiakd5iycdh0i799zq61yspsibc87mcrs8l289lnwl955avs068";
+    sha512 = "3gq6awxvkz2hb8xzcwqhdhdqgspvqjfzm50bq9i29qy2iisq9vzb91bdp3f4q2sqcmk3gms44xyxyn3ih2hwlzsnk0f5prjzyg97fjj";
   };
 
   nativeBuildInputs = [ which ]
diff --git a/nixpkgs/pkgs/tools/typesetting/odpdown/default.nix b/nixpkgs/pkgs/tools/typesetting/odpdown/default.nix
index 7b20d230b9f7..85dcece956fb 100644
--- a/nixpkgs/pkgs/tools/typesetting/odpdown/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/odpdown/default.nix
@@ -1,13 +1,15 @@
-{ lib, fetchurl, pythonPackages, libreoffice }:
+{ lib, fetchFromGitHub, pythonPackages, libreoffice }:
 
 pythonPackages.buildPythonApplication rec {
 
   pname = "odpdown";
   version = "0.4.1";
 
-  src = fetchurl {
-    url = "https://github.com/thorstenb/odpdown/archive/v${version}.tar.gz";
-    sha256 = "005eecc73c65b9d4c09532547940718a7b308cd565f62a213dfa040827d4d565";
+  src = fetchFromGitHub {
+    owner = "thorstenb";
+    repo = "odpdown";
+    rev = "v${version}";
+    sha256 = "r2qbgD9PAalbypt+vjp2YcYggUGPQMEG2FDxMtohqG4=";
   };
 
   propagatedBuildInputs = with pythonPackages; [ libreoffice lpod lxml mistune pillow pygments ];
diff --git a/nixpkgs/pkgs/tools/typesetting/pdftk/default.nix b/nixpkgs/pkgs/tools/typesetting/pdftk/default.nix
index c1f04616729c..fd801527e112 100644
--- a/nixpkgs/pkgs/tools/typesetting/pdftk/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/pdftk/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "pdftk";
-  version = "3.2.1";
+  version = "3.3.2";
 
   src = fetchFromGitLab {
     owner = "pdftk-java";
     repo = "pdftk";
     rev = "v${version}";
-    sha256 = "056db8rjczdfkq7fm3bv5g15y042rc9hb4zh5qccjrdw630vk9y4";
+    sha256 = "1gji1a06g3p6r4v5dx6h9kbvnf95d0lsjvp0c7daw5l8xhsrvijx";
   };
 
   deps = stdenv.mkDerivation {
@@ -32,7 +32,7 @@ let
 
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "0p59myc5m3ds7fh0zdz3n7l7hx6dj8bpyqxzlhdrqybsyxwpw4w3";
+    outputHash = "0qx1axqr0h5zbn2z9bnb1d0rbs0vajw4p8szw34nicngnn213g7k";
   };
 
   # Point to our local deps repo
diff --git a/nixpkgs/pkgs/tools/typesetting/pdftk/legacy.nix b/nixpkgs/pkgs/tools/typesetting/pdftk/legacy.nix
index 3c4d042097ff..189978870376 100644
--- a/nixpkgs/pkgs/tools/typesetting/pdftk/legacy.nix
+++ b/nixpkgs/pkgs/tools/typesetting/pdftk/legacy.nix
@@ -1,10 +1,11 @@
 { fetchurl, lib, stdenv, gcj, unzip }:
 
-stdenv.mkDerivation {
-  name = "pdftk-2.02";
+stdenv.mkDerivation rec {
+  pname = "pdftk";
+  version = "2.02";
 
   src = fetchurl {
-    url = "https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk-2.02-src.zip";
+    url = "https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk-${version}-src.zip";
     sha256 = "1hdq6zm2dx2f9h7bjrp6a1hfa1ywgkwydp14i2sszjiszljnm3qi";
   };
 
@@ -36,7 +37,7 @@ stdenv.mkDerivation {
     description = "Simple tool for doing everyday things with PDF documents";
     homepage = "https://www.pdflabs.com/tools/pdftk-server/";
     license = lib.licenses.gpl2;
-    maintainers = with lib.maintainers; [raskin];
+    maintainers = with lib.maintainers; [ raskin ];
     platforms = with lib.platforms; linux;
     broken = true; # Broken on Hydra since 2020-08-24
   };
diff --git a/nixpkgs/pkgs/tools/typesetting/scdoc/default.nix b/nixpkgs/pkgs/tools/typesetting/scdoc/default.nix
index 1e6c86c19923..c64136ad6b98 100644
--- a/nixpkgs/pkgs/tools/typesetting/scdoc/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/scdoc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "scdoc";
-  version = "1.11.1";
+  version = "1.11.2";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = pname;
     rev = version;
-    sha256 = "1g37j847j3h4a4qbbfbr6vvsxpifj9v25jgv25nd71d1n0dxlhvk";
+    sha256 = "07c2vmdgqifbynm19zjnrk7h102pzrriv73izmx8pmd7b3xl5mfq";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/typesetting/soupault/default.nix b/nixpkgs/pkgs/tools/typesetting/soupault/default.nix
index 5b0619468efb..a511456e02eb 100644
--- a/nixpkgs/pkgs/tools/typesetting/soupault/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/soupault/default.nix
@@ -2,7 +2,7 @@
 
 ocamlPackages.buildDunePackage rec {
   pname = "soupault";
-  version = "3.1.0";
+  version = "3.2.0";
 
   useDune2 = true;
 
@@ -10,7 +10,7 @@ ocamlPackages.buildDunePackage rec {
     owner = "dmbaturin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-SVNC2DbdciunSKTCmmX0SqaEXMe1DkVX4VJTqriI8Y4=";
+    sha256 = "sha256-T1K/ntCK19LfPmMtaAa9c1JjSL+5dax2SNhM4yUFln4=";
   };
 
   buildInputs = with ocamlPackages; [
@@ -23,6 +23,7 @@ ocamlPackages.buildDunePackage rec {
     lambdasoup
     lua-ml
     logs
+    markup
     odate
     otoml
     re
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/blahtexml/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/blahtexml/default.nix
new file mode 100644
index 000000000000..039b11a6746f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/typesetting/tex/blahtexml/default.nix
@@ -0,0 +1,48 @@
+{ fetchFromGitHub, lib, stdenv, libiconv, texlive, xercesc }:
+
+stdenv.mkDerivation {
+  pname = "blahtexml";
+  version = "0.9+date=2020-05-16";
+
+  src = fetchFromGitHub {
+    owner = "gvanas";
+    repo = "blahtexml";
+    rev = "92f2c5ff1f2b00a541b2222facc51ec72e5f6559";
+    hash = "sha256-ts+2gWsp7+rQu1US2/qEdbttB2Ps12efTSrcioZYsmE=";
+  };
+
+  outputs = [ "out" "doc" ];
+
+  nativeBuildInputs = [ texlive.combined.scheme-full ];
+  buildInputs = [ xercesc ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
+
+  buildFlags =
+    [ "doc" ] ++
+    (if stdenv.isDarwin
+     then [ "blahtex-mac" "blahtexml-mac" ]
+     else [ "blahtex-linux" "blahtexml-linux" ]);
+
+  installPhase = ''
+    install -D -t "$out/bin" blahtex blahtexml
+    install -m644 -D -t "$doc/share/doc/blahtexml" Documentation/manual.pdf
+  '';
+
+  meta = with lib; {
+    homepage = "http://gva.noekeon.org/blahtexml/";
+    description = "A TeX to MathML converter";
+    longDescription = ''
+      Blahtex is a program written in C++, which converts an equation given in
+      a syntax close to TeX into MathML. It is designed by David Harvey and is
+      aimed at supporting equations in MediaWiki.
+
+      Blahtexml is a simple extension of blahtex, written by Gilles Van Assche.
+      In addition to the functionality of blahtex, blahtexml has XML processing
+      in mind and is able to process a whole XML document into another XML
+      document. Instead of converting only one formula at a time, blahtexml can
+      convert all the formulas of the given XML file into MathML.
+    '';
+    license = licenses.bsd3;
+    maintainers = [ maintainers.xworld21 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/pgf/1.x.nix b/nixpkgs/pkgs/tools/typesetting/tex/pgf/1.x.nix
index efaf0e0fe1b3..618f936d8bf8 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/pgf/1.x.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/pgf/1.x.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "pgf-1.18";
+stdenv.mkDerivation rec {
+  pname = "pgf";
+  version = "1.18";
 
   src = fetchurl {
-    url = "mirror://sourceforge/pgf/pgf-1.18.tar.gz";
+    url = "mirror://sourceforge/pgf/pgf-${version}.tar.gz";
     sha256 = "0s6b8rx9yfxcjjg18vx1mphnwbd28fl5lnq0dasjz40pp3ypwdjv";
   };
 
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/pgf/2.x.nix b/nixpkgs/pkgs/tools/typesetting/tex/pgf/2.x.nix
index 9661ec3324be..b8a3f2f63660 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/pgf/2.x.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/pgf/2.x.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "pgf-2.00";
+stdenv.mkDerivation rec {
+  pname = "pgf";
+  version = "2.00";
 
   src = fetchurl {
-    url = "mirror://sourceforge/pgf/pgf-2.00.tar.gz";
+    url = "mirror://sourceforge/pgf/pgf-${version}.tar.gz";
     sha256 = "0j57niag4jb2k0iyrvjsannxljc3vkx0iag7zd35ilhiy4dh6264";
   };
 
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/pgf/3.x.nix b/nixpkgs/pkgs/tools/typesetting/tex/pgf/3.x.nix
index b33f05d34a78..9af41ff1f43f 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/pgf/3.x.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/pgf/3.x.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl, unzip}:
+{ lib, stdenv, fetchurl, unzip }:
 
-stdenv.mkDerivation {
-  name = "pgf-3.00";
+stdenv.mkDerivation rec {
+  pname = "pgf";
+  version = "3.0.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/pgf/pgf/version%203.0.0/pgf_3.0.0.tds.zip";
+    url = "mirror://sourceforge/project/pgf/pgf/version%20${version}/pgf_${version}.tds.zip";
     sha256 = "0kj769hyp4z2zmdv3f8xv443wcfqn5nkkbzxzqgfxjizlz81aav7";
   };
 
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix
index 1367d651a091..9569ec88854f 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix
@@ -33,9 +33,9 @@ let
       ++ lib.optional (lib.any pkgNeedsRuby splitBin.wrong) ruby;
   };
 
-  uniqueStrings = list: lib.sort (a: b: a < b) (lib.unique list);
+  sortedUniqueStrings = list: lib.sort (a: b: a < b) (lib.unique list);
 
-  mkUniqueOutPaths = pkgs: uniqueStrings
+  mkUniqueOutPaths = pkgs: lib.unique
     (map (p: p.outPath) (builtins.filter lib.isDerivation pkgs));
 
 in (buildEnv {
@@ -124,9 +124,9 @@ in (buildEnv {
     # now filter hyphenation patterns and formats
   (let
     hyphens = lib.filter (p: p.hasHyphens or false && p.tlType == "run") pkgList.splitBin.wrong;
-    hyphenPNames = uniqueStrings (map (p: p.pname) hyphens);
+    hyphenPNames = sortedUniqueStrings (map (p: p.pname) hyphens);
     formats = lib.filter (p: p.hasFormats or false && p.tlType == "run") pkgList.splitBin.wrong;
-    formatPNames = uniqueStrings (map (p: p.pname) formats);
+    formatPNames = sortedUniqueStrings (map (p: p.pname) formats);
     # sed expression that prints the lines in /start/,/end/ except for /end/
     section = start: end: "/${start}/,/${end}/{ /${start}/p; /${end}/!p; };\n";
     script =
diff --git a/nixpkgs/pkgs/tools/video/rav1e/default.nix b/nixpkgs/pkgs/tools/video/rav1e/default.nix
index 53e139cde3bb..bbf1e81a83d3 100644
--- a/nixpkgs/pkgs/tools/video/rav1e/default.nix
+++ b/nixpkgs/pkgs/tools/video/rav1e/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, rustPlatform, rust, fetchurl, fetchFromGitHub, lib, nasm, cargo-c, libiconv }:
+{ lib, rust, stdenv, rustPlatform, fetchCrate, nasm, cargo-c, libiconv }:
 
 let
   rustTargetPlatformSpec = rust.toRustTargetSpec stdenv.hostPlatform;
@@ -6,32 +6,18 @@ in rustPlatform.buildRustPackage rec {
   pname = "rav1e";
   version = "0.4.1";
 
-  src = stdenv.mkDerivation rec {
-    name = "${pname}-${version}-source";
-
-    src = fetchFromGitHub {
-      owner = "xiph";
-      repo = "rav1e";
-      rev = "v${version}";
-      sha256 = "0jnq5a3fv6fzzbmprzfxidlcwwgblkwwm0135cfw741wjv7f7h6r";
-    };
-
-    cargoLock = fetchurl {
-      url = "https://github.com/xiph/rav1e/releases/download/v${version}/Cargo.lock";
-      sha256 = "14fi9wam9rs5206rvcd2f3sjpzq41pnfml14w74wn2ws3gpi46zn";
-    };
-
-    installPhase = ''
-      mkdir -p $out
-      cp -r ./* $out/
-      cp ${cargoLock} $out/Cargo.lock
-    '';
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "sha256-9fBAH1vuLJ3yu8X5+CQGLQFDlzTYoFBUTy3Muo6hLkw=";
   };
 
-  cargoSha256 = "0miq6iiywwbxm6k0alnqg6bnd14pwc8vl9d8fgg6c0vjlfy5zhlb";
+  cargoSha256 = "sha256-QhWVqHcNjJF94uTvHGVnV8MTp2bYOuCEjaMBfViOLRo=";
+
   nativeBuildInputs = [ nasm cargo-c ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
+  checkType = "debug";
+
   postBuild = ''
     cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${rustTargetPlatformSpec}
   '';
diff --git a/nixpkgs/pkgs/tools/virtualization/alpine-make-vm-image/default.nix b/nixpkgs/pkgs/tools/virtualization/alpine-make-vm-image/default.nix
index 239a00a665d8..f6cfe011488c 100644
--- a/nixpkgs/pkgs/tools/virtualization/alpine-make-vm-image/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/alpine-make-vm-image/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "alpine-make-vm-image";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "alpinelinux";
     repo = "alpine-make-vm-image";
     rev = "v${version}";
-    sha256 = "0cjcwq957nsml06kdnnvgzki84agjfvqw3mpyiix4i4q5by91lcl";
+    sha256 = "14rkqlg319h8agiydgknjfv2f7vl6rdj848xfkngvydrf1rr38j6";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix b/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix
index dd30969ed8bd..6bc070d2cbbf 100644
--- a/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix
@@ -1,36 +1,30 @@
 { lib
-, fetchFromGitHub
 , buildPythonApplication
-, jinja2
-, oauthlib
-, configobj
-, pyyaml
-, requests
-, jsonschema
-, jsonpatch
-, httpretty
-, dmidecode
-, pytestCheckHook
-, shadow
 , cloud-utils
+, dmidecode
+, fetchFromGitHub
 , openssh
+, python3
+, shadow
 }:
 
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "cloud-init";
-  version = "21.2";
+  version = "21.4";
   namePrefix = "";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = "cloud-init";
     rev = version;
-    sha256 = "0vhjkgs49ixfa3kkj5s3v3gcxvypm3cdvfk6adrk2bx3wv2cbhvz";
+    sha256 = "09413qz9y2csvhjb4krjnkfj97vlykx79j912p27jjcrg82f1nib";
   };
 
   patches = [ ./0001-add-nixos-support.patch ];
+
   prePatch = ''
-    substituteInPlace setup.py --replace /lib/systemd $out/lib/systemd
+    substituteInPlace setup.py \
+      --replace /lib/systemd $out/lib/systemd
   '';
 
   postInstall = ''
@@ -40,17 +34,18 @@ buildPythonApplication rec {
     done
   '';
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with python3.pkgs; [
+    configobj
     jinja2
+    jsonpatch
+    jsonschema
+    netifaces
     oauthlib
-    configobj
     pyyaml
     requests
-    jsonschema
-    jsonpatch
   ];
 
-  checkInputs = [
+  checkInputs = with python3.pkgs; [
     pytestCheckHook
     httpretty
     dmidecode
@@ -78,6 +73,16 @@ buildPythonApplication rec {
     "TestInstallChefOmnibus"
     # https://github.com/canonical/cloud-init/pull/893
     "TestGetPackageMirrorInfo"
+    # Disable failing VMware and PuppetAio tests
+    "test_get_data_iso9660_with_network_config"
+    "test_get_data_vmware_guestinfo_with_network_config"
+    "test_get_host_info"
+    "test_no_data_access_method"
+    "test_install_with_collection"
+    "test_install_with_custom_url"
+    "test_install_with_default_arguments"
+    "test_install_with_no_cleanup"
+    "test_install_with_version"
   ];
 
   disabledTestPaths = [
@@ -99,7 +104,9 @@ buildPythonApplication rec {
     export TMPDIR=/tmp
   '';
 
-  pythonImportsCheck = [ "cloudinit" ];
+  pythonImportsCheck = [
+    "cloudinit"
+  ];
 
   meta = with lib; {
     homepage = "https://cloudinit.readthedocs.org";
diff --git a/nixpkgs/pkgs/tools/virtualization/cloudmonkey/default.nix b/nixpkgs/pkgs/tools/virtualization/cloudmonkey/default.nix
index 1945e56b96e7..ca1c4caf03b3 100644
--- a/nixpkgs/pkgs/tools/virtualization/cloudmonkey/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/cloudmonkey/default.nix
@@ -2,17 +2,15 @@
 
 buildGoModule rec {
   pname = "cloudmonkey";
-  version = "6.1.0";
+  version = "6.2.0";
 
   src = fetchFromGitHub {
     owner = "apache";
     repo = "cloudstack-cloudmonkey";
     rev = version;
-    sha256 = "sha256-OmVM6ayrtrLl+PADnkUnrssbsq1GZp2KiMBOXPgfi5Y=";
+    sha256 = "sha256-C9e2KsnoggjWZp8gx757MbFdGxmfh+TtAd+luS3ycHU=";
   };
 
-  runVend = true;
-
   vendorSha256 = null;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/virtualization/distrobuilder/default.nix b/nixpkgs/pkgs/tools/virtualization/distrobuilder/default.nix
index 73f602cbf695..d6be2f942575 100644
--- a/nixpkgs/pkgs/tools/virtualization/distrobuilder/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/distrobuilder/default.nix
@@ -21,15 +21,15 @@ let
 in
 buildGoModule rec {
   pname = "distrobuilder";
-  version = "1.3";
+  version = "2.0";
 
-  vendorSha256 = "sha256-FKnpoLA4enZ1vGSJQFLbp/OjoEgdxagL73ucxUgIoKY=";
+  vendorSha256 = "sha256-hcp+ufJFgFLBE4i2quIwhvrwDTes3saXNHHr9XXBc8E=";
 
   src = fetchFromGitHub {
     owner = "lxc";
     repo = "distrobuilder";
     rev = "distrobuilder-${version}";
-    sha256 = "sha256-cvxbJbg9yTcAPWQccH+1nQivwRh8CIN3Cga2HKY8VlQ=";
+    sha256 = "sha256-Px8mo2dwHNVjMWtzsa/4fLxlcbYkhIc7W8aR9DR85vc=";
     fetchSubmodules = false;
   };
 
diff --git a/nixpkgs/pkgs/tools/virtualization/ec2-utils/default.nix b/nixpkgs/pkgs/tools/virtualization/ec2-utils/default.nix
index 1605bcfa43b6..283219108424 100644
--- a/nixpkgs/pkgs/tools/virtualization/ec2-utils/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/ec2-utils/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, rpmextract, fetchurl, python2, tree }:
 
 stdenv.mkDerivation {
-  name = "ec2-utils";
+  pname = "ec2-utils";
   version = "0.5.1";
 
   # The url can be determined by booting an "Amazon Linux 2" and running:
diff --git a/nixpkgs/pkgs/tools/virtualization/euca2ools/default.nix b/nixpkgs/pkgs/tools/virtualization/euca2ools/default.nix
deleted file mode 100644
index 88e83f42733e..000000000000
--- a/nixpkgs/pkgs/tools/virtualization/euca2ools/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, fetchgit, python2Packages }:
-
-let
-  inherit (python2Packages) buildPythonApplication boto m2crypto;
-in buildPythonApplication {
-  pname = "euca2ools";
-  version = "2.1.4";
-
-  src = fetchgit {
-    url = "https://github.com/eucalyptus/euca2ools.git";
-    rev = "19cb7eac34dd7efe3a56e4841b9692c03458bf3b";
-    sha256 = "0grsgn5gbvk1hlfa8qx7ppz7iyfyi2pdhxy8njr8lm60w4amfiyq";
-  };
-
-  propagatedBuildInputs = [ boto m2crypto ];
-
-  meta = {
-    homepage = "https://github.com/eucalyptus/euca2ools";
-    description = "Tools for interacting with Amazon EC2/S3-compatible cloud computing services";
-    maintainers = [ lib.maintainers.eelco ];
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/virtualization/extra-container/default.nix b/nixpkgs/pkgs/tools/virtualization/extra-container/default.nix
index ad0601a5243a..dad7a3d1be72 100644
--- a/nixpkgs/pkgs/tools/virtualization/extra-container/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/extra-container/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Run declarative containers without full system rebuilds";
-    homepage = https://github.com/erikarvstedt/extra-container;
+    homepage = "https://github.com/erikarvstedt/extra-container";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = [ maintainers.earvstedt ];
diff --git a/nixpkgs/pkgs/tools/virtualization/google-compute-engine/default.nix b/nixpkgs/pkgs/tools/virtualization/google-compute-engine/default.nix
index fef461be7d74..ad187544aea2 100644
--- a/nixpkgs/pkgs/tools/virtualization/google-compute-engine/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/google-compute-engine/default.nix
@@ -3,85 +3,26 @@
 , buildPythonPackage
 , bash
 , bashInteractive
+, systemd
 , util-linux
 , boto
 , setuptools
 , distro
-, stdenv
-, pythonOlder
-, pytestCheckHook
 }:
 
-let
-  guest-configs = stdenv.mkDerivation rec {
-    pname = "guest-configs";
-    version = "20210702.00";
-
-    src = fetchFromGitHub {
-      owner = "GoogleCloudPlatform";
-      repo = "guest-configs";
-      rev = version;
-      sha256 = "1965kdrb1ig3z4qwzvyzx1fb4282ak5vgxcvvg5k9c759pzbc5nn";
-    };
-
-    buildInputs = [ bash ];
-
-    dontConfigure = true;
-    dontBuild = true;
-
-    installPhase = ''
-      runHook preInstall
-
-      # allows to install the package in `services.udev.packages` in NixOS
-      mkdir -p $out/lib/udev $out/bin
-
-      cp -r "src/lib/udev/rules.d" $out/lib/udev
-      cp "src/lib/udev/google_nvme_id" $out/bin
-
-      for rules in $out/lib/udev/*.rules; do
-        substituteInPlace "$rules" \
-          --replace /bin/sh "${bash}/bin/sh" \
-          --replace /bin/umount "${util-linux}/bin/umount" \
-          --replace /usr/bin/logger "${util-linux}/bin/logger"
-      done
-
-      # sysctl snippets will be used by google-compute-config.nix
-      cp -r "src/etc/sysctl.d" $out
-
-      patchShebangs $out/bin/*
-
-      runHook postInstall
-    '';
-  };
-in
 buildPythonPackage rec {
   pname = "google-compute-engine";
-  version = "20200113.0";
+  version = "20190124";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
     repo = "compute-image-packages";
-    rev = "506b9a0dbffec5620887660cd42c57b3cbbadba6";
-    sha256 = "0lmc426mvrajghpavhs6hwl19mgnnh08ziqx5yi15fzpnvwmb8vz";
+    rev = version;
+    sha256 = "08cy0jd463kng6hwbd3nfldsp4dpd2lknlvdm88cq795wy0kh4wp";
   };
 
-  buildInputs = [ bash guest-configs ];
-  propagatedBuildInputs = [ (if pythonOlder "3.7" then boto else distro) setuptools ];
-
-  preBuild = ''
-    cd packages/python-google-compute-engine
-  '';
-
-  disabledTests = [
-    "testExtractInterfaceMetadata"
-    "testCallDhclientIpv6"
-    "testWriteConfig"
-    "testCreateInterfaceMapNetifaces"
-    "testCreateInterfaceMapSysfs"
-    "testGetNetworkInterface"
-  ];
-
-  checkInputs = [ pytestCheckHook ];
+  buildInputs = [ bash ];
+  propagatedBuildInputs = [ boto setuptools distro ];
 
   postPatch = ''
     for file in $(find google_compute_engine -type f); do
@@ -91,15 +32,33 @@ buildPythonPackage rec {
         --replace /sbin/hwclock "${util-linux}/bin/hwclock"
       # SELinux tool ???  /sbin/restorecon
     done
+
+    substituteInPlace google_config/udev/64-gce-disk-removal.rules \
+      --replace /bin/sh "${bash}/bin/sh" \
+      --replace /bin/umount "${util-linux}/bin/umount" \
+      --replace /usr/bin/logger "${util-linux}/bin/logger"
+  '';
+
+  postInstall = ''
+    # allows to install the package in `services.udev.packages` in NixOS
+    mkdir -p $out/lib/udev/rules.d
+    cp -r google_config/udev/*.rules $out/lib/udev/rules.d
+
+    # sysctl snippets will be used by google-compute-config.nix
+    mkdir -p $out/sysctl.d
+    cp google_config/sysctl/*.conf $out/sysctl.d
+
+    patchShebangs $out/bin/*
   '';
 
+  doCheck = false;
   pythonImportsCheck = [ "google_compute_engine" ];
 
   meta = with lib; {
     description = "Google Compute Engine tools and services";
     homepage = "https://github.com/GoogleCloudPlatform/compute-image-packages";
     license = licenses.asl20;
-    maintainers = with maintainers; [ cpcloud zimbatm ];
+    maintainers = with maintainers; [ zimbatm ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/virtualization/linode-cli/default.nix b/nixpkgs/pkgs/tools/virtualization/linode-cli/default.nix
index eef08eec0a1f..570492295542 100644
--- a/nixpkgs/pkgs/tools/virtualization/linode-cli/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/linode-cli/default.nix
@@ -11,10 +11,10 @@
 }:
 
 let
-  sha256 = "08j7j9fpxh08vkczjqahb8r55bwks8p3ykrv6a2kfi309629nm96";
+  sha256 = "10mlkkprky7qqjrkv43v1lzmlgdjpkzy3729k9xxdm5mpq5bjdwj";
   # specVersion taken from: https://www.linode.com/docs/api/openapi.yaml at `info.version`.
-  specVersion = "4.104.0";
-  specSha256 = "0lbky0djqsndp33067q6yir5525m3zcgkpvf1z16mkspkixzadqs";
+  specVersion = "4.112.0";
+  specSha256 = "1z509qf5iidn6q5x3p7m8aifxn4bmwifx36wv8ii3nn7l4s9aymr";
   spec = fetchurl {
     url = "https://raw.githubusercontent.com/linode/linode-api-docs/v${specVersion}/openapi.yaml";
     sha256 = specSha256;
@@ -24,7 +24,7 @@ in
 
 buildPythonApplication rec {
   pname = "linode-cli";
-  version = "5.9.0";
+  version = "5.14.0";
 
   src = fetchFromGitHub {
     owner = "linode";
@@ -68,6 +68,6 @@ buildPythonApplication rec {
     description = "The Linode Command Line Interface";
     homepage = "https://github.com/linode/linode-cli";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ryantm superherointj ];
+    maintainers = with maintainers; [ ryantm ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/virtualization/lxd-image-server/default.nix b/nixpkgs/pkgs/tools/virtualization/lxd-image-server/default.nix
new file mode 100644
index 000000000000..3992f425a3cd
--- /dev/null
+++ b/nixpkgs/pkgs/tools/virtualization/lxd-image-server/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, openssl
+, rsync
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "lxd-image-server";
+  version = "0.0.4";
+
+  src = fetchFromGitHub {
+    owner = "Avature";
+    repo = "lxd-image-server";
+    rev = version;
+    sha256 = "yx8aUmMfSzyWaM6M7+WcL6ouuWwOpqLzODWSdNgwCwo=";
+  };
+
+  patches = [
+    ./state.patch
+    ./run.patch
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    setuptools
+    attrs
+    click
+    inotify
+    cryptography
+    confight
+    python-pidfile
+  ];
+
+  makeWrapperArgs = [
+    ''--prefix PATH ':' "${lib.makeBinPath [ openssl rsync ]}"''
+  ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Creates and manages a simplestreams lxd image server on top of nginx";
+    homepage = "https://github.com/Avature/lxd-image-server";
+    license = licenses.apsl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ mkg20001 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/virtualization/lxd-image-server/run.patch b/nixpkgs/pkgs/tools/virtualization/lxd-image-server/run.patch
new file mode 100644
index 000000000000..bd1172c1f864
--- /dev/null
+++ b/nixpkgs/pkgs/tools/virtualization/lxd-image-server/run.patch
@@ -0,0 +1,25 @@
+From df2ce9fb48a3790407646a388e0d220a75496c52 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
+Date: Wed, 3 Nov 2021 14:23:38 +0100
+Subject: [PATCH] /var/run -> /run
+
+---
+ lxd_image_server/tools/config.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lxd_image_server/tools/config.py b/lxd_image_server/tools/config.py
+index 60e8973..23d392a 100644
+--- a/lxd_image_server/tools/config.py
++++ b/lxd_image_server/tools/config.py
+@@ -9,7 +9,7 @@ import confight
+ class Config():
+ 
+     _lock = Lock()
+-    pidfile = Path('/var/run/lxd-image-server/pidfile')
++    pidfile = Path('/run/lxd-image-server/pidfile')
+     data = {}
+ 
+     @classmethod
+-- 
+2.33.0
+
diff --git a/nixpkgs/pkgs/tools/virtualization/lxd-image-server/state.patch b/nixpkgs/pkgs/tools/virtualization/lxd-image-server/state.patch
new file mode 100644
index 000000000000..c6677ea48e9c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/virtualization/lxd-image-server/state.patch
@@ -0,0 +1,49 @@
+From 17a1e09eaf8957174425d05200be9ee3e77229f9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
+Date: Thu, 21 Oct 2021 00:39:08 +0200
+Subject: [PATCH] Remove system-state changing code
+
+This is already done by the module on nixOS
+---
+ lxd_image_server/cli.py | 15 +--------------
+ 1 file changed, 1 insertion(+), 14 deletions(-)
+
+diff --git a/lxd_image_server/cli.py b/lxd_image_server/cli.py
+index d276e6d..f759bf2 100644
+--- a/lxd_image_server/cli.py
++++ b/lxd_image_server/cli.py
+@@ -140,30 +140,17 @@ def reload_config():
+ @cli.command()
+ @click.option('--root_dir', default='/var/www/simplestreams',
+               show_default=True)
+-@click.option('--ssl_dir', default='/etc/nginx/ssl', show_default=True,
+-              callback=lambda ctx, param, val: Path(val))
+ @click.pass_context
+-def init(ctx, root_dir, ssl_dir):
++def init(ctx, root_dir):
+     if not Path(root_dir).exists():
+         logger.error('Root directory does not exists')
+     else:
+-        if not ssl_dir.exists():
+-            os.makedirs(str(ssl_dir))
+-
+-        if not (ssl_dir / 'nginx.key').exists():
+-            generate_cert(str(ssl_dir))
+-
+         img_dir = str(Path(root_dir, 'images'))
+         streams_dir = str(Path(root_dir, 'streams/v1'))
+         if not Path(img_dir).exists():
+             os.makedirs(img_dir)
+         if not Path(streams_dir).exists():
+             os.makedirs(streams_dir)
+-        conf_path = Path('/etc/nginx/sites-enabled/simplestreams.conf')
+-        if not conf_path.exists():
+-            conf_path.symlink_to(
+-                '/etc/nginx/sites-available/simplestreams.conf')
+-            os.system('nginx -s reload')
+ 
+         if not Path(root_dir, 'streams', 'v1', 'images.json').exists():
+             ctx.invoke(update, img_dir=Path(root_dir, 'images'),
+-- 
+2.33.0
+
diff --git a/nixpkgs/pkgs/tools/virtualization/nixos-shell/default.nix b/nixpkgs/pkgs/tools/virtualization/nixos-shell/default.nix
index 9f34fb99c754..4e54a8db6bf4 100644
--- a/nixpkgs/pkgs/tools/virtualization/nixos-shell/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/nixos-shell/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nixos-shell";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nixos-shell";
     rev = version;
-    sha256 = "sha256-HoY2diusDHXwR0BjYwKR3svLz5LrviE03yxyjWG9oPQ=";
+    sha256 = "sha256-a3NJJv7MscAXhIdr07gEAQDYX0Qgb6ax5E8zSdCIgE8=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/wayland/cliphist/default.nix b/nixpkgs/pkgs/tools/wayland/cliphist/default.nix
index 44a870db387c..9ccad4397dd9 100644
--- a/nixpkgs/pkgs/tools/wayland/cliphist/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/cliphist/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cliphist";
-  version = "0.1.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "sentriz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-CZW7dhOd7E74VNjnvhxvSSUZQtbkGi4uRUM9YQCuJZw=";
+    sha256 = "sha256-fx33m7DCp5N9VGI/H/IO66ECdFLobRRAAuRGNu4gzSk=";
   };
 
   vendorSha256 = "sha256-UrKSDvskGwHjwkb/fjvaJZ8xXFD98BFeSJxwJpc8A+M=";
diff --git a/nixpkgs/pkgs/tools/wayland/clipman/default.nix b/nixpkgs/pkgs/tools/wayland/clipman/default.nix
index d5ed6ae88ffe..3c974f4cb779 100644
--- a/nixpkgs/pkgs/tools/wayland/clipman/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/clipman/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "clipman";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "yory8";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Yq71nYNL3bFvwhVzrQ1g8n7/4tMmLuYUJ9pMBmxL8e8=";
+    sha256 = "sha256-aZvtgeaS3xxl5/A/Pwlbu0sI7bw2MONbEIK42IDcMy0=";
   };
 
   vendorSha256 = "sha256-Z/sVCJz/igPDdeczC6pemLub6X6z4ZGlBwBmRsEnXKI=";
diff --git a/nixpkgs/pkgs/tools/wayland/swaycwd/default.nix b/nixpkgs/pkgs/tools/wayland/swaycwd/default.nix
index d8fec3fd15c6..9214f38b3303 100644
--- a/nixpkgs/pkgs/tools/wayland/swaycwd/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/swaycwd/default.nix
@@ -4,13 +4,12 @@
 , enableShells ? [ "bash" "zsh" "fish" "sh" "posh" ]
 }:
 nimPackages.buildNimPackage rec{
-
-  name = "swaycwd";
+  pname = "swaycwd";
   version = "0.0.2";
 
   src = fetchFromGitLab {
     owner = "cab404";
-    repo = name;
+    repo = pname;
     rev = "v${version}";
     hash = "sha256-OZWOPtOqcX+fVQCxWntrn98EzFu70WH55rfYCPDMSKk=";
   };
diff --git a/nixpkgs/pkgs/tools/wayland/swayr/default.nix b/nixpkgs/pkgs/tools/wayland/swayr/default.nix
index 195c0b1bf385..9ccc13532c2a 100644
--- a/nixpkgs/pkgs/tools/wayland/swayr/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/swayr/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "swayr";
-  version = "0.7.0";
+  version = "0.11.2";
 
   src = fetchFromSourcehut {
     owner = "~tsdh";
     repo = "swayr";
     rev = "v${version}";
-    sha256 = "sha256-B19cHdoiCbxhvRGi3NzKPKneKgOI4+l8+Qg9/YVgUV8=";
+    sha256 = "sha256-IjOoQbKCiwuoCsh2bOmvcSH3/9KMmavmn1Ib1TLBH8w=";
   };
 
-  cargoSha256 = "sha256-iO64K+d/wEyY/tVztIG8zYSha5X0iTHV7IDVthMJQGA=";
+  cargoSha256 = "sha256-EYaISBnWKplKUAKa9SZufWcykeR/qeApvqwIGB9jt3Q=";
 
   patches = [
     ./icon-paths.patch
diff --git a/nixpkgs/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix b/nixpkgs/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
index 8673200172e4..4008461cc15f 100644
--- a/nixpkgs/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
@@ -1,17 +1,18 @@
 { lib
 , fetchFromGitHub
 , ocamlPackages
+, buildPackages
 }:
 
 ocamlPackages.buildDunePackage rec {
   pname = "wayland-proxy-virtwl";
-  version = "unstable-2021-04-15";
+  version = "unstable-2021-12-05";
 
   src = fetchFromGitHub {
     owner = "talex5";
     repo = pname;
-    rev = "09321a28f3d4c0fa7e41ebb3014106b62090b649";
-    sha256 = "03rc2jp5d2y9y7mfis6kk9gchd49gvq0jg6fq5gi9r21ckb4k5v4";
+    rev = "d7f58d405514dd031f2f12e402c8c6a58e62a885";
+    sha256 = "0riwaqdlrx2gzkrb02v4zdl4ivpmz9g5w87lj3bhqs0l3s6c249s";
   };
 
   postPatch = ''
@@ -22,12 +23,19 @@ ocamlPackages.buildDunePackage rec {
   useDune2 = true;
   minimumOCamlVersion = "4.08";
 
+  nativeBuildInputs = [
+    buildPackages.ocamlPackages.ppx_cstruct
+  ];
+
   buildInputs = with ocamlPackages; [
     wayland
     cmdliner
     logs
+    cstruct-lwt
   ];
 
+  doCheck = true;
+
   meta = {
     homepage = "https://github.com/talex5/wayland-virtwl-proxy";
     description = "Proxy Wayland connections across a VM boundary";
diff --git a/nixpkgs/pkgs/tools/wayland/wl-clipboard-x11/default.nix b/nixpkgs/pkgs/tools/wayland/wl-clipboard-x11/default.nix
new file mode 100644
index 000000000000..5e87342dff89
--- /dev/null
+++ b/nixpkgs/pkgs/tools/wayland/wl-clipboard-x11/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, wl-clipboard }:
+
+stdenv.mkDerivation rec {
+  pname = "wl-clipboard-x11";
+  version = "5";
+
+  src = fetchFromGitHub {
+    owner = "brunelli";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-i+oF1Mu72O5WPTWzqsvo4l2CERWWp4Jq/U0DffPZ8vg=";
+  };
+
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  postPatch = ''
+    substituteInPlace src/wl-clipboard-x11 \
+      --replace '$(command -v wl-copy)' ${wl-clipboard}/bin/wl-copy \
+      --replace '$(command -v wl-paste)' ${wl-clipboard}/bin/wl-paste
+  '';
+
+  meta = with lib; {
+    description = "A wrapper to use wl-clipboard as a drop-in replacement for X11 clipboard tools";
+    homepage = "https://github.com/brunelli/wl-clipboard-x11";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ samuelgrf ];
+    mainProgram = "xclip";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/wayland/wl-mirror/default.nix b/nixpkgs/pkgs/tools/wayland/wl-mirror/default.nix
new file mode 100644
index 000000000000..4476c5be93c7
--- /dev/null
+++ b/nixpkgs/pkgs/tools/wayland/wl-mirror/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, wayland
+, wayland-protocols
+, wayland-scanner
+, wlr-protocols
+, libGL
+, installExampleScripts ? true
+, makeWrapper
+, pipectl
+, slurp
+, rofi
+}:
+
+let
+  wl-present-binpath = lib.makeBinPath [
+    pipectl
+    rofi
+    slurp
+    (placeholder "out")
+  ];
+in
+
+stdenv.mkDerivation rec {
+  pname = "wl-mirror";
+  version = "0.8.1";
+
+  src = fetchFromGitHub {
+    owner = "Ferdi265";
+    repo = "wl-mirror";
+    rev = "v${version}";
+    hash = "sha256-P5rvZPpIStlOSGj3PaiXAMPWqgWpkC+4IrixEMwoGJU=";
+  };
+
+  patchPhase = ''
+    substituteInPlace CMakeLists.txt \
+      --replace 'WL_PROTOCOL_DIR "/usr' 'WL_PROTOCOL_DIR "${wayland-protocols}' \
+      --replace 'WLR_PROTOCOL_DIR "/usr' 'WLR_PROTOCOL_DIR "${wlr-protocols}'
+  '';
+
+  cmakeFlags = [
+    "-DINSTALL_EXAMPLE_SCRIPTS=${if installExampleScripts then "ON" else "OFF"}"
+  ];
+
+  postInstall = lib.optionalString installExampleScripts ''
+    wrapProgram $out/bin/wl-present --prefix PATH ":" ${wl-present-binpath}
+  '';
+
+  nativeBuildInputs = [ cmake pkg-config wayland-scanner makeWrapper ];
+  buildInputs = [ libGL wayland wayland-protocols wlr-protocols ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Ferdi265/wl-mirror";
+    description = "Mirrors an output onto a Wayland surface.";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ synthetica twitchyliquid64 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/wayland/wlogout/default.nix b/nixpkgs/pkgs/tools/wayland/wlogout/default.nix
index 2625405808cc..d9d442126010 100644
--- a/nixpkgs/pkgs/tools/wayland/wlogout/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/wlogout/default.nix
@@ -9,6 +9,7 @@
 , libxkbcommon
 , wayland
 , wayland-protocols
+, gtk-layer-shell
 }:
 
 stdenv.mkDerivation rec {
@@ -28,6 +29,7 @@ stdenv.mkDerivation rec {
     libxkbcommon
     wayland
     wayland-protocols
+    gtk-layer-shell
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/wayland/wluma/default.nix b/nixpkgs/pkgs/tools/wayland/wluma/default.nix
new file mode 100644
index 000000000000..2921e3858b41
--- /dev/null
+++ b/nixpkgs/pkgs/tools/wayland/wluma/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, fetchFromGitHub
+, makeWrapper
+, rustPlatform
+, vulkan-loader
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "wluma";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "maximbaz";
+    repo = "wluma";
+    rev = version;
+    sha256 = "sha256-fqBEJS+SQoPNNEw6jyoiZjq/chY73bQ+cM21F8RdNPE=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/wluma \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ vulkan-loader ]}"
+  '';
+
+  cargoSha256 = "sha256-dZBA6VeJRHmqpazRwjLP1kYcYYN5LCFWkIaXqp4/RkQ=";
+
+  meta = with lib; {
+    description = "Automatic brightness adjustment based on screen contents and ALS";
+    homepage = "https://github.com/maximbaz/wluma";
+    license = licenses.isc;
+    maintainers = with maintainers; [ yevhenshymotiuk ];
+    platforms = platforms.linux;
+  };
+}