about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/networking
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/networking')
-rw-r--r--nixpkgs/pkgs/applications/networking/3proxy/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/Sylk/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/aether/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/alpnpass/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/bee/bee.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/blocky/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/breitbandmessung/default.nix111
-rw-r--r--nixpkgs/pkgs/applications/networking/brig/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/brave/default.nix131
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix264
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/castor/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix4
-rwxr-xr-xnixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py6
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/ungoogled-flags.toml1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json60
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix786
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix786
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix786
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix141
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/librewolf/src.json11
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix75
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix138
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/ladybird/default.nix94
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/librewolf/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/librewolf/librewolf.nix (renamed from nixpkgs/pkgs/applications/networking/browsers/firefox/librewolf/default.nix)2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/librewolf/src.json11
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/librewolf/src.nix (renamed from nixpkgs/pkgs/applications/networking/browsers/firefox/librewolf/src.nix)0
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/librewolf/update.nix (renamed from nixpkgs/pkgs/applications/networking/browsers/firefox/librewolf/update.nix)2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/links2/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/browser.nix193
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/default.nix20
-rwxr-xr-xnixpkgs/pkgs/applications/networking/browsers/microsoft-edge/update.sh50
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsutils.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/netsurf/libutf8proc.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/offpunk/default.nix67
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/opera/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/palemoon/mozconfig5
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/surf/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/telescope/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix7
-rwxr-xr-xnixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix17
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/yandex-browser/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/c14/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/calls/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/charles/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cisco-packet-tracer/7.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cisco-packet-tracer/8.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cloudflare-dyndns/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/networking/cloudflared/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/argo-rollouts/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/argo/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/argocd-autopilot/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/arkade/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/assign-lb-ip/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/cilium/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/civo/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/clusterctl/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/cmctl/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/crc/default.nix74
-rwxr-xr-xnixpkgs/pkgs/applications/networking/cluster/crc/update.sh53
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/fetchit/default.nix82
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/flink/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix15
-rwxr-xr-xnixpkgs/pkgs/applications/networking/cluster/fluxcd/update.sh69
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/gatekeeper/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/glooctl/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm-docs/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/chart-testing/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-cm-push.nix44
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-git.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/hubble/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/jx/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k0sctl/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0002-Don-t-build-a-static-binary-in-package-cli.patch37
-rwxr-xr-xnixpkgs/pkgs/applications/networking/cluster/k3s/update.sh13
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3sup/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kn/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kops/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/krane/Gemfile.lock68
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/krane/gemset.nix175
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/krelay/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ktunnel/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-tree/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubedb-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeone/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubergrunt/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubernetes/kubectl.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kuma/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kyverno/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/lens/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/levant/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/linkerd/edge.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nixops/poetry.lock431
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nixops/pyproject.toml10
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad-pack/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad/1.1.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad/1.2.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad/1.3.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad/generic.nix17
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ocm/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/octant/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/octant/desktop.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/odo/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix89
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/pluto/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/rancher/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/roxctl/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/spacegun/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/spacegun/generate-dependencies.sh2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/spark/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/talosctl/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/temporal-cli/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/temporal/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json983
-rwxr-xr-xnixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch16
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tfswitch/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tgswitch/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/vcluster/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/velero/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/werf/default.nix64
-rw-r--r--nixpkgs/pkgs/applications/networking/compactor/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/davmail/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/networking/dnscontrol/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/errbot/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/networking/expressvpn/default.nix98
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/photon/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/firewalld/default.nix104
-rw-r--r--nixpkgs/pkgs/applications/networking/firewalld/respect-xml-catalog-files-var.patch13
-rw-r--r--nixpkgs/pkgs/applications/networking/flexget/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/ftp/gftp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/gmailctl/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/gui.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/server.nix58
-rw-r--r--nixpkgs/pkgs/applications/networking/go-graft/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/networking/gopher/geomyidae/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/hpmyroom/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/hydroxide/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/ids/zeek/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/ike/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/armcord/default.nix129
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix47
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/cinny-desktop/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/cinny/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json27
-rwxr-xr-xnixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/discord/darwin.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix110
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/discord/linux.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/discord/openasar.nix50
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json16
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web-package.json206
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix65
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.json9
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/default.nix9
-rwxr-xr-xnixpkgs/pkgs/applications/networking/instant-messengers/element/update.sh27
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/feishu/default.nix186
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/fractal-next/default.nix76
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gotktrix/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix64
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-qt.nix43
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common13
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches3
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_common19
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_linux1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jami/daemon.nix94
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix73
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jami/libclient-include-path.patch13
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jami/libclient.nix48
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix6
-rwxr-xr-xnixpkgs/pkgs/applications/networking/instant-messengers/jami/update.sh27
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix108
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch87
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/linphone/no-store-path-in-autostart.patch27
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch12
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/neochat/default.nix73
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-signald/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tdlib-purple/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix47
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/rambox/rambox.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix67
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/pin.json14
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/apple-sdk-missing-utimensat.patch34
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch25
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch33
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client5.nix109
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kf594.patch57
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kotato-10.12-sdk.patch53
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt-10.12-sdk.patch21
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/trillian-im/default.nix78
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/vk-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/webex/default.nix175
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/xmppc/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-sha.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-version.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix85
-rwxr-xr-xnixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh30
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-sha.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-version.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-sha.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-version.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch21
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/insync/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/insync/v3.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/networking/ipfs/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/ipget/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/iptraf/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/bip/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/communi/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/convos/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/irssi/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/irssi/fish/irssi-include-dir.patch33
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/konversation/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/senpai/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/srain/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-grep/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch2
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/wraith/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/jmeter/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/jnetmap/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/juju/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/maestral-qt/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch142
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/alot/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mmh/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/91_sources.nix655
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix532
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/packages.nix54
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/misc/zammad/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/misc/zammad/gemset.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/misc/zammad/package.json2
-rw-r--r--nixpkgs/pkgs/applications/networking/misc/zammad/source.json5
-rw-r--r--nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/mpop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/msmtp/default.nix156
-rw-r--r--nixpkgs/pkgs/applications/networking/msmtp/paths.patch85
-rw-r--r--nixpkgs/pkgs/applications/networking/mujmap/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/mullvad/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/mullvad/libwg.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/mullvad/mullvad.nix84
-rw-r--r--nixpkgs/pkgs/applications/networking/mullvad/openvpn.nix87
-rw-r--r--nixpkgs/pkgs/applications/networking/mumble/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/n8n/default.nix15
-rwxr-xr-xnixpkgs/pkgs/applications/networking/n8n/generate-dependencies.sh2
-rw-r--r--nixpkgs/pkgs/applications/networking/n8n/node-composition.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/n8n/node-env.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/n8n/node-packages.nix4587
-rw-r--r--nixpkgs/pkgs/applications/networking/nali/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/ncgopher/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/netperf/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/newsreaders/raven-reader/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/nextdns/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/offrss/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/omping/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/onionshare/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/opsdroid/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/ostinato/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/owamp/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/owncloud-client/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix138
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/jesec-rtorrent/libtorrent.nix48
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/lokinet/default.nix64
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix72
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/rakshasa-rtorrent/libtorrent.nix48
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/rqbit/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/twister/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/pcloud/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/ping/default.nix76
-rw-r--r--nixpkgs/pkgs/applications/networking/pjsip/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/powerdns-admin/package.json3
-rw-r--r--nixpkgs/pkgs/applications/networking/powerdns-admin/yarndeps.nix122
-rw-r--r--nixpkgs/pkgs/applications/networking/protocol/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/protonvpn-cli/2.nix51
-rw-r--r--nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/r53-ddns/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix79
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/nice-dcv-client/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/remmina/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/rustdesk/cargo.patch28
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/rustdesk/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/resilio-sync/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/networking/scaleft/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/seafile-client/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/seahub/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/seaweedfs/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/siproxd/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/sniproxy/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/soapui/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/soju/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/networking/spideroak/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/station/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/backintime/common.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rclone/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rsync/base.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rsync/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/unison/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/wdt/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/networking/syncplay/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch22
-rw-r--r--nixpkgs/pkgs/applications/networking/syncthing/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/synology-drive-client/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/taler/default.nix149
-rw-r--r--nixpkgs/pkgs/applications/networking/taler/exchange-fix-6665.patch48
-rw-r--r--nixpkgs/pkgs/applications/networking/tcping-go/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/termius/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/tetrd/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/tmpmail/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/twtxt/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/utahfs/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/warp/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/networking/wgcf/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/zerobin/default.nix2
546 files changed, 13916 insertions, 8744 deletions
diff --git a/nixpkgs/pkgs/applications/networking/3proxy/default.nix b/nixpkgs/pkgs/applications/networking/3proxy/default.nix
index b83f93b3b68c..ab5ae744d271 100644
--- a/nixpkgs/pkgs/applications/networking/3proxy/default.nix
+++ b/nixpkgs/pkgs/applications/networking/3proxy/default.nix
@@ -1,29 +1,42 @@
-{ lib, stdenv, fetchFromGitHub, coreutils, nixosTests }:
+{ lib, stdenv, fetchFromGitHub, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "3proxy";
   version = "0.9.4";
 
   src = fetchFromGitHub {
-    owner = "z3APA3A";
+    owner = "3proxy";
     repo = pname;
     rev = version;
     sha256 = "sha256-4bLlQ/ULvpjs6fr19yBBln5mRRc+yj+zVLiTs1e/Ypc=";
   };
 
+  # They use 'install -s', that calls the native strip instead of the cross.
+  # Don't strip binary on install, we strip it on fixup phase anyway.
+  postPatch = ''
+    substituteInPlace Makefile.Linux \
+      --replace "(INSTALL_BIN) -s" "(INSTALL_BIN)" \
+      --replace "/usr" ""
+  '';
+
   makeFlags = [
     "-f Makefile.Linux"
-    "INSTALL=${coreutils}/bin/install"
+    "INSTALL=install"
     "DESTDIR=${placeholder "out"}"
+    "CC:=$(CC)"
   ];
 
+  postInstall = ''
+    rm -fr $out/var
+  '';
+
   passthru.tests = {
     smoke-test = nixosTests._3proxy;
   };
 
   meta = with lib; {
     description = "Tiny free proxy server";
-    homepage = "https://github.com/z3APA3A/3proxy";
+    homepage = "https://github.com/3proxy/3proxy";
     license = licenses.bsd2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ misuzu ];
diff --git a/nixpkgs/pkgs/applications/networking/Sylk/default.nix b/nixpkgs/pkgs/applications/networking/Sylk/default.nix
index c514ec22f110..18e36cb70280 100644
--- a/nixpkgs/pkgs/applications/networking/Sylk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/Sylk/default.nix
@@ -1,4 +1,4 @@
-{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3 }:
+{ appimageTools, fetchurl, lib }:
 
 let
   pname = "Sylk";
@@ -15,7 +15,6 @@ appimageTools.wrapType2 rec {
 
   profile = ''
     export LC_ALL=C.UTF-8
-    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
   '';
 
   multiPkgs = null; # no 32bit needed
diff --git a/nixpkgs/pkgs/applications/networking/aether/default.nix b/nixpkgs/pkgs/applications/networking/aether/default.nix
index 5f78b244ca41..62dbae082d9a 100644
--- a/nixpkgs/pkgs/applications/networking/aether/default.nix
+++ b/nixpkgs/pkgs/applications/networking/aether/default.nix
@@ -103,6 +103,7 @@ stdenv.mkDerivation rec {
     description = "Peer-to-peer ephemeral public communities";
     homepage = "https://getaether.net/";
     downloadPage = "https://getaether.net/download/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ maxhille ];
     # other platforms could be supported by building from source
diff --git a/nixpkgs/pkgs/applications/networking/alpnpass/default.nix b/nixpkgs/pkgs/applications/networking/alpnpass/default.nix
new file mode 100644
index 000000000000..5cc0ac1cf05c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/alpnpass/default.nix
@@ -0,0 +1,34 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+}:
+
+buildGoModule rec {
+  pname = "alpnpass";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "VerSprite";
+    repo = "alpnpass";
+    rev = version;
+    hash = "sha256-hNZqGTV17rFSKLhZzNqH2E4SSb6Jhk7YQ4TN0HnE+9g=";
+  };
+
+  vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
+
+  meta = with lib; {
+    description = "Inspect the plaintext payload inside of proxied TLS connections";
+    longDescription = ''
+      This tool will listen on a given port, strip SSL encryption,
+      forward traffic through a plain TCP proxy,
+      then encrypt the returning traffic again
+      and send it to the target of your choice.
+
+      Unlike most SSL stripping solutions this tool will negotiate ALPN and
+      preserve the negotiated protocol all the way to the target.
+    '';
+    homepage = "https://github.com/VerSprite/alpnpass";
+    license = licenses.unlicense;
+    maintainers = [ maintainers.raboof ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix b/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix
index 8b20c1aac6b0..4a9c0da726fa 100644
--- a/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix
+++ b/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix
@@ -45,6 +45,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Eclipse-based LDAP browser and directory client";
     homepage = "https://directory.apache.org/studio/";
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.asl20;
     # Upstream supports macOS and Windows too.
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix b/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix
index 987f6e0c1ca2..7dd69aeebcdc 100644
--- a/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix
@@ -87,11 +87,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "appgate-sdp";
-  version = "5.5.3";
+  version = "6.0.1";
 
   src = fetchurl {
     url = "https://bin.appgate-sdp.com/${versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb";
-    sha256 = "sha256-qSo4JX/Jj+JkeetZIMw88MK7SzOgT8aNbQby2kJ91oo=";
+    sha256 = "sha256-dVVOUdGJDmStS1ZXqPOFpeWhLgimv4lHBS/OOEDrtM0=";
   };
 
   # just patch interpreter
@@ -151,6 +151,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Appgate SDP (Software Defined Perimeter) desktop client";
     homepage = "https://www.appgate.com/support/software-defined-perimeter-support";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ymatsiuk ];
diff --git a/nixpkgs/pkgs/applications/networking/bee/bee.nix b/nixpkgs/pkgs/applications/networking/bee/bee.nix
index d2f1740a573d..fd6177c4647d 100644
--- a/nixpkgs/pkgs/applications/networking/bee/bee.nix
+++ b/nixpkgs/pkgs/applications/networking/bee/bee.nix
@@ -1,4 +1,4 @@
-{ version ? "release", lib, fetchFromGitHub, buildGoModule, coreutils }:
+{ version ? "release", lib, fetchFromGitHub, buildGoModule }:
 
 let
 
@@ -39,8 +39,6 @@ buildGoModule {
     inherit (versionSpec) rev sha256;
   };
 
-  nativeBuildInputs = [ coreutils ];
-
   subPackages = [ "cmd/bee" ];
 
   # no symbol table, no debug info, and pass the commit for the version string
diff --git a/nixpkgs/pkgs/applications/networking/blocky/default.nix b/nixpkgs/pkgs/applications/networking/blocky/default.nix
index 2f2a708455e1..0f25fd0a8ec9 100644
--- a/nixpkgs/pkgs/applications/networking/blocky/default.nix
+++ b/nixpkgs/pkgs/applications/networking/blocky/default.nix
@@ -6,20 +6,20 @@
 
 buildGoModule rec {
   pname = "blocky";
-  version = "0.18";
+  version = "0.19";
 
   src = fetchFromGitHub {
     owner = "0xERR0R";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rFHDoNrEmMSNEc3RLdSeRk9mF05drUYfJFQKHAk5alE=";
+    sha256 = "sha256-jOOakRuiNbdCGmbaQFuHcLsHhV26jaQY+1GgDj9ocs0=";
   };
 
   # needs network connection and fails at
   # https://github.com/0xERR0R/blocky/blob/development/resolver/upstream_resolver_test.go
   doCheck = false;
 
-  vendorSha256 = "sha256-rrqDjh5e3KX5+saYjnMPG0bhr5YEOPfz0QCRf6omNZI=";
+  vendorSha256 = "sha256-fsMBL9qyhIrV6eAsqpSaNniibMdYRVBnl2KCzStvMGQ=";
 
   meta = with lib; {
     description = "Fast and lightweight DNS proxy as ad-blocker for local network with many features.";
diff --git a/nixpkgs/pkgs/applications/networking/breitbandmessung/default.nix b/nixpkgs/pkgs/applications/networking/breitbandmessung/default.nix
index 31f33be38670..6fab38f97360 100644
--- a/nixpkgs/pkgs/applications/networking/breitbandmessung/default.nix
+++ b/nixpkgs/pkgs/applications/networking/breitbandmessung/default.nix
@@ -1,32 +1,12 @@
 { lib
 , stdenv
-, alsa-lib
-, at-spi2-atk
-, at-spi2-core
-, atk
-, autoPatchelfHook
-, cairo
-, cups
-, dbus
-, dpkg
-, expat
 , fetchurl
-, gdk-pixbuf
-, glib
-, gtk3
-, libdrm
-, libxkbcommon
+, dpkg
+, electron_16
 , makeWrapper
-, mesa
 , nixosTests
-, nspr
-, nss
-, pango
-, pciutils
-, systemd
+, nodePackages
 , undmg
-, writeShellScriptBin
-, xorg
 }:
 
 let
@@ -34,19 +14,6 @@ let
 
   version = "3.1.0";
 
-  # At first start, the program checks for supported operating systems by calling `lsb_release -a`
-  # and only runs when it finds Debian/Ubuntu. So we present us as Debian an make it happy.
-  fake-lsb-release = writeShellScriptBin "lsb_release" ''
-    echo "Distributor ID: Debian"
-    echo "Description:    Debian GNU/Linux 10 (buster)"
-    echo "Release:        10"
-    echo "Codename:       buster"
-  '';
-
-  binPath = lib.makeBinPath [
-    fake-lsb-release
-  ];
-
   systemArgs = rec {
     x86_64-linux = rec {
       src = fetchurl {
@@ -54,68 +21,41 @@ let
         sha256 = "sha256-jSP+H9ej9Wd+swBZSy9uMi2ExSTZ191FGZhqaocTl7w=";
       };
 
-      dontUnpack = true;
-
       nativeBuildInputs = [
-        autoPatchelfHook
         dpkg
         makeWrapper
+        nodePackages.asar
       ];
 
-      buildInputs = runtimeDependencies;
-
-      runtimeDependencies = [
-        alsa-lib
-        at-spi2-atk
-        at-spi2-core
-        atk
-        cairo
-        cups
-        dbus
-        expat
-        gdk-pixbuf
-        glib
-        gtk3
-        libdrm
-        libxkbcommon
-        mesa
-        nspr
-        nss
-        pango
-        pciutils
-        systemd
-        xorg.libX11
-        xorg.libXcomposite
-        xorg.libXdamage
-        xorg.libXext
-        xorg.libXfixes
-        xorg.libXrandr
-        xorg.libxcb
-        xorg.libxshmfence
-      ];
+      unpackPhase = "dpkg-deb -x $src .";
 
       installPhase = ''
-        dpkg-deb -x $src $out
         mkdir -p $out/bin
-
-        chmod -R g-w $out
-
-        addAutoPatchelfSearchPath --no-recurse $out/opt/Breitbandmessung
-        autoPatchelfFile $out/opt/Breitbandmessung/breitbandmessung
-
-        makeWrapper $out/opt/Breitbandmessung/breitbandmessung $out/bin/breitbandmessung \
-          --prefix PATH : ${binPath}
-
-        mv $out/usr/share $out/share
-        rmdir $out/usr
+        mv usr/share $out/share
+        mkdir -p $out/share/breitbandmessung/resources
+
+        asar e opt/Breitbandmessung/resources/app.asar $out/share/breitbandmessung/resources
+
+        # At first start, the program checks for supported operating systems by using the `bizzby-lsb-release`
+        # module and only runs when it finds Debian/Ubuntu. So we present us as Debian and make it happy.
+        cat <<EOF > $out/share/breitbandmessung/resources/node_modules/bizzby-lsb-release/lib/lsb-release.js
+        module.exports = function release() {
+          return {
+            distributorID: "Debian",
+            description: "Debian GNU/Linux 10 (buster)",
+            release: "10",
+            codename: "buster"
+          }
+        }
+        EOF
+
+        makeWrapper ${electron_16}/bin/electron $out/bin/breitbandmessung \
+          --add-flags $out/share/breitbandmessung/resources/build/electron.js
 
         # Fix the desktop link
         substituteInPlace $out/share/applications/breitbandmessung.desktop \
           --replace /opt/Breitbandmessung $out/bin
       '';
-
-      dontAutoPatchelf = true;
-      dontPatchELF = true;
     };
 
     x86_64-darwin = {
@@ -147,6 +87,7 @@ stdenv.mkDerivation ({
     description = "Broadband internet speed test app from the german Bundesnetzagentur";
     homepage = "https://www.breitbandmessung.de";
     license = licenses.unfree;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     maintainers = with maintainers; [ b4dm4n ];
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/brig/default.nix b/nixpkgs/pkgs/applications/networking/brig/default.nix
index 20b685a162fe..d049ed4e3893 100644
--- a/nixpkgs/pkgs/applications/networking/brig/default.nix
+++ b/nixpkgs/pkgs/applications/networking/brig/default.nix
@@ -1,25 +1,57 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "brig";
   version = "0.4.1";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/sahib/brig";
-  subPackages = ["."];
 
   src = fetchFromGitHub {
     owner = "sahib";
     repo = "brig";
-    inherit rev;
+    rev = "v${version}";
     sha256 = "0gi39jmnzqrgj146yw8lcmgmvzx7ii1dgw4iqig7kx8c0jiqi600";
   };
 
+  vendorSha256 = null;
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  subPackages = [ "." ];
+
+  ldflags = [ "-s" "-w" ] ++ (with lib;
+    mapAttrsToList (n: v: "-X github.com/sahib/brig/version.${n}=${v}")
+      (with versions; {
+        Major = major version;
+        Minor = minor version;
+        Patch = patch version;
+        ReleaseType = "";
+        BuildTime = "1970-01-01T00:00:00+0000";
+        GitRev = src.rev;
+      }));
+
+  postInstall = ''
+    installShellCompletion --cmd brig \
+      --bash $src/autocomplete/bash_autocomplete \
+      --zsh $src/autocomplete/zsh_autocomplete
+  '';
+
+  # There are no tests for the brig executable.
+  doCheck = false;
+
   meta = with lib; {
-    description = "File synchronization on top of ipfs with git like interface and FUSE filesystem";
-    homepage = "https://github.com/sahib/brig";
+    description = "File synchronization on top of IPFS with a git-like interface and a FUSE filesystem";
+    longDescription = ''
+      brig is a distributed and secure file synchronization tool with a version
+      control system. It is based on IPFS, written in Go and will feel familiar
+      to git users. Think of it as a swiss army knife for file synchronization
+      or as a peer to peer alternative to Dropbox.
+    '';
+    homepage = "https://brig.readthedocs.io";
+    changelog = "https://github.com/sahib/brig/releases/tag/${src.rev}";
     license = licenses.agpl3;
-    platforms = platforms.unix;
     maintainers = with maintainers; [ offline ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix b/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
index 54b8a1d31569..a89d2bb36e87 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "asuka";
-  version = "0.8.3";
+  version = "0.8.5";
 
   src = fetchFromSourcehut {
     owner = "~julienxx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-l3SgIyApASllHVhAc2yoUYc2x7QtCdzBrMYaXCp65m8=";
+    sha256 = "sha256-+rj6P3ejc4Qb/uqbf3N9MqyqDT7yg9JFE0yfW/uzd6M=";
   };
 
-  cargoSha256 = "sha256-twECZM1KcWeQptLhlKlIz16r3Q/xMb0e+lBG+EX79mU=";
+  cargoSha256 = "sha256-XrFpvH3qiMvpgbH7Q+KC1zFAqJT4rjxux6Q5KLY2ufI=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
index 65627a490d10..67c950f3f9a2 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl
+{ lib, stdenv, fetchurl, wrapGAppsHook, makeWrapper
 , dpkg
 , alsa-lib
 , at-spi2-atk
@@ -15,7 +15,6 @@
 , gnome
 , gsettings-desktop-schemas
 , gtk3
-, libpulseaudio
 , libuuid
 , libdrm
 , libX11
@@ -37,65 +36,65 @@
 , pango
 , pipewire
 , udev
+, wayland
 , xorg
 , zlib
 , xdg-utils
-, wrapGAppsHook
+, snappy
+
+# command line arguments which are always set e.g "--disable-gpu"
 , commandLineArgs ? ""
-}:
 
-let
+# Necessary for USB audio devices.
+, pulseSupport ? stdenv.isLinux
+, libpulseaudio
 
-rpath = lib.makeLibraryPath [
-  alsa-lib
-  at-spi2-atk
-  at-spi2-core
-  atk
-  cairo
-  cups
-  dbus
-  expat
-  fontconfig
-  freetype
-  gdk-pixbuf
-  glib
-  gtk3
-  libdrm
-  libpulseaudio
-  libX11
-  libxkbcommon
-  libXScrnSaver
-  libXcomposite
-  libXcursor
-  libXdamage
-  libXext
-  libXfixes
-  libXi
-  libXrandr
-  libXrender
-  libxshmfence
-  libXtst
-  libuuid
-  mesa
-  nspr
-  nss
-  pango
-  pipewire
-  udev
-  xdg-utils
-  xorg.libxcb
-  zlib
-];
+# For GPU acceleration support on Wayland (without the lib it doesn't seem to work)
+, libGL
 
+# For video acceleration via VA-API (--enable-features=VaapiVideoDecoder,VaapiVideoEncoder)
+, libvaSupport ? stdenv.isLinux
+, libva
+, enableVideoAcceleration ? libvaSupport
+
+# For Vulkan support (--enable-features=Vulkan); disabled by default as it seems to break VA-API
+, vulkanSupport ? false
+, addOpenGLRunpath
+, enableVulkan ? vulkanSupport
+}:
+
+let
+  inherit (lib) optional optionals makeLibraryPath makeSearchPathOutput makeBinPath
+    optionalString strings escapeShellArg;
+
+  deps = [
+    alsa-lib at-spi2-atk at-spi2-core atk cairo cups dbus expat
+    fontconfig freetype gdk-pixbuf glib gtk3 libdrm libX11 libGL
+    libxkbcommon libXScrnSaver libXcomposite libXcursor libXdamage
+    libXext libXfixes libXi libXrandr libXrender libxshmfence
+    libXtst libuuid mesa nspr nss pango pipewire udev wayland
+    xdg-utils xorg.libxcb zlib snappy
+  ]
+    ++ optional pulseSupport libpulseaudio
+    ++ optional libvaSupport libva;
+
+  rpath = makeLibraryPath deps + ":" + makeSearchPathOutput "lib" "lib64" deps;
+  binpath = makeBinPath deps;
+
+  enableFeatures = optionals enableVideoAcceleration [ "VaapiVideoDecoder" "VaapiVideoEncoder" ]
+    ++ optional enableVulkan "Vulkan";
+
+    # The feature disable is needed for VAAPI to work correctly: https://github.com/brave/brave-browser/issues/20935
+  disableFeatures = optional enableVideoAcceleration "UseChromeOSDirectVideoDecoder";
 in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.36.122";
+  version = "1.42.88";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "aBHoEu1egRPMpeUBgRl2V5J3op1Ju+CvprG14dIWc8M=";
+    sha256 = "sha256-Or3eTLwap6KFhO7ieLyAXS0NKga5eUbd3KyFq/YNg+c=";
   };
 
   dontConfigure = true;
@@ -103,9 +102,18 @@ stdenv.mkDerivation rec {
   dontPatchELF = true;
   doInstallCheck = true;
 
-  nativeBuildInputs = [ dpkg wrapGAppsHook ];
+  nativeBuildInputs = [
+    dpkg
+    (wrapGAppsHook.override { inherit makeWrapper; })
+  ];
+
+  buildInputs = [
+    # needed for GSETTINGS_SCHEMAS_PATH
+    glib gsettings-desktop-schemas gtk3
 
-  buildInputs = [ glib gsettings-desktop-schemas gnome.adwaita-icon-theme ];
+    # needed for XDG_ICON_DIRS
+    gnome.adwaita-icon-theme
+  ];
 
   unpackPhase = "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner";
 
@@ -126,9 +134,9 @@ stdenv.mkDerivation rec {
       ln -sf $BINARYWRAPPER $out/bin/brave
 
       for exe in $out/opt/brave.com/brave/{brave,chrome_crashpad_handler}; do
-      patchelf \
-          --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          --set-rpath "${rpath}" $exe
+          patchelf \
+              --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+              --set-rpath "${rpath}" $exe
       done
 
       # Fix paths
@@ -159,7 +167,21 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     # Add command line args to wrapGApp.
-    gappsWrapperArgs+=(--add-flags ${lib.escapeShellArg commandLineArgs})
+    gappsWrapperArgs+=(
+      --prefix LD_LIBRARY_PATH : ${rpath}
+      --prefix PATH : ${binpath}
+      ${optionalString (enableFeatures != []) ''
+      --add-flags "--enable-features=${strings.concatStringsSep "," enableFeatures}"
+      ''}
+      ${optionalString (disableFeatures != []) ''
+      --add-flags "--disable-features=${strings.concatStringsSep "," disableFeatures}"
+      ''}
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland}}"
+      ${optionalString vulkanSupport ''
+      --prefix XDG_DATA_DIRS  : "${addOpenGLRunpath.driverLink}/share"
+      --add-flags ${escapeShellArg commandLineArgs}
+      ''}
+    )
   '';
 
   installCheckPhase = ''
@@ -172,12 +194,13 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://brave.com/";
     description = "Privacy-oriented browser for Desktop and Laptop computers";
-    changelog = "https://github.com/brave/brave-browser/blob/master/CHANGELOG_DESKTOP.md#" + lib.replaceStrings [ "." ] [ "" ] version;
+    changelog = "https://github.com/brave/brave-browser/blob/master/CHANGELOG_DESKTOP.md#" + replaceStrings [ "." ] [ "" ] version;
     longDescription = ''
       Brave browser blocks the ads and trackers that slow you down,
       chew up your bandwidth, and invade your privacy. Brave lets you
       contribute to your favorite creators automatically.
     '';
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mpl20;
     maintainers = with maintainers; [ uskudnik rht jefflabonte nasirhm ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix b/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix
index e106eb7ff664..60e8631249fd 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix
@@ -1,60 +1,45 @@
-{ lib, buildGoPackage, fetchurl, fetchFromGitHub, go-bindata }:
+{ lib, buildGoModule, fetchurl, fetchFromGitHub }:
 
 let
-  version = "1.6.4";
+  version = "1.8.0";
 
   # TODO: must build the extension instead of downloading it. But since it's
   # literally an asset that is indifferent regardless of the platform, this
   # might be just enough.
   webext = fetchurl {
-    url = "https://github.com/browsh-org/browsh/releases/download/v${version}/browsh-${version}-an.fx.xpi";
-    sha256 = "1shf1s9s525wns5vrsc4ns21zjxm1si43lx6v0q8ma6vd5x5445l";
+    url = "https://github.com/browsh-org/browsh/releases/download/v${version}/browsh-${version}.xpi";
+    sha256 = "sha256-12xWbf4ngYHWLKV9yyxyi0Ny/zHSj2o7Icats+Ef+pA=";
   };
 
-in buildGoPackage rec {
+in
+
+buildGoModule rec {
   inherit version;
 
   pname = "browsh";
 
-  goPackagePath = "browsh";
+  sourceRoot = "source/interfacer";
 
-  # further go package dependencies are defined in deps.nix, see line below.
   src = fetchFromGitHub {
     owner = "browsh-org";
     repo = "browsh";
     rev = "v${version}";
-    sha256 = "0gvf5k1gm81xxg7ha309kgfkgl5357dli0fbc4z01rmfgbl0rfa0";
+    sha256 = "sha256-/tH1w6qi+rimsqtk8Y8AYljU3X4vbmoDtV07piWSBdw=";
   };
 
-  nativeBuildInputs = [ go-bindata ];
+  vendorSha256 = "sha256-eCvV3UuM/JtCgMqvwvqWF3bpOmPSos5Pfhu6ETaS58c=";
 
-  # embed the web extension in a go file and place it where it's supposed to
-  # be. See
-  # https://github.com/browsh-org/browsh/blob/v1.5.0/interfacer/contrib/xpi2bin.sh
   preBuild = ''
-    xpiprefix="$(mktemp -d)"
-    cp "${webext}" "$xpiprefix/browsh.xpi"
-    go-bindata \
-      -prefix "$xpiprefix" \
-      -pkg browsh \
-      -o "$NIX_BUILD_TOP/go/src/${goPackagePath}/interfacer/src/browsh/webextension.go" \
-      "$xpiprefix/browsh.xpi"
-
-    sed \
-      -e 's:Asset("/browsh.xpi"):Asset("browsh.xpi"):g' \
-      -i "$NIX_BUILD_TOP/go/src/${goPackagePath}/interfacer/src/browsh/firefox.go"
-  '';
-
-  postBuild = ''
-    mv "$NIX_BUILD_TOP/go/bin/src" "$NIX_BUILD_TOP/go/bin/browsh"
+    cp "${webext}" src/browsh/browsh.xpi
   '';
 
-  goDeps = ./deps.nix;
+  # Tests require network access
+  doCheck = false;
 
   meta = with lib; {
     description = "A fully-modern text-based browser, rendering to TTY and browsers";
     homepage = "https://www.brow.sh/";
-    maintainers = [ maintainers.kalbasit ];
+    maintainers = with maintainers; [ kalbasit siraben ];
     license = lib.licenses.lgpl21;
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
   };
diff --git a/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix b/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix
deleted file mode 100644
index 12154af752da..000000000000
--- a/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix
+++ /dev/null
@@ -1,264 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "github.com/NYTimes/gziphandler";
-    fetch = {
-      type = "git";
-      url = "https://github.com/NYTimes/gziphandler";
-      rev =  "dd0439581c7657cb652dfe5c71d7d48baf39541d";
-      sha256 = "0rhrjlw220hnymzfccm0yir3pc9dpj7h3gwzhzq2cbsb3hhsqvyy";
-    };
-  }
-  {
-    goPackagePath  = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev =  "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath  = "github.com/gdamore/encoding";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gdamore/encoding";
-      rev =  "6289cdc94c00ac4aa177771c5fce7af2f96b626d";
-      sha256 = "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9";
-    };
-  }
-  {
-    goPackagePath  = "github.com/gdamore/tcell";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gdamore/tcell";
-      rev =  "b5d0c1ac570211e469f43ff88c0c6aa4b56cc99a";
-      sha256 = "0g2zfbgyk3djlk0qpmrgcyy0ba9ad932yswpaacswi21qyf9gwag";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-errors/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-errors/errors";
-      rev =  "a6af135bd4e28680facf08a3d206b454abc877a4";
-      sha256 = "0rznpknk19rxkr7li6dqs52c26pjazp69lh493l4ny4sxn5922lp";
-    };
-  }
-  {
-    goPackagePath  = "github.com/gorilla/websocket";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/websocket";
-      rev =  "66b9c49e59c6c48f0ffce28c2d8b8a5678502c6d";
-      sha256 = "00i4vb31nsfkzzk7swvx3i75r2d960js3dri1875vypk3v2s0pzk";
-    };
-  }
-  {
-    goPackagePath  = "github.com/hashicorp/hcl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/hcl";
-      rev =  "8cb6e5b959231cc1119e43259c4a608f9c51a241";
-      sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
-    };
-  }
-  {
-    goPackagePath  = "github.com/hpcloud/tail";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hpcloud/tail";
-      rev =  "a30252cb686a21eb2d0b98132633053ec2f7f1e5";
-      sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0";
-    };
-  }
-  {
-    goPackagePath  = "github.com/lucasb-eyer/go-colorful";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lucasb-eyer/go-colorful";
-      rev =  "30298f24079860c4dee452fdef6519b362a4a026";
-      sha256 = "0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2";
-    };
-  }
-  {
-    goPackagePath  = "github.com/magiconair/properties";
-    fetch = {
-      type = "git";
-      url = "https://github.com/magiconair/properties";
-      rev =  "de8848e004dd33dc07a2947b3d76f618a7fc7ef1";
-      sha256 = "19zqw1x0w0crh8zc84yy82nkcc5yjz72gviaf2xjgfm5a8np7nyb";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-runewidth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-runewidth";
-      rev =  "3ee7d812e62a0804a7d0a324e0249ca2db3476d3";
-      sha256 = "00b3ssm7wiqln3k54z2wcnxr3k3c7m1ybyhb9h8ixzbzspld0qzs";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mitchellh/mapstructure";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/mapstructure";
-      rev =  "3536a929edddb9a5b34bd6861dc4a9647cb459fe";
-      sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr";
-    };
-  }
-  {
-    goPackagePath  = "github.com/onsi/ginkgo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/ginkgo";
-      rev =  "eea6ad008b96acdaa524f5b409513bf062b500ad";
-      sha256 = "1326s5fxgasdpz1qqwrw4n5p3k0vz44msnyz14knrhlw5l97lx33";
-    };
-  }
-  {
-    goPackagePath  = "github.com/onsi/gomega";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/gomega";
-      rev =  "90e289841c1ed79b7a598a7cd9959750cb5e89e2";
-      sha256 = "1n7i4hksdgv410m43v2sw14bl5vy59dkp6nlw5l76nibbh37syr9";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pelletier/go-toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pelletier/go-toml";
-      rev =  "728039f679cbcd4f6a54e080d2219a4c4928c546";
-      sha256 = "1v76s3vds0i9dxaha4ikd6xjm7vqqfk6sy9l6jc2lsvmj99d5sy6";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev =  "ba968bfe8b2f7e042a574c888954fccecfa385b4";
-      sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1";
-    };
-  }
-  {
-    goPackagePath  = "github.com/shibukawa/configdir";
-    fetch = {
-      type = "git";
-      url = "https://github.com/shibukawa/configdir";
-      rev =  "e180dbdc8da04c4fa04272e875ce64949f38bd3e";
-      sha256 = "0vbma9jkwh0ifz8dk2ssgmy7aiaify63lpa0lah7i4dkkxr94c9z";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/afero";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/afero";
-      rev =  "588a75ec4f32903aa5e39a2619ba6a4631e28424";
-      sha256 = "0j9r65qgd58324m85lkl49vk9dgwd62g7dwvkfcm3k6i9dc555a9";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/cast";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cast";
-      rev =  "8c9545af88b134710ab1cd196795e7f2388358d7";
-      sha256 = "0xq1ffqj8y8h7dcnm0m9lfrh0ga7pssnn2c1dnr09chqbpn4bdc5";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/jwalterweatherman";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/jwalterweatherman";
-      rev =  "94f6ae3ed3bceceafa716478c5fbf8d29ca601a1";
-      sha256 = "1ywmkwci5zyd88ijym6f30fj5c0k2yayxarkmnazf5ybljv50q7b";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev =  "298182f68c66c05229eb03ac171abe6e309ee79a";
-      sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/viper";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/viper";
-      rev =  "b5bf975e5823809fb22c7644d008757f78a4259e";
-      sha256 = "1zpzxvn13wpvbblbbn73svaq39zgxfjqhci9d68g3qf309pcfy19";
-    };
-  }
-  {
-    goPackagePath  = "github.com/ulule/limiter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ulule/limiter";
-      rev =  "38b2a440be905c8be884fd5e114dc893a64e5d81";
-      sha256 = "0sbbfz9k3m2hf45cx7y7xshsr3rac495lks9ciwmnrzsnxfdh3l5";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev =  "461777fb6f67e8cb9d70cda16573678d085a74cf";
-      sha256 = "0sc0llch05q6h7nqgayi3sgismsznpnlsz4gh89y4klpymdcpbh2";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev =  "93c9922d18aeb82498a065f07aec7ad7fa60dfb7";
-      sha256 = "0hv96nwbv0li3nrv43ldfzmf12yrrbji2cf8n44iibv8ps5kfssx";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev =  "342b2e1fbaa52c93f31447ad2c6abc048c63e475";
-      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/fsnotify.v1";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev =  "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/tomb.v1";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-tomb/tomb";
-      rev =  "dd632973f1e7218eb1089048e0798ec9ae7dceb8";
-      sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-yaml/yaml";
-      rev =  "51d6538a90f86fe93ac480b35f37b2be17fef232";
-      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix
index d764f74b614c..035be9585ddd 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix
@@ -16,6 +16,6 @@ buildGoPackage rec {
     description = "Dedicated Chrome instance to log into captive portals without messing with DNS settings";
     homepage = "https://blog.filippo.io/captive-browser";
     license = licenses.mit;
-    maintainers = with maintainers; [ volth ma27 ];
+    maintainers = with maintainers; [ ma27 ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix b/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
index 71b4593c40d4..5a0a7f0d215b 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
@@ -13,16 +13,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "castor";
-  version = "0.8.18";
+  version = "0.9.0";
 
   src = fetchFromSourcehut {
     owner = "~julienxx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-sv6hiSTVFe3jxNuaM6Jyn7UeqFqUNmRvYtWfkJTJ4tA=";
+    sha256 = "sha256-yYLDbxmUR86fdpbHQQTiHVUbicnOD75cl3Vhofw5qr0=";
   };
 
-  cargoSha256 = "sha256-/IHxvTW9VYZmgjmDh0zJFDQqfw/H5CXVwEuLKq6Hnys=";
+  cargoSha256 = "sha256-AHhKfy2AAcDBcknzNb8DAzm51RQqFQDuWN+Hp5731Yk=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
index 40a0d7997528..ca52cf94d8c6 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -87,7 +87,7 @@ mkChromiumDerivation (base: rec {
       then "https://github.com/Eloston/ungoogled-chromium"
       else "https://www.chromium.org/";
     maintainers = with maintainers; if ungoogled
-      then [ squalus primeos ]
+      then [ squalus primeos michaeladler ]
       else [ primeos thefloweringash ];
     license = if enableWideVine then licenses.unfree else licenses.bsd3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
index 6dd6d98c0efd..1cfc90dd4f14 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
@@ -7,7 +7,7 @@
 # Native build inputs:
 , ninja, pkg-config
 , python3, perl
-, gnutar, which
+, which
 , llvmPackages
 # postPatch:
 , pkgsBuildHost
@@ -39,14 +39,12 @@
 , glibc # gconv + locale
 
 # Package customization:
-, gnomeSupport ? false, gnome2 ? null
-, gnomeKeyringSupport ? false, libgnome-keyring3 ? null
 , cupsSupport ? true, cups ? null
 , proprietaryCodecs ? true
 , pulseSupport ? false, libpulseaudio ? null
 , ungoogled ? false, ungoogled-chromium
 # Optional dependencies:
-, libgcrypt ? null # gnomeSupport || cupsSupport
+, libgcrypt ? null # cupsSupport
 , systemdSupport ? stdenv.isLinux
 , systemd
 }:
@@ -128,7 +126,7 @@ let
     nativeBuildInputs = [
       ninja pkg-config
       python3WithPackages perl
-      gnutar which
+      which
       llvmPackages.bintools
     ];
 
@@ -154,8 +152,6 @@ let
       curl
       libepoxy
     ] ++ optional systemdSupport systemd
-      ++ optionals gnomeSupport [ gnome2.GConf libgcrypt ]
-      ++ optional gnomeKeyringSupport libgnome-keyring3
       ++ optionals cupsSupport [ libgcrypt cups ]
       ++ optional pulseSupport libpulseaudio;
 
@@ -167,6 +163,13 @@ let
     ];
 
     postPatch = ''
+      # Workaround/fix for https://bugs.chromium.org/p/chromium/issues/detail?id=1313361:
+      substituteInPlace BUILD.gn \
+        --replace '"//infra/orchestrator:orchestrator_all",' ""
+      # Disable build flags that require LLVM 15:
+      substituteInPlace build/config/compiler/BUILD.gn \
+        --replace '"-Xclang",' "" \
+        --replace '"-no-opaque-pointers",' ""
       # remove unused third-party
       for lib in ${toString gnSystemLibraries}; do
         if [ -d "third_party/$lib" ]; then
@@ -186,6 +189,7 @@ let
           --replace "/usr/bin/env -S make -f" "/usr/bin/make -f"
       fi
       chmod -x third_party/webgpu-cts/src/tools/run_deno
+      chmod -x third_party/dawn/third_party/webgpu-cts/tools/run_deno
 
       # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
       substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
@@ -271,7 +275,7 @@ let
 
       # Optional features:
       use_gio = true;
-      use_gnome_keyring = gnomeKeyringSupport;
+      use_gnome_keyring = false; # Superseded by libsecret
       use_cups = cupsSupport;
 
       # Feature overrides:
@@ -283,6 +287,8 @@ let
       enable_widevine = true;
       # Provides the enable-webrtc-pipewire-capturer flag to support Wayland screen capture:
       rtc_use_pipewire = true;
+      # Disable PGO because the profile data requires a newer compiler version (LLVM 14 isn't sufficient):
+      chrome_pgo_phase = 0;
     } // optionalAttrs proprietaryCodecs {
       # enable support for the H.264 codec
       proprietary_codecs = true;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
index e8d9a13f9ac7..5bd24faafe40 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
@@ -8,8 +8,6 @@
 # package customization
 # Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper)
 , channel ? "stable"
-, gnomeSupport ? false, gnome2 ? null
-, gnomeKeyringSupport ? false
 , proprietaryCodecs ? true
 , enableWideVine ? false
 , ungoogled ? false # Whether to build chromium or ungoogled-chromium
@@ -46,7 +44,7 @@ let
 
     mkChromiumDerivation = callPackage ./common.nix ({
       inherit channel chromiumVersionAtLeast versionRange;
-      inherit gnome2 gnomeSupport gnomeKeyringSupport proprietaryCodecs
+      inherit proprietaryCodecs
               cupsSupport pulseSupport ungoogled;
       gnChromium = gn.overrideAttrs (oldAttrs: {
         inherit (upstream-info.deps.gn) version;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py b/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py
index 85ebb8a7b935..45f4282582f5 100755
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py
@@ -38,9 +38,9 @@ for entry in feed.entries:
     else:
         print('chromium: TODO -> ' + version + '\n')
     print(url)
-    if fixes := re.search(r'This update includes .+ security fixes\.', content).group(0):
-        zero_days = re.search(r'Google is aware( of reports)? th(e|at) .+ in the wild\.', content)
-        if zero_days:
+    if fixes := re.search(r'This update includes .+ security fix(es)?\.', content):
+        fixes = fixes.group(0)
+        if zero_days := re.search(r'Google is aware( of reports)? th(e|at) .+ in the wild\.', content):
             fixes += " " + zero_days.group(0)
         print('\n' + '\n'.join(textwrap.wrap(fixes, width=72)))
     if cve_list := re.findall(r'CVE-[^: ]+', content):
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/ungoogled-flags.toml b/nixpkgs/pkgs/applications/networking/browsers/chromium/ungoogled-flags.toml
index f2bf29cda24b..10cd77df21a7 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/ungoogled-flags.toml
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/ungoogled-flags.toml
@@ -7,7 +7,6 @@ enable_js_type_check=false
 enable_mdns=false
 enable_mse_mpeg2ts_stream_parser=true
 enable_nacl=false
-enable_one_click_signin=false
 enable_reading_list=false
 enable_remoting=false
 enable_reporting=false
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
index c3ffe5cf116d..9aa1d9c8c5c6 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -1,63 +1,63 @@
 {
   "stable": {
-    "version": "99.0.4844.84",
-    "sha256": "05bma8lsm5lad58mlfiv8bg0fw5k5mxh0v6g1ik7xp2bsd71iv10",
-    "sha256bin64": "0sdnsnp7hnpip91hwbz3hiw2727g0a3ydf55ldqv9bgik3vn1wln",
+    "version": "104.0.5112.101",
+    "sha256": "0nrghgngxdn9richjnxii9y94dg5zpwc3gd3vx609r4xaphibw30",
+    "sha256bin64": "1cj2mi3g5wl376wc52jgqg28h7izbsqm2gji526zkhmgb7rwq4sw",
     "deps": {
       "gn": {
-        "version": "2022-01-10",
+        "version": "2022-06-08",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "80a40b07305373617eba2d5878d353532af77da3",
-        "sha256": "1103lf38h7412949j6nrk48m2vv2rrxacn42sjg33lg88nyv7skv"
+        "rev": "2ecd43a10266bd091c98e6dcde507c64f6a0dad3",
+        "sha256": "1q06vsz9b4bb764wy1wy8n177z2pgpm97kq3rl1hmq185mz5fhra"
       }
     },
     "chromedriver": {
-      "version": "99.0.4844.51",
-      "sha256_linux": "1r5wbcfbj9s216jyjasmiscsrsix9ap3pplp12rznrwn4898p51y",
-      "sha256_darwin": "1nak8p5hdrw94lx73m9c110zrwag4qr6487dhplm3qfrnrkdh8wp",
-      "sha256_darwin_aarch64": "0hkcx6a8bcjlbmp6z3ld23mi1kpyjn2g7m3ns9qw6ns4x3rn5i3r"
+      "version": "104.0.5112.79",
+      "sha256_linux": "1naxi6pa5l9ciwzlqimcwqfjsqzyqndg1i0hp6zwh20wfvcfms3w",
+      "sha256_darwin": "0lgls8vsv31apgxjvksqaaiqj78q5v3bs0mnrxhfbw7cbhf6wxk5",
+      "sha256_darwin_aarch64": "11rjqdd65zibhb1gvdwy0slcdpvwh77mkhcj5hdg4hdlysd1a3a2"
     }
   },
   "beta": {
-    "version": "100.0.4896.56",
-    "sha256": "0vdyddxhmkw9bqwx5j19h69swx9ysiipsmcc1sjl0qv8bn8f790z",
-    "sha256bin64": "09h4fxsx0q5b0gn258xnmk11qz7ql8flpn4mq5x201abmv29y856",
+    "version": "105.0.5195.37",
+    "sha256": "0ffzphr66z3g3l695b5liswpfp0577knn06mzdmwq9x1lk87cwiq",
+    "sha256bin64": "1cfkjzqwj4s5djzl2rka9kbc28i6zph0xqv1534cb68hzgwy171a",
     "deps": {
       "gn": {
-        "version": "2022-01-21",
+        "version": "2022-07-11",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "0725d7827575b239594fbc8fd5192873a1d62f44",
-        "sha256": "1dzdvcn2r5c9giknvasf3y5y4901kav7igivjvrpww66ywsj8fzr"
+        "rev": "9ef321772ecc161937db69acb346397e0ccc484d",
+        "sha256": "0j85kgf8c1psys6kfsq5mph8n80hcbzhr7d2blqiiysmjj0wc6ng"
       }
     }
   },
   "dev": {
-    "version": "101.0.4951.7",
-    "sha256": "0xnvbiqi50hgky35qaivcyzfp05nnwfwqrd50dksqkzycl8avb4z",
-    "sha256bin64": "19my3zr9d3w2ypl9cm1xa15vhyv9add1f283alb9fmh2qwhl4scg",
+    "version": "106.0.5231.2",
+    "sha256": "0cygann80jmc2vk83kpc7kprhw75yf7qqfi1208ksyp6m94cxnp6",
+    "sha256bin64": "1p7hq5vsmwgkyjam7blm1gxa246dg5plhk2f0vbvlnycwj54cvjm",
     "deps": {
       "gn": {
-        "version": "2022-03-14",
+        "version": "2022-08-08",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "bd99dbf98cbdefe18a4128189665c5761263bcfb",
-        "sha256": "0nql15ckjqkm001xajq3qyn4h4q80i7x6dm9zinxxr1a8q5lppx3"
+        "rev": "3d773bba0927e67eae8fdaee5e28b0f6203d3bee",
+        "sha256": "1pfv6iq04r5lbg5b6xa6d5vn6mzyqksmspris7cgq5lihwq825ld"
       }
     }
   },
   "ungoogled-chromium": {
-    "version": "99.0.4844.84",
-    "sha256": "05bma8lsm5lad58mlfiv8bg0fw5k5mxh0v6g1ik7xp2bsd71iv10",
-    "sha256bin64": "0sdnsnp7hnpip91hwbz3hiw2727g0a3ydf55ldqv9bgik3vn1wln",
+    "version": "104.0.5112.102",
+    "sha256": "0sjpmfln6c96c2i83q8c2v1jfii8527951nbnyqi0g4wam5jqrfj",
+    "sha256bin64": null,
     "deps": {
       "gn": {
-        "version": "2022-01-10",
+        "version": "2022-06-08",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "80a40b07305373617eba2d5878d353532af77da3",
-        "sha256": "1103lf38h7412949j6nrk48m2vv2rrxacn42sjg33lg88nyv7skv"
+        "rev": "2ecd43a10266bd091c98e6dcde507c64f6a0dad3",
+        "sha256": "1q06vsz9b4bb764wy1wy8n177z2pgpm97kq3rl1hmq185mz5fhra"
       },
       "ungoogled-patches": {
-        "rev": "99.0.4844.84-1",
-        "sha256": "1j02zcam09mdw7wg30r1mx27b8bw0s9dvk4qjl6vrhp24rbmscs7"
+        "rev": "104.0.5112.102-1",
+        "sha256": "06l6af4a6ywjn6x02dgb5ywk057p30rylrvr483iwvrj4jlhqvii"
       }
     }
   }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix b/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix
index 8af0c1bc8e67..72a1601d1872 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix
@@ -17,6 +17,11 @@ stdenv.mkDerivation rec {
   buildInputs = with lib;
   [ perl fltk openssl libjpeg libpng libXcursor libXi libXinerama ];
 
+  # Workaround build failure on -fno-common toolchains:
+  #   ld: main.o:/build/dillo-3.0.5/dpid/dpid.h:64: multiple definition of `sock_set';
+  #     dpid.o:/build/dillo-3.0.5/dpid/dpid.h:64: first defined here
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   configureFlags = [ "--enable-ssl" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
index 84f46f1b60d8..3278191a9c53 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
@@ -4,7 +4,7 @@
 , # Incompatible licenses, LGPLv3 - GPLv2
   enableGuile        ? false,                                         guile ? null
 , enablePython       ? false,                                         python ? null
-, enablePerl         ? (stdenv.hostPlatform == stdenv.buildPlatform), perl ? null
+, enablePerl         ? (!stdenv.isDarwin) && (stdenv.hostPlatform == stdenv.buildPlatform), perl ? null
 # re-add javascript support when upstream supports modern spidermonkey
 }:
 
@@ -13,13 +13,13 @@ assert enablePython -> python != null;
 
 stdenv.mkDerivation rec {
   pname = "elinks";
-  version = "0.15.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "rkd77";
     repo = "felinks";
     rev = "v${version}";
-    sha256 = "sha256-2TF0rbmjwhwV2AVUXjfzoprzpeqrETis3AFhMftpaZQ=";
+    sha256 = "sha256-9OEi4UF/4/IRtccJou3QuevQzWjA6PuU5IVlT7qqGZ0=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix b/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix
deleted file mode 100644
index 6b525fbca9f7..000000000000
--- a/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ stdenv, mkDerivation, lib, fetchFromGitHub, fetchpatch
-, cmake, extra-cmake-modules, pkg-config, qmake
-, libpthreadstubs, libxcb, libXdmcp
-, qtsvg, qttools, qtwebengine, qtx11extras
-, qtwayland, wrapQtAppsHook
-, kwallet
-}:
-
-mkDerivation rec {
-  pname = "falkon";
-  version = "3.2.0";
-
-  src = fetchFromGitHub {
-    owner  = "KDE";
-    repo   = "falkon";
-    rev    = "v${version}";
-    sha256 = "sha256-esi9YWd1PtQpDBhI1NtWEjZIoMoNUpAF+kQad67mLzE=";
-  };
-
-  preConfigure = ''
-    export NONBLOCK_JS_DIALOGS=true
-    export KDE_INTEGRATION=true
-    export GNOME_INTEGRATION=false
-    export FALKON_PREFIX=$out
-  '';
-
-  buildInputs = [
-    libpthreadstubs libxcb libXdmcp
-    qtsvg qttools qtwebengine qtx11extras
-    kwallet
-  ] ++ lib.optionals stdenv.isLinux [ qtwayland ];
-
-  nativeBuildInputs = [
-    cmake
-    extra-cmake-modules
-    pkg-config
-    qmake
-    qttools
-    wrapQtAppsHook
-  ];
-
-  meta = with lib; {
-    description = "QtWebEngine based cross-platform web browser";
-    homepage    = "https://community.kde.org/Incubator/Projects/Falkon";
-    license     = licenses.gpl3;
-    maintainers = with maintainers; [ peterhoeg ];
-    platforms   = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
index ab3cfb9ef52b..9d3ff6a0da14 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
@@ -1,985 +1,985 @@
 {
-  version = "99.0b6";
+  version = "104.0b7";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ach/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ach/firefox-104.0b7.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "a540c52dbb973a85ee0f9fb116f7812e624d925dce77fe14a310f4bf5e6a0b58";
+      sha256 = "9c343be5e470c8580af9c55d00e3c894c63f6a2fd1bddad2ff8c4e0782aea58a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/af/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/af/firefox-104.0b7.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "0f15edf10fc6ccb9f8bfba5cd6bbe83ac11df1b01fe9d5a1888f9b83a20b6d49";
+      sha256 = "ccd2e3b4126cdd3517a72d9749cc8cee062280edc2fa2e4b3a08bf1bd515319b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/an/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/an/firefox-104.0b7.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "769c936702fd344395e2fb949ddd2782f0e35096889c7c84027edfd9f08f5790";
+      sha256 = "e293bfc57aba4cb96de21a3d4047749ab54ebc431afb8f4352989f2194296f1c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ar/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ar/firefox-104.0b7.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "401b84fb1ce243e657018b0f6c98acc7838c7abcb0ed93772d56b1082135b479";
+      sha256 = "03dc14568cbbaf34b1037b2b7209a79ddee5bc42c74e73b27da2664c4c07d742";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ast/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ast/firefox-104.0b7.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "2876d7dc456ead1a0efd867e3f683ea432589049ad85adf7ca5e7824f9dcfe66";
+      sha256 = "d9d72b228f3776bda85fa8bd8c11c8292bda366b5957b25ba1de1087cd98d997";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/az/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/az/firefox-104.0b7.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "c83d7bf96d74241657ae84dcd0b63328dc521cdb4be639577473305bc0d024b7";
+      sha256 = "efa196f5353ffd787d21a575960222827ba1348ff9026d70b6d6b29970985313";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/be/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/be/firefox-104.0b7.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "35942f40d0604f382a383a9f737d59bdd6141ec6066d7da54422fe02928c46f2";
+      sha256 = "7a7a4ffa2a65535612a9109f3a15ffb314f7cda362347760c19cccc6d112251d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/bg/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/bg/firefox-104.0b7.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "f55d30618fd8eccfba51fc82fbcf37fa3eed550b168ed603a14a69511ee4955c";
+      sha256 = "c96ec818e5811d446fb55c43cb6ba987c84d496a4abea0c627f5ae592c1e7967";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/bn/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/bn/firefox-104.0b7.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "462741a2dd135d7f0cbe12ca93bba398a621613af5611f1cae364a281863388f";
+      sha256 = "c0c4c51e0d15c33e61d5fa0b98c9b065f27b4c4218ea6cf5c2884b05243a8e49";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/br/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/br/firefox-104.0b7.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "2f08c5b70e49b9151757a80821011cc6ac8bb9d68b282aeb33b9928bec2609f2";
+      sha256 = "4e92a5a3c24fbe7bf2d1f4db86d2e4f2a4248b8dd413886f2df8d12e9bf7d979";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/bs/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/bs/firefox-104.0b7.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "08802aa569f3e4c9307dbdf0216cc96e851ee88d663d52f22559bae99df3c551";
+      sha256 = "07b4e7801d4fc3075d0fedade3fdcd1de04d19670a33a4bc358c5229aa49e5a9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ca-valencia/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ca-valencia/firefox-104.0b7.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "49fc70e96542fb26e536570395f6f8302e4271306f0298739c537a7d03af3585";
+      sha256 = "e69b015b3ba339506818672cc56a16d08f6a649731bba34275a08778718ea456";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ca/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ca/firefox-104.0b7.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "c1a1ae01536b9b885ee66033f8d828ef63cf3211fa3ec52ad8cd8c688e8bb1cf";
+      sha256 = "3f396efb1aeee865d62c1b5db6039606f3b75f079d12be1cb5ff0d8c9cf6ea0e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/cak/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/cak/firefox-104.0b7.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "536ebd5224b5a53b4660d9113172fcd73862307da6c41f007a2cdb71b35a6dc5";
+      sha256 = "66379c54716abcf3922c9b03b60b413ffee83ac574b6a8bd269a09ff842ee252";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/cs/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/cs/firefox-104.0b7.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "3d25003533ce79e9a32e4dccb92235994b076dce620a73b4f3efac2c04887596";
+      sha256 = "3d4638cf25c6b5c06e7de0c4314bb58ebf3cc49d6db99c2c7471f0c1920486a1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/cy/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/cy/firefox-104.0b7.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "04e5c7f3195ee0a55b3c2c27cf030a1cebeabfcb833e77a2b099916bfac07b8a";
+      sha256 = "5ddd17e2182dcac68c312d32cfec3b3bccebb337fc8bec1bae429ba6969c4de1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/da/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/da/firefox-104.0b7.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "707a9d7991c925989af516681542ba7cf1f4cabeaa3eea7d8be44a76184ae440";
+      sha256 = "9abfcda70d3ee6bab74b76c7e918ca051cdd1367b451f197e51cf4e51f25458b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/de/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/de/firefox-104.0b7.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "e2601df88ee67fc7d4d0d675f53dfb96f34a2c2e3dffdf1ee811561e3ddfa7a3";
+      sha256 = "51150253b64cf14fb46cbce888cdfc4bffffe20d383012e97dae2eb28b571ed6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/dsb/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/dsb/firefox-104.0b7.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "479ec9ec8fc128dc971976611b31d12ea58b1a3119c9019c8fcf4e224486b8dd";
+      sha256 = "fb456a3fea9eba3ef2fafb95b4d4f8e33029a26247f2d3d9af78366bdf606c57";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/el/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/el/firefox-104.0b7.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "fc0075428e18c918bbeb1b25e367e7bf0a4aacc7a27c6acd382f326dfefa65d0";
+      sha256 = "8459a53e040ae2b1b9c18140012075432d8fcbbd875bd96ad800db356424819e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/en-CA/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/en-CA/firefox-104.0b7.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "1f1f10900d3c3ecfc1ec55e06d38bbe89462abc25bf2aa97bad2a785970b52fa";
+      sha256 = "ff5c49878f97ee37d0703a326aeb3faeebb3ac6a6dab6d0688b0961a6e68c839";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/en-GB/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/en-GB/firefox-104.0b7.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "36ec8955482e37178f6b333681ae3e998a65701b90541ed6f98b452d04515b27";
+      sha256 = "fef8b5d014e9e136ed491b01282052e5bfa28a772fdd1fd7cdb9df53493aa03d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/en-US/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/en-US/firefox-104.0b7.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "e316f005fbefcec2c55d9dd2452392c82155b080abb51d36eddcccfead742ca8";
+      sha256 = "5624f8686296d2aee7920a9587e825b4d5c1f60a8a657dc651230db9fff4da8d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/eo/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/eo/firefox-104.0b7.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "0fab5a6ed664f3be18c9aa81c51015b75b3cb9a8bed5bae3322eca57d76fa0b7";
+      sha256 = "f81b129fbcc6739906109214f7bbc2ad60978a0f2dd4905afd56d09a5e0f1154";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/es-AR/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/es-AR/firefox-104.0b7.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "e24a821243c0f2ba758c00334ee40900b3d8eec2d137db774512a1b5907dd0e3";
+      sha256 = "c1e47a426cad118df541d1461181e27006a0101e90729c5a7e106ccc3f816ed6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/es-CL/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/es-CL/firefox-104.0b7.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "5ba1376f6c47b8afb320f7aa36ae1bc6a6dd45350a843f641889fa0f9bd6d4f1";
+      sha256 = "e80a62a9f34f94b65554e95af5b21c0c859829fe23777e943263e7f68f8e0871";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/es-ES/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/es-ES/firefox-104.0b7.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "73d3f8a7ad44d175fc73993ad1ddf2115cda48d33422493e80f5f5fcb0805f13";
+      sha256 = "a04a43c034fed78fb1180ad7016e5fd0810b0e437f679ffbe1521866387e2698";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/es-MX/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/es-MX/firefox-104.0b7.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "cd3267b82d6a02a1f2797069373e95726262c603902a655fb138699b5546e34b";
+      sha256 = "986739b20e919aba1b38c6999db7bc5995dfe751881dbc3ff8029f828c6bfb73";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/et/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/et/firefox-104.0b7.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "07f95fc1bef61d7c1f8b85ae9e774cab7c79c8d8e2d1d82fe80ea6b8f33e7a6b";
+      sha256 = "021bde5f3fb0b44afed6282ab85c3d960ac5ff799b1237cac58245cc337fb417";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/eu/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/eu/firefox-104.0b7.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "da979dfebd9e18d524e20f05c04dcb9abf42eced67d0d59b2e2b8fd0f2860d4c";
+      sha256 = "d7131c1552831e9d06c37f9554a415fd50a4d2945bd061980b70fd4e340553e0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/fa/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/fa/firefox-104.0b7.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "7afddd9ca0568fc844e68f67325ceb2f5a4bf8ed35095076b60e98e334001575";
+      sha256 = "7454a924dcf84b1889e1c051313d4f39f044453b8934832000d260e8167d2115";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ff/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ff/firefox-104.0b7.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "291a80a59157da3eee5f8f8c4c4647713fa639e940200dee7a6f2ff6d44dc55a";
+      sha256 = "c22c7f8ba198e9e4f1d9979da32353bfe1d7df19c64d404a22d3923bbd8a5a12";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/fi/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/fi/firefox-104.0b7.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "b5d42423703cbf205fab56d64125d5d68c5466553dbdf47d05e29c98a1bf4c56";
+      sha256 = "b3637524eeb5b04dac3e6ea87b8fe02304c9320075fe6ed1b3e8f1c44b4093eb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/fr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/fr/firefox-104.0b7.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "95ac9b6b2be9e5996dd3ed3a84c62bf1f29715063c0af3475c02fe5614436800";
+      sha256 = "68bf86feb2ea985ce28932b728d5fb9041b78d3b362ef0f6226ed303b9274d81";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/fy-NL/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/fy-NL/firefox-104.0b7.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "d4b0eaa62170cf651d92b3feb361632a2a202b971661e1111cd343c54abfe98c";
+      sha256 = "c733e64f3a159943a34b96af605dd0c2dd7361449d4ec107f54c2206cee04694";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ga-IE/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ga-IE/firefox-104.0b7.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "01e383677c6fe5d3c73b29339d62b8cc5e8fa6120a6c1f31509eac9020eb7a42";
+      sha256 = "b713178cff8492d310cb6020addfb596a1f3f2040830e6b77f723c3d6fb6cce3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/gd/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/gd/firefox-104.0b7.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "ba0c05f8ccb21224781824178b41794f04585dc22c60bb4b3db3a230be304eaa";
+      sha256 = "535d83dc01ca52c6b4b20bdd14fc20213494e34bfbae9573df3dbb86da386db9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/gl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/gl/firefox-104.0b7.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "540cf483ba69cb35eb0878d07af059f023e453359962217fa4f91ed6e9ceeb8c";
+      sha256 = "4522adc99ff95fea93adf462791bcfb05bb4fea55bd7f4d93abf879fbeb4260c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/gn/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/gn/firefox-104.0b7.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "222de0e732642bb0ab30687312bbd2fe83b0ca42497a1e8aab2a56658b1f3fa0";
+      sha256 = "4303e8a97d810629095a3fa1e2acdb9bfe25e294abe2195a3e997342bcfab467";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/gu-IN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/gu-IN/firefox-104.0b7.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "c2d5751f5b5d3c419c4a5bc61ecf900638f2f4f93e44dfe4b888c467e17ae368";
+      sha256 = "86d6b66a21a97c6d8c45b5a15ac0fea6089fbab18a259b8f07f4262438ec82ca";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/he/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/he/firefox-104.0b7.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "00e4b80dbe25ff5daee56b2eeca471b5bda4186b50a676b72ee3b6dd85f52935";
+      sha256 = "a93c88fff79ca1b37cd8bb5ab475b21ec427c0fb2c80154bf8fd46b081aa5e19";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/hi-IN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/hi-IN/firefox-104.0b7.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "cc762a99b9443f45c326971dd3f0fbe10c46abc4ab54a31916d8f344942fe645";
+      sha256 = "d6e88f00a6560484e160f5b31ef140e30d30f1126843de4e3fe4237ad7297722";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/hr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/hr/firefox-104.0b7.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "6f935f65ef177e330b53c35818d14cdc135436f79497b6e59e748365a2942767";
+      sha256 = "301f0475fe19b63d1df09d1495752e78cf5e22039f946b89425e950416b11e43";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/hsb/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/hsb/firefox-104.0b7.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "4ec5aaf93f6bebd218817ee6552b352822c016209e5b528bb96f65fc1b89ec69";
+      sha256 = "a69480838d3f553c11426e062a25cdb0a4d2f1e0555a5086bb840bfd21820289";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/hu/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/hu/firefox-104.0b7.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "5042f7330efadd917d38f9e5415477f507258ba8462e5600ab1ab15755707db2";
+      sha256 = "a91e947690fb656fe440db5ffc9ce132270b7fc59af7007ae45ecaf72cb96b48";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/hy-AM/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/hy-AM/firefox-104.0b7.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "479d9f677b0dc81f9286e4b9b8c89cc3a34de3c51d1e2088c7463adcb8cc7d35";
+      sha256 = "ecd9ee091040bfbcbc02d01e4bab2f3cf58acddf3299c646f9fce23b4518dd84";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ia/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ia/firefox-104.0b7.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "42a882486fdd29a89220c3a2604873d338b9187d5545fac9da59929a4f865deb";
+      sha256 = "0d5dcfdad66812fa592a99db05f4660b1a2d1cf7e058875984db001911c7908b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/id/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/id/firefox-104.0b7.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "483885d63782b4dc2f6444438f5f4c4f291600a5ca669b2630c6ee5fccdd4382";
+      sha256 = "61367949e4077cd27907faa4819554baf11c2d8a85d51bfa62ab980cc4facce5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/is/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/is/firefox-104.0b7.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "23c62d13ce11f8c5497ab32a80e0f6b49e56f711c9e42673baf37022e3feb364";
+      sha256 = "f1a81783da1876129a7b8f821bb3f6f56e1553abc4a05c424b22be553747ae19";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/it/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/it/firefox-104.0b7.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "7a3006a99a20a54ad104389c7203bfd6c24b0aa53c02ca4d14a24e34503cf6a1";
+      sha256 = "1ece01f5770e6c529f544ad34b7b1fe842a7cb4eeadda48a3a6481bed4e295e9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ja/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ja/firefox-104.0b7.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "05ca3af44e2d723edd2777c91714962459b889122dd669d72c91d83ecefded54";
+      sha256 = "c4583686959afd416c945cb17e816e02e503354a62a0e942f0bb68300b8ebeab";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ka/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ka/firefox-104.0b7.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "9979bd999157dcbca6b70ca967401b61c574ed3a6d2dd62d436692dbd26fa0b6";
+      sha256 = "750fd298de9530d92f50df82af2f4717a801872abbc77869f6f19a8355c40f48";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/kab/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/kab/firefox-104.0b7.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "e2e5c9220501b8c481cc2c1a159b49b5adc243bdaad715afd7cf32aae89237c2";
+      sha256 = "ff1cc19234f54b55ab9d1d37b668fbf5dc0c3c668430bd4959e78ef84e21476f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/kk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/kk/firefox-104.0b7.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "67a0794f7ff2206955d47a2af2f9eeeb0b308526348e86845ec9fcaaaeff9ede";
+      sha256 = "c5586063b96f19b31a7561b8b9810f027060ca943aa9f982328c48e930cef32b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/km/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/km/firefox-104.0b7.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "79de967bb49baaf50633e11c03487b9f696eb924a6c2cb4ca776849c03709f71";
+      sha256 = "332d27fa7bef1af230f07781b3b8e87cadc8c06bb461f7f89f02303436580481";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/kn/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/kn/firefox-104.0b7.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "acf8833a43bbca67be2f7c883e8c9fd3b65b5e43f61e803a5ac188ca2724273a";
+      sha256 = "058a8bafc3602bebf79ab9b3781bfa45d9faa7c9de628f7d68842aaf1b6a5cb1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ko/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ko/firefox-104.0b7.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "669aeb1fc430810d5347cb85df3e1f53240573c3b37c621c5ab9f384b2883f31";
+      sha256 = "bda632e9fe46393d48a38cb603a8b59cae19033523dbafb1f517f2461313c167";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/lij/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/lij/firefox-104.0b7.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "1c29ba78ad9834ce598c31fc40999861556d91e3a43a3a39b8eef08eac59a8f4";
+      sha256 = "8dc76d55145fa52a52d23e4492b9dc3fc54591f2112f40aa8ca61391d8cd0e61";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/lt/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/lt/firefox-104.0b7.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "caf5e72d891e001b5874cd9eb39359535d0e7a3e9e806bdf6c9bbc2ad5cb1543";
+      sha256 = "b03913e4962267c1dc8cd16416dcb2821c197dc3978a6823756880ee78826ca1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/lv/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/lv/firefox-104.0b7.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "48e2e31c5fe889be4ff3cbdf1bab671537ca66a55c59f63ae9f09a31f4222c9b";
+      sha256 = "9c8e870f25884160167f513bae92ce073ef09c0a8fcb544f135c57a83f68fe85";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/mk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/mk/firefox-104.0b7.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "cb26ff5fd9f9b4dbda62b173459173a5d0d39fd4caada1877a1f9750080f239a";
+      sha256 = "1afc931626c1a732bbbaa6a83afa927fc918f44055bf0250a993786422cc0bfa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/mr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/mr/firefox-104.0b7.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "d8c95476b496d42e876080d2809fb349442f159afd385bdaa0444ae776f2bfb5";
+      sha256 = "d8c323b23d3dffde46e6ea71bc6f8b90f3d9c794063fb7ee0db94394cb8f8f97";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ms/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ms/firefox-104.0b7.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "3be2c35dc0d5cb98b616eb573d436326238ea0f03b6dbb5ec3c6e9f0b6d3f677";
+      sha256 = "63f07d68543d38f97979b7044abe0ed3664f22df1804beab77f27f71ca228447";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/my/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/my/firefox-104.0b7.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "f24161a028dd225cc9e57636544fdf2fece02129e65388bf63bee752b23be712";
+      sha256 = "c293f413290a9c9d43fc46f08e2848608c2bf5cebda98c031347b335a96330c0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/nb-NO/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/nb-NO/firefox-104.0b7.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "1699b0cdfd96cef9193bbee9a461b3867783d93ca98974efec4e998ecd430847";
+      sha256 = "cac3bb2bdf6f46e2a2f0afd85d4a8782b6072204f5cb4456964f004d3a7c17cb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ne-NP/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ne-NP/firefox-104.0b7.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "c0d6ed8fa1ad7853adb10c83d6422fe2a41254522655d52e1ac4fbe88412996f";
+      sha256 = "fee892f2aed6af5c5429831c14096010a47d2abe2db243662965385deb1bedc5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/nl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/nl/firefox-104.0b7.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "cfc70746d63c465066e924ac3740e5c0ab7d19dfade9d32698e9c3903dfb8bfc";
+      sha256 = "752052b608b994b83c3bf2fce4499c3438650690d26c90693fa44cea94b70f0b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/nn-NO/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/nn-NO/firefox-104.0b7.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "700145c367d4177fabcbb183653498d4c3c0d23fa1686456f564912a62b1550c";
+      sha256 = "25345269a7053cd9886c3a70420c5572f45df7caa24eb7d963ac11369c55896e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/oc/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/oc/firefox-104.0b7.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "a657ab1229f0f670d113efe6ee7f008544682f60ce936edbb4d68a2a81b60a8d";
+      sha256 = "58a605b62089384363054028b23d1828c3fcb18f16c5da08807a9b8442732dcc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/pa-IN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/pa-IN/firefox-104.0b7.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "a3641a38f87342e9511baf1866226da4875160c30b573893fa85eba644c5195a";
+      sha256 = "5c8055524dac1bd0d78cb77fc8db2af6e137b3c725c4252232feb0ab6a1dbd1c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/pl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/pl/firefox-104.0b7.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "045ebe8f05147249b6516b412b1d1fbd9208f894e503000228a0e630c63f444f";
+      sha256 = "c25fd4e8f824e9e6ea6ec9f8654e046fb5bb17d5820672302c53e35e73b297f5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/pt-BR/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/pt-BR/firefox-104.0b7.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "23c50ecf3cf14217fa8c865f7ab1d7321c6815ff4c68c10630fef9d72904883e";
+      sha256 = "71d31b454b46394944725733b84b49c545f99ac310c058250e14b6787b226e18";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/pt-PT/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/pt-PT/firefox-104.0b7.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "17c937a8afa36f4260ce6d3ea79a07b9119ba12b1710c43d27ff05538e6971a8";
+      sha256 = "a3823bdc1769e107dfad12529b705e3c1645b6c073df80e7d73aa0ee9c6a06f6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/rm/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/rm/firefox-104.0b7.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "836195c4a54dd90d7a32c031114a56fa561d1c2e3b8f930227871e6325dc6262";
+      sha256 = "c7e5f547d0a50bbf9bc29050922b41990302919656e54b448fbae92b6dbfc08c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ro/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ro/firefox-104.0b7.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "6c0c29c8b91013897b03866e242f9dd6a67c44440f1405c4b356dbb7a935a09a";
+      sha256 = "3cfb212546e44bb4c9c64b169edd1239007362f146cd96ade0356b0891bcdf23";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ru/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ru/firefox-104.0b7.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "73e15ebb5ceefe5d76ec3563378cb7c7704fb821fcf5b583fb709995a0efcb7e";
+      sha256 = "1b72982e2bfdd66776366e3f7e32e5ec65e2e57125f0f17c3d53087720d8f13b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/sco/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/sco/firefox-104.0b7.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "2f8ba8588f33fc783976617d662a29acbf41a78851dd781dfc26d7e0ac4d97e2";
+      sha256 = "408e66653cc8f550c31a2760ee36299613d5dcf95027acb9f2f7df75503ec8bb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/si/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/si/firefox-104.0b7.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "5fa2169531665633c3481c177490110cb6a9bd959172f0ae94b2e5a6475a1bd6";
+      sha256 = "b7806c3e71c9dd27cd90a4ba5bc7b12fecc77c0808af2826153989cb1bd40b04";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/sk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/sk/firefox-104.0b7.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "abeb0a6de0522a4e2aa47c8ce02b8c478a21165153fc3c6edda8642777cba266";
+      sha256 = "21cdaed6c15a3d00a8ac774d86cb1ae088f8812b6a0cd864df4ab89bc7d0d98d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/sl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/sl/firefox-104.0b7.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "c0019a21096573635aae9f2b97c50557dc011b670f05f1fcf0779732e2f7dc92";
+      sha256 = "41d128459cda4ffa252014d34977eed5f1f1a3a4f445177dc7ccd486a94ffd89";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/son/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/son/firefox-104.0b7.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "ccd58c05db49f4e5295794c73248bb267bb87173aa7e0dcaa63cbe6593e9fc85";
+      sha256 = "b879ddf33a8c7be027a923fe9a3d3221fe4bd88e1d4bf9dd3e11844612b48883";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/sq/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/sq/firefox-104.0b7.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "5ff7791b6d9ff215e8e466b27902716a9de6018ee9ef0efd639579847178760f";
+      sha256 = "ba4b77291f499b79bafc0250b17edffb93942e6393526007b5a67364091893f0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/sr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/sr/firefox-104.0b7.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "709df8593b8257191313b456288de9952a9e6308a3663a21e40733b4eb3b7353";
+      sha256 = "1da4f9e84bcbae7b73e66a9520d179221280d7aca4792895f7e14be568425d48";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/sv-SE/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/sv-SE/firefox-104.0b7.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "ff25b85789453457aa9c035395bd5588c252804d5801d8e111a24e64d69e4d1d";
+      sha256 = "5ad9dcec171689f6a586b65269a4094879e2fba8494b8f68c41de3958324f8d0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/szl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/szl/firefox-104.0b7.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "1da12d4d2046e953010fd5d064dfe468fd97e65f5003c8d746cb70479bd66187";
+      sha256 = "bc74b0038e6481610594878ec7b8bdb6fc10fcb044c21fa104230e386743631c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ta/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ta/firefox-104.0b7.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "494d240702bbcb9124d56c835ac4e3642e37bd873a5209ba9b99bcb338f40fda";
+      sha256 = "4386d2cb98d05dd94ae7d22cc033e9a53cc9beddf795dfb66981a3f5085f1107";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/te/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/te/firefox-104.0b7.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "acebd79510550d690adb1444e906dc82d9f38e86bd5a93e5e72f711d2d3e49f4";
+      sha256 = "314eddb25baf468b3eeb8e290f30293d30079924fcf42436f19966a94a8a1438";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/th/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/th/firefox-104.0b7.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "b6f90c5a89a8116c1049da7a3a34fb6d82114b261f978f0a2237dd32a10462bb";
+      sha256 = "20782a4079ffe6d3b26017542b6bb988b65335555e9672653b32081245e8b595";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/tl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/tl/firefox-104.0b7.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "961afa78a723382ef7e4cb49cd0f32cca39dd921dbe8168a8e835bbb244ff4a1";
+      sha256 = "9fbf729d12f5b0e5dee67cdd808ed40b28c0e5e8dc6c9c68cc6c5f7aca34176f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/tr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/tr/firefox-104.0b7.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "15efd87bb2654ebd7921b72e0653639c4a3da51af7bee06b284d9abd0e395c1a";
+      sha256 = "ee3ddac16b5966e37b02eb8a330f03fd59c034d07a8fdce5f8539bdffcee34ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/trs/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/trs/firefox-104.0b7.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "78bffcf079bb4e9518fb7ae6deddf395837c16e5a942b66fdeef67c9137d950b";
+      sha256 = "56f75b8fbfcc32222f969d9eae2ce9e8979a31f923d7e26c92ffd2487151297d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/uk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/uk/firefox-104.0b7.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "08995e6b88aaa2af8dab0a95d27312f5e97df3ad7e1a6f0096b0803d835ef6c5";
+      sha256 = "16789e8d01284c2fd8660205b8abfa797319f5c23fe48de423ee42588285e45a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/ur/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/ur/firefox-104.0b7.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "8530f5bcb6bdcc1f5a3127d0ab6c94f19e4a28df2a6c4291c821aaf9c85f379a";
+      sha256 = "8feaf5fa1a1c3a7eae3db731b7262abaf78576b1c37d97564bf3e45c3e7e8ba4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/uz/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/uz/firefox-104.0b7.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "67c7aa4e6095f8073cb94339f63aef2eedf51e096985ca175e983bbca4089498";
+      sha256 = "2f1a7b634bf9ddc6db396c799e98fc408ad3b5d8e1dda0f4a149d48af08325e7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/vi/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/vi/firefox-104.0b7.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "14ee8e4ab854e5443f537fa05ca83befc679c5c78db4323c54dc85ed58702435";
+      sha256 = "ccef1f172cc2170a2d96a34380a14b146533414e9421b1c04cded141b199b3a9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/xh/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/xh/firefox-104.0b7.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "ff4c8b2e0bc0a5231ba19bf058baaa7b455b2d8469f56ec97283d26539405641";
+      sha256 = "7841221ce073dd3557454c0b1ec107dccac9af9efb920d9f63b878eaeeab9170";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/zh-CN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/zh-CN/firefox-104.0b7.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "0a9228bb1a0629351a62636db29ce428bfb1ed704222b66d1dd369e6fdb3d503";
+      sha256 = "39074fc90590686902434146bb0d2e8b6b79862961e368faf1f669d0fdf63614";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-x86_64/zh-TW/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-x86_64/zh-TW/firefox-104.0b7.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "42531087bef983024116ee5eb4d42197ddf6252c798944e7674648b76fdf57b8";
+      sha256 = "8d576d5b997bb7a38fbe2b4b636bf6b62b8699f17f2843093167b41eba4bb25a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ach/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ach/firefox-104.0b7.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "15488bccadd886bea058313e062b811120f42978ab5d9f7ed05ccef88026bdf9";
+      sha256 = "c5fb0c68f29144d17094766cdfbbf08fcc0db7968be2df66cd5f7610b73d26e4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/af/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/af/firefox-104.0b7.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "7a8a204badfb379007c116d4e7476111d19e72928ae3ed8557b1a7de7535d4d3";
+      sha256 = "49241e83e0cc1f204eb9417e0005b29402931c209df1d95a90dc847a0a1e9eed";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/an/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/an/firefox-104.0b7.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "4fdcb8886f89c586b1f58eee2300276536bc06d024aa9864a447235e74f5e31c";
+      sha256 = "ce14d78d18b8a66bc30453e7f7cb82d2bb373c7f7f132c4c0ac90fb52d37f64c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ar/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ar/firefox-104.0b7.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "dc621abab4c6e678e8910569b21fbb01c4ca54e0ca80b0585c5ae2124f199e8d";
+      sha256 = "ecb90394a735f2e7a0b376326647f19d0ff269de79d4b1f20c4fe9299566dea2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ast/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ast/firefox-104.0b7.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "afbe9810b9f326ee8b561acff2e2cb809793177daf00bd467bbfae245648fc56";
+      sha256 = "f0f5c82b14cddb90969ca0105b13797248fd6593c80e8e7fa67b3b484f415830";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/az/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/az/firefox-104.0b7.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "806a98e46682d180348f772de1aacad415948e77845d00087d4717c40a4814cf";
+      sha256 = "63c4dd31b05c96d18478e481c08dd4d7068e510a6e10407f50ecb2163638b99e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/be/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/be/firefox-104.0b7.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "ecaeb8a69b0c1a8330748e9db299bab7920c3f7f0e3825a35cc0ac6e06ee35a6";
+      sha256 = "725fac145a220b9257f76b0cd4b75305aaba9a0560b6f5daad5c577bdc494222";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/bg/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/bg/firefox-104.0b7.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "cf499eb69e98f38eb211c1c962ea81a8617bf169b4e6309fe900f82ce38b8c45";
+      sha256 = "67b5bf06c9c8403255b5eb6e8635eb681bf9c2cb139acc5bd498a364e3c51b63";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/bn/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/bn/firefox-104.0b7.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "40d828000019191f9a5f45ac49eae01f66b3251326cdffdc395089bec2396f66";
+      sha256 = "7f328d6af6e91b2b8d51cfa1bff85534cf8e4f3953ee357c61e56b89c14c7dea";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/br/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/br/firefox-104.0b7.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "8ea216bc32179311769ec3eb9e8fa25aac44f75502a9f6d9b20c3ac0c2f6c336";
+      sha256 = "1083b2629ce457c9530876e94df4a637c604e216f91d7a23368f6576bbfc0600";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/bs/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/bs/firefox-104.0b7.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "d85c1085e8dd29f69ee7a41bebcbc6ef85118423e1684026a47e71b2072d74b2";
+      sha256 = "c491ca391ec734e42eae303f864eebd9132d25a9495626f30c7835056f4d31db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ca-valencia/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ca-valencia/firefox-104.0b7.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "ef80441301799de2d0043eaac8537a4e994e232666a315db4acfb3cbdfdd70d2";
+      sha256 = "b19acbfba61ef43fa28a473f0af9a14f07870d1cff04b70b21ecf5a9a19bef26";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ca/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ca/firefox-104.0b7.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "f5888c5c06b29afc8314f7c4bd3201c511cd8fa07322f990d7f58978e5a9d31f";
+      sha256 = "5f34772e9869787cfffd17c99d91bf556c18e2b2341a25b865863451cd63a5ea";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/cak/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/cak/firefox-104.0b7.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "4ad994ecb37604cf9caa8035750325853fd9a87072439e17b2bd0cb4b6066634";
+      sha256 = "8be118d3dbaeb301b9322962dcd099b0052e27668d5b066c360d9d586fa97602";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/cs/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/cs/firefox-104.0b7.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "688096996df92cc3d070c43ceea6abebc8dec53d458fb3bcecda0a63bb048269";
+      sha256 = "130b7554c268ed5774ab277dcc17c782a192a65d97a143844d9fb5a42719aa28";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/cy/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/cy/firefox-104.0b7.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "c10ab338b8785a0937d6ace161c36f3c05a8016d5b3d7051155eb412985c71cc";
+      sha256 = "c8a8104689052d2ab08e7f012e1cacb81ce6b162a1289a6b51863b175248fbda";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/da/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/da/firefox-104.0b7.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "04a25829cd6f56b5d05c0ccd2d26fd1e28838902388b8dd1fa2472eb84770360";
+      sha256 = "802fe1fbc426b2c3ceb4ceffae265fd554684e9316d879bc832f331ec6090e59";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/de/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/de/firefox-104.0b7.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "ee5530c4477d8a0df77f4fec8112ce1f606aee109e97cbd37aca6ddf25c4f52c";
+      sha256 = "1749ceff5a2cf10e6e8faced87dcec698f39a4120fdfa83102de6dd780e5ab39";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/dsb/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/dsb/firefox-104.0b7.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "0f85121b622f28c84bf76666dac0282528a1d380506f03ddd0944de7f2b07afd";
+      sha256 = "1de6223ffa7f9471bfa22947e3c96d8e0ec4e5ca3828365d888f873871fcb751";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/el/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/el/firefox-104.0b7.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "99bdc3c28894fa8141e5e1cf9585717b91686ab0082a57b4d7aa43e8a6394505";
+      sha256 = "5ed6c997de32ce3346cb86f177030e9ea980a7b0e23b36fdc7d4b7f02dacf75d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/en-CA/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/en-CA/firefox-104.0b7.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "5facba35ff29bee9609c94df4672df4375b7d20ea424b1b64e911bdeba5db26e";
+      sha256 = "173ca01e99979539cf8077ea45e9701794ca574e14a075db245a4c8531fdd31f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/en-GB/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/en-GB/firefox-104.0b7.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "e2ffe099d47813c705422758e78ddccc97fe99673379b2a6115d9e298df32074";
+      sha256 = "7090ad7f5bb89d68fe2f1658c141863960cf4ef142d794492133afdf7b3343de";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/en-US/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/en-US/firefox-104.0b7.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "edd09800502881bb1a3e49042c0eb1c0618bf2a0507a38dca9dc4e3fb391dc97";
+      sha256 = "287eef842bfea628cbef70d83d36c0f8c66bb3cb87203a4395ce2b9f91918210";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/eo/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/eo/firefox-104.0b7.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "678f340edfc6cfc8ca9b88032856119c0474f6944e8d67778e098100154f9a9d";
+      sha256 = "e3caf972377b5f43dd2be7b234cb6f63a445bf4e53764fa154b1b6e1527592af";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/es-AR/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/es-AR/firefox-104.0b7.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "2d2fc35fae3617bfa1ea2ac466211b64ce58b13fdcda8f301ad31f13f90d968b";
+      sha256 = "d62095676ce1644aa5a9c7fb235c35790ed6e69a678e8ee4eee40d619cc51ff2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/es-CL/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/es-CL/firefox-104.0b7.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "df84c0a9ca7a896b02d83d13ffb238e90cf69926feb3c8e0d6edfca842f8defc";
+      sha256 = "0c3a1ad277380d484b99fe8702313721811dd52829e185ef766c09955f3c5ff3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/es-ES/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/es-ES/firefox-104.0b7.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "1f87c85a46b57f99ae9bf98256fd115a15e1a86a4c9860cd3faa3c9bcc424806";
+      sha256 = "9d18c93c65d430cf2e2d97236ae5f3c4256696eefbf6b9de27b59b32e6875ecc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/es-MX/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/es-MX/firefox-104.0b7.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "eb865eff70bd7042cd5e54e2251b9111b18d484fe1dea4d4ba57e7dc9ea2a5db";
+      sha256 = "1f7a2d1f8b5e2650ca0941d850882ac1ef6d4e6c3938c0bfb964f392ba2d5665";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/et/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/et/firefox-104.0b7.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "beb51d1ea549633f09feaf220e96c3b0506c3b38baaa0772079b0f7efad2b281";
+      sha256 = "560d4b5def2e3866d6d593e368b8bd1ab524459242c0e693402fd70dcc7225a9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/eu/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/eu/firefox-104.0b7.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "d7da5f728c7858e8773ceff7e30ca28f238af7aa618711de1286100512fa2378";
+      sha256 = "d819fb28cea8c3eae4d6fde2fcdd8de0fb157608cf7e44f4e0051c6ceb615dec";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/fa/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/fa/firefox-104.0b7.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "606190d0434108a4f8c2bf87629ca119339211856ec9fda619a0bc6c2bfc620c";
+      sha256 = "cebf182f0587c8c5c754a7b2a41935632f6e34abf9eba52eb5db4f3301844364";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ff/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ff/firefox-104.0b7.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "2b3a7038abaa4ba5ffbdc48eba4e6cd2c03bdf438f8ea9b70f15c1968bb59b80";
+      sha256 = "accc4d20b5b3c1a83d18a39be292ceb3d448687f791157e12bc23d788f793fe0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/fi/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/fi/firefox-104.0b7.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "a2025ddf884826afea3a16a87716398658bf55fb5ac5b647331f4f25166555ba";
+      sha256 = "db2f6b81b70d758c03126eefe099ea1c7037484be884401c23b667de1f472867";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/fr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/fr/firefox-104.0b7.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "31adba6a0615ff23388686959327ee0e68812c4341bcf92878fb58a7c01712fa";
+      sha256 = "7f47837be324f0c868b7e19263a5ad220fb2292cc791a8a8246153e8fdf83d25";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/fy-NL/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/fy-NL/firefox-104.0b7.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "8f691e303e2d1fe5e7548184d1186f4d4a811b65cbbe6e839243a12ecef8eced";
+      sha256 = "dd86ac43630a66572d70a5d1462e56a28e1706504dad06346acebe1e8bc55a06";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ga-IE/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ga-IE/firefox-104.0b7.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "e8a4903ceb272389a7e1461693a7e6727990432ba4a6d5c98898af5475e6d164";
+      sha256 = "5b05a9fee5a6bc3dc2c3bda47dbccaae4040efe1bc2c1f2f79bcd47deba295b0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/gd/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/gd/firefox-104.0b7.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "bf6f72c6a2ecf977dc2b14be911c13f59951dea4a4d6c40cd16afd38ffc63553";
+      sha256 = "5ed592c473c762b564ee1bbb7bd43316c11d574fa296ed73905ad22ce0e815f8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/gl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/gl/firefox-104.0b7.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "af31f670691de33b3943d5a1e9f12b9b64fe53d25ef45eb44cdc44430208c201";
+      sha256 = "9f05d18352cf9814c5c6d4e9e6cc6f9045476cc1b42841491dd0d09ea024c244";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/gn/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/gn/firefox-104.0b7.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "f1a554806a9f51f8c4892eb23c65aa53f96390ca7e5e032f2c96cb26f9deb077";
+      sha256 = "27ffbfb0c84498154e325421b779ab1b0f98ea635dbe6c108497d66542dd8ea2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/gu-IN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/gu-IN/firefox-104.0b7.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "2686a4fea05aee55741ef0333c916d4be8c5573f6e7e80b587a8d2bce3c2dacc";
+      sha256 = "aa12857a5387bbb1a15dc83dd091adaf9a2ded1e5e0c56f84d8207457455d785";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/he/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/he/firefox-104.0b7.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "f4c18f2cc00f93636db310f9d9279d43bea6ef193aa693c7761ff1066e9b46fc";
+      sha256 = "e84a7050a3f71f3999634425f71876f7450347816183ef5cc626259bd228b43e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/hi-IN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/hi-IN/firefox-104.0b7.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "8a2646bcd741965d8a6835ca8d38dfbe66b607c87d9cd3b32b861dabc5e7b916";
+      sha256 = "f6a85877ebb6f1772b2b11bc8f3bb3a885a34a04194aea6f3a71342ce9c1304d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/hr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/hr/firefox-104.0b7.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "46b59ab47cc8fb194c6f5f20a1ccc2f2fb963f2c3944e91aeabdb829c1e3d483";
+      sha256 = "2cdf17bbecd55f50de8957b91aa6a04014b92afcfe05ebacf5c207b6853c5842";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/hsb/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/hsb/firefox-104.0b7.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "f4bac6b25259c55d7892477dfe7bde36d09ee85399096eebfcb3a0c5bba54d1c";
+      sha256 = "e067de18bc6eec6268efbe4e5eac9ad90d46a122eab8bd7559c86f115e01785a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/hu/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/hu/firefox-104.0b7.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "d14bc01ca1936e05f9f58a6516f1af98029d71e41f6cac7aeb6055c3a25455b8";
+      sha256 = "35d6bb0c34ab0b91e6d659bd6f41bacc3b55ac7634f0155f247355ef3db0b2d0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/hy-AM/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/hy-AM/firefox-104.0b7.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "90f4b0aa50a353109ce313543abee0606c4155a2610105ef9537319e3bf9f137";
+      sha256 = "3bb3bd913e994bdbf8c335aa7ca95f608bf73441a7bfcf45f3d8a189cf681dd5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ia/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ia/firefox-104.0b7.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "384c3a0db8fe5448c17815d5ecab4e18ab25ec4ae75319b4b0075741d285fc4a";
+      sha256 = "392f477fddaede5225a84dc320f752b58f887c289cdd14feba8334fd1aa4620d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/id/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/id/firefox-104.0b7.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "c8067e2bbe42bc9b639098e463f69c53475d949ce883dc2f108a80d62424c0f5";
+      sha256 = "c537cf21f9dd446ce0d46b2aa58a5934b6300ad4ccfc24f1b42b385348eae31b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/is/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/is/firefox-104.0b7.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "33b049fb59684b094b919646994c446c29d4d3c533ef97ed5c592b86b621ca2e";
+      sha256 = "2d0b7192df82b4ef9d6afc038e392ef5778a1d72a4c98da956d14170954fcd17";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/it/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/it/firefox-104.0b7.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "1f3e0d9fc78f51946f2d35ca6ab977f53fd58ad0f80412dbba23fe97c9b8bb0c";
+      sha256 = "a251e0e96dd2d3c0ad86b80502724ae8820585402feaf8dafcbde8fd0a9a72c3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ja/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ja/firefox-104.0b7.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "41fd54681fa8ff564fbc202cef68cf4f63b44764dca8090386eef4f0d7395de8";
+      sha256 = "71ebd086b0d2f5309688f9134b4241dfae95f4de1845d4e847c44dc6f235d59f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ka/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ka/firefox-104.0b7.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "a46ee22485e1a51c0a955a66a388a4afcad842ba162fdfa4ccf8826fab26cc55";
+      sha256 = "ea6eef7ee3d83d31f61aa51a1b3df6f6ad70c92f59a1bbb3611c232c18061818";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/kab/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/kab/firefox-104.0b7.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "33192258d78d383eebcd465bf333d3a59b92dcd87fce6dca72bbe59fd10ffc4f";
+      sha256 = "4db31c6c9399ca7003d9869f66c9752f9680d8ad50d5af3278400405d2943483";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/kk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/kk/firefox-104.0b7.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "90bb4cab46a5827bc2e9abbcc79952f033b132fae628fb0f9697a55c69b9e049";
+      sha256 = "846e0d71815f9b57f850ce5e6b16e0e798fdca69566d5023126ff31faf50e897";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/km/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/km/firefox-104.0b7.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "0b70f38800d315af8377a8a7db8f1769b559ba06f92fc90bea3ef9c07dcda86e";
+      sha256 = "0a9ff6cb848b8ebea1a85c49287517ad5e638081d6a98fb5b127d44fb3a74a35";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/kn/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/kn/firefox-104.0b7.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "dcb383343a002dec453abe185c02735d52e0f579e940104af9311b701a4a1d81";
+      sha256 = "736b480e20437b45f3f6b3d5a9383d00b661fd46f0d1f13c957e09a0adc01df8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ko/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ko/firefox-104.0b7.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "a60f64fcb7fe7456ce76f696bc17e1bfb6c2a3997ff79e090ed49735c6443a44";
+      sha256 = "f6d8278a705fc9eb2a92ced96ca43df615c41f92cbf8091af49daaf929130e5e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/lij/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/lij/firefox-104.0b7.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "a2dcd9632c637a52695a0d2aa085c329a7ecd19443bbba27c232839f9b64ed6a";
+      sha256 = "95c26a33938d1b3cb7bd2da7e3397b366ca3059a3b8648e2a466855cd71db321";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/lt/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/lt/firefox-104.0b7.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "c6113f95e4c8387b9de8373838fd08638c25438995f27380f30e2e22bb211877";
+      sha256 = "466193fd3373f60edf2f5a24a3a9273286560824aa2a350dd407a3f836465f56";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/lv/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/lv/firefox-104.0b7.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "302a146408cd24bd215ab2a1ada0b6306e30e549663f9ab85cdce528a79eb088";
+      sha256 = "2ffc9bfb18b627031be14bc9b4465fc91112035c379592face1bc8c2fa7e3679";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/mk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/mk/firefox-104.0b7.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "72288455347b225f2e773df5bfc82d51709b493a2f7aa46b78da0b5fb4d89b35";
+      sha256 = "dacb3d6568ea81d7702fd1845f2db1c05f64f130c7a39ced62429fd31cfbb377";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/mr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/mr/firefox-104.0b7.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "f67ebc75fcebc1ef25ab6838ff34a27395d3babed0e08014c47b213a4724b9d7";
+      sha256 = "19a2415576e3eb77d992d112db55f6f9e8ac5d0ddb3e9e2f4497a1d8f7089cb5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ms/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ms/firefox-104.0b7.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "612625f0ef927d42b9ab526c10f67c443d60bf0714f57570eb76ce97f84c2f4e";
+      sha256 = "52e8c5669d72a0d4701170e3430080d5c34badd83dd5a9171478e9d89e1bb6d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/my/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/my/firefox-104.0b7.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "b3bc2ffb890f6ae3316be0cf7a987b186268cca8d9df4cd1ee6f390e689f1148";
+      sha256 = "1f4746453e75d606e58357be7dcf1a051252e97d78acfd89c695c6d231b1815c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/nb-NO/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/nb-NO/firefox-104.0b7.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "0751f4007a434ad1241459e13841f66c32664b1c2eba53fe936c559acb609a36";
+      sha256 = "113afc1141d8b9e4f965ffa8723431c852f3813cf70911b6aa79414b3bc15f22";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ne-NP/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ne-NP/firefox-104.0b7.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "72e278fbb6e073166de952f70c9542e5de2fbda9615205a5ca8e4abfcaf2a199";
+      sha256 = "733491e33bf399735e3e4d828a2e059390466105414a5cd5e546ab600ba88e7c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/nl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/nl/firefox-104.0b7.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "5fc45ef4391c93b081e5690d9c759547e47bfba389bb6143c5f00353a18cf22e";
+      sha256 = "55fed7c91a3730aa076ac7bfa613e2a204ba680d28a3eb9e28c82589171f5144";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/nn-NO/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/nn-NO/firefox-104.0b7.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "1d7182f883569941f4a7c2e7445f5b2f39f2b9ace02b42c7f4c18108539c2778";
+      sha256 = "a6c1fab17f5c09ad1e2c65c85e1616596524952c826980dff035612b97caddc4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/oc/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/oc/firefox-104.0b7.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "5a9100e569886a334cd5f6518f279a537482fa0a32ae0e663ddb3afc47b3f405";
+      sha256 = "1a0755981baa9fe75c1f02dd1e0b1e7cb39dff2c7e754d6f5dbb54f8d58319e2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/pa-IN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/pa-IN/firefox-104.0b7.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "fd310dab3a60759d98059ed81cf6c2cbf9a422ec9b56a590ce774e1a5377576c";
+      sha256 = "e5af52012f9169482f8b8176b18e5ecdf929dda7884a47a7d56781f031a367c2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/pl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/pl/firefox-104.0b7.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "79a8d53d9143d9208af8f63c96385b94a2b4ff2bcad40bfbc8250d792b1b3688";
+      sha256 = "d7db5920749a62976be96cf0a1b81a3af1822754e672c1316ec9599e8bed7c7f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/pt-BR/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/pt-BR/firefox-104.0b7.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "bbd6b280549cc9b446346e5a3bb3bf7d091782c6b17d27e22767cb5056bfa789";
+      sha256 = "798e8065f1cae64a92505a3df4e427e2676d6a1fbba5fe02708b06ec54c00c68";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/pt-PT/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/pt-PT/firefox-104.0b7.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "7b246df8ad2f65bf29d97dab9d8f78a66fd7f5287820d4db21ca284b82ebf939";
+      sha256 = "cd3949f043c7b1816d092e3e1a8c18abe080b1bec2a41d7bb4d3b0247038fe90";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/rm/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/rm/firefox-104.0b7.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "a721ab8316ad1a3dd12407a2b68986dbbf32632b40c1151640dedae9ad7815c9";
+      sha256 = "7102fb9198ec09408b3935412ec478ea68577d1dea3cd7b45dee9db8e4e7dd52";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ro/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ro/firefox-104.0b7.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "66d9d112528b9b6f01cde01d7a251c28821e30b435316f5bc0afaaf9436052af";
+      sha256 = "a3c0fe0b751c9125c42bae466d0668dfb4ede83e3b9f09c2542c4dbce2e75c35";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ru/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ru/firefox-104.0b7.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "a7de24d79cf333da45b474d8ef9eb5b5034f18eb79b8d8590cd5f39c7d5de130";
+      sha256 = "a87b1eaf6b16d7b6e7e75a2f404aa4bb8536b975c5bbb3f0037fb546388efde5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/sco/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/sco/firefox-104.0b7.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "9d8754c1a5e2c4f22d1ff5cfbd39f5092840e9910f58f0468fcdf8df4306639d";
+      sha256 = "88cbdd5a21044a646acbcf58d048bd48ac64b1bb4731a57b4569ac3680d276d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/si/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/si/firefox-104.0b7.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "9dec327ac9b519dad9d61cfbebdff117f61f3a44715379ddd1db38891a13346a";
+      sha256 = "9a123240ff0499906cde5e9cf3458130c965ccdeb7ca9a45d147b33a568d40c1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/sk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/sk/firefox-104.0b7.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "8b8a8278d15d848361a854f898c021e2ba875da54921cb5c5aef260929134b11";
+      sha256 = "b099016ed424ffe5c423f331a4ed4f729d79b4c8a962a25d2710f102b6df4213";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/sl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/sl/firefox-104.0b7.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "f605f1d0e94e3ebda1491efde196bdf33c35ec6c34703a6d5559afbc47dc4c17";
+      sha256 = "c25de52d1c7f7e11ded668e98df40daefd8c3590bc31a1618d04f39c73c1023e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/son/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/son/firefox-104.0b7.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "7d0b0338f9ed0dd5e214199cc4eb10624d07078beb9945281f01721a829dbf9a";
+      sha256 = "b72c5a5ee7f2136903069fe94b3ffd8508650e52b96ca25093bd8b46fc7d9418";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/sq/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/sq/firefox-104.0b7.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "546c338eb2cb4d185e597f0ab94186856ddcad7a7725837e9f0d3b6460363242";
+      sha256 = "67a7e7d22f8db247f8278d0949b305a8842336b78fad05e9d9cf07a82a435591";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/sr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/sr/firefox-104.0b7.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "851482b831381a8fee93e7f2bf627675d6a0a39b6024b613c319e28341211bff";
+      sha256 = "48b0a7ca56f6616335a63b7f2b4726e76dc6d0fec587772a2ec8867e530d6331";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/sv-SE/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/sv-SE/firefox-104.0b7.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "5116d06eee5bfe3d906ce833ad5ee6ec01df739ede6d2a0bb742964f5142b695";
+      sha256 = "eaf3f88dc9e8b541c43b09bce01097842eb7e6302e589751ffe41f63586a9bfa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/szl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/szl/firefox-104.0b7.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "503a4fedd181a8fa1b5ce578a6e950d7c8e8c9d641a04bac617a4d5505c54802";
+      sha256 = "e996a6419f4274b67bc1a1f9917c5ca8e15ac9ad5428bad82e495fbb1f3c794c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ta/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ta/firefox-104.0b7.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "8291466aba0e6bc86665a605e81e01ab2fdc3e94310f90284319a585a7688d1b";
+      sha256 = "58c9724d8c547b4ed4949c0ddfa966e3d036e7621f6ff19e3222699a14b9905b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/te/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/te/firefox-104.0b7.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "6d5e52745638471ace3790e1d162f3eec0814f7f38e49e3041cdbdde84c14ebb";
+      sha256 = "f70f1337c005a6e262c76ebbc2f92e467765ff777ced3a0d2ee7d3318e0124f5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/th/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/th/firefox-104.0b7.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "1983264e9e0681edfbfb1425a24af506b9c451bb2947d153aeab4d421a2dad94";
+      sha256 = "524916cf9f44f6d834c8212683a07b51f30c48033567e202f6cfeae788a243dc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/tl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/tl/firefox-104.0b7.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "42b44c25ad8c5e7f69f4500411d41575a44efb943fb62da5c2a0844a79f1bbec";
+      sha256 = "63cf78d2ab388095b7d981926d85b476c45335279df046d461ea8540a27e4fd0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/tr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/tr/firefox-104.0b7.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "68e01ef5fe17667548b218b1b69b7ad9b9017647b5695623e6ab6b2ee7e704a1";
+      sha256 = "0fce446d615d0274128cbad4876932bc0180d482f55927883acca05f9fc9c6d4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/trs/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/trs/firefox-104.0b7.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "29adf4bc2783130d5b64edd8ea812000748938538b90f47e1f9ec704cf183752";
+      sha256 = "0afdd96668b1243cffa233d570c7163870f04a7fb8e83b0e2025b5084415c886";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/uk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/uk/firefox-104.0b7.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "6953e34511ccb537fbbf2a6cca6369c2f8252e3025dc459bb809ffd44f602ea1";
+      sha256 = "dc1bb67430142b4fdeba493bd4b8a20b24d20b39a29c28b023e38102051b7b3b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/ur/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/ur/firefox-104.0b7.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "6479f088e60bc401346ba93be6711d83f42e113c3cd9c71e02fe72e2fee18d2b";
+      sha256 = "74bf8d4609afa8f5cc114bd18af5d4170112089baa8fe3850094e33484f7fa7a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/uz/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/uz/firefox-104.0b7.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "99217c54b034c995203bcb290b6b07ddcf8dfe3f0d4f67876656e5930a813e75";
+      sha256 = "2508ff1a9923d0a357b8d15e62dc846a5596d8075f45acbfd1bb94ba27c8cdcd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/vi/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/vi/firefox-104.0b7.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "0b714adab63f4551e2837b6fe439f1193d2c097cccd0d938e6ee069bf6273cf3";
+      sha256 = "77cbc261a0dc08fc5381caa4b0045aba114f1aaa023719e25e5398fcc07b002d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/xh/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/xh/firefox-104.0b7.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "f15315fdc1e03b0bb2f834240f35a695b3f1173494b2ee1eaa36d7b154fcca4e";
+      sha256 = "3ccfc2f13036a73cb36cd2eefb119082eb81816c4b33f3062e1364e66ef52e70";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/zh-CN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/zh-CN/firefox-104.0b7.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "a959f20cea8596ef0447f0823056a6e500fdc6d38fe9bdbea06fdbb8ebe93973";
+      sha256 = "060c34d5922b4a84147a6218364b2299494a0a7c81d2f204678c756a79a9c35e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/99.0b6/linux-i686/zh-TW/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/104.0b7/linux-i686/zh-TW/firefox-104.0b7.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "e2c8da8c23fbb7817ef215c035042d04f6a2a0705de9924c66c80759deb67e1c";
+      sha256 = "b355b25a35939f8602bac8e5d47b7b415c04e6c820e0622b00038f63e50c203d";
     }
     ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
index a71cb84a05c3..5d221a9c70c2 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -199,13 +199,14 @@ stdenv.mkDerivation {
     inherit pname channel writeScript xidel coreutils gnused gnugrep gnupg curl runtimeShell;
     baseUrl =
       if channel == "devedition"
-        then "http://archive.mozilla.org/pub/devedition/releases/"
-        else "http://archive.mozilla.org/pub/firefox/releases/";
+        then "https://archive.mozilla.org/pub/devedition/releases/"
+        else "https://archive.mozilla.org/pub/firefox/releases/";
   };
   meta = with lib; {
     description = "Mozilla Firefox, free web browser (binary package)";
-    homepage = "http://www.mozilla.org/firefox/";
+    homepage = "https://www.mozilla.org/firefox/";
     license = licenses.mpl20;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = builtins.attrNames mozillaPlatforms;
     hydraPlatforms = [];
     maintainers = with maintainers; [ taku0 lovesegfault ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
index 25a81d11efaf..1108c7c8ee47 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
@@ -1,985 +1,985 @@
 {
-  version = "99.0b6";
+  version = "104.0b7";
   sources = [
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ach/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ach/firefox-104.0b7.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "0bb4605a97661502cb23fe2ebfdb1a31831f8ca015349b3105d1245fcaa5eb69";
+      sha256 = "3a29171e70a70f1a12c427068431d9af5380141dc2b0b46c0a1384a344239478";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/af/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/af/firefox-104.0b7.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "564fd8895c6fa6aecebd5a7250bd73df45a6e51f90845d9597e59cd9175b6c2c";
+      sha256 = "a02348bd6262df9b178304a40f65b2c94fd7934b23fcaf2159e197948c4c395c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/an/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/an/firefox-104.0b7.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "76035e42b93995e6cda0de737981760a0025013bc3330142b95ba7329d54153b";
+      sha256 = "fcd4c3f8e7dd17c04184328f1ee9954eb43192d6c743f139efc3951a63e61e11";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ar/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ar/firefox-104.0b7.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "31abbbdf4378559e6b612fd3b0167bbaad332edc47d6ff67e8d9aa7e01130808";
+      sha256 = "c4df6ba1eb15f4db92f5d7082fe6abd5d39a3fce7ab0cad3bedfbb75356b20a3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ast/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ast/firefox-104.0b7.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "1c4a2c370c3f566823c722082a3a9f149050cb7a891f3a1f21b7ca8ec899ca92";
+      sha256 = "a6f6d9370ae5340d941d5702a8aba84646b7db1548ea5395bbccd09c7e4ea575";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/az/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/az/firefox-104.0b7.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "b1d0effa84614c985001705630da49b70f09e91be3715795fc18d926303b6b95";
+      sha256 = "a8cec8ff8cea8424dfdb42671639a808cdd14d1b38f9b728278df4c43633dd40";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/be/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/be/firefox-104.0b7.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "d0ace001eff838f8dcb80090a193307e143a5c1f3b1dac143ded5af3fecbdfda";
+      sha256 = "8d42f4283fc180100129ee56d29d263e672705e4edc86043c1f2cb6d6ed97feb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/bg/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/bg/firefox-104.0b7.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "784d6029972a843829783581796263899371c777cf669f0e4f6978f35a8d6199";
+      sha256 = "87a01e4a9c399165f35e4506bb748c182c8deeb4684f01a118d9eb7c7f6b8d52";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/bn/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/bn/firefox-104.0b7.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "7cdc3a6f35c2a56b87a58eaf3112148c51b2d2d0fe5d9afc5deccfb2d2269b2e";
+      sha256 = "af280cad4185cc02b9c2ad6462cbd90e2a0e5087f8506f60db38485027ab2d20";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/br/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/br/firefox-104.0b7.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "abbe12c9d887ea98d85479105bf2640bdbe3d295def41b626d3d8feef3627b36";
+      sha256 = "b34d9c8b22f33e30c5542583f26f3c4d27552e553cf07e815b380e176e4bbdb1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/bs/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/bs/firefox-104.0b7.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "fc1076c2eda5623869a3af5c850fb51cf8611501f51984c85f690b4c545cc93b";
+      sha256 = "78533ee9c1a9d3faabe25b3e913ec84e5e80dbe0f1ceefe085293192483ddff7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ca-valencia/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ca-valencia/firefox-104.0b7.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "d328055c61c96c92dd05989c23a3f8f49b36cb755f72118c21331f986ba3b44d";
+      sha256 = "08df1041cabc316fbdec50c8d14a8eaf2d4cba46e539bdc5d8059849923e95cc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ca/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ca/firefox-104.0b7.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "6a020e56c5f4136deff38f07d94b516971af1a31a804384a50396dbf6241877e";
+      sha256 = "6eccaf9ec8861e418ffc8d42a0dd478f639eb5191c96dc81979f1b82c98b466f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/cak/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/cak/firefox-104.0b7.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "c6298bdeba82a637bb3903aaf73b9de9f0a3ce4ec22637b1ee1340273b7e36af";
+      sha256 = "c2368464639d26844eee07e47a4932a12b9056bfaa0440b639d41e6e00fdc93d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/cs/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/cs/firefox-104.0b7.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "1facd79fe087052af58205d2a0a9acce68a1d9bc58d1a3bd3e49b740f6e51647";
+      sha256 = "022e1a2193dd58c3ff4b9d7a4bcb44fcde00d141c05d7df52512174ab58403c8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/cy/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/cy/firefox-104.0b7.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "e7305badc55114c4a39edc317202338b3e61feba9844fc2cd8edc1518486736a";
+      sha256 = "f01222faa41004895b1224df1f2addb5b1437ebf695f4958a222245048ec8a0c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/da/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/da/firefox-104.0b7.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "6b1d2403e1e74c97c763476a128c56079d546967c87f1b225ac790d9acb6940d";
+      sha256 = "89d31342a8c2a1b4420e3870b86248dd33a640b0d29107bb0110c2a779c5f029";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/de/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/de/firefox-104.0b7.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "c8d01b9a1bbcdeb1fa0fa63ff553209d095280ebad4eb03efa47e029505b8204";
+      sha256 = "aede8b82918d04fd6850d4f376e3c623fd4063c2a3ec4bbe53708305263fe707";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/dsb/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/dsb/firefox-104.0b7.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "bea09c23f3099c85e415bb05916ab9e3374f78e897e2b8549fb9f67895b7c052";
+      sha256 = "d311bd27222a2e23a48b6d2e20b9e8fa0bccf2b90082b9f58cc386744638ea89";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/el/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/el/firefox-104.0b7.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "bd740ab9aaad78e4b16e42d610ea1b914db95e2f8396f0e9c4803e38c9810f20";
+      sha256 = "8e5234f267d505d2d60c694dac7c6377a368bb8b1459783c03cbce171e220526";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/en-CA/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/en-CA/firefox-104.0b7.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "acf5c9da684d5f7bb5b25e5fbd62d5dfafb1a5f33bd6c7baa385a37967e516a1";
+      sha256 = "654f6a7134460414a971fb1b4d0ee45d793d39af8d24bbdd0f49b34c4f9c4bbe";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/en-GB/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/en-GB/firefox-104.0b7.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "76cfab3fb29274bcec47ce72e88f783668653d3f8ea4ad00637bdd7ad5d32364";
+      sha256 = "40277694f96a35b7fd0fecab0acb0dce416612e7347d38326ecb2638eb9bfc22";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/en-US/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/en-US/firefox-104.0b7.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "798f68125a37ac1e60d72dff3a773cd167075a58d523d7d9659cd5fb511e2dcb";
+      sha256 = "80317c68a8ce5a5a06d3dd9fd44445529172ab9ebf4711a29bd990a5f5c44838";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/eo/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/eo/firefox-104.0b7.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "0b65dc59679b42a298484d3901f3f47d6073f08e260a792a6e80d9c5a0e6ad0b";
+      sha256 = "0435673da58e5f090de0d8a4a92abfbeb4f5d30f5daa7bd1a457fba05a4e95a6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/es-AR/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/es-AR/firefox-104.0b7.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "3a894741998ee1a2adb6def1c8d548b2c5fcab8fbea655a013dbeef9a29ab228";
+      sha256 = "911dae749d3cfd83a960290bab71548d6119941acbeecf2739acc78f04a090ea";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/es-CL/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/es-CL/firefox-104.0b7.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "1964534e196d426a9d6dbe664dc16790f010214cfba85e98f5df728e110e0a74";
+      sha256 = "e846a837bae039889dbbc739f0231c211d2947023adac42a5b9b6aaadfd5754a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/es-ES/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/es-ES/firefox-104.0b7.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "32b21ccb56fbe2e46aba0e21c417e2a7d3404a0a3487186c75d042fd84c5033a";
+      sha256 = "2d23acc854d247185c13d31fabc937015b5d850af4d698d39543b8f7d0e0b4e9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/es-MX/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/es-MX/firefox-104.0b7.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "d70ff15a4cced1028433e603151af021be98d1026322203f0412605685611e5d";
+      sha256 = "0707763b95490992a6dfbe6d9ffca5d425772a66bf99a93dc109b7635efeedf2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/et/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/et/firefox-104.0b7.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "df844133edc74d396a2fe66b0a71efda2c4797ca7110a12c4c7e620cbacbfe8d";
+      sha256 = "7d439633385e0ac8023efd89eb6a404d0b772776f39d4d2fad5550837899c3c3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/eu/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/eu/firefox-104.0b7.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "1ca8ba1a7ba29a0c21d7bdf5cbb046fa0e145a9bdad5debd93d121b512a060a4";
+      sha256 = "bf72da2439739d638d5d3682ae08651cb9bf75eea51f98eeadec44721ee275b7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/fa/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/fa/firefox-104.0b7.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "a4c223f683bf75c96650d939c56aa17bfeca975ba8863e44dd5ce0449b436b3e";
+      sha256 = "8c4fbdd82fcc27a5f3a4a97dafe322a83d4590b26b6234787f4049ac5b25a4ee";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ff/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ff/firefox-104.0b7.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "6b165789213fc3f9c3f46457a04974e3c718b2c0aebd44c57c7bf8f41c73687b";
+      sha256 = "1b946484c23f2d9f8db5c950addc83662e530e7c3ff5fa46dbef88cfa36a1173";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/fi/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/fi/firefox-104.0b7.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "eea67a8d94f324a9ab74caae5a7755f9505781ff690760a06a62ad034ba76bd5";
+      sha256 = "2f66e87d3e77d4d09efca3b6b0717fab0cc93a1d8dc3d59faf53a1fbdf63cc92";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/fr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/fr/firefox-104.0b7.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "d4cc1a70f8d020870ccac0b023574b9c0f39fd44bbbcfd8a35f6c688183f2a9a";
+      sha256 = "9bcaa9e6f051adf34f021009404caa4fbeb86f3730f82ea4d9ebb9c799a95879";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/fy-NL/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/fy-NL/firefox-104.0b7.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "df49ee1a9db407819fcc7baa9c6bc9c6fc9ab2c2b57b08d85c9478f1b0aaf6c0";
+      sha256 = "5c2fff71d3f21d5aa4b08a0833904b4141fd692dc174bce4bf3b2865f01de859";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ga-IE/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ga-IE/firefox-104.0b7.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "e7e846a95ba695a8a3edf233ad31117f4d35d4942784c5f6c5a1ebed7f2f8e4a";
+      sha256 = "acbd119564330d114a4b897fb8f0a50713dfd047015ce65e2cdd24e7f41069df";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/gd/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/gd/firefox-104.0b7.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "48ef5fa12ec7415ad23a5a40f2f882147e03ecc074b33b173f413e53cc0cdde6";
+      sha256 = "34e279d036269fce44d356e52d6c7e0b80a9331121513be9c02539f904a47db6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/gl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/gl/firefox-104.0b7.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "b44500b87f3b2219ba10e06bd937ba06784fc00085be12a16f69fe26f7733317";
+      sha256 = "75b7ec3c7e88204f64f3b062360bebaacecacb1de97ebc06f6a7b5ac40f842ca";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/gn/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/gn/firefox-104.0b7.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "0e521a61d44d1058ceb566ae58272e41f0aab7f2267555781bb3235ff5e3a59c";
+      sha256 = "9594237a4d117cd31ab2b73aa3ebb0b4ed66db2d45eb69f0025fb9f86b0b8dd1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/gu-IN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/gu-IN/firefox-104.0b7.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "2179c82d7763294f5adedb8c905ed5e009a4d3d176fae58c7503404015214c51";
+      sha256 = "6ab1008b9d67eedf72080625fdf2ca757768b6771de12493f0786f87a917b7eb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/he/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/he/firefox-104.0b7.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "69383070d17f2ae68363e8a29efc53e2748b8f784137c854162ec0132295a9e1";
+      sha256 = "a1c81e20eaba17a93deac71dc0818f9f60374d7a2cfa981e5a6ce8b111842aca";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/hi-IN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/hi-IN/firefox-104.0b7.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "71e57a59cfc523d5c1c73c9b5547b3247170865a95022e5bd3098967c3e6002c";
+      sha256 = "7b03ae1261f58922b59cfa3f3d09f7a2bd573cf0909f558ed871b290edd03fe8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/hr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/hr/firefox-104.0b7.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "9ea82b192336e83c7ac450dc7068f2730c031f43633a87b7fa554651cf64a912";
+      sha256 = "8ddbc310ebdd01e710f51fd5dde8c6ac6b5b78c9647bb970a3884588d9bd5127";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/hsb/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/hsb/firefox-104.0b7.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "e3814f823f3bde2812751e9dd6a2b51a8861952eb04cb845d543a9252501dbba";
+      sha256 = "b6fca6037be048535c6270b5bfb001273b26dd04335fb324ff738f3c3e775edc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/hu/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/hu/firefox-104.0b7.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "e647f86de2e7687e23320aa0f36d96743f5da2cf43b2d83444a41506d13face9";
+      sha256 = "8b5faf3cdea4c4b8100565f9bcd041019cee0c787367e50ef474ec49931a44a5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/hy-AM/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/hy-AM/firefox-104.0b7.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "21cc172fad6136a17df0a6ae4c6e90ec72a02db744cfcb5252cedcf48223e543";
+      sha256 = "ebbfd1d1d75f5b98276ec8c2a3087235dd8bd30baa3218c977cc70196ea73282";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ia/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ia/firefox-104.0b7.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "5f0c85a36ec40ef57cfa2bbbc1a4663ce10c8659e0d6ecad67ea993186c9cbb6";
+      sha256 = "4f60e1a5675c05c9f08be0c42f5b2032651140ad2a455a7a8e79ac0b66b34552";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/id/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/id/firefox-104.0b7.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "e6671d2ac6b63ea4f2a84d1d0e89038ef1030d85e84d6b47c5b878ddc8d96b60";
+      sha256 = "bda0416592d0d7916753a26cc1b85832695399c3e74f1fc5056d50d0999f5f9f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/is/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/is/firefox-104.0b7.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "5bcafb210fa3aa06d56f17972d94c17faaaa2937948890b993bbc6c9bfbeecad";
+      sha256 = "7f1321212f6273601bee9103587e344142cbbdcbaf8cbb3c42f6645ef06ab632";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/it/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/it/firefox-104.0b7.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "3c14104a82a312324c1d42644eca6f80b7375f946a42edcb0a23f8a824bd0eb7";
+      sha256 = "41ec8fc8a4090104167e2c7a95ca35c637f718b2170d865d4dfb14886bd8ee98";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ja/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ja/firefox-104.0b7.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "00713bc8710add3312294aa755c881701ebbb2d00e1f5f242ca12d102ab6f19b";
+      sha256 = "204aa16622c86c320b6267bce196decf941d7a001d625c4ee855514898969d2d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ka/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ka/firefox-104.0b7.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "ba6985797ef85bdccb1f81053456baddbe2cfd9e1097e42b20617270f681c1ad";
+      sha256 = "0b154c64224cf18613638deabfd5d4b15886170d93710c6a92318be032d79561";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/kab/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/kab/firefox-104.0b7.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "8be17598d305e257005ba0f9ef2f7053ee7e79bf3c1b4caade77c8e5a7e8a57c";
+      sha256 = "6d5291c490e26f2d1a359f98f4a4511645a0500236e15896eafbd6e01dadf4ea";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/kk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/kk/firefox-104.0b7.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "7e142151f26355256d2923b183fa1d225e3ed26026cbedf9abcebef301dc1045";
+      sha256 = "3678444168843c0f1b83065801f3ae04bf0848401ec3ce7db4dc234d0ac71269";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/km/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/km/firefox-104.0b7.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "0df166d5a55e52ad60f8873afff5c1c43816ef99b56e1d817b4d4c29f173def5";
+      sha256 = "4d76d72f3be5c9bbba5dd0d80394d1b6b4552db15300c511a8d94e213d17f66a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/kn/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/kn/firefox-104.0b7.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "193c7b709c03212ba91ea99da00c6b1c53edebbc9390d7321bd9815e5ced8233";
+      sha256 = "897034e7f58370a0c1d0c1d13aed7a438989ce12cadd21c16e0e09578fe5cb70";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ko/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ko/firefox-104.0b7.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "d265a984bcc6a381f715eff5e2501acde0c8793b111e15877f7d4e9086ddcf10";
+      sha256 = "55bcbac866a6849cdf16c71e5e8d57c2a6bee7234b2887b03472ca9c94c0b07a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/lij/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/lij/firefox-104.0b7.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "4a8327447982439a2f9e5ecff39b77ddd2bfdcb081d9b6f89848f2c93db3b3ca";
+      sha256 = "781293c732a5f6256793c7cfc9e3248fd1a042ba686eda5642f523780a320478";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/lt/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/lt/firefox-104.0b7.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "cb2a9545762247192f909c1600097b1198fbddfed1c383adf5dfa9666ddc0e80";
+      sha256 = "768d61b034cc4a05ab44e672b191d7ac886ff90ad6cd2eb645e2ad348da5b0c1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/lv/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/lv/firefox-104.0b7.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "6ed249ade30c7d2d5ff290c4b65d3eaf3df4e49e112412cb3153da15bcf23fcd";
+      sha256 = "8d8761d67f7d16690910690fd111db8228665ba53732fc132a06322fee55a15d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/mk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/mk/firefox-104.0b7.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "56af16c66d20eaae2d6b487c3bec4f438d21effd3e3b1582579bb9c1836956d0";
+      sha256 = "b3482c4148739f98930411259daaf85789e1c92071b7d82bca8e6860aa884ee7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/mr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/mr/firefox-104.0b7.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "fa6f5e496fdac7eda06220a423683f608d6c49b0e3caada52b9fd903b5ebcbe9";
+      sha256 = "014d8e44d94613dd2a0af0c3681433acb2098860db1b7dfab294b972ac329954";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ms/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ms/firefox-104.0b7.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "0820d7fcdeb7226d067f920e7cb8a0bb3bfd98ea931d468ae58ed54e074dd1f7";
+      sha256 = "12d66ec569135d64453bee3f5d85b2b494e021b410fa41090353c063c7facef4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/my/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/my/firefox-104.0b7.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "20ab8faa3a4aa4b4f94f6c057d4fc9602201a55482d492bc6dd7acc5173364a7";
+      sha256 = "8ef435aad04be325ebaf906de3cce73af46a98b007bf812df42a40c54f0a00a8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/nb-NO/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/nb-NO/firefox-104.0b7.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "77bf24610d6ad64859c83125909b70b3dd768e90e563971461f2c18fa2cd7693";
+      sha256 = "96b26b86275b2adb32e9ad40d61f01fa152a2af3b802289bab16d15fbaced5ce";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ne-NP/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ne-NP/firefox-104.0b7.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "fe5477509d83a14875e0409f99e2336abba237da75d1e56d753e27b7d1016c9c";
+      sha256 = "e3c12895c1d027c3347db7e5483764bb1cf4ffb40391a9f4016285dd14e15287";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/nl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/nl/firefox-104.0b7.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "3b67159e8d34c836d5367a2e17b54bd2aa274e1f602ae42649afc2ba2fa1429f";
+      sha256 = "1f3f4a14bb9dd6968504034bbaa262928480fa1a2fca57c362b7afa32abb8632";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/nn-NO/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/nn-NO/firefox-104.0b7.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "4faf2904a8b9a0c315c222d7e810d2fb3e24947dda1e006ddd1f727d2f9f967a";
+      sha256 = "e7f322bd636bc2c149a851ab914ce43826e5dd1b54c0b89b6495d974413e8d3c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/oc/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/oc/firefox-104.0b7.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "1dfa10fd1d9f958d487023144b7fad8ca8d1e528954f11e28509b7e22e48a341";
+      sha256 = "5c6c035344c6915bd349d44bd89b6e62968579ea0c1aa4837f5e1ef8f83a9913";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/pa-IN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/pa-IN/firefox-104.0b7.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "e6e4cc03a47ab8ff0546457b2ee0b55b8702463ed5666c15c0d2d98716fa84d2";
+      sha256 = "4de6b90e6f4435c3f65fd58d260f480e52261c948815883bdae25f6179e8b69e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/pl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/pl/firefox-104.0b7.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "525023c756ff0a0eae303c02ef9b7155fdad5f0f41bc4e539be5ca21d1af0ceb";
+      sha256 = "40223141dfc4292c72a811c739708ce0f89f5ec11928ea46b8e71c547722a869";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/pt-BR/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/pt-BR/firefox-104.0b7.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "1a8070c38035f97ed771b02e59b3c2b0ef0073560c8ba285be9779fd4e99b61f";
+      sha256 = "8bc8c6c42d06336d20066732b118d7fb7d200ea7fe217a10f65b54559c846dfb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/pt-PT/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/pt-PT/firefox-104.0b7.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "ea356edfa8b398ea16719993cf05e65b5c63b4d2c4e589a9a26814ae275e4be2";
+      sha256 = "ffa850eda85da2d578c91864cfd95b12071d6f81286f41cb3472e5313f55a05d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/rm/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/rm/firefox-104.0b7.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "f07ca7d4233860a6271eaa972358bd05b834c7f56c4b64d45eb9af72bcf2dd9f";
+      sha256 = "bc7c3fa03190f3ec768edd7bc5f168cfec79f0597bd8bb36e088d63be621aebf";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ro/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ro/firefox-104.0b7.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "fccb8f523251dba30a73f6ec9259113142514b6d4657f63b88f5b9d9e8a01923";
+      sha256 = "605668cb215631ee327ed2d2edf25dbcc613b7f58b29ea1ba6135dfd1d40a636";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ru/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ru/firefox-104.0b7.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "d87928af8f4a0b28abdcd0386755a3f4f70d7e17e455fe5913b1e177c3edff2c";
+      sha256 = "0b4be518ead63c5159f5eb9ba9222a2c4df40fd00ddf19e854a10854ee4b419b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/sco/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/sco/firefox-104.0b7.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "de3bda2032217c56213f64b31332e8e6ea9598c7f31f3dce1a7b136c40c3153d";
+      sha256 = "05630e4901f186fa4aa604cda276c2713d4c34b24a32e32aa63c7f4d05a7d8ee";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/si/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/si/firefox-104.0b7.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "22dbdccec8073bd1d83cc236fc563aa97a3607a92e9b3908d4c8c0307dca8b08";
+      sha256 = "36b9865a670673e9adda0748279dbfbec211b9c93b8a3372f90f49e1cddd6f07";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/sk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/sk/firefox-104.0b7.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "d5f73c93ef57cd600a2c4269a99a498896b580ec99b549db8b0ee1537a644bb1";
+      sha256 = "5244ee9afed1abf530b3e014ad107ab0c0ce7019bc0a9ea3f72878bf91a66cd2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/sl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/sl/firefox-104.0b7.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "12459b203b0de94241b243b07b9f54e7ae612f7887581c5cd3ac7ca2a08a54d9";
+      sha256 = "99aad30ba4cd29f2882c62d511c53764e15bdccae4e338cd0871cc772b6d986a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/son/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/son/firefox-104.0b7.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "2d44c84feaa5c5e3595055289f84f320b447664d01c653b0a3b50f1da24b1a78";
+      sha256 = "bfd4e7bcdaba60ca63ce41adb130d3ee58aba6a6a7915b1402d1f65cbf516e57";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/sq/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/sq/firefox-104.0b7.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "fa3f9724380818a71d895252631b354ffb692f35679eb9b8ffa5b2beede8ab61";
+      sha256 = "440932765ab253823d03840cb0a576f9dd8d922eb170ef1275c6fe55dfe17806";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/sr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/sr/firefox-104.0b7.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "c2e5ad218b8cbadfda7c455266e018a6eaf9b450a905e8a73b01d02b7efed608";
+      sha256 = "cd5d9025837eb639b0ef2ea52b5dff9313fa0ca1a8ac4a99df8e9cf7f2344f90";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/sv-SE/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/sv-SE/firefox-104.0b7.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "12060ac843f03a7544db8631c7f53bcd0cc6fb15d62cd997b02a83f0560722aa";
+      sha256 = "51b301c174540c0dbe53c1ee4b2e777d6eb1296330fad8ca3e27749e92fa929b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/szl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/szl/firefox-104.0b7.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "71ace92d020f3fbd1d5e223dfaa01e3a53ac625ba5ecf074153aad8ccb640ede";
+      sha256 = "09a6d47e799be6b42db9080d0e761284342a7eaf4da898e84572045fb5b4e060";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ta/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ta/firefox-104.0b7.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "6ace267aab85845babad8b11b68e154e1128b920ed16b8b8d011d53f6dced16c";
+      sha256 = "8ded4d10a5fd39ba9f463b817a136239fd08ed5148ee36fec39de5f992362907";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/te/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/te/firefox-104.0b7.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "e381faff48999b63b4981695e7c80bb946b44503ab5275344f12b7005ed49ef3";
+      sha256 = "0fe1b8936c3e003bc4ea30211eab645ac7abc900b36aa5f856ca2cbfb851780a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/th/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/th/firefox-104.0b7.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "6c2ddea1c0ccf0521b9b647827569b78ac2143163895e67476051f8496011b66";
+      sha256 = "035d190c9a052de310d4f1144e69a93ee58a09457d403b8695d7dae1c5afd125";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/tl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/tl/firefox-104.0b7.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "9d949c9c61922756d0f2dbcff76906191d438d161c74fbe7d702c7372c11b5d0";
+      sha256 = "cc2b8bf7013e4a04bca9dcca0203b6e5c42c41f02d8f097bbc330a9a553260fa";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/tr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/tr/firefox-104.0b7.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "88763e4847b865603a7d953d54b86e6a053d2476209b4046bcb09149275690f8";
+      sha256 = "9a2d0b0894086ec62f69c372a8ffd9a146c554806fb826e0287fdea6a64e3c00";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/trs/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/trs/firefox-104.0b7.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "b6e7aa724a06f85e4eaae7e1c55e3ed1ec9a6b5664150745a257bd3f63310d53";
+      sha256 = "5102f9fc9fdb82cf2e8be971dda2d186dd9b6fd984cb0266f10b3b0b933565d7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/uk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/uk/firefox-104.0b7.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "69b200c0c4c92430f188ea12bf5e60aae18203a76e61cc163738d46c3627b137";
+      sha256 = "a6383ab8c32fceff66a82815102b9377b0ec8e5667611531c5132960b8ecd44c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/ur/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/ur/firefox-104.0b7.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "330bb00cc0c0882a1e8aa06fdf7d283eaeef04500a9bfccef50f7b2ab8becf81";
+      sha256 = "469404f5fe42fdae66cd70dca7dd50f6bfb9548bc13c23ba1e3b6b00036b0938";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/uz/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/uz/firefox-104.0b7.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "a9b7087c1deec3aedcc2c279b135b113e79739a28e31ba6cd090541505e5d9e5";
+      sha256 = "577287d546454a738fce62a9a0cdc6f5786c0e20816398da5c318ed7dcd5f6ed";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/vi/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/vi/firefox-104.0b7.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "76b034ed53b8c99cf7909a6a5651627fcd9cdebd7f8ccdbd3d2286cb19dc7eaa";
+      sha256 = "f5fec58631a6db366fe71e731f1c69e62470ac79226a8c06ba8df4a82ac5e37a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/xh/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/xh/firefox-104.0b7.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "a1c9ec73200bea835c46879d8196b380a3157c98404e6a009fbdb24b1662ddde";
+      sha256 = "8cfb84ae984237841a576650bd7627dae92168f5de28182e8c8562d5b2685189";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/zh-CN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/zh-CN/firefox-104.0b7.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "74fd44c26c503014d0fc3a32dbb726feefd572ce52697879a392996243b5811d";
+      sha256 = "76832755b698016e7434e2aa4447e218328ed7a3ce87e529f1080844bea162fd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-x86_64/zh-TW/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-x86_64/zh-TW/firefox-104.0b7.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "a9d86ddb8f5388370a28ac643e3d21a411625b7098aca9c399551f8e2c125da9";
+      sha256 = "e0691372b4f06cdf54871700121efc82511b8461d8732edf3f7d9c7e22baa373";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ach/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ach/firefox-104.0b7.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "67b0501117e5d93046031860df5dc6eef3fc3126f0b10240cc13b83f6f1cfdb9";
+      sha256 = "0ad9e439e7220d5b4f3cd35d8a85d0c3a432866399d85ff4a7284500e7485083";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/af/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/af/firefox-104.0b7.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "43b9b1107fb13b97f6b955b3abaa4f1d590bbb1747859e54bb306c9578fbdfe6";
+      sha256 = "f03a0513f9bf2a4d9d91e53110bcc5c4cde959c7d004704d646dc02afae228e4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/an/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/an/firefox-104.0b7.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "da752ce8f7a9a0769c93f6f1817649354f892c440cdd48f0dd75739baedcff40";
+      sha256 = "849c9ce898b93abce8b4dd87edaef8a4afdce2b2cc38fd01cd80819bada29bd3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ar/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ar/firefox-104.0b7.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "e67fc64daef74e78eee12a1e5d4c1ef5a89a8278d19187d9e0c67ac5ea350623";
+      sha256 = "b3087c2e7cec708b589b8bd852af2575c95c880919dc65da7a2b14395d7492eb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ast/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ast/firefox-104.0b7.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "115cb0605bfb7629b854d242634cd2797b5072f735c840a6611325faf7bc3f77";
+      sha256 = "d84db6c4d02a2bda3c47a6708c05237a1b00ad9a80ef5e99af20b985127c3148";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/az/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/az/firefox-104.0b7.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "c839a19dc4f5d938fe7a5426a8abd7b228c89a262201c019b4b53953211aea78";
+      sha256 = "877089b24cd58604e9fddbe6b1af23355aff3879d58a85840269a6c6581f6f56";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/be/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/be/firefox-104.0b7.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "94c8e688578059f8c4f7fd2a65a8fd77280b4047e845efd6ea66e34f5320d119";
+      sha256 = "51f73747cb6833ce5e50ba547b1b427f56a03ede283487556b41567e1d7c2ae7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/bg/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/bg/firefox-104.0b7.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "9f7acb26e7cd9193e9e435da3e2f4e9d9ee82195cc18e8de8295cba2446da1f0";
+      sha256 = "8c81445299e0aa3542f962ec9d2465eb6efd1415c3c18b2880ea764a9d170aa3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/bn/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/bn/firefox-104.0b7.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "93f31b395a9a42386b0de322db1f675810a3db106a0e8c583f18ad4dd0c56488";
+      sha256 = "f3e9eb95e0f27c475e4dbf54d235540cae0c4e4ebf36149ed8d5a539729ea110";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/br/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/br/firefox-104.0b7.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "a04a2b2f2b70f33bfe288d9907291aa61f2daa64d0d6802c784d7b4f44b38326";
+      sha256 = "8f75ae8815f659bbdcc819de98dbe23377ebe373970cf644c13d1feaac90c1ad";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/bs/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/bs/firefox-104.0b7.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "154456c3aeefe93d6891306fe295342aa02c294bf64693fe93943ae836fc796d";
+      sha256 = "77b9182185277d6d027e11a1bfeecd3158c41e44c76481bb560cfee3821bbcd9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ca-valencia/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ca-valencia/firefox-104.0b7.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "c00ab86f77e5113f85feb8eb14b74c2c144e9c7e08c4442b06b749ffccde2cf1";
+      sha256 = "cefb44740526364f2397813d12fb7d5f9185c259ea008ba49bc9d178dbe9c52f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ca/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ca/firefox-104.0b7.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "07de1d9c72f9d5487b9ff57ec609a2b6ce37a8b09fc81200a6cc6610a7e66b9f";
+      sha256 = "54d482fff8638e73c5a2b8da283741a1adc8e316407449bdd478616b2e6edb02";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/cak/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/cak/firefox-104.0b7.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "ee05ba6ce42f873ab79032553302caae28069d84c5105192623f1261d2d3d609";
+      sha256 = "2f7ef06b52ccc87bd6dd823e1abbe3c0b1df44ef068b8d42fcc6a5923bbcf5a5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/cs/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/cs/firefox-104.0b7.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "9b2af581c1c70b72cbf82cf656f94e65058063f0fd6807d99760dfe9b68af808";
+      sha256 = "5f8b9d41c59174bbbdc02757cc2ce10b44706b52dca7e72871ad23fd2686fce9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/cy/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/cy/firefox-104.0b7.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "f638faf94045b5e739736926e4b3e173f8830542287d46aed70337d9ac3a4495";
+      sha256 = "6d4c09fbc2f4a84d50d03c083d20e8c02281c63622df007002482426f51ea1e2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/da/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/da/firefox-104.0b7.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "3dad188b310fef15b704ca788b320d502a0a6ee59538296176fb17d2b440163a";
+      sha256 = "7708faaaf67f5fe23c66022dfb726ae051d77ae44e228e0ec2540d8ce4ee156a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/de/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/de/firefox-104.0b7.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "1bdb5b60bdf16126de86ba1413eb5ac4184f727b3e57a36d424dfe39647f53be";
+      sha256 = "7bd5ce8ab0070a9a4cfee9526459a6739fc5acf0e3d69d001f5dccb872ab248e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/dsb/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/dsb/firefox-104.0b7.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "b306d40607d73314c0e3e87bb1bce65369846be3e370943088a8e7e9731098fc";
+      sha256 = "e30085fed0906fa122267b2c38cc89a9adcfa7b88466a08b0669027db286f27a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/el/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/el/firefox-104.0b7.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "45202f79f9cbf2a44bfefa9ce50bd0a6b88485207105db4df1f26f547c1f556b";
+      sha256 = "7870eb45aceeb7121bd2f1e6254132881f423f77d08b63703d7b491b11967321";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/en-CA/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/en-CA/firefox-104.0b7.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "78020bb6fa9395fc4e2cf40645e127d0f6d6dfca4044e5c00f63a90e24824add";
+      sha256 = "dff7863179a15a2e7ec9f58d5a81266222ccd3baa341b64dece482c294a2f81a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/en-GB/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/en-GB/firefox-104.0b7.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "647947c0b765d1142947d3cb35ceb308946090e928ecbd4cf8c3eba4b57afa47";
+      sha256 = "001115773ad37cd5e33fa57451ce73c454bb2bd0e4459479eeb66c3589825475";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/en-US/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/en-US/firefox-104.0b7.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "4249f742c2918d66af2e7defe1c6b34870f258fe047ae7b38f91b0394b453cbe";
+      sha256 = "04eb37e533294d43d5e434bdf2f61de0b0c9dc8f3b7cc34bed34f68875e76ab9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/eo/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/eo/firefox-104.0b7.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "1726df9605c7deafd6963c18c4b8dbd4bbbed86814fa9932367fd04f6ef609fc";
+      sha256 = "05095b1ed33d48daf60cbe47ebc92811ce5170c61f0b53c6b4adad49d1438094";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/es-AR/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/es-AR/firefox-104.0b7.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "c3820a35047f21efc721889fa0003d8e74e13858aad4d3aea038c01b5cd6c657";
+      sha256 = "59961c23196d89044b4a63f8f7b61915ab1d9d341c608474e29d5aa1c294ad9f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/es-CL/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/es-CL/firefox-104.0b7.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "b1f5bf697007d8b6ac9f1fa057f292bcfb860d71229a7d0ad6d611ab02991211";
+      sha256 = "8ad93e88f6bc1538e755b5bb1074f55eac3ea6a2b08d41af1cbbb2081343950b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/es-ES/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/es-ES/firefox-104.0b7.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "de33571140d165d0422b2e4543893bab6435b6626333a05bfef39682ef759db0";
+      sha256 = "264f210852fb3b09a0d9cbecfc7b5baf8d1794035d3699f78cbc62a87fa3b115";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/es-MX/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/es-MX/firefox-104.0b7.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "f681be5b92c8959e0e8c90cf4c7f6cd9197e11be1828797e853310a49dc76698";
+      sha256 = "6f6b35ee4643fec207e833e877960fdc74a51e4f5e6db58f611048dd4693f595";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/et/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/et/firefox-104.0b7.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "476a0ccde58372bffea3ebfb0d88795b31db2ec622f9c1b99df51287aa8ba69b";
+      sha256 = "6d9172c67994326c8739e5e95b7e352b4fd837c1f2e160ca20fe809339b60933";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/eu/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/eu/firefox-104.0b7.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "d465a6a4a01853724894fd81e31b63b80e830cee268298d6e037e6877ae77661";
+      sha256 = "e4a5d3e400cfd6a0493818bb15b0cc871230b9f72d5246a7450b2f89298817a4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/fa/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/fa/firefox-104.0b7.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "cf8ac9c8d667ccb0066db1d20a9f43af807e40d1746931e001ec900b34fbbc02";
+      sha256 = "7da1b2a3fb06697c4ffe22814b55ff2257b9cce010a94c37a5f7fc596525af4e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ff/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ff/firefox-104.0b7.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "86dcb3f9e1d899973eaccd3caf401471b36ff70f4a4693fa9f857083e8641a2e";
+      sha256 = "3029496cbd290ca01bca962f93f6d48d65ce85b89a1cb5e87297be8b1483835f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/fi/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/fi/firefox-104.0b7.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "ca0b830aa6ec724aa31f957e7c84156726c26fa0a74ace80ecdea899a8091f82";
+      sha256 = "c5d8c6c4d99f9bdafe7531c4766f31f097f8ae49bd3a9b8db837a9bff07364fb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/fr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/fr/firefox-104.0b7.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "e94a7a54ba806e2b4baa0159d2f8cb96e79abc9c01e2526821cac8253c6ad495";
+      sha256 = "cb6265aa367b145ab95453b9ac8498386744162752710d300a94f920f205d264";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/fy-NL/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/fy-NL/firefox-104.0b7.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "cae5c9c607c0dc99e4645f756befce2c9c4ae83b7edc39cf12af81781b33a7b9";
+      sha256 = "157371b0a8c726c48a7eaf2d2df92a3101e54c5eb95eae42f96475f4c0954b4f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ga-IE/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ga-IE/firefox-104.0b7.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "b9b1cb2a48cd17179d5e3a8a3fca9ac25c3367ff6281f632d826cd6a9bb4a633";
+      sha256 = "7019704b1676fcb260d489de3214d975e2de3d5e9eab0d11aaeb53b119082b6d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/gd/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/gd/firefox-104.0b7.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "b5454de81ba2fee053e98dcb37d3703b5385a51561e45fa32f6872494cfc047b";
+      sha256 = "119bf7dea48caa9c136e2d320efd336962d8049a71c51b987d7f13eb08db80b3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/gl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/gl/firefox-104.0b7.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "be3b3decd8e75740a317f105bfa2e4c919ad7f31e391845fb60b299fae7bea7c";
+      sha256 = "2d32aaf405f7b4887b68d2b88f1cd180d95f1b5dbe86e72e1584c04ff3b14815";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/gn/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/gn/firefox-104.0b7.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "394562b739f81ec43a954f7393c5177f87d3d5b36d404d97e2e483f3000bb615";
+      sha256 = "71d03e82d49beea061b8b32e39de1e5a9612aa1b96c2c0202662ff2d8f6feb15";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/gu-IN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/gu-IN/firefox-104.0b7.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "d2e36f37146b48cbc710af7663ad8b4f7770dbb5f6a557e3f54d637e7061ad90";
+      sha256 = "da6abccb36d43813b5d875d789c8654ead6d26e3d5a91e2eef6866092d8d9888";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/he/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/he/firefox-104.0b7.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "17bbbd7768ff852dc1f27b224b77dfdaaebabaf531028c71a371bf302a9dd92d";
+      sha256 = "a713cb9a2a5e378eccff7e120526e600a7503fdfc13e3de6ff3628f2839ada05";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/hi-IN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/hi-IN/firefox-104.0b7.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "2f431a3e50ac0b74a2bda65652a5aa45c0e1b44ef0837645ec49e30c6d0d7fbc";
+      sha256 = "377e42f61f7d302095b7e750bb2de248ec0b8ce3ccf4cac348c4e07797af736b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/hr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/hr/firefox-104.0b7.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "e57e5fe2cb59c25002e9c06cd3298d9cb75c4437ddc9556590d6c56a1eac57bb";
+      sha256 = "10372c6c08809999d781b711b0712ee20ded977c8f179ff7b73b7227f3fb161f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/hsb/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/hsb/firefox-104.0b7.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "7c1eefa455afacf5b3b1ee1d04b6e793e2db210912dae58910093c70a21a73f5";
+      sha256 = "83cb1ceb12936a9739821d26807bbc122164c0c03672dbf83dadc9bfa55d1d70";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/hu/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/hu/firefox-104.0b7.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "d2b02034ce6686e0743af6444acc2a23ed657124bd7bb6ddfaf6d24cf11730b6";
+      sha256 = "cf88e8cf9beb37a788405bb6a5d2babaa23be12dada87c638543b1336ad7fc24";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/hy-AM/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/hy-AM/firefox-104.0b7.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "75589d2abd9488269693c0a0440d6359bafb354b1b5ee91b90306871903eda0b";
+      sha256 = "25e1bfb6c12d93c8fab2a6a3dac47c024774c25c413626c2333185c3091215d7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ia/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ia/firefox-104.0b7.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "b26efd6320a41a558383e22db49cbcdd930161fb48ad0032d24e44b57b01f0c6";
+      sha256 = "77aef0ffb396f03fa219931e0daab463238184adb24e42f3e27b8ecee8b8f0b8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/id/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/id/firefox-104.0b7.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "d50fff8b0ff7ae5546ad3f25e485ef51280bd022708e3d0aae97d99f79788f0a";
+      sha256 = "e60b11010b23ff0fcc2f1258f2d63bfa8b3f55c17ad2f30aa23502462d377e12";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/is/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/is/firefox-104.0b7.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "4cf7fbadac8084b8e134f6110ee07076ddd93cf00a10b6ef3d6276df9080bdc1";
+      sha256 = "cb9996cbc358d0034b8c0e647b9f06bd5bf0c8f91362c874abf9008521c18626";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/it/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/it/firefox-104.0b7.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "6fabf495a730600869f6d1e2d9382120361f5061e3a893321f68a6378f7eeddc";
+      sha256 = "37874e8a79e609aca34690fc1f4f3002d0eaa73f152f937387e04347ff7b5555";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ja/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ja/firefox-104.0b7.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "95a537b3306ae1f6bfe9c4076042d6c29c6478c0f32e5aa4a01e800c1d2a75a5";
+      sha256 = "6123d0348d6976ca06106f5c65f6718b6241bc66db3cf39afe9c08fa497d6965";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ka/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ka/firefox-104.0b7.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "e73b2b555f7318650ca1ea20f9d8c1fbc933d230eba3eaeb5e5a47dac24797b1";
+      sha256 = "f67a5e2b020e3cb866a5527a7247641c471d087c4703c6cc07a36908c3a4f28f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/kab/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/kab/firefox-104.0b7.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "cd55879a883ac4e4efef972d6200284d6839dc786e7dad4c3a81fd88b89b18ab";
+      sha256 = "cf8c22f87e480f0b90eb334990560ff9f942bc8eb703eab2d02e944ae9efccd2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/kk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/kk/firefox-104.0b7.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "cf2dd9ae9cd6347eaf976cdcf4a6cce81abb741b0cc273063cbe1274d271e05b";
+      sha256 = "0e294a735a497328f1912ce183eedcd457ad4134978e2aebc7e31ec0c997d96a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/km/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/km/firefox-104.0b7.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "f0f3982e7d838841a01b24c330ed3e74416073c40470293447551aacb5411506";
+      sha256 = "f8efdf3b7e7ddf265d0b952d1edeb64682cacd720aaccca4a75fbf1a72a5c946";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/kn/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/kn/firefox-104.0b7.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "3e2953e55e3bc7fa76ff77aac08f79b20bbf2be52683c08b3d54a323a1754ed7";
+      sha256 = "2384f870ee1fdbbdf750034fd219c7016e83160d318e10e8f6a267843fdba7c9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ko/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ko/firefox-104.0b7.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "5c5bec8a40dbea26674eb2d4b7160c1c2f3ef37f68d67c24a7ca6a2cf77eac85";
+      sha256 = "ac8c619b8692e05789eb65e5e73bf770aa1580785fd294d0901b6f1b4b83823c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/lij/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/lij/firefox-104.0b7.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "7cc492c5eff065cc3cbceb292d18d833e9f2bf76ace0d5ca960256290f049f94";
+      sha256 = "ed23ef5b1a46a49655e80609d76be2d22b96c2c4037c21fc4dd5805d75c46eb6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/lt/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/lt/firefox-104.0b7.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "b4b56e01e65ffe4f7232daf661df178d4af1d813e1c8122c4ba56aada0b2ef52";
+      sha256 = "b3543a68aad0561870e67d3a2f9641209bcf70bf7cedf9a9bee14904aed9f73c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/lv/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/lv/firefox-104.0b7.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "b13ac2b90f13813b8252c5eb817d0f55f770a58e05f8a98b1a08fdf59fc9191a";
+      sha256 = "6871c945393da0be0c5d3e265be941f05317dda58cef403cd7bb5b796b1cc2c5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/mk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/mk/firefox-104.0b7.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "6b1d2598350feb901e86f332598688853b607c7c14c13ac228610d16e89eeda3";
+      sha256 = "4b8a503ef260cf3faa8e207e9188e78d67636e177c73aff14a339683f5d4cffd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/mr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/mr/firefox-104.0b7.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "9a6a47fc20500b4421b12381374f0a8ecfa9a0929a54a6f6dba73e1c2e5a6c81";
+      sha256 = "f80056079751e2483b01ce2b71eddeb4d02bb16add9d63d5fafcf316bd29834a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ms/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ms/firefox-104.0b7.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "e79c4f88952ec9061b4d90f8ca5970be8b5c19cbc1df8d9970b9b23c801103a1";
+      sha256 = "a34110fd25a140c3e83f7d42f3eb003aeb82404a06ec4d7a7466340717d54396";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/my/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/my/firefox-104.0b7.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "f8ce25b87b639843fa6fab4651326719f229f91a4d6b3a6ef17d0e9f4035b1f3";
+      sha256 = "0258123db6a4ebdee3aeadacbdfbabad6b653aa2a9635439d7e12eb3a256196d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/nb-NO/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/nb-NO/firefox-104.0b7.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "03f5550bf0c0f33c3cf252cbad1650204e008d852e6db46a6f7fb6f6b5ac10ed";
+      sha256 = "9be62e8d06ee4e6b7c6a4efbd2ae5432562ddafd8a306579ce9f3775865e2415";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ne-NP/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ne-NP/firefox-104.0b7.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "5d94d2dbdbdadf6abb7250772e6e046b9ce03cbf5e4c920ef7e8b5cae69359b7";
+      sha256 = "9c459c871d7d876102db3d5b4c187c6c30dbcd8ff9eadbc9035fe74fc9ca5530";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/nl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/nl/firefox-104.0b7.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "3045ce321c102e2c114a48a46526572a2c52d228b44ab35d8241d92bd65dd9fa";
+      sha256 = "2d267e7ba9833e2bccf033c807c7568f901a21627aae9a7c4afa4c6d91a0b7d6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/nn-NO/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/nn-NO/firefox-104.0b7.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "a16aa9b6de0ac4213492ca117eb47fbd4994824c0f080001baa9136231fb69cf";
+      sha256 = "16fd2d0a077367229c2548c3af6811850413f2bc9979b1a8b86e14113797cc89";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/oc/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/oc/firefox-104.0b7.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "70bf39cd4c3fc4ef772dd71d97f71fdc92324ce2caf9d359cc1d3f3d1557c3a5";
+      sha256 = "37a70a51af75a3bd027e6bc79c7b8b449d52e397d5e746f81f71e4dc8f45f806";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/pa-IN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/pa-IN/firefox-104.0b7.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "951263906c05aa6f60a65d77e917a95ce10e8ae31f156acac7f47ab4ec36deab";
+      sha256 = "a4caebedf9959f25cb0f6d0d2853b31a748ba231eb4a487d160088854e94a791";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/pl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/pl/firefox-104.0b7.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "476ca14396dd7ee636ed1e74a20d9d0ff3b0c452e5b5f61eae6f0594ba060f3e";
+      sha256 = "44970a0afa4dc9cc33b00db2860848757143b946b9f695308fb0084846a639b8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/pt-BR/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/pt-BR/firefox-104.0b7.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "33ea09c993bddcc36621ae633713e758ac33349847604995e05fce0d26be398f";
+      sha256 = "b51cfef131ef258efddd4063af24e0916fe137b4e894691fda4e66e340918ed4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/pt-PT/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/pt-PT/firefox-104.0b7.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "fd4b924d8afa163ec40a2f5ca6ae0b89e1a22a8be8b8fbf9f43012159d0b7172";
+      sha256 = "4dde85eae03cf13f3e21e89277d64242f7a04a5d8294e07f1e5aaa0a946c5872";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/rm/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/rm/firefox-104.0b7.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "97ce5f4af9e8ed2af039255e284ce1b55b6a3ac0eacf4c40be82b635b1df0f2b";
+      sha256 = "6a6952bbceb5272f8d895ef0c0c5f006c70ea9b509c43cdc30d033297b24bd9e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ro/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ro/firefox-104.0b7.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "a959d39333b98c5a479e6975dfa82a4c2b3efe5d69d2d99fddc8d2aabdbe95ce";
+      sha256 = "2bfa2109e10919f8e228915e6aa6170509ad7d71e7a45b89cc812eda20e76ec2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ru/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ru/firefox-104.0b7.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "e4f65bbf839054b7009e01461cf4a0b943e1373df054e9b40797b5d233654aac";
+      sha256 = "d6becf94aba7bf1580f02f7d1781f2f89f56eab9c47ca05599fe64ddb32bdae1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/sco/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/sco/firefox-104.0b7.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "fac16861dbc011655c3b36b31d5e0816a09e1f88e34032d247d09f691c097ddd";
+      sha256 = "f0f675ac4b9191962dc798d6f73638eb8accb64ae1f6f407ded52ae01b0e5862";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/si/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/si/firefox-104.0b7.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "93423cb2cccf166f374fb4b8779f337fa1cfdff67f0f2c463a398a35ecd251bf";
+      sha256 = "7219d44407cf0c6513b434daa6ba6ef1043adfed42aa3b9b54c7b7521caf4654";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/sk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/sk/firefox-104.0b7.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "e63c2240f7b791b01c94084dbb28d74ddd6528a7bd1e62bb74ee9271d0fd81f6";
+      sha256 = "f5c4265f810274c69effae81b7982c38e2f16b1e0ca6a505a29607a878eedbe2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/sl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/sl/firefox-104.0b7.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "87064873e57431bb9cfd3e231df07753c8f644e218ea0318b3731baa05b16c1e";
+      sha256 = "491d8b0dc680c5ab03ddc3a8033058909dbbbebbbf848b109e477d6bf049bd3c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/son/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/son/firefox-104.0b7.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "6ecdf2061f0787fc9adcd27465211446df45751d103e279aa50f278361061728";
+      sha256 = "602e1cf09819083a89b327bb1c70acfaf62ef8a51ebf523f2f9d32ee4228ede8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/sq/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/sq/firefox-104.0b7.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "47783d01b35119b158c746c5ccede7e4832d15317958030306035d1b448b77dc";
+      sha256 = "8b72b7e1b69e3c64a5bae8b02ac813c15a504de62f788d1599689a3cf852682a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/sr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/sr/firefox-104.0b7.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "4aa1908894de6eb3640b497361d5245ed3379d29ffe6e10401540cc1c10cb965";
+      sha256 = "860aa21c5debbf5cb7f8eacae7d011b3c1fad0e7c24193849a26173bb37c942a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/sv-SE/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/sv-SE/firefox-104.0b7.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "2334fb5859711a4471f06a9eb81907d0b41ba52a8fce05b7cec320a0d31a4167";
+      sha256 = "b5f6c6f047acea4754a4c7074378753a98cab544df7ae7b4e3c7c641c4bdb8c2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/szl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/szl/firefox-104.0b7.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "39ad1c9f4da42278f2a1b3c125aa7e2a8005376a6f458a03851d42f85d116dee";
+      sha256 = "5b500a38f05c8744682406a991ff2bacb6e76c0953902c03e592ffb0a6fac64c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ta/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ta/firefox-104.0b7.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "24055aedcf23fcde0dc519bc2124a8d42c82ddd74dda46b694a20d25ff76d2ce";
+      sha256 = "3d83b668de3b9ac278413db1ff3c6000201397d12f0a7fe5043efbacd8ce239f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/te/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/te/firefox-104.0b7.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "18a90860a6428ab31229c975927b264d75b2e2f186f83ef270262f7598053d48";
+      sha256 = "d907e3bc5734c42f17128df76c51b4ae7df0df251513d83f0d4edfc2c0bc3c91";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/th/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/th/firefox-104.0b7.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "b965a21a0585cc07714c39ba33afc5ce757294d595c7617ba5b330a0d1d8cf0b";
+      sha256 = "08d76d2c4b5f6d35b1269c3ac6da5a921e29ff7bf0ec459350dfbb2f362f49d6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/tl/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/tl/firefox-104.0b7.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "cd1fb6553daf6b123e6545cf0553038b2f16c12ae4a21425e253c68124a8ce42";
+      sha256 = "e7ae2e956056edfba68da60e6cf5f4b122b3d000feaf5115e393feac039e6ceb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/tr/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/tr/firefox-104.0b7.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "2a2c6abfa119022520e8a3ab4c430c282a7a3f7d5e72d2a67d070a64398b2bb9";
+      sha256 = "dd3e1c77def3bd24ed4c1c11927677ac83ec66c9ff7607acd516f24c9652faa6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/trs/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/trs/firefox-104.0b7.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "aae079859fcf211c1e465a00a6a07514397a9f715bc02d704daf062e3d75220a";
+      sha256 = "b1ff3c642770709fdb0edbc30d052a6cf3b98909b45a4677ddcfe0228cfaf661";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/uk/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/uk/firefox-104.0b7.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "04ebb332d79d0a9aef5d2e93b2aa8dae0ded8d4e4c639d192ac969e8033ffa24";
+      sha256 = "e3ca173bdf486b9415fd10636fbc9731266d33053d3a5a11cc6704caefad8442";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/ur/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/ur/firefox-104.0b7.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "8a8d6d6503657665882ccea44a56b324253adc8d98eba20696ecfd096311821f";
+      sha256 = "68afedeab0dd4cd6dae3f11883eed99382bbfc923ee811709a6f5fea7b8e5c92";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/uz/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/uz/firefox-104.0b7.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "e2990d6a4c3bfb5547bdac49a2499c7dd958d0b8e665b636e0ffd6e9aebaab58";
+      sha256 = "03c2c06ee2e88b9a7407a8d753c06115a5b5b38ce8c098add250b97b048eb661";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/vi/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/vi/firefox-104.0b7.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "b7c2a4d8c1c400f44fcad7e91572134328097d183c76b8e22d5eaa0a4959d35f";
+      sha256 = "84a2778dd61c2545da62c6f01ff25889f61c46c7c230ec9946a1e0ffe94bc42b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/xh/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/xh/firefox-104.0b7.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "e3dc9942f397812564b5d7728bb4857f0c217183300ac0ab28590921f56bda34";
+      sha256 = "e1f394a0cbf75ca2e420c40286f1516aa2fe9be19aed51db40f4ca7658238f8c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/zh-CN/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/zh-CN/firefox-104.0b7.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "11ff62d8f465b9ce17591177f1fc98d6dcbbd819332f65bcffd685d43b5aa285";
+      sha256 = "fdf74de848724dcf9b1da8390b57cf37992500d79800546dc4462de7cdf40911";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/99.0b6/linux-i686/zh-TW/firefox-99.0b6.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/104.0b7/linux-i686/zh-TW/firefox-104.0b7.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "406200aceeae06ce5ae2d736d8ff42713e2275b5f369682cd49946326c5cf21d";
+      sha256 = "f5fad66ed736bc9f366eb546ecd18bdd97663eacfc9dfead88f82e65757a4b14";
     }
     ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 080fec91c1ca..cefa5ebcb876 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,985 +1,985 @@
 {
-  version = "98.0.2";
+  version = "103.0.2";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ach/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ach/firefox-103.0.2.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "e40a11afbb7a464eb7817457cf360ec2b4e0d77b8d5db5d7856c5b79cdb1425e";
+      sha256 = "667b9eb59c4ecdfaf13f7d6a653ee87628364a01294507159f54d9c03d3eb5f5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/af/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/af/firefox-103.0.2.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "8d0570e82ec73708933cbe2cacd53d89503cdc7d1e97cc57edaa066960340a1c";
+      sha256 = "ff5bee28f145cd00c06ace53414f20b5bed8948aaf9a651003edce4e3f5ea553";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/an/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/an/firefox-103.0.2.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "04403b0d68911dde99880c76d1e87f1315d1c463a63711e37e0f40abbfd9c2eb";
+      sha256 = "53ed4ee66c6d232cfdf9da3198bb8e591862e50d387f69cfb4cfe51028c3d274";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ar/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ar/firefox-103.0.2.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "57ab64dfa19fead2a828333456921465cd77e37a36d2030f81b7c022062fe215";
+      sha256 = "406bacbfd8620bd0a249d03f96dbeb62fbe3128b435b50edff027b7b3b9c12a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ast/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ast/firefox-103.0.2.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "3dfb8f3c288e6c910d929da7c0228c52c490e33a1fbc99ce90c231e81cd9896d";
+      sha256 = "99d7135bcc0d64083ea0a0946fa7f030f9b025da633e3aec751284a5a82a0dc1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/az/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/az/firefox-103.0.2.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "b5fc1a8d7decd2372026f9e4d4d8bb4d5fd839b165168f01e08a9641c0d7f92e";
+      sha256 = "00542247744f223b1511ea1432f376f692a1f224a5a50161be7ee2327c2d9005";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/be/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/be/firefox-103.0.2.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "8b1fffc493c20318533879ecf9a006d0215d7c6f2323134fadecdfea68aaaa6f";
+      sha256 = "e75810c3c00287ca086fb990f13edceb295c7e03b79a093599d8b0413842088a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/bg/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/bg/firefox-103.0.2.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "852016bb71423b058a195d1b8631331a6da144a20c0d74b641d6189c93730ad5";
+      sha256 = "ac25d48f3e28065ffc2f011e607e10c97986d4d08011ee14a9d3a50f4c727e2c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/bn/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/bn/firefox-103.0.2.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "748e7303d01ca41fed55dc31d0bb57458c69180499bb5915ca4c835f7fdb56c4";
+      sha256 = "b709046f7178bc0580f01f4c6c26ea3729608b595d594768e38bb8005fb01a72";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/br/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/br/firefox-103.0.2.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "efc2e20d5201621c76411ffc3c7df227c9462bb6994f7ad19d735c986c362aa1";
+      sha256 = "941cd816887f9bbf76c6cd192e8b1f87d76705666d63716d610e6eee97695a94";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/bs/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/bs/firefox-103.0.2.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "adb507af1a64e2c72193942b2c3a839576ca7d493541bdfed06b0f838f3bef43";
+      sha256 = "e827efa73b263e60e708f8200227bede64242f9eb3e7085522dedad6507ad06c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ca-valencia/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ca-valencia/firefox-103.0.2.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "1cb7d989fcb1ca726d022a2e20523427d9aa0718d2129cea5102971624edff61";
+      sha256 = "acf8260a6f6f06a3ba0f05bd31214463e5404103daf5de9c6e726525ed126e85";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ca/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ca/firefox-103.0.2.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "0d746e8c8ca233d4f4161134f920a44e1a3593a2277101e20184087f76a443b5";
+      sha256 = "fda60c9f0a55795157e70fd78542fec63944b3b443d82b17cf6a03f074d8f6a2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/cak/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/cak/firefox-103.0.2.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "fac629e27bb9e60fef81fa58268f9367a95af59b299a628ffe692731fd5ae4c8";
+      sha256 = "08fde34822645ae6d3c34bcde7202c8dd905d5f36a5e7790c9887b4e13b743b1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/cs/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/cs/firefox-103.0.2.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "7f6f30ea9afac44b1d1fde8abe2701f8f83b3014aa1c98fba1e2c4ae6c841140";
+      sha256 = "5dcfd7687f523a56952a26e1fa4e900579e50d61ff342f5adc75ad33cc037cf2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/cy/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/cy/firefox-103.0.2.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "63c2b0bf442365c7db1cf96f192db016c4ddd4233a32190d657779a254871a2f";
+      sha256 = "7543927c81ffbf9c213f29f30d88426de340c1abb22e9285d63fcbd245136929";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/da/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/da/firefox-103.0.2.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "f7d18039814a6310ce4a4e37d10d131639868a6f5ae85c4718ca1f9ceb90ae13";
+      sha256 = "d893cae22f582733662ad5676ab0152eda4f666900c379d7ca4179d0b0602ab2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/de/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/de/firefox-103.0.2.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "736f10e89507455708e40c9cdbd093fb1cb802ada7dd5d3e0d612cb0e11db096";
+      sha256 = "ae48c75326e5b444429b09d324a13b26ce40df4b6ce05894870ac104000649ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/dsb/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/dsb/firefox-103.0.2.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "50ca85b163011ebdda69be8772a76ff4a912653a03d527784b18bbffd7c63a16";
+      sha256 = "bd11ad0969b616d364d174067df665d40a9b788195e4489cdb739f774cb7cec9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/el/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/el/firefox-103.0.2.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "4b3a28670c6a7577f65dba7f857e8c68009a8d1e80089707d8d830e02a5f7fa3";
+      sha256 = "a9ed65c8456545039d6127fd486d53aecf007235f05a0b74dc474fa682b4d5a8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/en-CA/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/en-CA/firefox-103.0.2.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "f3a7c9de172b6ec0673d2600537ab9265cf3cde3e2fa614424e9f4c08986eb7c";
+      sha256 = "a57634e452ac8818ffe360686f003c0c98a846b66990125145d99f16b29626eb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/en-GB/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/en-GB/firefox-103.0.2.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "49f044b0b5f841d5e42b9c6275dc7c78e2b2f903aa28f0d6a02a25a41d781d23";
+      sha256 = "a5c6a543ff3582cbcc958a007c228d46eba77d8e12560f73028271d61b7296ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/en-US/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/en-US/firefox-103.0.2.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "07c5f3dad0850a92d5c609278fb1fe682b2562fa55e6733c09a6b4da7373bfcc";
+      sha256 = "7869a2d95e02d34b105b37baa669cf29e0fd075fd883eaf4b2bd4e0ced77f6ca";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/eo/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/eo/firefox-103.0.2.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "98626ef3b514d1ddf0d9d530ef7b3ac8bb504717eb633f036fe9cb9437d8ea56";
+      sha256 = "9b587327f283a51d24a65459e7ca02e11230937da40890c3750edeb36c57edaf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/es-AR/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/es-AR/firefox-103.0.2.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "86a57a29b086fbc1d59731f94b792d1116a358e4735d9a8d08c022a2d5c7d0d6";
+      sha256 = "8ea2c2433631faf1b808da7123b7ed8b9a2e113b86617d9218d79834af4e679d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/es-CL/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/es-CL/firefox-103.0.2.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "834bbbe0388631cae1e87e464c0b4e0151c37341828d71dd99fccc2d56c179c2";
+      sha256 = "4fe43133d965c6cbe7972f55101af80421af341da4305f5a929e690a9ca9521c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/es-ES/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/es-ES/firefox-103.0.2.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "590efa38b4a374ccac89128a0e84de77492f1a8702e70b3b13d9a456575963f6";
+      sha256 = "44133f39d1b962860536f619993d931156867c01d1e26f58d070f1124505c960";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/es-MX/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/es-MX/firefox-103.0.2.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "f64ac621daa5f891541d836727d91cb56d5eb8db6093aa7f83af19adfc49ffc9";
+      sha256 = "b7be94d4f18b5e8d1375c4520a5329b208a4bdf911d691f6086c876b1b98f825";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/et/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/et/firefox-103.0.2.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "08374c6ae7b8eff3b6ce748c87f18136c86f73abf6238383ba3c4b1555f8a003";
+      sha256 = "a895e29bd9e27be40c3e5dc929931642a479e1ef3b76c631bed0fa423eafb707";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/eu/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/eu/firefox-103.0.2.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "3ce288c26201feca071bfd56f66fca69da7a68b3a468405ff6a665cb666cd799";
+      sha256 = "63a7602c5bddbccb797aa4e5f5603dc6d86101085b2c29355e270324293bcba6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/fa/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/fa/firefox-103.0.2.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "3bfac0751b251dbd3ddb253973bb1ad7afe58f7cb824bef59d4f6c7dc5acec78";
+      sha256 = "ba35501e17f2cf5517ff28ad90f7e9798d0fca26de0c5cf8f8535389a285509d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ff/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ff/firefox-103.0.2.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "2b962a0442a12c7f2dd7d2c716fbac0ad9435debf06d1c1e9f95fcb62fb90d50";
+      sha256 = "c0eb30b289e912c1cdf1bad80ccfecafcb2d4a5f893bce45fbfb39b43ea5ffb4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/fi/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/fi/firefox-103.0.2.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "705b21bdfa9826563042d0014a9225870c87b3351b9920cca35e203d1375f9b6";
+      sha256 = "405efc6891ba7e65b42359229f98c4483cfe35b623ea2a6ac2be868b556ae2b1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/fr/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/fr/firefox-103.0.2.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "e1d9cbb1c529508bb8262b0498506c30c7932b17a7d86d9b5877f44877cea60e";
+      sha256 = "cdac96bd9de829c0c50c7dd54e0a9973cbca2aadd38f0149bc4290cf817b0b5a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/fy-NL/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/fy-NL/firefox-103.0.2.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "c1b40fb366281b9df839083af4aaaaa7a264e1ce380f9ffe46a2fe181bddd3f7";
+      sha256 = "9fca46eb9c189626430750a7ee4a8e230e0cd605fcbaa2c100efbbf954fb0fff";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ga-IE/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ga-IE/firefox-103.0.2.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "466ff81e255bed9c03669c974581ee2cfc796e77456dea25af75adb501855c54";
+      sha256 = "1b85d7ba7fea1a81859b7e453351806eae58271bd0ee5ebd3111219846e7ff5f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/gd/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/gd/firefox-103.0.2.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "0e1de18ab0b75b43ee8caff97c2963b7047f1000fa8dfdcc4e3fe87f29794c17";
+      sha256 = "d9d79846b310803de926206b842ca5dda33bcf9a896b5703c8244d7f9d2e5417";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/gl/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/gl/firefox-103.0.2.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "56f259c9f2f13d3f366e921aae1fbd069f00d59131cd3a3b31cb0f3e16f2ad74";
+      sha256 = "77292d69aa5fc995c16feffd5bc21137f4b623f247093c3ce319847671f84481";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/gn/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/gn/firefox-103.0.2.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "b532c79002184bb13a3f197b5c0faf4a24e0b71f737de31c242f9fd286f05aa9";
+      sha256 = "e6a02c18a386c2a68194267d561a364f3832ebd8d2ecd6a9c5111c0509481ffb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/gu-IN/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/gu-IN/firefox-103.0.2.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "12ec5c968d852a7a72221373813fca48a4e524e552d22aca50ae99111a7128fa";
+      sha256 = "c3b9bd403d549a1bc9cef24e36f8dde3f9cab01b24b917d9b09ed9da48d061db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/he/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/he/firefox-103.0.2.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "3c1c1222a4ffcac6679849c94da395440d417284a922cae16b5edd1cf4ba678d";
+      sha256 = "9a78a88d90fb0d89318b5fbd74465bf03346e6ff7f0b1610903853b2bef4e05e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/hi-IN/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/hi-IN/firefox-103.0.2.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "6ae96b87b251917d2c11684ae58ac3df54496cf047b115145a5f85cfb1575b9a";
+      sha256 = "7f696fb0fce2d5a036c7624b1cc0145634a4f731acc1165a2446f91b55c3054f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/hr/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/hr/firefox-103.0.2.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "4a77fb11f0d27a4abfc1426136d93404baaa730ffea2a31fe337f11ad92bcc8a";
+      sha256 = "6a2b65671537d04527f963b37645629b0446f3acccf2baf345bde00a1d80d7e0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/hsb/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/hsb/firefox-103.0.2.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "725e2f719720c84ba06a28c5f025a16a951642c1102f7fe5faa41baede1b6a5d";
+      sha256 = "586c85a6d0741fa62a9bf220de289f9646a618dec6680bb0b7f54ae4041f383c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/hu/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/hu/firefox-103.0.2.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "4a128951a5466189b703fbf3055a9e65af64f08a7fcd979448611b91a63bb456";
+      sha256 = "73d6cea610cc49b6fd47edf73fa96741190f06e830117924e71a38fd0ba056e4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/hy-AM/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/hy-AM/firefox-103.0.2.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "70e44a8105ef260b3e10271f1a9c36a5149a485130d5a1219397aff93500639a";
+      sha256 = "bcbe9ffb5641fde9aa91ce397d0b9dccb087e42cc5789f5900098c6c013d7719";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ia/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ia/firefox-103.0.2.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "a121636fb2513557f8e7e0a1b30e3d855202db14f997437cc5a6d7863214d385";
+      sha256 = "0ac6925e54a5ca30647997cdb292c4f6b35222c60ed1cc1c382e6c78c5785cee";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/id/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/id/firefox-103.0.2.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "eccb423ef76aab7725cd21efda222ed63c030d494c294998f4e9837ecccbbf06";
+      sha256 = "a393a32ca88a373f65a9a1fd97982c5f58972f264ccf5ba5be860d3aee799984";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/is/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/is/firefox-103.0.2.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "86aac8ae944846967e472d6fd893c40ac988c25a2c2ee9af40485e216bb67b2d";
+      sha256 = "05cf0e983a2dc48688ab1d3110ec8b0f52d6762c8d95a96472c977ff6a863130";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/it/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/it/firefox-103.0.2.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "f0ccf0977b3f3e05ed0d07980eca2179a808e0f62930690fb33f17b68c3bdca7";
+      sha256 = "4d4acc045eb0a9ba1e18a2d1e511f4b0d4b1145a400013f7faf11c5e650e6ba3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ja/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ja/firefox-103.0.2.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "217159ae769b050bf9ff1b04ed80ad85a384625e2ccbf0d9f98c0786dc2e6c5a";
+      sha256 = "cca13dd89e889dc0e27822e85c22f2efc089392792434ccb08ac0c805808ac71";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ka/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ka/firefox-103.0.2.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "c4aa9e994cad797afc081d2031296cac780e76966a7f231e6a0e3187d9e8aef2";
+      sha256 = "0f102834c3df16ec7c7dd0f2fe70b8f6201b802ca252b43481ef32510837d047";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/kab/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/kab/firefox-103.0.2.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "cc8333cb75f48ea82b752023162a270f18e33cbec610571624a38919737b00c7";
+      sha256 = "f0b52b45ecb42f4ff3a9420fa353c7df0146512fa6aa45d872e388165742642c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/kk/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/kk/firefox-103.0.2.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "3482645b2581284503f72569caedc750706c439346917c07673ed0a27b0bbf36";
+      sha256 = "8e696ee71dea9a09892f57e20c3be7f492449b084f4ca32b687f9ed17a827089";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/km/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/km/firefox-103.0.2.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "b70fcfa2b4b4bed16d4fe8af2d57d8b7a4af346f321ece425895c10f7ac058d1";
+      sha256 = "bf5774d2fa798e79a77cea50667799ca81efe63b04633cee68f62f5ad168f88a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/kn/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/kn/firefox-103.0.2.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "63550bf8572312f3c69c90f65de89423fc0ac926736723be3034d5d441ceb1e4";
+      sha256 = "12e5f87263194d3e4d9185768aa7d4a306952c21c63075cf434f9d856e064a46";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ko/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ko/firefox-103.0.2.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "de17cda5324ca6d179b9d576b62cde0ed21718b72896b161631513b654540cf0";
+      sha256 = "7dc889a785027d74676c701a739f115ed9f3060740fa8f2ab7773ffc52e6f5a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/lij/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/lij/firefox-103.0.2.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "67cafe6a9f0c01aadb1fb55afe273fb58e4baeb38be2b472ed90a83c72b07ed6";
+      sha256 = "cf86b689cdb42beefefa8b4361d239e6a1b8b43b62899893b7ce0a4b8e8f6c4f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/lt/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/lt/firefox-103.0.2.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "135773dc11e691c20f20b0a1d37e2b25d92062c573846127c113896708e649d8";
+      sha256 = "cb81de8ca6059f5343a2f8cc4b2110d6784e3bf4077260563f391c977f8756c5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/lv/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/lv/firefox-103.0.2.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "44bfaf12e5d34e1b8e281d00c7d9a26c2d0aa0a8ffbd74df9a5026e15ac12b66";
+      sha256 = "b44009c2f089f01ed49e12200b4dc3baff086ce09630e1b8c9419a1b9542da10";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/mk/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/mk/firefox-103.0.2.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "94d7db6bc2ba9de25207a058d29d8abc57e967dfaf59c3388438953098da9580";
+      sha256 = "73143c3587caca250b3027271c860a4b09c1f6efc898f27d3cf78a5781835f8e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/mr/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/mr/firefox-103.0.2.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "e2ef6708ed116e40d3cc776c483d3cd42c91988673b91d2d29f4da8ea996f1c0";
+      sha256 = "c12cea9024851a2896a9f6b5b6127229cab6f4c1bc5c3793f4dc7f2bf0f8c897";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ms/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ms/firefox-103.0.2.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "e376a479d170ff881d6de21f9c03ffc7a4968fccde7347e9fa261de7bb11e427";
+      sha256 = "e7cacc43fee6d4e6d720b0994f39e2cfe49e59cd2ba0e47017e7e997ead642b7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/my/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/my/firefox-103.0.2.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "a1143bce18aaadd340b69403f064574664f202765ee5a8553ac6d3372ab33134";
+      sha256 = "fd98964924a57d5208e14d19fd2fd86aa522cfe1af40ccb1b955195a0899156b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/nb-NO/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/nb-NO/firefox-103.0.2.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "eebdd022202cb7140db46995a3925c990e614233f3e15b850e5176b1f2c07907";
+      sha256 = "31363aba0ac96d4fee665744f6328e2b447b0baa0957b1286169e7849ef74dde";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ne-NP/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ne-NP/firefox-103.0.2.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "084a278fe0b67a51126518d9aa62cae7cf78d96e3f6cf5b191f136a5c20acf84";
+      sha256 = "f974a0b22b6df9f7f2d41c1f1b1a9d608fc5d40833454edd7b4f01d4a34c98a4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/nl/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/nl/firefox-103.0.2.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "fdae25ccd979bdb5b4bb23f4e9e82e432df98059d82732ee187f37c8cb3547d4";
+      sha256 = "47dfcacb3753d1501393bbf6343aa756f9fbaa4292aaeb3cc4c5fd0293a7bd46";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/nn-NO/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/nn-NO/firefox-103.0.2.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "7ec4c099c7a282a5b38df9a124ea6f2ee3a1704746aa308431aa8c356a57bec5";
+      sha256 = "93ea62e1b69e0af218e66d4f627a6690eae8fce07698ce7b532a72877c482f23";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/oc/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/oc/firefox-103.0.2.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "7f6d8ed3a7511d6af408c47c626a3e141425925df364f26a622a088491d7fe5d";
+      sha256 = "7be129a7c0dabb608eb38a76a940fac9f09fc2da978880f25b07ce695acc5068";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/pa-IN/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/pa-IN/firefox-103.0.2.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "9fa3699918286b6f9f8829beac8cd45e59f35f389a09e0cbb34dc393885ec8f6";
+      sha256 = "e86418ac11d823f694404749c2d79efa3b6f94b78a0500e0f161dbb39888e01c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/pl/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/pl/firefox-103.0.2.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "e2ebf0346fb5b626a048a720782e325eefd04f1fe62de5c57826ebdd3ab1bec5";
+      sha256 = "c7c8021f6f354142d59004f33b9846829dd883141031b5cc918a3768b5b06a5b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/pt-BR/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/pt-BR/firefox-103.0.2.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "dc79e634319ffc7221245e2a081cf6bfc15ddcd4bd8bf110d5dc15732aaab33f";
+      sha256 = "fc927cfd3d653f2249d0e0b0b8b680e8912801bda21ca28be80a02ea1f58c6b1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/pt-PT/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/pt-PT/firefox-103.0.2.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "f94ba01eca76939d1ecbfccfd9647c96244effb080df98b4e04d3edfd80ffa48";
+      sha256 = "73cdc8ec0098d5f2be5ebacb6258948896331f073acbc446a61ff352ae89e259";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/rm/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/rm/firefox-103.0.2.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "6b27aee9330a94e659da34f17213522687859263ed8500daf1d62fc496cff033";
+      sha256 = "3f77d327875c2fa51a5e8c0f610bbf4b762c593dc9c027453eada786ea0960d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ro/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ro/firefox-103.0.2.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "b6029f72497173e8aef444cb42437d6035354fe4a2bfe6359c50eefa4d6e1850";
+      sha256 = "2ba0a665af0c2b3021e9dae7c8dfc169684873e77840af836add8def26292b09";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ru/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ru/firefox-103.0.2.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "73cbafa190a5083cfeba8ad0971d28eaaa228b9a9345ddc72d4f5d6490ebbad1";
+      sha256 = "34349423496c8fda3ef2304fc63ae2a04880d1eed7a953f1b446f5225bdbcd8e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/sco/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/sco/firefox-103.0.2.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "dd2d86ddcd270d2bb58c7152d15072341460a09b2da1639a76ac70afc9a714e6";
+      sha256 = "7b16c352f96824395ac992545a44c8543f7ca8458503dd80fa431cb95a0778c0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/si/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/si/firefox-103.0.2.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "0cf0281b2d082b3861947e5002f843df050586e96027ec30acba2913ce588daf";
+      sha256 = "e622e22029c73feaa1f3b8e8907012c97f8403032966b7d347e26d57ee90fee2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/sk/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/sk/firefox-103.0.2.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "8853372fdbe0834f6322e2e1c03d909b2c21f60496d7e679266dfc35e5835191";
+      sha256 = "1c683ac68e6b1b7ff4bf74365770f627d9f4b1614eff054a8f4d488cefda9d3d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/sl/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/sl/firefox-103.0.2.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "ce97423a4ad380fb019b3e4c8d57a44bb15ca0b0afc7778a10fd23cb9382c143";
+      sha256 = "33f625fd5482bf741bb1695e7bda2ffaffd69e83f4518989c3d562f1db173f3b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/son/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/son/firefox-103.0.2.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "468b642210c8c52ef5a8b91ddf81b9ff9c25768d7b0481f361e7c95861dfa5d0";
+      sha256 = "173db42247414b8fbc42b6cbbb0364e45bbe03a6d4b2ceae22582604f86d09fd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/sq/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/sq/firefox-103.0.2.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "8a079436e4be7ceb82b56f02d50054066906b2f819b787ba964d20c64ba731d1";
+      sha256 = "ac4b3bed8a1a983431bdf31c0f4436da0bed5907c7ea3277d9583e3eb356fa66";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/sr/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/sr/firefox-103.0.2.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "e9f0f1a8d6bf3bcb6df32a27560e952e3373d712cee08fb97e1c41b76052d370";
+      sha256 = "864fa316ea5179e0eedce9951028dbc0063dbc4dfaf9bc3343d0e5b25fc73f77";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/sv-SE/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/sv-SE/firefox-103.0.2.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "eb4b4092f1f667661afbce19e0d3ef75301976689f1ea2ee11104d11fea2ddd0";
+      sha256 = "df701656df9f438f3faa31feda4c326a43a262cd15ddfbcd5a50b6fd471fddf8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/szl/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/szl/firefox-103.0.2.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "29c9fcd787fafc93480fabb59573dd500d557847079f032a6f3ca6e9c4422c80";
+      sha256 = "33c14cefb63d3bd05874e970b178d741e163f1ee2e14dce1efb5af96e63342d9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ta/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ta/firefox-103.0.2.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "f07b8a79048b55d6fd8f7d19858ea2f1b5f53bde782c65ea7fb3f34d9cd5ac40";
+      sha256 = "56cf70503dc04da80518424df9931252bf9ceca59123469b051c32f9a97fdb86";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/te/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/te/firefox-103.0.2.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "14882f8a3c425dd512c37f80fd45bdf9d34c4d7163454e1533c6306713935d36";
+      sha256 = "3e97fda3b8995a5f9efaeb211452baa197396f8a5080e87f2a3280342e506526";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/th/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/th/firefox-103.0.2.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "c91bb2249cd2b22ae86b1b51fe6c34062a4da7772eab97b1e39915a2c2782488";
+      sha256 = "76dfdcb6e37050f5b99cf077cde9d8d3b9d19dabc1e86e03591d702d9af7ac30";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/tl/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/tl/firefox-103.0.2.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "1c6fe06f19821a7a77a26bedf38ed3fea20561df0589c672027b2108e080e6b3";
+      sha256 = "e2d601596453e03b429bdc617c70216943e070d1c1bfdab8dc8d75e74327db29";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/tr/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/tr/firefox-103.0.2.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "c06881993063dcdf6fbfebe139f9fdafe2ca37667375683ae85497603517b5a0";
+      sha256 = "08344227b430e93b0c0c4106948bc84d4b435b61f727a14c4aaf03dfe2195dd0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/trs/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/trs/firefox-103.0.2.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "fcfd9120933339006f1868b27e0fff1d60f562a3d11e826bbf9996f69d4256ae";
+      sha256 = "d832f899f7860a27f4ff919ad2497f7a262b04ccb3a68a47a673fa8e781c8640";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/uk/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/uk/firefox-103.0.2.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "01cabeeb98988d4478d381b34e7c0e6cde887d2ea83feeb349763ee454760924";
+      sha256 = "9dc9a94c51d6ade30757add21801f994617bc279fcb4991b5dbd253e8b7a2802";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/ur/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/ur/firefox-103.0.2.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "db7de84fed953da53998ae6ff2456a02de833de22d13d1aa7e16f53d3bcb7fb1";
+      sha256 = "4154dc35d9e46d6e2c374b8a62a80af325dabe1ae9e94f1def23a585901f9599";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/uz/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/uz/firefox-103.0.2.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "9fe0fc4851f005160de9562123e48c19216cb013dcdd2b8bd2b745d7838062ea";
+      sha256 = "cf0e53b045242ecc70a56c099aaa46282291bbffc3d6af635771c8dcbca09806";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/vi/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/vi/firefox-103.0.2.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "e335f20bd5a63c2fa17ce15fdebe0c5af5c6787d37bd49ad2da156b450383ae3";
+      sha256 = "f326a13d4fb7f90186dd103d46b66b39a47482b807c78073e330bc7f17fb27ea";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/xh/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/xh/firefox-103.0.2.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "9cd953e87b70c979a8c03fde8c989f626a23f62a7d59be8796a09c8a8950127f";
+      sha256 = "089ccfdb05134a1e6a9ad4646dc443a24ca240d083c18ab1cd78564ee7e4f787";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/zh-CN/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/zh-CN/firefox-103.0.2.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "2c7d059be4474164fddd349fc3f18d1f380af5f9ba82f8e01b04e2f18bcd09e8";
+      sha256 = "686ab7d49994ee25ffb8a8a3f242f0982897c821690f10f2c30c1ec469df6600";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-x86_64/zh-TW/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-x86_64/zh-TW/firefox-103.0.2.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "37b5a0275b137b0ef578591ccf5a54518bdbb449915f4ad50c276952a0bcccd8";
+      sha256 = "4275ba2d56438ab14a1008849f373c41b292d85bfc07902f41974d1b198fd205";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ach/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ach/firefox-103.0.2.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "b3b734eb8d62112f7983e86dbd49d2d3be3ed6d2f80fd2d7bc189f12e03ab0b6";
+      sha256 = "b962109dfd45555b46f692ba3e53fd925afe45ffc0ff1105fe13027cd8d8a68b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/af/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/af/firefox-103.0.2.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "fcf6a355f70392606ec2ed5853b1d14e8d5923fd92c10774c776c43e6c8a6cdb";
+      sha256 = "654b7507c023333564791f76875f0722b4e9fc935bb80e0b2932de16ebe6b528";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/an/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/an/firefox-103.0.2.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "388532ad380bf43c287ca3e7e29a3a6f97fbbc0e02c2ae5207ac07587c3faa2d";
+      sha256 = "a93ae626b44676c3a517e35600f7abdac16f2cac873b4d24229a50e8c72a82c5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ar/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ar/firefox-103.0.2.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "178a38e6bec65a59679944fdd6882774d23bb15e62f2e697cf369742bc4c8196";
+      sha256 = "720ae5c60754b63ff0a6e52e691b621362773e1ea9e1cc4d2e1fdf538fb5ca0c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ast/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ast/firefox-103.0.2.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "5fa0aea769c7f7fba13168fb404f03b2cb8f6df5ab733054118df67015ab665f";
+      sha256 = "0a16fe33c0ed46a3e740ff0b2b7980a480434e9bdb9a66f691983e5e8c8e6552";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/az/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/az/firefox-103.0.2.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "62816d95c32f04090a5e23bc38ebc774355ac77dfdd1a41a2d6e10ce983c53ac";
+      sha256 = "bb13e66537f1308e665d74209e5f95ad23fe615a4594afa60dccfd7db1cd91b9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/be/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/be/firefox-103.0.2.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "918447a5f57647ed5d846a0a0bbbcbaa55559722de7b8dca2ed2e744eb14ce36";
+      sha256 = "0bbf4aa7f228f4286e59d34aea49ea36e4bd675bddd385d53e2d995c3c2b29ea";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/bg/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/bg/firefox-103.0.2.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "74851892da2c6c0a9a75d822aeef2c0a275fb5bbc32b88abb28e67f9310bb2ba";
+      sha256 = "5fff11cdf9900bab4a6c86707f990476fcd01cdec57fd63125ea88a2eccbc2ea";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/bn/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/bn/firefox-103.0.2.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "2a6f53aa3fec578a76368120bca30240bb631db9767159aedb3b5480c1ab661a";
+      sha256 = "af80343e344326cf661ff66649cc9a5670bccb3726a7b6923c3a4547ed7c0396";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/br/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/br/firefox-103.0.2.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "5d1d9478f459bcc3e6b148ff42d6f9f589b8fb395672e3b8ce8f333832b523dd";
+      sha256 = "38a485bc21ed61090bf121f4a081dce5b194a44db9cc5f7024d65b5b86fd3a38";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/bs/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/bs/firefox-103.0.2.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "ed99ea471d6e30c0304bbb27bbdf88b479fee4df7f8cbba481d03de13954131a";
+      sha256 = "5a251f7ab017f99af3f7becf09f99209c15efd99d9786d1fd8af36e2e2a66b7d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ca-valencia/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ca-valencia/firefox-103.0.2.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "5dd1447b3fea23f08551b2ab5a80581c3e0e09f5602709cbdce751d491faa60a";
+      sha256 = "705e61f94a1fc99333b248f11af11fef36e4e7e028e87cd2cceee4c4f5ac7ecb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ca/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ca/firefox-103.0.2.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "21f6c622de4016a8e372ae7d249a07800b4393ba02ab59994356869a01cef571";
+      sha256 = "c524f63fce99d26a61e3b65d7c13cf04e4e8e18eefff32dfab71906c420c5558";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/cak/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/cak/firefox-103.0.2.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "e9895877763157132e390f31c859b561c7d62adb011e209ab9cc0092ecfccb1a";
+      sha256 = "7c72d38c1b93c547066fbff9f6760277c567d7af7b9a6ddd6f0d8a3f90f3659c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/cs/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/cs/firefox-103.0.2.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "13c94b8b12fcbee4d41c6f7289f0cf2f199ef3d750628cc0ea11a60534ab6954";
+      sha256 = "06a8d6f3839b5a8e32f20bc5a71812ff2624fd8b19fc443474471280ce45d49b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/cy/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/cy/firefox-103.0.2.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "c21d9e83d14ac46effb9e12a5210d7b56e3d765eef877f8ac4ed5104582d2631";
+      sha256 = "1bf70f593238cbfff6994f1370a69d1138686712f8da800a360f01a5a5260a8a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/da/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/da/firefox-103.0.2.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "74a4a14ae8d8f64c56ce4409851f3e8e51bac61e2223c022f40d56d341fdcc65";
+      sha256 = "9503186aa27c860094c8c72d424961f292ed3c4d0ad5e592b4bb5d8c7fc7aee4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/de/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/de/firefox-103.0.2.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "d3449eec8075f3b6d07b2e6d7adecbec60a7e29b12c2016f642a90c5555971ed";
+      sha256 = "1395d528ffd1c29ef33be7609849e60312f6964b49b796ceaa8f2d0e9641147a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/dsb/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/dsb/firefox-103.0.2.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "0dfac7916796d4ec7943963e28d7ca65f78661b6f22c226afb2dd00db47917e0";
+      sha256 = "96d2cb208b7d41504c2059f80c83be8f01f81668e47d6188edca701cdd1e1418";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/el/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/el/firefox-103.0.2.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "c2769489e0947a7eeb0cb1f9d99d51317fd037e2a7bb06134403df1d4560a767";
+      sha256 = "180bbb5fc06ab926ede08a40d9f3444989dfcbfdd18b7cc083072a528ae4b5e4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/en-CA/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/en-CA/firefox-103.0.2.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "87bb7162b58f7632ddf733fbdd4f195d75a9a6d467355c2625344171c72f4e9f";
+      sha256 = "a3e0a8fff4e2a58f518ff57e6bdec8b14513df1b0ac310c1f9da9d45961dc77b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/en-GB/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/en-GB/firefox-103.0.2.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "89bbf10bb75effa9e8064b6c42d0a4d7fd21ac2cd6e4ed3625d92c6b55ba1ee6";
+      sha256 = "8c4e8a2d17e6730711cb3bf533269d91858ef7f903473146b934f367f423c4b6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/en-US/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/en-US/firefox-103.0.2.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "888db6752eb5703af5fe5ab4b1575f2a35dbd204614552fbe3a276042a3509d5";
+      sha256 = "99852e7b204be9821a40c42283d819a367f12adbafed906d22f12fd53b3fa8ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/eo/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/eo/firefox-103.0.2.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "a2004dc59269fb2b37e568767593bcc0a7862a109df18f548eb1a0b829cf4293";
+      sha256 = "90bf871975ca2ff7ec781d8fed17528fc38fc41ba88e5d26e67a083f42ee2576";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/es-AR/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/es-AR/firefox-103.0.2.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "9e2c0f6cb231c469660cc7fe63489e69a2616553d17c52f5e7a2a86a171bc6e9";
+      sha256 = "712e7d63a064417a986a6bb760bffd46f3e927af4bc14d2f281343dc72d7b3db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/es-CL/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/es-CL/firefox-103.0.2.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "dfe6f1229a6f80b6fab3a22fc8a8a6ecf3137b31805339a489ec53e5af63f040";
+      sha256 = "3ea9baa59fd7207b8cb8286f222e8f7bc40a1217d9b3ec73f8f3c766a50bc889";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/es-ES/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/es-ES/firefox-103.0.2.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "01020488ee2ad2e2357bbaf83857a2ad0820fb9f97302d1447cf4148b22d2bd4";
+      sha256 = "ded9fe10619ab84f51dd66ba1ea60406607aedf32329e33a24e56619aaf3f211";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/es-MX/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/es-MX/firefox-103.0.2.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "3c7bacc6f703cdff7adb9097bfc39f52a67aa6a9814d7a8f451d4ef50c591714";
+      sha256 = "794513a4b2f55149af96f4a111a02c7dcd2d0d98ccaa89d0922f5daff9aa32f5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/et/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/et/firefox-103.0.2.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "f2bc8e4200c89cf74ae6c984543e97b2523782dae70ecf6135f47943a01f1d83";
+      sha256 = "b6ded248ad65c1d603ae39a3eb123e6476334ec4d151c9f48d496c72b5f8c3ce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/eu/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/eu/firefox-103.0.2.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "62bf0d826adb66d755f38bf25199eaf3850c37bfddca627b597802a20f8d3367";
+      sha256 = "778c30d9467d7e3a12c79813cee3e39a5bc0a3faea8e5224c4c9014fd564b708";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/fa/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/fa/firefox-103.0.2.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "9d4dfff33db462c71eb12067f56f2e20b0a557f9cbf1234b617e1c2ab5832ea8";
+      sha256 = "de54be63983e7265247a0f9345be06361b2c9475631b7f28717192d4ac015c30";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ff/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ff/firefox-103.0.2.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "5b3a271207003e25776a55b7ee6adba2f83e844d4b0a738209d21be7db82ac33";
+      sha256 = "50bf5f2e029c715cb261acfdd2435cdbdc15ca9c6aa5e0a8a60090f137265bfc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/fi/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/fi/firefox-103.0.2.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "50a9408303ac8fc7c22da96f993b0b251407261d35598b4fe06f1c545788ef0b";
+      sha256 = "fcbbebe15f79a5634d5618b62c6b34157a48060c9ad7aded8b919a6f306f6998";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/fr/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/fr/firefox-103.0.2.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "65db55f518be2abd8da5b52654bdf0efecd94b21ab843b76a6ad9e9ccb516a55";
+      sha256 = "8dc93cf01ccc9bdaabdd74357e90aca4a3533da7c799a650dd862c93b9f36192";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/fy-NL/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/fy-NL/firefox-103.0.2.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "b3da8b5a077e4955bf2c662840005adaba2dd77af4724e965403da3139b5fb3f";
+      sha256 = "5d314e155903ff8f62671111c49ba5044cc55e5f2b7f2dca8fa2cf68d3b3c2f3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ga-IE/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ga-IE/firefox-103.0.2.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "f4812b90fa0a0391d2a372e7bf45a3393d59714209046618e7b1ed72f1889e2f";
+      sha256 = "b5ffa83c822f9cc24cca6b385b72280cf1bc3e971c5bc285d0e987669d696cdb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/gd/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/gd/firefox-103.0.2.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "769c42c86d5b3866f9ad38bc833f5f1f1b01c7f5ed6898eba064ce6f31c9f550";
+      sha256 = "2b89166220eb02826d8839556e264a8f08fb0340704380d9919c8ed5adc79474";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/gl/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/gl/firefox-103.0.2.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "b75ed9efccd63053589a3f60fbabb6ce5fc1c027a1a00789ff23b6971b0ebad5";
+      sha256 = "78a673257731f1d88fc4f13361cc9eaec5213b7af456922fea287683f5721659";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/gn/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/gn/firefox-103.0.2.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "bf60ba48f5d5a18ef9aeaf631d564412788ca102990b69b176ac66c1b8e3535c";
+      sha256 = "6dccf2e372d95c23d1adbf951e2f08ab9c273ed0e322b5c89d21a5590886eada";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/gu-IN/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/gu-IN/firefox-103.0.2.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "19f568337cfba71d7e1626099b1c6cee4d69a0332065779e5375da648d70a3f4";
+      sha256 = "e3c264da5eccaed2c86d3bd9e116bbacf717dd2573612ebe03d4e9a9ccb44f62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/he/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/he/firefox-103.0.2.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "7d6a55d76f74d85e2f9da77ee071df31aed1c37f9fb139e448624a105b6ef19d";
+      sha256 = "e6cbdbfc446cbb5abcf3a1c34de47ad44449a98c0d420866fb1084197c47c2bc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/hi-IN/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/hi-IN/firefox-103.0.2.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "12451d7cc49ca2629ffedeebd1d77f8ac96d5839ed165ea91f55a249427ebf09";
+      sha256 = "9e14ce602d332f44f65afcfbdd02c1c906df5da689e54cce3fb954146c905b95";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/hr/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/hr/firefox-103.0.2.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "b2197d6d51847848cd849fef446e8b84725fc2b9539824e65719c4fd1d7f29ba";
+      sha256 = "885572cd49ac83b5b741c9d457d7d24f18607ceb469c015f526a458b217b03f7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/hsb/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/hsb/firefox-103.0.2.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "5000e21630440a446416de3cc38bcfc7c22bb8bc8d1a1a027c14b9548acff74a";
+      sha256 = "d4dc7974cc259b7c89f3bf5644f4ce9ed550fce3d4ec3d541058f2411328f87a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/hu/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/hu/firefox-103.0.2.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "dee75736596f5f0dc1d6952327274d07f927ff42e7c9a0ed8c8ba8dc78a6b3f9";
+      sha256 = "96305bc7cb3f344d97075bb72ac01295611074ee6086e5f0d9f6fe821b5ef277";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/hy-AM/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/hy-AM/firefox-103.0.2.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "4b7dcb46864b058bdbeb35404de32c88e2822dd0315f105e95f61be857288282";
+      sha256 = "8bafc462f78afa7ab315fbe6d3f7aa27c6bb766444ad2deb621ca1253101c3b1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ia/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ia/firefox-103.0.2.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "e89e07b1d71e1b2ccfd4d412dabea164bae8448f57a5f99a07ab04f9dcaa0bab";
+      sha256 = "9e62963fd48110753ba62227d47e25364e100bf8bb18d71bbf15984df2d869d9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/id/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/id/firefox-103.0.2.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "398ee6ed278cec1ceb489dd06d8f4c2671309a3e0d61f3202fd5280a5b596ca7";
+      sha256 = "2f0cecbc174cd7ac532e188f95d4896134ec151b6cb03879ad9eaf9278beae63";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/is/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/is/firefox-103.0.2.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "a3531b8f68ee22452390ff8e1c70d7f6b842e10ab60ca6666f79fd958284d099";
+      sha256 = "4132b0046fbd0eea3a7d279e0ad62ce4852915966a38c91473ab35af483288f0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/it/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/it/firefox-103.0.2.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "fe8fd2e7b0e87cb3b12ab6d8d973c422ef763d9d3a78620fe5a9f374455ccecc";
+      sha256 = "5728d3ec62f7ec68ef6027215bc6535e212a03ee6f824453a2c723009f439be9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ja/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ja/firefox-103.0.2.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "5d52ec4afd7de44806b804b5de6e597228d7061c10b0cc8d6fabeca505a0b207";
+      sha256 = "71410d762f9322eafcbc9084bdaa989af1a9c9e43507fb6078a1e80512aaa478";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ka/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ka/firefox-103.0.2.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "902abc9df459c6dd2168050764cb2301ffee566f4deb11b2ef7c694cf429cc58";
+      sha256 = "0518f6fd8ff08b9d47fb1c9cb3ac869ba1c5c7da8eeaaee6b70dc5f0ff1eb9f1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/kab/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/kab/firefox-103.0.2.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "aa96307da2c832df7ea7ea418d3dae6dd9f2aed56432a8ed6e43fabe71aa9828";
+      sha256 = "c3da39d573acfe6c8389be20c218e8bb3d00e21726e552f8624a23278ddb3850";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/kk/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/kk/firefox-103.0.2.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "addb689db7bb19f28db963ca61dd0ece3813f5ca21f3437c1320c3f972e19029";
+      sha256 = "8d192c6e780bff63724b012d09d8a6561cbc85fab2dab10b52df83cd2d42bbfe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/km/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/km/firefox-103.0.2.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "7a982cdb847d162c6cedf724adebfab904cfacdbe3d4e48ee9af3e644e74cc14";
+      sha256 = "a3469234f1b42bf11e62e9a352810ea9aa8d3775df18f6f40a0cd8f9f5209d64";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/kn/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/kn/firefox-103.0.2.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "d2cb6eb8c004d9c0e0929d8047d93902a2235b5068b86672c693edef1a2b8911";
+      sha256 = "a8cb7107d56f9aa094f673c265e0547a1b0907b678dee02b632748bf4a5a48ed";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ko/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ko/firefox-103.0.2.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "63770f2a873b520e5b1c1bece82ea4a987a2ae6535f9c4047e99b68f62c91748";
+      sha256 = "27fcc60b73aaa0298bd66347bb57b5ce8b13b4d25a6ee5180b5ca4f7de6d1a1f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/lij/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/lij/firefox-103.0.2.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "ff130a01dc266b5b49f39f9c4355a6576211c0008cd5008290266daff222e18d";
+      sha256 = "8d9cd8eac3a0428fc7369e7ca02a0ff222431828c45a4eab58584acb80158be7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/lt/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/lt/firefox-103.0.2.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "04105e0614b660d0e156b0aa2307af9d0d11236119b6667718d7f0f1f13ae505";
+      sha256 = "d80dd81c0aa9470b740745383ddf42553ec41e5d9c4c504bc9bca6478e7a57c1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/lv/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/lv/firefox-103.0.2.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "50dd34d558800dafc84d714f5cf08a26eb4970c3aa6b8850430aa156d8869549";
+      sha256 = "1bafd38a30b1b8bf6fa0e9ec4a6a9fd6c4a4872e809e1d66dd1c6787d1bbf46d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/mk/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/mk/firefox-103.0.2.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "8ca0b1cc9ff39757f2cc513d61a77d1d95a607862ea654d6743bf4a8f7bde99c";
+      sha256 = "642abade64640db651ce477deba87994a118aa279f6ffdd302ddc620a3d0c9ad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/mr/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/mr/firefox-103.0.2.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "b24884486692dfcad578026498a3654d34ae78cd39e977b3708053bd7754d37b";
+      sha256 = "b00eec77bdafd2046aa81260ded7cb56c459b4d1ee7ee80652983791fa16affc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ms/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ms/firefox-103.0.2.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "c43f2f10d928a3cf875e81afb54c09c1ef49ff8457069c054df2f62e0a43979f";
+      sha256 = "f39f3771158dc7c46e3f5c30b433d35586da0a5d3418d5b0f62042521e99052c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/my/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/my/firefox-103.0.2.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "296d3860c2224deaa43184fa85dfce21eb9fc9b11d080d7f71cc189c4a790ed3";
+      sha256 = "9dcbdf49871e63f988c6b3a4115bf84f5d3843fb982b81e87495a1db1cb80675";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/nb-NO/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/nb-NO/firefox-103.0.2.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "b0ce5e0157ff9f64434b38cf9338960870bbf6bdb4b75494b82c8ba871868ff3";
+      sha256 = "59a4c7145b3a76d51bdfc8f6e4bec7c8624d90e8131ef97b272e2e073f1fe708";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ne-NP/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ne-NP/firefox-103.0.2.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "58b7a719e7fb10bf7bfbe23f4ffcf002434652f792a3a1ffbadb13a5e06a04ba";
+      sha256 = "577f7e0830ed6713b6b00a0b5ba614e205b68202c7243fa1fb452001fd5ae1bc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/nl/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/nl/firefox-103.0.2.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "2951dae0cbb3bec0e47ae44b70e6796ace16c8fbac18d7d04da84a51ded6a650";
+      sha256 = "fa9f40f2868eb78501486c8513d978faa1d513060eca68fdba13fa34578a076e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/nn-NO/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/nn-NO/firefox-103.0.2.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "6f44201f301931e3b51144d57a79c484b776c37cb29dda93b57795c0a756c62f";
+      sha256 = "14732b26dc092275a78223243733a29ba195c719170d852119d689ba4e31f915";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/oc/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/oc/firefox-103.0.2.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "899a48b47dd642a64de0ac9226b4655e74bba9f0f6d1eccebc1c1875e1d3ea12";
+      sha256 = "484bfe1df41935476f76dedb9cc3b8cf9e7b299a1e2e99f78a68ec797f8b3d6f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/pa-IN/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/pa-IN/firefox-103.0.2.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "392b6e6cb3ca1ef3e17f73ca327bf7fd49d453ee0216f922dfc3bfc7b2ce18da";
+      sha256 = "100fb719a2f09c393771a766d1b165cbbee256b69cd07918fe4afe7b8bf78140";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/pl/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/pl/firefox-103.0.2.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "f4f6124c3520c58ee00b7f4f00a39a904657b21072fe3d822a17b072c8e69473";
+      sha256 = "2419cab7b2b71d2e39440d8867b2bba66cb2c6330240d7a9d22c63668cbbc875";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/pt-BR/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/pt-BR/firefox-103.0.2.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "b19e3aee72fb779ab139535295d3279cd06c125349fb5ee71c12737ab2aff733";
+      sha256 = "134331e12301a11048a75a891c135fe48bfe573a1d86a3ac454b7ffc4612b0b5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/pt-PT/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/pt-PT/firefox-103.0.2.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "0924bc137f6eaaf6686249f59540eadfd9b09aa843a071bd7db5d62f742258af";
+      sha256 = "8c7fb54060bf0708c3e9d4afe4ca3433078d0c815acb120530fdd1a2cb22f9a8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/rm/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/rm/firefox-103.0.2.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "ea9b082ba495a19162c0945b865eae6f66c689962807873bf27ad59a3e83c85e";
+      sha256 = "d30713da6519a177e88df0a65d44990c6714248cc69146aefe20006d99056301";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ro/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ro/firefox-103.0.2.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "3bbd902b4ace383d914f51553bce3de83c2ca4f6366e3f2dc42268795c7bf72b";
+      sha256 = "3780683ff2b1f9916770a3d93348a4c6243d4aa7d45759a5d13ae1483b14b95b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ru/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ru/firefox-103.0.2.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "84296b00a3646cf8d0e7ba3ec6cbc90592b8fe8b2dcc36b8c904d1e15c264575";
+      sha256 = "287874ea57f9088eb965d5cdf1d574816f884790e92ed4d857129afbc737d1c6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/sco/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/sco/firefox-103.0.2.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "8f966e6fa33e9e0242dd422818c9c46c5ffe37ebeb34e01a7eb57258e0aea481";
+      sha256 = "7f0e4540b12439b4c148fab74b162b440bce4900b1c854f65b5c69dd40b157a9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/si/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/si/firefox-103.0.2.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "3ce96976ec5e920b20fdb1ff7fa8d20db2a67c0797ac4307f7e387db91306719";
+      sha256 = "bd67285f89656b95fb3b7ddc485298e11cb585912e558118bf819afe83a5f7fb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/sk/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/sk/firefox-103.0.2.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "1a4d37ac6777185230343dceb4902b55e0adad62d144347d09f031228583370c";
+      sha256 = "42c7d180af9f7971341044513fe347c6b0f97082370a3fa42f77edb1bf7e18d1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/sl/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/sl/firefox-103.0.2.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "e1875f0077c3c03f34d7fa33e807d0297f831d451a045cd55accc493c3dce366";
+      sha256 = "edb90893f92d6c6ef6d3fc118439cf51d2bb60b863e5c7be4560dd66da4be774";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/son/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/son/firefox-103.0.2.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "1d13d9d3f9d8cfc03e5e45cd1c62a08b24437ed9feeb27ce42b07a75f0aefc04";
+      sha256 = "cc894f3899204fd5d5da28ab1047fd36520b0503756a4b1a473524e7046943ad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/sq/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/sq/firefox-103.0.2.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "e2ae3fa32c56258069cdb95231a5d3b44218d32f0b10afc4174ac204bda7acf5";
+      sha256 = "575b38e35c41d561f49270a7a9c93d353f9a2aefb17744f9eddfa6eccb69ee0e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/sr/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/sr/firefox-103.0.2.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "96a5178bdbca9f6d1434610aa0d35c32b6eb542d6d3e760ce778a8e4181515f7";
+      sha256 = "03da3ceebe3a4f57599240092f3d7ee0bb3212a5c943fee81bb92d8bc8d4e842";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/sv-SE/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/sv-SE/firefox-103.0.2.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "fabe9274a8ac78ba84a394a7a5e7cfa22c41e3b58c8e6b94496fda6490bad644";
+      sha256 = "cedf5b9083da650e10fa980c666d001494fc012ebea55d63d10706470fe174ab";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/szl/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/szl/firefox-103.0.2.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "d77505b5fe04946002e5d1a28081c7e2933ce910a8d67f4e5ed31508808cfd41";
+      sha256 = "9a5b695aaf23325d094d4ff33b89c014e0356721c9f05f97394f8424c470f796";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ta/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ta/firefox-103.0.2.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "a34e5b28526f9861bdc7af910e0a3418404f4316ad5792607493a698f480c9a1";
+      sha256 = "0596f0f82eec30cd8d81a0fdeb48b031eb2b5b5f3624851a9e2974e5a515f4ca";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/te/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/te/firefox-103.0.2.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "c3b8653af6ed8f4cf7e9f3e5a4a0c622a163f7c45dd0d1ddcb3936e1504ea1af";
+      sha256 = "548bd9a8dcfd4b0fee2fec6819d659a41c51946e8098d1675e784ac81886ccdc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/th/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/th/firefox-103.0.2.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "a6456037b76bf2adaa6a6d68f8b20f293f8a4fdbbc3e533c8a6a22aedcc3bf4d";
+      sha256 = "afaffdb62f14531d658f3af231bfb3f753dd4957df3b7b76c912b835ad940ecc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/tl/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/tl/firefox-103.0.2.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "51ff115845f3d70a9fb08f08fcd3c1f86a41b3570f81f460c24a5a87605a779d";
+      sha256 = "d50d0262d8ba991c74d9fcf2bf70015507da9c3e752d146ee4b69f3426efb291";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/tr/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/tr/firefox-103.0.2.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "3ccb5735a16622dafe6ae465ba167ea164843c85df436e7cd20cf6e7a4fbb610";
+      sha256 = "a6d8e3c1d9544b7e8d4598cb59204180c49169c6faa471a821ddd67c5b4055fb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/trs/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/trs/firefox-103.0.2.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "7d1a71033460524506082087ce1b3ddc424207ea3ade6e0bbdbb00310e74cfea";
+      sha256 = "586a6761366673b7b3fabd966c4a8e65aa850c60230bb5c078da83de1ab6aa38";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/uk/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/uk/firefox-103.0.2.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "6db06ed2f126c5307ef6380dff4dae14cc39ca58d23b827835d3e702acf33c72";
+      sha256 = "654ad92cc77bff8ed4385e9c0511c0f107327b8ed128874cb7913df2824b572e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/ur/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/ur/firefox-103.0.2.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "d00bcd6b3c70919999e748046b3291279d313f850c3daedae37259b695cb351d";
+      sha256 = "5fbd71c269feedaf637eb2611ccd956a426bede0958008a71a07862d24b03b36";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/uz/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/uz/firefox-103.0.2.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "1d77240a5f6d7542a7035fd32fd73e07bee1e1e880800cabd01e357a3da30907";
+      sha256 = "9344c246a6a91431df5a1aa21b5ec3a24123bdd2919893f9e71d977427038d29";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/vi/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/vi/firefox-103.0.2.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "9469a1c6613ea83a8e367c0e25e188ea9b9fddcc1497725a3ebb008fb5d5d73e";
+      sha256 = "7dab6c27775bf05558adae3d015a5fec31ca0b191ecd6342bb945000456d8b83";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/xh/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/xh/firefox-103.0.2.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "af3144bfcb52df706182fa04badf39be51e5774335af21d8ec38dcbebe3bdf13";
+      sha256 = "cd74b821097542e39f73e9666580bfb763643091881264725875472b08c2be68";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/zh-CN/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/zh-CN/firefox-103.0.2.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "fe6fc7bda0e52d64abcef8cbfc5e8576c64067b8746605e80790bde6dcd9b03d";
+      sha256 = "5d1c16904b8feeeaa868762075a2b55328fa9b589bbcf31d5cefa852b1cd3ff8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/98.0.2/linux-i686/zh-TW/firefox-98.0.2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/103.0.2/linux-i686/zh-TW/firefox-103.0.2.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "18da6dcf61bba9a22b5487f695793d65b952cfc7065ff334b0faf8e7ec82d90f";
+      sha256 = "aaa4da6b12b6c70542b60cd97520a79b6799366ec840ce8eede2a89389aafcbe";
     }
     ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
index a1e836151350..fb4c326be5b3 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
@@ -4,6 +4,7 @@
 , updateScript ? null
 , binaryName ? "firefox"
 , application ? "browser"
+, applicationName ? "Mozilla Firefox"
 , src
 , unpackPhase ? null
 , extraPatches ? []
@@ -18,13 +19,14 @@
 
 
 { lib
+, pkgs
 , stdenv
 , fetchpatch
 
 # build time
 , autoconf
 , cargo
-, gnused
+, dump_syms
 , makeWrapper
 , nodejs
 , perl
@@ -61,11 +63,13 @@
 , libwebp
 , nasm
 , nspr
-, nss
+, nss_esr
+, nss_latest
 , pango
 , xorg
 , zip
 , zlib
+, pkgsBuildBuild
 
 # optionals
 
@@ -81,11 +85,13 @@
 , alsaSupport ? stdenv.isLinux, alsa-lib
 , ffmpegSupport ? true
 , gssSupport ? true, libkrb5
+, jackSupport ? stdenv.isLinux, libjack2
 , jemallocSupport ? true, jemalloc
 , ltoSupport ? (stdenv.isLinux && stdenv.is64bit), overrideCC, buildPackages
-, pgoSupport ? (stdenv.isLinux && stdenv.isx86_64 && stdenv.hostPlatform == stdenv.buildPlatform), xvfb-run
+, pgoSupport ? (stdenv.isLinux && stdenv.hostPlatform == stdenv.buildPlatform), xvfb-run
 , pipewireSupport ? waylandSupport && webrtcSupport
 , pulseaudioSupport ? stdenv.isLinux, libpulseaudio
+, sndioSupport ? stdenv.isLinux, sndio
 , waylandSupport ? true, libxkbcommon, libdrm
 
 ## privacy-related options
@@ -95,8 +101,10 @@
 # WARNING: NEVER set any of the options below to `true` by default.
 # Set to `!privacySupport` or `false`.
 
+, crashreporterSupport ? !privacySupport
 , geolocationSupport ? !privacySupport
 , googleAPISupport ? geolocationSupport
+, mlsAPISupport ? geolocationSupport
 , webrtcSupport ? !privacySupport
 
 # digital rights managemewnt
@@ -108,11 +116,6 @@
 # `browser.eme.ui.enabled` and `media.gmp-widevinecdm.enabled` accordingly
 , drmSupport ? true
 
-## other
-
-, crashreporterSupport ? false
-, safeBrowsingSupport ? false
-
 # As stated by Sylvestre Ledru (@sylvestre) on Nov 22, 2017 at
 # https://github.com/NixOS/nixpkgs/issues/31843#issuecomment-346372756 we
 # have permission to use the official firefox branding.
@@ -142,16 +145,21 @@ let
 
   # Target the LLVM version that rustc is built with for LTO.
   llvmPackages0 = rustc.llvmPackages;
+  llvmPackagesBuildBuild0 = pkgsBuildBuild.rustc.llvmPackages;
 
   # Force the use of lld and other llvm tools for LTO
   llvmPackages = llvmPackages0.override {
     bootBintoolsNoLibc = null;
     bootBintools = null;
   };
+  llvmPackagesBuildBuild = llvmPackagesBuildBuild0.override {
+    bootBintoolsNoLibc = null;
+    bootBintools = null;
+  };
 
   # LTO requires LLVM bintools including ld.lld and llvm-ar.
   buildStdenv = overrideCC llvmPackages.stdenv (llvmPackages.stdenv.cc.override {
-    inherit (llvmPackages) bintools;
+    bintools = if ltoSupport then buildPackages.rustc.llvmPackages.bintools else stdenv.cc.bintools;
   });
 
   # Compile the wasm32 sysroot to build the RLBox Sandbox
@@ -163,14 +171,47 @@ let
       ln -s $lib $out/lib/wasm32-wasi
     done
   '';
+
+  distributionIni = pkgs.writeText "distribution.ini" (lib.generators.toINI {} {
+    # Some light branding indicating this build uses our distro preferences
+    Global = {
+      id = "nixos";
+      version = "1.0";
+      about = "${applicationName} for NixOS";
+    };
+    Preferences = {
+      # These values are exposed through telemetry
+      "app.distributor" = "nixos";
+      "app.distributor.channel" = "nixpkgs";
+      "app.partner.nixos" = "nixos";
+    };
+  });
+
+  defaultPrefs = {
+    "geo.provider.network.url" = {
+      value = "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%";
+      reason = "Use MLS by default for geolocation, since our Google API Keys are not working";
+    };
+  };
+
+  defaultPrefsFile = pkgs.writeText "nixos-default-prefs.js" (lib.concatStringsSep "\n" (lib.mapAttrsToList (key: value: ''
+    // ${value.reason}
+    pref("${key}", ${builtins.toJSON value.value});
+  '') defaultPrefs));
+
 in
 
 buildStdenv.mkDerivation ({
-  name = "${pname}-unwrapped-${version}";
+  pname = "${pname}-unwrapped";
   inherit version;
 
   inherit src unpackPhase meta;
 
+  outputs = [
+    "out"
+  ]
+  ++ lib.optionals crashreporterSupport [ "symbols" ];
+
   # Add another configure-build-profiling run before the final configure phase if we build with pgo
   preConfigurePhases = lib.optionals pgoSupport [
     "configurePhase"
@@ -178,14 +219,12 @@ buildStdenv.mkDerivation ({
     "profilingPhase"
   ];
 
-  patches = [
+  patches = lib.optionals (lib.versionOlder version "103") [
     (fetchpatch {
-      # RDD Sandbox paths for NixOS, remove with Firefox>=100
-      # https://hg.mozilla.org/integration/autoland/rev/5ac6a69a01f47ca050d90704a9791b8224d30f14
-      # https://bugzilla.mozilla.org/show_bug.cgi?id=1761692
-      name = "mozbz-1761692-rdd-sandbox-paths.patch";
-      url = "https://hg.mozilla.org/integration/autoland/raw-rev/5ac6a69a01f47ca050d90704a9791b8224d30f14";
-      hash = "sha256-+NGRUxXA7HGvPaAwvDveqRsdXof5nBIc+l4hdf7cC/Y=";
+      # https://bugzilla.mozilla.org/show_bug.cgi?id=1773259
+      name = "rust-cbindgen-0.24.2-compat.patch";
+      url = "https://raw.githubusercontent.com/canonical/firefox-snap/5622734942524846fb0eb7108918c8cd8557fde3/patches/fix-ftbfs-newer-cbindgen.patch";
+      hash = "sha256-+wNZhkDB3HSknPRD4N6cQXY7zMT/DzNXx29jQH0Gb1o=";
     })
   ]
   ++ lib.optional (lib.versionAtLeast version "86") ./env_var_for_system_dir-ff86.patch
@@ -204,11 +243,15 @@ buildStdenv.mkDerivation ({
   # two patches.
   patchFlags = [ "-p1" "-l" ];
 
+  # if not explicitly set, wrong cc from buildStdenv would be used
+  HOST_CC = "${llvmPackagesBuildBuild.stdenv.cc}/bin/cc";
+  HOST_CXX = "${llvmPackagesBuildBuild.stdenv.cc}/bin/c++";
+
   nativeBuildInputs = [
     autoconf
     cargo
-    gnused
-    llvmPackages.llvm # llvm-objdump
+    gnum4
+    llvmPackagesBuildBuild.bintools
     makeWrapper
     nodejs
     perl
@@ -221,6 +264,7 @@ buildStdenv.mkDerivation ({
     which
     wrapGAppsHook
   ]
+  ++ lib.optionals crashreporterSupport [ dump_syms ]
   ++ lib.optionals pgoSupport [ xvfb-run ]
   ++ extraNativeBuildInputs;
 
@@ -243,13 +287,17 @@ buildStdenv.mkDerivation ({
     # Set consistent remoting name to ensure wmclass matches with desktop file
     export MOZ_APP_REMOTINGNAME="${binaryName}"
 
-    # Use our own python
-    export MACH_USE_SYSTEM_PYTHON=1
-
     # AS=as in the environment causes build failure
     # https://bugzilla.mozilla.org/show_bug.cgi?id=1497286
     unset AS
 
+  '' + lib.optionalString (lib.versionAtLeast version "100.0") ''
+    # Use our own python
+    export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
+  '' + lib.optionalString (lib.versionOlder version "100.0") ''
+    # Use our own python
+    export MACH_USE_SYSTEM_PYTHON=1
+
   '' + lib.optionalString (lib.versionAtLeast version "95.0") ''
     # RBox WASM Sandboxing
     export WASM_CC=${pkgsCross.wasi32.stdenv.cc}/bin/${pkgsCross.wasi32.stdenv.cc.targetPrefix}cc
@@ -276,22 +324,32 @@ buildStdenv.mkDerivation ({
   '' + lib.optionalString googleAPISupport ''
     # Google API key used by Chromium and Firefox.
     # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
-    # please get your own set of keys.
-    echo "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI" > $TMPDIR/ga
+    # please get your own set of keys at https://www.chromium.org/developers/how-tos/api-keys/.
+    echo "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI" > $TMPDIR/google-api-key
     # 60.5+ & 66+ did split the google API key arguments: https://bugzilla.mozilla.org/show_bug.cgi?id=1531176
-    configureFlagsArray+=("--with-google-location-service-api-keyfile=$TMPDIR/ga")
-    configureFlagsArray+=("--with-google-safebrowsing-api-keyfile=$TMPDIR/ga")
-  '' + lib.optionalString enableOfficialBranding ''
+    configureFlagsArray+=("--with-google-location-service-api-keyfile=$TMPDIR/google-api-key")
+    configureFlagsArray+=("--with-google-safebrowsing-api-keyfile=$TMPDIR/google-api-key")
+  '' + lib.optionalString mlsAPISupport ''
+    # Mozilla Location services API key
+    # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
+    # please get your own set of keys at https://location.services.mozilla.com/api.
+    echo "dfd7836c-d458-4917-98bb-421c82d3c8a0" > $TMPDIR/mls-api-key
+    configureFlagsArray+=("--with-mozilla-api-keyfile=$TMPDIR/mls-api-key")
+  '' + lib.optionalString (enableOfficialBranding && !stdenv.is32bit) ''
     export MOZILLA_OFFICIAL=1
   '';
 
+  # firefox has a different definition of configurePlatforms from nixpkgs, see configureFlags
+  configurePlatforms = [ ];
+
   configureFlags = [
     "--disable-tests"
     "--disable-updater"
     "--enable-application=${application}"
     "--enable-default-toolkit=cairo-gtk3${lib.optionalString waylandSupport "-wayland"}"
     "--enable-system-pixman"
-    "--with-libclang-path=${llvmPackages.libclang.lib}/lib"
+    "--with-distribution-id=org.nixos"
+    "--with-libclang-path=${llvmPackagesBuildBuild.libclang.lib}/lib"
     "--with-system-ffi"
     "--with-system-icu"
     "--with-system-jpeg"
@@ -302,6 +360,9 @@ buildStdenv.mkDerivation ({
     "--with-system-png" # needs APNG support
     "--with-system-webp"
     "--with-system-zlib"
+    # for firefox, host is buildPlatform, target is hostPlatform
+    "--host=${buildStdenv.buildPlatform.config}"
+    "--target=${buildStdenv.hostPlatform.config}"
   ]
   # LTO is done using clang and lld on Linux.
   ++ lib.optionals ltoSupport [
@@ -314,7 +375,9 @@ buildStdenv.mkDerivation ({
   ++ lib.optional (lib.versionAtLeast version "95") "--with-wasi-sysroot=${wasiSysRoot}"
 
   ++ flag alsaSupport "alsa"
+  ++ flag jackSupport "jack"
   ++ flag pulseaudioSupport "pulseaudio"
+  ++ lib.optional (lib.versionAtLeast version "100") (flag sndioSupport "sndio")
   ++ flag ffmpegSupport "ffmpeg"
   ++ flag jemallocSupport "jemalloc"
   ++ flag geolocationSupport "necko-wifi"
@@ -342,7 +405,6 @@ buildStdenv.mkDerivation ({
     fontconfig
     freetype
     glib
-    gnum4
     gtk3
     icu
     libffi
@@ -356,7 +418,6 @@ buildStdenv.mkDerivation ({
     libwebp
     nasm
     nspr
-    nss
     pango
     perl
     xorg.libX11
@@ -373,8 +434,11 @@ buildStdenv.mkDerivation ({
     zip
     zlib
   ]
+  ++ [ (if (lib.versionAtLeast version "92") then nss_latest else nss_esr) ]
   ++ lib.optional  alsaSupport alsa-lib
+  ++ lib.optional  jackSupport libjack2
   ++ lib.optional  pulseaudioSupport libpulseaudio # only headers are needed
+  ++ lib.optional  (sndioSupport && lib.versionAtLeast version "100") sndio
   ++ lib.optional  gssSupport libkrb5
   ++ lib.optionals waylandSupport [ libxkbcommon libdrm ]
   ++ lib.optional  jemallocSupport jemalloc
@@ -416,11 +480,22 @@ buildStdenv.mkDerivation ({
   # tests were disabled in configureFlags
   doCheck = false;
 
-  preInstall = ''
+  # Generate build symbols once after the final build
+  # https://firefox-source-docs.mozilla.org/crash-reporting/uploading_symbol.html
+  preInstall = lib.optionalString crashreporterSupport ''
+    ./mach buildsymbols
+    mkdir -p $symbols/
+    cp mozobj/dist/*.crashreporter-symbols.zip $symbols/
+  '' + ''
     cd mozobj
   '';
 
-  postInstall = lib.optionalString buildStdenv.isLinux ''
+  postInstall = ''
+    # Install distribution customizations
+    install -Dvm644 ${distributionIni} $out/lib/${binaryName}/distribution/distribution.ini
+    install -Dvm644 ${defaultPrefsFile} $out/lib/${binaryName}/browser/defaults/preferences/nixos-default-prefs.js
+
+  '' + lib.optionalString buildStdenv.isLinux ''
     # Remove SDK cruft. FIXME: move to a separate output?
     rm -rf $out/share/idl $out/include $out/lib/${binaryName}-devel-*
 
@@ -475,7 +550,9 @@ buildStdenv.mkDerivation ({
     inherit version;
     inherit alsaSupport;
     inherit binaryName;
+    inherit jackSupport;
     inherit pipewireSupport;
+    inherit sndioSupport;
     inherit nspr;
     inherit ffmpegSupport;
     inherit gssSupport;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/librewolf/src.json b/nixpkgs/pkgs/applications/networking/browsers/firefox/librewolf/src.json
deleted file mode 100644
index f24353089488..000000000000
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/librewolf/src.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "packageVersion": "98.0.2-1",
-  "source": {
-    "rev": "98.0.2-1",
-    "sha256": "033l6mjmhfhf7b8p652s7ziw8zz725082hhzzvr3ahi498wshkx6"
-  },
-  "firefox": {
-    "version": "98.0.2",
-    "sha512": "b567b53fcdc08491063d535545f558ea56ec5be02ca540661de116986245b79f509e0103cea5661faf9f4b3d30b67758ebdb4b30401e260ee27cbb300203f36e"
-  }
-}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
index 0eeb451f682e..e719430b5ee8 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -1,12 +1,12 @@
-{ stdenv, lib, callPackage, fetchurl, fetchpatch, nixosTests, firefoxCommon }:
+{ stdenv, lib, callPackage, fetchurl, fetchpatch, nixosTests, buildMozillaMach }:
 
 rec {
-  firefox = firefoxCommon rec {
+  firefox = buildMozillaMach rec {
     pname = "firefox";
-    version = "98.0.2";
+    version = "103.0.2";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "b567b53fcdc08491063d535545f558ea56ec5be02ca540661de116986245b79f509e0103cea5661faf9f4b3d30b67758ebdb4b30401e260ee27cbb300203f36e";
+      sha512 = "f13984bb551039c80ef731931f08a284f070142ecb479b31a4caad026a6b535e3fc7ae506b629e933ba5f5a1676f14b6b36d031d22584170492676f8727c822a";
     };
 
     meta = {
@@ -26,12 +26,40 @@ rec {
     };
   };
 
-  firefox-esr-91 = firefoxCommon rec {
-    pname = "firefox-esr";
-    version = "91.7.1esr";
+  firefox-esr-102 = buildMozillaMach rec {
+    pname = "firefox-esr-102";
+    version = "102.1.0esr";
+    applicationName = "Mozilla Firefox ESR";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "c56aa38e9d706ff1f1838d2639dac82109dcffb54a7ea17326ae306604d78967ac32da13676756999bc1aa0bf50dc4e7072936ceb16e2e834bea48382ae4b48c";
+      sha512 = "2505b87ce4115445568eb6b7d8af41678bd787fd07f3f79e9f0a22d90cdf752ae5d4371856cf9c56e2d9da7d5b7c3939dc2aab5753fcc017398e7d65260f6f03";
+    };
+
+    meta = {
+      description = "A web browser built from Firefox Extended Support Release source tree";
+      homepage = "http://www.mozilla.com/en-US/firefox/";
+      maintainers = with lib.maintainers; [ hexa ];
+      platforms = lib.platforms.unix;
+      badPlatforms = lib.platforms.darwin;
+      broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
+                                             # not in `badPlatforms` because cross-compilation on 64-bit machine might work.
+      license = lib.licenses.mpl20;
+    };
+    tests = [ nixosTests.firefox-esr-102 ];
+    updateScript = callPackage ./update.nix {
+      attrPath = "firefox-esr-102-unwrapped";
+      versionPrefix = "102";
+      versionSuffix = "esr";
+    };
+  };
+
+  firefox-esr-91 = buildMozillaMach rec {
+    pname = "firefox-esr-91";
+    version = "91.12.0esr";
+    applicationName = "Mozilla Firefox ESR";
+    src = fetchurl {
+      url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
+      sha512 = "323fb752488b45872b40f0b0ee1d8c1dffa16874dbff2afde19a54286c824ef48177233e029faeafa5946184e71c31c6bc5ba7ec17a571e21af64fc5f7334042";
     };
 
     meta = {
@@ -47,11 +75,12 @@ rec {
     tests = [ nixosTests.firefox-esr-91 ];
     updateScript = callPackage ./update.nix {
       attrPath = "firefox-esr-91-unwrapped";
+      versionPrefix = "91";
       versionSuffix = "esr";
     };
   };
 
-  firefox-beta = (firefoxCommon rec {
+  firefox-beta = (buildMozillaMach rec {
     pname = "firefox";
     version = "83.0b10";
     src = fetchurl {
@@ -59,7 +88,7 @@ rec {
       sha512 = "1div55x8c9qw8ck7njpf1c9kl1l0hi6fn8gnrj2irbiwhvl5cfxqp84sn7yq9saj46wzicxmczn32w3a1vs5xzjfp454zggg8wllhcx";
     };
 
-    patches = [
+    extraPatches = [
       ./no-buildconfig-ffx76.patch
     ];
 
@@ -71,30 +100,4 @@ rec {
       versionKey = "version";
     };
   }).override { pipewireSupport = false; };
-
-  librewolf =
-  let
-    librewolf-src = callPackage ./librewolf { };
-  in
-  (firefoxCommon rec {
-    pname = "librewolf";
-    binaryName = "librewolf";
-    version = librewolf-src.packageVersion;
-    src = librewolf-src.firefox;
-    inherit (librewolf-src) extraConfigureFlags extraPostPatch extraPassthru;
-
-    meta = {
-      description = "A fork of Firefox, focused on privacy, security and freedom";
-      homepage = "https://librewolf.net/";
-      maintainers = with lib.maintainers; [ squalus ];
-      inherit (firefox.meta) platforms badPlatforms broken maxSilent license;
-    };
-    updateScript = callPackage ./librewolf/update.nix {
-      attrPath = "librewolf-unwrapped";
-    };
-  }).override {
-    crashreporterSupport = false;
-    enableOfficialBranding = false;
-    pgoSupport = false; # Profiling gets stuck and doesn't terminate.
-  };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix
index bbfd17d1fea8..4a24fe85b2ee 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix
@@ -10,6 +10,7 @@
 , attrPath
 , runtimeShell
 , baseUrl ? "http://archive.mozilla.org/pub/firefox/releases/"
+, versionPrefix ? ""
 , versionSuffix ? ""
 , versionKey ? "version"
 }:
@@ -32,7 +33,7 @@ writeScript "update-${attrPath}" ''
   #  - sorts everything with semver in mind
   #  - picks up latest release
   version=`xidel -s $url --extract "//a" | \
-           grep "^[0-9.]*${versionSuffix}/$" | \
+           grep "^${versionPrefix}[0-9.]*${versionSuffix}/$" | \
            sed s/[/]$// | \
            sort --version-sort | \
            tail -n 1`
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
index d5055f04ed82..35a98e6c8c60 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -1,5 +1,5 @@
-{ stdenv, lib, makeDesktopItem, makeWrapper, lndir, config
-, replace, fetchurl, zip, unzip, jq, xdg-utils, writeText
+{ stdenv, lib, makeDesktopItem, makeWrapper, makeBinaryWrapper, lndir, config
+, fetchurl, zip, unzip, jq, xdg-utils, writeText
 
 ## various stuff that can be plugged in
 , ffmpeg, xorg, alsa-lib, libpulseaudio, libcanberra-gtk3, libglvnd, libnotify, opensc
@@ -13,6 +13,8 @@
 , mesa # firefox wants gbm for drm+dmabuf
 , cups
 , pciutils
+, sndio
+, libjack2
 }:
 
 ## configurability of the wrapper itself
@@ -53,6 +55,8 @@ let
       gssSupport = browser.gssSupport or false;
       alsaSupport = browser.alsaSupport or false;
       pipewireSupport = browser.pipewireSupport or false;
+      sndioSupport = browser.sndioSupport or false;
+      jackSupport = browser.jackSupport or false;
       # PCSC-Lite daemon (services.pcscd) also must be enabled for firefox to access smartcards
       smartcardSupport = cfg.smartcardSupport or false;
 
@@ -76,10 +80,14 @@ let
             (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsa-lib zlib ])
             ++ lib.optional (config.pulseaudio or true) libpulseaudio
             ++ lib.optional alsaSupport alsa-lib
+            ++ lib.optional sndioSupport sndio
+            ++ lib.optional jackSupport libjack2
             ++ lib.optional smartcardSupport opensc
             ++ pkcs11Modules;
       gtk_modules = [ libcanberra-gtk3 ];
 
+      launcherName = "${applicationName}${nameSuffix}";
+
       #########################
       #                       #
       #   EXTRA PREF CHANGES  #
@@ -91,12 +99,15 @@ let
 
       nameArray = builtins.map(a: a.name) (if usesNixExtensions then nixExtensions else []);
 
+      requiresSigning = browser ? MOZ_REQUIRE_SIGNING
+                     -> toString browser.MOZ_REQUIRE_SIGNING != "";
+
       # Check that every extension has a unqiue .name attribute
       # and an extid attribute
       extensions = if nameArray != (lib.unique nameArray) then
         throw "Firefox addon name needs to be unique"
-      else if ! (lib.hasSuffix "esr" browser.name) then
-        throw "Nix addons are only supported in Firefox ESR"
+      else if requiresSigning && !lib.hasSuffix "esr" browser.name then
+        throw "Nix addons are only supported without signature enforcement (eg. Firefox ESR)"
       else builtins.map (a:
         if ! (builtins.hasAttr "extid" a) then
         throw "nixExtensions has an invalid entry. Missing extid attribute. Please use fetchfirefoxaddon"
@@ -112,28 +123,27 @@ let
         lib.optionalAttrs usesNixExtensions {
           ExtensionSettings = {
             "*" = {
-                blocked_install_message = "You can't have manual extension mixed with nix extensions";
-                installation_mode = "blocked";
-              };
-
-          } // lib.foldr (e: ret:
-              ret // {
-                "${e.extid}" = {
-                  installation_mode = "allowed";
-                };
-              }
-            ) {} extensions;
-          } // lib.optionalAttrs usesNixExtensions {
-            Extensions = {
-              Install = lib.foldr (e: ret:
-                ret ++ [ "${e.outPath}/${e.extid}.xpi" ]
-                ) [] extensions;
-            };
-          } // lib.optionalAttrs smartcardSupport {
-            SecurityDevices = {
-              "OpenSC PKCS#11 Module" = "onepin-opensc-pkcs11.so";
+              blocked_install_message = "You can't have manual extension mixed with nix extensions";
+              installation_mode = "blocked";
             };
-          }
+          } // lib.foldr (e: ret:
+            ret // {
+              "${e.extid}" = {
+                installation_mode = "allowed";
+              };
+            }
+          ) {} extensions;
+
+          Extensions = {
+            Install = lib.foldr (e: ret:
+              ret ++ [ "${e.outPath}/${e.extid}.xpi" ]
+            ) [] extensions;
+          };
+        } // lib.optionalAttrs smartcardSupport {
+          SecurityDevices = {
+            "OpenSC PKCS#11 Module" = "opensc-pkcs11.so";
+          };
+        }
         // extraPolicies;
       };
 
@@ -159,7 +169,7 @@ let
 
       desktopItem = makeDesktopItem {
         name = applicationName;
-        exec = "${applicationName}${nameSuffix} %U";
+        exec = "${launcherName} %U";
         inherit icon;
         desktopName = "${desktopName}${nameSuffix}${lib.optionalString forceWayland " (Wayland)"}";
         genericName = "Web Browser";
@@ -174,9 +184,23 @@ let
           "x-scheme-handler/ftp"
         ];
         startupWMClass = wmClass;
+        actions = {
+          new-window = {
+            name = "New Window";
+            exec = "${launcherName} --new-window %U";
+          };
+          new-private-window = {
+            name = "New Private Window";
+            exec = "${launcherName} --private-window %U";
+          };
+          profile-manager-window = {
+            name = "Profile Manager";
+            exec = "${launcherName} --ProfileManger";
+          };
+        };
       };
 
-      nativeBuildInputs = [ makeWrapper lndir replace jq ];
+      nativeBuildInputs = [ makeWrapper lndir jq ];
       buildInputs = [ browser.gtk3 ];
 
 
@@ -206,61 +230,61 @@ let
         done
 
         # fix links and absolute references
-        cd "${browser}"
 
         find . -type l -print0 | while read -d $'\0' l; do
-          target="$(readlink "$l" | replace-literal -es -- "${browser}" "$out")"
+          target="$(readlink "$l")"
+          target=''${target/#"${browser}"/"$out"}
           ln -sfT "$target" "$out/$l"
         done
 
-        # This will not patch binaries, only "text" files.
-        # Its there for the wrapper mostly.
         cd "$out"
-        replace-literal -esfR -- "${browser}" "$out"
 
         # create the wrapper
 
         executablePrefix="$out/bin"
         executablePath="$executablePrefix/${applicationName}"
+        oldWrapperArgs=()
 
-        if [ ! -x "$executablePath" ]
-        then
-            echo "cannot find executable file \`${browser}/bin/${applicationName}'"
-            exit 1
-        fi
-
-        if [ ! -L "$executablePath" ]
-        then
-          # Careful here, the file at executablePath may already be
-          # a wrapper. That is why we postfix it with -old instead
-          # of -wrapped.
-          oldExe="$executablePrefix"/".${applicationName}"-old
-          mv "$executablePath" "$oldExe"
-        else
+        if [[ -L $executablePath ]]; then
+          # Symbolic link: wrap the link's target.
           oldExe="$(readlink -v --canonicalize-existing "$executablePath")"
-        fi
-
-        if [ ! -x "${browser}/bin/${applicationName}" ]
-        then
-            echo "cannot find executable file \`${browser}/bin/${applicationName}'"
-            exit 1
+          rm "$executablePath"
+        elif wrapperCmd=$(${makeBinaryWrapper.extractCmd} "$executablePath"); [[ $wrapperCmd ]]; then
+          # If the executable is a binary wrapper, we need to update its target to
+          # point to $out, but we can't just edit the binary in-place because of length
+          # issues. So we extract the command used to create the wrapper and add the
+          # arguments to our wrapper.
+          parseMakeCWrapperCall() {
+            shift # makeCWrapper
+            oldExe=$1; shift
+            oldWrapperArgs=("$@")
+          }
+          eval "parseMakeCWrapperCall ''${wrapperCmd//"${browser}"/"$out"}"
+          rm "$executablePath"
+        else
+          if read -rn2 shebang < "$executablePath" && [[ $shebang == '#!' ]]; then
+            # Shell wrapper: patch in place to point to $out.
+            sed -i "s@${browser}@$out@g" "$executablePath"
+          fi
+          # Suffix the executable with -old, because -wrapped might already be used by the old wrapper.
+          oldExe="$executablePrefix/.${applicationName}"-old
+          mv "$executablePath" "$oldExe"
         fi
 
         makeWrapper "$oldExe" \
-          "$out/bin/${applicationName}${nameSuffix}" \
+          "''${executablePath}${nameSuffix}" \
             --prefix LD_LIBRARY_PATH ':' "$libs" \
             --suffix-each GTK_PATH ':' "$gtk_modules" \
             --prefix PATH ':' "${xdg-utils}/bin" \
             --suffix PATH ':' "$out/bin" \
-            --set MOZ_APP_LAUNCHER "${applicationName}${nameSuffix}" \
+            --set MOZ_APP_LAUNCHER "${launcherName}" \
             --set MOZ_SYSTEM_DIR "$out/lib/mozilla" \
             --set MOZ_LEGACY_PROFILES 1 \
             --set MOZ_ALLOW_DOWNGRADE 1 \
             --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
             --suffix XDG_DATA_DIRS : '${gnome.adwaita-icon-theme}/share' \
-            ${lib.optionalString forceWayland ''
-              --set MOZ_ENABLE_WAYLAND "1" \
-            ''}
+            ${lib.optionalString forceWayland "--set MOZ_ENABLE_WAYLAND 1"} \
+            "''${oldWrapperArgs[@]}"
         #############################
         #                           #
         #   END EXTRA PREF CHANGES  #
diff --git a/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix b/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
index 5ba831b21022..c1c431f7300d 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -32,7 +32,7 @@
 , channel ? "stable"
 
 # Necessary for USB audio devices.
-, pulseSupport ? true, libpulseaudio ? null
+, pulseSupport ? true, libpulseaudio
 
 # Only needed for getting information about upstream binaries
 , chromium
@@ -162,6 +162,7 @@ in stdenv.mkDerivation {
     description = "A freeware web browser developed by Google";
     homepage = "https://www.google.com/chrome/browser/";
     license = licenses.unfree;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     maintainers = with maintainers; [ primeos ];
     # Note from primeos: By updating Chromium I also update Google Chrome and
     # will try to merge PRs and respond to issues but I'm not actually using
diff --git a/nixpkgs/pkgs/applications/networking/browsers/ladybird/default.nix b/nixpkgs/pkgs/applications/networking/browsers/ladybird/default.nix
new file mode 100644
index 000000000000..747c3ea272c0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/ladybird/default.nix
@@ -0,0 +1,94 @@
+{ lib
+, gcc11Stdenv
+, fetchFromGitHub
+, cmake
+, ninja
+, unzip
+, wrapQtAppsHook
+, makeWrapper
+, qtbase
+, qttools
+}:
+
+let serenity = fetchFromGitHub {
+  owner = "SerenityOS";
+  repo = "serenity";
+  rev = "094ba6525f0217f3b8d5e467cef326caeb659e8a";
+  hash = "sha256-IHXe2Td9iRSL1oQVwL2gZHxEM2ID4SghZwK6ewjFV1Y=";
+};
+
+in gcc11Stdenv.mkDerivation {
+  pname = "ladybird";
+  version = "unstable-2022-07-20";
+
+  # Remember to update `serenity` too!
+  src = fetchFromGitHub {
+    owner = "awesomekling";
+    repo = "ladybird";
+    rev = "9e3a1f47d484cee6f23c4dae6c51750af155a8fc";
+    hash = "sha256-1cPWpPvjM/VcVUEf2k+MvGvTgZ3Fc4LFHZCLh1wU78Y=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    ninja
+    unzip
+    wrapQtAppsHook
+    makeWrapper
+  ];
+
+  buildInputs = [
+    qtbase
+  ];
+
+  cmakeFlags = [
+    "-DSERENITY_SOURCE_DIR=${serenity}"
+    # Disable network operations
+    "-DENABLE_TIME_ZONE_DATABASE_DOWNLOAD=false"
+    "-DENABLE_UNICODE_DATABASE_DOWNLOAD=false"
+  ];
+
+  NIX_CFLAGS_COMPILE = [ "-Wno-error" ];
+
+  # Upstream install rules are missing
+  # https://github.com/awesomekling/ladybird/issues/36
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 ladybird $out/bin/ladybird
+    mkdir -p $out/lib/ladybird
+    cp -d _deps/lagom-build/*.so* $out/lib/ladybird/
+    runHook postInstall
+  '';
+
+  # Patch rpaths
+  # https://github.com/awesomekling/ladybird/issues/36
+  preFixup = ''
+    for f in $out/bin/ladybird $out/lib/ladybird/*.so; do
+      old_rpath=$(patchelf --print-rpath "$f")
+      # Remove reference to libraries from build directory
+      rpath_without_build=$(sed -e 's@[^:]*/_deps/lagom-build:@@g' <<< $old_rpath)
+      # Add directory where we install those libraries
+      new_rpath=$out/lib/ladybird:$rpath_without_build
+      patchelf --set-rpath "$new_rpath" "$f"
+    done
+  '';
+
+  # According to the readme, the program needs access to the serenity sources
+  # at runtime
+  postFixup = ''
+    wrapProgram $out/bin/ladybird --set SERENITY_SOURCE_DIR "${serenity}"
+  '';
+
+  # Stripping results in a symbol lookup error
+  dontStrip = true;
+
+  meta = with lib; {
+    description = "A browser using the SerenityOS LibWeb engine with a Qt GUI";
+    homepage = "https://github.com/awesomekling/ladybird";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fgaz ];
+    # SerenityOS only works on x86, and can only be built on unix systems.
+    # We also use patchelf in preFixup, so we restrict that to linux only.
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix b/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix
index 00d0bc8f6fd5..68e1f3bc720d 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix
@@ -6,39 +6,45 @@
 , pkg-config
 , fribidi
 , harfbuzz
-, libunistring
 , libwebp
 , mpg123
-, openssl
-, pcre
 , SDL2
+, the-foundation
 , AppKit
 , zip
-, zlib
+, enableTUI ? false, ncurses, sealcurses
 }:
 
 stdenv.mkDerivation rec {
   pname = "lagrange";
-  version = "1.11.1";
+  version = "1.13.7";
 
   src = fetchFromGitHub {
     owner = "skyjake";
     repo = "lagrange";
     rev = "v${version}";
-    sha256 = "sha256-RrdD+G8DKOBm0TpmRQg1uMGNFAlAADFeK3h6oyo5RZ4=";
-    fetchSubmodules = true;
+    sha256 = "sha256-WUNDkLKT/AgS5WkBKbVSM5/1zSjQuE8Aq68JLSOHFEs=";
   };
 
-  postPatch = ''
-    rm -r lib/fribidi lib/harfbuzz
-  '';
-
   nativeBuildInputs = [ cmake pkg-config zip ];
 
-  buildInputs = [ fribidi harfbuzz libunistring libwebp mpg123 openssl pcre SDL2 zlib ]
+  buildInputs = [ the-foundation ]
+    ++ lib.optionals (!enableTUI) [ fribidi harfbuzz libwebp mpg123 SDL2 ]
+    ++ lib.optionals enableTUI [ ncurses sealcurses ]
     ++ lib.optional stdenv.isDarwin AppKit;
 
-  installPhase = lib.optionalString stdenv.isDarwin ''
+  cmakeFlags = lib.optionals enableTUI [
+    "-DENABLE_TUI=YES"
+    "-DENABLE_MPG123=NO"
+    "-DENABLE_WEBP=NO"
+    "-DENABLE_FRIBIDI=NO"
+    "-DENABLE_HARFBUZZ=NO"
+    "-DENABLE_POPUP_MENUS=NO"
+    "-DENABLE_IDLE_SLEEP=NO"
+    "-DCMAKE_INSTALL_DATADIR=${placeholder "out"}/share"
+  ];
+
+  installPhase = lib.optionalString (stdenv.isDarwin && !enableTUI) ''
     mkdir -p $out/Applications
     mv Lagrange.app $out/Applications
   '';
diff --git a/nixpkgs/pkgs/applications/networking/browsers/librewolf/default.nix b/nixpkgs/pkgs/applications/networking/browsers/librewolf/default.nix
new file mode 100644
index 000000000000..55451167e0a8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/librewolf/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, lib, callPackage, buildMozillaMach, nixosTests }:
+
+let
+  librewolf-src = callPackage ./librewolf.nix { };
+in
+(buildMozillaMach rec {
+  pname = "librewolf";
+  applicationName = "LibreWolf";
+  binaryName = "librewolf";
+  version = librewolf-src.packageVersion;
+  src = librewolf-src.firefox;
+  inherit (librewolf-src) extraConfigureFlags extraPostPatch extraPassthru;
+
+  meta = {
+    description = "A fork of Firefox, focused on privacy, security and freedom";
+    homepage = "https://librewolf.net/";
+    maintainers = with lib.maintainers; [ squalus ];
+    platforms = lib.platforms.unix;
+    badPlatforms = lib.platforms.darwin;
+    broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
+                                           # not in `badPlatforms` because cross-compilation on 64-bit machine might work.
+    maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
+    license = lib.licenses.mpl20;
+  };
+  tests = [ nixosTests.librewolf ];
+  updateScript = callPackage ./update.nix {
+    attrPath = "librewolf-unwrapped";
+  };
+}).override {
+  crashreporterSupport = false;
+  enableOfficialBranding = false;
+  pgoSupport = false; # Profiling gets stuck and doesn't terminate.
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/librewolf/default.nix b/nixpkgs/pkgs/applications/networking/browsers/librewolf/librewolf.nix
index 10b65e8825c2..68ed776e91c9 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/librewolf/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/librewolf/librewolf.nix
@@ -1,4 +1,4 @@
-{ callPackage, git }:
+{ callPackage }:
 let
   src = callPackage ./src.nix { };
 in
diff --git a/nixpkgs/pkgs/applications/networking/browsers/librewolf/src.json b/nixpkgs/pkgs/applications/networking/browsers/librewolf/src.json
new file mode 100644
index 000000000000..1b149daa8ba2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/librewolf/src.json
@@ -0,0 +1,11 @@
+{
+  "packageVersion": "103.0.2-1",
+  "source": {
+    "rev": "103.0.2-1",
+    "sha256": "0cfhrxnvxlidipg0cpz0gapya8pvfqcmjkyqns4xz1jq5lkm1xg3"
+  },
+  "firefox": {
+    "version": "103.0.2",
+    "sha512": "f13984bb551039c80ef731931f08a284f070142ecb479b31a4caad026a6b535e3fc7ae506b629e933ba5f5a1676f14b6b36d031d22584170492676f8727c822a"
+  }
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/librewolf/src.nix b/nixpkgs/pkgs/applications/networking/browsers/librewolf/src.nix
index 38c5dc6b593d..38c5dc6b593d 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/librewolf/src.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/librewolf/src.nix
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/librewolf/update.nix b/nixpkgs/pkgs/applications/networking/browsers/librewolf/update.nix
index 5cb5c6168f73..b8bc64afafe0 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/librewolf/update.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/librewolf/update.nix
@@ -20,7 +20,7 @@ writeScript "update-librewolf" ''
   latestTag=$(curl https://gitlab.com/api/v4/projects/librewolf-community%2Fbrowser%2Fsource/repository/tags?per_page=1 | jq -r .[0].name)
   echo "latestTag=$latestTag"
 
-  srcJson=pkgs/applications/networking/browsers/firefox/librewolf/src.json
+  srcJson=pkgs/applications/networking/browsers/librewolf/src.json
   localRev=$(jq -r .source.rev < $srcJson)
   echo "localRev=$localRev"
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix b/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
index 3a5b31e98e99..e01131e193e0 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
@@ -8,12 +8,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.25";
+  version = "2.27";
   pname = "links2";
 
   src = fetchurl {
     url = "${meta.homepage}/download/links-${version}.tar.bz2";
-    sha256 = "sha256-LdeFCGmOgnnvTwmjoqIelZUEARNALabFU5dEFPtJ3Sw=";
+    sha256 = "sha256-2N3L/O3nzd6Aq+sKI2NY9X+mvrK8+S4QliTpuJb567Q=";
   };
 
   buildInputs = with lib;
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     homepage = "http://links.twibright.com/";
     description = "A small browser with some graphics support";
     maintainers = with maintainers; [ raskin ];
+    mainProgram = "links";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/browser.nix b/nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/browser.nix
new file mode 100644
index 000000000000..227442b1e4b6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/browser.nix
@@ -0,0 +1,193 @@
+{ channel, version, revision, sha256 }:
+
+{ stdenv
+, fetchurl
+, lib
+
+, binutils-unwrapped
+, xz
+, gnutar
+, file
+
+, glibc
+, glib
+, nss
+, nspr
+, atk
+, at-spi2-atk
+, xorg
+, cups
+, dbus
+, expat
+, libdrm
+, libxkbcommon
+, gtk3
+, pango
+, cairo
+, gdk-pixbuf
+, mesa
+, alsa-lib
+, at-spi2-core
+, libuuid
+, systemd
+, wayland
+}:
+
+let
+
+  baseName = "microsoft-edge";
+
+  shortName = if channel == "stable"
+              then "msedge"
+              else "msedge-" + channel;
+
+  longName = if channel == "stable"
+             then baseName
+             else baseName + "-" + channel;
+
+  iconSuffix = if channel == "stable"
+               then ""
+               else "_${channel}";
+
+  desktopSuffix = if channel == "stable"
+                  then ""
+                  else "-${channel}";
+in
+
+stdenv.mkDerivation rec {
+  name="${baseName}-${channel}-${version}";
+
+  src = fetchurl {
+    url = "https://packages.microsoft.com/repos/edge/pool/main/m/${baseName}-${channel}/${baseName}-${channel}_${version}-${revision}_amd64.deb";
+    inherit sha256;
+  };
+
+  unpackCmd = "${binutils-unwrapped}/bin/ar p $src data.tar.xz | ${xz}/bin/xz -dc | ${gnutar}/bin/tar -xf -";
+  sourceRoot = ".";
+
+  dontPatch = true;
+  dontConfigure = true;
+  dontPatchELF = true;
+
+  buildPhase = let
+    libPath = {
+      msedge = lib.makeLibraryPath [
+        glibc glib nss nspr atk at-spi2-atk xorg.libX11
+        xorg.libxcb cups.lib dbus.lib expat libdrm
+        xorg.libXcomposite xorg.libXdamage xorg.libXext
+        xorg.libXfixes xorg.libXrandr libxkbcommon
+        gtk3 pango cairo gdk-pixbuf mesa
+        alsa-lib at-spi2-core xorg.libxshmfence systemd wayland
+      ];
+      naclHelper = lib.makeLibraryPath [
+        glib nspr atk libdrm xorg.libxcb mesa xorg.libX11
+        xorg.libXext dbus.lib libxkbcommon
+      ];
+      libwidevinecdm = lib.makeLibraryPath [
+        glib nss nspr
+      ];
+      libGLESv2 = lib.makeLibraryPath [
+        xorg.libX11 xorg.libXext xorg.libxcb
+      ];
+      libsmartscreen = lib.makeLibraryPath [
+        libuuid stdenv.cc.cc.lib
+      ];
+      libsmartscreenn = lib.makeLibraryPath [
+        libuuid
+      ];
+      liboneauth = lib.makeLibraryPath [
+        libuuid xorg.libX11
+      ];
+    };
+  in ''
+    patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${libPath.msedge}" \
+      opt/microsoft/${shortName}/msedge
+
+    patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      opt/microsoft/${shortName}/msedge-sandbox
+
+    patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      opt/microsoft/${shortName}/msedge_crashpad_handler
+
+    patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${libPath.naclHelper}" \
+      opt/microsoft/${shortName}/nacl_helper
+
+    patchelf \
+      --set-rpath "${libPath.libwidevinecdm}" \
+      opt/microsoft/${shortName}/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so
+
+    patchelf \
+      --set-rpath "${libPath.libGLESv2}" \
+      opt/microsoft/${shortName}/libGLESv2.so
+
+    patchelf \
+      --set-rpath "${libPath.libsmartscreen}" \
+      opt/microsoft/${shortName}/libsmartscreen.so
+
+    patchelf \
+      --set-rpath "${libPath.libsmartscreenn}" \
+      opt/microsoft/${shortName}/libsmartscreenn.so
+
+    patchelf \
+      --set-rpath "${libPath.liboneauth}" \
+      opt/microsoft/${shortName}/liboneauth.so
+  '';
+
+  installPhase = ''
+    mkdir -p $out
+    cp -R opt usr/bin usr/share $out
+
+    ${if channel == "stable"
+      then ""
+      else "ln -sf $out/opt/microsoft/${shortName}/${baseName}-${channel} $out/opt/microsoft/${shortName}/${baseName}"}
+
+    ln -sf $out/opt/microsoft/${shortName}/${longName} $out/bin/${longName}
+
+    rm -rf $out/share/doc
+    rm -rf $out/opt/microsoft/${shortName}/cron
+
+    for icon in '16' '24' '32' '48' '64' '128' '256'
+    do
+      ${ "icon_source=$out/opt/microsoft/${shortName}/product_logo_\${icon}${iconSuffix}.png" }
+      ${ "icon_target=$out/share/icons/hicolor/\${icon}x\${icon}/apps" }
+      mkdir -p $icon_target
+      cp $icon_source $icon_target/microsoft-edge${desktopSuffix}.png
+    done
+
+    substituteInPlace $out/share/applications/${longName}.desktop \
+      --replace /usr/bin/${baseName}-${channel} $out/bin/${longName}
+
+    substituteInPlace $out/share/gnome-control-center/default-apps/${longName}.xml \
+      --replace /opt/microsoft/${shortName} $out/opt/microsoft/${shortName}
+
+    substituteInPlace $out/share/menu/${longName}.menu \
+      --replace /opt/microsoft/${shortName} $out/opt/microsoft/${shortName}
+
+    substituteInPlace $out/opt/microsoft/${shortName}/xdg-mime \
+      --replace "''${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" "''${XDG_DATA_DIRS:-/run/current-system/sw/share}" \
+      --replace "xdg_system_dirs=/usr/local/share/:/usr/share/" "xdg_system_dirs=/run/current-system/sw/share/" \
+      --replace /usr/bin/file ${file}/bin/file
+
+    substituteInPlace $out/opt/microsoft/${shortName}/default-app-block \
+      --replace /opt/microsoft/${shortName} $out/opt/microsoft/${shortName}
+
+    substituteInPlace $out/opt/microsoft/${shortName}/xdg-settings \
+      --replace "''${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" "''${XDG_DATA_DIRS:-/run/current-system/sw/share}" \
+      --replace "''${XDG_CONFIG_DIRS:-/etc/xdg}" "''${XDG_CONFIG_DIRS:-/run/current-system/sw/etc/xdg}"
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.microsoft.com/en-us/edge";
+    description = "The web browser from Microsoft";
+    license = licenses.unfree;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ zanculmarktum kuwii ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/default.nix b/nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/default.nix
new file mode 100644
index 000000000000..c769937ee86b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/default.nix
@@ -0,0 +1,20 @@
+{
+  beta = import ./browser.nix {
+    channel = "beta";
+    version = "103.0.1264.21";
+    revision = "1";
+    sha256 = "sha256:1336i0hy7xnla0pi4vahaxshhmivi1zljhaxyg63352bc7w9j64f";
+  };
+  dev = import ./browser.nix {
+    channel = "dev";
+    version = "104.0.1287.1";
+    revision = "1";
+    sha256 = "sha256:10h360vfsfql42i6mpdvf8d0219506ipbk3hdpwl0jhlsphmhw61";
+  };
+  stable = import ./browser.nix {
+    channel = "stable";
+    version = "102.0.1245.44";
+    revision = "1";
+    sha256 = "sha256:10r12xlkcnag5jdmnwpqsbkjx1ih1027l573vxmcxmvpmj6y4373";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/update.sh b/nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/update.sh
new file mode 100755
index 000000000000..c76c31c7f5a7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/update.sh
@@ -0,0 +1,50 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p curl gzip
+
+# To update: ./update.sh > default.nix
+
+index_file=$(curl -sL https://packages.microsoft.com/repos/edge/dists/stable/main/binary-amd64/Packages.gz | gzip -dc)
+
+echo "{"
+
+packages=()
+echo "$index_file" | while read -r line; do
+    if [[ "$line" =~ ^Package:[[:space:]]*(.*) ]]; then
+        Package="${BASH_REMATCH[1]}"
+    fi
+    if [[ "$line" =~ ^Version:[[:space:]]*(.*)-([a-zA-Z0-9+.~]*) ]]; then
+        Version="${BASH_REMATCH[1]}"
+        Revision="${BASH_REMATCH[2]}"
+    fi
+    if [[ "$line" =~ ^SHA256:[[:space:]]*(.*) ]]; then
+        SHA256="${BASH_REMATCH[1]}"
+    fi
+
+    if ! [[ "$line" ]]; then
+        found=0
+        for i in "${packages[@]}"; do
+            if [[ "$i" == "$Package" ]]; then
+                found=1
+            fi
+        done
+
+        if (( ! $found )); then
+            channel="${Package##*-}"
+            name="${Package%-${channel}}"
+            cat <<EOF
+  ${channel} = import ./browser.nix {
+    channel = "${channel}";
+    version = "${Version}";
+    revision = "${Revision}";
+    sha256 = "sha256:$(nix-hash --type sha256 --to-base32 ${SHA256})";
+  };
+EOF
+        fi
+
+        packages+=($Package)
+        Package=""
+        Version=""
+    fi
+done
+
+echo "}"
diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsutils.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsutils.nix
index b0d954a00d4f..bba457674c7d 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsutils.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsutils.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    homepage = "https://www.netsurf-browser.org/projects/${libname}/";
+    homepage = "https://www.netsurf-browser.org/";
     description = "Generalised utility library for netsurf browser";
     license = licenses.mit;
     maintainers = [ maintainers.vrthra maintainers.AndersonTorres ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libutf8proc.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libutf8proc.nix
index c7362b998beb..47b53b4781b5 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libutf8proc.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libutf8proc.nix
@@ -1,4 +1,7 @@
-{ lib, stdenv, fetchurl, pkg-config
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
 , buildsystem
 }:
 
@@ -9,10 +12,11 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
-    sha256 = "sha256-AasdaYnBx3VQkNskw/ZOSflcVgrknCa+xRQrrGgCxHI=";
+    hash = "sha256-AasdaYnBx3VQkNskw/ZOSflcVgrknCa+xRQrrGgCxHI=";
   };
 
   nativeBuildInputs = [ pkg-config ];
+
   buildInputs = [ buildsystem ];
 
   makeFlags = [
@@ -21,7 +25,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    homepage = "https://www.netsurf-browser.org/projects/${libname}/";
+    homepage = "https://www.netsurf-browser.org/";
     description = "UTF8 Processing library for netsurf browser";
     license = licenses.mit;
     maintainers = [ maintainers.vrthra maintainers.AndersonTorres ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/offpunk/default.nix b/nixpkgs/pkgs/applications/networking/browsers/offpunk/default.nix
new file mode 100644
index 000000000000..8f6d2712caaf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/offpunk/default.nix
@@ -0,0 +1,67 @@
+{
+  fetchFromGitea,
+  less,
+  lib,
+  makeWrapper,
+  offpunk,
+  python3,
+  stdenv,
+  testers,
+  timg,
+  xdg-utils,
+  xsel,
+}:
+
+let
+  pythonDependencies = with python3.pkgs; [
+    beautifulsoup4
+    cryptography
+    feedparser
+    pillow
+    readability-lxml
+    requests
+    setproctitle
+  ];
+  otherDependencies = [
+    less
+    timg
+    xdg-utils
+    xsel
+  ];
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "offpunk";
+  version = "1.5";
+
+  src = fetchFromGitea {
+    domain = "notabug.org";
+    owner = "ploum";
+    repo = "offpunk";
+    rev = "v${finalAttrs.version}";
+    sha256 = "1zg13wajsfrl3hli6sihn47db08w037jjq9vgr6m5sjh8r1jb9iy";
+  };
+
+  buildInputs = [ makeWrapper ] ++ otherDependencies ++ pythonDependencies;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D ./offpunk.py $out/bin/offpunk
+
+    wrapProgram $out/bin/offpunk \
+        --set PYTHONPATH "$PYTHONPATH" \
+        --set PATH ${lib.makeBinPath otherDependencies}
+
+   runHook postInstall
+  '';
+
+  passthru.tests.version = testers.testVersion { package = offpunk; };
+
+  meta = with lib; {
+    description = "An Offline-First browser for the smolnet ";
+    homepage = "https://notabug.org/ploum/offpunk";
+    maintainers = with maintainers; [ DamienCassou ];
+    platforms = platforms.linux;
+    license = licenses.bsd2;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
index 7c37531263fb..a891708c6582 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
@@ -127,5 +127,6 @@ in stdenv.mkDerivation rec {
     description = "Web browser";
     platforms = [ "x86_64-linux" ];
     license = licenses.unfree;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
index 0a0a7f341c06..47ea42656528 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -6,7 +6,7 @@
 , dbus
 , dbus-glib
 , desktop-file-utils
-, fetchzip
+, fetchFromGitea
 , ffmpeg
 , fontconfig
 , freetype
@@ -31,25 +31,29 @@
 , zip
 , zlib
 , withGTK3 ? true, gtk3, gtk2
+, testers
+, palemoon
 }:
 
 # Only specific GCC versions are supported with branding
 # https://developer.palemoon.org/build/linux/
 assert stdenv.cc.isGNU;
 assert with lib.strings; (
-  versionAtLeast stdenv.cc.version "4.9"
-  && !hasPrefix "6" stdenv.cc.version
-  && versionOlder stdenv.cc.version "11"
+  versionAtLeast stdenv.cc.version "7.1"
+  && versionOlder stdenv.cc.version "12"
 );
 
 stdenv.mkDerivation rec {
   pname = "palemoon";
-  version = "29.4.5";
-
-  src = fetchzip {
-    name = "${pname}-${version}";
-    url = "http://archive.palemoon.org/source/${pname}-${version}.source.tar.xz";
-    sha256 = "sha256-ls4uhfFaiFHkmAVbwwBenm71sNm6Tql2tMpzk9D2b5Y=";
+  version = "31.2.0.1";
+
+  src = fetchFromGitea {
+    domain = "repo.palemoon.org";
+    owner = "MoonchildProductions";
+    repo = "Pale-Moon";
+    rev = "${version}_Release";
+    fetchSubmodules = true;
+    sha256 = "sha256-ytJC3QW9grbI6DusYITACc40+xUJ94+ATVGaOzWAwHU=";
   };
 
   nativeBuildInputs = [
@@ -109,6 +113,13 @@ stdenv.mkDerivation rec {
   configurePhase = ''
     runHook preConfigure
 
+    # Too many cores can lead to build flakiness
+    # https://forum.palemoon.org/viewtopic.php?f=5&t=28480
+    export jobs=$(($NIX_BUILD_CORES<=20 ? $NIX_BUILD_CORES : 20))
+    if [ -z "$enableParallelBuilding" ]; then
+      jobs=1
+    fi
+
     export MOZCONFIG=$PWD/mozconfig
     export MOZ_NOSPAM=1
 
@@ -116,7 +127,7 @@ stdenv.mkDerivation rec {
     export gtkversion=${if withGTK3 then "3" else "2"}
     export xlibs=${lib.makeLibraryPath [ xorg.libX11 ]}
     export prefix=$out
-    export mozmakeflags="-j${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"}"
+    export mozmakeflags="-j$jobs"
     export autoconf=${autoconf213}/bin/autoconf
 
     substituteAll ${./mozconfig} $MOZCONFIG
@@ -137,14 +148,9 @@ stdenv.mkDerivation rec {
 
     ./mach install
 
-    # Fix missing icon due to wrong WMClass
-    # https://forum.palemoon.org/viewtopic.php?f=3&t=26746&p=214221#p214221
-    substituteInPlace ./palemoon/branding/official/palemoon.desktop \
-      --replace 'StartupWMClass="pale moon"' 'StartupWMClass=Pale moon'
+    # Install official branding stuff
     desktop-file-install --dir=$out/share/applications \
       ./palemoon/branding/official/palemoon.desktop
-
-    # Install official branding icons
     for iconname in default{16,22,24,32,48,256} mozicon128; do
       n=''${iconname//[^0-9]/}
       size=$n"x"$n
@@ -153,7 +159,7 @@ stdenv.mkDerivation rec {
 
     # Remove unneeded SDK data from installation
     # https://forum.palemoon.org/viewtopic.php?f=37&t=26796&p=214676#p214729
-    rm -rf $out/{include,share/idl,lib/palemoon-devel-${version}}
+    rm -r $out/{include,share/idl,lib/palemoon-devel-${version}}
 
     runHook postInstall
   '';
@@ -194,18 +200,23 @@ stdenv.mkDerivation rec {
     platforms = [ "i686-linux" "x86_64-linux" ];
   };
 
-  passthru.updateScript = writeScript "update-${pname}" ''
-    #!/usr/bin/env nix-shell
-    #!nix-shell -i bash -p common-updater-scripts curl libxml2
+  passthru = {
+    updateScript = writeScript "update-${pname}" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p common-updater-scripts curl libxml2
 
-    set -eu -o pipefail
+      set -eu -o pipefail
 
-    # Only release note announcement == finalized release
-    version="$(
-      curl -s 'http://www.palemoon.org/releasenotes.shtml' |
-      xmllint --html --xpath 'html/body/table/tbody/tr/td/h3/text()' - 2>/dev/null | head -n1 |
-      sed 's/v\(\S*\).*/\1/'
-    )"
-    update-source-version ${pname} "$version"
-  '';
+      # Only release note announcement == finalized release
+      version="$(
+        curl -s 'http://www.palemoon.org/releasenotes.shtml' |
+        xmllint --html --xpath 'html/body/table/tbody/tr/td/h3/text()' - 2>/dev/null | head -n1 |
+        sed 's/v\(\S*\).*/\1/'
+      )"
+      update-source-version ${pname} "$version"
+    '';
+    tests.version = testers.testVersion {
+      package = palemoon;
+    };
+  };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/palemoon/mozconfig b/nixpkgs/pkgs/applications/networking/browsers/palemoon/mozconfig
index 0eab96e58469..d680dc1ab44c 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/palemoon/mozconfig
+++ b/nixpkgs/pkgs/applications/networking/browsers/palemoon/mozconfig
@@ -19,6 +19,7 @@ ac_add_options --enable-jemalloc
 ac_add_options --enable-strip
 ac_add_options --enable-devtools
 ac_add_options --enable-av1
+ac_add_options --enable-phoenix-extensions
 
 ac_add_options --disable-eme
 ac_add_options --disable-webrtc
@@ -36,8 +37,10 @@ export MOZILLA_OFFICIAL=1
 
 ac_add_options --x-libraries=@xlibs@
 
+# MOZ_PKG_SPECIAL is only relevant for upstream's packaging
+
 #
-# NixOS-specific adjustments
+# NixOS-specific additions
 #
 
 ac_add_options --prefix=@prefix@
diff --git a/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix b/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix
index 9786fad2fdc6..8ad81139fbe9 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix
@@ -24,7 +24,7 @@ mkDerivation rec {
     description = "4chan browser in qt5";
     homepage    = "https://github.com/siavash119/qtchan";
     license     = licenses.mit;
-    maintainers = with maintainers; [ chiiruno ];
+    maintainers = with maintainers; [ Madouura ];
     platforms   = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
index e92815476676..ce2392ab4edc 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -1,10 +1,12 @@
 { stdenv, lib, fetchurl, fetchzip, python3
 , mkDerivationWith, wrapQtAppsHook, wrapGAppsHook, qtbase, qtwebengine, glib-networking
-, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2, pipewire_0_2
+, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2
 , libxslt, gst_all_1 ? null
 , withPdfReader      ? true
 , withMediaPlayback  ? true
 , backend            ? "webengine"
+, pipewireSupport    ? stdenv.isLinux
+, pipewire_0_2
 }:
 
 assert withMediaPlayback -> gst_all_1 != null;
@@ -12,12 +14,11 @@ assert withMediaPlayback -> gst_all_1 != null;
 let
   python3Packages = python3.pkgs;
   pdfjs = let
-    version = "2.8.335";
+    version = "2.14.305";
   in
   fetchzip rec {
-    name = "pdfjs-${version}";
-    url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/${name}-dist.zip";
-    sha256 = "1zschfpxnhdinn9nasl5in4s62ad0h1g369cglamjgxx36x27zly";
+    url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/pdfjs-${version}-dist.zip";
+    hash = "sha256-E7t+0AUndrgi4zfJth0w28RmWLqLyXMUCnueNf/gNi4=";
     stripRoot = false;
   };
 
@@ -31,12 +32,12 @@ let
 
 in mkDerivationWith python3Packages.buildPythonApplication rec {
   pname = "qutebrowser";
-  version = "2.4.0";
+  version = "2.5.2";
 
   # the release tarballs are different from the git checkout!
   src = fetchurl {
     url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "8s2auxTrq/ljBXOy+4RHvhkod3h9xOOWThtV9yqFkuw=";
+    hash = "sha256-qb/OFN3EA94N6y7t+YPCMc4APgdZmV7H706jTkl06Qg=";
   };
 
   # Needs tox
@@ -59,7 +60,7 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
     pyyaml backendPackage jinja2 pygments
     # scripts and userscripts libs
     tldextract beautifulsoup4
-    pyreadability pykeepass stem
+    readability-lxml pykeepass stem
     pynacl
     # extensive ad blocking
     adblock
@@ -77,7 +78,7 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
   postPatch = ''
     substituteInPlace qutebrowser/misc/quitter.py --subst-var-by qutebrowser "$out/bin/qutebrowser"
 
-    sed -i "s,/usr/share/,$out/share/,g" qutebrowser/utils/standarddir.py
+    sed -i "s,/usr,$out,g" qutebrowser/utils/standarddir.py
   '' + lib.optionalString withPdfReader ''
     sed -i "s,/usr/share/pdf.js,${pdfjs},g" qutebrowser/browser/pdfjs.py
   '';
@@ -121,7 +122,7 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
       "''${qtWrapperArgs[@]}"
       --add-flags '--backend ${backend}'
       --set QUTE_QTWEBENGINE_VERSION_OVERRIDE "${lib.getVersion qtwebengine}"
-      ${lib.optionalString (!stdenv.isDarwin && backend == "webengine") ''--prefix LD_LIBRARY_PATH : ${libPath}''}
+      ${lib.optionalString (pipewireSupport && backend == "webengine") ''--prefix LD_LIBRARY_PATH : ${libPath}''}
     )
   '';
 
@@ -130,5 +131,6 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
     description = "Keyboard-focused browser with a minimal GUI";
     license     = licenses.gpl3Plus;
     maintainers = with maintainers; [ jagajaga rnhmjoj ebzzry dotlambda ];
+    inherit (backendPackage.meta) platforms;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix b/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix
index c79aa1d6f1d6..6573821d0598 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchgit
 , pkg-config, wrapGAppsHook
 , glib, gcr, glib-networking, gsettings-desktop-schemas, gtk, libsoup, webkitgtk
-, xorg, dmenu, findutils, gnused, coreutils
+, xorg, dmenu, findutils, gnused, coreutils, gst_all_1
 , patches ? null
 }:
 
@@ -17,7 +17,21 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
-  buildInputs = [ glib gcr glib-networking gsettings-desktop-schemas gtk libsoup webkitgtk ];
+  buildInputs = [
+    glib
+    gcr
+    glib-networking
+    gsettings-desktop-schemas
+    gtk
+    libsoup
+    webkitgtk
+  ] ++ (with gst_all_1; [
+    # Audio & video support for webkitgtk WebView
+    gstreamer
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-bad
+  ]);
 
   inherit patches;
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/telescope/default.nix b/nixpkgs/pkgs/applications/networking/browsers/telescope/default.nix
index 552c05ac9cd4..92124531691d 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/telescope/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/telescope/default.nix
@@ -8,17 +8,18 @@
 , ncurses
 , autoreconfHook
 , buildPackages
+, memstreamHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "telescope";
-  version = "0.7.1";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "omar-polo";
     repo = pname;
     rev = version;
-    sha256 = "sha256-W42e1p70dMhF9C7BBPp1Yhp2PrRb8/Lu07yOGiUSmNg=";
+    sha256 = "sha256-9gZeBAC7AGU5vb+692npjKbbqFEAr9iGLu1u68EJ0W8=";
   };
 
   nativeBuildInputs = [
@@ -31,7 +32,7 @@ stdenv.mkDerivation rec {
     libevent
     libressl
     ncurses
-  ];
+  ] ++ lib.optional stdenv.isDarwin memstreamHook;
 
   configureFlags = [
     "HOSTCC=${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc"
diff --git a/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 28e11814029c..f3a443c6ffc1 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -87,7 +87,7 @@ let
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "11.0.9";
+  version = "11.5.1";
 
   lang = "en-US";
 
@@ -98,7 +98,7 @@ let
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
         "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
       ];
-      sha256 = "0cl01bx64d6bmajknj7085nzc6841adkp65fz531r3y6nnpwr9ds";
+      sha256 = "sha256-LgzvptQoTHGngW4xDZNfm5teSjpAjcUzMKDbBHRInoo=";
     };
 
     i686-linux = fetchurl {
@@ -107,7 +107,7 @@ let
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
         "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
       ];
-      sha256 = "0j6alhm1pqp7fb6nk55vzvr1qjz6gyd3vn6v2dkkvj9mgm57x1j5";
+      sha256 = "sha256-J/ka/Qvu2UC5KTfatkWq0jc6bHTazA20vL9tz1sK/Rg=";
     };
   };
 in
@@ -357,7 +357,7 @@ stdenv.mkDerivation rec {
       TMPDIR="\''${TMPDIR:-/tmp}" \
       HOME="\$HOME" \
       XAUTHORITY="\''${XAUTHORITY:-\$HOME/.Xauthority}" \
-      DISPLAY="\$DISPLAY" \
+      DISPLAY="\''${DISPLAY:-}" \
       DBUS_SESSION_BUS_ADDRESS="\''${DBUS_SESSION_BUS_ADDRESS:-unix:path=\$XDG_RUNTIME_DIR/bus}" \\
       \
       XDG_DATA_HOME="\$HOME/.local/share" \
@@ -366,6 +366,11 @@ stdenv.mkDerivation rec {
       PULSE_SERVER="\''${PULSE_SERVER:-}" \
       PULSE_COOKIE="\''${PULSE_COOKIE:-}" \
       \
+      MOZ_ENABLE_WAYLAND="\''${MOZ_ENABLE_WAYLAND:-}" \
+      WAYLAND_DISPLAY="\''${WAYLAND_DISPLAY:-}" \
+      XDG_RUNTIME_DIR="\''${XDG_RUNTIME_DIR:-}" \
+      XCURSOR_PATH="\''${XCURSOR_PATH:-}" \
+      \
       APULSE_PLAYBACK_DEVICE="\''${APULSE_PLAYBACK_DEVICE:-plug:dmix}" \
       \
       TOR_SKIP_LAUNCH="\''${TOR_SKIP_LAUNCH:-}" \
@@ -404,7 +409,7 @@ stdenv.mkDerivation rec {
     LD_LIBRARY_PATH=$libPath $TBB_IN_STORE/TorBrowser/Tor/tor --version >/dev/null
 
     echo "Checking tor-browser wrapper ..."
-    DISPLAY="" XAUTHORITY="" DBUS_SESSION_BUS_ADDRESS="" TBB_HOME=$(mktemp -d) \
+      TBB_HOME=$(mktemp -d) \
       $out/bin/tor-browser --version >/dev/null
   '';
 
@@ -429,5 +434,6 @@ stdenv.mkDerivation rec {
     # the compound is "libre" in a strict sense (some components place certain
     # restrictions on redistribution), it's free enough for our purposes.
     license = licenses.free;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix
index 7cbf4cad975e..29f3cbd0b13b 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix
@@ -2,19 +2,19 @@
 
 mkYarnPackage rec {
   pname = "vieb";
-  version = "7.1.2";
+  version = "7.2.0";
 
   src = fetchFromGitHub {
     owner = "Jelmerro";
     repo = pname;
     rev = version;
-    sha256 = "sha256-4LGg3w/rleTyHJd4867dog+/fIXhtKbYgF1bYKwoh/I=";
+    sha256 = "sha256-4iokmUzs72aVHb95D98ZITRygn4gGAc/K+M5uMnF2NM=";
   };
 
   packageJSON = ./package.json;
   yarnLock = ./yarn.lock;
   yarnNix = ./yarn.nix;
-  yarnFlags = [ "--production" "--offline" ];
+  yarnFlags = [ "--production" ];
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix
index 240d9a972fbb..35fece92529b 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vimb";
-  version = "3.3.0";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "fanglingsu";
     repo = "vimb";
     rev = version;
-    sha256 = "1qg18z2gnsli9qgrqfhqfrsi6g9mcgr90w8yab28nxrq4aha6brf";
+    sha256 = "sha256-Eq4riJSznKpkW9JJDnTCLxZ9oMJTmWkIoGphOiCcSAg=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook pkg-config ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
index 30d719593e83..c917ba5d3498 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -20,11 +20,11 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "5.1.2567.73-1";
+  version = "5.4.2753.33-1";
 
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
-    sha256 = "04jzhipn4ip7x3zdwmfnp6w0qc2y1qdfy5w3qyy0r114jz9s9i7g";
+    sha256 = "0bs6324m5l5vmg1x1sj6g3qb1958c5c8z35r87r3rpnv52lqr501";
   };
 
   unpackPhase = ''
@@ -101,6 +101,7 @@ in stdenv.mkDerivation rec {
     description = "A Browser for our Friends, powerful and personal";
     homepage    = "https://vivaldi.com";
     license     = licenses.unfree;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     maintainers = with maintainers; [ otwieracz badmutex ];
     platforms   = [ "x86_64-linux" ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
index 461fd0050cf1..a49f2fe1307a 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "chromium-codecs-ffmpeg-extra";
-  version = "97.0.4692.71";
+  version = "104.0.5112.79";
 
   src = fetchurl {
-    url = "https://launchpadlibrarian.net/579085093/${pname}_${version}-0ubuntu0.18.04.1_amd64.deb";
-    sha256 = "sha256-YUv1D8U776NJBRPvYJigG7gyH9zd19FbnjAvIEhfYpA=";
+    url = "https://launchpadlibrarian.net/616178945/${pname}_${version}-0ubuntu0.18.04.1_amd64.deb";
+    sha256 = "sha256-JL14+2TsX1qXfRpA/tAADC0iujPj37ld6T9yPUD8R38=";
   };
 
   buildInputs = [ dpkg ];
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Additional support for proprietary codecs for Vivaldi";
     homepage    = "https://ffmpeg.org/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.lgpl21;
     maintainers = with maintainers; [ betaboon cawilliamson lluchs ];
     platforms   = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh
index caf9148805cd..ab072340173a 100755
--- a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh
+++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh
@@ -37,7 +37,7 @@ git commit -m "vivaldi: ${vivaldi_version_old} -> ${vivaldi_version}"
 # Check vivaldi-ffmpeg-codecs version.
 chromium_version_old=$(version vivaldi-ffmpeg-codecs)
 ffmpeg_update_script=$(bsdtar xOf "$path" data.tar.xz | bsdtar xOf - ./opt/vivaldi/update-ffmpeg)
-chromium_version=$(sed -rne 's/FFMPEG_VERSION_DEB\=([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*/\1/p' <<< $ffmpeg_update_script)
+chromium_version=$(sed -rne 's/^FFMPEG_VERSION_DEB\=([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*/\1/p' <<< $ffmpeg_update_script)
 download_subdir=$(sed -rne 's/.*FFMPEG_URL_DEB\=https:\/\/launchpadlibrarian\.net\/([0-9]+)\/.*_amd64\.deb/\1/p' <<< $ffmpeg_update_script)
 
 if [[ "$chromium_version" != "$chromium_version_old" ]]; then
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix
index 71a5a67331ed..65c58775874b 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix
@@ -1,22 +1,16 @@
-{ lib, stdenv, fetchurl
-, unzip
+{ lib, stdenv, fetchzip
 }:
 
 stdenv.mkDerivation rec {
   pname = "widevine";
-  version = "4.10.2391.0";
+  version = "4.10.2449.0";
 
-  src = fetchurl {
+  src = fetchzip {
     url = "https://dl.google.com/widevine-cdm/${version}-linux-x64.zip";
-    sha256 = "sha256-7gH808C67m/s09e4rQUQHb/t+iGVdzW+YzrB1ZxGIdo=";
+    sha256 = "sha256-f2kAkP+s3fB+krEZsiujEoI4oznkzSyaIB/CRJZWlXE=";
+    stripRoot = false;
   };
 
-  nativeBuildInputs = [ unzip ];
-
-  unpackPhase = ''
-    unzip $src
-  '';
-
   installPhase = ''
     install -vD manifest.json $out/share/google/chrome/WidevineCdm/manifest.json
     install -vD LICENSE.txt $out/share/google/chrome/WidevineCdm/LICENSE.txt
@@ -26,6 +20,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Widevine support for Vivaldi";
     homepage = "https://www.widevine.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ betaboon ];
     platforms   = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/yandex-browser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/yandex-browser/default.nix
index dab9794277f6..bc64ac840d20 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/yandex-browser/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/yandex-browser/default.nix
@@ -130,6 +130,7 @@ stdenv.mkDerivation rec {
     description = "Yandex Web Browser";
     homepage = "https://browser.yandex.ru/";
     license = licenses.unfree;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = [ "x86_64-linux" ];
 
diff --git a/nixpkgs/pkgs/applications/networking/c14/default.nix b/nixpkgs/pkgs/applications/networking/c14/default.nix
deleted file mode 100644
index 3a9192164adf..000000000000
--- a/nixpkgs/pkgs/applications/networking/c14/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "c14-cli";
-  version = "0.3";
-
-  goPackagePath = "github.com/online-net/c14-cli";
-
-  src = fetchFromGitHub {
-    owner = "online-net";
-    repo = "c14-cli";
-    rev = version;
-    sha256 = "0b1piviy6vvdbak8y8bc24rk3c1fi67vv3352pmnzvrhsar2r5yf";
-  };
-
-  meta = with lib; {
-    description = "C14 is designed for data archiving & long-term backups";
-    homepage = "https://www.online.net/en/storage/c14-cold-storage";
-    license = licenses.mit;
-    maintainers = with maintainers; [ apeyroux ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/calls/default.nix b/nixpkgs/pkgs/applications/networking/calls/default.nix
index 2215de9291d5..b5961c4adbc2 100644
--- a/nixpkgs/pkgs/applications/networking/calls/default.nix
+++ b/nixpkgs/pkgs/applications/networking/calls/default.nix
@@ -32,14 +32,15 @@
 
 stdenv.mkDerivation rec {
   pname = "calls";
-  version = "41.1";
+  version = "42.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = pname;
     rev = version;
-    sha256 = "1vbw9x5s3ww11f3lnqivc74rjlmi9fk1hzaq1idrdcck3gvif0h8";
+    fetchSubmodules = true;
+    hash = "sha256-ASKK9PB5FAD10CR5O+L2WgMjCzmIalithHL8jV0USiM=";
   };
 
   outputs = [ "out" "devdoc" ];
diff --git a/nixpkgs/pkgs/applications/networking/charles/default.nix b/nixpkgs/pkgs/applications/networking/charles/default.nix
index 064213b01ae3..66ec0a7c7b47 100644
--- a/nixpkgs/pkgs/applications/networking/charles/default.nix
+++ b/nixpkgs/pkgs/applications/networking/charles/default.nix
@@ -57,6 +57,7 @@ let
         description = "Web Debugging Proxy";
         homepage = "https://www.charlesproxy.com/";
         maintainers = with maintainers; [ kalbasit ];
+        sourceProvenance = with sourceTypes; [ binaryBytecode ];
         license = licenses.unfree;
         platforms = platforms.unix;
       };
diff --git a/nixpkgs/pkgs/applications/networking/cisco-packet-tracer/7.nix b/nixpkgs/pkgs/applications/networking/cisco-packet-tracer/7.nix
index f7e731713120..422ccd05cffc 100644
--- a/nixpkgs/pkgs/applications/networking/cisco-packet-tracer/7.nix
+++ b/nixpkgs/pkgs/applications/networking/cisco-packet-tracer/7.nix
@@ -83,6 +83,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Network simulation tool from Cisco";
     homepage = "https://www.netacad.com/courses/packet-tracer";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ lucasew ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/cisco-packet-tracer/8.nix b/nixpkgs/pkgs/applications/networking/cisco-packet-tracer/8.nix
index 9bc890017454..0dd31aea0619 100644
--- a/nixpkgs/pkgs/applications/networking/cisco-packet-tracer/8.nix
+++ b/nixpkgs/pkgs/applications/networking/cisco-packet-tracer/8.nix
@@ -125,6 +125,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Network simulation tool from Cisco";
     homepage = "https://www.netacad.com/courses/packet-tracer";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ lucasew ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/cloudflare-dyndns/default.nix b/nixpkgs/pkgs/applications/networking/cloudflare-dyndns/default.nix
new file mode 100644
index 000000000000..ee7573cf713d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cloudflare-dyndns/default.nix
@@ -0,0 +1,53 @@
+{ buildPythonApplication
+, attrs
+, click
+, cloudflare
+, fetchFromGitHub
+, lib
+, poetry
+, pydantic
+, pytestCheckHook
+, requests
+}:
+
+buildPythonApplication rec {
+  pname = "cloudflare-dyndns";
+  version = "4.1";
+
+  src = fetchFromGitHub {
+    owner = "kissgyorgy";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-6Q5fpJ+HuQ+hc3xTtB5tR43pn9WZ0nZZR723iLAkpis=";
+  };
+
+  format = "pyproject";
+
+  nativeBuildInputs = [ poetry ];
+
+  propagatedBuildInputs = [
+    attrs
+    click
+    cloudflare
+    pydantic
+    requests
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'click = "^7.0"' 'click = "*"'
+  '';
+
+  checkInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    "test_get_ipv4"
+  ];
+
+  meta = with lib; {
+    description = " CloudFlare Dynamic DNS client ";
+    homepage = "https://github.com/kissgyorgy/cloudflare-dyndns";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lovesegfault ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cloudflared/default.nix b/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
index e5a3fc2060e9..1e5e8ab74970 100644
--- a/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
@@ -1,27 +1,38 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, stdenv }:
 
 buildGoModule rec {
   pname = "cloudflared";
-  version = "2022.3.4";
+  version = "2022.7.1";
 
   src = fetchFromGitHub {
     owner  = "cloudflare";
     repo   = "cloudflared";
     rev    = version;
-    hash   = "sha256-W3XA3AOzuyHlFCps2ne4Fh2X+E48inJT4QrDJLOeD5M=";
+    hash   = "sha256-kc6+jn4eTCw37u+kPJdx/kxiaj8MnIddDbUFpPfWdlw=";
   };
 
   vendorSha256 = null;
 
-  doCheck = false;
+  ldflags = [ "-s" "-w" "-X main.Version=${version}" ];
 
-  ldflags = [ "-X main.Version=${version}" ];
+  preCheck = ''
+    # Workaround for: sshgen_test.go:74: mkdir /homeless-shelter/.cloudflared: no such file or directory
+    export HOME="$(mktemp -d)";
+
+    # Workaround for: protocol_test.go:11:
+    #   lookup protocol-v2.argotunnel.com on [::1]:53: read udp [::1]:51876->[::1]:53: read: connection refused
+
+    substituteInPlace "edgediscovery/protocol_test.go" \
+      --replace "TestProtocolPercentage" "SkipProtocolPercentage"
+  '';
+
+  doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
     description = "CloudFlare Tunnel daemon (and DNS-over-HTTPS client)";
     homepage    = "https://www.cloudflare.com/products/tunnel";
     license     = licenses.asl20;
     platforms   = platforms.unix;
-    maintainers = with maintainers; [ bbigras enorris thoughtpolice ];
+    maintainers = with maintainers; [ bbigras enorris thoughtpolice techknowlogick ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argo-rollouts/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argo-rollouts/default.nix
index 8127904023c9..e3e15162d7b2 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/argo-rollouts/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/argo-rollouts/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "argo-rollouts";
-  version = "1.1.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-rollouts";
     rev = "v${version}";
-    sha256 = "0qb1wbv3razwhqsv972ywfazaq73y83iw6f6qdjcbwwfwsybig21";
+    sha256 = "sha256-l23RVpwT/XYkpVTWkSYdPyvn7Xirs0Sf85U6Wrx5H1k=";
   };
 
-  vendorSha256 = "00ic1nn3wgg495x2170ik1d1cha20b4w89j9jclq8p0b3nndv0c0";
+  vendorSha256 = "sha256-URuIeF1ejKdMGxziJbujLctYheiIr/Jfo+gTzppZG9E=";
 
   # Disable tests since some test fail because of missing test data
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
index 503952fa59ad..1d799c9fe9fd 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
@@ -19,16 +19,16 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "3.3.0";
+  version = "3.3.9";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "v${version}";
-    sha256 = "sha256-BDHbbb3WqQvRJB1A4NInfvujjB3r/AMmVvos8i/CnyU=";
+    sha256 = "sha256-BDanFiLhucNE4uvUxKDXAK1W755VfNytQ3gXuLIKfSE=";
   };
 
-  vendorSha256 = "sha256-YeSeaYOkNRjQgxsK9G7iPbVpfrPs4HRRFwfoUDxoCm0=";
+  vendorSha256 = "sha256-303+LE3n3lltuCf+Pc7S+qHdsjQDt9IAu9Kd4sUaiYI=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argocd-autopilot/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
index 674db790f223..e4380b787380 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
@@ -2,17 +2,16 @@
 
 buildGoModule rec {
   pname = "argocd-autopilot";
-  version = "0.3.0";
-  commit = "c8d17bef976649e4dc2428c14c39e30a0f846552";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "argoproj-labs";
     repo = "argocd-autopilot";
     rev = "v${version}";
-    sha256 = "sha256-tggE1T+oD/dJS9tD9xOExjhy+T1GDd0vwTerD3P2KvA=";
+    sha256 = "sha256-d7Jm4Ff7cXytbECt+/TzncCwDGDYxsV1xOC8GSPAgJY=";
   };
 
-  vendorSha256 = "sha256-v8UMSObE6w+ULzueEK0UFeebLqoamy/788SQLBmJZ8U=";
+  vendorSha256 = "sha256-EpLU6rYzmtk/FCZiS8AJVGR4LUEkzNQE26CU9LzBwFM=";
 
   proxyVendor = true;
 
@@ -24,8 +23,8 @@ buildGoModule rec {
       "-X ${package_url}.binaryName=${pname}"
       "-X ${package_url}.version=${src.rev}"
       "-X ${package_url}.buildDate=unknown"
-      "-X ${package_url}.gitCommit=${commit}"
-      "-X ${package_url}.installationManifestURL=github.com/argoproj-labs/argocd-autopilot/manifests/base?ref=${src.rev}"
+      "-X ${package_url}.gitCommit=${src.rev}"
+      "-X ${package_url}.installationManifestsURL=github.com/argoproj-labs/argocd-autopilot/manifests/base?ref=${src.rev}"
       "-X ${package_url}.installationManifestsNamespacedURL=github.com/argoproj-labs/argocd-autopilot/manifests/insecure?ref=${src.rev}"
     ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
index 211c2ce211eb..776984b4a270 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,23 +2,19 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "2.3.2";
-  tag = "v${version}";
-  # Update commit to match the tag above
-  # TODO make updadeScript
-  commit = "ecc2af9dcaa12975e654cde8cbbeaffbb315f75c";
+  version = "2.4.10";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
-    rev = tag;
-    sha256 = "sha256-n+C4l4U3cDU+fgCnGWOYLdyjknw7n/xPEtC1i8AaU4o=";
+    rev = "v${version}";
+    sha256 = "sha256-qYHLK/3InkpRjMfmwmP+TE24D3OOw+glwEvYIEbxTa0=";
   };
 
-  vendorSha256 = "sha256-Km+1o6yuuxJs+DNTQ/XVTUFurD5gM5ohwDc7MwJuu5s=";
+  vendorSha256 = "sha256-M1ZYooS22bntHXAMK4QpMAwuMvN4/tHtVu3WZW9V8TA=";
 
-  # Set target as ./cmd per release-cli
-  # https://github.com/argoproj/argo-cd/blob/master/Makefile#L222
+  # Set target as ./cmd per cli-local
+  # https://github.com/argoproj/argo-cd/blob/master/Makefile#L227
   subPackages = [ "cmd" ];
 
   ldflags =
@@ -27,9 +23,14 @@ buildGoModule rec {
       "-s" "-w"
       "-X ${package_url}.version=${version}"
       "-X ${package_url}.buildDate=unknown"
-      "-X ${package_url}.gitCommit=${commit}"
-      "-X ${package_url}.gitTag=${tag}"
+      "-X ${package_url}.gitCommit=${src.rev}"
+      "-X ${package_url}.gitTag=${src.rev}"
       "-X ${package_url}.gitTreeState=clean"
+      "-X ${package_url}.kubectlVersion=v0.23.1"
+      # NOTE: Update kubectlVersion when upgrading this package with
+      # https://github.com/argoproj/argo-cd/blob/v${version}/go.mod#L95
+      # Per https://github.com/argoproj/argo-cd/blob/master/Makefile#L18
+      # Will need a way to automate it :P
     ];
 
   nativeBuildInputs = [ installShellFiles ];
@@ -43,7 +44,7 @@ buildGoModule rec {
 
   doInstallCheck = true;
   installCheckPhase = ''
-    $out/bin/argocd version --client | grep ${tag} > /dev/null
+    $out/bin/argocd version --client | grep ${src.rev} > /dev/null
   '';
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/networking/cluster/arkade/default.nix b/nixpkgs/pkgs/applications/networking/cluster/arkade/default.nix
index 2cf5d35f653d..cde1c27769b3 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/arkade/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/arkade/default.nix
@@ -2,22 +2,25 @@
 , stdenv
 , buildGoModule
 , fetchFromGitHub
+, installShellFiles
 }:
 
 buildGoModule rec {
   pname = "arkade";
-  version = "0.8.14";
+  version = "0.8.32";
 
   src = fetchFromGitHub {
     owner = "alexellis";
     repo = "arkade";
     rev = version;
-    sha256 = "sha256-XH7JtLv0J6bznZZ/L8wg5KB53OPe3KLiYujBlxP71pg=";
+    sha256 = "sha256-Yat9RIsbMCGVwu7xqC2xNUPZACpMG+ATsQN7d2n0eFU=";
   };
 
   CGO_ENABLED = 0;
 
-  vendorSha256 = "sha256-ipLVzBkliQSPBZTL5FU8xosTVjxFsUVlAvO0a0q+j2o=";
+  nativeBuildInputs = [ installShellFiles ];
+
+  vendorSha256 = "sha256-6EnhO4zYYdsTKvNQApZxXo8x6oFKsmuMvOI3zPHAQLs=";
 
   # Exclude pkg/get: tests downloading of binaries which fail when sandbox=true
   subPackages = [
@@ -38,10 +41,17 @@ buildGoModule rec {
     "-X github.com/alexellis/arkade/cmd.Version=${version}"
   ];
 
+  postInstall = ''
+    installShellCompletion --cmd arkade \
+      --bash <($out/bin/arkade completion bash) \
+      --zsh <($out/bin/arkade completion zsh) \
+      --fish <($out/bin/arkade completion fish)
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/alexellis/arkade";
     description = "Open Source Kubernetes Marketplace";
     license = licenses.mit;
-    maintainers = with maintainers; [ welteki ];
+    maintainers = with maintainers; [ welteki techknowlogick ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/assign-lb-ip/default.nix b/nixpkgs/pkgs/applications/networking/cluster/assign-lb-ip/default.nix
index b699f4410c63..dadb679cd55c 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/assign-lb-ip/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/assign-lb-ip/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "assign-lb-ip";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "Nordix";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-VaxzU8HC+LQTyhL9pxvjiPa6T5v77RT2B7A0IuU/CUg=";
+    sha256 = "sha256-Sfi58wcX61HNCmlDoparTqnfsuxu6barSnV0uYlC+ng=";
   };
 
-  vendorSha256 = "sha256-j9SweQq45sYk0lH6zkFrmWRlVhhMO8rLJGQxS6smAVw=";
+  vendorSha256 = "sha256-N78a0pjs2Bg2Bslk/I0ntL88ui4IkRGenL0Pn17Lt/w=";
 
   meta = with lib; {
     description = "Assigns loadBalancerIP address to a Kubernetes service for testing purposes";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix b/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
index dcb6b823667e..8942e2ec65b7 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -2,21 +2,24 @@
 
 buildGoModule rec {
   pname = "atlantis";
-  version = "0.16.1";
+  version = "0.19.7";
 
   src = fetchFromGitHub {
     owner = "runatlantis";
     repo = "atlantis";
     rev = "v${version}";
-    sha256 = "sha256-D549pInoK8ispgcn8LYdix19Hp7wO6w2/d2Y1L/9Px8=";
+    sha256 = "sha256-wnYLZ/mSNco8lIr6zmVoGGVGnOBWAzXgB+uy5U5Os4A=";
   };
 
-  vendorSha256 = null;
-
-  doCheck = false;
+  vendorSha256 = "sha256-nNZLL8S32vGfQkDD+vI4ovUvZZgGzgQmb8BAGBb+R4k=";
 
   subPackages = [ "." ];
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/atlantis version | grep ${version} > /dev/null
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/runatlantis/atlantis";
     description = "Terraform Pull Request Automation";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix
index beedc41fa8ec..da3f684398e2 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix
@@ -8,13 +8,13 @@
 buildGoModule rec {
   pname = "bosh-cli";
 
-  version = "6.4.17";
+  version = "7.0.1";
 
   src = fetchFromGitHub {
     owner = "cloudfoundry";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-oVL7tBtdFJt6ktctSZiNZMd6g1LEWQ/Hra4rcGM6BnQ=";
+    sha256 = "sha256-CNicDFmWq2tgw3LEw8nOlwewY3cpzwS9ea4fxbwVJc0=";
   };
   vendorSha256 = null;
 
@@ -39,5 +39,6 @@ buildGoModule rec {
     changelog = "https://github.com/cloudfoundry/bosh-cli/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ ris ];
+    mainProgram = "bosh";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/cilium/default.nix b/nixpkgs/pkgs/applications/networking/cluster/cilium/default.nix
index cf1ada47189f..65f3313bcc7a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/cilium/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/cilium/default.nix
@@ -1,23 +1,47 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "cilium-cli";
-  version = "0.10.4";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = "cilium";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-1/WXpXZ6f4p4IZ/yropCjH3hHt+t5HGw0aq0HFk04mo=";
+    sha256 = "sha256-WCOZuHJBssRM75+EO9s11t7ASkLxHbsVe+qmb/glFWU=";
   };
 
   vendorSha256 = null;
 
+  subPackages = [ "cmd/cilium" ];
+
+  ldflags = [
+    "-s" "-w"
+    "-X github.com/cilium/cilium-cli/internal/cli/cmd.Version=${version}"
+  ];
+
+  # Required to workaround install check error:
+  # 2022/06/25 10:36:22 Unable to start gops: mkdir /homeless-shelter: permission denied
+  HOME = "$TMPDIR";
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/cilium version | grep ${version} > /dev/null
+  '';
+
+  nativeBuildInputs = [ installShellFiles ];
+  postInstall = ''
+    installShellCompletion --cmd cilium \
+      --bash <($out/bin/cilium completion bash) \
+      --fish <($out/bin/cilium completion fish) \
+      --zsh <($out/bin/cilium completion zsh)
+  '';
+
   meta = with lib; {
     description = "CLI to install, manage & troubleshoot Kubernetes clusters running Cilium";
     license = licenses.asl20;
     homepage = "https://www.cilium.io/";
-    maintainers = with maintainers; [ humancalico ];
+    maintainers = with maintainers; [ humancalico bryanasdev000 ];
     mainProgram = "cilium";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/civo/default.nix b/nixpkgs/pkgs/applications/networking/cluster/civo/default.nix
new file mode 100644
index 000000000000..2018b94d4bb1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/civo/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "civo";
+  version = "1.0.32";
+
+  src = fetchFromGitHub {
+    owner  = "civo";
+    repo   = "cli";
+    rev    = "v${version}";
+    sha256 = "sha256-Q/eSYm+SupHdRf7O7dU+UU+1GOwtjcsT0iFxWiKAEuw=";
+  };
+
+  vendorSha256 = "sha256-ZZwecjcJqKOj2ywy4el1SVMs+0a/F6tFP37MYDC6tyg=";
+
+  CGO_ENABLED = 0;
+
+  # Some lint checks fail
+  doCheck = false;
+
+  ldflags = [
+    "-s"
+    "-X github.com/civo/cli/cmd.VersionCli=${version}"
+    "-X github.com/civo/cli/cmd.CommitCli=${src.rev}"
+    "-X github.com/civo/cli/cmd.DateCli=unknown"
+  ];
+
+  doInstallCheck = false;
+
+  postInstall = ''
+    mv $out/bin/cli $out/bin/civo
+  '';
+
+  meta = with lib; {
+    description = "CLI for interacting with Civo resources";
+    homepage = "https://github.com/civo/cli";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ berryp ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
index 4667b130e8db..b7992e2c723d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "cloudfoundry-cli";
-  version = "8.3.0";
+  version = "8.4.0";
 
   src = fetchFromGitHub {
     owner = "cloudfoundry";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-tC9U0yvuMEwO4mzWyUC+v+/H0EzgwTu02waTQrx19Bs=";
+    sha256 = "sha256-+UP1abTDYLn+lhMvo9G57X0nlColai7isNswog+3Y40=";
   };
-  vendorSha256 = "sha256-aXq92SI4cgJrmo67SEfg8YKPEpO2UW2fcYnKq9TmAQg=";
+  vendorSha256 = "sha256-opVnj6dTtHrPYM1v+EFw39XDMF/fampAn7n+JvlBcJk=";
 
   subPackages = [ "." ];
 
@@ -39,6 +39,7 @@ buildGoModule rec {
     description = "The official command line client for Cloud Foundry";
     homepage = "https://github.com/cloudfoundry/cli";
     maintainers = with maintainers; [ ris ];
+    mainProgram = "cf";
     license = licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/clusterctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/clusterctl/default.nix
index 786615801baa..5bcdf921bc3b 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/clusterctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/clusterctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "clusterctl";
-  version = "1.1.3";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = "cluster-api";
     rev = "v${version}";
-    sha256 = "sha256-0njXmYhZM4DXFeK9KboXnVw8uHdz4PFJ2aJxwhgyEc8=";
+    sha256 = "sha256-/0CZFvCBesATVGGCJoiM3GfYvCrmDJBHMXhn/o8xhKg=";
   };
 
-  vendorSha256 = "sha256-JVRLPsfI1ITilAOkVIAa2IjjuAlJ2PCpvYEkhnTzRDA=";
+  vendorSha256 = "sha256-jM5qU/KaBf+CzKKOuVXjawn/QqwrCjXKaQFFomEPndg=";
 
   subPackages = [ "cmd/clusterctl" ];
 
@@ -25,7 +25,7 @@ buildGoModule rec {
 
   postInstall = ''
     # errors attempting to write config to read-only $HOME
-    export HOME=$(mktemp -d)
+    export HOME=$TMPDIR
 
     installShellCompletion --cmd clusterctl \
       --bash <($out/bin/clusterctl completion bash) \
diff --git a/nixpkgs/pkgs/applications/networking/cluster/cmctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/cmctl/default.nix
index df34db0e1476..3cef6be03c46 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/cmctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/cmctl/default.nix
@@ -2,20 +2,24 @@
 
 buildGoModule rec {
   pname = "cmctl";
-  version = "1.7.2";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "cert-manager";
     repo = "cert-manager";
     rev = "v${version}";
-    sha256 = "sha256-Hx6MG5GCZyOX0tfpg1bfUT0BOI3p7Mws1VCz2PuUuw8=";
+    hash = "sha256-Z1aJ18X4mfJPlCPBC7QgfdX5Tk4+PK8mYoJZhGwz9ec=";
   };
 
-  vendorSha256 = "sha256-4zhdpedOmLl/i1G0QCto4ACxguWRZLzOm5HfMBMtvPY=";
+  vendorSha256 = "sha256-45+tZZAEHaLdTN1NQCueJVTx5x2IanwDl+Y9MELqdBE=";
 
   subPackages = [ "cmd/ctl" ];
 
-  ldflags = [ "-s" "-w" ];
+  ldflags = [
+    "-s" "-w"
+    "-X github.com/cert-manager/cert-manager/cmd/ctl/pkg/build.name=cmctl"
+    "-X github.com/cert-manager/cert-manager/cmd/ctl/pkg/build/commands.registerCompletion=true"
+  ];
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -28,11 +32,21 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A CLI tool for managing Cert-Manager service on Kubernetes clusters";
+    description = "A CLI tool for managing cert-manager service on Kubernetes clusters";
+    longDescription = ''
+      cert-manager adds certificates and certificate issuers as resource types
+      in Kubernetes clusters, and simplifies the process of obtaining, renewing
+      and using those certificates.
+
+      It can issue certificates from a variety of supported sources, including
+      Let's Encrypt, HashiCorp Vault, and Venafi as well as private PKI, and it
+      ensures certificates remain valid and up to date, attempting to renew
+      certificates at an appropriate time before expiry.
+    '';
     downloadPage = "https://github.com/cert-manager/cert-manager";
     license = licenses.asl20;
     homepage = "https://cert-manager.io/";
-    maintainers = with maintainers; [ superherointj ];
+    maintainers = with maintainers; [ joshvanl superherointj ];
   };
 }
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/crc/default.nix b/nixpkgs/pkgs/applications/networking/cluster/crc/default.nix
new file mode 100644
index 000000000000..e2aa0cd47c3e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/crc/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, git
+, stdenv
+, testers
+, crc
+, runtimeShell
+, coreutils
+}:
+
+let
+  openShiftVersion = "4.10.22";
+  podmanVersion = "4.1.0";
+  writeKey = "cvpHsNcmGCJqVzf6YxrSnVlwFSAZaYtp";
+in
+buildGoModule rec {
+  version = "2.4.1";
+  pname = "crc";
+  gitCommit = "6b954d40ec3280ca63e825805503d4414a3ff55b";
+
+  src = fetchFromGitHub {
+    owner = "code-ready";
+    repo = "crc";
+    rev = "v${version}";
+    sha256 = "sha256-wjwTf+d19F1NLYmUORMU0PGJeQZd+IrlScm5DiFvAk0=";
+  };
+
+  vendorSha256 = null;
+
+  nativeBuildInputs = [ git ];
+
+  postPatch = ''
+    substituteInPlace pkg/crc/oc/oc_linux_test.go \
+      --replace "/bin/echo" "${coreutils}/bin/echo"
+
+    substituteInPlace Makefile \
+      --replace "/bin/bash" "${runtimeShell}"
+  '';
+
+  tags = [ "containers_image_openpgp" ];
+
+  ldflags = [
+    "-X github.com/code-ready/crc/pkg/crc/version.crcVersion=${version}"
+    "-X github.com/code-ready/crc/pkg/crc/version.bundleVersion=${openShiftVersion}"
+    "-X github.com/code-ready/crc/pkg/crc/version.podmanVersion=${podmanVersion}"
+    "-X github.com/code-ready/crc/pkg/crc/version.commitSha=${gitCommit}"
+    "-X github.com/code-ready/crc/pkg/crc/segment.WriteKey=${writeKey}"
+  ];
+
+  preBuild = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  # tests are currently broken on aarch64-darwin
+  # https://github.com/code-ready/crc/issues/3237
+  doCheck = !(stdenv.isDarwin && stdenv.isAarch64);
+  checkFlags = [ "-args --crc-binary=$out/bin/crc" ];
+
+  passthru.tests.version = testers.testVersion {
+    package = crc;
+    command = ''
+      export HOME=$(mktemp -d)
+      crc version
+    '';
+  };
+
+  meta = with lib; {
+    description = "Manages a local OpenShift 4.x cluster or a Podman VM optimized for testing and development purposes";
+    homepage = "https://crc.dev";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ shikanime tricktron ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/crc/update.sh b/nixpkgs/pkgs/applications/networking/cluster/crc/update.sh
new file mode 100755
index 000000000000..9d3fcba7d9fd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/crc/update.sh
@@ -0,0 +1,53 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnugrep gnused jq
+
+set -x -eu -o pipefail
+
+WORKDIR=$(mktemp -d)
+trap "rm -rf ${WORKDIR}" EXIT
+
+NIXPKGS_CRC_FOLDER=$(
+    cd $(dirname ${BASH_SOURCE[0]})
+    pwd -P
+)
+cd ${NIXPKGS_CRC_FOLDER}
+
+LATEST_TAG_RAWFILE=${WORKDIR}/latest_tag.json
+curl --silent ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
+    https://api.github.com/repos/code-ready/crc/releases >${LATEST_TAG_RAWFILE}
+
+LATEST_TAG_NAME=$(jq 'map(.tag_name)' ${LATEST_TAG_RAWFILE} |
+    grep -v -e rc -e engine | tail -n +2 | head -n -1 | sed 's|[", ]||g' | sort -rV | head -n1)
+
+CRC_VERSION=$(echo ${LATEST_TAG_NAME} | sed 's/^v//')
+
+CRC_COMMIT=$(curl --silent ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
+    https://api.github.com/repos/code-ready/crc/tags |
+    jq -r "map(select(.name == \"${LATEST_TAG_NAME}\")) | .[0] | .commit.sha")
+
+FILE_MAKEFILE=${WORKDIR}/Makefile
+curl --silent https://raw.githubusercontent.com/code-ready/crc/${CRC_COMMIT}/Makefile >$FILE_MAKEFILE
+
+OPENSHIFT_VERSION=$(grep 'OPENSHIFT_VERSION' ${FILE_MAKEFILE} |
+    head -n1 | awk '{print $3}')
+
+PODMAN_VERSION=$(grep 'PODMAN_VERSION' ${FILE_MAKEFILE} |
+    head -n1 | awk '{print $3}')
+
+WRITE_KEY=$(grep '$(REPOPATH)/pkg/crc/segment.WriteKey' ${FILE_MAKEFILE} |
+    head -n1 | awk '{print $4}' | sed -e 's/$(REPOPATH)\/pkg\/crc\/segment.WriteKey=//g')
+
+sed -i "s|version = \".*\"|version = \"${CRC_VERSION:-}\"|" \
+    ${NIXPKGS_CRC_FOLDER}/default.nix
+
+sed -i "s|gitCommit = \".*\"|gitCommit = \"${CRC_COMMIT:-}\"|" \
+    ${NIXPKGS_CRC_FOLDER}/default.nix
+
+sed -i "s|openShiftVersion = \".*\"|openShiftVersion = \"${OPENSHIFT_VERSION:-}\"|" \
+    ${NIXPKGS_CRC_FOLDER}/default.nix
+
+sed -i "s|podmanVersion = \".*\"|podmanVersion = \"${PODMAN_VERSION:-}\"|" \
+    ${NIXPKGS_CRC_FOLDER}/default.nix
+
+sed -i "s|writeKey = \".*\"|writeKey = \"${WRITE_KEY:-}\"|" \
+    ${NIXPKGS_CRC_FOLDER}/default.nix
diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix
index c483125d851c..e6a907347ce4 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix
@@ -3,7 +3,7 @@
 
 buildGoPackage rec {
   pname = "machine";
-  version = "0.16.1";
+  version = "0.16.2";
 
   goPackagePath = "github.com/docker/machine";
 
@@ -11,7 +11,7 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "docker";
     repo = "machine";
-    sha256 = "0xxzxi5v7ji9j2k7kxhi0ah91lfa7b9rg3nywgx0lkv8dlgp8kmy";
+    sha256 = "sha256-Mo2OGpem3p6hCNJ46+RH3BfC7kmKB4yk4Vzo38K88UM=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix
index 28dd421c72c5..0cde6d0090e7 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "driftctl";
-  version = "0.25.0";
+  version = "0.34.1";
 
   src = fetchFromGitHub {
     owner = "snyk";
     repo = "driftctl";
     rev = "v${version}";
-    sha256 = "sha256-opR1NkMGptZilSPVZ7yNjYBBjnOXxrqAFCYzQ1tNS78=";
+    sha256 = "sha256-/tdAmu/BurCFB82i9pT2+PNOsPtHdlL/brUt4B9Q/EA=";
   };
 
-  vendorSha256 = "sha256-I0OCRhUvuaF4k5qqPaV6R24mrd9AG5GgQCCF6yodK0E=";
+  vendorSha256 = "sha256-KChEDFZj5zsZ/viOVWgC15WI8mp5cUC+SdNwkCjo6bI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fetchit/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fetchit/default.nix
new file mode 100644
index 000000000000..b4e7e66d7dce
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/fetchit/default.nix
@@ -0,0 +1,82 @@
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+, lvm2
+, pkg-config
+}:
+
+buildGoModule rec {
+  pname = "fetchit";
+  version = "0.0.1";
+
+  src = fetchFromGitHub {
+    owner = "containers";
+    repo = "fetchit";
+    rev = "v${version}";
+    sha256 = "sha256-hxS/+/fbYOpMJ5VfvvG5l7wWKBUUR22rYn9X79DzUUk=";
+  };
+
+  vendorSha256 = "sha256-SyPd8P9s8R2YbGEPqFeztF98W1QyGSBumtirSdpm8VI=";
+
+  subPackages = [ "cmd/fetchit" ];
+
+  nativeBuildInputs = [ pkg-config installShellFiles ];
+  buildInputs = [ lvm2 ];
+
+  # Flags are derived from
+  # https://github.com/containers/fetchit/blob/v0.0.1/Makefile#L20-L29
+  ldflags = [
+    "-X k8s.io/client-go/pkg/version.gitMajor=0"
+    "-X k8s.io/client-go/pkg/version.gitMinor=0"
+    "-X k8s.io/client-go/pkg/version.gitTreeState=clean"
+    "-X k8s.io/client-go/pkg/version.gitVersion=v0.0.0"
+    "-X k8s.io/component-base/version.gitMajor=0"
+    "-X k8s.io/component-base/version.gitMajor=0"
+    "-X k8s.io/component-base/version.gitMinor=0"
+    "-X k8s.io/component-base/version.gitTreeState=clean"
+    "-X k8s.io/component-base/version.gitVersion=v0.0.0"
+    "-s"
+    "-w"
+  ];
+
+  tags = [
+    "containers_image_openpgp"
+    "exclude_graphdriver_btrfs"
+    "gssapi"
+    "include_gcs"
+    "include_oss"
+    "netgo"
+    "osusergo"
+    "providerless"
+  ];
+
+  # There are no tests for cmd/fetchit.
+  doCheck = false;
+
+  postInstall = ''
+    for i in bash fish zsh; do
+      installShellCompletion --cmd fetchit \
+        --$i <($out/bin/fetchit completion $i)
+    done
+  '';
+
+  meta = with lib; {
+    description = "A tool to manage the life cycle and configuration of Podman containers";
+    longDescription = ''
+      FetchIt allows for a GitOps based approach to manage containers running on
+      a single host or multiple hosts based on a git repository. This allows for
+      us to deploy a new host and provide the host a configuration value for
+      FetchIt and automatically any containers defined in the git repository and
+      branch will be deployed onto the host. This can be beneficial for
+      environments that do not require the complexity of Kubernetes to manage
+      the containers running on the host.
+    '';
+    homepage = "https://fetchit.readthedocs.io";
+    changelog = "https://github.com/containers/fetchit/releases/tag/${src.rev}";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ azahi ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix b/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix
index b5250a3bd7fa..131cee6af032 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "flink";
-  version = "1.14.3";
+  version = "1.14.4";
 
   src = fetchurl {
     url = "mirror://apache/flink/${pname}-${version}/${pname}-${version}-bin-scala_2.11.tgz";
-    sha256 = "sha256-dst0Q1AlDdggtOwYROoV6QcBLRNfmGTo7DL2BV/5PB4=";
+    sha256 = "sha256-qvWUh+EQT/MljN5LCX2JLMEapIEGAbAljrCMTYsFqtw=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix
index 1547a63383a2..89772f9aa7be 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix
@@ -1,9 +1,9 @@
-{ lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles, stdenv }:
 
 let
-  version = "0.28.3";
-  sha256 = "1agzj8fgv6jp1i15asjvhnsxw4fj7i6g00ajjl4ihd9p166r83qy";
-  manifestsSha256 = "036d1y5dkb9mir9iy76zwdydlqxpbhz7j25fy1faznmicm2qxiqi";
+  version = "0.32.0";
+  sha256 = "1gxfnf47i26kzgsaxbl2pf02hn5dwb290qs894hz196jc2021a7n";
+  manifestsSha256 = "19jdmdipbshqv06xzkx5p4ym0x2jgrvnvsq38dg6b4y0iwzd9nmm";
 
   manifests = fetchzip {
     url =
@@ -23,7 +23,7 @@ in buildGoModule rec {
     inherit sha256;
   };
 
-  vendorSha256 = "sha256-8TIeVcPW55vJn49y2xLfOOrefmqNAhDMmTWS/c8HuA8=";
+  vendorSha256 = "sha256-pVK+VFfAk0jFp6u5mVB2p8CamPkD3/KRhYNy3zHUVCE=";
 
   postUnpack = ''
     cp -r ${manifests} source/cmd/flux/manifests
@@ -46,7 +46,7 @@ in buildGoModule rec {
     $out/bin/flux --version | grep ${version} > /dev/null
   '';
 
-  postInstall = ''
+  postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
     for shell in bash fish zsh; do
       $out/bin/flux completion $shell > flux.$shell
       installShellCompletion flux.$shell
@@ -65,6 +65,7 @@ in buildGoModule rec {
     '';
     homepage = "https://fluxcd.io";
     license = licenses.asl20;
-    maintainers = with maintainers; [ jlesquembre bryanasdev000 ];
+    maintainers = with maintainers; [ bryanasdev000 jlesquembre superherointj ];
+    mainProgram = "flux";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fluxcd/update.sh b/nixpkgs/pkgs/applications/networking/cluster/fluxcd/update.sh
index 1ded63d4d86c..2d25eee6f347 100755
--- a/nixpkgs/pkgs/applications/networking/cluster/fluxcd/update.sh
+++ b/nixpkgs/pkgs/applications/networking/cluster/fluxcd/update.sh
@@ -3,36 +3,43 @@
 
 set -x -eu -o pipefail
 
-cd $(dirname "${BASH_SOURCE[0]}")
-
-TAG=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} --silent https://api.github.com/repos/fluxcd/flux2/releases/latest | jq -r '.tag_name')
-
-VERSION=$(echo ${TAG} | sed 's/^v//')
-
-SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/fluxcd/flux2/archive/refs/tags/${TAG}.tar.gz)
-
-SPEC_SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/fluxcd/flux2/releases/download/${TAG}/manifests.tar.gz)
-
-setKV () {
-    sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ./default.nix
-}
-
-setKV version ${VERSION}
-setKV sha256 ${SHA256}
-setKV manifestsSha256 ${SPEC_SHA256}
-setKV vendorSha256 "0000000000000000000000000000000000000000000000000000" # The same as lib.fakeSha256
-
-cd ../../../../../
-set +e
-VENDOR_SHA256=$(nix-build --no-out-link -A fluxcd 2>&1 >/dev/null | grep "got:" | cut -d':' -f2 | sed 's| ||g')
-set -e
-
-cd - > /dev/null
-
-if [ -n "${VENDOR_SHA256:-}" ]; then
-    setKV vendorSha256 ${VENDOR_SHA256}
+NIXPKGS_PATH="$(git rev-parse --show-toplevel)"
+FLUXCD_PATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
+
+OLD_VERSION="$(nix-instantiate --eval -E "with import $NIXPKGS_PATH {}; fluxcd.version or (builtins.parseDrvName fluxcd.name).version" | tr -d '"')"
+LATEST_TAG=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} --silent https://api.github.com/repos/fluxcd/flux2/releases/latest | jq -r '.tag_name')
+LATEST_VERSION=$(echo ${LATEST_TAG} | sed 's/^v//')
+
+if [ ! "$OLD_VERSION" = "$LATEST_VERSION" ]; then
+    SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/fluxcd/flux2/archive/refs/tags/${LATEST_TAG}.tar.gz)
+    SPEC_SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/fluxcd/flux2/releases/download/${LATEST_TAG}/manifests.tar.gz)
+
+    setKV () {
+        sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" "${FLUXCD_PATH}/default.nix"
+    }
+
+    setKV version ${LATEST_VERSION}
+    setKV sha256 ${SHA256}
+    setKV manifestsSha256 ${SPEC_SHA256}
+    setKV vendorSha256 "0000000000000000000000000000000000000000000000000000" # The same as lib.fakeSha256
+
+    set +e
+    VENDOR_SHA256=$(nix-build --no-out-link -A fluxcd $NIXPKGS_PATH 2>&1 >/dev/null | grep "got:" | cut -d':' -f2 | sed 's| ||g')
+    set -e
+
+    if [ -n "${VENDOR_SHA256:-}" ]; then
+        setKV vendorSha256 ${VENDOR_SHA256}
+    else
+        echo "Update failed. VENDOR_SHA256 is empty."
+        exit 1
+    fi
+
+    # `git` flag here is to be used by local maintainers to speed up the bump process
+    if [ $# -eq 1 ] && [ "$1" = "git" ]; then
+        git switch -c "package-fluxcd-${LATEST_VERSION}"
+        git add "$FLUXCD_PATH"/default.nix
+        git commit -m "fluxcd: ${OLD_VERSION} -> ${LATEST_VERSION}"
+    fi
 else
-    echo "Update failed. VENDOR_SHA256 is empty."
-    exit 1
+    echo "fluxcd is already up-to-date at $OLD_VERSION"
 fi
-
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
index af0db3f2c176..cda692cacf42 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fluxctl";
-  version = "1.24.3";
+  version = "1.25.3";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = "flux";
     rev = version;
-    sha256 = "sha256-i86WwSR14hxaXWMesvG2mG8nqXd97M3TekK2FLTLL+Y=";
+    sha256 = "sha256-tV6rPpZW3HWxUBUdDkYOP6gIc/ZD+CMmT7FVYXiLp5A=";
   };
 
-  vendorSha256 = "sha256-Fw3/SMO66eExlDNcIaHM+G2kB4zb1Cih7kp8xfel/iY=";
+  vendorSha256 = "sha256-wApm7IXblhQiV7VpBXZndJgFpQmq2WEFjCEG1qd+Nlo=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix
index 22e596dabf26..c9895fccc9b7 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "fn";
-  version = "0.6.17";
+  version = "0.6.20";
 
   src = fetchFromGitHub {
     owner = "fnproject";
     repo = "cli";
     rev = version;
-    sha256 = "sha256-u/YISLlZFYlAUejSlaH7POA2WwKURPN8phFU86/caXU=";
+    sha256 = "sha256-HeyWMzxSga6T2/BRVwrmgb3utjnVTJk3zhhcVfq8/Cc=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/gatekeeper/default.nix b/nixpkgs/pkgs/applications/networking/cluster/gatekeeper/default.nix
new file mode 100644
index 000000000000..8dbe5f4659f0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/gatekeeper/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+}:
+
+buildGoModule rec {
+  pname = "gatekeeper";
+  version = "3.9.0";
+
+  src = fetchFromGitHub {
+    owner = "open-policy-agent";
+    repo = "gatekeeper";
+    rev = "v${version}";
+    sha256 = "sha256-hZ8PBJ+6G0A5tVrJfxy2rODxOxQarQg6mxG3sQCqjfY=";
+  };
+
+  vendorSha256 = null;
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  subPackages = [ "cmd/gator" ];
+
+  postInstall = ''
+    installShellCompletion --cmd gator \
+      --bash <($out/bin/gator completion bash) \
+      --fish <($out/bin/gator completion fish) \
+      --zsh <($out/bin/gator completion zsh)
+  '';
+
+  meta = with lib; {
+    description = "Policy Controller for Kubernetes";
+    homepage = "https://github.com/open-policy-agent/gatekeeper";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/glooctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/glooctl/default.nix
index a9b4441e00f9..c8ce60c55deb 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/glooctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/glooctl/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "glooctl";
-  version = "1.10.10";
+  version = "1.12.6";
 
   src = fetchFromGitHub {
     owner = "solo-io";
     repo = "gloo";
     rev = "v${version}";
-    hash = "sha256-Be0ejIQ3euKXX6wc1abXz8BphhrDnBMP0GzmnrF7C/4=";
+    hash = "sha256-g2cKT3ZTLYFBCw3xlcuB2qZ6MTV7qBfN7sieenFUeMM=";
   };
 
   subPackages = [ "projects/gloo/cli/cmd" ];
-  vendorSha256 = "1s3s4n2wgi4azwkmg9zw2a3gz378nb1i41p3s8aixfbf6fsqc6ga";
+  vendorSha256 = "sha256-wY0f9RUe9Z1FpjqWDpDG6QXQlFDChfAkjJzlvBMaaFE=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
index adb46540cba7..1d9b10bfc39b 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
@@ -17,6 +17,8 @@
 , openssl
 , glibc
 , nixosTests
+, sparkSupport ? true
+, spark
 }:
 
 with lib;
@@ -24,12 +26,13 @@ with lib;
 assert elem stdenv.system [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
 
 let
-  common = { pname, version, untarDir ? "${pname}-${version}", sha256, jdk, openssl ? null, nativeLibs ? [ ], libPatches ? "", tests }:
+  common = { pname, platformAttrs, untarDir ? "${pname}-${version}", jdk, openssl ? null, nativeLibs ? [ ], libPatches ? "", tests }:
     stdenv.mkDerivation rec {
-      inherit pname version jdk libPatches untarDir openssl;
+      inherit pname jdk libPatches untarDir openssl;
+      version = platformAttrs.${stdenv.system}.version or (throw "Unsupported system: ${stdenv.system}");
       src = fetchurl {
         url = "mirror://apache/hadoop/common/hadoop-${version}/hadoop-${version}" + optionalString stdenv.isAarch64 "-aarch64" + ".tar.gz";
-        sha256 = sha256.${stdenv.system};
+        inherit (platformAttrs.${stdenv.system}) hash;
       };
       doCheck = true;
 
@@ -48,18 +51,23 @@ let
           makeWrapper "$n" "$out/bin/$(basename $n)"\
             --set-default JAVA_HOME ${jdk.home}\
             --set-default HADOOP_HOME $out/lib/${untarDir}\
-            --set-default HADOOP_CONF_DIR /etc/hadoop-conf/\
+            --run "test -d /etc/hadoop-conf && export HADOOP_CONF_DIR=\''${HADOOP_CONF_DIR-'/etc/hadoop-conf/'}"\
+            --set-default HADOOP_CONF_DIR $out/lib/${untarDir}/etc/hadoop/\
             --prefix PATH : "${makeBinPath [ bash coreutils which]}"\
             --prefix JAVA_LIBRARY_PATH : "${makeLibraryPath buildInputs}"
         done
+      '' + optionalString sparkSupport ''
+        # Add the spark shuffle service jar to YARN
+        cp ${spark.src}/yarn/spark-${spark.version}-yarn-shuffle.jar $out/lib/${untarDir}/share/hadoop/yarn/
       '' + libPatches;
 
       passthru = { inherit tests; };
 
-      meta = {
+      meta = recursiveUpdate {
         homepage = "https://hadoop.apache.org/";
         description = "Framework for distributed processing of large data sets across clusters of computers";
         license = licenses.asl20;
+        sourceProvenance = with sourceTypes; [ binaryBytecode ];
 
         longDescription = ''
           The Apache Hadoop software library is a framework that allows for
@@ -72,9 +80,9 @@ let
           so delivering a highly-availabile service on top of a cluster of
           computers, each of which may be prone to failures.
         '';
-        maintainers = with maintainers; [ volth illustris ];
-        platforms = attrNames sha256;
-      };
+        maintainers = with maintainers; [ illustris ];
+        platforms = attrNames platformAttrs;
+      } (attrByPath [ stdenv.system "meta" ] {} platformAttrs);
     };
 in
 {
@@ -82,14 +90,20 @@ in
   # https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Java+Versions
   hadoop_3_3 = common rec {
     pname = "hadoop";
-    version = "3.3.1";
-    untarDir = "${pname}-${version}";
-    sha256 = rec {
-      x86_64-linux = "1b3v16ihysqaxw8za1r5jlnphy8dwhivdx2d0z64309w57ihlxxd";
-      x86_64-darwin = x86_64-linux;
-      aarch64-linux = "00ln18vpi07jq2slk3kplyhcj8ad41n0yl880q5cihilk7daclxz";
-      aarch64-darwin = aarch64-linux;
+    platformAttrs = rec {
+        x86_64-linux = {
+          version = "3.3.3";
+          hash = "sha256-+nHGG7qkJxKa7wn+wCizTdVCxlrZD9zOxefvk9g7h2Q=";
+        };
+        x86_64-darwin = x86_64-linux;
+        aarch64-linux = {
+          version = "3.3.1";
+          hash = "sha256-v1Om2pk0wsgKBghRD2wgTSHJoKd3jkm1wPKAeDcKlgI=";
+          meta.knownVulnerabilities = [ "CVE-2021-37404" "CVE-2021-33036" ];
+        };
+        aarch64-darwin = aarch64-linux;
     };
+    untarDir = "${pname}-${platformAttrs.${stdenv.system}.version}";
     jdk = jdk11_headless;
     inherit openssl;
     # TODO: Package and add Intel Storage Acceleration Library
@@ -110,8 +124,10 @@ in
   };
   hadoop_3_2 = common rec {
     pname = "hadoop";
-    version = "3.2.2";
-    sha256.x86_64-linux = "1hxq297cqvkfgz2yfdiwa3l28g44i2abv5921k2d6b4pqd33prwp";
+    platformAttrs.x86_64-linux = {
+      version = "3.2.3";
+      hash = "sha256-Q2/a1LcKutpJoGySB0qlCcYE2bvC/HoG/dp9nBikuNU=";
+    };
     jdk = jdk8_headless;
     # not using native libs because of broken openssl_1_0_2 dependency
     # can be manually overriden
@@ -119,8 +135,10 @@ in
   };
   hadoop2 = common rec {
     pname = "hadoop";
-    version = "2.10.1";
-    sha256.x86_64-linux = "1w31x4bk9f2swnx8qxx0cgwfg8vbpm6cy5lvfnbbpl3rsjhmyg97";
+    platformAttrs.x86_64-linux = {
+      version = "2.10.2";
+      hash = "sha256-xhA4zxqIRGNhIeBnJO9dLKf/gx/Bq+uIyyZwsIafEyo=";
+    };
     jdk = jdk8_headless;
     tests = nixosTests.hadoop2;
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm-docs/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm-docs/default.nix
index f7c05843bcfc..5a8d5189b8d5 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm-docs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm-docs/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "helm-docs";
-  version = "1.7.0";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "norwoodj";
     repo = "helm-docs";
     rev = "v${version}";
-    sha256 = "sha256-TXwEVyRYRiVqCDL7IR+DIu1iKqaq81W5xkvz+laxVek=";
+    sha256 = "sha256-476ZhjRwHlNJFkHzY8qQ7WbAUUpFNSoxXLGX9esDA/E=";
   };
 
-  vendorSha256 = "sha256-XTV0gyUWe6G5gxucsXOaDOUQoKMCfhrWzlKwUOaA6y4=";
+  vendorSha256 = "sha256-xXwunk9rmzZEtqmSo8biuXnAjPp7fqWdQ+Kt9+Di9N8=";
 
   subPackages = [ "cmd/helm-docs" ];
   ldflags = [
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/chart-testing/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/chart-testing/default.nix
index 127ee9c6895a..38c00f66b2b5 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/chart-testing/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/chart-testing/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "chart-testing";
-  version = "3.5.1";
+  version = "3.7.0";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LNCzz5me60R/moFfdJhGMgUToFxADiPL02G4QCv0DLg=";
+    sha256 = "sha256-wwXHSjb5FeWOx008jpGNzplzRtHyvcxkcHWLOSoaIE0=";
   };
 
-  vendorSha256 = "sha256-38ufXHzGlZgEh6swD/GhWbIYdY5uYznKCQ9OaoyOEiY=";
+  vendorSha256 = "sha256-VYa97JaVGadltrUH/2S9QU5ndgAjozKUXtmaN0q478Q=";
 
   postPatch = ''
     substituteInPlace pkg/config/config.go \
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
index 408f1bd3ed8a..04e4567334a4 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
@@ -1,28 +1,38 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+{ lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
-  pname = "helm";
-  version = "3.8.1";
-  gitCommit = "5cb9af4b1b271d11d7a97a71df3ac337dd94ad37";
+  pname = "kubernetes-helm";
+  version = "3.9.3";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "sha256-AjNrn46l9gVC7MtGF59QWv+l6qYn+jzopsZtM/2faXY=";
+    sha256 = "sha256-fRlHI2g+pSexPzeEqUnow5WTPvNMGnQNWjnllzJ42fY=";
   };
-  vendorSha256 = "sha256-ffbp7J8XDxo/s79pjoiDVbft0pr/lJpuJuKiMpQwkT0=";
-
-  doCheck = false;
+  vendorSha256 = "sha256-ZOY25wgxCdVQafdhBW4Z3aQxOGTs7N3SvSDJ/Fu5psg=";
 
   subPackages = [ "cmd/helm" ];
   ldflags = [
     "-w"
     "-s"
     "-X helm.sh/helm/v3/internal/version.version=v${version}"
-    "-X helm.sh/helm/v3/internal/version.gitCommit=${gitCommit}"
+    "-X helm.sh/helm/v3/internal/version.gitCommit=${src.rev}"
   ];
 
+  preCheck = ''
+    # skipping version tests because they require dot git directory
+    substituteInPlace cmd/helm/version_test.go \
+      --replace "TestVersion" "SkipVersion"
+  '' + lib.optionalString stdenv.isLinux ''
+    # skipping plugin tests on linux
+    substituteInPlace cmd/helm/plugin_test.go \
+      --replace "TestPluginDynamicCompletion" "SkipPluginDynamicCompletion" \
+      --replace "TestLoadPlugins" "SkipLoadPlugins"
+    substituteInPlace cmd/helm/helm_test.go \
+      --replace "TestPluginExitCode" "SkipPluginExitCode"
+  '';
+
   nativeBuildInputs = [ installShellFiles ];
   postInstall = ''
     $out/bin/helm completion bash > helm.bash
@@ -33,7 +43,8 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/kubernetes/helm";
     description = "A package manager for kubernetes";
+    mainProgram = "helm";
     license = licenses.asl20;
-    maintainers = with maintainers; [ rlupton20 edude03 saschagrunert Frostman Chili-Man ];
+    maintainers = with maintainers; [ rlupton20 edude03 saschagrunert Frostman Chili-Man techknowlogick ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix
index 342fd9e686a2..16fceff4ee1a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix
@@ -6,6 +6,8 @@
 
   helm-git = callPackage ./helm-git.nix { };
 
+  helm-cm-push = callPackage ./helm-cm-push.nix { };
+
   helm-s3 = callPackage ./helm-s3.nix { };
 
   helm-secrets = callPackage ./helm-secrets.nix { };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-cm-push.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-cm-push.nix
new file mode 100644
index 000000000000..f54d2b332f27
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-cm-push.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "helm-cm-push";
+  version = "0.10.3";
+
+  src = fetchFromGitHub {
+    owner = "chartmuseum";
+    repo = "helm-push";
+    rev = "v${version}";
+    hash = "sha256-GyVhjCosVaUS1DtztztFxKuuRlUdxlsOP4/QMQ7+TaU=";
+  };
+
+  vendorSha256 = "sha256-9LhokpQrREmcyBqwb33BSMyG8z7IAsl9NtE3B631PnM=";
+
+  subPackage = [ "cmd/helm-cm-push" ];
+
+  # Remove hooks.
+  postPatch = ''
+    sed -e '/^hooks:/,+2 d' -i plugin.yaml
+  '';
+
+  CGO_ENABLED = 0;
+
+  ldflags = [ "-s" "-w" ];
+
+  postInstall = ''
+    install -Dm644 plugin.yaml $out/helm-cm-push/plugin.yaml
+    mv $out/bin $out/helm-cm-push
+  '';
+
+  # Tests require the ChartMuseum service.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Helm plugin to push chart package to ChartMuseum";
+    homepage = "https://github.com/chartmuseum/helm-push";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ azahi ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
index 09de0219c7e8..64fa0f35e543 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "helm-diff";
-  version = "3.1.3";
+  version = "3.5.0";
 
   src = fetchFromGitHub {
     owner = "databus23";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-h26EOjKNrlcrs2DAYj0NmDRgNRKozjfw5DtxUgHNTa4=";
+    sha256 = "sha256-evFdMM2AilKQPdSCUzKo6RuC4OC4zfjj+JzFvtkSrdk=";
   };
 
-  vendorSha256 = "sha256-+n/QBuZqtdgUkaBG7iqSuBfljn+AdEzDoIo5SI8ErQA=";
+  vendorSha256 = "sha256-9i4ryBpaK7mMbsOpIaaZWBRjewD1MtTpf4zJ0yU0KMg=";
 
   # NOTE: Remove the install and upgrade hooks.
   postPatch = ''
@@ -27,7 +27,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Helm plugin that shows a diff";
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/databus23/helm-diff";
     license = licenses.asl20;
     maintainers = with maintainers; [ yurrriq ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-git.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-git.nix
index 05ded10444ba..d72b152cc5bf 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-git.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-git.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The Helm downloader plugin that provides GIT protocol support";
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/aslafy-z/helm-git";
     license = licenses.mit;
     maintainers = with maintainers; [ flokli ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
index b6a47ec9dd5c..bbfff3fd5f34 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
@@ -30,7 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Helm plugin that shows a diff";
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/hypnoglow/helm-s3";
     license = licenses.mit;
     maintainers = with maintainers; [ yurrriq ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
index a16472413f31..7d9135045f17 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
@@ -36,9 +36,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Helm plugin that helps manage secrets";
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/jkroepke/helm-secrets";
     license = licenses.asl20;
     maintainers = with maintainers; [ yurrriq ];
-    platforms = platforms.all;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
index b4c4fde53ed5..2a9b04772334 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -1,27 +1,39 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "helmfile";
-  version = "0.143.3";
+  version = "0.145.2";
 
   src = fetchFromGitHub {
-    owner = "roboll";
+    owner = "helmfile";
     repo = "helmfile";
     rev = "v${version}";
-    sha256 = "sha256-A0xpXsMWUaJYTzo9O4KkdyjonSGZ+FylTK140pqnJX8=";
+    sha256 = "sha256-ipGMGby7qUoFJNc+7+Gq+JaBUdxm19NwhklWsTpslVI=";
   };
 
-  vendorSha256 = "sha256-qolmWat7An4HFm4O5vSCYZe+w79nsRIrnBLJacUCeA4=";
+  vendorSha256 = "sha256-031Xdr3u35uirDBZhExdh8PMAZa1gfMTC2II8VMbr6Q=";
 
   doCheck = false;
 
   subPackages = [ "." ];
 
-  ldflags = [ "-s" "-w" "-X github.com/roboll/helmfile/pkg/app/version.Version=${version}" ];
+  ldflags = [ "-s" "-w" "-X github.com/helmfile/helmfile/pkg/app/version.Version=${version}" ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installShellCompletion --cmd helmfile \
+      --bash ./autocomplete/helmfile_bash_autocomplete  \
+      --zsh ./autocomplete/helmfile_zsh_autocomplete
+  '';
 
   meta = {
-    description = "Deploy Kubernetes Helm charts";
-    homepage = "https://github.com/roboll/helmfile";
+    description = "Declarative spec for deploying Helm charts";
+    longDescription = ''
+      Declaratively deploy your Kubernetes manifests, Kustomize configs,
+      and charts as Helm releases in one shot.
+    '';
+    homepage = "https://helmfile.readthedocs.io/";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ pneumaticat yurrriq ];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
index e01f9c14a182..61dbfef0a697 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "helmsman";
-  version = "3.8.1";
+  version = "3.13.1";
 
   src = fetchFromGitHub {
     owner = "Praqma";
     repo = "helmsman";
     rev = "v${version}";
-    sha256 = "sha256-njo5LlowlgWFK5G2lpgi7hdxtnSs8f5cT0oHI7bJxNc=";
+    sha256 = "sha256-AfJf+o73iR0aHNFfB7f0S+cc5VeEOAjD0Ou44WHTTAg=";
   };
 
-  vendorSha256 = "sha256-F+b4EXAxa4+O6yepx+9eRrdq294ZcQ+sODFUCKYpSuo=";
+  vendorSha256 = "sha256-Ijy9UxT746Bi6x+aXxKNRxzAo5yRTV/6nbVjk9i4ffk=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/hubble/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hubble/default.nix
index 172f866c48ab..e6e5e6c1ce6c 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/hubble/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/hubble/default.nix
@@ -1,8 +1,8 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ stdenv, lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "hubble";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "cilium";
@@ -13,10 +13,36 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  ldflags = [
+    "-s" "-w"
+    "-X github.com/cilium/hubble/pkg.GitBranch=none"
+    "-X github.com/cilium/hubble/pkg.GitHash=none"
+    "-X github.com/cilium/hubble/pkg.Version=${version}"
+  ];
+
+  # Test fails at Test_getFlowsRequestWithInvalidRawFilters in github.com/cilium/hubble/cmd/observe
+  # https://github.com/NixOS/nixpkgs/issues/178976
+  # https://github.com/cilium/hubble/pull/656
+  # https://github.com/cilium/hubble/pull/655
+  doCheck = false;
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/hubble version | grep ${version} > /dev/null
+  '';
+
+  nativeBuildInputs = [ installShellFiles ];
+  postInstall = ''
+    installShellCompletion --cmd hubble \
+      --bash <($out/bin/hubble completion bash) \
+      --fish <($out/bin/hubble completion fish) \
+      --zsh <($out/bin/hubble completion zsh)
+  '';
+
   meta = with lib; {
+    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     description = "Network, Service & Security Observability for Kubernetes using eBPF";
     license = licenses.asl20;
     homepage = "https://github.com/cilium/hubble/";
-    maintainers = with maintainers; [ humancalico ];
+    maintainers = with maintainers; [ humancalico bryanasdev000 ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
index da633af2b8f7..8c5c3529998f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -2,17 +2,15 @@
 
 buildGoModule rec {
   pname = "istioctl";
-  version = "1.13.2";
+  version = "1.14.3";
 
   src = fetchFromGitHub {
     owner = "istio";
     repo = "istio";
     rev = version;
-    sha256 = "sha256-7YtszdwauTz9LfZ77d13fDU6vQm5hiJrIOiqpqIginQ=";
+    sha256 = "sha256-1E4YtGSiHXG7G60Rng1t4OvgLvn9tjYahCkrFnlfLyw=";
   };
-  vendorSha256 = "sha256-AOcWkcw+2DcgBxvxRO/sdb339a7hmI7Oy5I4kW4oE+k=";
-
-  doCheck = false;
+  vendorSha256 = "sha256-S0297wgoqhPD9+nyzPEytpfppA91PWo1q4B7L8CHKLs=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -28,6 +26,11 @@ buildGoModule rec {
 
   subPackages = [ "istioctl/cmd/istioctl" ];
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/istioctl version --remote=false | grep ${version} > /dev/null
+  '';
+
   postInstall = ''
     $out/bin/istioctl collateral --man --bash --zsh
     installManPage *.1
@@ -39,7 +42,7 @@ buildGoModule rec {
     description = "Istio configuration command line utility for service operators to debug and diagnose their Istio mesh";
     homepage = "https://istio.io/latest/docs/reference/commands/istioctl";
     license = licenses.asl20;
-    maintainers = with maintainers; [ veehaitch ];
+    maintainers = with maintainers; [ superherointj bryanasdev000 veehaitch ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix b/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix
index d9b04aaf7fc6..0afe7b834495 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix
@@ -1,4 +1,4 @@
-{ buildGoModule, fetchFromGitHub, lib, installShellFiles }:
+{ stdenv, buildGoModule, fetchFromGitHub, lib, installShellFiles }:
 
 buildGoModule rec {
   pname = "jx";
@@ -34,6 +34,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
+    broken = stdenv.isDarwin;
     description = "Command line tool for installing and using Jenkins X";
     homepage = "https://jenkins-x.io";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k0sctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k0sctl/default.nix
index 256d7e642255..dd451a803392 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k0sctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k0sctl/default.nix
@@ -1,20 +1,21 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
+, installShellFiles
 }:
 
 buildGoModule rec {
   pname = "k0sctl";
-  version = "0.11.4";
+  version = "0.13.2";
 
   src = fetchFromGitHub {
     owner = "k0sproject";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Fk1aYSa3LqzxiHtlzH5pcNtodOprjfnCFh4UMqCa6Rc=";
+    sha256 = "sha256-uKN+vH7BGz8lUDrmPeLp941KPkkTfOkK4Ib9GZR9D0M=";
   };
 
-  vendorSha256 = "sha256-21C6wZ8lKQnbUg3aD0ZFVOgopblXyWk4WP/ubZVk3Yk=";
+  vendorSha256 = "sha256-CZ8DmgYXQcpd43qm6YsVHFePuUochHgJG7/ffEK8LL8=";
 
   ldflags = [
     "-s"
@@ -23,6 +24,15 @@ buildGoModule rec {
     "-X github.com/k0sproject/k0sctl/version.Version=${version}"
   ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    for shell in bash zsh fish; do
+      installShellCompletion --cmd ${pname} \
+        --$shell <($out/bin/${pname} completion --shell $shell)
+    done
+  '';
+
   meta = with lib; {
     description = "A bootstrapping and management tool for k0s clusters.";
     homepage = "https://k0sproject.io/";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
index fa355b65131a..614ddc58dac5 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
@@ -46,33 +46,31 @@ with lib;
 # Those pieces of software we entirely ignore upstream's handling of, and just
 # make sure they're in the path if desired.
 let
-  k3sVersion = "1.23.4+k3s1";     # k3s git tag
-  k3sCommit = "43b1cb48200d8f6af85c16ed944d68fcc96b6506"; # k3s git commit at the above version
-  k3sRepoSha256 = "1sn7rd5hqfqvwj036blk0skmq6r8igbmiqk1dnpaqnkkddpzdgmc";
-  k3sVendorSha256 = "sha256-1/kQvNqFUWwch1JH+twWzBdjNYseoZyVObB1+s9WPM4=";
-
-  k3sServerVendorSha256 = "sha256-2KIFff43jfqWdxX61aWofrjmc5mMkr5aEJRFdGpLyU8=";
+  k3sVersion = "1.24.3+k3s1";     # k3s git tag
+  k3sCommit = "990ba0e88c90f8ed8b50e0ccd375937b841b176e"; # k3s git commit at the above version
+  k3sRepoSha256 = "0slw2j7d7ccj7k9z06l5ch3nxi07jbm6xijs774hisyv25jx94rd";
+  k3sVendorSha256 = "sha256-8jWpTUE/tJf2qpFjdsV+0i8hRf6JqATwr/YbXrZa/iA=";
 
   # taken from ./manifests/traefik.yaml, extracted from '.spec.chart' https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/download#L9
   # The 'patch' and 'minor' versions are currently hardcoded as single digits only, so ignore the trailing two digits. Weird, I know.
-  traefikChartVersion = "10.14.1";
-  traefikChartSha256 = "09a6cialx7nrh7nwi1gkkh8zcsasxcgb52dyx0r8bjq9ng29simj";
+  traefikChartVersion = "10.19.3";
+  traefikChartSha256 = "04zg5li957svgscdmkzmzjkwljaljyav68rzxmhakkwgav6q9058";
 
   # taken from ./scripts/version.sh VERSION_ROOT https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/version.sh#L47
   k3sRootVersion = "0.11.0";
   k3sRootSha256 = "016n56vi09xkvjph7wgzb2m86mhd5x65fs4d11pmh20hl249r620";
 
   # taken from ./scripts/version.sh VERSION_CNIPLUGINS https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/version.sh#L45
-  k3sCNIVersion = "1.0.1-k3s1";
-  k3sCNISha256 = "11ihlzzdnqf9p21y0a4ckpbxac016nm7746dcykhj26ym9zxyv92";
+  k3sCNIVersion = "1.1.1-k3s1";
+  k3sCNISha256 = "14mb3zsqibj1sn338gjmsyksbm0mxv9p016dij7zidccx2rzn6nl";
 
   # taken from go.mod, the 'github.com/containerd/containerd' line
   # run `grep github.com/containerd/containerd go.mod | head -n1 | awk '{print $4}'`
-  containerdVersion = "1.5.9-k3s1";
-  containerdSha256 = "09wfy20z3c9fnla353pibpsb10xzl0f4xwp8qdjh3fwa1q2626gg";
+  containerdVersion = "1.5.13-k3s1";
+  containerdSha256 = "09bj4ghwbsj9whkv1d5icqs52k64m449j8b73dmak2wz62fbzbvp";
 
   # run `grep github.com/kubernetes-sigs/cri-tools go.mod | head -n1 | awk '{print $4}'` in the k3s repo at the tag
-  criCtlVersion = "1.22.0-k3s1";
+  criCtlVersion = "1.24.0-k3s1";
 
   baseMeta = {
     description = "A lightweight Kubernetes distribution";
@@ -175,7 +173,7 @@ let
     version = k3sVersion;
 
     src = k3sRepo;
-    vendorSha256 = k3sServerVendorSha256;
+    vendorSha256 = k3sVendorSha256;
 
     nativeBuildInputs = [ pkg-config ];
     buildInputs = [ libseccomp ];
@@ -223,14 +221,28 @@ buildGoModule rec {
   version = k3sVersion;
 
   src = k3sRepo;
-  proxyVendor = true;
   vendorSha256 = k3sVendorSha256;
 
   patches = [
     ./patches/0001-scrips-download-strip-downloading-just-package-CRD.patch
-    ./patches/0002-Don-t-build-a-static-binary-in-package-cli.patch
   ];
 
+  postPatch = ''
+    # Nix prefers dynamically linked binaries over static binary.
+
+    substituteInPlace scripts/package-cli \
+      --replace '"$LDFLAGS $STATIC" -o' \
+                '"$LDFLAGS" -o' \
+      --replace "STATIC=\"-extldflags \'-static\'\"" \
+                ""
+
+    # Upstream codegen fails with trimpath set. Removes "trimpath" for 'go generate':
+
+    substituteInPlace scripts/package-cli \
+      --replace '"''${GO}" generate' \
+                'GOFLAGS="" "''${GO}" generate'
+  '';
+
   # Important utilities used by the kubelet, see
   # https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-237202494
   # Note the list in that issue is stale and some aren't relevant for k3s.
@@ -311,7 +323,7 @@ buildGoModule rec {
 
   passthru.updateScript = ./update.sh;
 
-  passthru.tests = { inherit (nixosTests) k3s-single-node k3s-single-node-docker; };
+  passthru.tests = nixosTests.k3s;
 
   meta = baseMeta;
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0002-Don-t-build-a-static-binary-in-package-cli.patch b/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0002-Don-t-build-a-static-binary-in-package-cli.patch
deleted file mode 100644
index 886b6ec7409b..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0002-Don-t-build-a-static-binary-in-package-cli.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 49c000c7c5dd7a502a2be4c638d2c32b65673c00 Mon Sep 17 00:00:00 2001
-From: Euan Kemp <euank@euank.com>
-Date: Sun, 6 Feb 2022 23:13:00 -0800
-Subject: [PATCH] Don't build a static binary in package-cli
-
-since nixpkgs prefers dynamically linked binaries.
-
-Also remove "trimpath" for the 'go generate' step because the codegen
-they use doesn't work with trimpath set.
----
- scripts/package-cli | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/scripts/package-cli b/scripts/package-cli
-index 28927327b7..95dbb469f1 100755
---- a/scripts/package-cli
-+++ b/scripts/package-cli
-@@ -48,14 +48,13 @@ fi
- 
- CMD_NAME=dist/artifacts/k3s${BIN_SUFFIX}
- 
--"${GO}" generate
-+GOFLAGS="" "${GO}" generate
- LDFLAGS="
-     -X github.com/rancher/k3s/pkg/version.Version=$VERSION
-     -X github.com/rancher/k3s/pkg/version.GitCommit=${COMMIT:0:8}
-     -w -s
- "
--STATIC="-extldflags '-static'"
--CGO_ENABLED=0 "${GO}" build -ldflags "$LDFLAGS $STATIC" -o ${CMD_NAME} ./cmd/k3s/main.go
-+CGO_ENABLED=0 "${GO}" build -ldflags "$LDFLAGS" -o ${CMD_NAME} ./cmd/k3s/main.go
- 
- stat ${CMD_NAME}
- 
--- 
-2.34.1
-
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/update.sh b/nixpkgs/pkgs/applications/networking/cluster/k3s/update.sh
index 8f199bf9cc0c..6c9755334cde 100755
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/update.sh
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/update.sh
@@ -81,19 +81,6 @@ setKV containerdSha256 ${CONTAINERD_SHA256}
 
 setKV criCtlVersion ${CRI_CTL_VERSION}
 
-setKV k3sServerVendorSha256 "0000000000000000000000000000000000000000000000000000"
-
-set +e
-K3S_SERVER_VENDOR_SHA256=$(nix-build ${NIXPKGS_ROOT} --no-out-link -A k3s 2>&1 >/dev/null | grep "got:" | cut -d':' -f2 | sed 's| ||g')
-set -e
-
-if [ -n "${K3S_SERVER_VENDOR_SHA256:-}" ]; then
-    setKV k3sServerVendorSha256 ${K3S_SERVER_VENDOR_SHA256}
-else
-    echo "Update failed. K3S_SERVER_VENDOR_SHA256 is empty."
-    exit 1
-fi
-
 set +e
 K3S_VENDOR_SHA256=$(nix-prefetch -I nixpkgs=${NIXPKGS_ROOT} "{ sha256 }: (import ${NIXPKGS_ROOT}. {}).k3s.go-modules.overrideAttrs (_: { vendorSha256 = sha256; })")
 set -e
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3sup/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k3sup/default.nix
index befec62fbc50..cab22babbcf4 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k3sup/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3sup/default.nix
@@ -2,24 +2,25 @@
 , buildGoModule
 , fetchFromGitHub
 , makeWrapper
+, installShellFiles
 , bash
 , openssh
 }:
 
 buildGoModule rec {
   pname = "k3sup";
-  version = "0.11.3";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "alexellis";
     repo = "k3sup";
     rev = version;
-    sha256 = "sha256-6WYUmC2uVHFGLsfkA2EUOWmmo1dSKJzI4MEdRnlLgYY=";
+    sha256 = "sha256-sb0cVLPIRD49AQ2XUsXkABFEZPrcuytr8Ht7Zt40H3o=";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
 
-  vendorSha256 = "sha256-Pd+BgPWoxf1AhP0o5SgFSvy4LyUQB7peKWJk0BMy7ds=";
+  vendorSha256 = "sha256-I2bODrGF4D7B13qBZtCAOWgAmrxdleqfDQz+vCGmdjQ=";
 
   postConfigure = ''
     substituteInPlace vendor/github.com/alexellis/go-execute/pkg/v1/exec.go \
@@ -37,6 +38,11 @@ buildGoModule rec {
   postInstall = ''
     wrapProgram "$out/bin/k3sup" \
       --prefix PATH : ${lib.makeBinPath [ openssh ]}
+
+    installShellCompletion --cmd k3sup \
+      --bash <($out/bin/k3sup completion bash) \
+      --zsh <($out/bin/k3sup completion zsh) \
+      --fish <($out/bin/k3sup completion fish)
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
index 48236cdc25e2..75210a0f9885 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
@@ -1,28 +1,46 @@
-{ stdenv, lib, buildGoModule, fetchFromGitHub }:
+{ stdenv, lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, k9s }:
 
 buildGoModule rec {
   pname = "k9s";
-  version = "0.25.18";
+  version = "0.26.3";
 
   src = fetchFromGitHub {
     owner  = "derailed";
     repo   = "k9s";
     rev    = "v${version}";
-    sha256 = "sha256-iUhMPtFX7qFULegiyhlT4aG9q3deZ8aRqyEcbZ9jY/s=";
+    sha256 = "sha256-Czjx6YTyFKAP8ZuwBpTpRfjDdRdd8GQ0ggbe5LMb8uA=";
   };
 
   ldflags = [
     "-s" "-w"
     "-X github.com/derailed/k9s/cmd.version=${version}"
     "-X github.com/derailed/k9s/cmd.commit=${src.rev}"
+    "-X github.com/derailed/k9s/cmd.date=1970-01-01T00:00:00Z"
   ];
 
-  vendorSha256 = "sha256-mMob7M9RQlqaVK0DgHpaAK9d1btzfQetnliUqFTvjJQ=";
+  tags = [ "netgo" ];
 
-  preCheck = "export HOME=$(mktemp -d)";
+  vendorSha256 = "sha256-rnROcJA4f0YjDGKEncrMmf/43VKrbgpmM3TvV1MMiWU=";
 
   # TODO investigate why some config tests are failing
   doCheck = !(stdenv.isDarwin && stdenv.isAarch64);
+  # Required to workaround test check error:
+  preCheck = "export HOME=$(mktemp -d)";
+  # For arch != x86
+  # {"level":"fatal","error":"could not create any of the following paths: /homeless-shelter/.config, /etc/xdg","time":"2022-06-28T15:52:36Z","message":"Unable to create configuration directory for k9s"}
+  passthru.tests.version = testers.testVersion {
+    package = k9s;
+    command = "HOME=$(mktemp -d) k9s version -s";
+    inherit version;
+  };
+
+  nativeBuildInputs = [ installShellFiles ];
+  postInstall = ''
+    installShellCompletion --cmd k9s \
+      --bash <($out/bin/k9s completion bash) \
+      --fish <($out/bin/k9s completion fish) \
+      --zsh <($out/bin/k9s completion zsh)
+  '';
 
   meta = with lib; {
     description = "Kubernetes CLI To Manage Your Clusters In Style";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix
index e549c8f09fb0..44dc9f4900fc 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kconf";
-  version = "1.11.0";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "particledecay";
     repo = "kconf";
     rev = "v${version}";
-    sha256 = "sha256-V+B1vqI/MLASqEy6DZiB71h7EkUfrxVKIMxriRK6pyY=";
+    sha256 = "sha256-aEZTwXccKZDXRNWr4XS2ZpqtEnNGbsIVau8zPvaHTkk=";
   };
 
-  vendorSha256 = "sha256-Fq3V3vYaofB0TWt3t7uW1Dd7MlwMvh8RaRVpdq9XZh4=";
+  vendorSha256 = "sha256-7mzk2OP1p8FfRsbs4B6XP/szBeckm7Q7hf8AkbZUG2Q=";
 
   ldflags = [
       "-s" "-w" "-X github.com/particledecay/kconf/build.Version=${version}"
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kn/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kn/default.nix
index 93ccd873f777..b8e34871dd73 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kn/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kn/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kn";
-  version = "1.3.1";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "knative";
     repo = "client";
     rev = "knative-v${version}";
-    sha256 = "sha256-xpSnirdEZ/Cua/wicu62HzeDm0E8Xo/Jt2eMfUS7mDo=";
+    sha256 = "sha256-3qH7L0tOsAnAAPIzTd5MIVMPM/M2SJAkxXfyMijHuRs=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix
index c01e1c8c0041..a4081408871a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix
@@ -1,19 +1,24 @@
-{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, kompose, git }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "kompose";
-  version = "1.21.0";
-
-  goPackagePath = "github.com/kubernetes/kompose";
+  version = "1.26.1";
 
   src = fetchFromGitHub {
-    rev = "v${version}";
     owner = "kubernetes";
     repo = "kompose";
-    sha256 = "15a1alf6ywwfc4z5kdcnv64fp3cfy3qrcw62ny6xyn1kh1w24vkh";
+    rev = "v${version}";
+    sha256 = "sha256-NfzqGG5ZwPpmjhvcvXN1AA+kfZG/oujbAEtXkm1mzeU=";
   };
 
-  nativeBuildInputs = [ installShellFiles ];
+  vendorSha256 = "sha256-OR5U2PnebO0a+lwU09Dveh0Yxk91cmSRorTxQIO5lHc=";
+
+  nativeBuildInputs = [ installShellFiles git ];
+
+  ldflags = [ "-s" "-w" ];
+
+  checkFlags = [ "-short" ];
+
   postInstall = ''
     for shell in bash zsh; do
       $out/bin/kompose completion $shell > kompose.$shell
@@ -21,6 +26,11 @@ buildGoPackage rec {
     done
   '';
 
+  passthru.tests.version = testers.testVersion {
+    package = kompose;
+    command = "kompose version";
+  };
+
   meta = with lib; {
     description = "A tool to help users who are familiar with docker-compose move to Kubernetes";
     homepage = "https://kompose.io";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
index da8e14d1f307..8b54719d5cad 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
@@ -1,16 +1,12 @@
-{ lib, buildGoPackage, fetchFromGitHub, go-bindata, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 let
-  goPackagePath = "k8s.io/kops";
-
   generic = { version, sha256, rev ? version, ... }@attrs:
     let attrs' = builtins.removeAttrs attrs [ "version" "sha256" "rev" ]; in
-    buildGoPackage
+    buildGoModule
       {
         pname = "kops";
         inherit version;
 
-        inherit goPackagePath;
-
         src = fetchFromGitHub {
           rev = rev;
           owner = "kubernetes";
@@ -18,24 +14,26 @@ let
           inherit sha256;
         };
 
-        nativeBuildInputs = [ go-bindata installShellFiles ];
+        vendorSha256 = null;
+
+        nativeBuildInputs = [ installShellFiles ];
+
         subPackages = [ "cmd/kops" ];
 
         ldflags = [
+          "-s"
+          "-w"
           "-X k8s.io/kops.Version=${version}"
           "-X k8s.io/kops.GitVersion=${version}"
         ];
 
-        preBuild = ''
-          (cd go/src/k8s.io/kops
-           go-bindata -o upup/models/bindata.go -pkg models -prefix upup/models/ upup/models/...)
-        '';
+        doCheck = false;
 
         postInstall = ''
-          for shell in bash zsh; do
-            $out/bin/kops completion $shell > kops.$shell
-            installShellCompletion kops.$shell
-          done
+          installShellCompletion --cmd kops \
+            --bash <($GOPATH/bin/kops completion bash) \
+            --fish <($GOPATH/bin/kops completion fish) \
+            --zsh <($GOPATH/bin/kops completion zsh)
         '';
 
         meta = with lib; {
@@ -49,15 +47,8 @@ let
       } // attrs';
 in
 rec {
-
   mkKops = generic;
 
-  kops_1_21 = mkKops rec {
-    version = "1.21.4";
-    sha256 = "sha256-f2xOVa3N/GH5IoI6H/QwDdKTeQoF/kEHX6lNytCZ9cs=";
-    rev = "v${version}";
-  };
-
   kops_1_22 = mkKops rec {
     version = "1.22.4";
     sha256 = "sha256-osU7yI77ZALGrAGuP8qAgv+ogDRn+BSVmcjPbi/WEKE=";
@@ -65,8 +56,15 @@ rec {
   };
 
   kops_1_23 = mkKops rec {
-    version = "1.23.0";
-    sha256 = "sha256-tiVNUaW0an6C8M9bxEX5pvB/W5IjZ/S24RdPikzm3bc=";
+    version = "1.23.2";
+    sha256 = "sha256-9GANjGRS9QaJw+CEeMv/f+rEu37QV2YxMvSRSH6+3PM=";
+    rev = "v${version}";
+  };
+
+  kops_1_24 = mkKops rec {
+    version = "1.24.1";
+    sha256 = "sha256-rePNCk76/j6ssvi+gSvxn4GqoW/QovTFCJ0rj2Dd+0A=";
     rev = "v${version}";
   };
+
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/krane/Gemfile.lock b/nixpkgs/pkgs/applications/networking/cluster/krane/Gemfile.lock
index 1c1b8dc7b715..b1eb6d8972a4 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/krane/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/networking/cluster/krane/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (7.0.1)
+    activesupport (7.0.3.1)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -9,72 +9,53 @@ GEM
     addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
     colorize (0.8.1)
-    concurrent-ruby (1.1.9)
+    concurrent-ruby (1.1.10)
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
     ejson (1.3.1)
-    faraday (1.9.3)
-      faraday-em_http (~> 1.0)
-      faraday-em_synchrony (~> 1.0)
-      faraday-excon (~> 1.1)
-      faraday-httpclient (~> 1.0)
-      faraday-multipart (~> 1.0)
-      faraday-net_http (~> 1.0)
-      faraday-net_http_persistent (~> 1.0)
-      faraday-patron (~> 1.0)
-      faraday-rack (~> 1.0)
-      faraday-retry (~> 1.0)
+    faraday (2.4.0)
+      faraday-net_http (~> 2.0)
       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-multipart (1.0.3)
-      multipart-post (>= 1.2, < 3)
-    faraday-net_http (1.0.1)
-    faraday-net_http_persistent (1.2.0)
-    faraday-patron (1.0.0)
-    faraday-rack (1.0.0)
-    faraday-retry (1.0.3)
+    faraday-net_http (2.1.0)
     ffi (1.15.5)
     ffi-compiler (1.0.1)
       ffi (>= 1.0.0)
       rake
-    googleauth (0.17.1)
-      faraday (>= 0.17.3, < 2.0)
+    googleauth (1.2.0)
+      faraday (>= 0.17.3, < 3.a)
       jwt (>= 1.4, < 3.0)
       memoist (~> 0.16)
       multi_json (~> 1.11)
       os (>= 0.9, < 2.0)
-      signet (~> 0.15)
+      signet (>= 0.16, < 2.a)
     http (4.4.1)
       addressable (~> 2.3)
       http-cookie (~> 1.0)
       http-form_data (~> 2.2)
       http-parser (~> 1.2.0)
     http-accept (1.7.0)
-    http-cookie (1.0.4)
+    http-cookie (1.0.5)
       domain_name (~> 0.5)
     http-form_data (2.3.0)
     http-parser (1.2.3)
       ffi-compiler (>= 1.0, < 2.0)
-    i18n (1.8.11)
+    i18n (1.12.0)
       concurrent-ruby (~> 1.0)
-    jsonpath (1.1.0)
+    jsonpath (1.1.2)
       multi_json
-    jwt (2.3.0)
-    krane (2.4.0)
+    jwt (2.4.1)
+    krane (2.4.9)
       activesupport (>= 5.0)
       colorize (~> 0.8)
       concurrent-ruby (~> 1.1)
       ejson (~> 1.0)
-      googleauth (~> 0.8)
+      googleauth (~> 1.2)
       jsonpath (~> 1.0)
       kubeclient (~> 4.9)
       oj (~> 3.0)
       statsd-instrument (>= 2.8, < 4)
       thor (>= 1.0, < 2.0)
-    kubeclient (4.9.2)
+    kubeclient (4.9.3)
       http (>= 3.0, < 5.0)
       jsonpath (~> 1.0)
       recursive-open-struct (~> 1.1, >= 1.1.1)
@@ -83,13 +64,12 @@ GEM
     mime-types (3.4.1)
       mime-types-data (~> 3.2015)
     mime-types-data (3.2022.0105)
-    minitest (5.15.0)
+    minitest (5.16.2)
     multi_json (1.15.0)
-    multipart-post (2.1.1)
     netrc (0.11.0)
-    oj (3.13.11)
+    oj (3.13.19)
     os (1.1.4)
-    public_suffix (4.0.6)
+    public_suffix (4.0.7)
     rake (13.0.6)
     recursive-open-struct (1.1.3)
     rest-client (2.1.0)
@@ -98,18 +78,18 @@ GEM
       mime-types (>= 1.16, < 4.0)
       netrc (~> 0.8)
     ruby2_keywords (0.0.5)
-    signet (0.16.0)
+    signet (0.17.0)
       addressable (~> 2.8)
-      faraday (>= 0.17.3, < 2.0)
+      faraday (>= 0.17.5, < 3.a)
       jwt (>= 1.5, < 3.0)
       multi_json (~> 1.10)
-    statsd-instrument (3.1.2)
+    statsd-instrument (3.3.0)
     thor (1.2.1)
-    tzinfo (2.0.4)
+    tzinfo (2.0.5)
       concurrent-ruby (~> 1.0)
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.8)
+    unf_ext (0.0.8.2)
 
 PLATFORMS
   ruby
@@ -118,4 +98,4 @@ DEPENDENCIES
   krane
 
 BUNDLED WITH
-   2.2.24
+   2.3.9
diff --git a/nixpkgs/pkgs/applications/networking/cluster/krane/gemset.nix b/nixpkgs/pkgs/applications/networking/cluster/krane/gemset.nix
index e14b6902fe26..a42ccf61abbf 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/krane/gemset.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/krane/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02lys9pnb99hsczs551iqzjn008i8k7c728xxba7acfi9rdw9pa6";
+      sha256 = "15lbq28v48i6q118p02m5zs9c63y1kv2h5krb3ss6q2vyaxhnfz7";
       type = "gem";
     };
-    version = "7.0.1";
+    version = "7.0.3.1";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -36,10 +36,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
+      sha256 = "0s4fpn3mqiizpmpy2a24k4v365pv75y50292r8ajrv4i1p5b2k14";
       type = "gem";
     };
-    version = "1.1.9";
+    version = "1.1.10";
   };
   domain_name = {
     dependencies = ["unf"];
@@ -63,116 +63,25 @@
     version = "1.3.1";
   };
   faraday = {
-    dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-multipart" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "faraday-retry" "ruby2_keywords"];
+    dependencies = ["faraday-net_http" "ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y32gj994ll3zlcqjmwp78r7s03iiwayij6fz2pjpkfywgvp71s6";
+      sha256 = "0i45f90mg367izgpxf6rrq9zbwwqba1pymwyja6q128vrj1pjajj";
       type = "gem";
     };
-    version = "1.9.3";
-  };
-  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-multipart = {
-    dependencies = ["multipart-post"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "03qfi9020ynf7hkdiaq01sd2mllvw7fg4qiin3pk028b4wv23j3j";
-      type = "gem";
-    };
-    version = "1.0.3";
+    version = "2.4.0";
   };
   faraday-net_http = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
-      type = "gem";
-    };
-    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";
+      sha256 = "1rfiwhggrqgwp00c82sk8v2h93l81nxgl0mf07pijxz1zjmbgswj";
       type = "gem";
     };
-    version = "1.0.0";
-  };
-  faraday-rack = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1h184g4vqql5jv9s9im6igy00jp6mrah2h14py6mpf9bkabfqq7g";
-      type = "gem";
-    };
-    version = "1.0.0";
-  };
-  faraday-retry = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "153i967yrwnswqgvnnajgwp981k9p50ys1h80yz3q94rygs59ldd";
-      type = "gem";
-    };
-    version = "1.0.3";
+    version = "2.1.0";
   };
   ffi = {
     groups = ["default"];
@@ -201,10 +110,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08l9qb2an7a60r3xjlkrfna8b8sfnj5c2hlfdygbnpvb1p7cpafl";
+      sha256 = "030bcdnffwndk8h270cmbndixb5h3ss860yifv6bkfys95s5fjpp";
       type = "gem";
     };
-    version = "0.17.1";
+    version = "1.2.0";
   };
   http = {
     dependencies = ["addressable" "http-cookie" "http-form_data" "http-parser"];
@@ -233,10 +142,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19370bc97gsy2j4hanij246hv1ddc85hw0xjb6sj7n1ykqdlx9l9";
+      sha256 = "13rilvlv8kwbzqfb644qp6hrbsj82cbqmnzcvqip1p6vqx36sxbk";
       type = "gem";
     };
-    version = "1.0.4";
+    version = "1.0.5";
   };
   http-form_data = {
     groups = ["default"];
@@ -265,10 +174,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
+      sha256 = "1vdcchz7jli1p0gnc669a7bj3q1fv09y9ppf0y3k0vb1jwdwrqwi";
       type = "gem";
     };
-    version = "1.8.11";
+    version = "1.12.0";
   };
   jsonpath = {
     dependencies = ["multi_json"];
@@ -276,20 +185,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12hjsr0plnx6v0bh1rhhimfi7z3rqm19xb47ybdkc1h9yhynnmdq";
+      sha256 = "0fkdjic88hh0accp0sbx5mcrr9yaqwampf5c3214212d4i614138";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.2";
   };
   jwt = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bg8pjx0mpvl10k6d8a6gc8dzlv2z5jkqcjbjcirnk032iriq838";
+      sha256 = "1lsk71qh5d7bm1qqrjvcwhp4h71ckkdbzxnw4xkd9cin8gjfvvr6";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.4.1";
   };
   krane = {
     dependencies = ["activesupport" "colorize" "concurrent-ruby" "ejson" "googleauth" "jsonpath" "kubeclient" "oj" "statsd-instrument" "thor"];
@@ -297,10 +206,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xnf0cw5i1i8l5nm1c9z02h184ad6hvy7fydr4bdzckjkyinamv9";
+      sha256 = "03sfcn5zfbagkyn30zih73i7pycdfzk0c5wr99d6qxl90c9cddc2";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.4.9";
   };
   kubeclient = {
     dependencies = ["http" "jsonpath" "recursive-open-struct" "rest-client"];
@@ -308,10 +217,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kld1w4706dfd6jx3snsi4h2pvqfazz1fni5al2ln60s3b8sybq4";
+      sha256 = "0ih04d0vgj91rl66iaqh8jmpskwz3g6mgajid0wlzi5skxqqxlym";
       type = "gem";
     };
-    version = "4.9.2";
+    version = "4.9.3";
   };
   memoist = {
     groups = ["default"];
@@ -349,10 +258,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06xf558gid4w8lwx13jwfdafsch9maz8m0g85wnfymqj63x5nbbd";
+      sha256 = "14a9ign0hj3z3j4cpfplj2djaskx3skzyx4fl3x53d7saxmhrgn1";
       type = "gem";
     };
-    version = "5.15.0";
+    version = "5.16.2";
   };
   multi_json = {
     groups = ["default"];
@@ -364,16 +273,6 @@
     };
     version = "1.15.0";
   };
-  multipart-post = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
-      type = "gem";
-    };
-    version = "2.1.1";
-  };
   netrc = {
     groups = ["default"];
     platforms = [];
@@ -389,10 +288,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bm8sdh7vz7ss3y21v961rd8nww23w5g4yhgvnd7jk331kdjyyzl";
+      sha256 = "1b10apyzm1qyph42438z9nx2ln5v9sg0686ws9gdrv5wh482fnmf";
       type = "gem";
     };
-    version = "3.13.11";
+    version = "3.13.19";
   };
   os = {
     groups = ["default"];
@@ -409,10 +308,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      sha256 = "1f3knlwfwm05sfbaihrxm4g772b79032q14c16q4b38z8bi63qcb";
       type = "gem";
     };
-    version = "4.0.6";
+    version = "4.0.7";
   };
   rake = {
     groups = ["default"];
@@ -461,20 +360,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cgmadrpgkpcklvvm2cga9mnrfqwqlydwpask1wx617h5ha6954k";
+      sha256 = "0100rclkhagf032rg3r0gf3f4znrvvvqrimy6hpa73f21n9k2a0x";
       type = "gem";
     };
-    version = "0.16.0";
+    version = "0.17.0";
   };
   statsd-instrument = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q98rkmgrzb59zmswhr6863z6dk042i90jbp9pflwa2vy2xkfj0y";
+      sha256 = "1555jgxr0az43l6nc8ngz5vmhqgjaznz4mkg5w5x0q6sa78i2pf3";
       type = "gem";
     };
-    version = "3.1.2";
+    version = "3.3.0";
   };
   thor = {
     groups = ["default"];
@@ -492,10 +391,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z";
+      sha256 = "0rx114mpqnw2k4h98vc0rs0x0bmf0img84yh8mkkjkal07cjydf5";
       type = "gem";
     };
-    version = "2.0.4";
+    version = "2.0.5";
   };
   unf = {
     dependencies = ["unf_ext"];
@@ -513,9 +412,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jmbimpnpjdzz8hlrppgl9spm99qh3qzbx0b81k3gkgwba8nk3yd";
+      sha256 = "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch";
       type = "gem";
     };
-    version = "0.0.8";
+    version = "0.0.8.2";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/krelay/default.nix b/nixpkgs/pkgs/applications/networking/cluster/krelay/default.nix
index f0a9912ab914..51c99b36e5a0 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/krelay/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/krelay/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "krelay";
-  version = "0.0.2";
+  version = "0.0.4";
 
   src = fetchFromGitHub {
     owner = "knight42";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-7P+pGiML/1aZEpYAWtAPEhrBAo8e8ATcemrH8tD73w8=";
+    sha256 = "sha256-NAIRzHWXD4z6lpwi+nVVoCIzfWdaMdrWwht24KgQh3c=";
   };
 
-  vendorSha256 = "sha256-PrL3GYP5K6ZaSAShwuDQA7WfOVJeQraxZ8jrtnajR9g=";
+  vendorSha256 = "sha256-1/zy5gz1wvinwzRjjhvrIHdjO/Jy/ragqM5QQaAajXI=";
 
   subPackages = [ "cmd/client" ];
 
@@ -27,5 +27,6 @@ buildGoModule rec {
     changelog = "https://github.com/knight42/krelay/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ivankovnatsky ];
+    mainProgram = "kubectl-relay";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ktunnel/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ktunnel/default.nix
new file mode 100644
index 000000000000..368532dbef4e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/ktunnel/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, buildGoModule, fetchFromGitHub }:
+let
+  version = "1.4.8";
+in
+buildGoModule {
+  pname = "ktunnel";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner  = "omrikiei";
+    repo   = "ktunnel";
+    rev    = "v${version}";
+    sha256 = "sha256-Iw7Z4iuKxmRrS51KP3k/ouXW4xssdNgxDDzNQR2Zygg=";
+  };
+
+  ldflags = [
+    "-s" "-w"
+  ];
+
+  vendorSha256 = "sha256-p9AYZWNO2oqLich0qzZYuAk55HqB6ttS66ORuNZ4rJg=";
+
+  preCheck = "export HOME=$(mktemp -d)";
+
+  # # TODO investigate why some tests are failing
+  doCheck = false;
+
+  installCheckPhase = ''
+    runHook preInstallCheck
+    "$out/bin/ktunnel" --version
+    runHook postInstallCheck
+  '';
+
+  meta = with lib; {
+    description = "A cli that exposes your local resources to kubernetes ";
+    homepage = "https://github.com/omrikiei/ktunnel";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ happysalada ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
index b9a282b5cd16..dbdc45355f45 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
@@ -1,23 +1,31 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, testers, kube-router }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "kube-router";
-  version = "1.2.2";
-
-  goPackagePath = "github.com/cloudnativelabs/kube-router";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "cloudnativelabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/VToLQexvRtcBU+k8WnGEcfLfxme/hgRnhU8723BEFU=";
+    sha256 = "sha256-WBnJPCZHtJWckoFvE8e+eAa2EC/RA7yOMlW+Cemw53Q=";
   };
 
+  vendorSha256 = "sha256-5co+288KZf/dx/jZ7xIGh6kxuW3DdbpAsrZgYob3nWk=";
+
+  CGO_ENABLED = 0;
+
   ldflags = [
-    "-X ${goPackagePath}/pkg/cmd.version=${version}"
-    "-X ${goPackagePath}/pkg/cmd.buildDate=Nix"
+    "-s"
+    "-w"
+    "-X github.com/cloudnativelabs/kube-router/pkg/version.Version=${version}"
+    "-X github.com/cloudnativelabs/kube-router/pkg/version.BuildDate=Nix"
   ];
 
+  passthru.tests.version = testers.testVersion {
+    package = kube-router;
+  };
+
   meta = with lib; {
     homepage = "https://www.kube-router.io/";
     description = "All-in-one router, firewall and service proxy for Kubernetes";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
index 0da63fae4215..395010dd4c9a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -1,27 +1,43 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.22.2-k3s2" }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+, k3sVersion ? null
+}:
 
+let
+  hasVPrefix = ver: (builtins.elemAt (lib.stringToCharacters ver) 0) == "v";
+  k3sVersionSet =
+    if k3sVersion != null then
+      if hasVPrefix k3sVersion then throw "k3sVersion should not have a v prefix" else true
+    else
+      false;
+in
 buildGoModule rec {
   pname = "kube3d";
-  version = "5.3.0";
+  version = "5.4.4";
 
   src = fetchFromGitHub {
-    owner = "rancher";
+    owner = "k3d-io";
     repo = "k3d";
     rev = "v${version}";
-    sha256 = "sha256-ZuUjk1wb7iRZX+OpjLJHp1T0WYNjCHU6DpYF4V/heVc=";
+    sha256 = "sha256-3J25Aj/otKDCWJ+YqAsoJogU2vckZMy7fsS8XR2EMgE=";
   };
-
   vendorSha256 = null;
 
   nativeBuildInputs = [ installShellFiles ];
 
-  excludedPackages = "\\(tools\\|docgen\\)";
+  excludedPackages = [ "tools" "docgen" ];
 
   ldflags =
-    let t = "github.com/rancher/k3d/v5/version"; in
-    [ "-s" "-w" "-X ${t}.Version=v${version}" "-X ${t}.K3sVersion=v${k3sVersion}" ];
+    let t = "github.com/k3d-io/k3d/v5/version"; in
+    [ "-s" "-w" "-X ${t}.Version=v${version}" ] ++ lib.optionals k3sVersionSet [ "-X ${t}.K3sVersion=v${k3sVersion}" ];
 
-  doCheck = false;
+   preCheck = ''
+    # skip test that uses networking
+    substituteInPlace version/version_test.go \
+      --replace "TestGetK3sVersion" "SkipGetK3sVersion"
+  '';
 
   postInstall = ''
     installShellCompletion --cmd k3d \
@@ -34,13 +50,13 @@ buildGoModule rec {
   installCheckPhase = ''
     runHook preInstallCheck
     $out/bin/k3d --help
-    $out/bin/k3d --version | grep -e "k3d version v${version}" -e "k3s version v${k3sVersion}"
+    $out/bin/k3d --version | grep -e "k3d version v${version}" ${lib.optionalString k3sVersionSet "-e \"k3s version v${k3sVersion}\""}
     runHook postInstallCheck
   '';
 
   meta = with lib; {
-    homepage = "https://github.com/rancher/k3d";
-    changelog = "https://github.com/rancher/k3d/blob/v${version}/CHANGELOG.md";
+    homepage = "https://github.com/k3d-io/k3d/";
+    changelog = "https://github.com/k3d-io/k3d/blob/v${version}/CHANGELOG.md";
     description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container - k3d";
     longDescription = ''
       k3s is the lightweight Kubernetes distribution by Rancher: rancher/k3s
@@ -51,5 +67,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ kuznero jlesquembre ngerstle jk ricochet ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "k3d";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix
index 1b1089f655cf..0aeb54948a3a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix
@@ -9,15 +9,15 @@
 
 buildGoModule rec {
   pname = "kubebuilder";
-  version = "3.3.0";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = "kubebuilder";
     rev = "v${version}";
-    sha256 = "sha256-xLeS0vfYuLEdzuou67ViduaBf62+Yqk+scaCCK+Xetk=";
+    sha256 = "sha256-WbFY1tBwq0DjJqM5ld7W9GkhPQDsGUQCwEe42XkJlfQ=";
   };
-  vendorSha256 = "sha256-zE/y9FAoUZBmWiUMWbc66CwkK0h7SEXzfZY3KkjtQ0A=";
+  vendorSha256 = "sha256-tz0SHAl9SwppjA8s0m4gJOh6rf8F+kRc2HnNMjO+blQ=";
 
   subPackages = ["cmd"];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
index 0169442e1bfe..4bf05a7e1e12 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "kubecfg";
-  version = "0.22.0";
+  version = "0.26.0";
 
   src = fetchFromGitHub {
-    owner = "bitnami";
+    owner = "kubecfg";
     repo = "kubecfg";
     rev = "v${version}";
-    sha256 = "sha256-8U/A4F4DboS46ftpuk5fQGT2Y0V+X0y0L3/o4x8qpnY=";
+    sha256 = "sha256-ekojX7gl8wC7GlHG3Y+dwry7jxjIm5dbS7cNN1xu4kY=";
   };
 
-  goPackagePath = "github.com/bitnami/kubecfg";
+  vendorSha256 = "sha256-dPdF3qTrYRbKUepgo6WVIVyGnaWxhQ0371fzXlBD8rE=";
 
   ldflags = [ "-s" "-w" "-X main.version=v${version}" ];
 
@@ -25,7 +25,7 @@ buildGoPackage rec {
 
   meta = {
     description = "A tool for managing Kubernetes resources as code";
-    homepage = "https://github.com/bitnami/kubecfg";
+    homepage = "https://github.com/kubecfg/kubecfg";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ benley ];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix
index 07d15feddda5..28db974980e8 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubeconform";
-  version = "0.4.13";
+  version = "0.4.14";
 
   src = fetchFromGitHub {
     owner = "yannh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-hKsGti04pUZj02uzah7ccImmg/qn31ceVfk11aTa9rk=";
+    sha256 = "sha256-iLZhd1e4i6omyGhOvRJ/VsHehpAPfPHnypXru5Ruv0o=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix
new file mode 100644
index 000000000000..031fa0c21b77
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix
@@ -0,0 +1,32 @@
+{ stdenvNoCC, lib, fetchFromGitHub, bash }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "kubectl-node-shell";
+  version = "1.6.0";
+
+  src = fetchFromGitHub {
+    owner = "kvaps";
+    repo = "kubectl-node-shell";
+    rev = "v${version}";
+    sha256 = "sha256-dAsNgvHgquXdb2HhLDYLk9IALneKkOxQxKb7BD90+1E=";
+  };
+
+  strictDeps = true;
+  buildInputs = [ bash ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m755 ./kubectl-node_shell -D $out/bin/kubectl-node_shell
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Exec into node via kubectl";
+    homepage = "https://github.com/kvaps/kubectl-node-shell";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jocelynthode ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-tree/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-tree/default.nix
index 5a69eb186ad7..0ee6c44ba072 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubectl-tree/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-tree/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubectl-tree";
-  version = "0.4.1";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "ahmetb";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5+INUr7ewSJrFwdhDgdrRu+xDB3FkWRjWbbVJO8cgkc=";
+    sha256 = "sha256-tE3ujknd7GDjTPIzZaL1Ynm6F9tJI/R1u2l0nCttjrI=";
   };
 
-  vendorSha256 = "sha256-/GLzIoFHXpTmY2601zA83tB2V2XS0rWy1bEDQ6P6D8k=";
+  vendorSha256 = "sha256-EQEsOJ/IZoR+9CjfFtQmBGeUXgmtACDvvpKCgnep+go=";
 
   meta = with lib; {
     description = "kubectl plugin to browse Kubernetes object hierarchies as a tree";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubedb-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubedb-cli/default.nix
index 8bfa519dee36..fd2402fe1dc6 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubedb-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubedb-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubedb-cli";
-  version = "0.25.0";
+  version = "0.28.0";
 
   src = fetchFromGitHub {
     owner = "kubedb";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-hRLju3nVLy0eDgqGeReHaF8p7oOlpo1T0IbLq4h/uwg=";
+    sha256 = "sha256-fSJ9IIuyOuKmpklw7uh1NKM3Pr5epJefYBJ3udeC5sE=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix
deleted file mode 100644
index 537fb611783e..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
-
-buildGoPackage rec {
-  pname = "kubeless";
-  version = "1.0.7";
-
-  src = fetchFromGitHub {
-    owner = "kubeless";
-    repo = "kubeless";
-    rev = "v${version}";
-    sha256 = "0x2hydywnnlh6arzz71p7gg9yzq5z2y2lppn1jszvkbgh11kkqfr";
-  };
-
-  goPackagePath = "github.com/kubeless/kubeless";
-
-  nativeBuildInputs = [ installShellFiles ];
-
-  subPackages = [ "cmd/kubeless" ];
-
-  ldflags = [
-    "-s" "-w" "-X github.com/kubeless/kubeless/pkg/version.Version=${version}"
-  ];
-
-  postInstall = ''
-    for shell in bash; do
-      $out/bin/kubeless completion $shell > kubeless.$shell
-      installShellCompletion kubeless.$shell
-    done
-  '';
-
-  meta = with lib; {
-    homepage = "https://kubeless.io";
-    description = "The Kubernetes Native Serverless Framework";
-    license = licenses.asl20;
-    maintainers = with maintainers; [];
-    platforms = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
index 953a202170a5..7f8b3b443430 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "kubelogin";
-  version = "1.25.1";
+  version = "1.25.2";
 
   src = fetchFromGitHub {
     owner = "int128";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-BKJ6dZMGW+Md+YUEEgWtPdfiFiOP5Nfb+awx8FXB+bM=";
+    sha256 = "sha256-d3iiUmNEPKylYSFq9cSfgJuQYLPhBJavGV8tOao0l4s=";
   };
 
   subPackages = ["."];
 
-  vendorSha256 = "sha256-mu4NHeYZBM4C5qpj2wRTLsRNLDvZGNkppKGDw621mp4=";
+  vendorSha256 = "sha256-XxVXhNWZOyvrdh2yPQogtH62h7d8NbsNhhrwGuqcLJs=";
 
   # Rename the binary instead of symlinking to avoid conflict with the
   # Azure version of kubelogin
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeone/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeone/default.nix
index e08a3b46d156..7851496558f6 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeone/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeone/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "kubeone";
-  version = "1.4.0";
+  version = "1.4.7";
 
   src = fetchFromGitHub {
     owner = "kubermatic";
     repo = "kubeone";
     rev = "v${version}";
-    sha256 = "sha256-uij5daVHKIfxx+8UTmU/HKSbf/RTRFuO8mCQdsC80qI=";
+    sha256 = "sha256-SgberbjqIf+5bfE+gM7+lxl25aQVs2tJBNrPgkzowJ4=";
   };
 
   vendorSha256 = "sha256-kI5i1us3Ooh603HOz9Y+HlfPUy/1J8z89/jvKEenpLw=";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubergrunt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubergrunt/default.nix
index 32130ee96d28..d99a8592d198 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubergrunt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubergrunt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubergrunt";
-  version = "0.8.0";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = "kubergrunt";
     rev = "v${version}";
-    sha256 = "sha256-K94cGU+cFHOrAGXjHQFFFJYhZi9zNfdlGy5eb2DkcV8=";
+    sha256 = "sha256-2uMPj4/jluBW0N2+AyDb7QmuVwlCavfQZ3i2fg32m8o=";
   };
 
-  vendorSha256 = "sha256-95rteSEMOBQnAw0QKuj5Yyi8n3xXGl0Tm97WiyTGxVw=";
+  vendorSha256 = "sha256-9hWX6INN5HWXyeFQRjkqr+BsGv56lInVYacvT6Imahw=";
 
   # Disable tests since it requires network access and relies on the
   # presence of certain AWS infrastructure
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
index e4203f0028ad..6b006a507b82 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -1,11 +1,11 @@
-{ stdenv
-, lib
+{ lib
+, buildGoModule
 , fetchFromGitHub
 , which
-, go
 , makeWrapper
 , rsync
 , installShellFiles
+, runtimeShell
 , kubectl
 , nixosTests
 
@@ -19,42 +19,38 @@
   ]
 }:
 
-stdenv.mkDerivation rec {
+buildGoModule rec {
   pname = "kubernetes";
-  version = "1.23.5";
+  version = "1.23.10";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "kubernetes";
     rev = "v${version}";
-    sha256 = "sha256-LhJ3gThcsWnawSOmHSzWOG8tfODIPo4dJTMeLKmvMdM=";
+    sha256 = "sha256-ujSy6akbk4SvMIQdBJkNMwaRNEfFKJmVrN3lNtFudkA=";
   };
 
-  nativeBuildInputs = [ makeWrapper which go rsync installShellFiles ];
+  vendorSha256 = null;
 
-  outputs = [ "out" "man" "pause" ];
-
-  patches = [ ./fixup-addonmanager-lib-path.patch ];
+  doCheck = false;
 
-  postPatch = ''
-    # go env breaks the sandbox
-    substituteInPlace "hack/lib/golang.sh" \
-      --replace 'echo "$(go env GOHOSTOS)/$(go env GOHOSTARCH)"' 'echo "${go.GOOS}/${go.GOARCH}"'
+  nativeBuildInputs = [ makeWrapper which rsync installShellFiles ];
 
-    substituteInPlace "hack/update-generated-docs.sh" --replace "make" "make SHELL=${stdenv.shell}"
-    # hack/update-munge-docs.sh only performs some tests on the documentation.
-    # They broke building k8s; disabled for now.
-    echo "true" > "hack/update-munge-docs.sh"
+  outputs = [ "out" "man" "pause" ];
 
-    patchShebangs ./hack
-  '';
+  patches = [ ./fixup-addonmanager-lib-path.patch ];
 
   WHAT = lib.concatStringsSep " " ([
     "cmd/kubeadm"
   ] ++ components);
 
-  postBuild = ''
+  buildPhase = ''
+    runHook preBuild
+    substituteInPlace "hack/update-generated-docs.sh" --replace "make" "make SHELL=${runtimeShell}"
+    patchShebangs ./hack ./cluster/addons/addon-manager
+    make "SHELL=${runtimeShell}" "WHAT=$WHAT"
     ./hack/update-generated-docs.sh
+    runHook postBuild
   '';
 
   installPhase = ''
@@ -77,7 +73,6 @@ stdenv.mkDerivation rec {
       --subst-var out
 
     chmod +x $out/bin/kube-addons
-    patchShebangs $out/bin/kube-addons
     wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl"
 
     cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons-lib.sh
@@ -88,10 +83,6 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  disallowedReferences = [ go ];
-
-  GOFLAGS = [ "-trimpath" ];
-
   meta = with lib; {
     description = "Production-Grade Container Scheduling and Management";
     license = licenses.asl20;
@@ -100,5 +91,5 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
   };
 
-  passthru.tests = nixosTests.kubernetes;
+  passthru.tests = nixosTests.kubernetes // { inherit kubectl; };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/kubectl.nix b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/kubectl.nix
index b1c15458543d..1176f0f28f68 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/kubectl.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/kubectl.nix
@@ -1,30 +1,25 @@
-{ lib, stdenv, kubernetes }:
+{ lib, kubernetes }:
 
-stdenv.mkDerivation rec {
+kubernetes.overrideAttrs (_: rec {
   pname = "kubectl";
 
-  inherit (kubernetes)
-    disallowedReferences
-    GOFLAGS
-    nativeBuildInputs
-    postBuild
-    postPatch
-    src
-    version
-    ;
+  outputs = [ "out" "man" "convert" ];
 
-  outputs = [ "out" "man" ];
-
-  WHAT = "cmd/kubectl";
+  WHAT = lib.concatStringsSep " " [
+    "cmd/kubectl"
+    "cmd/kubectl-convert"
+  ];
 
   installPhase = ''
     runHook preInstall
     install -D _output/local/go/bin/kubectl -t $out/bin
+    install -D _output/local/go/bin/kubectl-convert -t $convert/bin
 
     installManPage docs/man/man1/kubectl*
 
     installShellCompletion --cmd kubectl \
       --bash <($out/bin/kubectl completion bash) \
+      --fish <($out/bin/kubectl completion fish) \
       --zsh <($out/bin/kubectl completion zsh)
     runHook postInstall
   '';
@@ -34,4 +29,4 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/kubernetes/kubectl";
     platforms = lib.platforms.unix;
   };
-}
+})
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
index b42a98405d2d..137ae8287afc 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -2,18 +2,16 @@
 
 buildGoModule rec {
   pname = "kubeseal";
-  version = "0.17.0";
+  version = "0.18.1";
 
   src = fetchFromGitHub {
     owner = "bitnami-labs";
     repo = "sealed-secrets";
     rev = "v${version}";
-    sha256 = "sha256-7u7lsMeeZOUGn8eb8sjV9Td+XNEUPDvbSaITdp1JTf4=";
+    sha256 = "sha256-mqkkPqun0m4y/qFUWVTRCtqZd3j6jDw6Ua8hRQ41G38=";
   };
 
-  vendorSha256 = null;
-
-  doCheck = false;
+  vendorSha256 = "sha256-geelFhThdcqQ0iBzmYb5SlxPatFYDmN042O8YY5AhS0=";
 
   subPackages = [ "cmd/kubeseal" ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kuma/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kuma/default.nix
index b6d1ac477596..6986af1d3d5b 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kuma/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kuma/default.nix
@@ -16,15 +16,15 @@
 
 buildGoModule rec {
   inherit pname ;
-  version = "1.4.1";
+  version = "1.7.1";
   tags = lib.optionals enableGateway ["gateway"];
-  vendorSha256 = "sha256-9v+ti/JTAF4TLZ0uvzFvrB0YBnRD2E0Q6K2yicEX3Zw=";
+  vendorSha256 = "sha256-0YmWmGuzyES7BoHKWxzF2K1rDW7PO2DRdNmY3eJkUAM=";
 
   src = fetchFromGitHub {
     owner = "kumahq";
     repo = "kuma";
     rev = version;
-    sha256 = "sha256-zx4rohkv6jm2abtd0I/uQMITkCuhY3StHMKoaTxce0Q=";
+    sha256 = "sha256-U8fWDXJ0ztod6r0qz63jbgYA06ItxA76BjSliniYnIQ=";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix
index 64f13ad6b60f..13a16c6c50c2 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/kudobuilder/kuttl";
     license = licenses.asl20;
     maintainers = with maintainers; [ diegolelis ];
+    mainProgram = "kubectl-kuttl";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kyverno/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kyverno/default.nix
new file mode 100644
index 000000000000..81abb6f50203
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kyverno/default.nix
@@ -0,0 +1,49 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, kyverno }:
+
+buildGoModule rec {
+  pname = "kyverno";
+  version = "1.7.2";
+
+  src = fetchFromGitHub {
+    owner = "kyverno";
+    repo = "kyverno";
+    rev = "v${version}";
+    sha256 = "sha256-Lx+ae0Eb8iVKurXpsb3NPTFrh59vxxf4fA18o1JTIv0=";
+  };
+
+  ldflags = [
+    "-s" "-w"
+    "-X github.com/kyverno/kyverno/pkg/version.BuildVersion=v${version}"
+    "-X github.com/kyverno/kyverno/pkg/version.BuildHash=${version}"
+    "-X github.com/kyverno/kyverno/pkg/version.BuildTime=1970-01-01_00:00:00"
+  ];
+
+  vendorSha256 = "sha256-bpuEEoWobFPVsNZKKuOKTQGvV+/NAgaM4M63bv5y0Rk=";
+
+  subPackages = [ "cmd/cli/kubectl-kyverno" ];
+
+  nativeBuildInputs = [ installShellFiles ];
+  postInstall = ''
+    # we have no integration between krew and kubectl
+    # so better rename binary to kyverno and use as a standalone
+    mv $out/bin/kubectl-kyverno $out/bin/kyverno
+    installShellCompletion --cmd kyverno \
+      --bash <($out/bin/kyverno completion bash) \
+      --zsh <($out/bin/kyverno completion zsh) \
+      --fish <($out/bin/kyverno completion fish)
+  '';
+
+  passthru.tests.version = testers.testVersion {
+    package = kyverno;
+    command = "kyverno version";
+    inherit version;
+  };
+
+  meta = with lib; {
+    description = "Kubernetes Native Policy Management";
+    homepage = "https://kyverno.io/";
+    changelog = "https://github.com/kyverno/kyverno/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bryanasdev000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix b/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix
index 66c507312c26..ef70e2832800 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix
@@ -1,14 +1,14 @@
-{ lib, fetchurl, appimageTools, wrapGAppsHook, gsettings-desktop-schemas, gtk3 }:
+{ lib, fetchurl, appimageTools, wrapGAppsHook }:
 
 let
   pname = "lens";
-  version = "5.3.4";
-  build = "${version}-latest.20220120.1";
+  version = "5.5.3";
+  build = "${version}-latest.20220602.2";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://api.k8slens.dev/binaries/Lens-${build}.x86_64.AppImage";
-    sha256 = "sha256-9vRLQFSocVkHAfgwdKSPhSAO4G/v/ANd0WQmilcZiVw=";
+    sha256 = "sha256-lwiwyXoO+7KgDnQ2Ly0QK0oEVHR73nsMZMGOd2j48dg=";
     name = "${pname}.AppImage";
   };
 
@@ -20,10 +20,6 @@ in
 appimageTools.wrapType2 {
   inherit name src;
 
-  profile = ''
-    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
-  '';
-
   extraInstallCommands =
     ''
       mv $out/bin/${name} $out/bin/${pname}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/levant/default.nix b/nixpkgs/pkgs/applications/networking/cluster/levant/default.nix
index 7e9ca9a84a2b..afee16bf8f8f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/levant/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/levant/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "levant";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "levant";
     rev = "v${version}";
-    sha256 = "9M7a4i+DPKb1H9jOEVAvhvYxGwtj3dK/40n4GSy4Rqo=";
+    sha256 = "sha256-ujybD4nSHC/w2Pfu43eSO6rNJjXFAvc81T05icWFvbs=";
   };
 
-  vendorSha256 = "sha256-m3WSk5RvCmeIgX6SwHpWHvokgs71cY6XCKtHJ4jnonc=";
+  vendorSha256 = "sha256-pKxj0qz7adSuPpiXu4+2KBO3JZu8zZ8ycPF5LosF4T8=";
 
   # The tests try to connect to a Nomad cluster.
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix
index f0c9ada6ca80..fed35f12bedc 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix
@@ -2,7 +2,7 @@
 
 (callPackage ./generic.nix { }) {
   channel = "stable";
-  version = "2.11.1";
-  sha256 = "09zwxcaqn537ls737js7rcsqarapw5k25gv41d844k73yvxm882c";
-  vendorSha256 = "sha256-RayboJdjkmCiUsUBab9ntIH+koOCgp3gmVqXZEUWK88=";
+  version = "2.11.2";
+  sha256 = "sha256-6FlOHnOmqZ2jqx9qFMPA5jkxBaNqzeCwsepwXR1Imss=";
+  vendorSha256 = "sha256-wM5qIjabg9ICJcLi8QV9P4G4E7Rn3ctVCqdm2GO8RyU=";
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/linkerd/edge.nix b/nixpkgs/pkgs/applications/networking/cluster/linkerd/edge.nix
index 74b5578d0239..4d3c30e33375 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/linkerd/edge.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/linkerd/edge.nix
@@ -2,7 +2,7 @@
 
 (callPackage ./generic.nix { }) {
   channel = "edge";
-  version = "22.2.4";
-  sha256 = "1s53zlb7f0xp2vqa5fnsjdhjq203bsksrmdbrxkkm1yi3nc3p369";
-  vendorSha256 = "sha256-cN19kKa4Ieweta95/4bKlAYn/Bq8j27H408za3OoJoI=";
+  version = "22.6.1";
+  sha256 = "sha256-YM6d2bWcjoNMEbgXVR79tcklTRqAhzm6SzJU2k+7BNU=";
+  vendorSha256 = "sha256-i+AbrzN9d9CGZcGj/D4xnYlamp0iOlq2xcax14/GqEE=";
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
index d4a9ba4af7d3..605160e3d5ed 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
@@ -7,13 +7,14 @@
 , which
 , libvirt
 , vmnet
+, makeWrapper
 }:
 
 buildGoModule rec {
   pname = "minikube";
-  version = "1.25.2";
+  version = "1.26.1";
 
-  vendorSha256 = "sha256-8QqRIWry15/xwBxEOexMEq57ol8riy+kW8WrQqr53Q8=";
+  vendorSha256 = "sha256-aw2B5wdhEQiTDp/BpJdXzY3XBm3eXlSQt83j4RHhMg0=";
 
   doCheck = false;
 
@@ -21,10 +22,10 @@ buildGoModule rec {
     owner = "kubernetes";
     repo = "minikube";
     rev = "v${version}";
-    sha256 = "sha256-WIk4ibq7jcqao0Qiz3mz9yfHdxTUlvtPuEh4gApSDBg=";
+    sha256 = "sha256-08q/IdQEq1/KaIBN6ss8r1KbjSjZnhOW/BeaJ8BuYZM=";
   };
 
-  nativeBuildInputs = [ installShellFiles pkg-config which ];
+  nativeBuildInputs = [ installShellFiles pkg-config which makeWrapper ];
 
   buildInputs = if stdenv.isDarwin then [ vmnet ] else if stdenv.isLinux then [ libvirt ] else null;
 
@@ -35,9 +36,8 @@ buildGoModule rec {
   installPhase = ''
     install out/minikube -Dt $out/bin
 
+    wrapProgram $out/bin/minikube --set MINIKUBE_WANTUPDATENOTIFICATION false
     export HOME=$PWD
-    export MINIKUBE_WANTUPDATENOTIFICATION=false
-    export MINIKUBE_WANTKUBECTLDOWNLOADMSG=false
 
     for shell in bash zsh fish; do
       $out/bin/minikube completion $shell > minikube.$shell
diff --git a/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix b/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix
index 488d0c4327a2..bee4d4785293 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix
@@ -59,7 +59,7 @@ in buildGoPackage rec {
       or develop with it, day-to-day, on your local host.
     '';
     homepage = "https://github.com/minishift/minishift";
-    maintainers = with maintainers; [ fpletz vdemeester ];
+    maintainers = with maintainers; [ vdemeester ];
     platforms = platforms.linux;
     license = licenses.asl20;
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
index 936e76823489..2bba4816d8f3 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "nerdctl";
-  version = "0.18.0";
+  version = "0.22.2";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-gkfy/tKzh6EO+nyjuiU3InSErKvGcJp/X7oqYk0Msr0=";
+    sha256 = "sha256-D5NnCJrQQ2Iam9A5rxuiT6XOf00x/LOiwEC8SjSZdt0=";
   };
 
-  vendorSha256 = "sha256-hjhZYNpqt9yFNrDVpFlguESUAAqU+AhpUQTCvyMadPk=";
+  vendorSha256 = "sha256-5QcltDNvhfyzUsFNbSjVnh0OMTxj+JU0VnDADSWTD48=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix
index 1f08aad53e4e..58229718aa58 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix
@@ -10,6 +10,7 @@ let
   interpreter = (
     poetry2nix.mkPoetryPackages {
       projectDir = ./.;
+      python = pkgs.python39;
       overrides = [
         poetry2nix.defaultPoetryOverrides
         (import ./poetry-git-overlay.nix { inherit pkgs; })
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix b/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix
index 27c496905e5e..c388f6a9e268 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix
@@ -65,8 +65,8 @@ self: super: {
     _: {
       src = pkgs.fetchgit {
         url = "https://github.com/NixOS/nixops-hetzner";
-        rev = "84f4eebb89b049c4f86aa779349397c3dedc0c43";
-        sha256 = "0qx8v775jhlbqyhid8wkzy3xcha08kkzb42h6ayszwq4alyfx0b0";
+        rev = "bc7a68070c7371468bcc8bf6e36baebc6bd2da35";
+        sha256 = "0kmzv5dzh828yh5jwjs5klfslx3lklrqvpvbh29b398m5r9bbqkn";
       };
     }
   );
@@ -74,9 +74,9 @@ self: super: {
   nixops-virtd = super.nixops-virtd.overridePythonAttrs (
     _: {
       src = pkgs.fetchgit {
-        url = "https://github.com/lovesegfault/nixops-libvirtd.git";
-        rev = "84d1688ee06afff136738b3eaf51f9cc3c08c350";
-        sha256 = "1f3q9bwmdjr3qac7fh9b9hgw7l43hmiixbsmqm2zrnhb7xcyfmfg";
+        url = "https://github.com/nix-community/nixops-libvirtd.git";
+        rev = "bc3cf1c5c774a80e05991ca040baa2b23e3ecd51";
+        sha256 = "06bcxchjgmgfvhg9dzlcdnr4ak0h1rdpfpgbix3z2via2gad8bvj";
       };
     }
   );
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry.lock b/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry.lock
index fa17d4286b34..7b287734c5e7 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry.lock
+++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry.lock
@@ -1,14 +1,6 @@
 [[package]]
-name = "alabaster"
-version = "0.7.12"
-description = "A configurable sidebar-enabled Sphinx theme"
-category = "dev"
-optional = false
-python-versions = "*"
-
-[[package]]
 name = "apache-libcloud"
-version = "3.5.0"
+version = "3.6.0"
 description = "A standard Python library that abstracts away differences among multiple cloud provider APIs. For more information and documentation, please see https://libcloud.apache.org"
 category = "main"
 optional = false
@@ -18,17 +10,6 @@ python-versions = ">=3.6, <4"
 requests = ">=2.26.0"
 
 [[package]]
-name = "babel"
-version = "2.9.1"
-description = "Internationalization utilities"
-category = "dev"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-
-[package.dependencies]
-pytz = ">=2015.7"
-
-[[package]]
 name = "boto"
 version = "2.49.0"
 description = "Amazon Web Services Library"
@@ -38,43 +19,43 @@ python-versions = "*"
 
 [[package]]
 name = "boto3"
-version = "1.21.18"
+version = "1.24.16"
 description = "The AWS SDK for Python"
 category = "main"
 optional = false
-python-versions = ">= 3.6"
+python-versions = ">= 3.7"
 
 [package.dependencies]
-botocore = ">=1.24.18,<1.25.0"
-jmespath = ">=0.7.1,<1.0.0"
-s3transfer = ">=0.5.0,<0.6.0"
+botocore = ">=1.27.16,<1.28.0"
+jmespath = ">=0.7.1,<2.0.0"
+s3transfer = ">=0.6.0,<0.7.0"
 
 [package.extras]
 crt = ["botocore[crt] (>=1.21.0,<2.0a0)"]
 
 [[package]]
 name = "botocore"
-version = "1.24.18"
+version = "1.27.16"
 description = "Low-level, data-driven core of boto 3."
 category = "main"
 optional = false
-python-versions = ">= 3.6"
+python-versions = ">= 3.7"
 
 [package.dependencies]
-jmespath = ">=0.7.1,<1.0.0"
+jmespath = ">=0.7.1,<2.0.0"
 python-dateutil = ">=2.1,<3.0.0"
 urllib3 = ">=1.25.4,<1.27"
 
 [package.extras]
-crt = ["awscrt (==0.12.5)"]
+crt = ["awscrt (==0.13.8)"]
 
 [[package]]
 name = "certifi"
-version = "2021.10.8"
+version = "2022.6.15"
 description = "Python package for providing Mozilla's CA Bundle."
 category = "main"
 optional = false
-python-versions = "*"
+python-versions = ">=3.6"
 
 [[package]]
 name = "cffi"
@@ -99,14 +80,6 @@ python-versions = ">=3.5.0"
 unicode_backport = ["unicodedata2"]
 
 [[package]]
-name = "colorama"
-version = "0.4.4"
-description = "Cross-platform colored terminal text."
-category = "dev"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
-
-[[package]]
 name = "cryptography"
 version = "3.4.8"
 description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
@@ -126,14 +99,6 @@ ssh = ["bcrypt (>=3.1.5)"]
 test = ["pytest (>=6.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
 
 [[package]]
-name = "docutils"
-version = "0.16"
-description = "Docutils -- Python Documentation Utilities"
-category = "dev"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
-
-[[package]]
 name = "hetzner"
 version = "0.8.3"
 description = "High level access to the Hetzner robot"
@@ -150,38 +115,16 @@ optional = false
 python-versions = ">=3.5"
 
 [[package]]
-name = "imagesize"
-version = "1.3.0"
-description = "Getting image size from png/jpeg/jpeg2000/gif file"
-category = "dev"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-
-[[package]]
-name = "jinja2"
-version = "3.0.3"
-description = "A very fast and expressive template engine."
-category = "dev"
-optional = false
-python-versions = ">=3.6"
-
-[package.dependencies]
-MarkupSafe = ">=2.0"
-
-[package.extras]
-i18n = ["Babel (>=2.7)"]
-
-[[package]]
 name = "jmespath"
-version = "0.10.0"
+version = "1.0.1"
 description = "JSON Matching Expressions"
 category = "main"
 optional = false
-python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+python-versions = ">=3.7"
 
 [[package]]
 name = "jsonpickle"
-version = "2.1.0"
+version = "2.2.0"
 description = "Python library for serializing any arbitrary object graph into JSON"
 category = "main"
 optional = false
@@ -189,26 +132,18 @@ python-versions = ">=2.7"
 
 [package.extras]
 docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
-testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black-multipy", "pytest-cov", "ecdsa", "feedparser", "numpy", "pandas", "pymongo", "scikit-learn", "sqlalchemy", "enum34", "jsonlib"]
-"testing.libs" = ["demjson", "simplejson", "ujson", "yajl"]
+testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-black-multipy", "pytest-cov", "ecdsa", "feedparser", "numpy", "pandas", "pymongo", "scikit-learn", "sqlalchemy", "pytest-flake8 (<1.1.0)", "enum34", "jsonlib", "pytest-flake8 (>=1.1.1)"]
+"testing.libs" = ["simplejson", "ujson", "yajl"]
 
 [[package]]
 name = "libvirt-python"
-version = "8.1.0"
+version = "8.4.0"
 description = "The libvirt virtualization API python binding"
 category = "main"
 optional = false
 python-versions = "*"
 
 [[package]]
-name = "markupsafe"
-version = "2.1.0"
-description = "Safely add untrusted strings to HTML/XML markup."
-category = "dev"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
 name = "nixops"
 version = "2.0.0"
 description = "NixOS cloud provisioning and deployment tool"
@@ -346,7 +281,7 @@ typing-extensions = "^3.7.4"
 type = "git"
 url = "https://github.com/NixOS/nixops-hetzner"
 reference = "master"
-resolved_reference = "84f4eebb89b049c4f86aa779349397c3dedc0c43"
+resolved_reference = "bc7a68070c7371468bcc8bf6e36baebc6bd2da35"
 
 [[package]]
 name = "nixops-virtd"
@@ -363,9 +298,9 @@ nixops = {git = "https://github.com/NixOS/nixops.git", branch = "master"}
 
 [package.source]
 type = "git"
-url = "https://github.com/lovesegfault/nixops-libvirtd.git"
-reference = "update-libvirt"
-resolved_reference = "84d1688ee06afff136738b3eaf51f9cc3c08c350"
+url = "https://github.com/nix-community/nixops-libvirtd.git"
+reference = "master"
+resolved_reference = "bc3cf1c5c774a80e05991ca040baa2b23e3ecd51"
 
 [[package]]
 name = "nixopsvbox"
@@ -404,17 +339,6 @@ reference = "master"
 resolved_reference = "81a1c2ef424dcf596a97b2e46a58ca73a1dd1ff8"
 
 [[package]]
-name = "packaging"
-version = "21.3"
-description = "Core utilities for Python packages"
-category = "dev"
-optional = false
-python-versions = ">=3.6"
-
-[package.dependencies]
-pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
-
-[[package]]
 name = "pluggy"
 version = "0.13.1"
 description = "plugin and hook calling mechanisms for python"
@@ -442,25 +366,6 @@ optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
 [[package]]
-name = "pygments"
-version = "2.11.2"
-description = "Pygments is a syntax highlighting package written in Python."
-category = "dev"
-optional = false
-python-versions = ">=3.5"
-
-[[package]]
-name = "pyparsing"
-version = "3.0.7"
-description = "Python parsing module"
-category = "dev"
-optional = false
-python-versions = ">=3.6"
-
-[package.extras]
-diagrams = ["jinja2", "railroad-diagrams"]
-
-[[package]]
 name = "python-dateutil"
 version = "2.8.2"
 description = "Extensions to the standard Python datetime module"
@@ -484,38 +389,30 @@ jsonpickle = "*"
 requests = "*"
 
 [[package]]
-name = "pytz"
-version = "2021.3"
-description = "World timezone definitions, modern and historical"
-category = "dev"
-optional = false
-python-versions = "*"
-
-[[package]]
 name = "requests"
-version = "2.27.1"
+version = "2.28.0"
 description = "Python HTTP for Humans."
 category = "main"
 optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
+python-versions = ">=3.7, <4"
 
 [package.dependencies]
 certifi = ">=2017.4.17"
-charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""}
-idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""}
+charset-normalizer = ">=2.0.0,<2.1.0"
+idna = ">=2.5,<4"
 urllib3 = ">=1.21.1,<1.27"
 
 [package.extras]
-socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
+socks = ["PySocks (>=1.5.6,!=1.5.7)"]
 use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"]
 
 [[package]]
 name = "s3transfer"
-version = "0.5.2"
+version = "0.6.0"
 description = "An Amazon S3 Transfer Manager"
 category = "main"
 optional = false
-python-versions = ">= 3.6"
+python-versions = ">= 3.7"
 
 [package.dependencies]
 botocore = ">=1.12.36,<2.0a.0"
@@ -532,116 +429,6 @@ optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
 
 [[package]]
-name = "snowballstemmer"
-version = "2.2.0"
-description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms."
-category = "dev"
-optional = false
-python-versions = "*"
-
-[[package]]
-name = "sphinx"
-version = "3.5.4"
-description = "Python documentation generator"
-category = "dev"
-optional = false
-python-versions = ">=3.5"
-
-[package.dependencies]
-alabaster = ">=0.7,<0.8"
-babel = ">=1.3"
-colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""}
-docutils = ">=0.12,<0.17"
-imagesize = "*"
-Jinja2 = ">=2.3"
-packaging = "*"
-Pygments = ">=2.0"
-requests = ">=2.5.0"
-snowballstemmer = ">=1.1"
-sphinxcontrib-applehelp = "*"
-sphinxcontrib-devhelp = "*"
-sphinxcontrib-htmlhelp = "*"
-sphinxcontrib-jsmath = "*"
-sphinxcontrib-qthelp = "*"
-sphinxcontrib-serializinghtml = "*"
-
-[package.extras]
-docs = ["sphinxcontrib-websupport"]
-lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.800)", "docutils-stubs"]
-test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"]
-
-[[package]]
-name = "sphinxcontrib-applehelp"
-version = "1.0.2"
-description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books"
-category = "dev"
-optional = false
-python-versions = ">=3.5"
-
-[package.extras]
-lint = ["flake8", "mypy", "docutils-stubs"]
-test = ["pytest"]
-
-[[package]]
-name = "sphinxcontrib-devhelp"
-version = "1.0.2"
-description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document."
-category = "dev"
-optional = false
-python-versions = ">=3.5"
-
-[package.extras]
-lint = ["flake8", "mypy", "docutils-stubs"]
-test = ["pytest"]
-
-[[package]]
-name = "sphinxcontrib-htmlhelp"
-version = "2.0.0"
-description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files"
-category = "dev"
-optional = false
-python-versions = ">=3.6"
-
-[package.extras]
-lint = ["flake8", "mypy", "docutils-stubs"]
-test = ["pytest", "html5lib"]
-
-[[package]]
-name = "sphinxcontrib-jsmath"
-version = "1.0.1"
-description = "A sphinx extension which renders display math in HTML via JavaScript"
-category = "dev"
-optional = false
-python-versions = ">=3.5"
-
-[package.extras]
-test = ["pytest", "flake8", "mypy"]
-
-[[package]]
-name = "sphinxcontrib-qthelp"
-version = "1.0.3"
-description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document."
-category = "dev"
-optional = false
-python-versions = ">=3.5"
-
-[package.extras]
-lint = ["flake8", "mypy", "docutils-stubs"]
-test = ["pytest"]
-
-[[package]]
-name = "sphinxcontrib-serializinghtml"
-version = "1.1.5"
-description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)."
-category = "dev"
-optional = false
-python-versions = ">=3.5"
-
-[package.extras]
-lint = ["flake8", "mypy", "docutils-stubs"]
-test = ["pytest"]
-
-[[package]]
 name = "typeguard"
 version = "2.13.3"
 description = "Run-time type checker for Python"
@@ -663,50 +450,42 @@ python-versions = "*"
 
 [[package]]
 name = "urllib3"
-version = "1.26.8"
+version = "1.26.9"
 description = "HTTP library with thread-safe connection pooling, file post, and more."
 category = "main"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
 
 [package.extras]
-brotli = ["brotlipy (>=0.6.0)"]
+brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"]
 secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
 socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
 
 [metadata]
 lock-version = "1.1"
-python-versions = "^3.8"
-content-hash = "63b68a38ca6f7b9189d2403c2c6d1ec7af29cc1ccdeab2fbc970b5dbd766c3c6"
+python-versions = "^3.9"
+content-hash = "781bb4378f4491b427372322c3ec71131ed7a28e0a166e0bc43969b016b5d926"
 
 [metadata.files]
-alabaster = [
-    {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"},
-    {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"},
-]
 apache-libcloud = [
-    {file = "apache-libcloud-3.5.0.tar.gz", hash = "sha256:073f10492976faa383a22b13b82c249827cfe90a083c71620e8316e815a6db3b"},
-    {file = "apache_libcloud-3.5.0-py2.py3-none-any.whl", hash = "sha256:3789f4f2464fe18e317cdd3a03eff363268e096bc47f1f5770ee82d6ffe28c40"},
-]
-babel = [
-    {file = "Babel-2.9.1-py2.py3-none-any.whl", hash = "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9"},
-    {file = "Babel-2.9.1.tar.gz", hash = "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"},
+    {file = "apache-libcloud-3.6.0.tar.gz", hash = "sha256:4a3b9141033798e4fb07886ff26254e635e022acbdd708375eac6f56e323506c"},
+    {file = "apache_libcloud-3.6.0-py2.py3-none-any.whl", hash = "sha256:4aa8cf11caad7090753d6b19af2abfe779847df4296b15a39db3ded15a122478"},
 ]
 boto = [
     {file = "boto-2.49.0-py2.py3-none-any.whl", hash = "sha256:147758d41ae7240dc989f0039f27da8ca0d53734be0eb869ef16e3adcfa462e8"},
     {file = "boto-2.49.0.tar.gz", hash = "sha256:ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a"},
 ]
 boto3 = [
-    {file = "boto3-1.21.18-py3-none-any.whl", hash = "sha256:d857feb6af9932e1ee3a748060a2cd9fd6043dbbccf66976eda54586597efdc0"},
-    {file = "boto3-1.21.18.tar.gz", hash = "sha256:8d6f3c548f0ee03d742f404c96515e7579fc6968135aaa50dd855a046698ff79"},
+    {file = "boto3-1.24.16-py3-none-any.whl", hash = "sha256:2c6f7e4103d41ca07d6b934a6612e4b9a2666eae36e8289f88726868534b8de2"},
+    {file = "boto3-1.24.16.tar.gz", hash = "sha256:422c000ff2ee5226e89fe427a9c4c09db095d69c179a3bcc3cfba37cbc5e787e"},
 ]
 botocore = [
-    {file = "botocore-1.24.18-py3-none-any.whl", hash = "sha256:7ea8ef1ff7c4882ab59b337662f90ddf5ea860e95e7e209dca593a34ea585b1b"},
-    {file = "botocore-1.24.18.tar.gz", hash = "sha256:d2da7ccbc5ddd61fe3cd45fcbd3de380d9e3a15bfa8fbfd2d9259a93dcc60c56"},
+    {file = "botocore-1.27.16-py3-none-any.whl", hash = "sha256:f117d59899d21beeb200130d7af2090a8112d702a06e2c2794ef576bcea36773"},
+    {file = "botocore-1.27.16.tar.gz", hash = "sha256:b3b9710902f675a11f5bfd46afda770150530876ae6541d099584462bf949fd1"},
 ]
 certifi = [
-    {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"},
-    {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"},
+    {file = "certifi-2022.6.15-py3-none-any.whl", hash = "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412"},
+    {file = "certifi-2022.6.15.tar.gz", hash = "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d"},
 ]
 cffi = [
     {file = "cffi-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962"},
@@ -764,10 +543,6 @@ charset-normalizer = [
     {file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"},
     {file = "charset_normalizer-2.0.12-py3-none-any.whl", hash = "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"},
 ]
-colorama = [
-    {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
-    {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
-]
 cryptography = [
     {file = "cryptography-3.4.8-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:a00cf305f07b26c351d8d4e1af84ad7501eca8a342dedf24a7acb0e7b7406e14"},
     {file = "cryptography-3.4.8-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:f44d141b8c4ea5eb4dbc9b3ad992d45580c1d22bf5e24363f2fbf50c2d7ae8a7"},
@@ -789,10 +564,6 @@ cryptography = [
     {file = "cryptography-3.4.8-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:cd65b60cfe004790c795cc35f272e41a3df4631e2fb6b35aa7ac6ef2859d554e"},
     {file = "cryptography-3.4.8.tar.gz", hash = "sha256:94cc5ed4ceaefcbe5bf38c8fba6a21fc1d365bb8fb826ea1688e3370b2e24a1c"},
 ]
-docutils = [
-    {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"},
-    {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"},
-]
 hetzner = [
     {file = "hetzner-0.8.3.tar.gz", hash = "sha256:9a43dbbeb4a1f3efc86c5fe1c1d7039aaa635dfdb829506ec3aa34382d3a7114"},
 ]
@@ -800,66 +571,16 @@ idna = [
     {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"},
     {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"},
 ]
-imagesize = [
-    {file = "imagesize-1.3.0-py2.py3-none-any.whl", hash = "sha256:1db2f82529e53c3e929e8926a1fa9235aa82d0bd0c580359c67ec31b2fddaa8c"},
-    {file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"},
-]
-jinja2 = [
-    {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"},
-    {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"},
-]
 jmespath = [
-    {file = "jmespath-0.10.0-py2.py3-none-any.whl", hash = "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"},
-    {file = "jmespath-0.10.0.tar.gz", hash = "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9"},
+    {file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"},
+    {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"},
 ]
 jsonpickle = [
-    {file = "jsonpickle-2.1.0-py2.py3-none-any.whl", hash = "sha256:1dee77ddc5d652dfdabc33d33cff9d7e131d428007007da4fd6f7071ae774b0f"},
-    {file = "jsonpickle-2.1.0.tar.gz", hash = "sha256:84684cfc5338a534173c8dd69809e40f2865d0be1f8a2b7af8465e5b968dcfa9"},
+    {file = "jsonpickle-2.2.0-py2.py3-none-any.whl", hash = "sha256:de7f2613818aa4f234138ca11243d6359ff83ae528b2185efdd474f62bcf9ae1"},
+    {file = "jsonpickle-2.2.0.tar.gz", hash = "sha256:7b272918b0554182e53dc340ddd62d9b7f902fec7e7b05620c04f3ccef479a0e"},
 ]
 libvirt-python = [
-    {file = "libvirt-python-8.1.0.tar.gz", hash = "sha256:a21ecfab6d29ac1bdd1bfd4aa3ef58447f9f70919aefecd03774613f65914e43"},
-]
-markupsafe = [
-    {file = "MarkupSafe-2.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3028252424c72b2602a323f70fbf50aa80a5d3aa616ea6add4ba21ae9cc9da4c"},
-    {file = "MarkupSafe-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:290b02bab3c9e216da57c1d11d2ba73a9f73a614bbdcc027d299a60cdfabb11a"},
-    {file = "MarkupSafe-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e104c0c2b4cd765b4e83909cde7ec61a1e313f8a75775897db321450e928cce"},
-    {file = "MarkupSafe-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24c3be29abb6b34052fd26fc7a8e0a49b1ee9d282e3665e8ad09a0a68faee5b3"},
-    {file = "MarkupSafe-2.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:204730fd5fe2fe3b1e9ccadb2bd18ba8712b111dcabce185af0b3b5285a7c989"},
-    {file = "MarkupSafe-2.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d3b64c65328cb4cd252c94f83e66e3d7acf8891e60ebf588d7b493a55a1dbf26"},
-    {file = "MarkupSafe-2.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:96de1932237abe0a13ba68b63e94113678c379dca45afa040a17b6e1ad7ed076"},
-    {file = "MarkupSafe-2.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:75bb36f134883fdbe13d8e63b8675f5f12b80bb6627f7714c7d6c5becf22719f"},
-    {file = "MarkupSafe-2.1.0-cp310-cp310-win32.whl", hash = "sha256:4056f752015dfa9828dce3140dbadd543b555afb3252507348c493def166d454"},
-    {file = "MarkupSafe-2.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:d4e702eea4a2903441f2735799d217f4ac1b55f7d8ad96ab7d4e25417cb0827c"},
-    {file = "MarkupSafe-2.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f0eddfcabd6936558ec020130f932d479930581171368fd728efcfb6ef0dd357"},
-    {file = "MarkupSafe-2.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ddea4c352a488b5e1069069f2f501006b1a4362cb906bee9a193ef1245a7a61"},
-    {file = "MarkupSafe-2.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:09c86c9643cceb1d87ca08cdc30160d1b7ab49a8a21564868921959bd16441b8"},
-    {file = "MarkupSafe-2.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a0a0abef2ca47b33fb615b491ce31b055ef2430de52c5b3fb19a4042dbc5cadb"},
-    {file = "MarkupSafe-2.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:736895a020e31b428b3382a7887bfea96102c529530299f426bf2e636aacec9e"},
-    {file = "MarkupSafe-2.1.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:679cbb78914ab212c49c67ba2c7396dc599a8479de51b9a87b174700abd9ea49"},
-    {file = "MarkupSafe-2.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:84ad5e29bf8bab3ad70fd707d3c05524862bddc54dc040982b0dbcff36481de7"},
-    {file = "MarkupSafe-2.1.0-cp37-cp37m-win32.whl", hash = "sha256:8da5924cb1f9064589767b0f3fc39d03e3d0fb5aa29e0cb21d43106519bd624a"},
-    {file = "MarkupSafe-2.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:454ffc1cbb75227d15667c09f164a0099159da0c1f3d2636aa648f12675491ad"},
-    {file = "MarkupSafe-2.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:142119fb14a1ef6d758912b25c4e803c3ff66920635c44078666fe7cc3f8f759"},
-    {file = "MarkupSafe-2.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b2a5a856019d2833c56a3dcac1b80fe795c95f401818ea963594b345929dffa7"},
-    {file = "MarkupSafe-2.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d1fb9b2eec3c9714dd936860850300b51dbaa37404209c8d4cb66547884b7ed"},
-    {file = "MarkupSafe-2.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62c0285e91414f5c8f621a17b69fc0088394ccdaa961ef469e833dbff64bd5ea"},
-    {file = "MarkupSafe-2.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc3150f85e2dbcf99e65238c842d1cfe69d3e7649b19864c1cc043213d9cd730"},
-    {file = "MarkupSafe-2.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f02cf7221d5cd915d7fa58ab64f7ee6dd0f6cddbb48683debf5d04ae9b1c2cc1"},
-    {file = "MarkupSafe-2.1.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d5653619b3eb5cbd35bfba3c12d575db2a74d15e0e1c08bf1db788069d410ce8"},
-    {file = "MarkupSafe-2.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:7d2f5d97fcbd004c03df8d8fe2b973fe2b14e7bfeb2cfa012eaa8759ce9a762f"},
-    {file = "MarkupSafe-2.1.0-cp38-cp38-win32.whl", hash = "sha256:3cace1837bc84e63b3fd2dfce37f08f8c18aeb81ef5cf6bb9b51f625cb4e6cd8"},
-    {file = "MarkupSafe-2.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:fabbe18087c3d33c5824cb145ffca52eccd053061df1d79d4b66dafa5ad2a5ea"},
-    {file = "MarkupSafe-2.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:023af8c54fe63530545f70dd2a2a7eed18d07a9a77b94e8bf1e2ff7f252db9a3"},
-    {file = "MarkupSafe-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d66624f04de4af8bbf1c7f21cc06649c1c69a7f84109179add573ce35e46d448"},
-    {file = "MarkupSafe-2.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c532d5ab79be0199fa2658e24a02fce8542df196e60665dd322409a03db6a52c"},
-    {file = "MarkupSafe-2.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67ec74fada3841b8c5f4c4f197bea916025cb9aa3fe5abf7d52b655d042f956"},
-    {file = "MarkupSafe-2.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c653fde75a6e5eb814d2a0a89378f83d1d3f502ab710904ee585c38888816c"},
-    {file = "MarkupSafe-2.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:961eb86e5be7d0973789f30ebcf6caab60b844203f4396ece27310295a6082c7"},
-    {file = "MarkupSafe-2.1.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:598b65d74615c021423bd45c2bc5e9b59539c875a9bdb7e5f2a6b92dfcfc268d"},
-    {file = "MarkupSafe-2.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:599941da468f2cf22bf90a84f6e2a65524e87be2fce844f96f2dd9a6c9d1e635"},
-    {file = "MarkupSafe-2.1.0-cp39-cp39-win32.whl", hash = "sha256:e6f7f3f41faffaea6596da86ecc2389672fa949bd035251eab26dc6697451d05"},
-    {file = "MarkupSafe-2.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:b8811d48078d1cf2a6863dafb896e68406c5f513048451cd2ded0473133473c7"},
-    {file = "MarkupSafe-2.1.0.tar.gz", hash = "sha256:80beaf63ddfbc64a0452b841d8036ca0611e049650e20afcb882f5d3c266d65f"},
+    {file = "libvirt-python-8.4.0.tar.gz", hash = "sha256:6d252ad4e0f765620bbde450be8f2b844e4f85c568b207ac644f52c6a982f46c"},
 ]
 nixops = []
 nixops-aws = []
@@ -871,10 +592,6 @@ nixops-hetzner = []
 nixops-virtd = []
 nixopsvbox = []
 nixos-modules-contrib = []
-packaging = [
-    {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"},
-    {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
-]
 pluggy = [
     {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"},
     {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"},
@@ -888,14 +605,6 @@ pycparser = [
     {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
     {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
 ]
-pygments = [
-    {file = "Pygments-2.11.2-py3-none-any.whl", hash = "sha256:44238f1b60a76d78fc8ca0528ee429702aae011c265fe6a8dd8b63049ae41c65"},
-    {file = "Pygments-2.11.2.tar.gz", hash = "sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a"},
-]
-pyparsing = [
-    {file = "pyparsing-3.0.7-py3-none-any.whl", hash = "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484"},
-    {file = "pyparsing-3.0.7.tar.gz", hash = "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea"},
-]
 python-dateutil = [
     {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
     {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
@@ -904,54 +613,18 @@ python-digitalocean = [
     {file = "python-digitalocean-1.17.0.tar.gz", hash = "sha256:107854fde1aafa21774e8053cf253b04173613c94531f75d5a039ad770562b24"},
     {file = "python_digitalocean-1.17.0-py3-none-any.whl", hash = "sha256:0032168e022e85fca314eb3f8dfaabf82087f2ed40839eb28f1eeeeca5afb1fa"},
 ]
-pytz = [
-    {file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"},
-    {file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"},
-]
 requests = [
-    {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"},
-    {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"},
+    {file = "requests-2.28.0-py3-none-any.whl", hash = "sha256:bc7861137fbce630f17b03d3ad02ad0bf978c844f3536d0edda6499dafce2b6f"},
+    {file = "requests-2.28.0.tar.gz", hash = "sha256:d568723a7ebd25875d8d1eaf5dfa068cd2fc8194b2e483d7b1f7c81918dbec6b"},
 ]
 s3transfer = [
-    {file = "s3transfer-0.5.2-py3-none-any.whl", hash = "sha256:7a6f4c4d1fdb9a2b640244008e142cbc2cd3ae34b386584ef044dd0f27101971"},
-    {file = "s3transfer-0.5.2.tar.gz", hash = "sha256:95c58c194ce657a5f4fb0b9e60a84968c808888aed628cd98ab8771fe1db98ed"},
+    {file = "s3transfer-0.6.0-py3-none-any.whl", hash = "sha256:06176b74f3a15f61f1b4f25a1fc29a4429040b7647133a463da8fa5bd28d5ecd"},
+    {file = "s3transfer-0.6.0.tar.gz", hash = "sha256:2ed07d3866f523cc561bf4a00fc5535827981b117dd7876f036b0c1aca42c947"},
 ]
 six = [
     {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
     {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
 ]
-snowballstemmer = [
-    {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"},
-    {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"},
-]
-sphinx = [
-    {file = "Sphinx-3.5.4-py3-none-any.whl", hash = "sha256:2320d4e994a191f4b4be27da514e46b3d6b420f2ff895d064f52415d342461e8"},
-    {file = "Sphinx-3.5.4.tar.gz", hash = "sha256:19010b7b9fa0dc7756a6e105b2aacd3a80f798af3c25c273be64d7beeb482cb1"},
-]
-sphinxcontrib-applehelp = [
-    {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"},
-    {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"},
-]
-sphinxcontrib-devhelp = [
-    {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"},
-    {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"},
-]
-sphinxcontrib-htmlhelp = [
-    {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"},
-    {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"},
-]
-sphinxcontrib-jsmath = [
-    {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"},
-    {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"},
-]
-sphinxcontrib-qthelp = [
-    {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"},
-    {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"},
-]
-sphinxcontrib-serializinghtml = [
-    {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"},
-    {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"},
-]
 typeguard = [
     {file = "typeguard-2.13.3-py3-none-any.whl", hash = "sha256:5e3e3be01e887e7eafae5af63d1f36c849aaa94e3a0112097312aabfa16284f1"},
     {file = "typeguard-2.13.3.tar.gz", hash = "sha256:00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4"},
@@ -962,6 +635,6 @@ typing-extensions = [
     {file = "typing_extensions-3.10.0.2.tar.gz", hash = "sha256:49f75d16ff11f1cd258e1b988ccff82a3ca5570217d7ad8c5f48205dd99a677e"},
 ]
 urllib3 = [
-    {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"},
-    {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"},
+    {file = "urllib3-1.26.9-py2.py3-none-any.whl", hash = "sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14"},
+    {file = "urllib3-1.26.9.tar.gz", hash = "sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"},
 ]
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/pyproject.toml b/nixpkgs/pkgs/applications/networking/cluster/nixops/pyproject.toml
index acee33da249a..1a1097649493 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nixops/pyproject.toml
+++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/pyproject.toml
@@ -5,7 +5,7 @@ description = "NixOps 2.0"
 authors = ["Adam Hoese <adam.hose@tweag.io>"]
 
 [tool.poetry.dependencies]
-python = "^3.8"
+python = "^3.9"
 nixops = {git = "https://github.com/NixOS/nixops.git"}
 nixops-aws = {git = "https://github.com/NixOS/nixops-aws.git"}
 nixops-digitalocean = {git = "https://github.com/nix-community/nixops-digitalocean.git"}
@@ -14,13 +14,7 @@ nixops-gcp = {git = "https://github.com/nix-community/nixops-gce.git"}
 nixops-hercules-ci = {git = "https://github.com/hercules-ci/nixops-hercules-ci.git"}
 nixops-hetzner = {git = "https://github.com/NixOS/nixops-hetzner"}
 nixopsvbox = {git = "https://github.com/nix-community/nixops-vbox.git"}
-# FIXME: Once #30 lands this can be replaced
-# https://github.com/nix-community/nixops-libvirtd/pull/30
-# nixops-virtd = {git = "https://github.com/nix-community/nixops-libvirtd.git"}
-nixops-virtd = { git = "https://github.com/lovesegfault/nixops-libvirtd.git", branch = "update-libvirt" }
-
-[tool.poetry.dev-dependencies]
-sphinx = "^3.1.2"
+nixops-virtd = {git = "https://github.com/nix-community/nixops-libvirtd.git"}
 
 [build-system]
 requires = ["poetry>=0.12"]
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix b/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix
index 0139cb2c8125..a40c600691ea 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix
@@ -5,6 +5,6 @@ pkgs.mkShell {
     pkgs.poetry2nix.cli
     pkgs.pkg-config
     pkgs.libvirt
-    pkgs.poetry
+    pkgs.python39Packages.poetry
   ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix b/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix
index a584fee3b4c7..60411f4d918a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "node-problem-detector";
-  version = "0.8.10";
+  version = "0.8.11";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-phuXsioSLO/jl1l5dwV/emoirJfgGXQSmeQHSImxm2U=";
+    sha256 = "sha256-dkOkHsQ1ZfB5rSFuFRlrKf605EIo/7IkyyYz3ZhMggQ=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad-pack/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad-pack/default.nix
index 93d1d3badad2..65b012a10a0d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nomad-pack/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad-pack/default.nix
@@ -5,17 +5,17 @@
 
 buildGoModule rec {
   pname = "nomad-pack";
-  version = "2022-02-11";
-  rev   = "568ac5e42bc41172a1fa3c8b18af2f42b9e341ff";
+  version = "0.0.1-techpreview.3";
+  rev   = "3b4163b3b826c8408ae824238daaa45307d03380";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     inherit rev;
-    sha256 = "sha256-0hvnGdUT72sWvMER67ZBxcC+VTbuFMIos2NudOjeTB8=";
+    sha256 = "sha256-Br+BJRAo9qSJQjg2awQTnsYz76WReVWsTUw6XoUb1YY=";
   };
 
-  vendorSha256 = "sha256-wmoXZIogKj4i9+AsEjY7QaT2Tn4LQyGQcEFHrRO0W9s=";
+  vendorSha256 = "sha256-dUPDwKdkBXBfyfbFxrpgHwZ0Q5jB7aamClNmv+tLCGA=";
 
   # skip running go tests as they require network access
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/1.1.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.1.nix
deleted file mode 100644
index 750e49fc1e18..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/nomad/1.1.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ callPackage
-, buildGoModule
-, nvidia_x11
-, nvidiaGpuSupport
-}:
-
-callPackage ./generic.nix {
-  inherit buildGoModule nvidia_x11 nvidiaGpuSupport;
-  version = "1.1.8";
-  sha256 = "05k1r157h3jaqzzsrkgc96zcny3mi8dvixc2v1w0lwcxixqk0y2l";
-  vendorSha256 = "03hjin9nybf7fpbj5r82qh19qh3cc8m0b236mk0ajhsyjqrk8pir";
-}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/1.2.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.2.nix
index 81a31de7e506..5a35a9493e87 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nomad/1.2.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.2.nix
@@ -1,12 +1,10 @@
 { callPackage
 , buildGoModule
-, nvidia_x11
-, nvidiaGpuSupport
 }:
 
 callPackage ./generic.nix {
-  inherit buildGoModule nvidia_x11 nvidiaGpuSupport;
-  version = "1.2.6";
-  sha256 = "1ik8v1jznky9y4m85bzxgyba256zqmm5fs6d5xsvp5rzcylcdwgd";
-  vendorSha256 = "1mbvpssf7haaxzx6ka9qzixm49jck8i89w8ymkaddgmxhlbxjv05";
+  inherit buildGoModule;
+  version = "1.2.9";
+  sha256 = "05pd4y5aq91ac73447aqr0pk56rx5qhqzzp5cw4w06yh5iry0bmn";
+  vendorSha256 = "08nqqd3dz8bzxnh729kckvg59wnvmixmsh8g74nlxk90gq07zsn4";
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/1.3.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.3.nix
new file mode 100644
index 000000000000..8d4c9805b52a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.3.nix
@@ -0,0 +1,10 @@
+{ callPackage
+, buildGoModule
+}:
+
+callPackage ./generic.nix {
+  inherit buildGoModule;
+  version = "1.3.3";
+  sha256 = "sha256-/63QGknivXyBel2MhMzbh/rE+UrfV3mb+zPZzOU15WU=";
+  vendorSha256 = "sha256-5ubJ6hgpdkZd/hwy+u2S6XgQLD5xmgUnaUqJoLdguBQ=";
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/generic.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/generic.nix
index 180cf48e3fb1..c5d92eaf1f7e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nomad/generic.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/generic.nix
@@ -4,9 +4,6 @@
 , version
 , sha256
 , vendorSha256
-, nvidiaGpuSupport
-, patchelf
-, nvidia_x11
 , nixosTests
 }:
 
@@ -25,22 +22,10 @@ buildGoModule rec {
 
   inherit vendorSha256;
 
-  nativeBuildInputs = lib.optionals nvidiaGpuSupport [
-    patchelf
-  ];
-
   # ui:
   #  Nomad release commits include the compiled version of the UI, but the file
   #  is only included if we build with the ui tag.
-  tags = [ "ui" ] ++ lib.optional (!nvidiaGpuSupport) "nonvidia";
-
-  # The dependency on NVML isn't explicit. We have to make it so otherwise the
-  # binary will not know where to look for the relevant symbols.
-  postFixup = lib.optionalString nvidiaGpuSupport ''
-    for bin in $out/bin/*; do
-      patchelf --add-needed "${nvidia_x11}/lib/libnvidia-ml.so" "$bin"
-    done
-  '';
+  tags = [ "ui" ];
 
   passthru.tests.nomad = nixosTests.nomad;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ocm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ocm/default.nix
index 1bacd8510dc4..46fdeef2ac83 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/ocm/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/ocm/default.nix
@@ -1,24 +1,39 @@
-{ lib, buildGoModule, fetchFromGitHub, testVersion, ocm }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, stdenv, testers, ocm }:
 
 buildGoModule rec {
   pname = "ocm";
-  version = "0.1.62";
+  version = "0.1.64";
 
   src = fetchFromGitHub {
     owner = "openshift-online";
     repo = "ocm-cli";
     rev = "v${version}";
-    sha256 = "0kv0zcx6wdlyid37ygzg05xyyk77ybd2qcdgbswjv6crcjh1xdrd";
+    sha256 = "sha256-RMXiEXgf8tAdp2d97kaOzXgFCFVkaMhkJF8AHXIEJm8=";
   };
 
-  vendorSha256 = "sha256-nXUrbF9mcHy8G7c+ktQixBmmf6x066gpuaZ0eUsJQwc=";
+  vendorSha256 = "sha256-4m5Ej2Ql9+wGqrzvXQkY8fL2I9tYE6Tm6s9+qcZBHQI=";
+
+  # Strip the final binary.
+  ldflags = [ "-s" "-w" ];
+
+  nativeBuildInputs = [ installShellFiles ];
 
   # Tests expect the binary to be located in the root directory.
   preCheck = ''
     ln -s $GOPATH/bin/ocm ocm
   '';
 
-  passthru.tests.version = testVersion {
+  # Tests fail in Darwin sandbox.
+  doCheck = !stdenv.isDarwin;
+
+  postInstall = ''
+    installShellCompletion --cmd ocm \
+      --bash <($out/bin/ocm completion bash) \
+      --fish <($out/bin/ocm completion fish) \
+      --zsh <($out/bin/ocm completion zsh)
+  '';
+
+  passthru.tests.version = testers.testVersion {
     package = ocm;
     command = "ocm version";
   };
@@ -28,5 +43,6 @@ buildGoModule rec {
     license = licenses.asl20;
     homepage = "https://github.com/openshift-online/ocm-cli";
     maintainers = with maintainers; [ stehessel ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix b/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix
index 70c255790790..733e4c04a9cc 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
       introspective tooling, cluster navigation, and object management along
       with a plugin system to further extend its capabilities.
     '';
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/desktop.nix b/nixpkgs/pkgs/applications/networking/cluster/octant/desktop.nix
index 1a86a66fa29b..b34e167e8c94 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/octant/desktop.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/octant/desktop.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, appimageTools, fetchurl, gsettings-desktop-schemas, gtk3, undmg }:
+{ lib, stdenv, appimageTools, fetchurl, undmg }:
 
 let
   pname = "octant-desktop";
@@ -25,7 +25,6 @@ let
 
     profile = ''
       export LC_ALL=C.UTF-8
-      export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
     '';
 
     multiPkgs = null; # no 32bit needed
diff --git a/nixpkgs/pkgs/applications/networking/cluster/odo/default.nix b/nixpkgs/pkgs/applications/networking/cluster/odo/default.nix
index be85981f7bf4..a91ac4ce33e4 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/odo/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/odo/default.nix
@@ -1,14 +1,14 @@
-{ lib, buildGoModule, fetchFromGitHub, testVersion, odo }:
+{ lib, buildGoModule, fetchFromGitHub, testers, odo }:
 
 buildGoModule rec {
   pname = "odo";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "redhat-developer";
     repo = "odo";
     rev = "v${version}";
-    sha256 = "KYJkCoF80UPsebWwxpc5gIfmT3Aj4OU8r6dDkaWXqbY=";
+    sha256 = "sha256-+UvG+aDji/GtkXdt+xZB06j6NxjeK2nhBjle5K+lx/A=";
   };
 
   vendorSha256 = null;
@@ -22,7 +22,7 @@ buildGoModule rec {
     cp -a odo $out/bin
   '';
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = odo;
     command = "odo version";
     version = "v${version}";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix b/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix
index dd542f9ffac6..9933e8056670 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix
@@ -1,84 +1,69 @@
-{ lib, fetchFromGitHub, buildGoPackage, which, go-bindata, rsync, util-linux
-, coreutils, libkrb5, ncurses, clang, installShellFiles
-, components ? [
-  "cmd/oc"
-  "cmd/openshift"
-  ]
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, libkrb5
+, git
+, installShellFiles
+, testers
+, openshift
 }:
 
-with lib;
-
-let
-  version = "4.1.0";
-  ver = lib.elemAt (lib.splitVersion version);
-  versionMajor = ver 0;
-  versionMinor = ver 1;
-  versionPatch = ver 2;
-  gitCommit = "b4261e0";
-  # version is in vendor/k8s.io/kubernetes/pkg/version/base.go
-  k8sversion = "v1.11.1";
-  k8sgitcommit = "b1b2997";
-  k8sgitMajor = "0";
-  k8sgitMinor = "1";
-in buildGoPackage rec {
-  pname = "openshift-origin";
-  inherit version;
+buildGoModule rec {
+  pname = "openshift";
+  version = "4.11.0";
+  gitCommit = "20dd77d5";
 
   src = fetchFromGitHub {
     owner = "openshift";
-    repo = "origin";
-    rev = "v${version}";
-    sha256 = "16bc6ljm418kxz92gz8ldm82491mvlqamrvigyr6ff72rf7ml7ba";
+    repo = "oc";
+    rev = "20dd77d5c889f86b05e2bdd182853ae702852c63";
+    sha256 = "wqLo/CKGzeMDJUoI9PUEjJER5hSPu+FmUCJLPZ9PJuw=";
   };
 
-  goPackagePath = "github.com/openshift/origin";
+  vendorSha256 = null;
 
   buildInputs = [ libkrb5 ];
 
-  nativeBuildInputs = [
-    clang
-    go-bindata
-    installShellFiles
-    ncurses
-    rsync
-    which
-  ];
+  nativeBuildInputs = [ installShellFiles ];
 
   patchPhase = ''
     patchShebangs ./hack
   '';
 
   buildPhase = ''
-    cd go/src/${goPackagePath}
     # Openshift build require this variables to be set
     # unless there is a .git folder which is not the case with fetchFromGitHub
-    echo "OS_GIT_VERSION=v${version}" >> os-version-defs
-    echo "OS_GIT_TREE_STATE=clean" >> os-version-defs
-    echo "OS_GIT_MAJOR=${versionMajor}" >> os-version-defs
-    echo "OS_GIT_MINOR=${versionMinor}" >> os-version-defs
-    echo "OS_GIT_PATCH=${versionPatch}" >> os-version-defs
-    echo "OS_GIT_COMMIT=${gitCommit}" >> os-version-defs
-    echo "KUBE_GIT_VERSION=${k8sversion}" >> os-version-defs
-    echo "KUBE_GIT_COMMIT=${k8sgitcommit}" >> os-version-defs
-    echo "KUBE_GIT_MAJOR=${k8sgitMajor}" >> os-version-defs
-    echo "KUBE_GIT_MINOR=${k8sgitMinor}" >> os-version-defs
-    export OS_VERSION_FILE="os-version-defs"
-    export CC=clang
-    make all WHAT='${concatStringsSep " " components}'
+    export SOURCE_GIT_COMMIT=${gitCommit}
+    export SOURCE_GIT_TAG=v${version}
+    export SOURCE_GIT_TREE_STATE=clean
+
+    make all
   '';
 
   installPhase = ''
     mkdir -p $out/bin
-    cp -a "_output/local/bin/$(go env GOOS)/$(go env GOARCH)/"* "$out/bin/"
+    cp oc $out/bin
+
+    mkdir -p man
+    ./genman man oc
+    installManPage man/*.1
+
     installShellCompletion --bash contrib/completions/bash/*
     installShellCompletion --zsh contrib/completions/zsh/*
   '';
 
+  passthru.tests.version = testers.testVersion {
+    package = openshift;
+    command = "oc version";
+    version = "v${version}";
+  };
+
   meta = with lib; {
     description = "Build, deploy, and manage your applications with Docker and Kubernetes";
-    license = licenses.asl20;
     homepage = "http://www.openshift.org";
-    maintainers = with maintainers; [offline bachp moretea];
+    license = licenses.asl20;
+    maintainers = with maintainers; [ offline bachp moretea stehessel ];
+    mainProgram = "oc";
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix
index 65a4a1938430..570481f49b27 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix
@@ -20,5 +20,6 @@ buildGoPackage rec {
     homepage = "https://github.com/pachyderm/pachyderm";
     license = licenses.asl20;
     maintainers = with maintainers; [offline];
+    mainProgram = "pachctl";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix
index 33dbb47d11c2..0ea3a13688a3 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pgo-client";
-  version = "4.7.4";
+  version = "4.7.5";
 
   src = fetchFromGitHub {
     owner = "CrunchyData";
     repo = "postgres-operator";
     rev = "v${version}";
-    sha256 = "sha256-8L3eFMATCGIM6xxUM7mi/D3njHMFk7cgPLJotilAS5k=";
+    sha256 = "sha256-1GYpvw3ch03Cx4BReNwLnbgbds4uuSe/cjvbHuRhLOw=";
   };
 
-  vendorSha256 = "sha256-4Vz7Lioj6iLU7dbz/B2BSAgfaCl2MyC8MM9yiyWLi2o=";
+  vendorSha256 = "sha256-5/mLlgNdlX/ABrpofPqowCskxFwJAEKVpbsMOvMvTWc=";
 
   subPackages = [ "cmd/pgo" ];
 
@@ -21,5 +21,6 @@ buildGoModule rec {
     changelog = "https://github.com/CrunchyData/postgres-operator/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = [ maintainers.bryanasdev000 ];
+    mainProgram = "pgo";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/pluto/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pluto/default.nix
index 1fa4dc161952..4297ec62376d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/pluto/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/pluto/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pluto";
-  version = "5.6.0";
+  version = "5.7.0";
 
   src = fetchFromGitHub {
     owner = "FairwindsOps";
     repo = "pluto";
     rev = "v${version}";
-    sha256 = "0nr8h8vg8ifgibgw80rs4mk63bj3qhmd37lfjc89iyml4g6p9mwr";
+    sha256 = "sha256-/H8/wpDqlo96qb6QBIxpIGMv6VtK/nn/GwozIJjZyNY=";
   };
 
-  vendorSha256 = "08x5mzypg66s54apkd7hhj6bi5pgbch9if2dbr58ksd3arkji2pv";
+  vendorSha256 = "sha256-jPVlHyKZ1ygF08OypXOMzHBfb2z5mhg5B8zJmAcQbLk=";
 
   ldflags = [
     "-w" "-s"
diff --git a/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix b/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
index 25fa2c4adc55..75f14c69bca7 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "popeye";
-  version = "0.9.8";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "derailed";
     repo = "popeye";
-    sha256 = "sha256-uGy2BbZS4SGT0w9ICYPUIfFawSvIVMsEezPfPAPQU/Q=";
+    sha256 = "sha256-GETCwj9T1D6paG56LT/N2YkISE7UBpt/femwvHyHHJE=";
   };
 
   ldflags = [
@@ -17,9 +17,7 @@ buildGoModule rec {
     "-X github.com/derailed/popeye/cmd.commit=${version}"
   ];
 
-  vendorSha256 = "sha256-vUUDLMicop5QzZmAHi5qrc0hx8oV2xWNFHvCWioLhl8=";
-
-  doCheck = true;
+  vendorSha256 = "sha256-ZRDcZbaoGJ8jgSwMXTTcWSv/4dlOoTNcuj/bN4QYHNE=";
 
   doInstallCheck = true;
   installCheckPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/cluster/rancher/default.nix b/nixpkgs/pkgs/applications/networking/cluster/rancher/default.nix
index 3ee09b14ce96..e89e35cf0f7d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/rancher/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/rancher/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "rancher";
-  version = "2.6.4";
+  version = "2.6.7";
 
   src = fetchFromGitHub {
     owner  = "rancher";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-5ceyScsCidJpHGfwhsq7/hDd3CClx29cD5Cdc1PSxTU=";
+    sha256 = "sha256-vSwGUgGREH1veF4NN+LBGRVbuTcio6bcr6HuSN97BJI=";
   };
 
   ldflags = [
@@ -19,7 +19,7 @@ buildGoModule rec {
     "-static"
   ];
 
-  vendorSha256 = "sha256-Nay4YkUNXuH7vTK3ergILF0efCF1XyJZd2wBiT6fims=";
+  vendorSha256 = "sha256-oclMnt6uJa8SG2fNM0fi+HCVMMi4rkykx8VpK/tXilQ=";
 
   postInstall = ''
     mv $out/bin/cli $out/bin/rancher
diff --git a/nixpkgs/pkgs/applications/networking/cluster/roxctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/roxctl/default.nix
new file mode 100644
index 000000000000..f022fc90b540
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/roxctl/default.nix
@@ -0,0 +1,44 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, roxctl }:
+
+buildGoModule rec {
+  pname = "roxctl";
+  version = "3.70.1";
+
+  src = fetchFromGitHub {
+    owner = "stackrox";
+    repo = "stackrox";
+    rev = version;
+    sha256 = "sha256-T06VldyPBIpYWs8+N4OWmaCwXCcb37F7lLD4jHcm1uc=";
+  };
+
+  vendorSha256 = "sha256-xh2bgLSWjQHOjHrgDpQri78LvCL4CDbMteQYARyGLgg=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  subPackages = [ "roxctl" ];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/stackrox/rox/pkg/version/internal.MainVersion=${version}"
+  ];
+
+  postInstall = ''
+    installShellCompletion --cmd roxctl \
+      --bash <($out/bin/roxctl completion bash) \
+      --fish <($out/bin/roxctl completion fish) \
+      --zsh <($out/bin/roxctl completion zsh)
+  '';
+
+  passthru.tests.version = testers.testVersion {
+    package = roxctl;
+    command = "roxctl version";
+  };
+
+  meta = with lib; {
+    description = "Command-line client of the StackRox Kubernetes Security Platform";
+    license = licenses.asl20;
+    homepage = "https://www.stackrox.io";
+    maintainers = with maintainers; [ stehessel ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix b/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix
index f08f403de282..4b935027d2e2 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix
@@ -1,11 +1,11 @@
 { lib, buildGoModule, fetchFromGitHub }:
 
 # SHA of ${version} for the tool's help output. Unfortunately this is needed in build flags.
-let rev = "1005bee8fff1b8daa30ddbcca717d03384630a71";
+let rev = "51c79060fc1433233eb43842de564f0f2e47be86";
 in
 buildGoModule rec {
   pname = "sonobuoy";
-  version = "0.56.3"; # Do not forget to update `rev` above
+  version = "0.56.4"; # Do not forget to update `rev` above
 
   ldflags =
     let t = "github.com/vmware-tanzu/sonobuoy";
@@ -20,10 +20,10 @@ buildGoModule rec {
     owner = "vmware-tanzu";
     repo = "sonobuoy";
     rev = "v${version}";
-    sha256 = "sha256-7yN3/bGjcntzMQRbB//fmqvD7me/xKLytfF+mQ1fcfc=";
+    sha256 = "sha256-6kHqfWDrZL3J5SrZ3JK50Z2Sw8mwM0zrfaKWo22g27A=";
   };
 
-  vendorSha256 = "sha256-qKXm39CwrTcXENIMh2BBS3MUlhJvmTTA3UzZNpF0PCc=";
+  vendorSha256 = "sha256-8n4a1PLUYDU46lVegQoOCmmRSR1XfnjgEGZ+R5f36Ic=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/spacegun/default.nix b/nixpkgs/pkgs/applications/networking/cluster/spacegun/default.nix
index 684e9f65a5bf..fa7cef34da18 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/spacegun/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/spacegun/default.nix
@@ -25,6 +25,7 @@ nodePackages.package.override {
   '';
 
   meta = with lib; {
+    broken = stdenv.isDarwin;
     description = "Version controlled multi-cluster deployment manager for kubernetes";
     maintainers = with maintainers; [ ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/spacegun/generate-dependencies.sh b/nixpkgs/pkgs/applications/networking/cluster/spacegun/generate-dependencies.sh
index bda3d1727c4f..3d1b470edfcd 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/spacegun/generate-dependencies.sh
+++ b/nixpkgs/pkgs/applications/networking/cluster/spacegun/generate-dependencies.sh
@@ -6,7 +6,7 @@ curl https://raw.githubusercontent.com/dvallin/spacegun/f88cfd1cf653995a301ef4db
 curl https://raw.githubusercontent.com/dvallin/spacegun/f88cfd1cf653995a301ef4db4a1e387ef3ca01a1/package-lock.json -o package-lock.json
 
 node2nix \
-  --nodejs-10 \
+  --nodejs-16 \
   --node-env ../../../../development/node-packages/node-env.nix \
   --development \
   --input package.json \
diff --git a/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix b/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix
index 9d532a3861a1..0c0b678d98f2 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix
@@ -2,7 +2,7 @@
 
 {pkgs ? import <nixpkgs> {
     inherit system;
-  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-10_x"}:
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-14_x"}:
 
 let
   nodeEnv = import ../../../../development/node-packages/node-env.nix {
diff --git a/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix b/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
index 69cdcc8d1316..2a9046d94a0b 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
@@ -6,6 +6,7 @@
 , python3Packages
 , extraPythonPackages ? [ ]
 , coreutils
+, hadoopSupport ? true
 , hadoop
 , RSupport ? true
 , R
@@ -14,15 +15,16 @@
 with lib;
 
 let
-  spark = { pname, version, sha256 }:
+  spark = { pname, version, sha256, extraMeta ? {} }:
     stdenv.mkDerivation rec {
       inherit pname version;
+      jdk = if hadoopSupport then hadoop.jdk else jdk8;
       src = fetchzip {
         url = "mirror://apache/spark/${pname}-${version}/${pname}-${version}-bin-without-hadoop.tgz";
         sha256 = sha256;
       };
       nativeBuildInputs = [ makeWrapper ];
-      buildInputs = [ jdk8 python3Packages.python ]
+      buildInputs = [ jdk python3Packages.python ]
         ++ extraPythonPackages
         ++ optional RSupport R;
 
@@ -34,9 +36,11 @@ let
         cp $out/lib/${untarDir}/conf/log4j.properties{.template,}
 
         cat > $out/lib/${untarDir}/conf/spark-env.sh <<- EOF
-        export JAVA_HOME="${jdk8}"
+        export JAVA_HOME="${jdk}"
         export SPARK_HOME="$out/lib/${untarDir}"
+      '' + optionalString hadoopSupport ''
         export SPARK_DIST_CLASSPATH=$(${hadoop}/bin/hadoop classpath)
+      '' + ''
         export PYSPARK_PYTHON="${python3Packages.python}/bin/${python3Packages.python.executable}"
         export PYTHONPATH="\$PYTHONPATH:$PYTHONPATH"
         ${optionalString RSupport ''
@@ -60,10 +64,11 @@ let
       meta = {
         description = "Apache Spark is a fast and general engine for large-scale data processing";
         homepage = "https://spark.apache.org/";
+        sourceProvenance = with sourceTypes; [ binaryBytecode ];
         license = lib.licenses.asl20;
         platforms = lib.platforms.all;
         maintainers = with maintainers; [ thoughtpolice offline kamilchm illustris ];
-      };
+      } // extraMeta;
     };
 in
 {
@@ -74,12 +79,13 @@ in
   };
   spark_3_1 = spark rec {
     pname = "spark";
-    version = "3.1.2";
-    sha256 = "1bgh2y6jm7wqy6yc40rx68xkki31i3jiri2yixb1bm0i9pvsj9yf";
+    version = "3.1.3";
+    sha256 = "sha256-RIQyN5YjxFLfNIrETR3Vv99zsHxt77rhOXHIThCI2Y8=";
   };
   spark_2_4 = spark rec {
     pname = "spark";
     version = "2.4.8";
     sha256 = "1mkyq0gz9fiav25vr0dba5ivp0wh0mh7kswwnx8pvsmb6wbwyfxv";
+    extraMeta.knownVulnerabilities = [ "CVE-2021-38296" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
index f7401d36b0ea..244c581b6f95 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
@@ -1,14 +1,20 @@
 { stdenv, lib, fetchurl, autoPatchelfHook, dpkg, awscli, unzip }:
 let
-  ver = "1.2.54.0";
-  source =
-    if stdenv.isDarwin then {
-      url = "https://s3.amazonaws.com/session-manager-downloads/plugin/${ver}/mac/sessionmanager-bundle.zip";
-      sha256 = "kgxoQrtu2tsV5t/3oA+Z2juY24hPOznPGjlQMsqOIZg=";
-    } else {
-      url = "https://s3.amazonaws.com/session-manager-downloads/plugin/${ver}/ubuntu_64bit/session-manager-plugin.deb";
-      sha256 = "uug1cT4yRxNQcf+zWz0mi72G4EGa3eZHVuG36INSqrM=";
-    };
+  ver = "1.2.331.0";
+  source = {
+    url = rec {
+      "x86_64-linux" = "https://s3.amazonaws.com/session-manager-downloads/plugin/${ver}/ubuntu_64bit/session-manager-plugin.deb";
+      "aarch64-linux" = "https://s3.amazonaws.com/session-manager-downloads/plugin/${ver}/ubuntu_arm64/session-manager-plugin.deb";
+      "x86_64-darwin" = "https://s3.amazonaws.com/session-manager-downloads/plugin/${ver}/mac/sessionmanager-bundle.zip";
+      "aarch64-darwin" = x86_64-darwin;
+    }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+    sha256 = rec {
+      "x86_64-linux" = "sha256-xWnY89dslkGhRTh9llRFkuUqYIjHQNt+TLnkPQr3u1Q=";
+      "aarch64-linux" = "sha256-QE6+EjLoydTPuLitG6fALXAtvIkfyoFuWij8Z2HT6+Q=";
+      "x86_64-darwin" = "0gr6frdn9jvxnkymkcpvgkqw4z2sac9jdf5qj4hzakq1zkfviazf";
+      "aarch64-darwin" = x86_64-darwin;
+    }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+  };
   archivePath = if stdenv.isDarwin then "sessionmanager-bundle" else "usr/local/sessionmanagerplugin";
 in
 stdenv.mkDerivation rec {
@@ -17,7 +23,12 @@ stdenv.mkDerivation rec {
 
   src = fetchurl source;
 
-  nativeBuildInputs = [ autoPatchelfHook ] ++ (if stdenv.isDarwin then [ unzip ] else [ dpkg ]);
+  nativeBuildInputs = lib.optionals stdenv.isLinux [
+    autoPatchelfHook
+    dpkg
+  ] ++ lib.optionals stdenv.isDarwin [
+    unzip
+  ];
 
   unpackPhase = if stdenv.isDarwin then "unzip $src" else "dpkg-deb -x $src .";
 
@@ -30,10 +41,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage =
-      "https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html";
+    homepage = "https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html";
     description = "Amazon SSM Session Manager Plugin";
-    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ mbaillie ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix b/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
index 30ca2ee1cdee..9dc32d67dff6 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
@@ -2,36 +2,42 @@
 
 buildGoModule rec {
   pname = "starboard";
-  version = "0.14.1";
+  version = "0.15.4";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-sB7C0IKadgpQ2h6HuH4D6ku/GXnFfFS+fGCW/RBSc10=";
+    sha256 = "sha256-GhcHvKqYktBAPB443ZjJ3LYRJZorO7IH1OEnEQKUO0g=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
     postFetch = ''
       cd "$out"
-      commit="$(git rev-parse HEAD)"
-      source_date_epoch=$(git log --date=format:'%Y-%m-%dT%H:%M:%SZ' -1 --pretty=%ad)
-      substituteInPlace "$out/cmd/starboard/main.go" \
-        --replace 'commit  = "none"' "commit  = \"$commit\"" \
-        --replace 'date    = "unknown"' "date    = \"$source_date_epoch\""
+      git rev-parse HEAD > $out/COMMIT
+      # 0000-00-00T00:00:00Z
+      date -u -d "@$(git log -1 --pretty=%ct)" "+%Y-%m-%dT%H:%M:%SZ" > $out/SOURCE_DATE_EPOCH
       find "$out" -name .git -print0 | xargs -0 rm -rf
     '';
   };
-  vendorSha256 = "sha256-R7tF724y5WNIByE+9nRoNSZDZzfLtPfK/9tSBkARaN0=";
+  vendorSha256 = "sha256-ozbejIFR0mDgCgca+2yaPRiMMHLOEsC9u+kQUe69spc=";
 
   nativeBuildInputs = [ installShellFiles ];
 
   subPackages = [ "cmd/starboard" ];
 
   ldflags = [
-    "-s" "-w" "-X main.version=v${version}"
+    "-s"
+    "-w"
+    "-X main.version=v${version}"
   ];
 
+  # ldflags based on metadata from git and source
+  preBuild = ''
+    ldflags+=" -X main.gitCommit=$(cat COMMIT)"
+    ldflags+=" -X main.buildDate=$(cat SOURCE_DATE_EPOCH)"
+  '';
+
   preCheck = ''
     # Remove test that requires networking
     rm pkg/plugin/aqua/client/client_integration_test.go
diff --git a/nixpkgs/pkgs/applications/networking/cluster/talosctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/talosctl/default.nix
index 374d9c972c7c..7ab484033abc 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/talosctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/talosctl/default.nix
@@ -1,40 +1,21 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
-let
-  # look for GO_LDFLAGS getting set in the Makefile
-  version = "0.14.3";
-  sha256 = "sha256-toEbWUZxnJkUe9jkZRdJrcPXu+CIh62fUKyX38OkXxU=";
-  vendorSha256 = "sha256-Pj1918TIOGfhkRiFEKkURL4xMFgWroiNsNU6yWzT8yk=";
-  pkgsVersion = "v0.9.0-6-gbfcc795";
-  extrasVersion = "v0.7.0-2-gb4c9d21";
-in
+{ lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
+
 buildGoModule rec {
   pname = "talosctl";
-  inherit version vendorSha256;
-  # nixpkgs-update: no auto update
+  version = "1.1.2";
 
   src = fetchFromGitHub {
-    owner = "talos-systems";
+    owner = "siderolabs";
     repo = "talos";
     rev = "v${version}";
-    inherit sha256;
+    sha256 = "sha256-20dbBRJ0OwRiYoLVmXyV8XApOzGsyppaTW079TGK5fI=";
   };
 
-  ldflags =
-    let
-      versionPkg = "github.com/talos-systems/talos/pkg/version"; # VERSION_PKG
-      imagesPkgs = "github.com/talos-systems/talos/pkg/images"; # IMAGES_PKGS
-      mgmtHelpersPkg = "github.com/talos-systems/talos/cmd/talosctl/pkg/mgmt/helpers"; #MGMT_HELPERS_PKG
-    in
-    [
-      "-X ${versionPkg}.Name=Talos"
-      "-X ${versionPkg}.SHA=${src.rev}" # should be the hash, but as we build from tags, this needs to do
-      "-X ${versionPkg}.Tag=${src.rev}"
-      "-X ${versionPkg}.PkgsVersion=${pkgsVersion}" # PKGS
-      "-X ${versionPkg}.ExtrasVersion=${extrasVersion}" # EXTRAS
-      "-X ${imagesPkgs}.Username=talos-systems" # USERNAME
-      "-X ${imagesPkgs}.Registry=ghcr.io" # REGISTRY
-      "-X ${mgmtHelpersPkg}.ArtifactsPath=_out" # ARTIFACTS
-    ];
+  vendorSha256 = "sha256-Xb4gkYBDTSFPwxCSxVqXLxDLn75xyy/k6Vwy+ot59KU=";
+
+  ldflags = [ "-s" "-w" ];
+
+  GOWORK = "off";
 
   subPackages = [ "cmd/talosctl" ];
 
@@ -51,7 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A CLI for out-of-band management of Kubernetes nodes created by Talos";
-    homepage = "https://github.com/talos-systems/talos";
+    homepage = "https://www.talos.dev/";
     license = licenses.mpl20;
     maintainers = with maintainers; [ flokli ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
index 0d21e440031d..c9a5d7c60cee 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tanka";
-  version = "0.20.0";
+  version = "0.22.1";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Wtfn9ffUNKuwByRbeCYq27xvr2DuzxSSQMH9Sv5a7rU=";
+    sha256 = "sha256-MMQv3/Ft6/FUueGEXGqYWAYy4zc2R6LASbh2x7eJNdQ=";
   };
 
-  vendorSha256 = "sha256-ed6rC+wrZHDViGfJrSBl5VUqX/o6RKytXbTKqxb3ZtU=";
+  vendorSha256 = "sha256-QwtcWzJbusa8BxtG5xmGUgqG0qCMSpkzbmes/x3lnWc=";
 
   doCheck = false;
 
@@ -31,6 +31,7 @@ buildGoModule rec {
     homepage = "https://tanka.dev";
     license = licenses.asl20;
     maintainers = with maintainers; [ mikefaille ];
+    mainProgram = "tk";
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
index bdd538ef804d..23914a6a9fe8 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tektoncd-cli";
-  version = "0.23.1";
+  version = "0.24.0";
 
   src = fetchFromGitHub {
     owner = "tektoncd";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-fOq67Cxtb2A9Obh2o5/aFy5bYBnyFKYQDPcpxOXMy1s=";
+    sha256 = "sha256-mrTtg60LZpRONrEhX53EhSYpfdfGMvPK4WhTHeAKsoQ=";
   };
 
   vendorSha256 = null;
@@ -19,7 +19,7 @@ buildGoModule rec {
 
   # third_party/VENDOR-LICENSE breaks build/check as go files are still included
   # docs is a tool for generating docs
-  excludedPackages = "\\(third_party\\|cmd/docs\\)";
+  excludedPackages = [ "third_party" "cmd/docs" ];
 
   preCheck = ''
     # some tests try to write to the home dir
@@ -61,5 +61,6 @@ buildGoModule rec {
     '';
     license = licenses.asl20;
     maintainers = with maintainers; [ jk mstrangfeld vdemeester ];
+    mainProgram = "tkn";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/temporal-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/temporal-cli/default.nix
new file mode 100644
index 000000000000..0d326d5ad458
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/temporal-cli/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchFromGitHub, buildGoModule, testers, temporal-cli }:
+
+buildGoModule rec {
+  pname = "temporal-cli";
+  version = "1.16.2";
+
+  src = fetchFromGitHub {
+    owner = "temporalio";
+    repo = "tctl";
+    rev = "v${version}";
+    sha256 = "sha256-KLcCFQJlFeioIhqrbkhgoNPcbAYvy1ESG8x9Y/I7+nw=";
+  };
+
+  vendorSha256 = "sha256-kczmoP32/V0HHeC3Mr+giuMB+McVTNeC2F+t1ohY4/U=";
+
+  ldflags = [ "-s" "-w" ];
+
+  passthru.tests.version = testers.testVersion {
+    package = temporal-cli;
+  };
+
+  meta = with lib; {
+    description = "Temporal CLI";
+    homepage = "https://temporal.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "tctl";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/temporal/default.nix b/nixpkgs/pkgs/applications/networking/cluster/temporal/default.nix
index 2475dd0f1d94..78f4b715b1c4 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/temporal/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/temporal/default.nix
@@ -1,38 +1,38 @@
-{ lib, fetchFromGitHub, buildGoModule }:
+{ lib, fetchFromGitHub, buildGoModule, testers, temporal }:
 
 buildGoModule rec {
   pname = "temporal";
-  version = "1.15.0";
+  version = "1.17.4";
 
   src = fetchFromGitHub {
     owner = "temporalio";
     repo = "temporal";
     rev = "v${version}";
-    sha256 = "sha256-5Tu838086qgIa2fqda2xi7vn4JbkENVJH4XU3NwW7Ic=";
+    sha256 = "sha256-FT1GOhB3PN5CBktMm5Z2xe6MF3U/BUQj7XViinTjWG4=";
   };
 
-  vendorSha256 = "sha256-caRBgkuHQ38r6OsKQCJ2pxAe8s6mc4g/QCIsCEXvY3M=";
+  vendorSha256 = "sha256-MT/BmGTdyEzmXjuwlA6WhLIWlrQz3Wc4Tl5dMI1587Q=";
 
-  # Errors:
-  #  > === RUN   TestNamespaceHandlerGlobalNamespaceDisabledSuite
-  # gocql: unable to dial control conn 127.0.0.1:9042: dial tcp 127.0.0.1:9042: connect: connection refused
+  CGO_ENABLED = 0;
+
+  ldflags = [ "-s" "-w" ];
+
+  # There too many integration tests.
   doCheck = false;
 
   installPhase = ''
     runHook preInstall
-    mkdir -p $out/bin
-    install -Dm755 "$GOPATH/bin/cli" -T $out/bin/tctl
-    install -Dm755 "$GOPATH/bin/authorization" -T $out/bin/tctl-authorization-plugin
+
     install -Dm755 "$GOPATH/bin/server" -T $out/bin/temporal-server
     install -Dm755 "$GOPATH/bin/cassandra" -T $out/bin/temporal-cassandra-tool
     install -Dm755 "$GOPATH/bin/sql" -T $out/bin/temporal-sql-tool
+
     runHook postInstall
   '';
 
-  doInstallCheck = true;
-  installCheckPhase = ''
-    $out/bin/tctl --version | grep ${version} > /dev/null
-  '';
+  passthru.tests.version = testers.testVersion {
+    package = temporal;
+  };
 
   meta = with lib; {
     description = "A microservice orchestration platform which enables developers to build scalable applications without sacrificing productivity or reliability";
@@ -40,5 +40,6 @@ buildGoModule rec {
     changelog = "https://github.com/temporalio/temporal/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ titanous ];
+    mainProgram = "temporal-server";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix
index 085b504314ee..783f9c79bb7f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix
@@ -1,22 +1,25 @@
-{ lib, buildGoPackage, fetchFromGitHub}:
+{ lib, buildGoModule, fetchFromGitHub, testers, terraform-inventory }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "terraform-inventory";
-  version = "0.7-pre";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/adammck/terraform-inventory";
-
-  subPackages = [ "./" ];
+  version = "0.10";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "adammck";
     repo = "terraform-inventory";
-    sha256 = "0wwyi2nfyn3wfpmvj8aabn0cjba0lpr5nw3rgd6qdywy7sc3rmb1";
+    rev = "v${version}";
+    sha256 = "sha256-gkSDxcBoYmCBzkO8y1WKcRtZdfl8w5qVix0zbyb4Myo=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-pj9XLzaGU1PuNnpTL/7XaKJZUymX+i8hFMroZtHIqTc=";
+
+  ldflags = [ "-s" "-w" "-X main.build_version=${version}" ];
+
+  doCheck = false;
+
+  passthru.tests.version = testers.testVersion {
+    package = terraform-inventory;
+  };
 
   meta = with lib; {
     homepage = "https://github.com/adammck/terraform-inventory";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix
deleted file mode 100644
index 9f7b5e317fe3..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/adammck/venv";
-    fetch = {
-      type = "git";
-      url = "https://github.com/adammck/venv";
-      rev = "8a9c907a37d36a8f34fa1c5b81aaf80c2554a306";
-      sha256 = "1fzk3j4q59kpd2ks2aw8rmic6b123p5mh981cjh0kzs716grc6y8";
-    };
-  }
-  {
-    goPackagePath = "github.com/blang/vfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/blang/vfs";
-      rev = "c14afcac17253ce7418da751ec6b1988790cdc8f";
-      sha256 = "00q5qzxpn9n59nrmrljz4w9lljxvrr8i5j8i8b4iw86j0alcx53b";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
index 93be46bc7927..312bf72f5a5a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildGoModule
 , fetchFromGitHub
 , callPackage
@@ -16,13 +17,14 @@ let
      , rev
      , version
      , sha256
-     , vendorSha256 ? throw "vendorSha256 missing: please use `buildGoModule`" /* added 2022/01 */
+     , vendorSha256
      , deleteVendor ? false
      , proxyVendor ? false
+     , mkProviderGoModule ? buildGoModule
      , # Looks like "registry.terraform.io/vancluever/acme"
        provider-source-address
      }@attrs:
-      buildGoModule {
+      mkProviderGoModule {
         pname = repo;
         inherit vendorSha256 version deleteVendor proxyVendor;
         subPackages = [ "." ];
@@ -32,6 +34,7 @@ let
         CGO_ENABLED = 0;
         ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=${rev}" ];
         src = fetchFromGitHub {
+          name = "source-${rev}";
           inherit owner repo rev sha256;
         };
 
@@ -55,54 +58,26 @@ let
   # These are the providers that don't fall in line with the default model
   special-providers =
     {
-      # Packages that don't fit the default model
-
-      # mkisofs needed to create ISOs holding cloud-init data,
-      # and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630
+      # mkisofs needed to create ISOs holding cloud-init data and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630
       libvirt = automated-providers.libvirt.overrideAttrs (_: { propagatedBuildInputs = [ cdrtools ]; });
     };
 
   # Put all the providers we not longer support in this list.
   removed-providers =
     let
-      archived = date: throw "the provider has been archived by upstream on ${date}";
-      removed = date: throw "removed from nixpkgs on ${date}";
+      archived = name: date: throw "the ${name} terraform provider has been archived by upstream on ${date}";
+      removed = name: date: throw "the ${name} terraform provider removed from nixpkgs on ${date}";
     in
-    lib.optionalAttrs (config.allowAliases or false) {
-      arukas = archived "2022/01";
-      chef = archived "2022/01";
-      cherryservers = archived "2022/01";
-      clc = archived "2022/01";
-      cloudstack = removed "2022/01";
-      cobbler = archived "2022/01";
-      cohesity = archived "2022/01";
-      dyn = archived "2022/01";
-      genymotion = archived "2022/01";
-      hedvig = archived "2022/01";
-      ignition = archived "2022/01";
-      incapsula = archived "2022/01";
-      influxdb = archived "2022/01";
-      jdcloud = archived "2022/01";
-      kubernetes-alpha = throw "This has been merged as beta into the kubernetes provider. See https://www.hashicorp.com/blog/beta-support-for-crds-in-the-terraform-provider-for-kubernetes for details";
-      librato = archived "2022/01";
-      logentries = archived "2022/01";
-      metalcloud = archived "2022/01";
-      mysql = archived "2022/01";
-      nixos = archived "2022/01";
-      oneandone = archived "2022/01";
-      packet = archived "2022/01";
-      profitbricks = archived "2022/01";
-      pureport = archived "2022/01";
-      rancher = archived "2022/01";
-      rightscale = archived "2022/01";
-      runscope = archived "2022/01";
-      segment = removed "2022/01";
-      softlayer = archived "2022/01";
-      telefonicaopencloud = archived "2022/01";
-      teleport = removed "2022/01";
-      terraform = archived "2022/01";
-      ultradns = archived "2022/01";
-      vthunder = throw "provider was renamed to thunder on 2022/01";
+    lib.optionalAttrs config.allowAliases {
+      b2 = removed "b2" "2022/06";
+      dome9 = removed "dome9" "2022/08";
+      ncloud = removed "ncloud" "2022/08";
+      opc = archived "opc" "2022/05";
+      oraclepaas = archived "oraclepaas" "2022/05";
+      template = archived "template" "2022/05";
     };
+
+  # excluding aliases, used by terraform-full
+  actualProviders = automated-providers // special-providers;
 in
-automated-providers // special-providers // removed-providers // { inherit mkProvider; }
+actualProviders // removed-providers // { inherit actualProviders mkProvider; }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 56743624efaa..9ab1a586edee 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -1,57 +1,68 @@
 {
   "aci": {
+    "deleteVendor": true,
     "owner": "CiscoDevNet",
     "provider-source-address": "registry.terraform.io/CiscoDevNet/aci",
+    "proxyVendor": true,
     "repo": "terraform-provider-aci",
-    "rev": "v2.1.0",
-    "sha256": "sha256-7fOvTEinJUpSaCnlP+191VTSEpE4z11+HUcH2iTFj60=",
-    "vendorSha256": null,
-    "version": "2.1.0"
+    "rev": "v2.5.2",
+    "sha256": "sha256-Y2cNp2BuPEH5wAEwaMVSBgKoHrcy6d4eOlsGPqAxmoU=",
+    "vendorSha256": "sha256-AB+uj4hQIYMVQHhw1cISB2TotNO8rw1iU0/gP096CoE=",
+    "version": "2.5.2"
   },
   "acme": {
     "owner": "vancluever",
     "provider-source-address": "registry.terraform.io/vancluever/acme",
     "repo": "terraform-provider-acme",
-    "rev": "v2.8.0",
-    "sha256": "06wjvjsh8qgncrbdhziqjd4pgp550q21p0xm4igdx80gd7541hr1",
-    "vendorSha256": "1gpbc72q7mjyjxk75dyfi3j2fk6glgz0a15m2pq7clyc35kapnkc",
-    "version": "2.8.0"
+    "rev": "v2.10.0",
+    "sha256": "sha256-nafJJ2Gr2jA09mjh8hozdDgl67h+10D35KtqjTUPgBE=",
+    "vendorSha256": "sha256-lNI0u8DCBl4mGVecRfAqieCooyJlqK+Z4eixPFFyBuU=",
+    "version": "2.10.0"
+  },
+  "age": {
+    "owner": "clementblaise",
+    "provider-source-address": "registry.terraform.io/clementblaise/age",
+    "repo": "terraform-provider-age",
+    "rev": "v0.1.1",
+    "sha256": "sha256-bJrzjvkrCX93bNqCA+FdRibHnAw6cb61StqtwUY5ok4=",
+    "vendorSha256": "sha256-jK7JuARpoxq7hvq5+vTtUwcYot0YqlOZdtDwq4IqKvk=",
+    "version": "0.1.1"
   },
   "aiven": {
     "owner": "aiven",
     "provider-source-address": "registry.terraform.io/aiven/aiven",
     "repo": "terraform-provider-aiven",
-    "rev": "v2.7.0",
-    "sha256": "12n97z3r5bz7hwgcz193x90n7ibk4fdph7pqxwwinrvlc6zb7hz6",
-    "vendorSha256": "12lj7p74mhiy30fhc12ihbf827axlbxhbfzr10iwwhb0nydsfiyl",
-    "version": "2.7.0"
+    "rev": "v3.5.1",
+    "sha256": "sha256-EJPf8jDANrjg+XPhFn6L7GPUya2WbrSUX8/hQldQmnQ=",
+    "vendorSha256": "sha256-X9AJM4OsJ2/zl2Mm6gaz5wA6hk9AfOlUFYYN9Ojirrc=",
+    "version": "3.5.1"
   },
   "akamai": {
     "owner": "akamai",
     "provider-source-address": "registry.terraform.io/akamai/akamai",
     "repo": "terraform-provider-akamai",
-    "rev": "v1.11.0",
-    "sha256": "1ccliv8p36rh7f7zacjsa2x846d36nygbgs0vyjb0bpf5pl7grgd",
-    "vendorSha256": "19n841mby0l7ipjmmqsl5vnfmsj6y8fci1vzi8z6dqy3xcjlhwgb",
-    "version": "1.11.0"
+    "rev": "v2.2.0",
+    "sha256": "sha256-OhHzFRxOmJR2NW1UX38+ep/VmmZ9xfPqwUo/37/hGyU=",
+    "vendorSha256": "sha256-rhA0Mm+Uu+F8zyRLj4fRED+pJ0TpZvVSFKvmm0OAhPY=",
+    "version": "2.2.0"
   },
   "alicloud": {
     "deleteVendor": true,
     "owner": "aliyun",
     "provider-source-address": "registry.terraform.io/aliyun/alicloud",
     "repo": "terraform-provider-alicloud",
-    "rev": "v1.162.0",
-    "sha256": "sha256-xqZv15Tst+7o9HhNu6/bW+a4z7FTkra+MfS8jKrfeNs=",
-    "vendorSha256": "sha256-RbOf/S0rkbhW0s+/YOqu+BQuE0V4aS2x36Xf+hgBkqY=",
-    "version": "1.162.0"
+    "rev": "v1.181.0",
+    "sha256": "sha256-zJagnn/nfueGwevgQaaiB5Y3DF6214JPa/fD/XctLHU=",
+    "vendorSha256": "sha256-kjr93pVmMZgeJgeG8hG86CDWr95gCIAhf93OQ4tJ9kw=",
+    "version": "1.181.0"
   },
   "ansible": {
     "owner": "nbering",
     "provider-source-address": "registry.terraform.io/nbering/ansible",
     "repo": "terraform-provider-ansible",
     "rev": "v1.0.4",
-    "sha256": "1djjcrcm9218rfn51kpzp3cbb5qbkfwpjqm9h9rhadibbvjmly6y",
-    "vendorSha256": "1kc47n1janmiwwjphvxpily3dwyy1axxh36aj3sb2kpawi4pq1rq",
+    "sha256": "sha256-3nha5V4rNgVzgqliebmbC5e12Lj/zlCsyyiIVFlmUrY=",
+    "vendorSha256": "sha256-OAd8SeTqTrH0kMoM2LsK3vM2PI23b3gl57FaJYM9hM0=",
     "version": "1.0.4"
   },
   "archive": {
@@ -59,161 +70,181 @@
     "provider-source-address": "registry.terraform.io/hashicorp/archive",
     "repo": "terraform-provider-archive",
     "rev": "v2.2.0",
-    "sha256": "11iv6c0bnrp2s69h3b7f238jdnkcjgrihp8c46lhw393ki6aqfhk",
+    "sha256": "sha256-EzqsTJwjDQ6pIQxdGPOTbNom0RDurAGT0eJmuwAzO4Y=",
     "vendorSha256": null,
     "version": "2.2.0"
   },
   "auth0": {
-    "owner": "alexkappa",
-    "provider-source-address": "registry.terraform.io/alexkappa/auth0",
+    "owner": "auth0",
+    "provider-source-address": "registry.terraform.io/auth0/auth0",
     "repo": "terraform-provider-auth0",
-    "rev": "v0.26.2",
-    "sha256": "1n9gn7zsdygdr2ybki7xz2snp3fygls6myb1w5zndby497kgxrkw",
-    "vendorSha256": "1x61f7vz73m2q6pdb6ddy27j4npiwrrlgzvd90zrcc0yj22h6mms",
-    "version": "0.26.2"
+    "rev": "v0.35.0",
+    "sha256": "sha256-deXywsZkAms/T0j4YT4WmTvHPB4AUet4tDETYtRQOQo=",
+    "vendorSha256": "sha256-u1tBA/uWqWa2j2094zHNPinzOJ9ogwMNwsF6QSfnOy0=",
+    "version": "0.35.0"
   },
   "avi": {
     "owner": "vmware",
     "provider-source-address": "registry.terraform.io/vmware/avi",
     "repo": "terraform-provider-avi",
-    "rev": "v21.1.3",
-    "sha256": "160l9864p73283hc27qaabd3lrh7lm8fyh6k9xlal5isfd9vrm5p",
-    "vendorSha256": "1hw1xp20nhs4p1q9l887m82456fg5977pm66165gdkczwrq2zr6v",
-    "version": "21.1.3"
+    "rev": "v22.1.1",
+    "sha256": "sha256-BQ4M1e7wWDCq2HEJIoAAqSUmq9hV66auvH47p3j2M8I=",
+    "vendorSha256": "sha256-otOArethLfanpp3KjQCutrlOxkcpr+6YHn5xWl31feE=",
+    "version": "22.1.1"
   },
   "aviatrix": {
     "owner": "AviatrixSystems",
     "provider-source-address": "registry.terraform.io/AviatrixSystems/aviatrix",
     "repo": "terraform-provider-aviatrix",
-    "rev": "v2.21.1-6.6.ga",
-    "sha256": "16ym9zyvvz7kb44rm97wqa7h431jkh70q3gf68mmxihvxpjvfcdh",
+    "rev": "v2.23.0",
+    "sha256": "sha256-ub8SKZC6l1+F2mEP4L6WP0VW/8k1ri80ruUjRvrl55A=",
     "vendorSha256": null,
-    "version": "2.21.1-6.6.ga"
+    "version": "2.23.0"
   },
   "aws": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/aws",
     "repo": "terraform-provider-aws",
-    "rev": "v4.8.0",
-    "sha256": "sha256-Ere41qols4lNnoAIZGWQmituukLnPNbv5d8C/e3rQgI=",
-    "vendorSha256": "sha256-ZXH9YlSii2z1s6Y/TfZVBje0/xQ2DXw3ZpgcBPeQZ2I=",
-    "version": "4.8.0"
+    "rev": "v4.26.0",
+    "sha256": "sha256-LC1Q1IjGXjCAQ1P2QdAiVaX/bW0m8w8obDd6ItKhcQo=",
+    "vendorSha256": "sha256-iNVG54Nuq7oWXpLRxDSgiVVreJ6kbPA6cDBy8XA0B4o=",
+    "version": "4.26.0"
   },
   "azuread": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/azuread",
     "repo": "terraform-provider-azuread",
-    "rev": "v2.19.1",
-    "sha256": "sha256-n5jDlcy5rwCcrqoL3ut+HThDLQ8hPj2mZ15d7hhALFw=",
+    "rev": "v2.27.0",
+    "sha256": "sha256-E8O0+OblKl1aSOXB5fnc34m+pUsfIZ6eHWoAq6HkKHs=",
     "vendorSha256": null,
-    "version": "2.19.1"
+    "version": "2.27.0"
   },
   "azurerm": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/azurerm",
     "repo": "terraform-provider-azurerm",
-    "rev": "v3.0.2",
-    "sha256": "sha256-T24bfys9OxBnGN4YtJEsJmSUK26a5hMnbgZUANcpg3k=",
+    "rev": "v3.18.0",
+    "sha256": "sha256-OmOmbPEkrwRm6AhvJRKGvZCVVspYKMKMgmhdqBq9aJI=",
     "vendorSha256": null,
-    "version": "3.0.2"
+    "version": "3.18.0"
   },
   "azurestack": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/azurestack",
     "repo": "terraform-provider-azurestack",
-    "rev": "v0.10.0",
-    "sha256": "0lcwrp6n3l1nink06wq2nrirs6k3wwjmya1w06x14pvqqdj1d5c8",
+    "rev": "v1.0.0",
+    "sha256": "sha256-aSwVa7y1AJ6sExx+bO/93oLBNgSBDJjuPYPY8i3C9T0=",
     "vendorSha256": null,
-    "version": "0.10.0"
+    "version": "1.0.0"
   },
   "baiducloud": {
+    "deleteVendor": true,
     "owner": "baidubce",
     "provider-source-address": "registry.terraform.io/baidubce/baiducloud",
     "repo": "terraform-provider-baiducloud",
-    "rev": "v1.12.0",
-    "sha256": "1m7cw08ld073q1dsa7njshps21nc71gsz0kp6qj0p638zqx62xn7",
-    "vendorSha256": null,
-    "version": "1.12.0"
+    "rev": "v1.14.5",
+    "sha256": "sha256-fZOPtfAA1lXb6kf9oZnPeL5+spriEDhVCimFOVTyOsw=",
+    "vendorSha256": "sha256-p5xloe5ixgpoD7rPRiO9cNLm3Tmlk7pEJT+xXOZWA6o=",
+    "version": "1.14.5"
   },
   "bigip": {
     "owner": "F5Networks",
     "provider-source-address": "registry.terraform.io/F5Networks/bigip",
     "repo": "terraform-provider-bigip",
-    "rev": "v1.13.0",
-    "sha256": "0l1fgbzv3zjsgmnkg96ac299plx9zi4j54cjxrl27csvf87wi4lv",
+    "rev": "v1.15.0",
+    "sha256": "sha256-AjAXZzTTyizeR/SO8MolaL2TdogAA/ydeaGd3pf5CYo=",
     "vendorSha256": null,
-    "version": "1.13.0"
+    "version": "1.15.0"
   },
   "bitbucket": {
     "owner": "DrFaust92",
     "provider-source-address": "registry.terraform.io/DrFaust92/bitbucket",
     "repo": "terraform-provider-bitbucket",
-    "rev": "v2.13.1",
-    "sha256": "sha256-P/6scAuRMRrACHmEdWjn+W37ptVmVgtj+iTXQDrG+WM=",
-    "vendorSha256": "sha256-o1CZ4VuGCPALqSIz8KSm1zCwd3r9bR13CRvP7XpVBAM=",
-    "version": "2.13.1"
+    "rev": "v2.20.0",
+    "sha256": "sha256-8GWxUb7ABulZ6jK9PATYfSbcyTCZ5Mqv3X3zjY3gquU=",
+    "vendorSha256": "sha256-h/hm5HtY3OCJ6Mtq+A3PBmH10xgYpKwjhwbDd1HtdoQ=",
+    "version": "2.20.0"
   },
   "brightbox": {
     "owner": "brightbox",
     "provider-source-address": "registry.terraform.io/brightbox/brightbox",
     "repo": "terraform-provider-brightbox",
-    "rev": "v2.2.0",
-    "sha256": "1n0gdfsj8ylmm5pqsjs3dvjvj8larc30x5p9jq546xvi2idvl39n",
-    "vendorSha256": "03761vl8xcirmas38q8xivx2r312c07fmg1y80lklmswbd8d0f71",
-    "version": "2.2.0"
+    "rev": "v3.0.4",
+    "sha256": "sha256-UUDL1w/3IEa+Na77FoYReevJLT3AJq5giHYS6Bq4DQs=",
+    "vendorSha256": "sha256-M/S7gRRcAs53Ctx1oecHrlTxYxI1Kpr3ygTZLHG/9pY=",
+    "version": "3.0.4"
+  },
+  "buildkite": {
+    "owner": "buildkite",
+    "provider-source-address": "registry.terraform.io/buildkite/buildkite",
+    "proxyVendor": true,
+    "repo": "terraform-provider-buildkite",
+    "rev": "v0.11.0",
+    "sha256": "sha256-BpQpMAecpknI8b1q6XuZPty8I/AUTAwQWm5Y28XJ+G4=",
+    "vendorSha256": "sha256-j56iEtoyKzB8oIMptJDbXCKXOC1L5v1+cpwWU1+uARE=",
+    "version": "0.11.0"
   },
   "checkly": {
     "owner": "checkly",
     "provider-source-address": "registry.terraform.io/checkly/checkly",
     "repo": "terraform-provider-checkly",
-    "rev": "v1.4.3",
-    "sha256": "sha256-5VF1cAFgdm2TR4wvuNlycpgQuVdHesFYnTv34MeauxY=",
-    "vendorSha256": "sha256-7X2cS5Erf373zu8xqe2KBSz52ZmZOnAlNC8lq2/LXV4=",
-    "version": "1.4.3"
+    "rev": "v1.6.2",
+    "sha256": "sha256-hi6GTToJcKVSpbBBWQN6IREhm8iHFCj+pg71fgZ5rOI=",
+    "vendorSha256": "sha256-VnYRDBneQ+bUzISJM9DJdBEBmjA1WOXPo+kaYBW4w4U=",
+    "version": "1.6.2"
   },
   "checkpoint": {
     "deleteVendor": true,
     "owner": "CheckPointSW",
     "provider-source-address": "registry.terraform.io/CheckPointSW/checkpoint",
     "repo": "terraform-provider-checkpoint",
-    "rev": "v1.7.0",
-    "sha256": "1msd3qjrrhl0v3m7n9ybkwxki5wpchzjswd2dcifbif4k8pcs470",
-    "vendorSha256": "0yaxgyzwja5dl4p7w8q77ash75xwsf05kq88nvmdf94lvspfnwlq",
-    "version": "1.7.0"
+    "rev": "v2.0.0",
+    "sha256": "sha256-z/mB20gQmglr0usVrzhqxR3v9vhoRHXNJ57j8fqNREM=",
+    "vendorSha256": "sha256-rb/X9C8eS9QH88FwuvfvDkGdrjZOTiI9nmcYqydOhdc=",
+    "version": "2.0.0"
   },
   "ciscoasa": {
     "owner": "CiscoDevNet",
     "provider-source-address": "registry.terraform.io/CiscoDevNet/ciscoasa",
     "repo": "terraform-provider-ciscoasa",
     "rev": "v1.3.0",
-    "sha256": "0a7k9pvx4vfap484jyxxjba3a3n28pssnnjiwzlc7n1ja7h3hdy7",
+    "sha256": "sha256-xzc44FEy2MPo51Faq/VFwg411JK9e0kQucpt0vdN8yg=",
     "vendorSha256": null,
     "version": "1.3.0"
   },
+  "cloudamqp": {
+    "owner": "cloudamqp",
+    "provider-source-address": "registry.terraform.io/cloudamqp/cloudamqp",
+    "repo": "terraform-provider-cloudamqp",
+    "rev": "v1.19.1",
+    "sha256": "sha256-oq7wsraZTKSo2tEaUrQ+uzCEuC3LLP6AVLzmCDWBK3A=",
+    "vendorSha256": "sha256-OnkSfHEbbcnSs+pI5wphObRyIXGtNlpeTe/RqxF/pr4=",
+    "version": "1.19.1"
+  },
   "cloudflare": {
     "owner": "cloudflare",
     "provider-source-address": "registry.terraform.io/cloudflare/cloudflare",
     "repo": "terraform-provider-cloudflare",
-    "rev": "v3.11.0",
-    "sha256": "sha256-z7IjLXO/AHWENKYaCospJDcOwOubNcRHKDQzmRkhimw=",
-    "vendorSha256": "sha256-Lx/faIdx4k399sm9p8BVqpiKZtNjZoThBhWWWgEuPyg=",
-    "version": "3.11.0"
+    "rev": "v3.21.0",
+    "sha256": "sha256-qyF3FIDMr+kqx60x7LE/bDwH7tj4zSaASv8ApaxPATI=",
+    "vendorSha256": "sha256-5tJSdXmQto4c5On3mGca1Hji0sg5KtJXvYdbiObCC48=",
+    "version": "3.21.0"
   },
   "cloudfoundry": {
     "owner": "cloudfoundry-community",
     "provider-source-address": "registry.terraform.io/cloudfoundry-community/cloudfoundry",
     "repo": "terraform-provider-cloudfoundry",
-    "rev": "v0.15.2",
-    "sha256": "sha256-I4E+UyiaxEa/UK699xys75IMhNccnBcJ8tgJ3XH0NPg=",
-    "vendorSha256": "sha256-mxsGmI26ZQlj0eagqScF6IeZFX0T6iLqqpgc0ZLpU1E=",
-    "version": "0.15.2"
+    "rev": "v0.15.5",
+    "sha256": "sha256-VfGB0NkT36oYT5F1fh1N/2rlZdfhk+K76AXNh0NkO50=",
+    "vendorSha256": "sha256-dj0XBy3dvpn9aEt+Xab6ZelvXZmt2+BX6qytdsMbIXo=",
+    "version": "0.15.5"
   },
   "cloudinit": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/cloudinit",
     "repo": "terraform-provider-cloudinit",
     "rev": "v2.2.0",
-    "sha256": "0yv52hz60whmqfwv2a6f9f1fpszcyzs78hhz3lq4imz9dv5bd29z",
+    "sha256": "sha256-P4m2ym7p10gwHR9CdPT37OvrgkvOKLG5wxVyYD4UZXs=",
     "vendorSha256": null,
     "version": "2.2.0"
   },
@@ -221,73 +252,74 @@
     "owner": "cloudscale-ch",
     "provider-source-address": "registry.terraform.io/cloudscale-ch/cloudscale",
     "repo": "terraform-provider-cloudscale",
-    "rev": "v3.2.0",
-    "sha256": "1bczibhv2jr2h5mrqs41s6dlsi7i2pbrlbxv4m49q2xlq9lza4yk",
+    "rev": "v4.0.0",
+    "sha256": "sha256-Eo7zT/KiJdzo7fhAcCg6EV29ENM/XSBumAHmL9J8agU=",
     "vendorSha256": null,
-    "version": "3.2.0"
+    "version": "4.0.0"
   },
   "constellix": {
+    "deleteVendor": true,
     "owner": "Constellix",
     "provider-source-address": "registry.terraform.io/Constellix/constellix",
     "repo": "terraform-provider-constellix",
-    "rev": "v0.4.2",
-    "sha256": "sha256-XnLTh/AP0OcFD5U2I1LSNpQ3s1OObueURDnioAtIQlU=",
-    "vendorSha256": null,
-    "version": "0.4.2"
+    "rev": "v0.4.5",
+    "sha256": "sha256-ecwXWYrs7XJM1web+kia2ccpvTjxAVFPzav6lLal4e4=",
+    "vendorSha256": "sha256-UJHDX/vx3n/RTuQ50Y6TAhpEEFk9yBoaz8yK02E8Fhw=",
+    "version": "0.4.5"
   },
   "consul": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/consul",
     "repo": "terraform-provider-consul",
-    "rev": "v2.15.0",
-    "sha256": "sha256-6NQL1ZlHZsxfoRV0zMOXApuCR+nj8CPWjpxj7BAJivY=",
+    "rev": "v2.15.1",
+    "sha256": "sha256-QX0f9yM408HfdGNIpmkAKFUz0RfH90V4WBt1Hnwzoy8=",
     "vendorSha256": null,
-    "version": "2.15.0"
+    "version": "2.15.1"
   },
   "ct": {
     "owner": "poseidon",
     "provider-source-address": "registry.terraform.io/poseidon/ct",
     "repo": "terraform-provider-ct",
-    "rev": "v0.10.0",
-    "sha256": "1wh5qd4m0wxbgd84mnnv5ghi57721wz1bdw0k7ff7l7d4whb0q1z",
-    "vendorSha256": "0qk83ppnwkwvj85dh9p0cv6a0nv8l8zlf4k74cy3m0bqym4ad0qk",
-    "version": "0.10.0"
+    "rev": "v0.11.0",
+    "sha256": "sha256-poEyXP6VfKYKuTCxQxkiWBuc7/1S2J7RolrrPb6nvUI=",
+    "vendorSha256": "sha256-QlmVrcC1ctjAHOd7qsqc9gpqttKplEy4hlT++cFUZfM=",
+    "version": "0.11.0"
   },
   "datadog": {
     "owner": "DataDog",
     "provider-source-address": "registry.terraform.io/DataDog/datadog",
     "repo": "terraform-provider-datadog",
-    "rev": "v3.9.0",
-    "sha256": "sha256-CncMqWIa1JiHkIkNAgIQl4fcKZVKZGD4BZSjuv5cw18=",
-    "vendorSha256": "sha256-U1gVP4o1mj21NW9z8jyV5KhuJNJRYAV1Qvg1fV1zGO4=",
-    "version": "3.9.0"
+    "rev": "v3.14.0",
+    "sha256": "sha256-ErTbQEC01Vn8hqk2wglam/b+80ybzMELPfExwUE9TUo=",
+    "vendorSha256": "sha256-jWqkF0pyp2+pZJyC1+UNYMCDP40Tu9DBrX0WLOqpmnE=",
+    "version": "3.14.0"
   },
   "dhall": {
     "owner": "awakesecurity",
     "provider-source-address": "registry.terraform.io/awakesecurity/dhall",
     "repo": "terraform-provider-dhall",
-    "rev": "v0.0.2",
-    "sha256": "1fw83ic5wwhl5yk1asy8p4cxsdwclw639j7ki1xgpi284h6gmh5a",
-    "vendorSha256": "1wqbblqpb1lpbsn4k9yh43g19iw13q825l5i9wvy4w0w4nzz70p4",
-    "version": "0.0.2"
+    "rev": "v0.0.3",
+    "sha256": "sha256-K0j90YAzYqdyJD4aofyxAJF9QBYNMbhSVm/s1GvWuJ4=",
+    "vendorSha256": "sha256-BpXhKjfxyCLdGRHn1GexW0MoLj4/C6Bn7scZ76JARxQ=",
+    "version": "0.0.3"
   },
   "digitalocean": {
     "owner": "digitalocean",
     "provider-source-address": "registry.terraform.io/digitalocean/digitalocean",
     "repo": "terraform-provider-digitalocean",
-    "rev": "v2.18.0",
-    "sha256": "sha256-MuJpBLOB8AeAlNhQC+rwT6mkZriU4+XgAqQY33xjFck=",
+    "rev": "v2.22.1",
+    "sha256": "sha256-Sc2altZo/8Y1UYpZjT8beq3VUljJAdzyXexB9Yi5WQI=",
     "vendorSha256": null,
-    "version": "2.18.0"
+    "version": "2.22.1"
   },
   "dme": {
     "owner": "DNSMadeEasy",
     "provider-source-address": "registry.terraform.io/DNSMadeEasy/dme",
     "repo": "terraform-provider-dme",
-    "rev": "v1.0.4",
-    "sha256": "01y4mmcsb3d27ir9bin2bsxvd0rhklx3vlldk6s0fbq3aggd99by",
+    "rev": "v1.0.5",
+    "sha256": "sha256-Fz35J15S0JxxVy86xYuwHM1obOYpJVfzEhN1NqoAXbo=",
     "vendorSha256": null,
-    "version": "1.0.4"
+    "version": "1.0.5"
   },
   "dns": {
     "owner": "hashicorp",
@@ -302,46 +334,46 @@
     "owner": "dnsimple",
     "provider-source-address": "registry.terraform.io/dnsimple/dnsimple",
     "repo": "terraform-provider-dnsimple",
-    "rev": "v0.11.1",
-    "sha256": "0jzw1kjykbka59kx30xm3qicjb6fdmm5l4f2dr8g7nxdaqnxri0s",
-    "vendorSha256": "06wggchs5khzyg6fd9s0qj76awnw28s7l278awanqimqgqajijkj",
-    "version": "0.11.1"
+    "rev": "v0.13.0",
+    "sha256": "sha256-Wt/2L4NHaQv5tV2JIjcRMH/mLyfbIk88PFYYmeVNlSQ=",
+    "vendorSha256": "sha256-emwD+bOkkZhh1BOQlW0dfdeD4Y68cULhC+3S7Xrjas4=",
+    "version": "0.13.0"
   },
   "docker": {
     "owner": "kreuzwerker",
     "provider-source-address": "registry.terraform.io/kreuzwerker/docker",
     "repo": "terraform-provider-docker",
-    "rev": "v2.16.0",
-    "sha256": "0bh27al9s6zczdz208lr70qab517lsazpi708z6711pgns7qhwjm",
-    "vendorSha256": "0ykfmksffcc62xwni9dqwgj3vlcmzf6paz6kviljib6sv9vqf0pm",
-    "version": "2.16.0"
-  },
-  "dome9": {
-    "owner": "dome9",
-    "provider-source-address": "registry.terraform.io/dome9/dome9",
-    "repo": "terraform-provider-dome9",
-    "rev": "v1.24.5",
-    "sha256": "0a4q5lf11xxfc9ndicdmjir77rdsiq5a8fwb6065879qaamvaxqi",
-    "vendorSha256": null,
-    "version": "1.24.5"
+    "rev": "v2.20.2",
+    "sha256": "sha256-5xQRUHga83sIIyBiWhXLWkjsBuk/1n4cZg/Y+zYz7+o=",
+    "vendorSha256": "sha256-aPt1y7UEL+Y4aRm0rfHr/yJ393NP2oAqgz7+fo/msQo=",
+    "version": "2.20.2"
   },
   "elasticsearch": {
     "owner": "phillbaker",
     "provider-source-address": "registry.terraform.io/phillbaker/elasticsearch",
     "repo": "terraform-provider-elasticsearch",
-    "rev": "v2.0.0",
-    "sha256": "sha256-wl8pRAB97JObpZvi2rdyDZP5itKcOnm6Gsbku1+5oqQ=",
-    "vendorSha256": "sha256-OCXTZg0JkaxJDEgoF2Qs4BcMSiYkQpLmehWdCpEmTzk=",
-    "version": "2.0.0"
+    "rev": "v2.0.4",
+    "sha256": "sha256-ir3bPtsghZkfJbRyh5nlK9cGPA49WGxZDb3jMtfWzms=",
+    "vendorSha256": "sha256-oVTanZpCWs05HwyIKW2ajiBPz1HXOFzBAt5Us+EtTRw=",
+    "version": "2.0.4"
+  },
+  "equinix": {
+    "owner": "equinix",
+    "provider-source-address": "registry.terraform.io/equinix/equinix",
+    "repo": "terraform-provider-equinix",
+    "rev": "v1.8.0",
+    "sha256": "sha256-U/6d7cfiYjVZ8VIvIBXoM3rsfySlpWOSxwVTcaR7uKQ=",
+    "vendorSha256": "sha256-dB0asOYl4JUtsdmcuWhcX2WioqB4DI3MTJf5ynJOMVA=",
+    "version": "1.8.0"
   },
   "exoscale": {
     "owner": "exoscale",
     "provider-source-address": "registry.terraform.io/exoscale/exoscale",
     "repo": "terraform-provider-exoscale",
-    "rev": "v0.33.1",
-    "sha256": "sha256-HlhJe8jyvtACOF0msFMSrt9l//Ik03poSvhP+JccRyQ=",
+    "rev": "v0.40.0",
+    "sha256": "sha256-CQd/wYY4XRmWPV77uwTQgqZOGqWVdtAgsG8sUNB7y4A=",
     "vendorSha256": null,
-    "version": "0.33.1"
+    "version": "0.40.0"
   },
   "external": {
     "owner": "hashicorp",
@@ -356,145 +388,174 @@
     "owner": "fastly",
     "provider-source-address": "registry.terraform.io/fastly/fastly",
     "repo": "terraform-provider-fastly",
-    "rev": "v1.1.2",
-    "sha256": "sha256-CxyVW9uE9mK+ZF8fyjAsrFKY82xAyGn9k1jOFqTaAhA=",
+    "rev": "v2.2.1",
+    "sha256": "sha256-Ls5yTkwnvBjvGyJZ9Hr+BE6jFuwoTfl/iFVf3WsduF8=",
     "vendorSha256": null,
-    "version": "1.1.2"
+    "version": "2.2.1"
   },
   "flexibleengine": {
     "owner": "FlexibleEngineCloud",
     "provider-source-address": "registry.terraform.io/FlexibleEngineCloud/flexibleengine",
     "repo": "terraform-provider-flexibleengine",
-    "rev": "v1.27.1",
-    "sha256": "0glfs1hq9v3jdga8vvjrybld4g6qmyhy4kayapccbmdnbx9rpg76",
-    "vendorSha256": null,
-    "version": "1.27.1"
+    "rev": "v1.32.0",
+    "sha256": "sha256-zO5bt17cwMnv6kk1McRPOrs4UJ15MBpTRT2WoDovXG4=",
+    "vendorSha256": "sha256-jX98VUNTOa0C9WiAiFUiFQ9W7vhRdXCgmmxz84CmEpw=",
+    "version": "1.32.0"
   },
   "fortios": {
+    "deleteVendor": true,
     "owner": "fortinetdev",
     "provider-source-address": "registry.terraform.io/fortinetdev/fortios",
+    "proxyVendor": true,
     "repo": "terraform-provider-fortios",
-    "rev": "v1.14.0",
-    "sha256": "078wvbihrs6j5yrbqsx5g6l7z05y98kwlyanq5w99fsazz78rr4h",
-    "vendorSha256": null,
-    "version": "1.14.0"
+    "rev": "v1.15.0",
+    "sha256": "sha256-jXaEGWt/O0Cv15ksFax571f6aoDhVpNZSbvbOFj6TZ4=",
+    "vendorSha256": "sha256-WkF2mVDrDlCefM4pjADoXsVwpa7E02c6kUyOgHxNFpo=",
+    "version": "1.15.0"
   },
   "gandi": {
     "owner": "go-gandi",
     "provider-source-address": "registry.terraform.io/go-gandi/gandi",
     "repo": "terraform-provider-gandi",
-    "rev": "v2.0.0",
-    "sha256": "0xvdnjadcddrrfhhp198mraf2bm01xfy7gapjay441dbzffynw1m",
-    "vendorSha256": "1yccjnz6xw3b51xqmiaw78m87y2xmlp9z5z3gx5dbzz0lkj1k523",
-    "version": "2.0.0"
+    "rev": "v2.1.0",
+    "sha256": "sha256-TAigFxgn8OufZTXCBhjURLcUaVvOWvNXonn/QV+Bt6I=",
+    "vendorSha256": "sha256-qDsBI+EruukMnLlLojC2An7lTafQoCkUQU+guhgctSk=",
+    "version": "2.1.0"
   },
   "github": {
     "owner": "integrations",
     "provider-source-address": "registry.terraform.io/integrations/github",
     "repo": "terraform-provider-github",
-    "rev": "v4.23.0",
-    "sha256": "sha256-N7PFLh7qr8OPB92ePLS1B/KexipKV5LFRWvrxdS8cGk=",
+    "rev": "v4.29.0",
+    "sha256": "sha256-on43tlkPxtQFwjbr5zOvzgO8RfcGc8XbUXZURa81Kkc=",
     "vendorSha256": null,
-    "version": "4.23.0"
+    "version": "4.29.0"
   },
   "gitlab": {
     "owner": "gitlabhq",
     "provider-source-address": "registry.terraform.io/gitlabhq/gitlab",
     "repo": "terraform-provider-gitlab",
-    "rev": "v3.12.0",
-    "sha256": "sha256-6CrM2Pt4yB0ZaXvcgUPreIhJrUhXCNt/xt+fExzGJqc=",
-    "vendorSha256": "sha256-78/7+t75xFjLt1JfoVpHVPlM7q5BX+NI/I9ugfjdv+g=",
-    "version": "3.12.0"
+    "rev": "v3.16.1",
+    "sha256": "sha256-sPcgnlczDc0YoNnFgCd0uETLgEhP5n5Al59HtIGGdf4=",
+    "vendorSha256": "sha256-5OXllLq5VjFpay2vVEXczqvSmgLeAQ66fXqYf+eDJOI=",
+    "version": "3.16.1"
   },
   "google": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/google",
     "proxyVendor": true,
     "repo": "terraform-provider-google",
-    "rev": "v4.15.0",
-    "sha256": "sha256-BHtbBfCihy1zh/A9JB03CDh5KpzMWeR/mbuRErJkVUE=",
-    "vendorSha256": "sha256-7xTABs0O2eBBwjP1JNaFhsodl/ItPC+iv7NnwwlACvU=",
-    "version": "4.15.0"
+    "rev": "v4.32.0",
+    "sha256": "sha256-idekFsYnrQ4wHjAIPlZn8dSEqOP9KWQvaqImIN/mJA8=",
+    "vendorSha256": "sha256-LvWKVuHWOsMwucCQtrRMQ3wRnbGMid7jBG47wvBCvmY=",
+    "version": "4.32.0"
   },
   "google-beta": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/google-beta",
     "proxyVendor": true,
     "repo": "terraform-provider-google-beta",
-    "rev": "v4.15.0",
-    "sha256": "sha256-FTT6PS0OS4HPfkM2u4PZwOA/v5VzDwHLdO2s+qgRkW8=",
-    "vendorSha256": "sha256-7xTABs0O2eBBwjP1JNaFhsodl/ItPC+iv7NnwwlACvU=",
-    "version": "4.15.0"
+    "rev": "v4.32.0",
+    "sha256": "sha256-9iYS8lc4+QPnwMMscU/5mcDlaQrKV8Srhn9o64hZq6k=",
+    "vendorSha256": "sha256-LvWKVuHWOsMwucCQtrRMQ3wRnbGMid7jBG47wvBCvmY=",
+    "version": "4.32.0"
+  },
+  "googleworkspace": {
+    "owner": "hashicorp",
+    "provider-source-address": "registry.terraform.io/hashicorp/googleworkspace",
+    "repo": "terraform-provider-googleworkspace",
+    "rev": "v0.7.0",
+    "sha256": "sha256-dedYnsKHizxJZibuvJOMbJoux0W6zgKaK5fxIofKqCY=",
+    "vendorSha256": "sha256-fqVBnAivVekV+4tpkl+E6eNA3wi8mhLevJRCs3W7L2g=",
+    "version": "0.7.0"
   },
   "grafana": {
     "owner": "grafana",
     "provider-source-address": "registry.terraform.io/grafana/grafana",
     "repo": "terraform-provider-grafana",
-    "rev": "v1.20.1",
-    "sha256": "1hl1dplb59hssdlq0j83mix9abfgzkbpqpsfirwd8pv4z47s055j",
-    "vendorSha256": "157y4fwfd2l822ass7v2sa3vn3kxrfhiapg5rwsm8q3lg1g42f2m",
-    "version": "1.20.1"
+    "rev": "v1.25.0",
+    "sha256": "sha256-KB2GTz8Sq9H1MVPaU5qaDhP4NytdQocO4AYO7zoihJc=",
+    "vendorSha256": "sha256-uRsuw2JgKjbCQSodNdufR+vZSD+NI0HgxvWg6p4hUgQ=",
+    "version": "1.25.0"
   },
   "gridscale": {
     "owner": "gridscale",
     "provider-source-address": "registry.terraform.io/gridscale/gridscale",
     "repo": "terraform-provider-gridscale",
-    "rev": "v1.14.1",
-    "sha256": "1vf1xvj3djm1mgrgfj428yh26qxksclxxnvkxl663nqsvy14gd6s",
+    "rev": "v1.15.0",
+    "sha256": "sha256-vbFrwAZBazZok4LwXTTa4QIZpHxIPKv3x6vUyVt2S2I=",
     "vendorSha256": null,
-    "version": "1.14.1"
+    "version": "1.15.0"
   },
   "hcloud": {
     "owner": "hetznercloud",
     "provider-source-address": "registry.terraform.io/hetznercloud/hcloud",
     "repo": "terraform-provider-hcloud",
-    "rev": "v1.33.1",
-    "sha256": "1mskbr0adhnri72fa3afghxpcfbzq0qnpslhh9gdnymvs3afjbdg",
-    "vendorSha256": "0rc4pznb16fm5dhi54fwka44zvngy3hp0cfwlrh84ifmzqgx0mlv",
-    "version": "1.33.1"
+    "rev": "v1.35.1",
+    "sha256": "sha256-7zEvBB4FwI5jx+q4tBwPcwxb5CMVpJAnr5NNYZe2BkA=",
+    "vendorSha256": "sha256-5JfUt5+qZqT1NFLLl0sI26bafbAuqrj99Jiuh+kkH8Y=",
+    "version": "1.35.1"
   },
   "helm": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/helm",
     "repo": "terraform-provider-helm",
-    "rev": "v2.4.1",
-    "sha256": "1lkkydjmm99qmj9bl498swdil909akznhvlqpwr4m67imwlzi1cy",
+    "rev": "v2.6.0",
+    "sha256": "sha256-OzxTPxk3lfmA13KfDGBvDd1AqCsKRw+bv7QiEo9fPQc=",
     "vendorSha256": null,
-    "version": "2.4.1"
+    "version": "2.6.0"
   },
   "heroku": {
     "owner": "heroku",
     "provider-source-address": "registry.terraform.io/heroku/heroku",
     "repo": "terraform-provider-heroku",
-    "rev": "v5.0.1",
-    "sha256": "13nsqvcbb9ydzsgri090ddw2y5gcxa2a07i1hfzm78mf5hflp4rb",
-    "vendorSha256": "13f7841i14b5n5iabqky7694mbqg95f0cvaygapczki5lf2j7fqy",
-    "version": "5.0.1"
+    "rev": "v5.1.2",
+    "sha256": "sha256-jZGjwJdQ/6j/kQvCmOwVUG+U4HXgQj5ca91hCUYaMGQ=",
+    "vendorSha256": null,
+    "version": "5.1.2"
+  },
+  "hetznerdns": {
+    "owner": "timohirt",
+    "provider-source-address": "registry.terraform.io/timohirt/hetznerdns",
+    "repo": "terraform-provider-hetznerdns",
+    "rev": "v2.1.0",
+    "sha256": "sha256-QmD9UlQpyvEz4in1I960J0eC6xNtgk5z8tZUxaApOwE=",
+    "vendorSha256": "sha256-Bat/S4e5vzT0/XOhJ9zCWLa4IE4owLC6ec1yvEh+c0Y=",
+    "version": "2.1.0"
+  },
+  "htpasswd": {
+    "owner": "loafoe",
+    "provider-source-address": "registry.terraform.io/loafoe/htpasswd",
+    "repo": "terraform-provider-htpasswd",
+    "rev": "v1.0.3",
+    "sha256": "sha256-rh1AuD2azYj9bCFPFI9z/1cx6K/pHAEixUG1JXoyPEw=",
+    "vendorSha256": "sha256-FBWwgULCuNilfrGNMETJk7SSOIRFYGpD2L9ExeyFWqE=",
+    "version": "1.0.3"
   },
   "http": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/http",
     "repo": "terraform-provider-http",
-    "rev": "v2.1.0",
-    "sha256": "1gih0ksrmhz82966c45ad2yv829pcgbvls92cll7r5haqgvx6k79",
-    "vendorSha256": null,
-    "version": "2.1.0"
+    "rev": "v3.0.1",
+    "sha256": "sha256-oeHWuXiLQF4cnC2QKWmqfNS5abItAxpYCV9BAId1Ld0=",
+    "vendorSha256": "sha256-fROMSbnav8BiUWD6qdwKi/fGEn4a2lmOuAXsnFTT3fQ=",
+    "version": "3.0.1"
   },
   "huaweicloud": {
     "owner": "huaweicloud",
     "provider-source-address": "registry.terraform.io/huaweicloud/huaweicloud",
     "repo": "terraform-provider-huaweicloud",
-    "rev": "v1.34.1",
-    "sha256": "14dxnphzg53qc9jxp5gr4vv0gj9j9i36zdyxh9ffcpcv4y3v9lkj",
+    "rev": "v1.39.0",
+    "sha256": "sha256-ckjCINqaW8taEzmBEjje3s15OmaAi9LWcSd7vgJyDug=",
     "vendorSha256": null,
-    "version": "1.34.1"
+    "version": "1.39.0"
   },
   "huaweicloudstack": {
     "owner": "huaweicloud",
     "provider-source-address": "registry.terraform.io/huaweicloud/huaweicloudstack",
     "repo": "terraform-provider-huaweicloudstack",
     "rev": "v1.3.0",
-    "sha256": "0ywik9m2a69262ppsb1d97k7g5b1zwk84k05p7m573f5wakl68jr",
+    "sha256": "sha256-WSJDp+LFjVPquQVMgib/YZV35kktLH2vMCIZJWqakXs=",
     "vendorSha256": null,
     "version": "1.3.0"
   },
@@ -503,7 +564,7 @@
     "provider-source-address": "registry.terraform.io/DeterminateSystems/hydra",
     "repo": "terraform-provider-hydra",
     "rev": "v0.1.2",
-    "sha256": "1a1ah5pzng9ik8f18kqx87fdh1c5wqbn2bsbhqrzd1nb8fc5xl03",
+    "sha256": "sha256-A9BemEPLhvYzhksvYRfmhQXY3EEdTxQcmjE9+2+BKqg=",
     "vendorSha256": null,
     "version": "0.1.2"
   },
@@ -511,17 +572,17 @@
     "owner": "IBM-Cloud",
     "provider-source-address": "registry.terraform.io/IBM-Cloud/ibm",
     "repo": "terraform-provider-ibm",
-    "rev": "v1.40.0-beta0",
-    "sha256": "sha256-1C0JdzoHf/GKdlLyHA6GgJpb3lbYFXeMGeWYJ7RkyfU=",
-    "vendorSha256": "sha256-YgRgm5S7cXHO9yqUUuVVkFRQL+pf0RMPJI9oUaWob2I=",
-    "version": "1.40.0-beta0"
+    "rev": "v1.44.2",
+    "sha256": "sha256-rjpuuU456Kfnxxla6GwDnwnPp/EG6C3CMXNLWL5nwAE=",
+    "vendorSha256": "sha256-ew6aLScFXiBiBb4VbfsCJGG4pvO9yNbo3+IR0s4iH5Q=",
+    "version": "1.44.2"
   },
   "icinga2": {
     "owner": "Icinga",
     "provider-source-address": "registry.terraform.io/Icinga/icinga2",
     "repo": "terraform-provider-icinga2",
     "rev": "v0.5.0",
-    "sha256": "0s8a5i2sl7cp1v6v96s9fbhabrid7mv8hizq509flgzklk8smwv3",
+    "sha256": "sha256-Y/Oq0aTzP+oSKPhHiHY9Leal4HJJm7TNDpcdqkUsCmk=",
     "vendorSha256": null,
     "version": "0.5.0"
   },
@@ -530,7 +591,7 @@
     "provider-source-address": "registry.terraform.io/infobloxopen/infoblox",
     "repo": "terraform-provider-infoblox",
     "rev": "v2.1.0",
-    "sha256": "1agxlvm5gxgsfyg1kij09jaly4pj3wfbdc4hk7456m2v1k4r7asn",
+    "sha256": "sha256-VquTyQxbVFPImZCwthwf8hJPlUxAxhmed/r1V+qm/ak=",
     "vendorSha256": null,
     "version": "2.1.0"
   },
@@ -538,37 +599,37 @@
     "owner": "Mongey",
     "provider-source-address": "registry.terraform.io/Mongey/kafka",
     "repo": "terraform-provider-kafka",
-    "rev": "v0.4.2",
-    "sha256": "1qgcjcdkhxh2r2c12zd3b5cjn8zf4rdmw91a9h4izy52fsmc2x3q",
-    "vendorSha256": "1y6q5q84a6hin1h86gbm7c5glmfjc4im0w6cjaznmj9gmrkjh8qg",
-    "version": "0.4.2"
+    "rev": "v0.5.1",
+    "sha256": "sha256-bKbY2cOIORy3D9yCBqVuKUZb650sx+87d4wtUB3dPdg=",
+    "vendorSha256": "sha256-03QV6C2DEN5xwMwABwSvv5Ts6pTHQDBP2zUUqIcOtVQ=",
+    "version": "0.5.1"
   },
   "kafka-connect": {
     "owner": "Mongey",
     "provider-source-address": "registry.terraform.io/Mongey/kafka-connect",
     "repo": "terraform-provider-kafka-connect",
     "rev": "v0.2.4",
-    "sha256": "17qslh2axvwiqmqzaxdl75zg3ww6hcpq7k2bfx026ca7bifqx13f",
-    "vendorSha256": "0acl8ijai4awgxhps17bwnwd9aks0qbjvv4ad6pj8vbf496dc411",
+    "sha256": "sha256-boSOXVxHMSNAd0vMgy+DhvPxfjm0dfVxxZHvrgSkGp8=",
+    "vendorSha256": "sha256-IRDWTCJubSSvaYrsLRcGeqrUuOXrBH1hf1yRqGRElCk=",
     "version": "0.2.4"
   },
   "keycloak": {
     "owner": "mrparkers",
     "provider-source-address": "registry.terraform.io/mrparkers/keycloak",
     "repo": "terraform-provider-keycloak",
-    "rev": "v3.7.0",
-    "sha256": "1qzdm0jgk6f0zyjbv5qaq24h9a37bgb4ghym61vg763lqra69als",
-    "vendorSha256": "1q5z54rz5lqgdv9gfl20gfnzi4in0d65jkfxnmmsx6fjcb9ih4p6",
-    "version": "3.7.0"
+    "rev": "v3.10.0",
+    "sha256": "sha256-JDMPr2uFi+9CcHdyigmP1DM3uRx2+eFnzSaHp+es2Tg=",
+    "vendorSha256": "sha256-8x0MlwAzeA2O6wXXHSk++K0ePmzE9/2lfo2ID83LzRM=",
+    "version": "3.10.0"
   },
   "ksyun": {
     "owner": "kingsoftcloud",
     "provider-source-address": "registry.terraform.io/kingsoftcloud/ksyun",
     "repo": "terraform-provider-ksyun",
-    "rev": "v1.3.43",
-    "sha256": "sha256-HOZ1nhHLdiYy+WR2y4OsyRGReK+OJFTaWqYU0X4eEQ0=",
+    "rev": "v1.3.46",
+    "sha256": "sha256-qaRsja+pj0DgOZX9nNHSnCI2Ew18r3b5F0Ovqj3mR/Q=",
     "vendorSha256": "sha256-nbAEaRFtFtB4ftLgnCv3MmkjFFbcNkCuxZc+G8/ObPE=",
-    "version": "1.3.43"
+    "version": "1.3.46"
   },
   "kubectl": {
     "owner": "gavinbunney",
@@ -583,37 +644,37 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/kubernetes",
     "repo": "terraform-provider-kubernetes",
-    "rev": "v2.9.0",
-    "sha256": "sha256-w16pm2+8M59grW5HUBBtkKaCnvf5p4GQMEHtQa4DLXs=",
+    "rev": "v2.12.1",
+    "sha256": "sha256-wswBD4XqtHZsg8vhxIqtjZkXNhFLu/nHUCJDW/24dbQ=",
     "vendorSha256": null,
-    "version": "2.9.0"
+    "version": "2.12.1"
   },
   "launchdarkly": {
     "owner": "launchdarkly",
     "provider-source-address": "registry.terraform.io/launchdarkly/launchdarkly",
     "repo": "terraform-provider-launchdarkly",
-    "rev": "v2.5.0",
-    "sha256": "1083w217y8l6clj3q31f1lanzngfinw682kdqpm0xfssqas7qzx6",
-    "vendorSha256": "13vcxvw56bn7mdz917lvdryd2d7mcvi83ykbzjfbpxr4lzrrm9qw",
-    "version": "2.5.0"
+    "rev": "v2.9.0",
+    "sha256": "sha256-/9J0c79zm3s0i1Um+w+etlpsd37svtovqmBXnGZ1tog=",
+    "vendorSha256": "sha256-Ef07RvkqXR/7qf8gHayxczBJ/ChHDmxR6+/wzaokkzk=",
+    "version": "2.9.0"
   },
   "libvirt": {
     "owner": "dmacvicar",
     "provider-source-address": "registry.terraform.io/dmacvicar/libvirt",
     "repo": "terraform-provider-libvirt",
     "rev": "v0.6.14",
-    "sha256": "1x1xl3blcs4dpjavf4im82l9vrv0plyyiayy475qjf0sl028criy",
-    "vendorSha256": "1kq0sbz7sv4gw35wl52z7gjv588r82izhrz7ydf5n0c4d2izmg6a",
+    "sha256": "sha256-PmaGBKAaOInLId6r6D29YOedqEA1EreVvI1oRtegPfQ=",
+    "vendorSha256": "sha256-yrz6o2iEAVtc8+dn+KNAGaGy5TtfFMrL4I9sff7SAM8=",
     "version": "0.6.14"
   },
   "linode": {
     "owner": "linode",
     "provider-source-address": "registry.terraform.io/linode/linode",
     "repo": "terraform-provider-linode",
-    "rev": "v1.26.3",
-    "sha256": "sha256-BVPlzrsX04XCaypKhqM9uvDrevak+qXe+x4mSo2G3kY=",
-    "vendorSha256": "sha256-mp1w1JXqrpLl8+pFlrBx/P9ZnGKIu8O/FgR73ff/wpQ=",
-    "version": "1.26.3"
+    "rev": "v1.29.1",
+    "sha256": "sha256-eZ13kVQplnIQNT4KecUeLAfrCime1WNEdG0yuv3dBWk=",
+    "vendorSha256": "sha256-PBnMIEuMGcb+qeFO4e17e9sg58DmL6BEAZJeTTVjS1g=",
+    "version": "1.29.1"
   },
   "linuxbox": {
     "owner": "numtide",
@@ -628,90 +689,90 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/local",
     "repo": "terraform-provider-local",
-    "rev": "v2.2.2",
-    "sha256": "sha256-JpTdRi9EagrnhYnlq6sl6+t4SE6i7T7YrGTsYCDync8=",
-    "vendorSha256": "sha256-Ha/MGbXwwhbVxaHbkU2xBhyNcDxLivk7vYQjfVzWOcY=",
-    "version": "2.2.2"
+    "rev": "v2.2.3",
+    "sha256": "sha256-l9XQpIMMar7ForZuBcGOmqrRuSnthIrilr4CHJ5SiaU=",
+    "vendorSha256": "sha256-5rqn9/NE7Q0VI6SRd2VFKJl4npz9Y0Qp1pEpfj9KxrQ=",
+    "version": "2.2.3"
   },
   "logicmonitor": {
-    "deleteVendor": true,
     "owner": "logicmonitor",
     "provider-source-address": "registry.terraform.io/logicmonitor/logicmonitor",
     "repo": "terraform-provider-logicmonitor",
-    "rev": "v1.3.4",
-    "sha256": "1ypn9nlkijfjl8cjiabfx12ym8gg8n3xrib3xniz1j7xa3p5fdmp",
-    "vendorSha256": "12202jz15wn0xacgxhpcw3155742qpa25mbglljmbx2bzwq0nm1a",
-    "version": "1.3.4"
+    "rev": "v2.0.2",
+    "sha256": "sha256-F22tBNnH8dvSjrd0Wx+bAfiiQ9emJjHGXn3x4mQKH5E=",
+    "vendorSha256": null,
+    "version": "2.0.2"
   },
   "lxd": {
     "owner": "terraform-lxd",
     "provider-source-address": "registry.terraform.io/terraform-lxd/lxd",
     "repo": "terraform-provider-lxd",
-    "rev": "v1.7.1",
-    "sha256": "0r1d0d6fp3rihxhfsxlay0dqp5rmnja9s369msra8jylqyharnrh",
-    "vendorSha256": "11x12jxh4q99hinpljqfchysgkhch93sgv0mz065ws20y0dxzfvs",
-    "version": "1.7.1"
+    "rev": "v1.7.2",
+    "sha256": "sha256-rNqlPyKpBNaIRtiNHB8U8jowWhqdQtDIMxreZ5Dfm3E=",
+    "vendorSha256": "sha256-ervfG/BAaF4M+BXsp0eCDM6nPWQOS3pthClhArsUoYc=",
+    "version": "1.7.2"
   },
   "mailgun": {
     "owner": "wgebis",
     "provider-source-address": "registry.terraform.io/wgebis/mailgun",
     "repo": "terraform-provider-mailgun",
-    "rev": "v0.7.1",
-    "sha256": "0sw4a5ch8izy9lw9qmbj6s5vxz7gxcarga1s1h3vlng9y1dpvp2r",
-    "vendorSha256": "1qwd3jwdh5pzq9sdb62lpkbspfn54jii725p2jgvzg93xarv4n58",
-    "version": "0.7.1"
+    "rev": "v0.7.2",
+    "sha256": "sha256-Yi258SIFSdD+JSi5oX74bhBFYYGYQfSAyYD07eO8MmM=",
+    "vendorSha256": "sha256-g1PEjNV/RE2q7olGQsdM6AbXcXP2UROHC/SwEMPDk8c=",
+    "version": "0.7.2"
   },
   "matchbox": {
     "owner": "poseidon",
     "provider-source-address": "registry.terraform.io/poseidon/matchbox",
     "repo": "terraform-provider-matchbox",
-    "rev": "v0.5.0",
-    "sha256": "0lzrs07kzx6bgmlahhgg6j7lpl9z2cbjy2880rwwzq89m8zhl6mz",
-    "vendorSha256": "0aacb973gisajv0wn00k50ddsma5rv7wy7mjz966a7pgpbmmi91f",
-    "version": "0.5.0"
+    "rev": "v0.5.2",
+    "sha256": "sha256-vWhdStfwReeD1PHTihBoj4GoKnP85nzNzIV/Tjfcz1M=",
+    "vendorSha256": "sha256-coARdDQVs38dVdUH/fsoGVlwh3wYr3aTxKp/FpUzhis=",
+    "version": "0.5.2"
   },
   "metal": {
     "owner": "equinix",
     "provider-source-address": "registry.terraform.io/equinix/metal",
     "repo": "terraform-provider-metal",
-    "rev": "v3.3.0-alpha.2",
-    "sha256": "sha256-RUD4BJy0/s23+OWlQfFEh59BEhhtobW7zDOOcosC0l4=",
-    "vendorSha256": "sha256-Ln9EyycPduVuj+JefH9f+Q5KlNGvbcwcEDgaqH2M0So=",
-    "version": "3.3.0-alpha.2"
+    "rev": "v3.3.0",
+    "sha256": "sha256-1HTSDVMk2VhoYRLInrBK3bDuYU0SwyhBV1p5A2tlU/I=",
+    "vendorSha256": "sha256-QxbZv6YMa5/I4bTeQBNdmG3EKtLEmstnH7HMiZzFJrI=",
+    "version": "3.3.0"
   },
   "minio": {
     "owner": "aminueza",
     "provider-source-address": "registry.terraform.io/aminueza/minio",
     "repo": "terraform-provider-minio",
-    "rev": "v1.5.0",
-    "sha256": "sha256-wHxslrcjv0SuQhbEv95lkGba61HMimE1JLX4lWgSi3s=",
-    "vendorSha256": "sha256-j5DWJodrnGm9a3VsOjk0ZeVBh77C00SMMXrK7SNKKrY=",
-    "version": "1.5.0"
+    "rev": "v1.5.3",
+    "sha256": "sha256-AWVBRrQ90XoJodRsBvqJYjkXSqbQBxWk748na9pTnEk=",
+    "vendorSha256": "sha256-0c8Pj4Ga6yNX1UcZXIhmDXhdZOTY3h/WdGdYo4Hmltc=",
+    "version": "1.5.3"
   },
   "mongodbatlas": {
     "owner": "mongodb",
     "provider-source-address": "registry.terraform.io/mongodb/mongodbatlas",
+    "proxyVendor": true,
     "repo": "terraform-provider-mongodbatlas",
-    "rev": "v1.3.0",
-    "sha256": "0lrzbljd8iklyrmplc64lq4v8y7z5fw7l41y27nsfjl4rm0xz5bn",
-    "vendorSha256": "0kkkrdbapyvfzmnbh5kmhlcz5l8g8gf0mfwbya66iy1bb6f6w4mz",
-    "version": "1.3.0"
+    "rev": "v1.4.3",
+    "sha256": "sha256-0Fwu9fnPVydiQ/A4ebmMcFDyZCc7JxPxqzILIFoYZ4A=",
+    "vendorSha256": "sha256-s55ErNhQ5Yw8a8R+a1ratSkBdwe9NMhtWAsEy/jEjr8=",
+    "version": "1.4.3"
   },
-  "ncloud": {
-    "owner": "NaverCloudPlatform",
-    "provider-source-address": "registry.terraform.io/NaverCloudPlatform/ncloud",
-    "repo": "terraform-provider-ncloud",
-    "rev": "v2.2.6",
-    "sha256": "sha256-Sw3Z6hi+nm/e+lMQQkk8KIa2AK2+q+0gBUe091GnQq0=",
-    "vendorSha256": "sha256-ovHg4GcbMzjEi+qJBpdqhR0YUakZCdnpc10SCu8FP8I=",
-    "version": "2.2.6"
+  "namecheap": {
+    "owner": "namecheap",
+    "provider-source-address": "registry.terraform.io/namecheap/namecheap",
+    "repo": "terraform-provider-namecheap",
+    "rev": "v2.1.0",
+    "sha256": "sha256-cms8YUL+SjTeYyIOQibksi8ZHEBYq2JlgTEpOO1uMZE=",
+    "vendorSha256": null,
+    "version": "2.1.0"
   },
   "netlify": {
     "owner": "AegirHealth",
     "provider-source-address": "registry.terraform.io/AegirHealth/netlify",
     "repo": "terraform-provider-netlify",
     "rev": "v0.6.12",
-    "sha256": "0h3ff1ligjvvlmhghx9g92an79b26nyyq5sq4cdsf6psvwfa2kzd",
+    "sha256": "sha256-7U+hHN/6GqcbI1gX7L01YqVjlUgvdfhgpXvLF2lwbkA=",
     "vendorSha256": null,
     "version": "0.6.12"
   },
@@ -719,37 +780,37 @@
     "owner": "newrelic",
     "provider-source-address": "registry.terraform.io/newrelic/newrelic",
     "repo": "terraform-provider-newrelic",
-    "rev": "v2.41.2",
-    "sha256": "sha256-LCA1K4md1wRRkB7oerUn1MM0TRLcqQBoVpvoxCMGSs8=",
-    "vendorSha256": "sha256-G/GWIE+XeLiHW0xxyjbIpncAnpBmC/+iZnI8MFmi80k=",
-    "version": "2.41.2"
+    "rev": "v2.49.1",
+    "sha256": "sha256-+jjMdBj8yEJBA9etiRo3qu+/KfpOe3Gb2DqCR8YPzPI=",
+    "vendorSha256": "sha256-iIArzW/r57OCtq/lNaFCvQrrGJ8WPHo4md+JrHdMyGs=",
+    "version": "2.49.1"
   },
   "nomad": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/nomad",
     "repo": "terraform-provider-nomad",
-    "rev": "v1.4.16",
-    "sha256": "11pw1ss4rk8hmfk0q9n8nim441ig0cgl1qxsjzcfsznkp5bb11rw",
-    "vendorSha256": "0b813dnkn15sdgvi4lh1l5fppgivzrcv5w56w0yf98vyy8wq7p0j",
-    "version": "1.4.16"
+    "rev": "v1.4.17",
+    "sha256": "sha256-xP0E2rJbsthLIzN0zxDo1eGMb8xBetT+uuCcegVvJUU=",
+    "vendorSha256": "sha256-p+SCagP8Niuc4h1s8l1c7Dao78wnHPRz9vNbFH10BaA=",
+    "version": "1.4.17"
   },
   "ns1": {
     "owner": "ns1-terraform",
     "provider-source-address": "registry.terraform.io/ns1-terraform/ns1",
     "repo": "terraform-provider-ns1",
-    "rev": "v1.12.5",
-    "sha256": "0g69jr96ns2h578cmh5zz27m5dkgygrfr6shvx79wal26fpr8413",
-    "vendorSha256": "0s70626ng7pvqxnx0a4rp22b8spy45y011bvvm77fndm8fc1w9zn",
-    "version": "1.12.5"
+    "rev": "v1.12.7",
+    "sha256": "sha256-pzFfU/fs+c0AjY63CmKeKEKrnf+PF1cfG5P4euFY4ns=",
+    "vendorSha256": "sha256-MaJHCxvD9BM5G8wJbSo06+TIPvJTlXzQ+l9Kdbg0QQw=",
+    "version": "1.12.7"
   },
   "nsxt": {
     "owner": "vmware",
     "provider-source-address": "registry.terraform.io/vmware/nsxt",
     "repo": "terraform-provider-nsxt",
-    "rev": "v3.2.5",
-    "sha256": "0j5kspfmqxdnvk3sfb476rckkn9fdgpw5haf495901a114wynr2l",
+    "rev": "v3.2.8",
+    "sha256": "sha256-oXcT1VmwC9a+U0vM5O9y2As2PbzPr95LrUB6KlFKcMc=",
     "vendorSha256": null,
-    "version": "3.2.5"
+    "version": "3.2.8"
   },
   "null": {
     "owner": "hashicorp",
@@ -765,180 +826,170 @@
     "owner": "nutanix",
     "provider-source-address": "registry.terraform.io/nutanix/nutanix",
     "repo": "terraform-provider-nutanix",
-    "rev": "v1.4.1",
-    "sha256": "sha256-NUu5MB2Y7wWDgKXMfKKygNUmpvfkEVF2Z1lBMpktIdc=",
+    "rev": "v1.7.0",
+    "sha256": "sha256-UWK5QGc/7IETQ+IBQA9uaCV1IBpgwSO24UKFflUw3CU=",
     "vendorSha256": "sha256-LRIfxQGwG988HE5fftGl6JmBG7tTknvmgpm4Fu1NbWI=",
-    "version": "1.4.1"
+    "version": "1.7.0"
   },
   "oci": {
     "owner": "oracle",
     "provider-source-address": "registry.terraform.io/oracle/oci",
     "repo": "terraform-provider-oci",
-    "rev": "v4.69.0",
-    "sha256": "sha256-VwL+i4HtvAJi3R57cjUrg+7rx1LxEUAMwkorCvJ9DcU=",
+    "rev": "v4.88.1",
+    "sha256": "sha256-c0/CYp8FY6M8+qZ32vO0WfTxPpD50WzVQl+Fi6M6l0E=",
     "vendorSha256": null,
-    "version": "4.69.0"
+    "version": "4.88.1"
   },
   "okta": {
     "owner": "okta",
     "provider-source-address": "registry.terraform.io/okta/okta",
     "repo": "terraform-provider-okta",
-    "rev": "v3.22.1",
-    "sha256": "sha256-G1KJJSxJmzFlIUWOs+7htcgp61oWCu+ryCKaIHzxhzw=",
-    "vendorSha256": "sha256-n7ih8QtapA+xno1twlM2b2XGEesdJdJIPD+QWpmJDVA=",
-    "version": "3.22.1"
+    "rev": "v3.34.0",
+    "sha256": "sha256-q3e2vRFuBvdjCZ1kONmWOnAI1bM6g+3evCI4CiW9PIQ=",
+    "vendorSha256": "sha256-pCtE9zGIYBh+GKfMp+28IQD/FSerdCQfpbCw3sXCyeI=",
+    "version": "3.34.0"
   },
   "oktaasa": {
     "owner": "oktadeveloper",
     "provider-source-address": "registry.terraform.io/oktadeveloper/oktaasa",
     "repo": "terraform-provider-oktaasa",
     "rev": "v1.0.1",
-    "sha256": "0ibpa3bb7p5i02bliycg6bcak79gmixww7gc1k1z0aiaij173f6q",
+    "sha256": "sha256-2LhxgowqKvDDDOwdznusL52p2DKP+UiXALHcs9ZQd0U=",
     "vendorSha256": null,
     "version": "1.0.1"
   },
-  "opc": {
-    "owner": "terraform-providers",
-    "provider-source-address": "registry.terraform.io/hashicorp/opc",
-    "repo": "terraform-provider-opc",
-    "rev": "v1.4.1",
-    "sha256": "1kylnjy7s5bkx6zjksbz8sfx77pxcc9ycbi8kd8axnrcmj4q01xc",
-    "vendorSha256": null,
-    "version": "1.4.1"
-  },
   "opennebula": {
-    "deleteVendor": true,
     "owner": "OpenNebula",
     "provider-source-address": "registry.terraform.io/OpenNebula/opennebula",
     "repo": "terraform-provider-opennebula",
-    "rev": "v0.4.3",
-    "sha256": "sha256-mnRRMubaz5hin4kG5NK+GMtTPcsIJu6GS8PKDitNszg=",
-    "vendorSha256": "sha256-JTQJH0f8m6yBL8+jk6q02WPuvyre3mHql9Zy9OJW32M=",
-    "version": "0.4.3"
+    "rev": "v0.5.2",
+    "sha256": "sha256-BeaJUEnksjyA8CBAfxz6WjPYo7x8kx/sgFAsgSvdBBM=",
+    "vendorSha256": "sha256-iT3c0CBSP+FKM4CFsTopY4W41ZCaC8E3Iz1o+THI/fQ=",
+    "version": "0.5.2"
   },
   "openstack": {
     "owner": "terraform-provider-openstack",
     "provider-source-address": "registry.terraform.io/terraform-provider-openstack/openstack",
     "repo": "terraform-provider-openstack",
-    "rev": "v1.47.0",
-    "sha256": "0hbp5hk3b9fdsyqkxb3fzpjiw5dd7h7f3gs3xv5imzkfv1dmqghz",
-    "vendorSha256": "007qmkgp5svhy7gvlkbyxllh0ijsk4xq5kmy7zmjgf7mawp16ny6",
-    "version": "1.47.0"
+    "rev": "v1.48.0",
+    "sha256": "sha256-I2Rl/Z6KHEkhaoslqMD+ZQ8vOnIwLDDJIP3P/3sTWcw=",
+    "vendorSha256": "sha256-XB8odOjqSVg/TJApHCZnlReJYTyD89u7axSilMlIALk=",
+    "version": "1.48.0"
   },
   "opentelekomcloud": {
     "owner": "opentelekomcloud",
     "provider-source-address": "registry.terraform.io/opentelekomcloud/opentelekomcloud",
     "repo": "terraform-provider-opentelekomcloud",
-    "rev": "v1.28.2",
-    "sha256": "sha256-qp5H37Zf9oPYA2vvWKuEpfUeHIfK1NYE9Uk7dcX9izA=",
-    "vendorSha256": "sha256-FMcPG7EJvU6XNKd2+8+xmjqSI0Ec9Xx/6gZvK9zJ3wg=",
-    "version": "1.28.2"
+    "rev": "v1.31.0",
+    "sha256": "sha256-I3Oku5sNlPlRlYcagz2C4LCZI4N3mwlLK6xAWNn7iVo=",
+    "vendorSha256": "sha256-mLroGI3X9nLufz4LT4KCbVoPUZimtMaQ3rI108SKURE=",
+    "version": "1.31.0"
   },
   "opsgenie": {
     "owner": "opsgenie",
     "provider-source-address": "registry.terraform.io/opsgenie/opsgenie",
     "repo": "terraform-provider-opsgenie",
-    "rev": "v0.6.10",
-    "sha256": "1kxq66skal10nx5mgk8qj15chk01fi1pjamgakr1j56m1dgw03cw",
-    "vendorSha256": null,
-    "version": "0.6.10"
-  },
-  "oraclepaas": {
-    "owner": "terraform-providers",
-    "provider-source-address": "registry.terraform.io/hashicorp/oraclepaas",
-    "repo": "terraform-provider-oraclepaas",
-    "rev": "v1.5.3",
-    "sha256": "0xb03b5jgm06rgrllib6zj1nkh54zv2mqjnyfflgnazpf4c1ia15",
+    "rev": "v0.6.14",
+    "sha256": "sha256-IoN7z8/ZPEr6pW7vnDjY65+gAtncV1fr+YsnggSZuZA=",
     "vendorSha256": null,
-    "version": "1.5.3"
+    "version": "0.6.14"
   },
   "ovh": {
     "owner": "ovh",
     "provider-source-address": "registry.terraform.io/ovh/ovh",
     "repo": "terraform-provider-ovh",
-    "rev": "v0.16.0",
-    "sha256": "0vvxcm4ff6zw5ngwq9cia2ifjg8a2adyf66dyc2d8lavvfld22v9",
+    "rev": "v0.19.1",
+    "sha256": "sha256-lQFiJLKxHfXKGNmwi+5wKO2AezmC/yI7igXHZHRnfak=",
     "vendorSha256": null,
-    "version": "0.16.0"
+    "version": "0.19.1"
   },
   "pagerduty": {
     "owner": "PagerDuty",
     "provider-source-address": "registry.terraform.io/PagerDuty/pagerduty",
     "repo": "terraform-provider-pagerduty",
-    "rev": "v2.3.0",
-    "sha256": "02k416zgjg2f4bl4ilxbg0ig2lh86qc4pv96p2slpzyg8ypf87zg",
+    "rev": "v2.5.2",
+    "sha256": "sha256-2+GFn8LO/PUFuYzzvSIcKXdJ++SAuo7Mfh2GkGyksTE=",
     "vendorSha256": null,
-    "version": "2.3.0"
+    "version": "2.5.2"
   },
   "panos": {
     "owner": "PaloAltoNetworks",
     "provider-source-address": "registry.terraform.io/PaloAltoNetworks/panos",
     "repo": "terraform-provider-panos",
-    "rev": "v1.10.0",
-    "sha256": "1nh1kc8pz10014p6dw8l2qdiqxdgcj5yy3da2qhbarwn0qm9fs36",
+    "rev": "v1.10.3",
+    "sha256": "sha256-mscWNK113W7CVKI+qPGYX3irQI3YhkLdXox4pddOdF0=",
     "vendorSha256": null,
-    "version": "1.10.0"
+    "version": "1.10.3"
   },
   "pass": {
     "owner": "camptocamp",
     "provider-source-address": "registry.terraform.io/camptocamp/pass",
     "repo": "terraform-provider-pass",
     "rev": "v2.0.0",
-    "sha256": "1hzfz9ca01i8q9gc0aisklblkyfgzn9bqndis7l0964r1rdhsn44",
-    "vendorSha256": "0fsl27p2p6s4xnmhlzb8bxrg8kjaaim7arj0l6p5y0z9mhy8jpmi",
+    "sha256": "sha256-hFgNWw6ZmATo0bFZvJL9z/lJF506KsBewigGoFj67sM=",
+    "vendorSha256": "sha256-sV6JPKzpA1+uoUBmdWpUSk70cl9ofQqr7USbK+4RVDs=",
     "version": "2.0.0"
   },
   "postgresql": {
     "owner": "cyrilgdn",
     "provider-source-address": "registry.terraform.io/cyrilgdn/postgresql",
     "repo": "terraform-provider-postgresql",
-    "rev": "v1.15.0",
-    "sha256": "04gm7y5qyvipg0a0glgyx257vjrkk4k5pjrvzik6adyrjyidixw1",
-    "vendorSha256": "0pp9c76zdpfyq57jcwv258gipvmy6hjqi933xdi155hkx45cnixr",
-    "version": "1.15.0"
+    "rev": "v1.16.0",
+    "sha256": "sha256-nueqs2SJZxGNzm/gv/mBo8geXI8nZqmDFQ0e539oV2M=",
+    "vendorSha256": "sha256-o2+Uuz0dStf33WZuTFLkJX5rg4G7sJ23/+q+xtQ4mhE=",
+    "version": "1.16.0"
   },
   "powerdns": {
     "owner": "pan-net",
     "provider-source-address": "registry.terraform.io/pan-net/powerdns",
     "repo": "terraform-provider-powerdns",
-    "rev": "v1.4.1",
-    "sha256": "1v1qs042jpin5454yqbdfp2xsgf68cgwlsqfah5hqy1qnq5zbl3z",
+    "rev": "v1.5.0",
+    "sha256": "sha256-NtJs2oNJbjUYNFsbrfo2RYhqOlKA15GJt9gi1HuTIw0=",
     "vendorSha256": null,
-    "version": "1.4.1"
+    "version": "1.5.0"
   },
   "rabbitmq": {
     "owner": "cyrilgdn",
     "provider-source-address": "registry.terraform.io/cyrilgdn/rabbitmq",
     "repo": "terraform-provider-rabbitmq",
     "rev": "v1.6.0",
-    "sha256": "0src4d032z3mpv10fgya2izqm8qfdgr87rfhpnld1r90yvxqgnl2",
-    "vendorSha256": "0m5siifbq0j68dx2hapczhjlyq9wrgwf360vnl08fqlgrl0f7ff1",
+    "sha256": "sha256-gtqH+/Yg5dCovdDlg/JrDqOKfxTKPwfCvnV8MUAjLGs=",
+    "vendorSha256": "sha256-wbnjAM2PYocAtRuY4fjLPGFPJfzsKih6Q0YCvFyMulQ=",
     "version": "1.6.0"
   },
   "rancher2": {
     "owner": "rancher",
     "provider-source-address": "registry.terraform.io/rancher/rancher2",
     "repo": "terraform-provider-rancher2",
-    "rev": "v1.22.2",
-    "sha256": "0k5ljyb55nw993vc3whhnyjgwy97qr1pp5mbi9g40dlm84myi9bm",
-    "vendorSha256": "1x7i69cyss5mkz82ii5pqvjprgvqyd41admfdm7hpci626i9dhsr",
-    "version": "1.22.2"
+    "rev": "v1.24.0",
+    "sha256": "sha256-rNoz34ogNcthKBO26OL4TkIOyD95amPT2ByC6afqV1w=",
+    "vendorSha256": "sha256-cSf/peZBChjrElkwAK4eoczll1fyDvfnxm16wF/pqTs=",
+    "version": "1.24.0"
   },
   "random": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/random",
     "repo": "terraform-provider-random",
-    "rev": "v3.1.2",
-    "sha256": "sha256-Yk1CPR9gN70E+Qpc20vBQG2MY/RCO5cvaNtD8N++d5A=",
-    "vendorSha256": "sha256-/IjOv7/kQlGuV9+9Vhc7zUrr6hbcoxZyKi+q52YA/kk=",
-    "version": "3.1.2"
+    "rev": "v3.3.2",
+    "sha256": "sha256-izTx/uxe/SAsWSlN5husEWK64c9ugdg8BS7lScnWSX4=",
+    "vendorSha256": "sha256-ofU1zZb/C2LFaRCt0NULi+9dQY02lKBlz3jV1/ZhfWU=",
+    "version": "3.3.2"
+  },
+  "remote": {
+    "owner": "tenstad",
+    "provider-source-address": "registry.terraform.io/tenstad/remote",
+    "repo": "terraform-provider-remote",
+    "rev": "v0.1.0",
+    "sha256": "sha256-h6V2sd6j2HzIN1MVMBMqquM54fzmzHPcPfsP5t4bU1A=",
+    "vendorSha256": "sha256-ckPs3iaFbmHbBnwRuYn9XdnGZsj+UoYK4OE/9B6Z6Kc=",
+    "version": "0.1.0"
   },
   "rundeck": {
     "owner": "rundeck",
     "provider-source-address": "registry.terraform.io/rundeck/rundeck",
     "repo": "terraform-provider-rundeck",
     "rev": "v0.4.3",
-    "sha256": "1bvk5mfjpl57dfglksnz1cnvd5qgk2cnidwiwjwa3ssmm2kzji8s",
+    "sha256": "sha256-GkX5p6hV66G45JG3aJmYD5e2LQvf6kmfa6fQK10tc68=",
     "vendorSha256": null,
     "version": "0.4.3"
   },
@@ -946,145 +997,136 @@
     "owner": "scaleway",
     "provider-source-address": "registry.terraform.io/scaleway/scaleway",
     "repo": "terraform-provider-scaleway",
-    "rev": "v2.2.1-rc.1",
-    "sha256": "0f4sizgcy3000k67nb3axa8xhpczvzdla3bnpda27jdrx22ckyz8",
-    "vendorSha256": "11g5v5kvs4qxdg34ai7fpinwbshrjwi9hxzav2vpnzhy8lfqpkzb",
-    "version": "2.2.1-rc.1"
+    "rev": "v2.2.7",
+    "sha256": "sha256-W100EYLKaFH9KGmSkgk0Ig2Z0R+RvYijrm3ikhEvBe8=",
+    "vendorSha256": "sha256-zswPGl4a/V8tOMMUWCjxY8ubSy5GT9pP6eBpqSrAg/k=",
+    "version": "2.2.7"
   },
   "secret": {
     "owner": "numtide",
     "provider-source-address": "registry.terraform.io/numtide/secret",
     "repo": "terraform-provider-secret",
-    "rev": "v1.2.0",
-    "sha256": "1211vvcd00llajza3chw25h0sl43wl116ni4r251k00m6kb5nfwq",
+    "rev": "v1.2.1",
+    "sha256": "sha256-MmAnA/4SAPqLY/gYcJSTnEttQTsDd2kEdkQjQj6Bb+A=",
     "vendorSha256": null,
-    "version": "1.2.0"
+    "version": "1.2.1"
   },
   "selectel": {
     "owner": "selectel",
     "provider-source-address": "registry.terraform.io/selectel/selectel",
     "repo": "terraform-provider-selectel",
-    "rev": "v3.8.0",
-    "sha256": "0qc08v217cv2i43cxcx854rvhihrlhlakfark37vcdrh9z6swf1n",
-    "vendorSha256": "1mjp5yqwl1nya82yf5v6l3sq7iv0m94xy5w7y5avn8h40dl1wfnf",
-    "version": "3.8.0"
+    "rev": "v3.8.4",
+    "sha256": "sha256-27Sdez4coJ4Enc1zTg4lr1SzlW3r6wCjciC5ID8vo0w=",
+    "vendorSha256": "sha256-kmsO9jFoR/93PkOeIo0pkS/OjE+m3QbIspobAv/9+KI=",
+    "version": "3.8.4"
   },
   "sentry": {
     "owner": "jianyuan",
     "provider-source-address": "registry.terraform.io/jianyuan/sentry",
     "repo": "terraform-provider-sentry",
-    "rev": "v0.7.0",
-    "sha256": "09rxgq4m28nhwg6y51m5sq3d12lx7r1q3k76zrd5gpbxagqhvhkr",
-    "vendorSha256": "1wh2nf5q69j1p568c0q5yhlkd8ij3r8jg2769qy51wsj3bbv0wcj",
-    "version": "0.7.0"
+    "rev": "v0.9.4",
+    "sha256": "sha256-dNyUp+gXrOvMQu5tEnv2dOsXihyd19gdYakIo7+h3pY=",
+    "vendorSha256": "sha256-ohPZpFCjawaymVHZoCstPeu+p0erRnfnpbjipT6Sp20=",
+    "version": "0.9.4"
   },
   "shell": {
     "owner": "scottwinkler",
     "provider-source-address": "registry.terraform.io/scottwinkler/shell",
     "repo": "terraform-provider-shell",
     "rev": "v1.7.10",
-    "sha256": "15pw8i1j47ppwrrh1gpfdkba54zab50ziqfqsc17pmv2gisq8d9d",
-    "vendorSha256": "1vgs7nvqa25c0qxhj7jpjfphshxsqhxvxnr9ny7x4ghzg9ab90rh",
+    "sha256": "sha256-LTWEdXxi13sC09jh+EFZ6pOi1mzuvgBz5vceIkNE/JY=",
+    "vendorSha256": "sha256-MIO0VHofPtKPtynbvjvEukMNr5NXHgk7BqwIhbc9+u0=",
     "version": "1.7.10"
   },
   "signalfx": {
     "owner": "splunk-terraform",
     "provider-source-address": "registry.terraform.io/splunk-terraform/signalfx",
     "repo": "terraform-provider-signalfx",
-    "rev": "v6.11.0",
-    "sha256": "sha256-ezd4TzckY5yx/UjwGxH36VX+owI8fBUmxtQFztOsFvs=",
-    "vendorSha256": "sha256-PVbqS37MBkIrr8CO6LxB0NjWWiTI5NFDipX6GvokrnY=",
-    "version": "6.11.0"
+    "rev": "v6.14.0",
+    "sha256": "sha256-29yN8n/m/1kSl9xRlf5dae9KOL16FvfZJuM1fLqWPd4=",
+    "vendorSha256": "sha256-I9fWw6wJiytEuiT8gQVSTKuQggXCMENn4RBxPsenZOY=",
+    "version": "6.14.0"
   },
   "skytap": {
     "owner": "skytap",
     "provider-source-address": "registry.terraform.io/skytap/skytap",
     "repo": "terraform-provider-skytap",
     "rev": "v0.14.5",
-    "sha256": "1l73p0ii9pnbvdv2gi69782w4yvfkf15cx1zvx3k0961wav4f5gj",
+    "sha256": "sha256-8hVHtuLBJDBH3z90VoKbbnvCBTrJxCd228veFCO449A=",
     "vendorSha256": null,
     "version": "0.14.5"
   },
   "snowflake": {
-    "owner": "chanzuckerberg",
-    "provider-source-address": "registry.terraform.io/chanzuckerberg/snowflake",
+    "owner": "Snowflake-Labs",
+    "provider-source-address": "registry.terraform.io/Snowflake-Labs/snowflake",
     "repo": "terraform-provider-snowflake",
-    "rev": "v0.29.0",
-    "sha256": "sha256-CdJHknGzEKfbxzrtqmevKwiYTs1UoRFRj6/ShQ9mdIc=",
-    "vendorSha256": "sha256-G/UIKuKtolLY7RIQF06wzn/ZYTMihEmJZ1DqVcHFGdg=",
-    "version": "0.29.0"
+    "rev": "v0.41.0",
+    "sha256": "sha256-tN7Uryhy5qiIhlT68zaDlKzZUGbMGnGc2D9WebrzVfA=",
+    "vendorSha256": "sha256-I0d7Nm8h7vBHxvcyTousg7Uc+QuYu8FCPabPNMw8rGM=",
+    "version": "0.41.0"
   },
   "sops": {
     "owner": "carlpett",
     "provider-source-address": "registry.terraform.io/carlpett/sops",
     "repo": "terraform-provider-sops",
-    "rev": "v0.6.3",
-    "sha256": "1db67jcgpg279hq4vfk1xhql0msn9fy95m8fdi1cxv54y7zcxwf9",
-    "vendorSha256": "1haw17k6xg3n6hbx3pj8ysyhq35k3lis1qq65qnyskl62y1ia54h",
-    "version": "0.6.3"
+    "rev": "v0.7.1",
+    "sha256": "sha256-6FuThi6iuuUGcMhswAk3Z6Lxth/2nuI57A02Xu2s+/U=",
+    "vendorSha256": "sha256-NO1r/EWLgH1Gogru+qPeZ4sW7FuDENxzNnpLSKstnE8=",
+    "version": "0.7.1"
   },
   "spotinst": {
     "owner": "spotinst",
     "provider-source-address": "registry.terraform.io/spotinst/spotinst",
     "repo": "terraform-provider-spotinst",
-    "rev": "v1.69.0",
-    "sha256": "sha256-pTQvqjh52B9w383yLvhNjDujSgQI1k8WpA1vpcY7RKI=",
-    "vendorSha256": "sha256-X7K0eHbmGBYnJ5ovnD/y6O9r7TTHgK7f7s9w4R5ThBU=",
-    "version": "1.69.0"
+    "rev": "v1.81.0",
+    "sha256": "sha256-UQgN9FTQCtEUvb0OqeQzYrCF/YOZwbvcNkmuyjfkxco=",
+    "vendorSha256": "sha256-hs6wvdUv4SUa1qYWSoJBaJntEJTCdTY1UeVOAoBUOg0=",
+    "version": "1.81.0"
   },
   "stackpath": {
     "owner": "stackpath",
     "provider-source-address": "registry.terraform.io/stackpath/stackpath",
     "repo": "terraform-provider-stackpath",
     "rev": "v1.4.0",
-    "sha256": "1c9ad2hwglajs9qsbkm0d01qfvqzi2mf4i0cxynx1f560hg7sd4x",
-    "vendorSha256": "1i65k1j6yfma1m7lr8qs714pv6rqvy0i8zycpjpdbcbmw3h2xy8n",
+    "sha256": "sha256-nTR9HgSmuNCt7wxE4qqIH2+HA2igzqVx0lLRx6FoKrE=",
+    "vendorSha256": "sha256-Fvku4OB1sdWuvMx/FIHfOJt9STgao0xPDao6b2SYxcQ=",
     "version": "1.4.0"
   },
   "statuscake": {
     "owner": "StatusCakeDev",
     "provider-source-address": "registry.terraform.io/StatusCakeDev/statuscake",
     "repo": "terraform-provider-statuscake",
-    "rev": "v2.0.1-pre",
-    "sha256": "sha256-/SWmGy6kMAt4TAswlpmfs4rVAa/DZBFoE1Yv+EcWfGo=",
-    "vendorSha256": "sha256-sFKhbOsE2eQ4Qxfbtab19nZRIKhJXNdsg274tWRjoVg=",
-    "version": "2.0.1-pre"
+    "rev": "v2.0.3",
+    "sha256": "sha256-QqTHH4wtMMIodOUa2E94L8ICI0G3LddbxWkNEZp5NLU=",
+    "vendorSha256": "sha256-E6DvzloOaamSX3jLKUQQmIccGiI6sFo4oNwU86td05E=",
+    "version": "2.0.3"
   },
   "sumologic": {
     "owner": "SumoLogic",
     "provider-source-address": "registry.terraform.io/SumoLogic/sumologic",
     "repo": "terraform-provider-sumologic",
-    "rev": "v2.13.0",
-    "sha256": "1jg6jdmxi60v8gsqycnq7jy89l2zls37zvl317vhp8f93si2hr2d",
-    "vendorSha256": "19zhpa47wxkxk2nixd960xz9xh38nq5ml7dwnimr4v1mpvw9hcgc",
-    "version": "2.13.0"
-  },
-  "template": {
-    "owner": "hashicorp",
-    "provider-source-address": "registry.terraform.io/hashicorp/template",
-    "repo": "terraform-provider-template",
-    "rev": "v2.2.0",
-    "sha256": "12pn1i06jz4xl50md94yfdggg3pg5bv1viwf35izizm5rnyksyv2",
-    "vendorSha256": null,
-    "version": "2.2.0"
+    "rev": "v2.18.0",
+    "sha256": "sha256-Ahj+twdryRx9EovytxEbm9e/s67/0YXBHdRkD8q3jnY=",
+    "vendorSha256": "sha256-W+dV6rmyOqCeQboYvpxYoNZixv2+uBd2+sc9BvTE+Ag=",
+    "version": "2.18.0"
   },
   "tencentcloud": {
     "owner": "tencentcloudstack",
     "provider-source-address": "registry.terraform.io/tencentcloudstack/tencentcloud",
     "repo": "terraform-provider-tencentcloud",
-    "rev": "v1.66.1",
-    "sha256": "sha256-kzEU+yDm8O9tBNkf+qy945drnPj8wNR4VfBPO6fcbGE=",
+    "rev": "v1.77.3",
+    "sha256": "sha256-OHE8o4KJ2dsSS/Erl7MrRrAl8DTIxotEg69S9fuh7iY=",
     "vendorSha256": null,
-    "version": "1.66.1"
+    "version": "1.77.3"
   },
   "tfe": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/tfe",
     "repo": "terraform-provider-tfe",
-    "rev": "v0.29.0",
-    "sha256": "sha256-2RksakMtNF0FGdUmJ4BBF6pvO2SrW0BNlQo95GIJSK4=",
-    "vendorSha256": "sha256-Nh22X4Unt77oWs/jf2PjZcxrz0nkyJrOY55ZbA972v8=",
-    "version": "0.29.0"
+    "rev": "v0.36.0",
+    "sha256": "sha256-xMIrEkjcYkM/LXdu/0gNX6iMJKZhGs9z2vQBbDHdelo=",
+    "vendorSha256": "sha256-ck6H22N5IXJVa0KeXM0Ntv+16l97v8GaT7xfGme57QE=",
+    "version": "0.36.0"
   },
   "thunder": {
     "owner": "a10networks",
@@ -1099,19 +1141,19 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/time",
     "repo": "terraform-provider-time",
-    "rev": "v0.7.2",
-    "sha256": "02b7l65civmphhdax05ajvbfm2ilqf421di1p3vj1zysz194wgl2",
-    "vendorSha256": "06f5rkxcfc221jl84x4z8q5iydrv8lypancn05kxj0ck89vhf650",
-    "version": "0.7.2"
+    "rev": "v0.8.0",
+    "sha256": "sha256-r1AzzO1fxmDZkxWKg+LUiYU19oAg8TthIJA7c0tktZE=",
+    "vendorSha256": "sha256-67V+lG6mkLuzoJnd8OoH73/XBnkgqDmv6aqpSSsHSqg=",
+    "version": "0.8.0"
   },
   "tls": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/tls",
     "repo": "terraform-provider-tls",
-    "rev": "v3.1.0",
-    "sha256": "0g2bgvw02ydwgb6blica5a139crnyp4hdhzxf433n3fflwyvl6r1",
-    "vendorSha256": null,
-    "version": "3.1.0"
+    "rev": "v4.0.1",
+    "sha256": "sha256-/yfSai1huhk+1OYN6DKspWBdfSDql53lxHWjALD5AV4=",
+    "vendorSha256": "sha256-Uk20wDu2qIs9Ez/H6NyHMS7i34Il0ReuDzC3MnKdHSk=",
+    "version": "4.0.1"
   },
   "triton": {
     "deleteVendor": true,
@@ -1119,72 +1161,71 @@
     "provider-source-address": "registry.terraform.io/joyent/triton",
     "repo": "terraform-provider-triton",
     "rev": "v0.8.2",
-    "sha256": "0jhvslpv18yql5hz67hvagv5xdlnn6qsnvs91g0wf5rr4zbcmd9n",
-    "vendorSha256": "1a9a5jpbn8bikyya50zp1aaacj699gmk9p870a73ksh6w5lcgqjj",
+    "sha256": "sha256-NrXK1ic5F8fBC0lvq7GxlrZe9lMbHvNhodijsC/VG0o=",
+    "vendorSha256": "sha256-UuLHaOEG6jmOAgfdNOtLyUimlAr3g6K8n3Ehu64sKqk=",
     "version": "0.8.2"
   },
   "turbot": {
     "owner": "turbot",
     "provider-source-address": "registry.terraform.io/turbot/turbot",
     "repo": "terraform-provider-turbot",
-    "rev": "v1.8.3",
-    "sha256": "0jx37w4sbm7gj8vqnb58rg24s6fafc73ds954vqh9rjn8a6x0qz9",
+    "rev": "v1.9.1",
+    "sha256": "sha256-x27daeW4M5/7sUtFcMeJMVBO5TPRXSLuFoREdgJ2J6g=",
     "vendorSha256": null,
-    "version": "1.8.3"
+    "version": "1.9.1"
   },
   "ucloud": {
     "owner": "ucloud",
     "provider-source-address": "registry.terraform.io/ucloud/ucloud",
     "repo": "terraform-provider-ucloud",
-    "rev": "v1.31.0",
-    "sha256": "0maiqxrr1xl2q4lgpv0d78znsrrl95qi2bgpr5jd14w1kvw2bj73",
+    "rev": "v1.31.3",
+    "sha256": "sha256-qVBvslXU5pPGMXwaBJ5f0iw4jNLgnnJ4Avr+mhC103Q=",
     "vendorSha256": null,
-    "version": "1.31.0"
+    "version": "1.31.3"
   },
   "utils": {
     "owner": "cloudposse",
     "provider-source-address": "registry.terraform.io/cloudposse/utils",
     "repo": "terraform-provider-utils",
-    "rev": "0.17.17",
-    "sha256": "sha256-QJtdCEw8bnVku4fqAX5MBU9tkPv5jwjra9lGPfUPGQw=",
-    "vendorSha256": "sha256-5EelFIfHVLRiRJig6EeJG6KGJuQ05LX3M5CNxUxQAas=",
-    "version": "0.17.17"
+    "rev": "0.17.28",
+    "sha256": "sha256-8Ep4eYpFSJtIA7twOpUI5ns4/lqSnM07MflQJLnC8eU=",
+    "vendorSha256": "sha256-6ELd3Cxc460TY+XY1AcDQamYg76hWad6bO9BzTEWleU=",
+    "version": "0.17.28"
   },
   "vault": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/vault",
     "repo": "terraform-provider-vault",
-    "rev": "v3.4.0",
-    "sha256": "sha256-guacIY3iXieTiEXJ8mnq6gNWHs1doTNGJ8Su5PTfnaY=",
-    "vendorSha256": "sha256-JiNYM8P6ExGVVOVBYA2WJSZOpZ0PAyoncENqYRXPo7c=",
-    "version": "3.4.0"
+    "rev": "v3.8.2",
+    "sha256": "sha256-fEITfA3XXyUiILPse7fOmBW8M6dzEIUMg+7b3l4z2vo=",
+    "vendorSha256": "sha256-x7uz6VFotS+/eLEeMfaTloKQe/zp47d8e5I63BsGvhM=",
+    "version": "3.8.2"
   },
   "vcd": {
     "owner": "vmware",
     "provider-source-address": "registry.terraform.io/vmware/vcd",
     "repo": "terraform-provider-vcd",
-    "rev": "v3.5.1",
-    "sha256": "1fwkbsgnxn0jl84nji57grasdsbw0ydd7vzcllpv7r1z3jpa545q",
-    "vendorSha256": "0bzp6807l4hspk1c1pmgnzk0axk0nir3v0lqmw9xvkij4c5rnz9s",
-    "version": "3.5.1"
+    "rev": "v3.7.0",
+    "sha256": "sha256-qEElcMl6tCBfOTTTpTFjVYg6E6K9iTXfgmDDozrgNVg=",
+    "vendorSha256": "sha256-u5W7zeOv53VAr4M5T2AAVFRDF/6PNhSm1A2WFo6pnJU=",
+    "version": "3.7.0"
   },
   "venafi": {
-    "deleteVendor": true,
     "owner": "Venafi",
     "provider-source-address": "registry.terraform.io/Venafi/venafi",
     "repo": "terraform-provider-venafi",
-    "rev": "v0.15.2",
-    "sha256": "sha256-jnBunvqdLuU+GTRoXr/62FSnUoD5nfLVCN/wo4NdM3A=",
-    "vendorSha256": "sha256-lj8cuv9jR+3P7OiO/eW8poHcX+LsQo+kOyspiqdMXRY=",
-    "version": "0.15.2"
+    "rev": "v0.16.0",
+    "sha256": "sha256-oGpIa+Up1bv6tf5ibna0DEwIxrZyAefqA8LSAy57QrE=",
+    "vendorSha256": "sha256-F0lMZVMNJ/1SHX8e5v4waQPqZjan/Ll+db+dseZ+dsc=",
+    "version": "0.16.0"
   },
   "vercel": {
     "owner": "ondrejsika",
     "provider-source-address": "registry.terraform.io/ondrejsika/vercel",
     "repo": "terraform-provider-vercel",
     "rev": "v2.1.0",
-    "sha256": "06lskp3mmax7g0lchq6jaxavycj7snkhip9madzqkr552qvz5cgw",
-    "vendorSha256": "0s0kf1v2217q9hfmc7r2yybcfk33k566dfvs2jiq63kyjnadhb0k",
+    "sha256": "sha256-/LHyNxal5Il/UzXdCKfVRzK/VVfSYMgoeKerWsedmho=",
+    "vendorSha256": "sha256-EyzYlJV+DoOjFHq7ZkyZY0zHlvciH1YdTPgEIXZwE2g=",
     "version": "2.1.0"
   },
   "vpsadmin": {
@@ -1192,53 +1233,53 @@
     "provider-source-address": "registry.terraform.io/vpsfreecz/vpsadmin",
     "repo": "terraform-provider-vpsadmin",
     "rev": "v1.0.0",
-    "sha256": "1ci86ikdz8i6gwdiif4ayx15hjm9phr756rvywz8pblaa6niwl9h",
-    "vendorSha256": "1wc0kzinz39kv4gib438js2qv07ndm6yj2qpj041d75hnlq06drv",
+    "sha256": "sha256-MFEerVGKros+9zubcjK8qUpYQveKuBgbfyai32Y0KLI=",
+    "vendorSha256": "sha256-OzcDMLWwnBYIkBcL6U1t9oCNhZZokBUf2TONb+OfgPE=",
     "version": "1.0.0"
   },
   "vra7": {
     "owner": "vmware",
     "provider-source-address": "registry.terraform.io/vmware/vra7",
     "repo": "terraform-provider-vra7",
-    "rev": "v3.0.4",
-    "sha256": "1w16cl27fqpzy1v6cdp61shgrmj787fdfjwhr719n57hqax4pck5",
+    "rev": "v3.0.6",
+    "sha256": "sha256-lHyrBJz6954te57uKpgrqOVztDsDUSqkHtWXnlG0QUw=",
     "vendorSha256": null,
-    "version": "3.0.4"
+    "version": "3.0.6"
   },
   "vsphere": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/vsphere",
     "repo": "terraform-provider-vsphere",
-    "rev": "v2.1.1",
-    "sha256": "sha256-Xu5BMmOHEX+ctPu8374BDGsRC5hnvzji5oI69ptIi3Y=",
-    "vendorSha256": null,
-    "version": "2.1.1"
+    "rev": "v2.2.0",
+    "sha256": "sha256-UwhIGK1zQ++IuwAKH9i+Dlu2vvXkMYL+s1P03qKSe3E=",
+    "vendorSha256": "sha256-160GDEQfymeCJpjYOoWP5sGQ0PJHw9kKPaefmbF5Ig4=",
+    "version": "2.2.0"
   },
   "vultr": {
     "owner": "vultr",
     "provider-source-address": "registry.terraform.io/vultr/vultr",
     "repo": "terraform-provider-vultr",
-    "rev": "v2.10.0",
-    "sha256": "sha256-4WoTMyGKBTYzoqt0Ih+khfsaeJuKox5Sq9ak9xwvvJQ=",
+    "rev": "v2.11.4",
+    "sha256": "sha256-6NiVW6kqUCeit6Dc9GbP4mV03UJkqo+UwHsDE4xMwzQ=",
     "vendorSha256": null,
-    "version": "2.10.0"
+    "version": "2.11.4"
   },
   "wavefront": {
     "owner": "vmware",
     "provider-source-address": "registry.terraform.io/vmware/wavefront",
     "repo": "terraform-provider-wavefront",
-    "rev": "v3.0.2",
-    "sha256": "sha256-HCo6Hw724kQrPOCHoyByThq7L5NIZ/0AHmnQD27RUFA=",
-    "vendorSha256": "sha256-PdSW3tyQUWbBiaM9U3NsqX/j4fMw9ZmjEDdyjxmRfD0=",
-    "version": "3.0.2"
+    "rev": "v3.1.0",
+    "sha256": "sha256-Q9ikBBlqprdu4BheItrWBoWqODgMXLgbtSg9RHtejBE=",
+    "vendorSha256": "sha256-sUzlDapp1smQ4lbgvsz22y3/fGkfJdHBlK7HNfihYpI=",
+    "version": "3.1.0"
   },
   "yandex": {
     "owner": "yandex-cloud",
     "provider-source-address": "registry.terraform.io/yandex-cloud/yandex",
     "repo": "terraform-provider-yandex",
-    "rev": "v0.72.0",
-    "sha256": "0sjwyaqb7rgmwpskw95gmb5k0bfj06f9s8kn76rk1hc8rdqrl251",
-    "vendorSha256": "1bh7sc210n3rzq5065qzch8pfq3ppcg6fhy7yha23xaa5j8yabqx",
-    "version": "0.72.0"
+    "rev": "v0.77.0",
+    "sha256": "sha256-jkFWEUHqsR//IqgFIyFyJBm5EoclD5ri23QrZ3tRG/w=",
+    "vendorSha256": "sha256-08/Av6lrFdhTI0cH5cFbcHKOcDPrchC5wSWW83xHrfU=",
+    "version": "0.77.0"
   }
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider
index 4310fcdcc27b..482da6a60275 100755
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider
@@ -128,9 +128,12 @@ version="$(jq -r '.version' <<<"${registry_response}")"
 if [[ ${old_version} == "${version}" && ${force} != 1 && -z ${vendorSha256} && ${old_vendor_sha256} != "${vendorSha256}" ]]; then
   echo_provider "already at version ${version}"
   exit
-else
-  echo_provider "updating from ${old_version} to ${version}"
 fi
+if [[ ${version} =~ [[:alpha:]] && ${force} != 1 ]]; then
+  echo_provider "not updating to unstable version ${version}"
+  exit
+fi
+echo_provider "updating from ${old_version} to ${version}"
 update_attr version "${version}"
 
 provider_source_url="$(jq -r '.source' <<<"${registry_response}")"
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
index 897acd76237a..495fd38b63d5 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
@@ -66,6 +66,7 @@ let
           timstott
           zimbatm
           zowoq
+          techknowlogick
         ];
       };
     } // attrs');
@@ -84,7 +85,7 @@ let
           passthru = {
             withPlugins = newplugins:
               withPlugins (x: newplugins x ++ actualPlugins);
-            full = withPlugins (p: lib.filter lib.isDerivation (lib.attrValues p));
+            full = withPlugins (p: lib.filter lib.isDerivation (lib.attrValues p.actualProviders));
 
             # Expose wrappers around the override* functions of the terraform
             # derivation.
@@ -167,35 +168,15 @@ rec {
   # Constructor for other terraform versions
   mkTerraform = attrs: pluggable (generic attrs);
 
-  terraform_0_13 = mkTerraform {
-    version = "0.13.7";
-    sha256 = "1cahnmp66dk21g7ga6454yfhaqrxff7hpwpdgc87cswyq823fgjn";
-    patches = [ ./provider-path.patch ];
-    passthru = { inherit plugins; };
-  };
-
-  terraform_0_14 = mkTerraform {
-    version = "0.14.11";
-    sha256 = "1yi1jj3n61g1kn8klw6l78shd23q79llb7qqwigqrx3ki2mp279j";
-    vendorSha256 = "sha256-tWrSr6JCS9s+I0T1o3jgZ395u8IBmh73XGrnJidWI7U=";
-    patches = [ ./provider-path.patch ];
-    passthru = { inherit plugins; };
-  };
-
-  terraform_0_15 = mkTerraform {
-    version = "0.15.5";
-    sha256 = "18f4a6l24s3cym7gk40agxikd90i56q84wziskw1spy9rgv2yx6d";
-    vendorSha256 = "sha256-oFvoEsDunJR4IULdGwS6nHBKWEgUehgT+nNM41W/GYo=";
-    patches = [ ./provider-path-0_15.patch ];
-    passthru = { inherit plugins; };
-  };
-
   terraform_1 = mkTerraform {
-    version = "1.1.7";
-    sha256 = "sha256-E8qY17MSdA7fQW4wGSDiPzbndBP5SZwelAJAWzka/io=";
-    vendorSha256 = "sha256-lyy/hcr00ix6qZoxzSfCbXvDC8dRB2ZjrONywpqbVZ8=";
+    version = "1.2.7";
+    sha256 = "sha256-0AGONBurlm0cSM4HyAmUxLt8GdnqNPh146A8ibyfe+k=";
+    vendorSha256 = "sha256-Whe1prBGsE0q0QdNkzAKwvAP7EVlnD/985gjngh+VI4=";
     patches = [ ./provider-path-0_15.patch ];
-    passthru = { inherit plugins; };
+    passthru = {
+      inherit plugins;
+      tests = { inherit terraform_plugins_test; };
+    };
   };
 
   # Tests that the plugins are being used. Terraform looks at the specific
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch b/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch
deleted file mode 100644
index 39a69e4a389f..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/command/init.go b/command/init.go
-index 403ca245b..05d98329a 100644
---- a/command/init.go
-+++ b/command/init.go
-@@ -64,6 +64,11 @@ func (c *InitCommand) Run(args []string) int {
- 		return 1
- 	}
- 
-+	val, ok := os.LookupEnv("NIX_TERRAFORM_PLUGIN_DIR")
-+	if ok {
-+		flagPluginPath = append(flagPluginPath, val)
-+	}
-+
- 	if len(flagPluginPath) > 0 {
- 		c.pluginPath = flagPluginPath
- 		c.getPlugins = false
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
index 48025dfd7f72..ef43c5986503 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.36.6";
+  version = "0.38.7";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-WSvdv4E/m6mJZdo3s9FHMETKaYNB7mltWrQlTHTFJ/E=";
+    sha256 = "sha256-MPetGR/VAVSLuDHyYeP1s9+4RRZzKanf9xyxas3heYY=";
   };
 
-  vendorSha256 = "sha256-tNgEepKqwiqXhmoRCIEg7VJw7Y0TGt+R+6dZzd8aECg=";
+  vendorSha256 = "sha256-CqImT90jFFLi6XR7jfzFKwhnCHK6B+aM+Ba/L+G3bEg=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix
index 98ce3c474ff2..2f6890b4c699 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "terranix";
-  version = "2.5.3";
+  version = "2.5.4";
 
   src = fetchFromGitHub {
     owner = "mrVanDalo";
     repo = "terranix";
     rev = version;
-    sha256 = "sha256-Jhq0pkyF1KWJ6HgeWLoRfIxo7QHvOwwXzsIxZQgQtK4=";
+    sha256 = "sha256-zctvB0zpPY2C1HkMyEK6NFNuPVNGcU9b8gv9HafBd2A=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tfswitch/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tfswitch/default.nix
index 3e872c27142d..9449c5931b4c 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tfswitch/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tfswitch/default.nix
@@ -1,16 +1,16 @@
 { buildGoModule, lib, fetchFromGitHub }:
 buildGoModule rec {
   pname = "tfswitch";
-  version = "0.13.1218";
+  version = "0.13.1288";
 
   src = fetchFromGitHub {
     owner = "warrensbox";
     repo = "terraform-switcher";
     rev = version;
-    sha256 = "sha256-RJdbNXO+6TqFLapWiZ1UeXGS5522ykQvhhNDEHPr8xE=";
+    sha256 = "sha256-nGFIzYThcuWpcwUahwMPIURubXpOj+ygoDbSnNYkACI=";
   };
 
-  vendorSha256 = "sha256-Xqgki072Iy+snRriPVJ9oaDNJ/LiKL+AuU+eVw0zlDU=";
+  vendorSha256 = "sha256-NX+vzI/Fa/n9ZQjpESes4fNVAmKlA1rqPwSKsL2GEUY=";
 
   # Disable tests since it requires network access and relies on the
   # presence of release.hashicorp.com
@@ -22,7 +22,8 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A command line tool to switch between different versions of terraform";
+    description =
+      "A command line tool to switch between different versions of terraform";
     homepage = "https://github.com/warrensbox/terraform-switcher";
     license = licenses.mit;
     maintainers = with maintainers; [ psibi ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tgswitch/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tgswitch/default.nix
index 5f669a6b9d8a..31df14cebeda 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tgswitch/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tgswitch/default.nix
@@ -1,21 +1,29 @@
-{ buildGoPackage, lib, fetchFromGitHub }:
-buildGoPackage rec {
+{ buildGoModule, lib, fetchFromGitHub }:
+buildGoModule rec {
   pname = "tgswitch";
-  version = "0.5.389";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "warrensbox";
     repo = "tgswitch";
     rev = version;
-    sha256 = "sha256-6hErfI7LEJFgOoJR8IF9jTSBwqbQYeGiwdeJShqxVQ0=";
+    sha256 = "sha256-Q3Cef3B7hfVHLvW8Rx6IdH9g/3luDhpUMZ8TXVpb8gQ=";
   };
 
-  goPackagePath = "github.com/warrensbox/tgswitch";
+  vendorSha256 = "sha256-PlTdbA8Z2I2SWoG7oYG87VQfczx9zP1SCJx70UWOEog=";
+
+  ldflags = [ "-s" "-w" ];
+
+  # There are many modifications need to be done to make tests run. For example:
+  # 1. Network access
+  # 2. Operation on `/var/empty` not permitted on macOS
+  doCheck = false;
 
   meta = with lib; {
-    description = "A command line tool to switch between different versions of terragrunt";
+    description = "Command line tool to switch between different versions of terragrunt";
     homepage = "https://github.com/warrensbox/tgswitch";
     license = licenses.mit;
     maintainers = with maintainers; [ psibi ];
   };
 }
+
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
index c13c08c44a43..f569db785171 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ stdenv, lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "tilt";
   /* Do not use "dev" as a version. If you do, Tilt will consider itself
     running in development environment and try to serve assets from the
     source tree, which is not there once build completes.  */
-  version = "0.26.3";
+  version = "0.30.7";
 
   src = fetchFromGitHub {
     owner  = "tilt-dev";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-jrVf6vNlEkTgALS93o3kIiticvsyFHm5oA2Fh1edAGY=";
+    sha256 = "sha256-zYP9bn3wC5FJwCdDJEBunaEHoFhRKlH7Mec/Stvp76A=";
   };
   vendorSha256 = null;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/vcluster/default.nix b/nixpkgs/pkgs/applications/networking/cluster/vcluster/default.nix
index 7f1476d7fbf8..8a477c543e6c 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/vcluster/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/vcluster/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "vcluster";
-  version = "0.6.0";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "loft-sh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kY12bsZyDb36KE2dWx6RVYlKTbJh+XFQcBpFXoCLgEM=";
+    sha256 = "sha256-aFTugqWr/9e3wQLL4yre2T8CUKq8P0HZLsES8lFZKHY=";
   };
 
   vendorSha256 = null;
@@ -40,6 +40,6 @@ buildGoModule rec {
     downloadPage = "https://github.com/loft-sh/vcluster";
     homepage = "https://www.vcluster.com/";
     license = licenses.asl20;
-    maintainers = with maintainers; [ peterromfeldhk ];
+    maintainers = with maintainers; [ peterromfeldhk berryp ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix b/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
index 88c3a31fd2d7..a25d8d504bcf 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
@@ -1,24 +1,26 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+{ lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "velero";
-  version = "1.8.1";
+  version = "1.9.0";
 
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "velero";
     rev = "v${version}";
-    sha256 = "sha256-oiYr9JQlJVxjZxGhZyOIUy934KedBmDhzK+71qmaD58=";
+    sha256 = "sha256-zoHMyOhHEunJ8LirUxOT1qNY3jB28BEiQ+3GdqriTtQ=";
   };
 
   ldflags = [
     "-s" "-w"
-    "-X github.com/vmware-tanzu/velero/pkg/buildinfo.Version=${version}"
+    "-X github.com/vmware-tanzu/velero/pkg/buildinfo.Version=v${version}"
+    "-X github.com/vmware-tanzu/velero/pkg/buildinfo.ImageRegistry=velero"
     "-X github.com/vmware-tanzu/velero/pkg/buildinfo.GitTreeState=clean"
+    "-X github.com/vmware-tanzu/velero/pkg/buildinfo.GitSHA=none"
   ];
 
-  vendorSha256 = "sha256-DyQ+MHRNZFg80Yz/SCxhnF4NVbIsyhz4mApx0+kgHoA=";
+  vendorSha256 = "sha256-PDXufnddHEA0qCfzJ0O+h3u50gWNkQAnWMZjSVQ0oHc=";
 
   excludedPackages = [ "issue-template-gen" "release-tools" "v1" "velero-restic-restore-helper" ];
 
@@ -29,7 +31,7 @@ buildGoModule rec {
   '';
 
   nativeBuildInputs = [ installShellFiles ];
-  postInstall = ''
+  postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
     $out/bin/velero completion bash > velero.bash
     $out/bin/velero completion zsh > velero.zsh
     installShellCompletion velero.{bash,zsh}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix b/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix
index 128717191725..8c056cdce01a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "waypoint";
-  version = "0.7.2";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ek3WOL1sNPAIkZN/cWDSmlNtN41VL3SKb7Qb4kew8vo=";
+    sha256 = "sha256-wvbtiu4WeuiHtyLkhwAB20XvpvHvy24xPSH5Lxtpea8=";
   };
 
-  vendorSha256 = "sha256-a0O36zyQQSVrGXWpTdCkAAwNAXU23pcFJBB+o2KYnWw=";
+  vendorSha256 = "sha256-bDsmou4zmRz8DyENdteJ3MzhTpCgri4ISIgxi7fhQdc=";
 
   nativeBuildInputs = [ go-bindata installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/werf/default.nix b/nixpkgs/pkgs/applications/networking/cluster/werf/default.nix
index 9a9f454ac003..43c7b6b1396e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/werf/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/werf/default.nix
@@ -2,39 +2,47 @@
 , stdenv
 , buildGoModule
 , fetchFromGitHub
-, pkg-config
-, gpgme
-, glibc
-, lvm2
+, installShellFiles
 , btrfs-progs
+, glibc
+, testers
+, werf
 }:
 
 buildGoModule rec {
   pname = "werf";
-  version = "1.2.78";
+  version = "1.2.160";
 
   src = fetchFromGitHub {
     owner = "werf";
     repo = "werf";
     rev = "v${version}";
-    sha256 = "sha256-ehrzb7WvkYL8oj2RSzKc1KDagV0zg6vMzgpT2sPyhcI=";
+    sha256 = "sha256-UeZpH6A/N+frShOOVeRCsIXdBKiI0chsxQvsGJF5JwE=";
   };
-  vendorSha256 = "sha256-w8ZeAQbZIVOBoRa9fJhXgTeYRCYpkh/U4pwb5u6A9mQ=";
+
+  vendorSha256 = "sha256-XpSAFiweD2oUKleD6ztDp1+3PpfUWXfGaaE/9mzRrUQ=";
+
   proxyVendor = true;
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ gpgme ]
-    ++ lib.optionals stdenv.isLinux [ glibc.static lvm2 btrfs-progs ];
+  subPackages = [ "cmd/werf" ];
 
-  # Flags are derived from
-  # https://github.com/werf/werf/blob/main/scripts/build_release_v3.sh
-  ldflags = [ "-s" "-w" "-X github.com/werf/werf/pkg/werf.Version=v${version}" ]
-    ++ lib.optionals stdenv.isLinux [
-    "-linkmode external"
+  nativeBuildInputs = [ installShellFiles ];
+  buildInputs = lib.optionals stdenv.isLinux [ btrfs-progs glibc.static ];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/werf/werf/pkg/werf.Version=${src.rev}"
+  ] ++ lib.optionals stdenv.isLinux [
     "-extldflags=-static"
+    "-linkmode external"
   ];
-  tags = [ "dfrunmount" "dfssh" "containers_image_openpgp" ]
-    ++ lib.optionals stdenv.isLinux [
+
+  tags = [
+    "containers_image_openpgp"
+    "dfrunmount"
+    "dfssh"
+  ] ++ lib.optionals stdenv.isLinux [
     "exclude_graphdriver_devicemapper"
     "netgo"
     "no_devmapper"
@@ -42,11 +50,29 @@ buildGoModule rec {
     "static_build"
   ];
 
-  subPackages = [ "cmd/werf" ];
+  # There are no tests for cmd/werf.
+  doCheck = false;
+
+  postInstall = ''
+    installShellCompletion --cmd werf \
+      --bash <($out/bin/werf completion --shell=bash) \
+      --zsh <($out/bin/werf completion --shell=zsh)
+  '';
+
+  passthru.tests.version = testers.testVersion {
+    package = werf;
+    command = "werf version";
+    version = "v${version}";
+  };
 
   meta = with lib; {
-    homepage = "https://github.com/werf/werf";
     description = "GitOps delivery tool";
+    longDescription = ''
+      The CLI tool gluing Git, Docker, Helm & Kubernetes with any CI system to
+      implement CI/CD and Giterminism.
+    '';
+    homepage = "https://werf.io";
+    changelog = "https://github.com/werf/werf/releases/tag/${src.rev}";
     license = licenses.asl20;
     maintainers = with maintainers; [ azahi ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/compactor/default.nix b/nixpkgs/pkgs/applications/networking/compactor/default.nix
index 459b5652089c..f13d3d321a15 100644
--- a/nixpkgs/pkgs/applications/networking/compactor/default.nix
+++ b/nixpkgs/pkgs/applications/networking/compactor/default.nix
@@ -1,19 +1,19 @@
 { lib, stdenv, fetchFromGitHub
 , asciidoctor, autoreconfHook, pkg-config
-, boost, libctemplate, libmaxminddb, libpcap, libtins, openssl, protobuf, xz, zlib
+, boost, libctemplate, libmaxminddb, libpcap, libtins, openssl, protobuf, xz, zlib, catch2
 , cbor-diag, cddl, diffutils, file, mktemp, netcat, tcpdump, wireshark-cli
 }:
 
 stdenv.mkDerivation rec {
   pname = "compactor";
-  version = "1.2.0";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "dns-stats";
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    hash = "sha256-AUNPUk70VwJ0nZgMPLMU258nqkL4QP6km0USrZi2ea0=";
+    hash = "sha256-SgmtlbYOrSMzVfzsrbg4qs+yGkXQialiJTI99EBsUjQ=";
   };
 
   nativeBuildInputs = [
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     patchShebangs test-scripts/
+    cp ${catch2}/include/catch2/catch.hpp tests/catch.hpp
   '';
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/applications/networking/davmail/default.nix b/nixpkgs/pkgs/applications/networking/davmail/default.nix
index 4adc508392af..68a14207e297 100644
--- a/nixpkgs/pkgs/applications/networking/davmail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/davmail/default.nix
@@ -1,32 +1,61 @@
-{ fetchurl, lib, stdenv, jre, glib, libXtst, gtk2, makeWrapper, unzip }:
+{ stdenv
+, fetchurl
+, lib
+, makeWrapper
+, unzip
+, glib
+, gtk2
+, gtk3
+, jre
+, libXtst
+, zulu
+, preferGtk3 ? true
+, preferZulu ? true
+}:
 
+let
+  rev = 3390;
+  jre' = if preferZulu then zulu else jre;
+  gtk' = if preferGtk3 then gtk3 else gtk2;
+
+  inherit (lib) makeLibraryPath versions;
+
+in
 stdenv.mkDerivation rec {
   pname = "davmail";
-  version = "5.5.1";
+  version = "6.0.1";
+
   src = fetchurl {
-    url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}-3299.zip";
-    sha256 = "sha256-NN/TUOcUIifNzrJnZmtYhs6UVktjlfoOYJjYaMEQpI4=";
+    url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}-${toString rev}.zip";
+    sha256 = "1i1z1kdglccg7pyidlfbagdhgs0wqvybl8dwxcpglh2hkvi0dba0";
   };
 
+  postPatch = ''
+    sed -i -e '/^JAVA_OPTS/d' davmail
+  '';
+
   sourceRoot = ".";
 
   nativeBuildInputs = [ makeWrapper unzip ];
 
   installPhase = ''
     runHook preInstall
+
     mkdir -p $out/share/davmail
     cp -vR ./* $out/share/davmail
     makeWrapper $out/share/davmail/davmail $out/bin/davmail \
-      --prefix PATH : ${jre}/bin \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ glib gtk2 libXtst ]}
+      --set-default JAVA_OPTS "-Xmx512M -Dsun.net.inetaddr.ttl=60 -Djdk.gtk.version=${lib.versions.major gtk'.version}" \
+      --prefix PATH : ${jre'}/bin \
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ glib gtk' libXtst ]}
+
     runHook postInstall
   '';
 
   meta = with lib; {
-    homepage = "http://davmail.sourceforge.net/";
     description = "A Java application which presents a Microsoft Exchange server as local CALDAV, IMAP and SMTP servers";
-    maintainers = [ maintainers.hinton ];
-    platforms = platforms.all;
+    homepage = "http://davmail.sourceforge.net/";
     license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
index c6ada11d356c..a740153be81b 100644
--- a/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
+++ b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
@@ -2,21 +2,24 @@
 
 buildGoModule rec {
   pname = "dnscontrol";
-  version = "3.15.0";
+  version = "3.19.0";
 
   src = fetchFromGitHub {
     owner = "StackExchange";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-znBvV6z5rMfLeyEBRmAtfwVw1is5jJlGPQplXqEGAAM=";
+    sha256 = "sha256-bP9tksdP/hNjC4opACLYHad8jj137+WQfb3bM8A6tVQ=";
   };
 
-  vendorSha256 = "sha256-S2og/isDy6Jvo9XgIV6XbgrmRJsLnePwh/gll/14Ds0=";
-
-  subPackages = [ "." ];
+  vendorSha256 = "sha256-/lFH/4fQgK0LAqLIn39r+hi0pqNlJuupWlLhOhDh0TU=";
 
   ldflags = [ "-s" "-w" ];
 
+  preCheck = ''
+    # requires network
+    rm pkg/spflib/flatten_test.go pkg/spflib/parse_test.go
+  '';
+
   meta = with lib; {
     description = "Synchronize your DNS to multiple providers from a simple DSL";
     homepage = "https://stackexchange.github.io/dnscontrol/";
diff --git a/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix b/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix
index ef4baaadc2b8..b83729ebc693 100644
--- a/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix
+++ b/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation {
   ];
 
   meta = {
+    broken = stdenv.isDarwin;
     description = "BitTorrent client written in C++";
     longDescription = ''
       CTorrent, a BitTorrent client implemented in C++, with bugfixes and
diff --git a/nixpkgs/pkgs/applications/networking/errbot/default.nix b/nixpkgs/pkgs/applications/networking/errbot/default.nix
index f4a44275b693..032238d399d1 100644
--- a/nixpkgs/pkgs/applications/networking/errbot/default.nix
+++ b/nixpkgs/pkgs/applications/networking/errbot/default.nix
@@ -1,32 +1,12 @@
 { lib
-, ansi
-, buildPythonApplication
-, colorlog
-, daemonize
-, deepmerge
-, dulwich
 , fetchFromGitHub
-, flask
 , glibcLocales
-, hypchat
-, irc
-, jinja2
-, markdown
-, mock
-, pyasn1
-, pyasn1-modules
-, pygments
-, pygments-markdown-lexer
-, pyopenssl
-, pytestCheckHook
-, requests
-, slackclient
-, sleekxmpp
-, telegram
-, webtest
+, python39
 }:
 
-buildPythonApplication rec {
+let
+  python3 = python39;
+in python3.pkgs.buildPythonApplication rec {
   pname = "errbot";
   version = "6.1.7";
 
@@ -41,7 +21,7 @@ buildPythonApplication rec {
 
   buildInputs = [ glibcLocales ];
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with python3.pkgs; [
     ansi
     colorlog
     daemonize
@@ -64,7 +44,7 @@ buildPythonApplication rec {
     webtest
   ];
 
-  checkInputs = [
+  checkInputs = with python3.pkgs; [
     mock
     pytestCheckHook
   ];
@@ -83,7 +63,7 @@ buildPythonApplication rec {
   meta = with lib; {
     description = "Chatbot designed to be simple to extend with plugins written in Python";
     homepage = "http://errbot.io/";
-    maintainers = with maintainers; [ fpletz globin ];
+    maintainers = with maintainers; [ globin ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     # flaky on darwin, "RuntimeError: can't start new thread"
diff --git a/nixpkgs/pkgs/applications/networking/expressvpn/default.nix b/nixpkgs/pkgs/applications/networking/expressvpn/default.nix
new file mode 100644
index 000000000000..0bc0fd34fe5a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/expressvpn/default.nix
@@ -0,0 +1,98 @@
+{ autoPatchelfHook
+, buildFHSUserEnv
+, dpkg
+, fetchurl
+, inotify-tools
+, lib
+, stdenvNoCC
+, sysctl
+, writeScript
+}:
+
+let
+  pname = "expressvpn";
+  clientVersion = "3.25.0";
+  clientBuild = "13";
+  version = lib.strings.concatStringsSep "." [ clientVersion clientBuild ];
+
+  expressvpnBase = stdenvNoCC.mkDerivation {
+    inherit pname version;
+
+    src = fetchurl {
+      url = "https://www.expressvpn.works/clients/linux/expressvpn_${version}-1_amd64.deb";
+      hash = "sha256-lyDjG346FrgT7SZbsWET+Hexl9Un6mzMukfO2PwlInA=";
+    };
+
+    nativeBuildInputs = [ dpkg autoPatchelfHook ];
+
+    dontConfigure = true;
+    dontBuild = true;
+
+    unpackPhase = ''
+      runHook preUnpack
+      dpkg --fsys-tarfile $src | tar --extract
+      runHook postUnpack
+    '';
+
+    installPhase = ''
+      runHook preInstall
+      mv usr/ $out/
+      runHook postInstall
+    '';
+  };
+
+  expressvpndFHS = buildFHSUserEnv {
+    name = "expressvpnd";
+
+    # When connected, it directly creates/deletes resolv.conf to change the DNS entries.
+    # Since it's running in an FHS environment, it has no effect on actual resolv.conf.
+    # Hence, place a watcher that updates host resolv.conf when FHS resolv.conf changes.
+    runScript = writeScript "${pname}-wrapper" ''
+      cp /host/etc/resolv.conf /etc/resolv.conf;
+      while inotifywait /etc 2>/dev/null;
+      do
+        cp /etc/resolv.conf /host/etc/resolv.conf;
+      done &
+      expressvpnd --client-version ${clientVersion} --client-build ${clientBuild}
+    '';
+
+    # expressvpnd binary has hard-coded the path /sbin/sysctl hence below workaround.
+    extraBuildCommands = ''
+      chmod +w sbin
+      ln -s ${sysctl}/bin/sysctl sbin/sysctl
+    '';
+
+    # The expressvpnd binary also uses hard-coded paths to the other binaries and files
+    # it ships with, hence the FHS environment.
+
+    targetPkgs = pkgs: with pkgs; [
+      expressvpnBase
+      inotify-tools
+      iproute2
+    ];
+  };
+in
+stdenvNoCC.mkDerivation {
+  inherit pname version;
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin $out/share
+    ln -s ${expressvpnBase}/bin/expressvpn $out/bin
+    ln -s ${expressvpndFHS}/bin/expressvpnd $out/bin
+    ln -s ${expressvpnBase}/share/{bash-completion,doc,man} $out/share/
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "CLI client for ExpressVPN";
+    homepage = "https://www.expressvpn.com";
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ yureien ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix
deleted file mode 100644
index 4eb8da760bff..000000000000
--- a/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, nix-update-script, meson, ninja, pkg-config, vala, gettext, python3
-, appstream-glib, desktop-file-utils, wrapGAppsHook, gnome-online-accounts
-, gtk3, libgee, libpeas, librest, webkitgtk, gsettings-desktop-schemas
-, curl, glib, gnome, gst_all_1, json-glib, libnotify, libsecret, sqlite, gumbo, libxml2
-}:
-
-stdenv.mkDerivation rec {
-  pname = "feedreader";
-  version = "2.11.0";
-
-  src = fetchFromGitHub {
-    owner = "jangernert";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1agy1nkpkdsy2kbrrc8nrwphj5n86rikjjvwkr8klbf88mzl6civ";
-  };
-
-  nativeBuildInputs = [
-    meson ninja pkg-config vala gettext appstream-glib desktop-file-utils
-    libxml2 python3 wrapGAppsHook
-  ];
-
-  buildInputs = [
-    curl glib json-glib libnotify libsecret sqlite gumbo gtk3
-    libgee libpeas gnome.libsoup librest webkitgtk gsettings-desktop-schemas
-    gnome-online-accounts
-  ] ++ (with gst_all_1; [
-    gstreamer gst-plugins-base gst-plugins-good
-  ]);
-
-  postPatch = ''
-    patchShebangs build-aux/meson_post_install.py
-  '';
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = pname;
-    };
-  };
-
-  meta = with lib; {
-    description = "A modern desktop application designed to complement existing web-based RSS accounts";
-    homepage = "https://jangernert.github.io/FeedReader/";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ edwtjo ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix
index 633c1e744bb6..f80be45ebd1f 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix
@@ -61,7 +61,7 @@ python3.pkgs.buildPythonApplication rec {
     pillow
     pygments
     pygobject3
-    pyreadability
+    readability-lxml
     pytz
     requests
   ];
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix
index 9bb34ffbbd70..22bd33b87717 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "IndieWeb app with extensions for sharing to/reading from micropub endpoints";
     homepage = "https://indigenous.realize.be/indigenous-desktop";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
index e746f115043b..a03b03b035f9 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "newsboat";
-  version = "2.26";
+  version = "2.28";
 
   src = fetchFromGitHub {
     owner = "newsboat";
     repo = "newsboat";
     rev = "r${version}";
-    hash = "sha256-VFeKj8X7gEyxsdsOK6UYJ6xB24gsuzb1Wm4GK5AJCHc=";
+    hash = "sha256-MHbGCGtFPXG+82Qveoiv7f8qqZOxThEYb9y9Kv3pnFc=";
   };
 
-  cargoHash = "sha256-pr/Vzm321/uX4fIGt3kuWrtcgsnDRbeK3AvNO19NDwQ=";
+  cargoHash = "sha256-9YcVKZn51fhkE6bZmaNu7PXsSG8j0M4piBnTWtX8Kcg=";
 
   # TODO: Check if that's still needed
   postPatch = lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
index fdecf62c6a43..71836c382e89 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
@@ -15,8 +15,8 @@
 , webkitgtk
 , glib-networking
 , librsvg
-, xdg-utils
 , gst_all_1
+, xdg-utils
 }:
 
 stdenv.mkDerivation rec {
@@ -78,9 +78,6 @@ stdenv.mkDerivation rec {
 
     # SVG support for gdk-pixbuf
     librsvg
-
-    # Open links in browser
-    xdg-utils
   ] ++ (with gst_all_1; [
     # Audio & video support for webkitgtk WebView
     gstreamer
@@ -89,6 +86,13 @@ stdenv.mkDerivation rec {
     gst-plugins-bad
   ]);
 
+  preFixup = ''
+    gappsWrapperArgs+=(--suffix PATH : "${lib.makeBinPath [
+      # Open links in browser
+      xdg-utils
+    ]}")
+  '';
+
   meta = with lib; {
     description = "A modern feed reader designed for the GNOME desktop";
     homepage = "https://gitlab.com/news-flash/news_flash_gtk";
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/photon/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/photon/default.nix
index 0a02c1db1818..08df4af2db4f 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/photon/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/photon/default.nix
@@ -15,7 +15,7 @@ buildGoModule rec {
 
   proxyVendor = true;
 
-  vendorSha256 = "sha256-1vlgnY4kZJfoAtbv+r8onxL03Ak32zKLJgtrBYZX09g=";
+  vendorSha256 = "sha256-n9XNqXIoqn+f0xKCenJWXUYXtQhtbNBar68onWH/WV4=";
 
   meta = with lib; {
     description = "RSS/Atom reader with the focus on speed, usability and a bit of unix philosophy";
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
index 9f0ebc7d930f..ae98133f1899 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
@@ -42,7 +42,7 @@ buildPythonApplication rec {
     description = "A tool that converts RSS/Atom newsfeeds to email";
     homepage = "https://pypi.python.org/pypi/rss2email";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ jb55 Profpatsch ekleog ];
+    maintainers = with maintainers; [ Profpatsch ekleog ];
   };
   passthru.tests = {
     smoke-test = nixosTests.rss2email;
diff --git a/nixpkgs/pkgs/applications/networking/firewalld/default.nix b/nixpkgs/pkgs/applications/networking/firewalld/default.nix
new file mode 100644
index 000000000000..5ec7bf044736
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/firewalld/default.nix
@@ -0,0 +1,104 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, bash
+, docbook_xml_dtd_42
+, docbook-xsl-nons
+, glib
+, gobject-introspection
+, gtk3
+, intltool
+, libnotify
+, libxml2
+, libxslt
+, networkmanagerapplet
+, pkg-config
+, python3
+, wrapGAppsNoGuiHook
+, withGui ? false
+}:
+
+let
+  pythonPath = python3.withPackages (ps: with ps; [
+    dbus-python
+    nftables
+    pygobject3
+  ] ++ lib.optionals withGui [
+    pyqt5
+    pyqt5_sip
+  ]);
+in
+stdenv.mkDerivation rec {
+  pname = "firewalld";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "firewalld";
+    repo = "firewalld";
+    rev = "v${version}";
+    sha256 = "sha256-lLS4ISmx+BgAExiqNpYcSIFpSenRs4Kh25WyvTxPqPg=";
+  };
+
+  patches = [
+    ./respect-xml-catalog-files-var.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace src/firewall/config/__init__.py.in \
+      --replace "/usr/share" "$out/share"
+
+    for file in config/firewall-{applet,config}.desktop.in; do
+      substituteInPlace $file \
+        --replace "/usr/bin/" "$out/bin/"
+    done
+  '' + lib.optionalString withGui ''
+    substituteInPlace src/firewall-applet.in \
+      --replace "/usr/bin/nm-connection-editor" "${networkmanagerapplet}/bin/nm-conenction-editor"
+  '';
+
+  nativeBuildInputs = [
+    autoreconfHook
+    docbook_xml_dtd_42
+    docbook-xsl-nons
+    glib
+    intltool
+    libxml2
+    libxslt
+    pkg-config
+    python3
+    python3.pkgs.wrapPython
+  ] ++ lib.optionals withGui [
+    gobject-introspection
+    wrapGAppsNoGuiHook
+  ];
+
+  buildInputs = [
+    bash
+    glib
+  ] ++ lib.optionals withGui [
+    gtk3
+    libnotify
+    pythonPath
+  ];
+
+  dontWrapGApps = true;
+
+  preFixup = lib.optionalString withGui ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  postFixup = ''
+    chmod +x $out/share/firewalld/*.py $out/share/firewalld/testsuite/python/*.py $out/share/firewalld/testsuite/{,integration/}testsuite
+    patchShebangs --host $out/share/firewalld/testsuite/{,integration/}testsuite $out/share/firewalld/*.py
+    wrapPythonProgramsIn "$out/bin" "$out ${pythonPath}"
+    wrapPythonProgramsIn "$out/share/firewalld/testsuite/python" "$out ${pythonPath}"
+  '';
+
+  meta = with lib; {
+    description = "Firewall daemon with D-Bus interface";
+    homepage = "https://github.com/firewalld/firewalld";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/firewalld/respect-xml-catalog-files-var.patch b/nixpkgs/pkgs/applications/networking/firewalld/respect-xml-catalog-files-var.patch
new file mode 100644
index 000000000000..03a10121c6be
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/firewalld/respect-xml-catalog-files-var.patch
@@ -0,0 +1,13 @@
+--- a/m4/jh_path_xml_catalog.m4
++++ b/m4/jh_path_xml_catalog.m4
+@@ -40,8 +40,8 @@ AC_DEFUN([JH_CHECK_XML_CATALOG],
+ [
+   AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
+   AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
+-  if $jh_found_xmlcatalog && \
+-     AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then
++  # empty argument forces libxml to use XML_CATALOG_FILES variable
++  if AC_RUN_LOG([$XMLCATALOG --noout "" "$1" >&2]); then
+     AC_MSG_RESULT([found])
+     ifelse([$3],,,[$3
+ ])dnl
diff --git a/nixpkgs/pkgs/applications/networking/flexget/default.nix b/nixpkgs/pkgs/applications/networking/flexget/default.nix
index 96d3e773c88c..033a7ba836f0 100644
--- a/nixpkgs/pkgs/applications/networking/flexget/default.nix
+++ b/nixpkgs/pkgs/applications/networking/flexget/default.nix
@@ -5,14 +5,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "flexget";
-  version = "3.3.4";
+  version = "3.3.24";
 
   # Fetch from GitHub in order to use `requirements.in`
   src = fetchFromGitHub {
     owner = "flexget";
     repo = "flexget";
-    rev = "v${version}";
-    hash = "sha256-/nuY8+/RMM7ASke+NXb95yu+FeQHawCdgqVsBrk/KZ8=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-AjYX9f7v6lxMO6vTjAanDMluvGDAvTwcvcq/fwMzSfk=";
   };
 
   postPatch = ''
@@ -21,7 +21,7 @@ python3Packages.buildPythonApplication rec {
     ln -sf requirements.in requirements.txt
 
     # remove dependency constraints
-    sed 's/[>=]=.*//' -i requirements.txt
+    sed 's/[~<>=].*//' -i requirements.txt
 
     # "zxcvbn-python" was renamed to "zxcvbn", and we don't have the former in
     # nixpkgs. See: https://github.com/NixOS/nixpkgs/issues/62110
@@ -35,6 +35,8 @@ python3Packages.buildPythonApplication rec {
     # See https://github.com/Flexget/Flexget/blob/master/requirements.in
     APScheduler
     beautifulsoup4
+    click
+    colorama
     feedparser
     guessit
     html5lib
@@ -42,6 +44,7 @@ python3Packages.buildPythonApplication rec {
     jsonschema
     loguru
     more-itertools
+    packaging
     psutil
     pynzb
     PyRSS2Gen
@@ -62,6 +65,7 @@ python3Packages.buildPythonApplication rec {
     flask-restx
     flask
     pyparsing
+    werkzeug
     zxcvbn
 
     # Plugins requirements
diff --git a/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
index d5e73f833c3a..7ac58abd530c 100644
--- a/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
@@ -18,19 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "filezilla";
-  version = "3.58.0";
+  version = "3.60.2";
 
   src = fetchurl {
     url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2";
-    sha256 = "sha256-0P5/cuAfd0K6oGRmgYsYbo6R//Ytbuey8OiEtrM4XYg=";
+    hash = "sha256-5AfbrRaZU/+VFFK8vxONlTo6MCNfirsD0nHHEsx+V5I=";
   };
 
-  # https://www.linuxquestions.org/questions/slackware-14/trouble-building-filezilla-3-47-2-1-current-4175671182/#post6099769
-  postPatch = ''
-    sed -i src/interface/Mainfrm.h \
-      -e '/^#define/a #include <list>'
-  '';
-
   configureFlags = [
     "--disable-manualupdatecheck"
     "--disable-autoupdatecheck"
diff --git a/nixpkgs/pkgs/applications/networking/ftp/gftp/default.nix b/nixpkgs/pkgs/applications/networking/ftp/gftp/default.nix
index 37338d31e0dc..3007fdd67183 100644
--- a/nixpkgs/pkgs/applications/networking/ftp/gftp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ftp/gftp/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gftp";
-  version = "2.8.0b";
+  version = "2.9.1b";
 
   src = fetchFromGitHub {
     owner = "masneyb";
     repo = pname;
     rev = version;
-    hash = "sha256-syeRFpqbd1VhKhhs/fIByDSVpcY+SAlmikDo3J1ZHlo=";
+    hash = "sha256-0zdv2oYl24BXh61IGCWby/2CCkzNjLpDrAFc0J89Pw4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/gmailctl/default.nix b/nixpkgs/pkgs/applications/networking/gmailctl/default.nix
index 9fc1e25a92d7..25731fea4fb7 100644
--- a/nixpkgs/pkgs/applications/networking/gmailctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/gmailctl/default.nix
@@ -6,18 +6,16 @@
 
 buildGoModule rec {
   pname = "gmailctl";
-  # on an unstable version because of https://github.com/mbrt/gmailctl/issues/232
-  # and https://github.com/mbrt/gmailctl/commit/484bb689866987580e0576165180ef06375a543f
-  version = "unstable-2022-03-24";
+  version = "0.10.4";
 
   src = fetchFromGitHub {
     owner = "mbrt";
     repo = "gmailctl";
-    rev = "484bb689866987580e0576165180ef06375a543f";
-    sha256 = "sha256-hIoS64QEDJ1qq3KJ2H8HjgQl8SxuIo+xz7Ot8CdjjQA=";
+    rev = "v${version}";
+    sha256 = "sha256-tAYFuxB8LSyFHraAQxCj8Q09mS/9RYcinVm5whpRh04=";
   };
 
-  vendorSha256 = "sha256-KWM20a38jZ3/a45313kxY2LaCQyiNMEdfdIV78phrBo=";
+  vendorSha256 = "sha256-IFxKczPrqCM9NOoOJayfbrsJIMf3eoI9zXSFns0/i8o=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/nixpkgs/pkgs/applications/networking/gns3/default.nix b/nixpkgs/pkgs/applications/networking/gns3/default.nix
index 5bb125c10077..7f6ff3be034f 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/default.nix
+++ b/nixpkgs/pkgs/applications/networking/gns3/default.nix
@@ -1,7 +1,9 @@
-{ callPackage, libsForQt5 }:
+{ callPackage
+, libsForQt5
+}:
 
 let
-  stableVersion = "2.2.29";
+  stableVersion = "2.2.31";
   previewVersion = stableVersion;
   addVersion = args:
     let version = if args.stable then stableVersion else previewVersion;
@@ -18,16 +20,13 @@ let
         });
       };
     commonOverrides = [
-      (mkOverride "psutil" "5.8.0"
-        "sha256-DJzLmat2Al8vC77PNB1GVunBNR24zIoDzNYuMYq0tcY=")
-      (mkOverride "jsonschema" "3.2.0"
-        "0ykr61yiiizgvm3bzipa3l73rvj49wmrybbfwhvpgk3pscl5pa68")
+      (mkOverride "jsonschema" "3.2.0" "0ykr61yiiizgvm3bzipa3l73rvj49wmrybbfwhvpgk3pscl5pa68")
     ];
   };
   mkGui = args: libsForQt5.callPackage (import ./gui.nix (addVersion args // extraArgs)) { };
   mkServer = args: callPackage (import ./server.nix (addVersion args // extraArgs)) { };
-  guiSrcHash = "04yqh0kq5pkmadcxf090ilh9sqqxajcg65nf7ai1iikxi3x7z3r8";
-  serverSrcHash = "0p6q421rldmyqi0padssgrssf4d9mb5ifiqjm5y8vfhwfl5a2cqk";
+  guiSrcHash = "sha256-o9j/avuapiUKIDO6aO/uWFF/5gu+xdfhL7ZSDSaQ858=";
+  serverSrcHash = "sha256-8r8nWNqbHUDtJ6x+/SxHxaw1isSuWF/5as3YXLB6LFw=";
 in {
   guiStable = mkGui {
     stable = true;
diff --git a/nixpkgs/pkgs/applications/networking/gns3/gui.nix b/nixpkgs/pkgs/applications/networking/gns3/gui.nix
index 95ec995cbfd5..8d1ab4e590c5 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/gui.nix
+++ b/nixpkgs/pkgs/applications/networking/gns3/gui.nix
@@ -1,6 +1,16 @@
-{ stable, branch, version, sha256Hash, mkOverride, commonOverrides }:
+{ stable
+, branch
+, version
+, sha256Hash
+, mkOverride
+, commonOverrides
+}:
 
-{ lib, python3, fetchFromGitHub, wrapQtAppsHook }:
+{ lib
+, python3
+, fetchFromGitHub
+, wrapQtAppsHook
+}:
 
 let
   defaultOverrides = commonOverrides ++ [
@@ -34,21 +44,33 @@ in python.pkgs.buildPythonPackage rec {
     sha256 = sha256Hash;
   };
 
-  nativeBuildInputs = [ wrapQtAppsHook ];
+  nativeBuildInputs = [
+    wrapQtAppsHook
+  ];
+
   propagatedBuildInputs = with python.pkgs; [
-    sentry-sdk psutil jsonschema # tox for check
-    # Runtime dependencies
-    sip_4 (pyqt5.override { withWebSockets = true; }) distro setuptools
+    distro
+    jsonschema
+    psutil
+    sentry-sdk
+    setuptools
+    sip_4 (pyqt5.override { withWebSockets = true; })
   ];
 
   doCheck = false; # Failing
+
   dontWrapQtApps = true;
+
   postFixup = ''
       wrapQtApp "$out/bin/gns3"
   '';
+
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace "sentry-sdk==1.3.1" "sentry-sdk>=1.3.1" \
+      --replace "sentry-sdk==" "sentry-sdk>=" \
+      --replace "psutil==" "psutil>=" \
+      --replace "distro==" "distro>=" \
+      --replace "setuptools==" "setuptools>="
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/gns3/server.nix b/nixpkgs/pkgs/applications/networking/gns3/server.nix
index 818c01a89ab4..50a2453b0408 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/server.nix
+++ b/nixpkgs/pkgs/applications/networking/gns3/server.nix
@@ -1,23 +1,20 @@
-{ stable, branch, version, sha256Hash, mkOverride, commonOverrides }:
+{ stable
+, branch
+, version
+, sha256Hash
+, mkOverride
+, commonOverrides
+}:
 
-{ lib, python3, fetchFromGitHub, packageOverrides ? self: super: {}
- }:
+{ lib
+, python3
+, fetchFromGitHub
+, packageOverrides ? self: super: {}
+}:
 
 let
   defaultOverrides = commonOverrides ++ [
     (self: super: {
-      aiofiles = super.aiofiles.overridePythonAttrs (oldAttrs: rec {
-        pname = "aiofiles";
-        version = "0.7.0";
-        src = fetchFromGitHub {
-          owner = "Tinche";
-          repo = pname;
-          rev = "v${version}";
-          sha256 = "sha256-njQ7eRYJO+dUrwO5pZwKHXn9nVSGYcEhwhs3x5BMc28=";
-        };
-        doCheck = false;
-      });
-
       jsonschema = super.jsonschema.overridePythonAttrs (oldAttrs: rec {
         version = "3.2.0";
 
@@ -51,16 +48,33 @@ in python.pkgs.buildPythonApplication {
 
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace "aiohttp==3.7.4" "aiohttp>=3.7.4" \
-      --replace "Jinja2==3.0.1" "Jinja2>=3.0.1" \
-      --replace "sentry-sdk==1.3.1" "sentry-sdk>=1.3.1" \
-      --replace "async-timeout==3.0.1" "async-timeout>=3.0.1" \
+      --replace "aiohttp==" "aiohttp>=" \
+      --replace "aiofiles==" "aiofiles>=" \
+      --replace "Jinja2==" "Jinja2>=" \
+      --replace "sentry-sdk==" "sentry-sdk>=" \
+      --replace "async-timeout==" "async-timeout>=" \
+      --replace "psutil==" "psutil>=" \
+      --replace "distro==" "distro>=" \
+      --replace "py-cpuinfo==" "py-cpuinfo>=" \
+      --replace "setuptools==" "setuptools>="
   '';
 
   propagatedBuildInputs = with python.pkgs; [
-    aiohttp-cors yarl aiohttp multidict setuptools
-    jinja2 psutil zipstream sentry-sdk jsonschema distro async_generator aiofiles
-    prompt-toolkit py-cpuinfo
+    aiofiles
+    aiohttp
+    aiohttp-cors
+    async_generator
+    distro
+    jinja2
+    jsonschema
+    multidict
+    prompt-toolkit
+    psutil
+    py-cpuinfo
+    sentry-sdk
+    setuptools
+    yarl
+    zipstream
   ];
 
   # Requires network access
diff --git a/nixpkgs/pkgs/applications/networking/go-graft/default.nix b/nixpkgs/pkgs/applications/networking/go-graft/default.nix
new file mode 100644
index 000000000000..7e9e2c393358
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/go-graft/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "go-graft";
+  version = "0.2.8";
+
+  src = fetchFromGitHub {
+    owner = "mzz2017";
+    repo = "gg";
+    rev = "v${version}";
+    sha256 = "sha256-bihQo75HwottWXIGGaTG4mN+wg0iWKun61dvCYlAmeQ=";
+  };
+
+  CGO_ENABLED = 0;
+
+  ldflags = [ "-X github.com/mzz2017/gg/cmd.Version=${version}" "-s" "-w" "-buildid=" ];
+  vendorSha256 = "sha256-26tk6pv3yCVwczuymD7r54C7BKcaVlOseI8TXj8IyOM=";
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "A command-line tool for one-click proxy in your research and development without installing v2ray or anything else";
+    homepage = "https://github.com/mzz2017/gg";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ xyenon ];
+    mainProgram = "gg";
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix b/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
index 29ae860cdadf..612bb0eaf160 100644
--- a/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
+++ b/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
@@ -1,23 +1,24 @@
 { lib, buildDunePackage, fetchFromGitHub
-, ocaml_extlib, ocamlfuse, gapi_ocaml, ocaml_sqlite3
+, ocaml_extlib, ocamlfuse, gapi-ocaml, ocaml_sqlite3
+, tiny_httpd
+, ounit
 }:
 
 buildDunePackage rec {
   pname = "google-drive-ocamlfuse";
-  version = "0.7.26";
-
-  useDune2 = true;
-
-  minimumOCamlVersion = "4.06";
+  version = "0.7.30";
 
   src = fetchFromGitHub {
     owner = "astrada";
     repo = "google-drive-ocamlfuse";
     rev = "v${version}";
-    sha256 = "sha256-8s3DnpdYIVyJj5rtsof3WpLvX9wCrWU47dp4D6c986s=";
+    sha256 = "sha256-DWG0nBiqeVHaYQfGzU43gGwL4m8X61x5/RT5jD4AwYA=";
   };
 
-  buildInputs = [ ocaml_extlib ocamlfuse gapi_ocaml ocaml_sqlite3 ];
+  doCheck = true;
+  checkInputs = [ ounit ];
+
+  buildInputs = [ ocaml_extlib ocamlfuse gapi-ocaml ocaml_sqlite3 tiny_httpd ];
 
   meta = {
     inherit (src.meta) homepage;
diff --git a/nixpkgs/pkgs/applications/networking/gopher/geomyidae/default.nix b/nixpkgs/pkgs/applications/networking/gopher/geomyidae/default.nix
new file mode 100644
index 000000000000..197cdaca00c4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/gopher/geomyidae/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchurl, libressl,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "geomyidae";
+  version = "0.51";
+
+  src = fetchurl {
+    url = "gopher://bitreich.org/9/scm/geomyidae/tag/geomyidae-v${version}.tar.gz";
+    sha512 = "3lGAa7BCrspGBcQqjduBkIACpf3u/CkeSCBnaJ3rrz3OIidn4o4dNwZNe7u8swaJxN2dhDSKKeVT3RnFQUaXdg==";
+  };
+
+  buildInputs = [ libressl ];
+
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  meta = with lib; {
+    description = "A gopher daemon for Linux/BSD";
+    homepage = "gopher://bitreich.org/1/scm/geomyidae";
+    license = licenses.mit;
+    maintainers = [ maintainers.athas ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix b/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix
index 5252fe59c098..1afcbe4d2a86 100644
--- a/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sacc";
-  version = "1.05";
+  version = "1.06";
 
   src = fetchurl {
     url = "ftp://bitreich.org/releases/sacc/sacc-${version}.tar.gz";
-    sha512 = "080vpacipdis396lrw3fxc1z7h2d0njm2zi63kvlk0n2m1disv97c968zx8dp76kfw1s03nvvr6v3vnpfkkywiz1idjc92s5rgcbsk1";
+    sha512 = "7a895e432e1d28b7d9b2bb2a5326ca32350876a2c80d39dc6c19e75347d72a4847f1aa4ff11f07e8a9adea14ea71b84d70890dcc170ff6ce0b779e1d6586b4fa";
   };
 
   inherit patches;
diff --git a/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix b/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix
index 64a237480c65..5417cc6fda14 100644
--- a/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix
+++ b/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix
@@ -50,6 +50,7 @@ mkDerivation rec {
   meta = {
     description = "Client for HPE's MyRoom web conferencing solution";
     maintainers = with lib.maintainers; [ johnazoidberg ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     homepage = "https://myroom.hpe.com";
     # TODO: A Darwin binary is available upstream
diff --git a/nixpkgs/pkgs/applications/networking/hydroxide/default.nix b/nixpkgs/pkgs/applications/networking/hydroxide/default.nix
index e8299a8899ab..4b8d077c39f1 100644
--- a/nixpkgs/pkgs/applications/networking/hydroxide/default.nix
+++ b/nixpkgs/pkgs/applications/networking/hydroxide/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "hydroxide";
-  version = "0.2.21";
+  version = "0.2.23";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fF+pQnqAWBktc4NdQFTHeB/sEg5bPTxXtdL1x5JuXU8=";
+    sha256 = "sha256-Hc348rlwICnPWq7qYzFE01QeeJuQpSP19NjXtGqI10o=";
   };
 
   vendorSha256 = "sha256-M5QlhF2Cj1jn5NNiKj1Roh9+sNCWxQEb4vbtsDfapWY=";
diff --git a/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix b/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
index e91b517e8158..ddeb03698e95 100644
--- a/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zeek";
-  version = "4.2.0";
+  version = "4.2.2";
 
   src = fetchurl {
     url = "https://download.zeek.org/zeek-${version}.tar.gz";
-    sha256 = "sha256-jZoCjKn+x61KnkinY+KWBSOEz0AupM03FXe/8YPCdFE=";
+    sha256 = "sha256-9Q3X24uAmnSnLUAklK+gC0Mu8eh81ZE2h/7uIVc8cAw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/ike/default.nix b/nixpkgs/pkgs/applications/networking/ike/default.nix
index 7b4ddb6134db..d4709e6655f0 100644
--- a/nixpkgs/pkgs/applications/networking/ike/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ike/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    broken = (stdenv.isLinux && stdenv.isAarch64);
     homepage = "https://www.shrew.net/software";
     description = "IPsec Client for FreeBSD, NetBSD and many Linux based operating systems";
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix
index ebed984c4d53..29febe1dfcfa 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix
@@ -1,21 +1,22 @@
-{ stdenv, lib, fetchurl, dpkg, autoPatchelfHook, makeWrapper
+{ stdenv, lib, fetchurl, dpkg, autoPatchelfHook, makeWrapper, wrapGAppsHook
 , alsa-lib, dbus, fontconfig, freetype, glib, gst_all_1, libGL
 , libinput, libpulseaudio, libsecret, libtiff, libxkbcommon
 , mesa, openssl, systemd, xorg }:
 
 stdenv.mkDerivation rec {
   pname = "alfaview";
-  version = "8.40.0";
+  version = "8.49.1";
 
   src = fetchurl {
     url = "https://production-alfaview-assets.alfaview.com/stable/linux/${pname}_${version}.deb";
-    sha256 = "sha256-meiIDIG7OXxF2aclHA/8FN8aSz5KWJliDbm2p/flD4k=";
+    sha256 = "sha256-A0kX6r5ubC764XJFinCq4/u9pA1AOP4fXUOFB4voeeE=";
   };
 
   nativeBuildInputs = [
     dpkg
     makeWrapper
     autoPatchelfHook
+    wrapGAppsHook
   ];
 
   buildInputs = [
@@ -25,6 +26,7 @@ stdenv.mkDerivation rec {
     freetype
     glib
     gst_all_1.gst-plugins-bad
+    gst_all_1.gst-plugins-good
     gst_all_1.gst-plugins-base
     libGL
     libinput
@@ -71,8 +73,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Video-conferencing application, specialized in virtual online meetings, seminars, training sessions and conferences";
     homepage = "https://alfaview.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = with maintainers; [ wolfangaukang hexchen ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/armcord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/armcord/default.nix
new file mode 100644
index 000000000000..6f6a6e0b337e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/armcord/default.nix
@@ -0,0 +1,129 @@
+{ lib
+, stdenv
+, fetchurl
+, autoPatchelfHook
+, dpkg
+, makeWrapper
+, alsa-lib
+, at-spi2-atk
+, at-spi2-core
+, atk
+, cairo
+, cups
+, dbus
+, expat
+, ffmpeg
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, gtk3
+, libappindicator-gtk3
+, libdbusmenu
+, libdrm
+, libnotify
+, libpulseaudio
+, libsecret
+, libuuid
+, libxkbcommon
+, mesa
+, nss
+, pango
+, systemd
+, xdg-utils
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "armcord";
+  version = "3.0.7";
+
+  src = let
+    base = "https://github.com/ArmCord/ArmCord/releases/download";
+  in {
+    x86_64-linux = fetchurl {
+      url = "${base}/v${version}/ArmCord_${version}_amd64.deb";
+      sha256 = "b2a583e6abbc6e5dc3f7370a33f21fc4e7963c6cbe7555e954156c77e9577261";
+    };
+    aarch64-linux = fetchurl {
+      url = "${base}/v${version}/ArmCord_${version}_arm64.deb";
+      sha256 = "8c32a14ab8e5bdf865a6523cb4b5cec8f3f870b95f99be9661a4dd0df33aae1d";
+    };
+  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+  nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper ];
+
+  buildInputs = [
+    alsa-lib
+    at-spi2-atk
+    at-spi2-core
+    atk
+    cairo
+    cups
+    dbus
+    expat
+    ffmpeg
+    fontconfig
+    freetype
+    gdk-pixbuf
+    glib
+    gtk3
+    pango
+    systemd
+    mesa # for libgbm
+    nss
+    libuuid
+    libdrm
+    libnotify
+    libsecret
+    libpulseaudio
+    libxkbcommon
+    libappindicator-gtk3
+    xorg.libX11
+    xorg.libxcb
+    xorg.libXcomposite
+    xorg.libXcursor
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libXrandr
+    xorg.libXrender
+    xorg.libXScrnSaver
+    xorg.libxshmfence
+    xorg.libXtst
+  ];
+
+  sourceRoot = ".";
+  unpackCmd = "dpkg-deb -x $src .";
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/bin"
+    cp -R "opt" "$out"
+    cp -R "usr/share" "$out/share"
+    chmod -R g-w "$out"
+
+    # Wrap the startup command
+    makeWrapper $out/opt/ArmCord/armcord $out/bin/armcord \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}" \
+      --prefix PATH : ${lib.makeBinPath [ xdg-utils ]} \
+      "''${gappsWrapperArgs[@]}"
+
+    # Fix desktop link
+    substituteInPlace $out/share/applications/armcord.desktop \
+      --replace /opt/ArmCord/ $out/bin/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Lightweight, alternative desktop client for Discord";
+    homepage = "https://github.com/ArmCord/ArmCord";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    license = licenses.osl3;
+    maintainers = with maintainers; [ wrmilling ];
+    platforms = [ "x86_64-linux" "aarch64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix
index 543a5f52c979..4450eefa6eb0 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
     homepage = "https://github.com/sm00th/bitlbee-discord";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ lassulus jb55 ];
+    maintainers = with maintainers; [ lassulus ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix
index 14464247659c..00b970cd6871 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix
@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "121r92mgwv445wwxzh35n19fs5k81ihr0j19k256ia5502b1xxaq";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ bitlbee autoconf automake libtool libgcrypt ];
+  nativeBuildInputs = [ pkg-config autoconf automake ];
+  buildInputs = [ bitlbee libtool libgcrypt ];
 
   preConfigure = ''
     export BITLBEE_PLUGINDIR=$out/lib/bitlbee
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
index ad57e2c6623b..c74bffdd5e2a 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -44,11 +44,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "bluejeans";
-  version = "2.26.0.136";
+  version = "2.29.1.3";
 
   src = fetchurl {
     url = "https://swdl.bluejeans.com/desktop-app/linux/${getFirst 3 version}/BlueJeans_${version}.rpm";
-    sha256 = "sha256-9QiE7CjCepDXQCzduqGzNUGqUgYS+PWBS71ouzHa83o=";
+    sha256 = "sha256-vWViSJXRPZ4B40LNnoKRZNbxB1YKnaW2ay6GCjnFLGY=";
   };
 
   nativeBuildInputs = [ rpmextract makeWrapper ];
@@ -127,6 +127,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Video, audio, and web conferencing that works together with the collaboration tools you use every day";
     homepage = "https://www.bluejeans.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix
new file mode 100644
index 000000000000..1b16786649f9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, fetchzip
+, openjdk
+, makeWrapper
+, tor
+, p7zip
+, bash
+, writeScript
+}:
+let
+
+  briar-tor = writeScript "briar-tor" ''
+    #! ${bash}/bin/bash
+    exec ${tor}/bin/tor "$@"
+  '';
+
+in
+stdenv.mkDerivation rec {
+  pname = "briar-desktop";
+  version = "0.2.1-beta";
+
+  src = fetchzip {
+    url = "https://code.briarproject.org/briar/briar-desktop/-/jobs/18424/artifacts/download?file_type=archive";
+    sha256 = "sha256-ivMbgo0+iZE4/Iffq9HUBErGIQMVLrRZUQ6R3V3X8II=";
+    extension = "zip";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+    p7zip
+  ];
+
+  installPhase = ''
+    mkdir -p $out/{bin,lib}
+    cp ${src}/briar-desktop.jar $out/lib/
+    makeWrapper ${openjdk}/bin/java $out/bin/briar-desktop \
+      --add-flags "-jar $out/lib/briar-desktop.jar"
+  '';
+
+  fixupPhase = ''
+    # Replace the embedded Tor binary (which is in a Tar archive)
+    # with one from Nixpkgs.
+    cp ${briar-tor} ./tor
+    for arch in {aarch64,armhf,x86_64}; do
+      7z a tor_linux-$arch.zip tor
+      7z a $out/lib/briar-desktop.jar tor_linux-$arch.zip
+    done
+  '';
+
+  meta = with lib; {
+    description = "Decentalized and secure messnger";
+    homepage = "https://code.briarproject.org/briar/briar-desktop";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ onny ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "armv7l-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix
new file mode 100644
index 000000000000..d08e1cd1ba48
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix
@@ -0,0 +1,47 @@
+{ lib
+, fetchurl
+, appimageTools
+, xorg
+, pname
+, version
+, sha256
+, metaCommon ? { }
+}:
+
+let
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "https://github.com/sindresorhus/caprine/releases/download/v${version}/Caprine-${version}.AppImage";
+    name = "Caprine-${version}.AppImage";
+    inherit sha256;
+  };
+  extracted = appimageTools.extractType2 { inherit name src; };
+in
+(appimageTools.wrapType2 {
+  inherit name src;
+
+  profile = ''
+    export LC_ALL=C.UTF-8
+  '';
+
+  extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs;
+
+  extraInstallCommands = ''
+    mv $out/bin/{${name},caprine}
+
+    mkdir -p $out/share
+    "${xorg.lndir}/bin/lndir" -silent "${extracted}/usr/share" "$out/share"
+    ln -s ${extracted}/caprine.png $out/share/icons/caprine.png
+    mkdir $out/share/applications
+    cp ${extracted}/caprine.desktop $out/share/applications/
+    substituteInPlace $out/share/applications/caprine.desktop \
+        --replace AppRun caprine
+  '';
+
+  meta = metaCommon // {
+    platforms = [ "x86_64-linux" ];
+    mainProgram = "caprine";
+  };
+}) // {
+  inherit pname version;
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix
new file mode 100644
index 000000000000..3dc457c48826
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix
@@ -0,0 +1,35 @@
+{ stdenvNoCC
+, lib
+, fetchurl
+, undmg
+, pname
+, version
+, sha256
+, metaCommon ? { }
+}:
+
+stdenvNoCC.mkDerivation {
+  inherit pname version;
+
+  src = fetchurl {
+    url = "https://github.com/sindresorhus/caprine/releases/download/v${version}/Caprine-${version}.dmg";
+    name = "Caprine-${version}.dmg";
+    inherit sha256;
+  };
+
+  sourceRoot = "Caprine.app";
+
+  nativeBuildInputs = [ undmg ];
+
+  installPhase = ''
+    mkdir -p "$out/Applications/Caprine.app"
+    cp -R . "$out/Applications/Caprine.app"
+    mkdir "$out/bin"
+    ln -s "$out/Applications/Caprine.app/Contents/MacOS/Caprine" "$out/bin/caprine"
+  '';
+
+  meta = metaCommon // {
+    platforms = with lib.platforms; darwin;
+    mainProgram = "caprine";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix
new file mode 100644
index 000000000000..04e0e91ddc28
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix
@@ -0,0 +1,25 @@
+{ lib, callPackage, stdenvNoCC }:
+let
+  pname = "caprine";
+  version = "2.55.4";
+  metaCommon = with lib; {
+    description = "An elegant Facebook Messenger desktop app";
+    homepage = "https://sindresorhus.com/caprine";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ShamrockLee ];
+  };
+  x86_64-appimage = callPackage ./build-from-appimage.nix {
+    inherit pname version metaCommon;
+    sha256 = "221PyDoCkWqDdewCkFycpjMTcVOcl58blCjrC7O7xyk=";
+  };
+  x86_64-dmg = callPackage ./build-from-dmg.nix {
+    inherit pname version metaCommon;
+    sha256 = "6SOqlH7Z9DuQVR4i1OltnSb4dJscFUxaXxgNkE5FVUE=";
+  };
+in
+(if stdenvNoCC.isDarwin then x86_64-dmg else x86_64-appimage).overrideAttrs (oldAttrs: {
+  passthru = (oldAttrs.passthru or { }) // { inherit x86_64-appimage x86_64-dmg; };
+  meta = oldAttrs.meta // {
+    platforms = x86_64-appimage.meta.platforms ++ x86_64-dmg.meta.platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
index 7a2415199375..e637881d968c 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
@@ -2,12 +2,12 @@
 
 mkDerivation rec {
   pname = "chatterino2";
-  version = "2.3.4";
+  version = "2.3.5";
   src = fetchFromGitHub {
     owner = "Chatterino";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ZmUM56+YNH98J3XE/mWOOIfb0qBld2n4iuHpImbrU4o=";
+    sha256 = "sha256-ozfLLoNUN+1SPXbMNbF1V5sdZgPZEA/J3xXzJP9D3uI=";
     fetchSubmodules = true;
   };
   nativeBuildInputs = [ qmake pkg-config wrapQtAppsHook ];
@@ -15,6 +15,9 @@ mkDerivation rec {
   postInstall = lib.optionalString stdenv.isDarwin ''
     mkdir -p "$out/Applications"
     mv bin/chatterino.app "$out/Applications/"
+  '' + ''
+    mkdir -p $out/share/icons/hicolor/256x256/apps
+    cp $src/resources/icon.png $out/share/icons/hicolor/256x256/apps/chatterino.png
   '';
   meta = with lib; {
     description = "A chat client for Twitch chat";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix
index 97282c76d04c..fc9c4c10b218 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitLab
 , appstream-glib
 , desktop-file-utils
+, itstool
 , meson
 , ninja
 , pkg-config
@@ -28,7 +29,7 @@
 
 stdenv.mkDerivation rec {
   pname = "chatty";
-  version = "0.6.1";
+  version = "0.6.7";
 
   src = fetchFromGitLab {
     domain = "source.puri.sm";
@@ -36,7 +37,7 @@ stdenv.mkDerivation rec {
     repo = "chatty";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-AufxwuOibTx5OvLBVbJqay/mYLmcDpE2BgwVv6Y5IlY=";
+    hash = "sha256-W4w/00mRgjfyQmLQ81/EAN+80qk7kDkBmMPJnOU+AIc=";
   };
 
   postPatch = ''
@@ -46,6 +47,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     appstream-glib
     desktop-file-utils
+    itstool
     meson
     ninja
     pkg-config
@@ -73,7 +75,7 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     gappsWrapperArgs+=(
-      --prefix PURPLE_PLUGIN_PATH : ${pidgin.makePluginPath plugins}
+      --prefix PURPLE_PLUGIN_PATH : ${lib.escapeShellArg (pidgin.makePluginPath plugins)}
       ${lib.concatMapStringsSep " " (p: p.wrapArgs or "") plugins}
     )
   '';
@@ -81,6 +83,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "XMPP and SMS messaging via libpurple and ModemManager";
     homepage = "https://source.puri.sm/Librem5/chatty";
+    changelog = "https://source.puri.sm/Librem5/chatty/-/blob/${src.rev}/NEWS";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda tomfitzhenry ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/cinny-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/cinny-desktop/default.nix
new file mode 100644
index 000000000000..0da3d38e6759
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/cinny-desktop/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, lib
+, dpkg
+, fetchurl
+, autoPatchelfHook
+, glib-networking
+, openssl
+, webkitgtk
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  name = "cinny-desktop";
+  version = "2.1.2";
+
+  src = fetchurl {
+    url = "https://github.com/cinnyapp/cinny-desktop/releases/download/v${version}/Cinny_desktop-x86_64.deb";
+    sha256 = "sha256-JLu6xAnUaeRTM/yj2Qsc7pXTRXCnvxx8NL2fDXyAUg0=";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+  ];
+
+  buildInputs = [
+    glib-networking
+    openssl
+    webkitgtk
+    wrapGAppsHook
+  ];
+
+  unpackCmd = "dpkg-deb -x $curSrc source";
+
+  installPhase = "mv usr $out";
+
+  meta = with lib; {
+    description = "Yet another matrix client for desktop";
+    homepage = "https://github.com/cinnyapp/cinny-desktop";
+    maintainers = [ maintainers.aveltras ];
+    license = licenses.mit;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    platforms = platforms.linux;
+    mainProgram = "cinny";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/cinny/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/cinny/default.nix
index 940d0b6b92b3..6d212b406f54 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/cinny/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/cinny/default.nix
@@ -4,11 +4,11 @@ let
   configOverrides = writeText "cinny-config-overrides.json" (builtins.toJSON conf);
 in stdenv.mkDerivation rec {
   pname = "cinny";
-  version = "1.8.2";
+  version = "2.1.2";
 
   src = fetchurl {
     url = "https://github.com/ajbura/cinny/releases/download/v${version}/cinny-v${version}.tar.gz";
-    sha256 = "sha256-0harFaO1MWzTmN/Q3e38MC2O7P9yVeQ5ZSy0yiGbtCs=";
+    sha256 = "sha256-UbL9HP90zfsoj/ClUoBF27n5zkvvN4UU4pxQu8QsoUA=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix
index 442a6adcb790..8e1ce52c266e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix
@@ -1,47 +1,32 @@
 { lib
 , python3
 , fetchFromGitHub
-, wrapGAppsHook
-, gobject-introspection
-, libnotify
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "deltachat-cursed";
-  version = "0.3.1";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "adbenitez";
     repo = "deltachat-cursed";
     rev = "v${version}";
-    hash = "sha256-IZrTPnj6eX1qgEPnEiD9qmVkwn1SMK38gVKAJFgZNfw=";
+    hash = "sha256-EA3yTP4j/jj26E8zdRwTIW+9FkI0ehK4Y8AqiCnF2xA=";
   };
 
   nativeBuildInputs = [
     python3.pkgs.setuptools-scm
-    wrapGAppsHook
   ];
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
-  buildInputs = [
-    gobject-introspection
-    libnotify
-  ];
-
   propagatedBuildInputs = with python3.pkgs; [
     deltachat
+    emoji
     notify-py
-    pygobject3
     urwid-readline
   ];
 
-  dontWrapGApps = true;
-
-  preFixup = ''
-    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
-  '';
-
   doCheck = false; # no tests implemented
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
index f80d8cab8b11..835442642348 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
@@ -1,13 +1,13 @@
 { lib
 , copyDesktopItems
-, electron_14
+, electron_18
+, buildGoModule
 , esbuild
 , fetchFromGitHub
-, fetchpatch
 , libdeltachat
 , makeDesktopItem
 , makeWrapper
-, nodejs-14_x
+, nodePackages
 , noto-fonts-emoji
 , pkg-config
 , roboto
@@ -19,41 +19,40 @@
 
 let
   libdeltachat' = libdeltachat.overrideAttrs (old: rec {
-    version = "1.76.0";
+    version = "1.86.0";
     src = fetchFromGitHub {
       owner = "deltachat";
       repo = "deltachat-core-rust";
       rev = version;
-      hash = "sha256-aeYOszOFyLaC1xKswYZLzqoWSFFWOOeOkc+WrtqU0jo=";
+      hash = "sha256-VLS93Ffeit2rVmXxYkXcnf8eDA3DC2/wKYZTh56QCk0=";
     };
     cargoDeps = rustPlatform.fetchCargoTarball {
       inherit src;
       name = "${old.pname}-${version}";
-      hash = "sha256-sBFXcLXpAkX+HzRKrLKaHhi5ieS8Yc/Uf30WcXyWrok=";
+      hash = "sha256-4rpoDQ3o0WdWg/TmazTI+J0hL/MxwHcNMXWMq7GE7Tk=";
     };
   });
-  electronExec = if stdenv.isDarwin then
-    "${electron_14}/Applications/Electron.app/Contents/MacOS/Electron"
-  else
-    "${electron_14}/bin/electron";
-  esbuild' = esbuild.overrideAttrs (old: rec {
-    version = "0.12.29";
-    src = fetchFromGitHub {
-      owner = "evanw";
-      repo = "esbuild";
-      rev = "v${version}";
-      hash = "sha256-oU++9E3StUoyrMVRMZz8/1ntgPI62M1NoNz9sH/N5Bg=";
-    };
-  });
-in nodejs-14_x.pkgs.deltachat-desktop.override rec {
+  esbuild' = esbuild.override {
+    buildGoModule = args: buildGoModule (args // rec {
+      version = "0.12.29";
+      src = fetchFromGitHub {
+        owner = "evanw";
+        repo = "esbuild";
+        rev = "v${version}";
+        hash = "sha256-oU++9E3StUoyrMVRMZz8/1ntgPI62M1NoNz9sH/N5Bg=";
+      };
+      vendorSha256 = "sha256-QPkBR+FscUc3jOvH7olcGUhM6OW4vxawmNJuRQxPuGs=";
+    });
+  };
+in nodePackages.deltachat-desktop.override rec {
   pname = "deltachat-desktop";
-  version = "1.28.0";
+  version = "1.30.1";
 
   src = fetchFromGitHub {
     owner = "deltachat";
     repo = "deltachat-desktop";
     rev = "v${version}";
-    hash = "sha256-Ur0UxaKEWp+y7lGz2Khsg4npOf+gjCiOoijkSbnp0hg=";
+    hash = "sha256-gZjZbXiqhFVfThZOsvL/nKkf6MX+E3KB5ldEAIuzBYA=";
   };
 
   nativeBuildInputs = [
@@ -74,10 +73,15 @@ in nodejs-14_x.pkgs.deltachat-desktop.override rec {
   USE_SYSTEM_LIBDELTACHAT = "true";
   VERSION_INFO_GIT_REF = src.rev;
 
+  preRebuild = ''
+    substituteInPlace package.json \
+      --replace "node ./bin/check-nodejs-version.js" true
+  '';
+
   postInstall = ''
-    rm -r node_modules/deltachat-node/{deltachat-core-rust,prebuilds,src}
+    rm -r node_modules/deltachat-node/node/prebuilds
 
-    npm run build
+    npm run build4production
 
     npm prune --production
 
@@ -94,7 +98,7 @@ in nodejs-14_x.pkgs.deltachat-desktop.override rec {
         $out/lib/node_modules/deltachat-desktop/html-dist/fonts
     done
 
-    makeWrapper ${electronExec} $out/bin/deltachat \
+    makeWrapper ${electron_18}/bin/electron $out/bin/deltachat \
       --set LD_PRELOAD ${sqlcipher}/lib/libsqlcipher${stdenv.hostPlatform.extensions.sharedLibrary} \
       --add-flags $out/lib/node_modules/deltachat-desktop
   '';
@@ -116,7 +120,9 @@ in nodejs-14_x.pkgs.deltachat-desktop.override rec {
   meta = with lib; {
     description = "Email-based instant messaging for Desktop";
     homepage = "https://github.com/deltachat/deltachat-desktop";
+    changelog = "https://github.com/deltachat/deltachat-desktop/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Plus;
+    mainProgram = "deltachat";
     maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
index ca584702765a..96778eda7aa6 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
@@ -1,30 +1,28 @@
 {
   "name": "deltachat-desktop",
-  "version": "1.28.0",
+  "version": "1.30.1",
   "dependencies": {
-    "@blueprintjs/core": "^3.22.3",
-    "@deltachat/message_parser_wasm": "^0.3.0",
+    "@blueprintjs/core": "^4.1.2",
+    "@deltachat/message_parser_wasm": "^0.4.0",
+    "@deltachat/react-qr-reader": "^4.0.0",
     "@mapbox/geojson-extent": "^1.0.0",
     "application-config": "^1.0.1",
     "classnames": "^2.3.1",
     "debounce": "^1.2.0",
-    "deltachat-node": "1.76.0",
+    "deltachat-node": "1.86.0",
     "emoji-js-clean": "^4.0.0",
-    "emoji-mart": "^3.0.0",
+    "emoji-mart": "^3.0.1",
     "emoji-regex": "^9.2.2",
     "error-stack-parser": "^2.0.7",
     "filesize": "^8.0.6",
     "immutable": "^4.0.0",
     "mapbox-gl": "^1.12.0",
     "mime-types": "^2.1.31",
-    "moment": "^2.27.0",
-    "node-fetch": "^2.6.7",
+    "moment": "^2.29.2",
     "path-browserify": "^1.0.1",
     "rc": "^1.2.8",
     "react": "^17.0.2",
     "react-dom": "^17.0.2",
-    "react-qr-reader": "^2.2.1",
-    "react-qr-svg": "^2.1.0",
     "react-string-replace": "^1.0.0",
     "react-virtualized-auto-sizer": "^1.0.5",
     "react-window": "^1.8.6",
@@ -32,26 +30,23 @@
     "react-zoom-pan-pinch": "^2.1.3",
     "source-map-support": "^0.5.19",
     "stackframe": "^1.2.1",
-    "tempy": "^0.3.0",
     "url-parse": "^1.5.9",
     "use-debounce": "^3.3.0",
     "@babel/core": "^7.7.7",
     "@babel/preset-env": "^7.7.7",
     "@babel/preset-react": "^7.7.4",
     "@types/debounce": "^1.2.0",
-    "@types/emoji-mart": "^3.0.2",
+    "@types/emoji-mart": "^3.0.9",
     "@types/mapbox-gl": "^0.54.5",
     "@types/mime-types": "^2.1.0",
     "@types/node": "^14.14.20",
-    "@types/node-fetch": "^2.5.7",
-    "@types/prop-types": "^15.7.3",
     "@types/rc": "^1.1.0",
-    "@types/react": "^16.9.17",
-    "@types/react-dom": "^16.9.4",
+    "@types/react": "^17.0.2",
+    "@types/react-dom": "^17.0.2",
     "@types/react-window": "^1.8.4",
     "@types/react-window-infinite-loader": "^1.0.4",
     "@types/url-parse": "^1.4.3",
-    "electron": "^14.2.6",
+    "electron": "^18.0.3",
     "esbuild": "^0.12.29",
     "glob-watcher": "^5.0.5",
     "sass": "^1.26.5",
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh
index c3119a79afd8..a21a97b3b83c 100755
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh
@@ -29,7 +29,7 @@ tac default.nix \
 
 src=$(nix-build "$nixpkgs" -A deltachat-desktop.src --no-out-link)
 
-jq '{ name, version, dependencies: (.dependencies + (.devDependencies | del(.["@types/chai","@types/mocha","@typescript-eslint/eslint-plugin","@typescript-eslint/parser","chai","electron-builder","electron-devtools-installer","electron-notarize","eslint","eslint-config-prettier","eslint-plugin-react-hooks","hallmark","mocha","prettier","testcafe","testcafe-browser-provider-electron","testcafe-react-selectors","ts-node","walk"]))) }' \
+jq '{ name, version, dependencies: (.dependencies + (.devDependencies | del(.["@types/chai","@types/mocha","@types/node-fetch","@typescript-eslint/eslint-plugin","@typescript-eslint/parser","chai","electron-builder","electron-devtools-installer","electron-notarize","eslint","eslint-config-prettier","eslint-plugin-react-hooks","hallmark","mocha","node-fetch","prettier","testcafe","testcafe-browser-provider-electron","testcafe-react-selectors","ts-node","walk"]))) }' \
     "$src/package.json" > package.json.new
 
 if cmp --quiet package.json{.new,}; then
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
index 3e992899e43e..d18341b220f4 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
@@ -14,7 +14,7 @@
 , qrencode
 , icu
 , gspell
-, srtp, libnice, gnutls, gstreamer, gst-plugins-base, gst-plugins-good
+, srtp, libnice, gnutls, gstreamer, gst-plugins-base, gst-plugins-good, webrtc-audio-processing
  }:
 
 stdenv.mkDerivation rec {
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
     gstreamer
     gst-plugins-base
     gst-plugins-good
+    webrtc-audio-processing
   ] ++ lib.optionals (!stdenv.isDarwin) [
     xorg.libxcb
     xorg.libpthreadstubs
@@ -72,6 +73,16 @@ stdenv.mkDerivation rec {
     libxkbcommon
   ];
 
+  cmakeFlags = ["-DBUILD_TESTS=yes"];
+
+  doCheck = true;
+  checkPhase = ''
+    runHook preCheck
+    ./xmpp-vala-test
+    ./signal-protocol-vala-test
+    runHook postCheck
+  '';
+
   # Dino looks for plugins with a .so filename extension, even on macOS where
   # .dylib is appropriate, and despite the fact that it builds said plugins with
   # that as their filename extension
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/darwin.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/darwin.nix
index 4bc9ac98df1f..aa1cfaa045ca 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/darwin.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/darwin.nix
@@ -1,4 +1,4 @@
-{ pname, version, src, meta, stdenv, binaryName, desktopName, undmg }:
+{ pname, version, src, openasar, meta, stdenv, binaryName, desktopName, lib, undmg, withOpenASAR ? false }:
 
 stdenv.mkDerivation {
   inherit pname version src meta;
@@ -8,7 +8,15 @@ stdenv.mkDerivation {
   sourceRoot = ".";
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/Applications
     cp -r "${desktopName}.app" $out/Applications
+
+    runHook postInstall
+  '';
+
+  postInstall = lib.strings.optionalString withOpenASAR ''
+    cp -f ${openasar} $out/Applications/${desktopName}.app/Contents/Resources/app.asar
   '';
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
index d3416ef58801..c4b11068a115 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -1,53 +1,49 @@
-{ branch ? "stable", pkgs, lib, stdenv }:
+{ branch ? "stable", callPackage, fetchurl, lib, stdenv }:
 let
-  inherit (pkgs) callPackage fetchurl;
   versions = if stdenv.isLinux then {
-    stable = "0.0.17";
+    stable = "0.0.19";
     ptb = "0.0.29";
-    canary = "0.0.134";
+    canary = "0.0.136";
   } else {
     stable = "0.0.264";
     ptb = "0.0.59";
     canary = "0.0.283";
   };
   version = versions.${branch};
-  srcs = let
-    darwin-ptb = fetchurl {
-      url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
-      sha256 = "sha256-LS7KExVXkOv8O/GrisPMbBxg/pwoDXIOo1dK9wk1yB8=";
-    };
-  in {
+  srcs = rec {
     x86_64-linux = {
       stable = fetchurl {
-        url =
-          "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
-        sha256 = "058k0cmbm4y572jqw83bayb2zzl2fw2aaz0zj1gvg6sxblp76qil";
+        url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
+        sha256 = "GfSyddbGF8WA6JmHo4tUM27cyHV5kRAyrEiZe1jbA5A=";
       };
       ptb = fetchurl {
-        url =
-          "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
+        url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
         sha256 = "d78NnQZ3MkLje8mHrI6noH2iD2oEvSJ3cDnsmzQsUYc=";
       };
       canary = fetchurl {
-        url =
-          "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
-        sha256 = "sha256-HyJa6lGcKMPKWffO/pnNcn8fDTJj6O4J8Y5RA23a1kM=";
+        url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
+        sha256 = "sha256-OrGg4jXziesHBhQORxREN/wq776RgNGaTyjJNV4pSAU=";
       };
     };
-    x86_64-darwin = {
-      stable = fetchurl {
-        url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg";
-        sha256 = "1jvlxmbfqhslsr16prsgbki77kq7i3ipbkbn67pnwlnis40y9s7p";
+    aarch64-darwin = {
+      ptb = fetchurl {
+        url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
+        sha256 = "sha256-LS7KExVXkOv8O/GrisPMbBxg/pwoDXIOo1dK9wk1yB8=";
       };
-      ptb = darwin-ptb;
       canary = fetchurl {
-        url =
-          "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
+        url = "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
         sha256 = "0mqpk1szp46mih95x42ld32rrspc6jx1j7qdaxf01whzb3d4pi9l";
       };
     };
-    # Only PTB bundles a MachO Universal binary with ARM support.
-    aarch64-darwin = { ptb = darwin-ptb; };
+    # Stable does not (yet) provide aarch64-darwin support. PTB and Canary, however, do.
+    x86_64-darwin =
+      aarch64-darwin
+      // {
+        stable = fetchurl {
+          url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg";
+          sha256 = "1jvlxmbfqhslsr16prsgbki77kq7i3ipbkbn67pnwlnis40y9s7p";
+        };
+      };
   };
   src = srcs.${stdenv.hostPlatform.system}.${branch};
 
@@ -55,30 +51,44 @@ let
     description = "All-in-one cross-platform voice and text chat for gamers";
     homepage = "https://discordapp.com/";
     downloadPage = "https://discordapp.com/download";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
-    maintainers = with maintainers; [ ldesgoui MP2E devins2518 ];
+    maintainers = with maintainers; [ MP2E devins2518 ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ]
-      ++ lib.optionals (branch == "ptb") [ "aarch64-darwin" ];
+      ++ lib.optionals (branch != "stable") [ "aarch64-darwin" ];
   };
-  package = if stdenv.isLinux then ./linux.nix else ./darwin.nix;
-  packages = (builtins.mapAttrs
-    (_: value: callPackage package (value // { inherit src version; meta = meta // { mainProgram = value.binaryName; }; }))
-    {
-      stable = rec {
-        pname = "discord";
-        binaryName = "Discord";
-        desktopName = "Discord";
-      };
-      ptb = rec {
-        pname = "discord-ptb";
-        binaryName = "DiscordPTB";
-        desktopName = "Discord PTB";
-      };
-      canary = rec {
-        pname = "discord-canary";
-        binaryName = "DiscordCanary";
-        desktopName = "Discord Canary";
-      };
-    }
+  package =
+    if stdenv.isLinux
+    then ./linux.nix
+    else ./darwin.nix;
+
+  openasar = callPackage ./openasar.nix { };
+
+  packages = (
+    builtins.mapAttrs
+      (_: value:
+        callPackage package (value
+          // {
+          inherit src version openasar;
+          meta = meta // { mainProgram = value.binaryName; };
+        }))
+      {
+        stable = rec {
+          pname = "discord";
+          binaryName = "Discord";
+          desktopName = "Discord";
+        };
+        ptb = rec {
+          pname = "discord-ptb";
+          binaryName = "DiscordPTB";
+          desktopName = "Discord PTB";
+        };
+        canary = rec {
+          pname = "discord-canary";
+          binaryName = "DiscordCanary";
+          desktopName = "Discord Canary";
+        };
+      }
   );
-in packages.${branch}
+in
+packages.${branch}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/linux.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/linux.nix
index 05833c1eeaf4..846ac82d172b 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/linux.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/linux.nix
@@ -1,11 +1,11 @@
-{ pname, version, src, meta, binaryName, desktopName, autoPatchelfHook
-, makeDesktopItem, lib, stdenv, wrapGAppsHook, alsa-lib, at-spi2-atk
+{ pname, version, src, openasar, meta, binaryName, desktopName, autoPatchelfHook
+, makeDesktopItem, lib, stdenv, wrapGAppsHook, makeShellWrapper, alsa-lib, at-spi2-atk
 , at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf
 , glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid, libX11
 , libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes
 , libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence, mesa, nspr, nss
 , pango, systemd, libappindicator-gtk3, libdbusmenu, writeScript
-, common-updater-scripts }:
+, common-updater-scripts, withOpenASAR ? false }:
 
 stdenv.mkDerivation rec {
   inherit pname version src meta;
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
     mesa
     nss
     wrapGAppsHook
+    makeShellWrapper
   ];
 
   dontWrapGApps = true;
@@ -71,14 +72,16 @@ stdenv.mkDerivation rec {
   ];
 
   installPhase = ''
-    mkdir -p $out/{bin,opt/${binaryName},share/pixmaps}
+    runHook preInstall
+
+    mkdir -p $out/{bin,opt/${binaryName},share/pixmaps,share/icons/hicolor/256x256/apps}
     mv * $out/opt/${binaryName}
 
     chmod +x $out/opt/${binaryName}/${binaryName}
     patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
         $out/opt/${binaryName}/${binaryName}
 
-    wrapProgram $out/opt/${binaryName}/${binaryName} \
+    wrapProgramShell $out/opt/${binaryName}/${binaryName} \
         "''${gappsWrapperArgs[@]}" \
         --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}" \
         --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
@@ -89,9 +92,17 @@ stdenv.mkDerivation rec {
     ln -s $out/opt/${binaryName}/${binaryName} $out/bin/${
       lib.strings.toLower binaryName
     } || true
+
     ln -s $out/opt/${binaryName}/discord.png $out/share/pixmaps/${pname}.png
+    ln -s $out/opt/${binaryName}/discord.png $out/share/icons/hicolor/256x256/apps/${pname}.png
 
     ln -s "${desktopItem}/share/applications" $out/share/
+
+    runHook postInstall
+  '';
+
+  postInstall = lib.strings.optionalString withOpenASAR ''
+    cp -f ${openasar} $out/opt/${binaryName}/resources/app.asar
   '';
 
   desktopItem = makeDesktopItem {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/openasar.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/openasar.nix
new file mode 100644
index 000000000000..c6a64212b558
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/openasar.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchFromGitHub, nodejs, bash, nodePackages, unzip }:
+
+stdenv.mkDerivation rec {
+  pname = "openasar";
+  version = "unstable-2022-08-07";
+
+  src = fetchFromGitHub {
+    owner = "GooseMod";
+    repo = "OpenAsar";
+    rev = "e0870784008a584229d3094e0988f5da155c7fd7";
+    hash = "sha256-t0b2SFlDDBSQEkOCQME0jsLJ8NvoXROTxoQgnoXM9eQ=";
+  };
+
+  postPatch = ''
+    # Hardcode unzip path
+    substituteInPlace ./src/updater/moduleUpdater.js \
+      --replace \'unzip\' \'${unzip}/bin/unzip\'
+    # Remove auto-update feature
+    echo "module.exports = async () => log('AsarUpdate', 'Removed');" > ./src/asarUpdate.js
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    bash scripts/injectPolyfills.sh
+    substituteInPlace src/index.js --replace 'nightly' '${version}'
+    ${nodejs}/bin/node scripts/strip.js
+    ${nodePackages.asar}/bin/asar pack src app.asar
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install app.asar $out
+
+    runHook postInstall
+  '';
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Open-source alternative of Discord desktop's \"app.asar\".";
+    homepage = "https://openasar.dev";
+    license = licenses.mit;
+    maintainers = with maintainers; [ pedrohlc ];
+    platforms = nodejs.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index 984a9cb501dd..004db42ebab2 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -2,7 +2,7 @@
   "name": "element-desktop",
   "productName": "Element",
   "main": "lib/electron-main.js",
-  "version": "1.10.7",
+  "version": "1.11.0",
   "description": "A feature-rich client for Matrix.org",
   "author": "Element",
   "repository": {
@@ -44,7 +44,7 @@
     "counterpart": "^0.18.6",
     "electron-store": "^6.0.1",
     "electron-window-state": "^5.0.3",
-    "minimist": "^1.2.3",
+    "minimist": "^1.2.6",
     "png-to-ico": "^2.1.1",
     "request": "^2.88.2"
   },
@@ -61,7 +61,8 @@
     "app-builder-lib": "^22.14.10",
     "asar": "^2.0.1",
     "chokidar": "^3.5.2",
-    "electron": "^17",
+    "detect-libc": "^1.0.3",
+    "electron": "^19",
     "electron-builder": "22.11.4",
     "electron-builder-squirrel-windows": "22.11.4",
     "electron-devtools-installer": "^3.1.1",
@@ -73,7 +74,7 @@
     "find-npm-prefix": "^1.0.2",
     "fs-extra": "^8.1.0",
     "glob": "^7.1.6",
-    "matrix-web-i18n": "^1.2.0",
+    "matrix-web-i18n": "^1.3.0",
     "mkdirp": "^1.0.3",
     "needle": "^2.5.0",
     "node-pre-gyp": "^0.15.0",
@@ -81,14 +82,15 @@
     "rimraf": "^3.0.2",
     "tar": "^6.1.2",
     "ts-node": "^10.4.0",
-    "typescript": "^4.5.3"
+    "typescript": "4.5.5"
   },
   "hakDependencies": {
-    "matrix-seshat": "^2.3.0",
-    "keytar": "^5.6.0"
+    "matrix-seshat": "^2.3.3",
+    "keytar": "^7.9.0"
   },
   "build": {
     "appId": "im.riot.app",
+    "asarUnpack": "**/*.node",
     "files": [
       "package.json",
       {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
index 2ad5d8c4654f..5b7c23f7c7ac 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -19,7 +19,6 @@
 let
   pinData = lib.importJSON ./pin.json;
   executableName = "element-desktop";
-  electron_exec = if stdenv.isDarwin then "${electron}/Applications/Electron.app/Contents/MacOS/Electron" else "${electron}/bin/electron";
   keytar = callPackage ./keytar { inherit Security AppKit; };
   seshat = callPackage ./seshat { inherit CoreServices; };
 in
@@ -48,9 +47,9 @@ mkYarnPackage rec {
     runHook preBuild
     export HOME=$(mktemp -d)
     pushd deps/element-desktop/
-    npx tsc
+    yarn run build:ts
     yarn run i18n
-    node ./scripts/copy-res.js
+    yarn run build:res
     popd
     rm -rf node_modules/matrix-seshat node_modules/keytar
     ${lib.optionalString useKeytar "ln -s ${keytar} node_modules/keytar"}
@@ -83,7 +82,7 @@ mkYarnPackage rec {
 
     # executable wrapper
     # LD_PRELOAD workaround for sqlcipher not found: https://github.com/matrix-org/seshat/issues/102
-    makeWrapper '${electron_exec}' "$out/bin/${executableName}" \
+    makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
       --set LD_PRELOAD ${sqlcipher}/lib/libsqlcipher.so \
       --add-flags "$out/share/element/electron" \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}"
@@ -91,11 +90,8 @@ mkYarnPackage rec {
     runHook postInstall
   '';
 
-  # Do not attempt generating a tarball for element-web again.
-  # note: `doDist = false;` does not work.
-  distPhase = ''
-    true
-  '';
+  # Do not attempt generating a tarball for element-desktop again.
+  doDist = false;
 
   # The desktop item properties should be kept in sync with data from upstream:
   # https://github.com/vector-im/element-desktop/blob/develop/package.json
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web-package.json b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web-package.json
new file mode 100644
index 000000000000..323fe41473dc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web-package.json
@@ -0,0 +1,206 @@
+{
+  "name": "element-web",
+  "version": "1.11.0",
+  "description": "A feature-rich client for Matrix.org",
+  "author": "New Vector Ltd.",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/vector-im/element-web"
+  },
+  "license": "Apache-2.0",
+  "files": [
+    "lib",
+    "res",
+    "src",
+    "webpack.config.js",
+    "scripts",
+    "docs",
+    "release.sh",
+    "deploy",
+    "CHANGELOG.md",
+    "CONTRIBUTING.rst",
+    "LICENSE",
+    "README.md",
+    "AUTHORS.rst",
+    "package.json",
+    "contribute.json"
+  ],
+  "style": "bundle.css",
+  "scripts": {
+    "i18n": "matrix-gen-i18n",
+    "prunei18n": "matrix-prune-i18n",
+    "diff-i18n": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && matrix-gen-i18n && matrix-compare-i18n-files src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json",
+    "clean": "rimraf lib webapp",
+    "build": "yarn clean && yarn build:genfiles && yarn build:bundle",
+    "build-stats": "yarn clean && yarn build:genfiles && yarn build:bundle-stats",
+    "build:jitsi": "node scripts/build-jitsi.js",
+    "build:res": "node scripts/copy-res.js",
+    "build:genfiles": "yarn build:res && yarn build:jitsi",
+    "build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
+    "build:bundle": "webpack --progress --bail --mode production",
+    "build:bundle-stats": "webpack --progress --bail --mode production --json > webpack-stats.json",
+    "dist": "scripts/package.sh",
+    "start": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n res,element-js \"yarn start:res\" \"yarn start:js\"",
+    "start:https": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n res,element-js \"yarn start:res\" \"yarn start:js --https\"",
+    "start:res": "yarn build:jitsi && node scripts/copy-res.js -w",
+    "start:js": "webpack-dev-server --host=0.0.0.0 --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js -w --mode development --disable-host-check --hot",
+    "lint": "yarn lint:types && yarn lint:js && yarn lint:style",
+    "lint:js": "eslint --max-warnings 0 src",
+    "lint:js-fix": "eslint --fix src",
+    "lint:types": "tsc --noEmit --jsx react",
+    "lint:style": "stylelint \"res/css/**/*.scss\"",
+    "test": "jest",
+    "coverage": "yarn test --coverage"
+  },
+  "dependencies": {
+    "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.8.tgz",
+    "browser-request": "^0.3.3",
+    "gfm.css": "^1.1.2",
+    "jsrsasign": "^10.5.25",
+    "katex": "^0.12.0",
+    "matrix-js-sdk": "19.0.0",
+    "matrix-react-sdk": "3.48.0",
+    "matrix-widget-api": "^0.1.0-beta.18",
+    "prop-types": "^15.7.2",
+    "react": "17.0.2",
+    "react-dom": "17.0.2",
+    "sanitize-html": "^2.3.2",
+    "ua-parser-js": "^0.7.24"
+  },
+  "devDependencies": {
+    "@babel/core": "^7.12.10",
+    "@babel/eslint-parser": "^7.12.10",
+    "@babel/eslint-plugin": "^7.12.10",
+    "@babel/plugin-proposal-class-properties": "^7.12.1",
+    "@babel/plugin-proposal-export-default-from": "^7.12.1",
+    "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
+    "@babel/plugin-proposal-numeric-separator": "^7.12.7",
+    "@babel/plugin-proposal-object-rest-spread": "^7.12.1",
+    "@babel/plugin-proposal-optional-chaining": "^7.12.7",
+    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+    "@babel/plugin-transform-runtime": "^7.12.10",
+    "@babel/preset-env": "^7.12.11",
+    "@babel/preset-react": "^7.12.10",
+    "@babel/preset-typescript": "^7.12.7",
+    "@babel/register": "^7.12.10",
+    "@babel/runtime": "^7.12.5",
+    "@principalstudio/html-webpack-inject-preload": "^1.2.7",
+    "@sentry/webpack-plugin": "^1.18.1",
+    "@svgr/webpack": "^5.5.0",
+    "@types/flux": "^3.1.9",
+    "@types/jest": "^27.0.2",
+    "@types/modernizr": "^3.5.3",
+    "@types/node": "^14.14.22",
+    "@types/react": "17.0.14",
+    "@types/react-dom": "17.0.9",
+    "@types/sanitize-html": "^2.3.1",
+    "@types/ua-parser-js": "^0.7.36",
+    "@typescript-eslint/eslint-plugin": "^5.6.0",
+    "@typescript-eslint/parser": "^5.6.0",
+    "allchange": "^1.0.6",
+    "autoprefixer": "^9.8.6",
+    "babel-jest": "^26.6.3",
+    "babel-loader": "^8.2.2",
+    "chokidar": "^3.5.1",
+    "concurrently": "^5.3.0",
+    "cpx": "^1.5.0",
+    "css-loader": "^3.6.0",
+    "dotenv": "^10.0.0",
+    "eslint": "8.9.0",
+    "eslint-config-google": "^0.14.0",
+    "eslint-plugin-import": "^2.25.4",
+    "eslint-plugin-matrix-org": "^0.4.0",
+    "eslint-plugin-react": "^7.28.0",
+    "eslint-plugin-react-hooks": "^4.3.0",
+    "extract-text-webpack-plugin": "^4.0.0-beta.0",
+    "fake-indexeddb": "^3.1.2",
+    "file-loader": "^5.1.0",
+    "fs-extra": "^0.30.0",
+    "html-webpack-plugin": "^4.5.2",
+    "jest": "^26.6.3",
+    "jest-environment-jsdom-sixteen": "^1.0.3",
+    "jest-raw-loader": "^1.0.1",
+    "jest-sonar-reporter": "^2.0.0",
+    "json-loader": "^0.5.7",
+    "loader-utils": "^1.4.0",
+    "matrix-mock-request": "^2.0.0",
+    "matrix-react-test-utils": "^0.2.3",
+    "matrix-web-i18n": "^1.3.0",
+    "mini-css-extract-plugin": "^0.12.0",
+    "minimist": "^1.2.6",
+    "mkdirp": "^1.0.4",
+    "modernizr": "^3.12.0",
+    "node-fetch": "^2.6.7",
+    "optimize-css-assets-webpack-plugin": "^5.0.4",
+    "postcss-easings": "^2.0.0",
+    "postcss-hexrgba": "^2.0.1",
+    "postcss-import": "^12.0.1",
+    "postcss-loader": "^3.0.0",
+    "postcss-mixins": "^6.2.3",
+    "postcss-nested": "^4.2.3",
+    "postcss-preset-env": "^6.7.0",
+    "postcss-scss": "^2.1.1",
+    "postcss-simple-vars": "^5.0.2",
+    "postcss-strip-inline-comments": "^0.1.5",
+    "raw-loader": "^4.0.2",
+    "rimraf": "^3.0.2",
+    "shell-escape": "^0.2.0",
+    "simple-proxy-agent": "^1.1.0",
+    "string-replace-loader": "2",
+    "style-loader": "2",
+    "stylelint": "^13.9.0",
+    "stylelint-config-standard": "^20.0.0",
+    "stylelint-scss": "^3.18.0",
+    "terser-webpack-plugin": "^2.3.8",
+    "typescript": "^4.5.3",
+    "webpack": "^4.46.0",
+    "webpack-cli": "^3.3.12",
+    "webpack-dev-server": "^3.11.2",
+    "worker-loader": "^2.0.0",
+    "worklet-loader": "^2.0.0"
+  },
+  "resolutions": {
+    "@types/react": "17.0.14"
+  },
+  "jest": {
+    "testEnvironment": "jest-environment-jsdom-sixteen",
+    "testMatch": [
+      "<rootDir>/test/**/*-test.[tj]s?(x)"
+    ],
+    "setupFilesAfterEnv": [
+      "<rootDir>/node_modules/matrix-react-sdk/test/setupTests.js"
+    ],
+    "moduleNameMapper": {
+      "\\.(css|scss)$": "<rootDir>/__mocks__/cssMock.js",
+      "\\.(gif|png|ttf|woff2)$": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/imageMock.js",
+      "\\.svg$": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/svg.js",
+      "\\$webapp/i18n/languages.json": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/languages.json",
+      "^browser-request$": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/browser-request.js",
+      "^react$": "<rootDir>/node_modules/react",
+      "^react-dom$": "<rootDir>/node_modules/react-dom",
+      "^matrix-js-sdk$": "<rootDir>/node_modules/matrix-js-sdk/src",
+      "^matrix-react-sdk$": "<rootDir>/node_modules/matrix-react-sdk/src",
+      "decoderWorker\\.min\\.js": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
+      "decoderWorker\\.min\\.wasm": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
+      "waveWorker\\.min\\.js": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
+      "context-filter-polyfill": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
+      "FontManager.ts": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/FontManager.js",
+      "workers/(.+)\\.worker\\.ts": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/workerMock.js",
+      "^!!raw-loader!.*": "jest-raw-loader",
+      "RecorderWorklet": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js"
+    },
+    "transformIgnorePatterns": [
+      "/node_modules/(?!matrix-js-sdk).+$",
+      "/node_modules/(?!matrix-react-sdk).+$"
+    ],
+    "coverageReporters": [
+      "text-summary",
+      "lcov"
+    ],
+    "testResultsProcessor": "jest-sonar-reporter"
+  },
+  "jestSonar": {
+    "reportPath": "coverage",
+    "sonar56x": true
+  }
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix
index fae96e8e5e7a..3b4394604598 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -1,4 +1,15 @@
-{ lib, stdenv, fetchurl, writeText, jq, conf ? {} }:
+{ lib
+, mkYarnPackage
+, runCommand
+, fetchFromGitHub
+, fetchYarnDeps
+, writeText
+, jq
+, yarn
+, fixup_yarn_lock
+, jitsi-meet
+, conf ? { }
+}:
 
 let
   pinData = lib.importJSON ./pin.json;
@@ -8,25 +19,62 @@ let
   };
   configOverrides = writeText "element-config-overrides.json" (builtins.toJSON (noPhoningHome // conf));
 
-in stdenv.mkDerivation rec {
+in
+mkYarnPackage rec {
   pname = "element-web";
   inherit (pinData) version;
 
-  src = fetchurl {
-    url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz";
-    sha256 = pinData.webHash;
+  src = fetchFromGitHub {
+    owner = "vector-im";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = pinData.webSrcHash;
   };
 
+  packageJSON = ./element-web-package.json;
+  # Remove the matrix-analytics-events dependency from the matrix-react-sdk
+  # dependencies list. It doesn't seem to be necessary since we already are
+  # installing it individually, and it causes issues with the offline mode.
+  yarnLock = (runCommand "${pname}-modified-lock" {} ''
+    sed '/matrix-analytics-events "github/d' ${src}/yarn.lock > "$out"
+  '');
+  offlineCache = fetchYarnDeps {
+    inherit yarnLock;
+    sha256 = pinData.webYarnHash;
+  };
+
+  nativeBuildInputs = [ jq ];
+
+  configurePhase = ''
+    runHook preConfigure
+    ln -s $node_modules node_modules
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    export VERSION=${version}
+    yarn build:res --offline
+    yarn build:bundle --offline
+
+    runHook postBuild
+  '';
+
   installPhase = ''
     runHook preInstall
 
-    mkdir -p $out/
-    cp -R . $out/
-    ${jq}/bin/jq -s '.[0] * .[1]' "config.sample.json" "${configOverrides}" > "$out/config.json"
+    cp -R webapp $out
+    cp ${jitsi-meet}/libs/external_api.min.js $out/jitsi_external_api.min.js
+    echo "${version}" > "$out/version"
+    jq -s '.[0] * .[1]' "config.sample.json" "${configOverrides}" > "$out/config.json"
 
     runHook postInstall
   '';
 
+  # Do not attempt generating a tarball for element-web again.
+  doDist = false;
+
   meta = {
     description = "A glossy Matrix collaboration client for the web";
     homepage = "https://element.io/";
@@ -34,6 +82,5 @@ in stdenv.mkDerivation rec {
     maintainers = lib.teams.matrix.members;
     license = lib.licenses.asl20;
     platforms = lib.platforms.all;
-    hydraPlatforms = [];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/default.nix
index 292b0dfa075d..550d01695ca0 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, nodejs-14_x, python3, callPackage
+{ lib, stdenv, fetchFromGitHub, nodejs, python3, callPackage, removeReferencesTo
 , fixup_yarn_lock, yarn, pkg-config, libsecret, xcbuild, Security, AppKit, fetchYarnDeps }:
 
 let
@@ -15,12 +15,12 @@ in stdenv.mkDerivation rec {
     sha256 = pinData.srcHash;
   };
 
-  nativeBuildInputs = [ nodejs-14_x python3 yarn pkg-config ]
+  nativeBuildInputs = [ nodejs python3 yarn pkg-config ]
     ++ lib.optional  stdenv.isDarwin xcbuild;
   buildInputs = lib.optionals (!stdenv.isDarwin) [ libsecret ]
     ++ lib.optionals stdenv.isDarwin [ Security AppKit ];
 
-  npm_config_nodedir = nodejs-14_x;
+  npm_config_nodedir = nodejs;
 
   yarnOfflineCache = fetchYarnDeps {
     yarnLock = ./yarn.lock;
@@ -51,6 +51,9 @@ in stdenv.mkDerivation rec {
     mkdir -p $out
     cp -r ./!(build) $out
     install -D -t $out/build/Release build/Release/keytar.node
+    ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc.cc} $out/build/Release/keytar.node
     runHook postInstall
   '';
+
+  disallowedReferences = [ stdenv.cc.cc ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.json b/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.json
index f75dfc66ca90..a8494fe74923 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.json
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.json
@@ -1,6 +1,7 @@
 {
-  "version": "1.10.7",
-  "desktopSrcHash": "HkGny9t8dNzVGyyqgr4tABbFZgWV4xqGZt9xH4ejkew=",
-  "desktopYarnHash": "038rqg26dn8chzscck5mlhnw2viy6gr8pjb7zrcmi7ipx9h038a0",
-  "webHash": "0gim79a1zpfc56ca5fndp2whmlv9jz1s32z666i268xppn4z53k1"
+  "version": "1.11.0",
+  "desktopSrcHash": "WYXPsiR3hKj+cPvs5bLzZ301vLISp3ANLf/GgBBMYqM=",
+  "desktopYarnHash": "0v60ak06g87i3q5rqgxy3v3whk3njj0v1ml9rfdab1mbzrj6209c",
+  "webSrcHash": "L6ONDjGy8Uuo7E4O5ajIYdDLYL59JkuUk9hAAlTID1k=",
+  "webYarnHash": "15qhw2z05ylxvidaaifpxxdpd68s7qbwpgx9y95x6v82fcr7xhrz"
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/default.nix
index 5017f8531179..97d6a7d5204a 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, callPackage, sqlcipher, nodejs-14_x, python3, yarn, fixup_yarn_lock, CoreServices, fetchYarnDeps }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, callPackage, sqlcipher, nodejs, python3, yarn, fixup_yarn_lock, CoreServices, fetchYarnDeps, removeReferencesTo }:
 
 let
   pinData = lib.importJSON ./pin.json;
@@ -16,10 +16,10 @@ in rustPlatform.buildRustPackage rec {
 
   sourceRoot = "source/seshat-node/native";
 
-  nativeBuildInputs = [ nodejs-14_x python3 yarn ];
+  nativeBuildInputs = [ nodejs python3 yarn ];
   buildInputs = [ sqlcipher ] ++ lib.optional stdenv.isDarwin CoreServices;
 
-  npm_config_nodedir = nodejs-14_x;
+  npm_config_nodedir = nodejs;
 
   yarnOfflineCache = fetchYarnDeps {
     yarnLock = src + "/seshat-node/yarn.lock";
@@ -48,8 +48,11 @@ in rustPlatform.buildRustPackage rec {
     rm -rf native/!(index.node)
     rm -rf node_modules $HOME
     cp -r . $out
+    ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc.cc} $out/native/index.node
     runHook postInstall
   '';
 
+  disallowedReferences = [ stdenv.cc.cc ];
+
   cargoSha256 = pinData.cargoHash;
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/element/update.sh
index 364f63a18bb6..a9c55a926ce7 100755
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/update.sh
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/update.sh
@@ -18,17 +18,29 @@ fi
 # strip leading "v"
 version="${version#v}"
 
-desktop_src="https://raw.githubusercontent.com/vector-im/element-desktop/v$version"
+# Element Web
+web_src="https://raw.githubusercontent.com/vector-im/element-web/v$version"
+web_src_hash=$(nix-prefetch-github vector-im element-web --rev v${version} | jq -r .sha256)
+wget "$web_src/package.json" -O element-web-package.json
+
+web_tmpdir=$(mktemp -d)
+trap 'rm -rf "$web_tmpdir"' EXIT
+
+pushd $web_tmpdir
+wget "$web_src/yarn.lock"
+sed -i '/matrix-analytics-events "github/d' yarn.lock
+web_yarn_hash=$(prefetch-yarn-deps yarn.lock)
+popd
 
+# Element Desktop
+desktop_src="https://raw.githubusercontent.com/vector-im/element-desktop/v$version"
 desktop_src_hash=$(nix-prefetch-github vector-im element-desktop --rev v${version} | jq -r .sha256)
-web_hash=$(nix-prefetch-url "https://github.com/vector-im/element-web/releases/download/v$version/element-v$version.tar.gz")
-
 wget "$desktop_src/package.json" -O element-desktop-package.json
 
-tmpdir=$(mktemp -d)
-trap 'rm -rf "$tmpdir"' EXIT
+desktop_tmpdir=$(mktemp -d)
+trap 'rm -rf "$desktop_tmpdir"' EXIT
 
-pushd $tmpdir
+pushd $desktop_tmpdir
 wget "$desktop_src/yarn.lock"
 desktop_yarn_hash=$(prefetch-yarn-deps yarn.lock)
 popd
@@ -38,6 +50,7 @@ cat > pin.json << EOF
   "version": "$version",
   "desktopSrcHash": "$desktop_src_hash",
   "desktopYarnHash": "$desktop_yarn_hash",
-  "webHash": "$web_hash"
+  "webSrcHash": "$web_src_hash",
+  "webYarnHash": "$web_yarn_hash"
 }
 EOF
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/feishu/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/feishu/default.nix
new file mode 100644
index 000000000000..9a6cf2d03580
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/feishu/default.nix
@@ -0,0 +1,186 @@
+{ addOpenGLRunpath
+, alsa-lib
+, at-spi2-atk
+, at-spi2-core
+, atk
+, autoPatchelfHook
+, cairo
+, cups
+, dbus
+, dpkg
+, expat
+, fetchurl
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, glibc
+, gnutls
+, gtk3
+, lib
+, libGL
+, libX11
+, libXScrnSaver
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXext
+, libXfixes
+, libXi
+, libXrandr
+, libXrender
+, libXtst
+, libappindicator-gtk3
+, libcxx
+, libdbusmenu
+, libdrm
+, libgcrypt
+, libglvnd
+, libnotify
+, libuuid
+, libxcb
+, libxkbcommon
+, libxkbfile
+, libxshmfence
+, makeShellWrapper
+, mesa
+, nspr
+, nss
+, pango
+, pciutils
+, pipewire
+, pixman
+, stdenv
+, systemd
+, wayland
+, wrapGAppsHook
+, xdg-utils
+
+# for custom command line arguments, e.g. "--use-gl=desktop"
+, commandLineArgs ? ""
+}:
+
+stdenv.mkDerivation rec {
+  version = "5.9.18";
+  pname = "feishu";
+  packageHash = "5db94058d7ad"; # A hash value used in the download url
+
+  src = fetchurl {
+    url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/${packageHash}/Feishu-linux_x64-${version}.deb";
+    sha256 = "ffb29b5a184b025d4e4ea468a8f684a7067ab5bfd45867abc370e59be63892c7";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    makeShellWrapper
+    dpkg
+  ];
+
+  buildInputs = [
+    gtk3
+
+    # for autopatchelf
+    alsa-lib
+    cups
+    libXdamage
+    libdrm
+    libxshmfence
+    mesa
+    nspr
+    nss
+  ];
+
+  rpath = lib.makeLibraryPath [
+    alsa-lib
+    at-spi2-atk
+    at-spi2-core
+    atk
+    cairo
+    cups
+    dbus
+    expat
+    fontconfig
+    freetype
+    gdk-pixbuf
+    glib
+    glibc
+    gnutls
+    libGL
+    libX11
+    libXScrnSaver
+    libXcomposite
+    libXcursor
+    libXdamage
+    libXext
+    libXfixes
+    libXi
+    libXrandr
+    libXrender
+    libXtst
+    libappindicator-gtk3
+    libcxx
+    libdbusmenu
+    libdrm
+    libgcrypt
+    libglvnd
+    libnotify
+    libuuid
+    libxcb
+    libxkbcommon
+    libxkbfile
+    libxshmfence
+    mesa
+    nspr
+    nss
+    pango
+    pciutils
+    pipewire
+    pixman
+    stdenv.cc.cc
+    systemd
+    wayland
+    xdg-utils
+  ];
+
+  dontUnpack = true;
+  installPhase = ''
+    # This deb file contains a setuid binary,
+    # so 'dpkg -x' doesn't work here.
+    dpkg --fsys-tarfile $src | tar --extract
+    mkdir -p $out
+    mv usr/share $out/
+    mv opt/ $out/
+
+    substituteInPlace $out/share/applications/bytedance-feishu.desktop \
+      --replace /usr/bin/bytedance-feishu-stable $out/opt/bytedance/feishu/bytedance-feishu
+
+    # Wrap feishu and vulcan
+    # Feishu is the main executable, vulcan is the builtin browser
+    for executable in $out/opt/bytedance/feishu/{feishu,vulcan/vulcan}; do
+      wrapProgram $executable \
+        --prefix XDG_DATA_DIRS    :  "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
+        --prefix LD_LIBRARY_PATH  :  ${rpath}:$out/opt/bytedance/feishu:${addOpenGLRunpath.driverLink}/share \
+        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}" \
+        ${lib.optionalString (commandLineArgs!="") "--add-flags ${lib.escapeShellArg commandLineArgs}"}
+    done
+
+    mkdir -p $out/share/icons/hicolor
+    base="$out/opt/bytedance/feishu"
+    for size in 16 24 32 48 64 128 256; do
+      mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps
+      ln -s $base/product_logo_$size.png $out/share/icons/hicolor/''${size}x''${size}/apps/bytedance-feishu.png
+    done
+
+    mkdir -p $out/bin
+    ln -s $out/opt/bytedance/feishu/bytedance-feishu $out/bin/bytedance-feishu
+  '';
+
+  meta = with lib; {
+    description = "An all-in-one collaboration suite";
+    homepage = "https://www.feishu.cn/en/";
+    downloadPage = "https://www.feishu.cn/en/#en_home_download_block";
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ billhuang ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix
index 0a44a37cf4bc..82f808be3b6e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix
@@ -17,18 +17,22 @@ in
 mkFranzDerivation' rec {
   pname = "ferdi";
   name = "Ferdi";
-  version = "5.8.0";
+  version = "5.8.1";
   src = fetchurl {
-    url = "https://github.com/getferdi/ferdi/releases/download/v${version}/ferdi_${version}_amd64.deb";
-    sha256 = "sha256-Dd/iH9dtr4WvM++bSURF8kI6BsF6uBiSFviC/ik2H+o=";
+    url = "https://master.dl.sourceforge.net/project/ferdi.mirror/v${version}/ferdi_${version}_amd64.deb";
+    sha256 = "sha256-Bl7bM5iDQlfPSZxksqlg7GbuwWlm53QkOf/TQEg3/n0=";
   };
   extraBuildInputs = [ xorg.libxshmfence ];
   meta = with lib; {
     description = "Combine your favorite messaging services into one application";
     homepage = "https://getferdi.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ davidtwco ma27 ];
     platforms = [ "x86_64-linux" ];
     hydraPlatforms = [ ];
+    knownVulnerabilities = [
+      "CVE-2022-32320"
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/default.nix
new file mode 100644
index 000000000000..2f02e28df412
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/default.nix
@@ -0,0 +1,22 @@
+{ lib, mkFranzDerivation, fetchurl, xorg }:
+
+mkFranzDerivation rec {
+  pname = "ferdium";
+  name = "Ferdium";
+  version = "6.0.0";
+  src = fetchurl {
+    url = "https://github.com/ferdium/ferdium-app/releases/download/v${version}/Ferdium-linux-${version}-amd64.deb";
+    sha256 = "sha256-395rleN2T8iUejLRjl51N+lgqtWwHXad36WpIT1BFGQ=";
+  };
+
+  extraBuildInputs = [ xorg.libxshmfence ];
+
+  meta = with lib; {
+    description = "All your services in one place built by the community";
+    homepage = "https://ferdium.org/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ magnouvean ];
+    platforms = [ "x86_64-linux" ];
+    hydraPlatforms = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix
index 565c44f72e92..d50e7118cc18 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix
@@ -10,7 +10,7 @@ flutter.mkFlutterApp rec {
   pname = "fluffychat";
   version = "1.2.0";
 
-  vendorHash = "sha256-j5opwEFifa+DMG7Uziv4SWEPVokD6OSq8mSIr0AdDL0=";
+  vendorHash = "sha256-co+bnsVIyg42JpM9FimfGEjrd6A99GlBeow1Dgv7NBI=";
 
   src = fetchFromGitLab {
     owner = "famedly";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/fractal-next/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal-next/default.nix
new file mode 100644
index 000000000000..140b72f20f01
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal-next/default.nix
@@ -0,0 +1,76 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, meson
+, ninja
+, rustPlatform
+, pkg-config
+, glib
+, gtk4
+, gtksourceview5
+, libadwaita
+, gstreamer
+, gst-plugins-base
+, gst-plugins-bad
+, libsecret
+, desktop-file-utils
+, appstream-glib
+, openssl
+, pipewire
+, libshumate
+, wrapGAppsHook4
+}:
+
+stdenv.mkDerivation rec {
+  pname = "fractal-next";
+  version = "unstable-2022-07-10";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "GNOME";
+    repo = "fractal";
+    rev = "837b56978474fe512469805844b8ee234587499a";
+    hash = "sha256-6op/+eiDra5EFRludpkQOucBXdPl5a/oQWPwwhJEx+M=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    hash = "sha256-2mE26ES+fYSWdfMr8uTsX2VVGTNMDQ9MXEk5E/L95UI=";
+  };
+
+  nativeBuildInputs = [
+    glib
+    gtk4
+    meson
+    ninja
+    pkg-config
+    rustPlatform.bindgenHook
+    rustPlatform.cargoSetupHook
+    rustPlatform.rust.cargo
+    rustPlatform.rust.rustc
+    desktop-file-utils
+    appstream-glib
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    glib
+    gstreamer
+    gst-plugins-base
+    gst-plugins-bad
+    gtk4
+    gtksourceview5
+    libadwaita
+    libsecret
+    openssl
+    pipewire
+    libshumate
+  ];
+
+  meta = with lib; {
+    description = "Matrix group messaging app (development version)";
+    homepage = "https://gitlab.gnome.org/GNOME/fractal";
+    license = licenses.gpl3Plus;
+    maintainers = teams.gnome.members ++ (with maintainers; [ anselmschueler ]);
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix
index 9f772bf3f6d7..a910105fde80 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix
@@ -3,14 +3,15 @@
 mkFranzDerivation rec {
   pname = "franz";
   name = "Franz";
-  version = "5.6.1";
+  version = "5.9.2";
   src = fetchurl {
     url = "https://github.com/meetfranz/franz/releases/download/v${version}/franz_${version}_amd64.deb";
-    sha256 = "1gn0n1hr6z2gsdnpxysyq6sm8y7cjr9jafhsam8ffw0bq74kph7p";
+    sha256 = "sha256-W/60g5CbSUZcNASjdbiS7DNv9375GiesEG60QLLAh1g=";
   };
   meta = with lib; {
     description = "A free messaging app that combines chat & messaging services into one application";
     homepage = "https://meetfranz.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.free;
     maintainers = [ maintainers.davidtwco ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix
index 4c28e346a124..ffe82e6708aa 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub, fetchpatch
 , guile, pkg-config, glib, loudmouth, gmp, libidn, readline, libtool
 , libunwind, ncurses, curl, jansson, texinfo
 , automake, autoconf }:
@@ -13,6 +13,16 @@ stdenv.mkDerivation rec {
     sha256 = "09jwk2i8qd8c7wrn9xbqcwm32720dwxis22kf3jpbg8mn6w6i757";
   };
 
+  patches = [
+    # Pull pending patch for -fno-common tuulchain support:
+    #   https://github.com/GNUFreetalk/freetalk/pull/39
+    (fetchpatch {
+      name = "fno-common.patch";
+      url = "https://github.com/GNUFreetalk/freetalk/commit/f04d6bc8422be44cdf51b29c9a4310f20a18775a.patch";
+      sha256 = "1zjm56cdibnqabgcwl2bx79dj6dmqjf40zghqwwb0lfi60v1njqf";
+    })
+  ];
+
   preConfigure = ''
     ./autogen.sh
   '';
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix
index 3c56d84db4b5..2cd6b897d768 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix
@@ -2,6 +2,7 @@
 
 # Native dependencies
 , python3, gtk3, gobject-introspection, gnome
+, gtksourceview4
 , glib-networking
 
 # Test dependencies
@@ -21,15 +22,16 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gajim";
-  version = "1.3.3";
+  version = "1.4.7";
 
   src = fetchurl {
     url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz";
-    sha256 = "1337qkpcv7j0fgws9scnk82mn2l7s17060vmrbh3ihinmxmbxg6x";
+    sha256 = "sha256-GkgHvzo0sxBIgk5P/3Yr0eFiL0ZOc6QmwJaE3Ck2hPM=";
   };
 
   buildInputs = [
     gobject-introspection gtk3 gnome.adwaita-icon-theme
+    gtksourceview4
     glib-networking
   ] ++ lib.optionals enableJingle [ farstream gstreamer gst-plugins-base gst-libav gst-plugins-good libnice ]
     ++ lib.optional enableSecrets libsecret
@@ -41,21 +43,6 @@ python3.pkgs.buildPythonApplication rec {
     gettext wrapGAppsHook
   ];
 
-  # Workaround for https://dev.gajim.org/gajim/gajim/-/issues/10719.
-  # We don't use plugin release URL because it's updated in place.
-  plugins = fetchFromGitLab {
-    domain = "dev.gajim.org";
-    owner = "gajim";
-    repo = "gajim-plugins";
-    rev = "fea522e4360cec6ceacbf1df92644ab3343d4b99";
-    sha256 = "sha256-CmwEiLsdldoOfgHfWL/5hf/dp0HEDNAIlc5N0Np20KE=";
-  };
-
-  postPatch = ''
-    mkdir -p gajim/data/plugins
-    cp -r $plugins/plugin_installer gajim/data/plugins
-  '';
-
   dontWrapGApps = true;
 
   preFixup = ''
@@ -63,7 +50,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   propagatedBuildInputs = with python3.pkgs; [
-    nbxmpp pygobject3 dbus-python pillow css-parser precis-i18n keyring setuptools
+    nbxmpp pygobject3 dbus-python pillow css-parser precis-i18n keyring setuptools packaging gssapi
   ] ++ lib.optionals enableE2E [ pycrypto python-gnupg ]
     ++ lib.optional enableRST docutils
     ++ lib.optionals enableOmemoPluginDependencies [ python-axolotl qrcode ]
@@ -74,7 +61,7 @@ python3.pkgs.buildPythonApplication rec {
   checkPhase = ''
     xvfb-run dbus-run-session \
       --config-file=${dbus.daemon}/share/dbus-1/session.conf \
-      ${python3.interpreter} -m unittest discover -s test/unit -v
+      ${python3.interpreter} -m unittest discover -s test/gtk -v
     ${python3.interpreter} -m unittest discover -s test/no_gui -v
   '';
 
@@ -86,7 +73,7 @@ python3.pkgs.buildPythonApplication rec {
     description = "Jabber client written in PyGTK";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ raskin abbradar ];
-    downloadPage = "http://gajim.org/downloads.php";
+    downloadPage = "http://gajim.org/download/";
     platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix
index 8ed85cba8546..04d8909f3d89 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix
@@ -94,6 +94,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Where developers come to talk";
     downloadPage = "https://gitter.im/apps";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = [ maintainers.imalison ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gotktrix/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gotktrix/default.nix
index f44c05da5c01..d0f9f3d9e52e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/gotktrix/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gotktrix/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "gotktrix";
-  version = "0.1.2";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "diamondburned";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-K+q0sykdOMnAWypOXnwTU5oTokpYw61CTsAW1gIvGSQ=";
+    sha256 = "sha256-ZaE7L43fA9L5WbTAsBiIxlwYgjl1hMrtfrraAROz+7k=";
   };
 
-  vendorSha256 = "sha256-Br9KgUoN01yoGujgbj5UEoB57K87oEH/o40rrRtIZVY=";
+  vendorSha256 = "sha256-k6T44aH1NogyrbUnflfEHkp0zpOOH1YFly/X2kwbMzs=";
 
   buildInputs = [
     gtk4
@@ -32,6 +32,12 @@ buildGoModule rec {
   # Checking requires a working display
   doCheck = false;
 
+  postInstall = ''
+    echo 'X-Purism-FormFactor=Workstation;Mobile;' >> .nix/com.github.diamondburned.gotktrix.desktop
+    install -Dm444 .nix/com.github.diamondburned.gotktrix.desktop -t $out/share/applications/
+    install -Dm444 .github/logo-256.png -T $out/share/icons/hicolor/256x256/apps/gotktrix.png
+  '';
+
   meta = with lib; {
     description = "Matrix client written in Go using GTK4";
     homepage = "https://github.com/diamondburned/gotktrix";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix
deleted file mode 100644
index 3474e5729316..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{lib, stdenv, fetchurl, ncurses, openssl, tcl, tk}:
-
-stdenv.mkDerivation rec {
-  pname = "gtmess";
-  version = "0.97";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/gtmess/gtmess-${version}.tar.gz";
-    sha256 = "1ipmqsrj0r1ssbgs2fpr4x5vnzlxlqhx9jrnadp1jw7s0sxpjqv0";
-  };
-
-  buildInputs = [ ncurses openssl tcl tk];
-
-  meta = {
-    description = "Console MSN Messenger client for Linux and other unix systems";
-    homepage = "http://gtmess.sourceforge.net/";
-    license = lib.licenses.gpl2Plus;
-    platforms = with lib.platforms; linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix
index 6430ebdd22fc..924a918ebceb 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix
@@ -7,21 +7,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gurk-rs";
-  version = "0.2.3";
+  version = "0.2.4";
 
   src = fetchFromGitHub {
     owner = "boxdot";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Mko5udM8BY50uUwn7xESxB+s0MEO1kAJX4Dt/DnEEa4=";
+    sha256 = "sha256-WZUoUvu7GaiBOaRAOGRCXrLe6u3DRbI6CDTAf5jryGc=";
   };
 
-  cargoHash = "sha256-pYMMgBvLsqkj2peouDQK1vn97ByUjtdCrkbzuZZLXrY=";
+  cargoHash = "sha256-81ZW61JX40W0D/cmYogR3RJH2dvEKW1K7sIsl2io/7E=";
   buildInputs = [ protobuf ];
 
   PROTOC = "${protobuf}/bin/protoc";
 
   meta = with lib; {
+    broken = stdenv.isDarwin;
     description = "Signal Messenger client for terminal";
     homepage = "https://github.com/boxdot/gurk-rs";
     license = licenses.agpl3Only;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix
index 6a677c9e0d61..8debefa0c11c 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix
@@ -81,6 +81,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Desktop client for HipChat services";
     homepage = "http://www.hipchat.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ puffnfresh ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix
deleted file mode 100644
index 8cb748f54059..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ version
-, src
-, jami-meta
-, stdenv
-, lib
-, pkg-config
-, cmake
-, wrapQtAppsHook
-, wrapGAppsHook
-, gtk3-x11
-, networkmanager # for libnm
-, libayatana-appindicator
-, libnotify
-, clutter-gtk
-, libcanberra-gtk3
-, webkitgtk
-, qrencode
-, jami-libclient
-, qttools
-}:
-
-stdenv.mkDerivation {
-  pname = "jami-client-gnome";
-  inherit version src;
-
-  sourceRoot = "source/client-gnome";
-
-  preConfigure = ''
-    echo ${version} > version.txt
-  '';
-
-  nativeBuildInputs = [
-    pkg-config
-    cmake
-    wrapGAppsHook
-    wrapQtAppsHook
-  ];
-  # To spare double wrapping
-  dontWrapGApps = true;
-  preFixup = ''
-    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
-    # Users that set CLUTTER_BACKEND=wayland in their default environment will
-    # encounter a segfault due to:
-    # https://git.jami.net/savoirfairelinux/jami-client-gnome/-/issues/1100 .
-    qtWrapperArgs+=("--unset" "CLUTTER_BACKEND")
-  '';
-
-  buildInputs = [
-    qttools
-    jami-libclient
-    gtk3-x11
-    networkmanager
-    libayatana-appindicator
-    libnotify
-    clutter-gtk
-    libcanberra-gtk3
-    webkitgtk
-    qrencode
-  ];
-
-  meta = jami-meta // {
-    description = "The client based on GTK" + jami-meta.description;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-qt.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-qt.nix
index 0c952fd1ecad..840606bf19a9 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-qt.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-qt.nix
@@ -1,27 +1,30 @@
 { version
 , src
 , jami-meta
-, mkDerivation
 , lib
+, stdenv
 , pkg-config
 , cmake
 , networkmanager # for libnm
 , python3
 , qttools # for translations
 , wrapQtAppsHook
+, ffmpeg-jami
+, jami-daemon
 , libnotify
-, qrencode
-, qtwebengine
+, qt5compat
+, qtbase
 , qtdeclarative
-, qtquickcontrols2
+, qrencode
 , qtmultimedia
+, qtnetworkauth
 , qtsvg
+, qtwebengine
 , qtwebchannel
-, qtgraphicaleffects # no gui without this
-, jami-libclient
+, withWebengine ? false
 }:
 
-mkDerivation {
+stdenv.mkDerivation {
   pname = "jami-client-qt";
   inherit version src;
 
@@ -33,6 +36,7 @@ mkDerivation {
   '';
 
   nativeBuildInputs = [
+    wrapQtAppsHook
     pkg-config
     cmake
     python3
@@ -40,17 +44,32 @@ mkDerivation {
   ];
 
   buildInputs = [
-    jami-libclient
-    networkmanager
+    ffmpeg-jami
+    jami-daemon
     libnotify
+    networkmanager
+    qtbase
+    qt5compat
     qrencode
-    qtwebengine
+    qtnetworkauth
     qtdeclarative
-    qtquickcontrols2
     qtmultimedia
     qtsvg
     qtwebchannel
-    qtgraphicaleffects
+  ] ++ lib.optionals withWebengine [
+    qtwebengine
+  ];
+
+  cmakeFlags = [
+    "-DRING_BUILD_DIR=${jami-daemon}/include"
+    "-DRING_XML_INTERFACES_DIR=${jami-daemon}/share/dbus-1/interfaces"
+  ] ++ lib.optionals (!withWebengine) [
+    "-DWITH_WEBENGINE=false"
+  ];
+
+  qtWrapperArgs = [
+    # With wayland the titlebar is not themed and the wmclass is wrong.
+    "--set-default QT_QPA_PLATFORM xcb"
   ];
 
   meta = jami-meta // {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common
index 9376a38b1874..0aac24e24bb6 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common
@@ -19,6 +19,9 @@
 --disable-muxers
 --enable-muxer=rtp
 --enable-muxer=g722
+--enable-muxer=g723_1
+--enable-muxer=g726
+--enable-muxer=g726le
 --enable-muxer=h263
 --enable-muxer=h264
 --enable-muxer=hevc
@@ -43,6 +46,9 @@
 --enable-demuxer=wav
 --enable-demuxer=ac3
 --enable-demuxer=g722
+--enable-demuxer=g723_1
+--enable-demuxer=g726
+--enable-demuxer=g726le
 --enable-demuxer=pcm_mulaw
 --enable-demuxer=pcm_alaw
 --enable-demuxer=pcm_s16be
@@ -59,6 +65,13 @@
 --enable-parser=opus
 --enable-encoder=adpcm_g722
 --enable-decoder=adpcm_g722
+--enable-encoder=adpcm_g726
+--enable-decoder=adpcm_g726
+--enable-encoder=adpcm_g726le
+--enable-decoder=adpcm_g726le
+--enable-decoder=g729
+--enable-encoder=g723_1
+--enable-decoder=g723_1
 --enable-encoder=rawvideo
 --enable-decoder=rawvideo
 --enable-encoder=libx264
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches
index 2422192c09f5..28f884e66769 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches
@@ -2,5 +2,6 @@ remove-mjpeg-log.patch
 change-RTCP-ratio.patch
 rtp_ext_abs_send_time.patch
 libopusdec-enable-FEC.patch
-libopusenc-enable-FEC.patch
+libopusenc-reload-packet-loss-at-encode.patch
+ios-disable-b-frames.patch
 screen-sharing-x11-fix.patch
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_common b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_common
new file mode 100644
index 000000000000..5c3f607e5c0e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_common
@@ -0,0 +1,19 @@
+--disable-sound
+--enable-video
+--enable-ext-sound
+--disable-speex-aec
+--disable-g711-codec
+--disable-l16-codec
+--disable-gsm-codec
+--disable-g722-codec
+--disable-g7221-codec
+--disable-speex-codec
+--disable-ilbc-codec
+--disable-opencore-amr
+--disable-silk
+--disable-sdl
+--disable-ffmpeg
+--disable-v4l2
+--disable-openh264
+--disable-resample
+--disable-libwebrtc
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_linux b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_linux
new file mode 100644
index 000000000000..d1292afe3a29
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_linux
@@ -0,0 +1 @@
+--enable-epoll
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/daemon.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/daemon.nix
index f39b731132ea..131ca7b913c0 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/daemon.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/daemon.nix
@@ -2,80 +2,38 @@
 , version
 , jami-meta
 , stdenv
-, lib
-, fetchFromGitHub
 , autoreconfHook
 , pkg-config
 , perl # for pod2man
-, ffmpeg_4
-, pjsip
 , alsa-lib
 , asio
 , dbus
 , dbus_cplusplus
+, ffmpeg-jami
 , fmt
 , gmp
+, gnutls
+, http-parser
+, jack
+, jsoncpp
 , libarchive
 , libgit2
 , libnatpmp
-, secp256k1
-, openssl
-, opendht
-, speex
-, webrtc-audio-processing
-, jsoncpp
-, gnutls
-, zlib
-, libyamlcpp
 , libpulseaudio
-, jack
-, udev
 , libupnp
+, libyamlcpp
 , msgpack
+, opendht-jami
+, openssl
+, pjsip-jami
 , restinio
-, http-parser
+, secp256k1
+, speex
+, udev
+, webrtc-audio-processing
+, zlib
 }:
 
-let
-  readLinesToList = with builtins; file: filter (s: isString s && stringLength s > 0) (split "\n" (readFile file));
-
-  ffmpeg-jami = ffmpeg_4.overrideAttrs (old:
-    let
-      patch-src = src + "/daemon/contrib/src/ffmpeg/";
-    in
-    {
-      patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/ffmpeg_patches));
-      configureFlags = old.configureFlags
-        ++ (readLinesToList ./config/ffmpeg_args_common)
-        ++ lib.optionals stdenv.isLinux (readLinesToList ./config/ffmpeg_args_linux)
-        ++ lib.optionals (stdenv.isx86_32 || stdenv.isx86_64) (readLinesToList ./config/ffmpeg_args_x86);
-      outputs = [ "out" "doc" ];
-      meta = old.meta // {
-        # undefined reference to `ff_nlmeans_init_aarch64'
-        broken = stdenv.isAarch64;
-      };
-    });
-
-  pjsip-jami = pjsip.overrideAttrs (old:
-    let
-      src-args = import ./pjproject-src.nix;
-      version = lib.concatStrings (lib.lists.take 7 (lib.stringToCharacters src-args.rev));
-      patch-src = src + "/daemon/contrib/src/pjproject/";
-    in
-    {
-      inherit version;
-
-      src = fetchFromGitHub src-args;
-
-      patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/pjsip_patches));
-    });
-
-  opendht-jami = opendht.override {
-    enableProxyServerAndClient = true;
-    enablePushNotifications = true;
-  };
-
-in
 stdenv.mkDerivation {
   pname = "jami-daemon";
   inherit src version;
@@ -96,26 +54,25 @@ stdenv.mkDerivation {
     ffmpeg-jami
     gmp
     gnutls
+    http-parser
+    jack
+    jsoncpp
     libarchive
     libgit2
     libnatpmp
+    libpulseaudio
+    libupnp
+    libyamlcpp
+    msgpack
     opendht-jami
+    openssl
     pjsip-jami
+    restinio
     secp256k1
-    openssl
     speex
+    udev
     webrtc-audio-processing
     zlib
-    libyamlcpp
-    jsoncpp
-    libpulseaudio
-    jack
-    opendht
-    libupnp
-    udev
-    msgpack
-    restinio
-    http-parser
   ];
 
   doCheck = false; # The tests fail to compile due to missing headers.
@@ -124,9 +81,6 @@ stdenv.mkDerivation {
 
   passthru = {
     updateScript = ./update.sh;
-    ffmpeg = ffmpeg-jami;
-    pjsip = pjsip-jami;
-    opendht = opendht-jami;
   };
 
   meta = jami-meta // {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix
index 3e0ba8bb5e8f..690f6534e938 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix
@@ -1,24 +1,30 @@
 { stdenv
 , lib
 , callPackage
+, fetchFromGitHub
 , fetchzip
+, ffmpeg_4
+, pjsip
+, opendht
 , jack
 , udev
-, libsForQt5
+, qt6Packages
 }:
 
-rec {
-  version = "20211223.2.37be4c3";
+let
+  version = "20220726.1515.da8d1da";
 
   src = fetchzip {
     url = "https://dl.jami.net/release/tarballs/jami_${version}.tar.gz";
-    sha256 = "1zw9azwmxr4991nq5kl527lbwlj7psrissgvrkl1kxxbfbdncbhh";
+    hash = "sha256-yK+xo+YpNYmmWyNAE31hiL6HLvDdEFkm8FO6LQmPCL0=";
 
     stripRoot = false;
-    extraPostFetch = ''
+    postFetch = ''
       cd $out
-      mv ring-project/* ./
-      rm -r ring-project.rst ring-project client-android client-ios client-macosx client-uwp
+      mv jami-project/daemon ./
+      mv jami-project/client-qt ./
+      mv jami-project/COPYING ./
+      rm -r jami-project.rst jami-project
       rm daemon/contrib/tarballs/*
     '';
   };
@@ -31,11 +37,56 @@ rec {
     maintainers = [ maintainers.linsui ];
   };
 
-  jami-daemon = callPackage ./daemon.nix { inherit version src udev jack jami-meta; };
+  readLinesToList = with builtins; file: filter (s: isString s && stringLength s > 0) (split "\n" (readFile file));
+in
+rec {
+  ffmpeg-jami = ffmpeg_4.overrideAttrs (old:
+    let
+      patch-src = src + "/daemon/contrib/src/ffmpeg/";
+    in
+    {
+      patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/ffmpeg_patches));
+      configureFlags = old.configureFlags
+        ++ (readLinesToList ./config/ffmpeg_args_common)
+        ++ lib.optionals stdenv.isLinux (readLinesToList ./config/ffmpeg_args_linux)
+        ++ lib.optionals (stdenv.isx86_32 || stdenv.isx86_64) (readLinesToList ./config/ffmpeg_args_x86);
+      outputs = [ "out" "doc" ];
+      meta = old.meta // {
+        # undefined reference to `ff_nlmeans_init_aarch64'
+        broken = stdenv.isAarch64;
+      };
+    });
+
+  pjsip-jami = pjsip.overrideAttrs (old:
+    let
+      patch-src = src + "/daemon/contrib/src/pjproject/";
+    in
+    rec {
+      version = "4af5d666d18837abaac94c8ec6bfc84984dcf1e2";
 
-  jami-libclient = libsForQt5.callPackage ./libclient.nix { inherit version src jami-meta; };
+      src = fetchFromGitHub {
+        owner = "savoirfairelinux";
+        repo = "pjproject";
+        rev = version;
+        sha256 = "sha256-ENRfQh/HCXqInTV0tu8tGQO7+vTbST6XXpptERXMACE=";
+      };
 
-  jami-client-gnome = libsForQt5.callPackage ./client-gnome.nix { inherit version src jami-meta; };
+      patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/pjsip_patches));
 
-  jami-client-qt = libsForQt5.callPackage ./client-qt.nix { inherit version src jami-meta; };
+      configureFlags = (readLinesToList ./config/pjsip_args_common)
+        ++ lib.optionals stdenv.isLinux (readLinesToList ./config/pjsip_args_linux);
+    });
+
+  opendht-jami = opendht.override {
+    enableProxyServerAndClient = true;
+    enablePushNotifications = true;
+  };
+
+  jami-daemon = callPackage ./daemon.nix {
+    inherit version src udev jack jami-meta ffmpeg-jami pjsip-jami opendht-jami;
+  };
+
+  jami-client-qt = qt6Packages.callPackage ./client-qt.nix {
+    inherit version src jami-meta ffmpeg-jami;
+  };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/libclient-include-path.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/libclient-include-path.patch
deleted file mode 100644
index 3ae017eb458b..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/libclient-include-path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git i/CMakeLists.txt w/CMakeLists.txt
-index 0ee77dba..767e19df 100644
---- i/CMakeLists.txt
-+++ w/CMakeLists.txt
-@@ -635,7 +635,7 @@ if(ENABLE_SHARED)
-     )
- endif()
- 
--SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include)
-+SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_FULL_INCLUDEDIR})
- 
- INSTALL( FILES ${libringclient_LIB_HDRS} ${libringclient_extra_LIB_HDRS}
-   DESTINATION ${INCLUDE_INSTALL_DIR}/libringclient
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/libclient.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/libclient.nix
deleted file mode 100644
index b5ea7431b915..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/libclient.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ version
-, src
-, jami-meta
-, stdenv
-, lib
-, pkg-config
-, cmake
-, qtbase
-, jami-daemon
-}:
-
-stdenv.mkDerivation {
-  pname = "jami-libclient";
-  inherit version src;
-
-  sourceRoot = "source/lrc";
-
-  nativeBuildInputs = [
-    cmake
-    pkg-config
-  ];
-
-  buildInputs = [
-    jami-daemon
-  ];
-
-  patches = [
-    # Fix path to include dir when using split outputs
-    ./libclient-include-path.patch
-  ];
-
-  propagatedBuildInputs = [
-    qtbase
-  ];
-  outputs = [ "out" "dev" ];
-
-  cmakeFlags = [
-    "-DRING_BUILD_DIR=${jami-daemon}/include"
-    "-DRING_XML_INTERFACES_DIR=${jami-daemon}/share/dbus-1/interfaces"
-  ];
-
-  dontWrapQtApps = true;
-
-  meta = jami-meta // {
-    description = "The client library" + jami-meta.description;
-    license = lib.licenses.lgpl21Plus;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix
deleted file mode 100644
index 76e88d887555..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  owner = "savoirfairelinux";
-  repo = "pjproject";
-  rev = "e1f389d0b905011e0cb62cbdf7a8b37fc1bcde1a";
-  sha256 = "0inpmyb6mhrzr0g309d6clkc99lddqdvyf9xajz0igvgp9pvgpza";
-}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/update.sh
index 10d9bb885c35..abc7728e0703 100755
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/update.sh
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/update.sh
@@ -3,11 +3,15 @@
 
 set -e
 
-jami_dir="$( dirname "${BASH_SOURCE[0]}" )"
+jami_dir=$(readlink -e $(dirname "${BASH_SOURCE[0]}"))
+
+cd $jami_dir/../../../../..
 
 # Update src version and hash
 version=$(curl -s 'https://dl.jami.net/release/tarballs/?C=M;O=D' | sed -n -E 's/^.*jami_([0-9.a-f]+)\.tar\.gz.*$/\1/p' | head -n 1)
-update-source-version jami-libclient "$version" --file=pkgs/applications/networking/instant-messengers/jami/default.nix
+echo "Latest version: ${version}"
+
+update-source-version jami-daemon "$version" --file=$jami_dir/default.nix
 
 src=$(nix-build --no-out-link -A jami-libclient.src)
 
@@ -17,7 +21,7 @@ mkdir -p $config_dir
 ffmpeg_rules="${src}/daemon/contrib/src/ffmpeg/rules.mak"
 
 # Update FFmpeg patches
-ffmpeg_patches=$(sed -n '/.sum-ffmpeg:/,/HAVE_IOS/p' ${ffmpeg_rules} | sed -n -E 's/.*ffmpeg\/(.*patch).*/\1/p')
+ffmpeg_patches=$(sed -n '/^ffmpeg:/,/^$/p' ${ffmpeg_rules} | sed -n -E 's/.*ffmpeg\/(.*patch).*/\1/p')
 echo -e "Patches for FFmpeg:\n${ffmpeg_patches}\n"
 echo "${ffmpeg_patches}" > "$config_dir/ffmpeg_patches"
 
@@ -43,8 +47,15 @@ echo "${pjsip_patches}" > "$config_dir/pjsip_patches"
 
 # Update pjsip version
 pjsip_version=$(sed -n -E 's/.*PJPROJECT_VERSION := ([0-9a-f]+).*/\1/p' ${src}/daemon/contrib/src/pjproject/rules.mak)
-nix-prefetch fetchFromGitHub \
-  --owner savoirfairelinux \
-  --repo pjproject \
-  --rev ${pjsip_version} \
-  --output nix > "${jami_dir}/pjproject-src.nix"
+update-source-version jami-daemon.pjsip "$pjsip_version" --file=pkgs/applications/networking/instant-messengers/jami/daemon.nix
+
+pjsip_rules="${src}/daemon/contrib/src/pjproject/rules.mak"
+
+# Update pjsip args
+pjsip_args_common=$(sed -n '/PJPROJECT_OPTIONS :=/,/with-gnutls/p' ${pjsip_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*\\/\1/p')
+echo -e "Common args for pjsip:\n${pjsip_args_common}\n"
+echo "${pjsip_args_common}" > "$config_dir/pjsip_args_common"
+
+pjsip_args_linux=$(sed -n '/HAVE_LINUX/,/endif/p' ${pjsip_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
+echo -e "Linux args for pjsip:\n${pjsip_args_linux}\n"
+echo "${pjsip_args_linux}" > "$config_dir/pjsip_args_linux"
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
index 2395a196f605..9625f8dcb2c3 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jitsi-meet-electron";
-  version = "2022.1.1";
+  version = "2022.3.1";
 
   src = fetchurl {
     url = "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage";
-    sha256 = "0x3fdqgjnsd570b7nszfx3h8l5c8x2kg32ig85n2a2g481c7xi6l";
+    sha256 = "sha256-/5WpjmTLwQN73m7nHg4DKPbXIbD9WyJ+YBbFMD4ZDfg=";
     name = "${pname}-${version}.AppImage";
   };
 
@@ -46,7 +46,8 @@ stdenv.mkDerivation rec {
   postFixup = ''
     makeWrapper ${electron}/bin/electron $out/bin/${pname} \
       --add-flags $out/share/${pname}/resources/app.asar \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc xorg.libXtst pipewire ]}"
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc xorg.libXtst pipewire ]}" \
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
index 21c28c7391ae..0ef6b2e74d7b 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
@@ -65,6 +65,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://jitsi.org/";
     description = "Open Source Video Calls and Chat";
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = teams.jitsi.members;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix
index fc14f77198b5..c296118eff9e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix
@@ -12,6 +12,7 @@
 , knotifications
 , zxing-cpp
 , qxmpp
+, sonnet
 , gst_all_1
 }:
 
@@ -38,6 +39,7 @@ mkDerivation rec {
     knotifications
     zxing-cpp
     qxmpp
+    sonnet
     gstreamer
     gst-plugins-bad
     gst-plugins-base
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
index 5fe90d50a31a..baa4613b1731 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
@@ -14,13 +14,13 @@
 
 mkDerivation rec {
   pname = "kdeltachat";
-  version = "unstable-2022-01-02";
+  version = "unstable-2022-03-20";
 
   src = fetchFromSourcehut {
     owner = "~link2xt";
     repo = "kdeltachat";
-    rev = "ec545c8208c870c44312558f91c79e6ffce4444e";
-    hash = "sha256-s/dJ2ahdUK7ODKsna+tl81e+VQLkCAELb/iEXf9WlIM=";
+    rev = "8cce6d20b49e917929521a13caed30e81037c868";
+    hash = "sha256-1L45KodOmvy6pBbBzJwGWMAY7y3+lfxjeXtsH1SdipU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix
index 47ee2a68a51a..71299566dd87 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix
@@ -1,57 +1,39 @@
-{ bcg729
-, bctoolbox
-, bcunit
+{ bctoolbox
 , belcard
 , belle-sip
 , belr
-, bzrtp
-, cairo
 , cmake
-, cyrus_sasl
 , fetchFromGitLab
-, fetchurl
-, ffmpeg
-, gdk-pixbuf
-, glib
-, gnused
-, graphviz
-, gtk2
-, intltool
 , lib
-, libexosip
 , liblinphone
-, libmatroska
-, libnotify
-, libosip
-, libsoup
-, libupnp
-, libX11
-, libxml2
-, makeWrapper
-, mbedtls
 , mediastreamer
 , mediastreamer-openh264
 , minizip2
 , mkDerivation
-, openldap
-, ortp
-, pango
-, pkg-config
-, qtbase
 , qtgraphicaleffects
 , qtquickcontrols2
 , qttranslations
-, readline
-, speex
-, sqlite
-
-, udev
-, zlib
 }:
 
+# How to update Linphone? (The Qt desktop app)
+#
+# Belledonne Communications (BC), the company making Linphone, has split the
+# project into several sub-projects that they maintain, plus some third-party
+# dependencies that they also extend with commits of their own, specific to
+# Linphone and not (yet?) upstreamed.
+#
+# All of this is organised in a Software Development Kit (SDK) meta-repository
+# with git submodules to pin all those repositories into a coherent whole.
+#
+# The Linphone Qt desktop app uses this SDK as submodule as well.
+#
+# So, in order to update the desktop app to a new release, one has to follow
+# the submodule chain and update the corresponding derivations here, in nixpkgs,
+# with the corresponding version number (or commit hash)
+
 mkDerivation rec {
   pname = "linphone-desktop";
-  version = "4.2.5";
+  version = "4.4.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -59,12 +41,13 @@ mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "1gq4l9p21rbrcksa7fbkzn9fzbbynqmn6ni6lhnvzk359sb1xvbz";
+    sha256 = "sha256-BBOTyKMZikkxMJSmzAuChVHpVeCvbAimn1K3REGbqEg=";
   };
 
   patches = [
     ./do-not-build-linphone-sdk.patch
     ./remove-bc_compute_full_version-usage.patch
+    ./no-store-path-in-autostart.patch
   ];
 
   # See: https://gitlab.linphone.org/BC/public/linphone-desktop/issues/21
@@ -78,59 +61,31 @@ mkDerivation rec {
   # there might be some build inputs here that aren't needed for
   # linphone-desktop.
   buildInputs = [
-    bcg729
+    # Made by BC
     bctoolbox
     belcard
     belle-sip
     belr
-    bzrtp
-    cairo
-    cyrus_sasl
-    ffmpeg
-    gdk-pixbuf
-    glib
-    gtk2
-    libX11
-    libexosip
     liblinphone
-    libmatroska
-    libnotify
-    libosip
-    libsoup
-    libupnp
-    libxml2
-    mbedtls
     mediastreamer
     mediastreamer-openh264
+
     minizip2
-    openldap
-    ortp
-    pango
-    qtbase
     qtgraphicaleffects
     qtquickcontrols2
     qttranslations
-    readline
-    speex
-    sqlite
-    udev
-    zlib
   ];
 
   nativeBuildInputs = [
-    bcunit
     cmake
-    gnused
-    graphviz
-    intltool
-    makeWrapper
-    pkg-config
   ];
 
   cmakeFlags = [
-    "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
     "-DMINIZIP_INCLUDE_DIRS=${minizip2}/include"
     "-DMINIZIP_LIBRARIES=minizip"
+
+    # RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/
+    "-DCMAKE_SKIP_BUILD_RPATH=ON"
   ];
 
   # The default install phase fails because the paths are somehow messed up in
@@ -162,18 +117,25 @@ mkDerivation rec {
   # Linphone will randomly crash when it tries to access those files. Then,
   # those just need to be copied manually below.
   installPhase = ''
-    mkdir -p $out/bin
+    mkdir -p $out/bin $out/lib
     cp linphone-app/linphone $out/bin/
+    cp linphone-app/libapp-plugin.so $out/lib/
+    mkdir -p $out/lib/mediastreamer/plugins
+    ln -s ${mediastreamer-openh264}/lib/mediastreamer/plugins/* $out/lib/mediastreamer/plugins/
+    ln -s ${mediastreamer}/lib/mediastreamer/plugins/* $out/lib/mediastreamer/plugins/
     wrapProgram $out/bin/linphone \
       --set MEDIASTREAMER_PLUGINS_DIR \
-            ${mediastreamer-openh264}/lib/mediastreamer/plugins
+            $out/lib/mediastreamer/plugins
     mkdir -p $out/share/applications
     cp linphone-app/linphone.desktop $out/share/applications/
-    cp -r ../linphone-app/assets/icons $out/share/
+    mkdir -p $out/share/icons/hicolor/scalable/apps
+    cp ../linphone-app/assets/images/linphone_logo.svg $out/share/icons/hicolor/scalable/apps/linphone.svg
     mkdir -p $out/share/belr/grammars
     ln -s ${liblinphone}/share/belr/grammars/* $out/share/belr/grammars/
+    ln -s ${belle-sip}/share/belr/grammars/* $out/share/belr/grammars/
     mkdir -p $out/share/linphone
     ln -s ${liblinphone}/share/linphone/* $out/share/linphone/
+    ln -s ${liblinphone}/share/sounds $out/share/sounds
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch
index fe774a479fac..dc635b32a031 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch
@@ -1,30 +1,31 @@
-From 08b8b1811a1ad079fa713d19a8cc6bf2dc782bb7 Mon Sep 17 00:00:00 2001
-From: David P <megver83@parabola.nu>
-Date: Thu, 26 Nov 2020 15:56:30 -0300
-Subject: [PATCH 1/2] do not build linphone-sdk
+From e6a9992461f368d08d1ad63ffe454714ec0c59ce Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@brun.one>
+Date: Fri, 28 Jan 2022 02:36:01 +0100
+Subject: [PATCH] Remove Linphone SDK build
 
-Signed-off-by: David P <megver83@parabola.nu>
 ---
- CMakeLists.txt                                | 61 +------------------
- .../cmake_builder/additional_steps.cmake      |  9 ---
- 2 files changed, 3 insertions(+), 67 deletions(-)
+ CMakeLists.txt                                | 86 ++-----------------
+ .../cmake_builder/additional_steps.cmake      |  9 --
+ 2 files changed, 5 insertions(+), 90 deletions(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index f7eb05f2..5921ee5b 100644
+index 2002b925..6d92a8e5 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -118,7 +118,6 @@ list(APPEND APP_OPTIONS "-DENABLE_RELATIVE_PREFIX=${ENABLE_RELATIVE_PREFIX}")
- 
+@@ -152,7 +152,6 @@ list(APPEND APP_OPTIONS "-DENABLE_RELATIVE_PREFIX=${ENABLE_RELATIVE_PREFIX}")
  list(APPEND APP_OPTIONS "-DLINPHONE_OUTPUT_DIR=${LINPHONE_OUTPUT_DIR}")
+ list(APPEND APP_OPTIONS "-DENABLE_QT_GL=${ENABLE_VIDEO}")#Activate on video
  
 -include(ExternalProject)
  set(PROJECT_BUILD_COMMAND "")
  if(CMAKE_BUILD_PARALLEL_LEVEL)
  	list(APPEND APP_OPTIONS "-DCMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}")
-@@ -136,29 +135,8 @@ if(UNIX AND NOT APPLE)
- 	set(CMAKE_INSTALL_RPATH "$ORIGIN:$ORIGIN/lib64:$ORIGIN/../lib64:$ORIGIN/lib:$ORIGIN/../lib:${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}")
- 	list(APPEND APP_OPTIONS "-DCMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH}")
+@@ -190,30 +189,8 @@ if(ENABLE_BUILD_APP_PLUGINS)
+ 	endif()
  endif()
+ 
+-
+-if(NOT LINPHONE_QT_ONLY)
 -ExternalProject_Add(sdk PREFIX "${CMAKE_BINARY_DIR}/sdk"
 -    SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-sdk"
 -    INSTALL_DIR "${LINPHONE_OUTPUT_DIR}"
@@ -35,7 +36,7 @@ index f7eb05f2..5921ee5b 100644
 -    INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time."
 -    LIST_SEPARATOR | # Use the alternate list separator
 -    CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
--    #BUILD_ALWAYS NO #${DO_BUILD}
+-    BUILD_ALWAYS NO #${DO_BUILD}
 -)
 -ExternalProject_Add_Step(sdk force_build
 -	COMMENT "Forcing build for 'desktop'"
@@ -43,18 +44,17 @@ index f7eb05f2..5921ee5b 100644
 -	DEPENDERS build
 -	ALWAYS 1
 -)
+-endif()
  include(FindPkgConfig)
  
 -set(APP_DEPENDS sdk)
--
--
- find_package(Qt5 5.12 COMPONENTS Core REQUIRED)
+ find_package(Qt5 5.10 COMPONENTS Core REQUIRED)
  
  if ( NOT Qt5_FOUND )
-@@ -173,39 +151,6 @@ find_package(Mediastreamer2 CONFIG QUIET)
+@@ -227,62 +204,9 @@ find_package(belcard CONFIG QUIET)
+ find_package(Mediastreamer2 CONFIG QUIET)
  find_package(ortp CONFIG QUIET)
  
- 
 -if(NOT (LinphoneCxx_FOUND) OR NOT (Linphone_FOUND) OR NOT (bctoolbox_FOUND) OR NOT (belcard_FOUND) OR NOT (Mediastreamer2_FOUND) OR NOT (ortp_FOUND) OR FORCE_APP_EXTERNAL_PROJECTS)
 -	message("Projects are set as External projects. You can start building them by using for example : cmake --build . --target install")
 -	ExternalProject_Add(linphone-qt PREFIX "${CMAKE_BINARY_DIR}/linphone-app"
@@ -63,23 +63,51 @@ index f7eb05f2..5921ee5b 100644
 -		BINARY_DIR "${CMAKE_BINARY_DIR}/linphone-app"
 -		DEPENDS ${APP_DEPENDS}
 -		BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
--		INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step will not be done by external project"
+-		INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time."
 -		LIST_SEPARATOR | # Use the alternate list separator
 -		CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
 -	# ${APP_OPTIONS}
 -		BUILD_ALWAYS ON
 -	)
+-	if( ENABLE_BUILD_APP_PLUGINS)
+-		ExternalProject_Add(app-plugins PREFIX "${CMAKE_BINARY_DIR}/plugins-app"
+-			SOURCE_DIR "${CMAKE_SOURCE_DIR}/plugins"
+-			INSTALL_DIR "${APPLICATION_OUTPUT_DIR}"
+-			BINARY_DIR "${CMAKE_BINARY_DIR}/plugins-app"
+-			DEPENDS linphone-qt
+-			BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
+-			INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time."
+-			LIST_SEPARATOR | # Use the alternate list separator
+-			CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
+-		)
+-	endif()
 -	install(CODE "message(STATUS Running install)")
 -	set(AUTO_REGENERATION auto_regeneration)
--	add_custom_target(${AUTO_REGENERATION} ALL
--		COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}
--		DEPENDS linphone-qt)
+-	if(	ENABLE_BUILD_APP_PLUGINS)
+-		add_custom_target(${AUTO_REGENERATION} ALL
+-			COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}
+-			DEPENDS app-plugins)
+-	else()
+-		add_custom_target(${AUTO_REGENERATION} ALL
+-			COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}
+-			DEPENDS linphone-qt)
+-	endif()
 -else()
 -	message("Adding Linphone Desktop in an IDE-friendly state")
 -	set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}")
 -	add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app)
--	add_dependencies(app-library ${APP_DEPENDS})
--endif()
+-	if(NOT LINPHONE_QT_ONLY)
+-		add_dependencies(app-library ${APP_DEPENDS})
+-	endif()
+-	if( ENABLE_BUILD_APP_PLUGINS)
+-		add_subdirectory(${CMAKE_SOURCE_DIR}/plugins "plugins-app")
+-	endif()
++message("Adding Linphone Desktop in an IDE-friendly state")
++set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}")
++add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app)
++if( ENABLE_BUILD_APP_PLUGINS)
++	add_subdirectory(${CMAKE_SOURCE_DIR}/plugins "plugins-app")
+ endif()
 -ExternalProject_Add(linphone-qt-only PREFIX "${CMAKE_BINARY_DIR}/linphone-app"
 -    SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-app"
 -    INSTALL_DIR "${APPLICATION_OUTPUT_DIR}"
@@ -89,11 +117,8 @@ index f7eb05f2..5921ee5b 100644
 -    LIST_SEPARATOR | # Use the alternate list separator
 -    CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
 -    EXCLUDE_FROM_ALL ON
--    BUILD_ALWAYS ON
+-    #BUILD_ALWAYS ON
 -)
-+message("Adding Linphone Desktop in an IDE-friendly state")
-+set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}")
-+add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app)
 diff --git a/linphone-app/cmake_builder/additional_steps.cmake b/linphone-app/cmake_builder/additional_steps.cmake
 index 7f7fd573..a69a04e8 100644
 --- a/linphone-app/cmake_builder/additional_steps.cmake
@@ -114,5 +139,5 @@ index 7f7fd573..a69a04e8 100644
    endif ()
  endif ()
 -- 
-2.29.2
+2.25.1
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/no-store-path-in-autostart.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/no-store-path-in-autostart.patch
new file mode 100644
index 000000000000..dc1b0be916cd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/no-store-path-in-autostart.patch
@@ -0,0 +1,27 @@
+From 6a26922e5e4363de36057d635a1bf889160b2533 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@brun.one>
+Date: Fri, 28 Jan 2022 18:44:43 +0100
+Subject: [PATCH] Do not use store path for autostart on Nix
+
+---
+ linphone-app/src/app/App.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/linphone-app/src/app/App.cpp b/linphone-app/src/app/App.cpp
+index 868f8f44..2c61c648 100644
+--- a/linphone-app/src/app/App.cpp
++++ b/linphone-app/src/app/App.cpp
+@@ -858,6 +858,10 @@ void App::setAutoStart (bool enabled) {
+ 		exec = QProcessEnvironment::systemEnvironment().value(QStringLiteral("APPIMAGE"));
+ 		qDebug() << "exec path autostart set appimage=" << exec;
+ 	}
++	else if (binPath.startsWith("/nix/store")) { // Nix/NixOS
++		exec = QStringLiteral("linphone");
++		qDebug() << "exec path autostart set nix=" << exec;
++	}
+ 	else { //classic package
+ 		exec = binPath;
+ 		qDebug() << "exec path autostart set classic package=" << exec;
+-- 
+2.25.1
+
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch
index 547652d3af7f..225f0e78db23 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch
@@ -1,7 +1,7 @@
-From 6fc23da651d54979e73776fcda38614e290d65dc Mon Sep 17 00:00:00 2001
+From 4849d5633b98e6d3514355436eab5ba537cbfd99 Mon Sep 17 00:00:00 2001
 From: David P <megver83@parabola.nu>
 Date: Fri, 23 Oct 2020 16:44:17 -0300
-Subject: [PATCH 2/2] remove bc_compute_full_version usage
+Subject: [PATCH] remove bc_compute_full_version usage
 
 ---
  linphone-app/CMakeLists.txt                           | 11 +----------
@@ -10,7 +10,7 @@ Subject: [PATCH 2/2] remove bc_compute_full_version usage
  3 files changed, 2 insertions(+), 24 deletions(-)
 
 diff --git a/linphone-app/CMakeLists.txt b/linphone-app/CMakeLists.txt
-index 3bc9420a..27b418ee 100644
+index de7f917f..ee14ff78 100644
 --- a/linphone-app/CMakeLists.txt
 +++ b/linphone-app/CMakeLists.txt
 @@ -21,17 +21,8 @@
@@ -30,8 +30,8 @@ index 3bc9420a..27b418ee 100644
 -
 -project(linphoneqt VERSION "${version_major}.${version_minor}.${version_patch}")
  
+ 
  if(ENABLE_BUILD_VERBOSE)
- 	#message("CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH}")
 diff --git a/linphone-app/build/CMakeLists.txt b/linphone-app/build/CMakeLists.txt
 index 8ef03faa..97d94bd6 100644
 --- a/linphone-app/build/CMakeLists.txt
@@ -49,7 +49,7 @@ index 8ef03faa..97d94bd6 100644
  
  set(CPACK_SOURCE_PACKAGE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME})
 diff --git a/linphone-app/cmake_builder/linphone_package/CMakeLists.txt b/linphone-app/cmake_builder/linphone_package/CMakeLists.txt
-index baea03cf..08ffc1b5 100644
+index ac85c68a..e6af5a66 100644
 --- a/linphone-app/cmake_builder/linphone_package/CMakeLists.txt
 +++ b/linphone-app/cmake_builder/linphone_package/CMakeLists.txt
 @@ -38,15 +38,7 @@ set(LINPHONE_QML_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../ui")
@@ -70,5 +70,5 @@ index baea03cf..08ffc1b5 100644
  endif ()
  string(REGEX REPLACE "([0-9.]+)-?.*" "\\1" LINPHONE_VERSION "${APP_PROJECT_VERSION}")
 -- 
-2.29.2
+2.25.1
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
index ad3248fabba9..1535b694231e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
@@ -1,38 +1,58 @@
-{ stdenv, lib, fetchFromGitHub, cacert, python3 }:
+{ lib
+, fetchFromGitHub
+, buildPythonApplication
+, cacert
+, setuptools
+, matrix-nio
+, python-magic
+, markdown
+, pillow
+, urllib3
+, aiofiles
+, notify2
+, dbus-python
+, pyxdg
+, python-olm
+}:
 
-stdenv.mkDerivation {
+buildPythonApplication rec {
   pname = "matrix-commander";
-  version = "unstable-2021-08-05";
+  version = "3.5.0";
 
   src = fetchFromGitHub {
     owner = "8go";
     repo = "matrix-commander";
-    rev = "7ab3fd9a0ef4eb19d882cb3701d2025b4d41b63a";
-    sha256 = "sha256-WWf7GbJxGlqIdsS1d0T1DO0WN2RBepHGgJrl/nt7UIg=";
+    rev = "v${version}";
+    sha256 = "sha256-/hNTaajZTyeIcGILIXqUVbBvZ8AUNZKBDsZ4Gr5RL2o=";
   };
 
-  buildInputs = [
-    cacert
-    (python3.withPackages(ps: with ps; [
-      matrix-nio
-      magic
-      markdown
-      pillow
-      urllib3
-      aiofiles
-      notify2
-    ]))];
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/bin
-    cp $src/matrix-commander.py $out/bin/matrix-commander
-    chmod +x $out/bin/matrix-commander
+  format = "pyproject";
 
-    runHook postInstall
+  postPatch = ''
+    # Dependencies already bundled with Python
+    sed -i \
+      -e '/uuid/d' \
+      -e '/argparse/d' \
+      -e '/asyncio/d' \
+      -e '/datetime/d' \
+      setup.cfg requirements.txt
   '';
 
+  propagatedBuildInputs = [
+    cacert
+    setuptools
+    matrix-nio
+    python-magic
+    markdown
+    pillow
+    urllib3
+    aiofiles
+    notify2
+    dbus-python
+    pyxdg
+    python-olm
+  ];
+
   meta = with lib; {
     description = "Simple but convenient CLI-based Matrix client app for sending and receiving";
     homepage = "https://github.com/8go/matrix-commander";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix
index 2992bf22cb31..c1eafe304a9d 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix
@@ -2,7 +2,7 @@
 
 {pkgs ? import <nixpkgs> {
     inherit system;
-  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-14_x"}:
 
 let
   nodeEnv = import ./node-env.nix {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix
index 9e3527948818..f2b02ebdec4f 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix
@@ -6,13 +6,13 @@
   postInstall = ''
     mkdir "$out/bin"
     echo '#!/bin/sh' >> "$out/bin/matrix-recorder"
-    echo "'${pkgs.nodejs-12_x}/bin/node'" \
+    echo "'${pkgs.nodejs-14_x}/bin/node'" \
          "'$out/lib/node_modules/matrix-recorder/matrix-recorder.js'" \
          '"$@"' >> "$out/bin/matrix-recorder"
     echo '#!/bin/sh' >> "$out/bin/matrix-recorder-to-html"
     echo 'cd "$1"' >> "$out/bin/matrix-recorder-to-html"
     echo "test -d templates/ || ln -sfT '$out/lib/node_modules/matrix-recorder/templates' templates" >> "$out/bin/matrix-recorder-to-html"
-    echo "'${pkgs.nodejs-12_x}/bin/node'" \
+    echo "'${pkgs.nodejs-14_x}/bin/node'" \
          "'$out/lib/node_modules/matrix-recorder/recorder-to-html.js'" \
          '.' >> "$out/bin/matrix-recorder-to-html"
     chmod a+x "$out/bin/matrix-recorder"
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
index 6f53fe2b3a3b..bb900654d1e8 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
@@ -14,17 +14,17 @@
 let
 
   pname = "mattermost-desktop";
-  version = "5.0.3";
+  version = "5.1.0";
 
   srcs = {
     "x86_64-linux" = {
       url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-x64.tar.gz";
-      hash = "sha256-KLSWJpNSMGmfugbkFIJLDnxcZtrtBZOGjLlR+kAoMTA=";
+      hash = "sha256-KmtQUqg2ODbZ6zJjsnwlvB+vhR1xbK2X9qqmZpyTR78=";
     };
 
     "i686-linux" = {
       url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-ia32.tar.gz";
-      hash = "sha256-4ofjOsfGbgO1PSqQpigNp90JsvlGP1kGexVAR/h3/88=";
+      hash = "sha256-X8Zrthw1hZOqmcYidt72l2vonh31iiA3EDGmCQr7e4c=";
     };
   };
 
@@ -84,6 +84,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Mattermost Desktop client";
     homepage = "https://about.mattermost.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = [ maintainers.joko ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/neochat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/neochat/default.nix
deleted file mode 100644
index a8e73ad1098f..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/neochat/default.nix
+++ /dev/null
@@ -1,73 +0,0 @@
-{ mkDerivation
-, lib
-, fetchFromGitLab
-, pkg-config
-, cmake
-, cmark
-, extra-cmake-modules
-, kconfig
-, kdbusaddons
-, ki18n
-, kio
-, kirigami2
-, kitemmodels
-, knotifications
-, kquickimageedit
-, libpulseaudio
-, libquotient
-, libsecret
-, olm
-, qcoro
-, qqc2-desktop-style
-, qtgraphicaleffects
-, qtkeychain
-, qtmultimedia
-, qtquickcontrols2
-, sonnet
-}:
-
-mkDerivation rec {
-  pname = "neochat";
-  version = "22.02";
-
-  src = fetchFromGitLab {
-    domain = "invent.kde.org";
-    owner = "network";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-7EBnHuwpyJ/bGrCldZHWOwcnJWDIDaNWZXHkCYkOTjs=";
-  };
-
-  nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];
-
-  buildInputs = [
-    cmark
-    kconfig
-    kdbusaddons
-    kio
-    ki18n
-    kirigami2
-    kitemmodels
-    knotifications
-    kquickimageedit
-    libpulseaudio
-    libquotient
-    libsecret
-    olm
-    qcoro
-    qtgraphicaleffects
-    qtkeychain
-    qtmultimedia
-    qtquickcontrols2
-    qqc2-desktop-style
-    sonnet
-  ];
-
-  meta = with lib; {
-    description = "A client for matrix, the decentralized communication protocol.";
-    homepage = "https://apps.kde.org/en/neochat";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ peterhoeg ];
-    platforms = with platforms; linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
index 750511ebf152..d3a7abae8205 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -33,13 +33,13 @@
 
 mkDerivation rec {
   pname = "nheko";
-  version = "0.9.3";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "Nheko-Reborn";
     repo = "nheko";
     rev = "v${version}";
-    sha256 = "sha256-h1Yahz7Rt7+r55RFTSVj6E14nWnjCs0CecljceaWgaQ=";
+    sha256 = "sha256-JNAI1+GmRgee7bqeJi8JadV3W7vXMpEvvKqqinb97Ng=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-signald/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-signald/default.nix
new file mode 100644
index 000000000000..fd8342fbdead
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-signald/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub, pidgin, json-glib, signald }:
+
+stdenv.mkDerivation rec {
+  pname = "purple-signald";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "hoehermann";
+    repo = "libpurple-signald";
+    rev = "v${version}";
+    sha256 = "sha256-2LiHjVRBwdPbfravIVM+gvsh3Gq4bhjtRD6eWAbkWmc=";
+    fetchSubmodules = true;
+  };
+
+  buildInputs = [
+    pidgin
+    json-glib
+    signald
+  ];
+
+  PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2";
+  PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share";
+
+  installFlags = [ "DESTDIR=$(out)" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/hoehermann/libpurple-signald";
+    description = "Signal support for Pidgin / libpurple";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ hufman ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix
index cb450aa1bc33..c52082e06c90 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "purple-xmpp-upload";
-  version = "unstable-2017-12-31";
+  version = "unstable-2021-11-04";
 
   src = fetchFromGitHub {
     owner = "Junker";
     repo = "purple-xmpp-http-upload";
-    rev = "178096cbfc9df165c2dc1677666439969d212b37";
-    sha256 = "12l9rqlgb4i50xxrfnvwz9sqfk0d3c0m6l09mnvfixqi8illyvlp";
+    rev = "f370b4a2c474c6fe4098d929d8b7c18aeba87b6b";
+    sha256 = "0n05jybmibn44xb660p08vrrbanfsyjn17w1xm9gwl75fxxq8cdc";
   };
 
   buildInputs = [ pidgin glib libxml2 ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tdlib-purple/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tdlib-purple/default.nix
new file mode 100644
index 000000000000..af123e98d561
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tdlib-purple/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, libwebp, pidgin, tdlib } :
+
+stdenv.mkDerivation rec {
+  pname = "tdlib-purple";
+  version = "0.8.1";
+
+  src = fetchFromGitHub {
+    owner = "ars3niy";
+    repo = "tdlib-purple";
+    rev = "v${version}";
+    sha256 = "sha256-mrowzTtNLyMc2WwLVIop8Mg2DbyiQs0OPXmJuM9QUnM=";
+  };
+
+  patches = [
+    # Update to tdlib 1.8.0
+    (fetchpatch {
+      url = "https://github.com/ars3niy/tdlib-purple/commit/8c87b899ddbec32ec6ab4a34ddf0dc770f97d396.patch";
+      sha256 = "sha256-sysPYPno+wS8mZwQAXtX5eVnhwKAZrtr5gXuddN3mko=";
+    })
+  ];
+
+  preConfigure = ''
+    sed -i -e 's|DESTINATION.*PURPLE_PLUGIN_DIR}|DESTINATION "lib/purple-2|' CMakeLists.txt
+    sed -i -e 's|DESTINATION.*PURPLE_DATA_DIR}|DESTINATION "share|' CMakeLists.txt
+  '';
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libwebp pidgin tdlib ];
+
+  cmakeFlags = [ "-DNoVoip=True" ]; # libtgvoip required
+
+  meta = with lib; {
+    homepage = "https://github.com/ars3niy/tdlib-purple";
+    description = "libpurple Telegram plugin using tdlib";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ sikmir ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix
deleted file mode 100644
index 6f7aab564fac..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, pidgin, libwebp, libgcrypt, gettext } :
-
-stdenv.mkDerivation rec {
-  pname = "telegram-purple";
-  version = "1.3.1";
-
-  src = fetchFromGitHub {
-    owner = "majn";
-    repo = "telegram-purple";
-    rev = "v${version}";
-    sha256 = "sha256-14VzCMvzAEmye0N98r+P+ub5CeA9vu8c/xqefuWVI10=";
-  };
-
-  NIX_CFLAGS_COMPILE = "-Wno-error=cast-function-type";
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ pidgin libwebp libgcrypt gettext ];
-
-  preConfigure = ''
-    sed -i "s|/etc/telegram-purple/server.tglpub|$out/lib/purple-2/server.tglpub|g" telegram-purple.c
-    echo "#define GIT_COMMIT \"${builtins.substring 0 10 src.rev}\"" > commit.h
-  '';
-
-  installPhase = ''
-    mkdir -p $out/lib/purple-2/
-    cp bin/*.so $out/lib/purple-2/ #*/
-    cp tg-server.tglpub $out/lib/purple-2/server.tglpub
-    mkdir -p $out/pixmaps/pidgin/protocols/{16,22,48}
-    cp imgs/telegram16.png $out/pixmaps/pidgin/protocols/16
-    cp imgs/telegram22.png $out/pixmaps/pidgin/protocols/22
-    cp imgs/telegram48.png $out/pixmaps/pidgin/protocols/48
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/majn/telegram-purple";
-    description = "Telegram for Pidgin / libpurple";
-    license = licenses.gpl2;
-    maintainers = [ maintainers.jagajaga ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index bd6febeaf9d1..84f8f327cad9 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -9,11 +9,11 @@
 
 let unwrapped = stdenv.mkDerivation rec {
   pname = "pidgin";
-  version = "2.14.8";
+  version = "2.14.10";
 
   src = fetchurl {
     url = "mirror://sourceforge/pidgin/pidgin-${version}.tar.bz2";
-    sha256 = "1jjc15pfyw3012q5ffv7q4r88wv07ndqh0wakyxa2k0w4708b01z";
+    sha256 = "sha256-RUsbkovGvLsYM1OvMPv95VlfIkWjQjoaRubJei3yKBA=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -88,7 +88,7 @@ let unwrapped = stdenv.mkDerivation rec {
     homepage = "https://pidgin.im/";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
-    maintainers = [ maintainers.vcunat ];
+    maintainers = [ ];
   };
 };
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix
deleted file mode 100644
index c7b5d56dbba3..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, stdenv, buildGoPackage, trousers, dclxvi, wrapGAppsHook, pkg-config, gtk3, gtkspell3,
-  fetchFromGitHub }:
-
-let
-  gui = true; # Might be implemented with nixpkgs config.
-in
-buildGoPackage rec {
-  pname = "pond";
-  version = "unstable-2015-08-30";
-
-  goPackagePath = "github.com/agl/pond";
-
-  src = fetchFromGitHub {
-    owner = "agl";
-    repo = "pond";
-    rev = "bce6e0dc61803c23699c749e29a83f81da3c41b2";
-    sha256 = "sha256-BE7+146E9hz8enrfA+sQhtqgHiSZAtjrW1OOqchbr7Y=";
-  };
-
-  goDeps = ./deps.nix;
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ trousers gtk3 gtkspell3 ]
-    ++ lib.optional stdenv.hostPlatform.isx86_64 dclxvi
-    ++ lib.optionals gui [ wrapGAppsHook ];
-  tags = lib.optionals (!gui) [ "nogui" ];
-  excludedPackages = "\\(appengine\\|bn256cgo\\)";
-  postPatch = lib.optionalString stdenv.hostPlatform.isx86_64 ''
-    grep -r 'bn256' | awk -F: '{print $1}' | xargs sed -i \
-      -e "s,golang.org/x/crypto/bn256,github.com/agl/pond/bn256cgo,g" \
-      -e "s,bn256\.,bn256cgo.,g"
-  '';
-
-  # https://hydra.nixos.org/build/150102618/nixlog/2
-  meta.broken = stdenv.isAarch64;
-}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix
deleted file mode 100644
index 55850f0a89c2..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-[
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "575fdbe86e5dd89229707ebec0575ce7d088a4a6";
-      sha256 = "1kgv1mkw9y404pk3lcwbs0vgl133mwyp294i18jg9hp10s5d56xa";
-    };
-  }
-  {
-    goPackagePath = "github.com/agl/ed25519";
-    fetch = {
-      type = "git";
-      url = "https://github.com/agl/ed25519";
-      rev = "278e1ec8e8a6e017cd07577924d6766039146ced";
-      sha256 = "165d89cc6dl28j4hkn86pny0jz3sa6hamzdvpvwdj4iha3x6lzc9";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "59b73b37c1e45995477aae817e4a653c89a858db";
-      sha256 = "1dx22jvhvj34ivpr7gw01fncg9yyx35mbpal4mpgnqka7ajmgjsa";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "62ac18b461605b4be188bbc7300e9aa2bc836cd4";
-      sha256 = "0lwwvbbwbf3yshxkfhn6z20gd45dkvnmw2ms36diiy34krgy402p";
-    };
-  }
-  {
-    goPackagePath = "github.com/agl/go-gtk";
-    fetch = {
-      type = "git";
-      url = "https://github.com/agl/go-gtk";
-      rev = "91c1edb38c241d73129e6b098ca1c9fa83abfc15";
-      sha256 = "156ixlhakpqgyp35rsvmndrqz8aggv5bcmzg9ynpri3b9j6kim4d";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
index 42671f5d974b..8ffe6f05f5df 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , autoconf-archive
 , autoreconfHook
 , cmocka
@@ -10,7 +9,7 @@
 , expect
 , glib
 , glibcLocales
-, libmesode
+, libstrophe
 , libmicrohttpd
 , libotr
 , libuuid
@@ -19,51 +18,27 @@
 , pkg-config
 , readline
 , sqlite
-, autoAwaySupport ? true,       libXScrnSaver ? null, libX11
+, autoAwaySupport ? true,       libXScrnSaver, libX11
 , notifySupport ? true,         libnotify, gdk-pixbuf
 , omemoSupport ? true,          libsignal-protocol-c, libgcrypt
 , pgpSupport ? true,            gpgme
-, pythonPluginSupport ? true,   python
-, traySupport ? true,           gtk
+, pythonPluginSupport ? true,   python3
+, traySupport ? true,           gtk3
 }:
 
-assert autoAwaySupport     -> libXScrnSaver != null && libX11 != null;
-assert notifySupport       -> libnotify != null && gdk-pixbuf != null;
-assert traySupport         -> gtk != null;
-assert pgpSupport          -> gpgme != null;
-assert pythonPluginSupport -> python != null;
-assert omemoSupport        -> libsignal-protocol-c != null && libgcrypt != null;
-
 stdenv.mkDerivation rec {
   pname = "profanity";
-  version = "0.11.1";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = "profanity-im";
     repo = "profanity";
     rev = version;
-    hash = "sha256-8WGHOy0fSW8o7vMCYZqqpvDsn81JZefM6wGfjQ5iKbU=";
+    hash = "sha256-yUiiww8yhymdqR6CITRnItxZhfpZiEbu1WyD8bDW+vc=";
   };
 
   patches = [
     ./patches/packages-osx.patch
-
-    # pullupstream fixes for ncurses-6.3
-    (fetchpatch {
-      name = "ncurses-6.3-p1.patch";
-      url = "https://github.com/profanity-im/profanity/commit/e5b6258c997d4faf36e2ffb8a47b386c5629b4eb.patch";
-      sha256 = "sha256-4rwpvsgfIQ60GcLS0O7Hyn7ZidREjYT+dVND54z0zrw=";
-    })
-    (fetchpatch {
-      name = "ncurses-6.3-p2.patch";
-      url = "https://github.com/profanity-im/profanity/commit/fd9ccec8dc604902bbb1d444dba4223ccee0a092.patch";
-      sha256 = "sha256-4gZaXoDNulBIR+e6y/9bJKXVactCHWS8H8lPJaJwVwE=";
-    })
-    (fetchpatch {
-      name = "ncurses-6.3-p3.patch";
-      url = "https://github.com/profanity-im/profanity/commit/242696f09a49c8446ba6aef8bdad65fb58a77715.patch";
-      sha256 = "sha256-BOYHkae9aIA7HaVM23Yu25TTK9e3SuV+u0FEi7Sn62I=";
-    })
   ];
 
   enableParallelBuilding = true;
@@ -81,7 +56,7 @@ stdenv.mkDerivation rec {
     expat
     expect
     glib
-    libmesode
+    libstrophe
     libmicrohttpd
     libotr
     libuuid
@@ -93,8 +68,8 @@ stdenv.mkDerivation rec {
     ++ lib.optionals notifySupport       [ libnotify gdk-pixbuf ]
     ++ lib.optionals omemoSupport        [ libsignal-protocol-c libgcrypt ]
     ++ lib.optionals pgpSupport          [ gpgme ]
-    ++ lib.optionals pythonPluginSupport [ python ]
-    ++ lib.optionals traySupport         [ gtk ];
+    ++ lib.optionals pythonPluginSupport [ python3 ]
+    ++ lib.optionals traySupport         [ gtk3 ];
 
   # Enable feature flags, so that build fail if libs are missing
   configureFlags = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
index aeb20d6779ef..c5e5b063c4e2 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
@@ -43,13 +43,13 @@ assert enablePsiMedia -> enablePlugins;
 
 mkDerivation rec {
   pname = "psi-plus";
-  version = "1.5.1615";
+  version = "1.5.1633";
 
   src = fetchFromGitHub {
     owner = "psi-plus";
     repo = "psi-plus-snapshots";
     rev = version;
-    sha256 = "sha256-aD+JVGmBWHUav2bH9rXGtgqI+/5lJTMrYLRP7E65JxI=";
+    sha256 = "sha256-kXdDxpIOcwcFy+OmsqlE8a19sGPfMNI08fMy5OFuP9w=";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix
index 3f6d374c3996..659b6411b48a 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix
@@ -69,6 +69,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
+    broken = stdenv.isDarwin;
     description = "Qt Tox client";
     homepage = "https://tox.chat";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/rambox.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/rambox.nix
index d4329ed09d35..b9b5175d3b87 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/rambox.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/rambox.nix
@@ -1,6 +1,6 @@
 { pname, version, src, meta, desktopName ? "Rambox" }:
 
-{ appimageTools, lib, fetchurl, gsettings-desktop-schemas, gtk3, makeDesktopItem }:
+{ appimageTools, lib, fetchurl, makeDesktopItem }:
 
 let
   name = "${pname}-${version}";
@@ -18,9 +18,6 @@ let
   };
 in appimageTools.wrapType2 rec {
   inherit name src meta;
-  profile = ''
-    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
-  '';
 
   extraInstallCommands = ''
     mkdir -p $out/share/applications $out/share/icons/hicolor/256x256/apps
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix
index ef9dad66b5d6..39403ba774fa 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix
@@ -25,6 +25,7 @@ stdenvNoCC.mkDerivation rec {
   meta = with lib; {
     description = "Desktop chat client for Slack and Discord";
     homepage = "https://cancel.fm/ripcord/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     # See: https://cancel.fm/ripcord/shareware-redistribution/
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ mikroskeem ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix
index 76f93d9d2173..7fd0bd9bb1d3 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix
@@ -48,7 +48,7 @@ mkDerivation rec {
     install -Dm755 ${src}/Ripcord $out/Ripcord
     patchelf --replace-needed libsodium.so.18 libsodium.so $out/Ripcord
     makeQtWrapper $out/Ripcord $out/bin/ripcord \
-      --run "cd $out" \
+      --chdir "$out" \
       --set FONTCONFIG_FILE "${fontsConf}" \
       --prefix LD_LIBRARY_PATH ":" "${xorg.libXcursor}/lib" \
       --prefix QT_XKB_CONFIG_ROOT ":" "${xorg.xkeyboardconfig}/share/X11/xkb" \
@@ -60,6 +60,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "Desktop chat client for Slack and Discord";
     homepage = "https://cancel.fm/ripcord/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     # See: https://cancel.fm/ripcord/shareware-redistribution/
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ infinisil ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
index ac17f7590888..e04c0b8547da 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
@@ -4,11 +4,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "rocketchat-desktop";
-  version = "3.7.8";
+  version = "3.8.7";
 
   src = fetchurl {
-    url = "https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/${version}/rocketchat_${version}_amd64.deb";
-    sha256 = "sha256-61HSJIFir+ikwui7KtPm2BDstIRWY/WruGX3WSfY5ZI=";
+    url = "https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/${version}/rocketchat-${version}-linux-amd64.deb";
+    sha256 = "sha256-kSEOjhsSa+5+oNxWY+cQR7RIRzd+BGR4WDL1drybxzU=";
   };
 
   nativeBuildInputs = [
@@ -89,6 +89,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Official Desktop client for Rocket.Chat";
     homepage = "https://github.com/RocketChat/Rocket.Chat.Electron";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = with maintainers; [ gbtb ];
     platforms = platforms.x86_64;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix
deleted file mode 100644
index 6a6302e74955..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ lib, stdenv, fetchurl, python27Packages, file }:
-
-let
-  inherit (python27Packages) python;
-  requirements = (import ./requirements.nix {
-    inherit lib fetchurl;
-    pythonPackages = python27Packages;
-  });
-
-in
-  stdenv.mkDerivation rec {
-    pname = "salut-a-toi";
-    version = "0.6.1";
-
-    src = fetchurl {
-      url = "ftp://ftp.goffi.org/sat/sat-${version}.tar.bz2";
-      sha256 = "0kn9403n8fpzl0hsb9kkzicsmzq2fjl627l31yykbqzc4nsr780d";
-    };
-
-    buildInputs = with python27Packages;
-    [
-      python twisted urwid wxPython pygobject2
-      dbus-python wrapPython setuptools file
-      pycrypto pyxdg
-    ] ++  (with requirements; [
-      pyfeed
-      wokkel
-    ]);
-
-    configurePhase = ''
-      sed -i "/use_setuptools/d" setup.py
-      sed -e "s@sys.prefix@'$out'@g" -i setup.py
-      sed -e "1aexport PATH=\"\$PATH\":\"$out/bin\":\"${python27Packages.twisted}/bin\"" -i src/sat.sh
-      sed -e "1aexport PYTHONPATH=\"\$PYTHONPATHPATH\":\"$PYTHONPATH\":"$out/${python.sitePackages}"" -i src/sat.sh
-
-      echo 'import wokkel.muc' | python
-    '';
-
-    buildPhase = ''
-      ${python.interpreter} setup.py build
-    '';
-
-    installPhase = ''
-      ${python.interpreter} setup.py install --prefix="$out"
-
-      for i in "$out/bin"/*; do
-      head -n 1 "$i" | grep -E '[/ ]python( |$)' && {
-        wrapProgram "$i" --prefix PYTHONPATH : "$PYTHONPATH:$out/${python.sitePackages}"
-      } || true
-      done
-    '';
-
-    meta = with lib; {
-      homepage = "http://sat.goffi.org/";
-      description = "A multi-frontend XMPP client";
-      platforms = platforms.linux;
-      maintainers = [ maintainers.raskin ];
-      license = licenses.gpl3Plus;
-    };
-  }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix
deleted file mode 100644
index a8e711c447d5..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{ fetchurl
-, lib
-, pythonPackages
-}:
-
-let
-  buildPythonPackage = pythonPackages.buildPythonPackage;
-
-  xe = buildPythonPackage rec {
-    url = "http://www.blarg.net/%7Esteveha/xe-0.7.4.tar.gz";
-    name = lib.nameFromURL url ".tar";
-    src = fetchurl {
-      inherit url;
-      sha256 = "0v9878cl0y9cczdsr6xjy8v9l139lc23h4m5f86p4kpf2wlnpi42";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      homepage = "http://home.blarg.net/~steveha/xe.html";
-      description = "XML elements";
-    };
-  };
-
-in {
-
-  pyfeed = (buildPythonPackage rec {
-    url = "http://www.blarg.net/%7Esteveha/pyfeed-0.7.4.tar.gz";
-
-    name = lib.nameFromURL url ".tar";
-
-    src = fetchurl {
-      inherit url;
-      sha256 = "1h4msq573m7wm46h3cqlx4rsn99f0l11rhdqgf50lv17j8a8vvy1";
-    };
-
-    propagatedBuildInputs = [ xe ];
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = with lib; {
-      homepage = "http://home.blarg.net/~steveha/pyfeed.html";
-      description = "Tools for syndication feeds";
-    };
-
-  });
-
-  wokkel = buildPythonPackage (rec {
-    url = "http://wokkel.ik.nu/releases/0.7.0/wokkel-0.7.0.tar.gz";
-    name = lib.nameFromURL url ".tar";
-    src = fetchurl {
-      inherit url;
-      sha256 = "0rnshrzw8605x05mpd8ndrx3ri8h6cx713mp8sl4f04f4gcrz8ml";
-    };
-
-    propagatedBuildInputs = with pythonPackages; [twisted python-dateutil];
-
-    meta = with lib; {
-      description = "Some (mainly XMPP-related) additions to twisted";
-      homepage = "http://wokkel.ik.nu/";
-      license = licenses.mit;
-    };
-  });
-
-}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/pin.json b/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/pin.json
index d227dc4b0fbe..ef981716ef1d 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/pin.json
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/pin.json
@@ -1,9 +1,9 @@
 {
-  "version": "1.10.4-sc.1",
-  "rev": "v1.10.4-sc.1",
-  "srcHash": "0sxibzskbw9pa6wmbk1y3n7p74cfj9zvm2hsw76sp6wfac1wnbwl",
-  "webYarnHash": "1z8xr35gh74y2iv9kfk6d6b6f3iclcrpkdds5q7rh2irpf14fwpw",
-  "jsSdkYarnHash": "1cwvb0hwq19dh2937fmcbfvnkkfmalk9wrxf1yv81nsbyjnx86di",
-  "reactSdkYarnHash": "0j4rxg11q35idfzvjrpmyrwkz9yqgzpwps3xqx1k4qcs844jjs9f",
-  "desktopYarnHash": "0akmgib212gkygvs2snn9c43k3ika3ipg85d480j3hqyb6yxwqmn"
+  "version": "1.10.12-sc.1",
+  "rev": "v1.10.12-sc.1",
+  "srcHash": "1rpfax6xx731w59a2i7v6jr17l3rnrn79d666f0cjchg36nkqqg9",
+  "webYarnHash": "0m5dnz3m68iz94siwmavzj50wxd6w6wanjsm1zhq76lgymgcbqc2",
+  "jsSdkYarnHash": "1k1jvavbqr7vcbdaxc6yqiq5254kxhywn1s2zndrfny7ap8z5c1c",
+  "reactSdkYarnHash": "0cz7pgrbysljmhpf4m0wqwqjqijxahl3wz5qhczlkj46dvq6qyxb",
+  "desktopYarnHash": "09ri87ynfgxrv22sykggiy6nlcf20qwj7zj9qq0rz3c2acr6g9mn"
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix
index e2b4cafe9936..d1a1c8d64690 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix
@@ -19,7 +19,6 @@
 let
   pinData = lib.importJSON ./pin.json;
   executableName = "schildichat-desktop";
-  electron_exec = if stdenv.isDarwin then "${electron}/Applications/Electron.app/Contents/MacOS/Electron" else "${electron}/bin/electron";
 in
 stdenv.mkDerivation rec {
   pname = "schildichat-desktop";
@@ -88,7 +87,7 @@ stdenv.mkDerivation rec {
     done
 
     # executable wrapper
-    makeWrapper '${electron_exec}' "$out/bin/${executableName}" \
+    makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
       --add-flags "$out/share/element/electron" \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}"
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix
index a7ad6fb4d9b1..7041a19684c3 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix
@@ -78,13 +78,8 @@ in stdenv.mkDerivation rec {
   buildPhase = ''
     runHook preBuild
 
-    pushd matrix-react-sdk
-    ../element-web/node_modules/.bin/reskindex -h ../element-web/src/header
-    popd
-
     pushd element-web
     node scripts/copy-res.js
-    node_modules/.bin/reskindex -h ../element-web/src/header
     node_modules/.bin/webpack --progress --mode production
     popd
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
index 4518627fe2b8..61166a82f38e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
@@ -4,15 +4,16 @@
 , stdenvNoCC
 , fetchurl
 , appimageTools
+, makeWrapper
 }:
 
 let
-  version = "1.7.9";
+  version = "1.8.6";
   pname = "session-desktop-appimage";
 
   src = fetchurl {
     url = "https://github.com/oxen-io/session-desktop/releases/download/v${version}/session-desktop-linux-x86_64-${version}.AppImage";
-    sha256 = "ca7754e59146633b71e66b02a90cff87e4f2574e57ff831ca4a5f983b7e2fbef";
+    sha256 = "h7uEdxBuqPNWGFp5wWWRI9VsK3HYOtLVgj7rIbeO9kY=";
   };
   appimage = appimageTools.wrapType2 {
     inherit version pname src;
@@ -25,7 +26,7 @@ stdenvNoCC.mkDerivation {
   inherit version pname;
   src = appimage;
 
-  nativeBuildInputs = [ copyDesktopItems ];
+  nativeBuildInputs = [ copyDesktopItems makeWrapper ];
 
   desktopItems = [
     (makeDesktopItem {
@@ -46,6 +47,9 @@ stdenvNoCC.mkDerivation {
     mkdir -p $out/
     cp -r bin $out/bin
 
+    wrapProgram $out/bin/session-desktop-appimage-${version} \
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}"
+
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
index bca45576db71..dd2a34a60fa4 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "signal-cli";
-  version = "0.10.2";
+  version = "0.10.11";
 
   # Building from source would be preferred, but is much more involved.
   src = fetchurl {
-    url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz";
-    sha256 = "sha256-etCO7sy48A7aL3mnXWitClNiw/E122G4eD6YfVmXEPw=";
+    url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}-Linux.tar.gz";
+    sha256 = "sha256-tBgtSYKSoyze9qFWpy6IUdwMU9KCLZGEIpOkjLdHsHM=";
   };
 
   buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index e3fa08e3df3a..2862ff6612e2 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -1,30 +1,15 @@
-{ stdenv, lib, fetchurl, autoPatchelfHook, dpkg, wrapGAppsHook, nixosTests
+{ stdenv, lib, fetchurl, autoPatchelfHook, dpkg, wrapGAppsHook, makeWrapper, nixosTests
 , gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig
 , dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite
 , libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsa-lib
 , cups, expat, libuuid, at-spi2-core, libappindicator-gtk3, mesa
 # Runtime dependencies:
 , systemd, libnotify, libdbusmenu, libpulseaudio, xdg-utils
-# Unfortunately this also overwrites the UI language (not just the spell
-# checking language!):
-, hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE"
-# For a full list of available languages:
-# $ cat pkgs/development/libraries/hunspell/dictionaries.nix | grep "dictFileName =" | awk '{ print $3 }'
 }:
 
-let
-  customLanguageWrapperArgs = (with lib;
-    let
-      # E.g. "de_DE" -> "de-de" (spellcheckerLanguage -> hunspellDict)
-      spellLangComponents = splitString "_" spellcheckerLanguage;
-      hunspellDict = elemAt spellLangComponents 0 + "-" + toLower (elemAt spellLangComponents 1);
-    in lib.optionalString (spellcheckerLanguage != null) ''
-      --set HUNSPELL_DICTIONARIES "${hunspellDicts.${hunspellDict}}/share/hunspell" \
-      --set LC_MESSAGES "${spellcheckerLanguage}"'');
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "5.36.0"; # Please backport all updates to the stable channel.
+  version = "5.54.0"; # Please backport all updates to the stable channel.
   # All releases have a limited lifetime and "expire" 90 days after the release.
   # When releases "expire" the application becomes unusable until an update is
   # applied. The expiration date for the current release can be extracted with:
@@ -34,13 +19,13 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "sha256-x1PUEDq/0B1T14mBs2FuKtcGpJHWOIvHAs8hptpzhZk=";
+    sha256 = "sha256-dGxbsSNvBT0KFukSNXyii69hMN246IYFbb0CzrDh7IU=";
   };
 
   nativeBuildInputs = [
     autoPatchelfHook
     dpkg
-    wrapGAppsHook
+    (wrapGAppsHook.override { inherit makeWrapper; })
   ];
 
   buildInputs = [
@@ -82,6 +67,7 @@ in stdenv.mkDerivation rec {
 
   runtimeDependencies = [
     (lib.getLib systemd)
+    libappindicator-gtk3
     libnotify
     libdbusmenu
     xdg-utils
@@ -122,7 +108,6 @@ in stdenv.mkDerivation rec {
   preFixup = ''
     gappsWrapperArgs+=(
       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ] }"
-      ${customLanguageWrapperArgs}
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}"
       --suffix PATH : ${lib.makeBinPath [ xdg-utils ]}
     )
@@ -149,5 +134,6 @@ in stdenv.mkDerivation rec {
     license     = lib.licenses.agpl3Only;
     maintainers = with lib.maintainers; [ mic92 equirosa ];
     platforms   = [ "x86_64-linux" ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/apple-sdk-missing-utimensat.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/apple-sdk-missing-utimensat.patch
deleted file mode 100644
index 61474d0ab4fc..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/apple-sdk-missing-utimensat.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/signalbackup/setfiletimestamp.cc b/signalbackup/setfiletimestamp.cc
-index f53a168..d2d1c5e 100644
---- a/signalbackup/setfiletimestamp.cc
-+++ b/signalbackup/setfiletimestamp.cc
-@@ -21,24 +21,23 @@
-
- #if !defined(_WIN32) && !defined(__MINGW64__)
-
--#include <fcntl.h>
--#include <sys/stat.h>
-+#include <sys/time.h>
-
- bool SignalBackup::setFileTimeStamp(std::string const &file, long long int time_usec) const
- {
--  struct timespec ntimes[] =
-+  struct timeval ntimes[] =
-   {
-     {                                   // ntimes[0] =
-       time_usec / 1000,                 // tv_sec, seconds
--      (time_usec % 1000) * 1000         // tv_usec, nanoseconds
-+      static_cast<int>(time_usec)       // tv_usec, nanoseconds
-     },
-     {                                   // ntimes[1] =
-       time_usec / 1000,                 // tv_sec, seconds
--      (time_usec % 1000) * 1000         // tv_usec, nanoseconds
-+      static_cast<int>(time_usec)       // tv_usec, nanoseconds
-     }
-   };
-
--  return (utimensat(AT_FDCWD, file.c_str(), ntimes, 0) == 0);
-+  return (utimes(file.c_str(), ntimes) == 0);
- }
-
- #else // this is poorly tested, I don't have windows
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
index f03a91faa23f..04dcd6eeb4c0 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
@@ -1,38 +1,48 @@
-{ lib, stdenv, fetchFromGitHub, openssl, sqlite }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, openssl, sqlite }:
 
 stdenv.mkDerivation rec {
   pname = "signalbackup-tools";
-  version = "20220316";
+  version = "20220810";
 
   src = fetchFromGitHub {
     owner = "bepaald";
     repo = pname;
     rev = version;
-    sha256 = "sha256-c9eqY3KBzCrNOLNf1DGpARmxGzwga3+tBg3e7Yr+Rb8=";
+    sha256 = "sha256-z/RAvNUss9rNuBQvxjJQl66ZMrlxvmS9at8L/vSG0XU=";
   };
 
-  # Remove when Apple SDK is >= 10.13
-  patches = lib.optional (stdenv.system == "x86_64-darwin") ./apple-sdk-missing-utimensat.patch;
+  # TODO: Remove when updating to next release.
+  patches = [
+    (fetchpatch {
+      name = "fix-platform-checks.patch";
+      url = "https://github.com/bepaald/signalbackup-tools/compare/20220810..a81baf25b6ba63da7d30d9a239e5b4bbc8d1ab4f.patch";
+      sha256 = "sha256-i7fuPBil8zB+V3wHHdcbmP79OZoTfG2ZpXPQ3m7X06c=";
+    })
+  ];
+
+  postPatch = ''
+    patchShebangs BUILDSCRIPT_MULTIPROC.bash44
+  '';
 
   buildInputs = [ openssl sqlite ];
-  buildFlags = [
-    "-Wall"
-    "-Wextra"
-    "-Wshadow"
-    "-Wold-style-cast"
-    "-Woverloaded-virtual"
-    "-pedantic"
-    "-std=c++2a"
-    "-O3"
-    "-march=native"
-  ];
+
+  # Manually define `CXXFLAGS` and `LDFLAGS` on Darwin since the build scripts includes flags
+  # that don't work on Darwin.
   buildPhase = ''
-    $CXX $buildFlags */*.cc *.cc -lcrypto -lsqlite3 -o signalbackup-tools
+    runHook preBuild
+  '' + lib.optionalString stdenv.isDarwin ''
+    export CXXFLAGS="-Wall -Wextra -Wshadow -Wold-style-cast -Woverloaded-virtual -pedantic -O3"
+    export LDFLAGS="-Wall -Wextra -O3"
+  '' + ''
+    ./BUILDSCRIPT_MULTIPROC.bash44
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/bin
     cp signalbackup-tools $out/bin/
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch
index e23aded6d0e7..9e1578e6f1a1 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch
@@ -1,17 +1,17 @@
-From 232c692240b9c52b95bd38ba7aecb11e7077cf31 Mon Sep 17 00:00:00 2001
+From 8ed5f3c9117e08f7c2e4e1e01c2eee501675049b Mon Sep 17 00:00:00 2001
 From: Maximilian Bosch <maximilian@mbosch.me>
 Date: Sat, 26 Feb 2022 12:33:13 +0100
 Subject: [PATCH] Fetch buildconfig during gradle build inside Nix FOD
 
 ---
- build.gradle | 5 +++++
- 1 file changed, 5 insertions(+)
+ build.gradle | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
 
 diff --git a/build.gradle b/build.gradle
-index cbb587f..3b06e80 100644
+index eaa6e0e..63c2947 100644
 --- a/build.gradle
 +++ b/build.gradle
-@@ -82,6 +82,9 @@ static String getVersion() {
+@@ -83,6 +83,9 @@ static String getVersion() {
  
  repositories {
      maven {url "https://gitlab.com/api/v4/groups/6853927/-/packages/maven"} // https://gitlab.com/groups/signald/-/packages
@@ -21,15 +21,22 @@ index cbb587f..3b06e80 100644
      mavenCentral()
  }
  
-@@ -102,6 +105,8 @@ dependencies {
-     implementation 'io.prometheus:simpleclient_httpserver:0.14.1'
+@@ -104,6 +107,8 @@ dependencies {
+     implementation 'io.prometheus:simpleclient_httpserver:0.15.0'
      implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3'
-     implementation 'io.sentry:sentry:5.6.1'
+     implementation 'io.sentry:sentry:5.7.3'
 +    implementation 'com.github.gmazzo.buildconfig:com.github.gmazzo.buildconfig.gradle.plugin:3.0.3'
 +    implementation 'org.jetbrains.kotlin:kotlin-scripting-jvm:1.4.31'
      testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2'
  }
  
+@@ -171,4 +176,4 @@ allprojects {
+ runtime {
+     options = ['--strip-java-debug-attributes', '--compress', '2', '--no-header-files', '--no-man-pages']
+     modules = ['java.base', 'java.management', 'java.naming', 'java.sql', 'java.xml', 'jdk.crypto.ec', 'jdk.httpserver', 'java.desktop', 'jdk.unsupported']
+-}
+\ No newline at end of file
++}
 -- 
-2.33.1
+2.36.0
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch
index c5931238fe58..a6efeb4a44f1 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch
@@ -1,19 +1,19 @@
-From 80277ce9e24d9efa8dfd6eb775187c823e0e528e Mon Sep 17 00:00:00 2001
+From f319e1db47ae1eeddb6021cafe7b4f8551a702d7 Mon Sep 17 00:00:00 2001
 From: Maximilian Bosch <maximilian@mbosch.me>
 Date: Sat, 26 Feb 2022 12:36:15 +0100
 Subject: [PATCH 2/2] buildconfig/local deps fixes
 
 ---
- build.gradle | 20 ++++++++++++++++++--
- 1 file changed, 18 insertions(+), 2 deletions(-)
+ build.gradle | 26 ++++++++++++++++++--------
+ 1 file changed, 18 insertions(+), 8 deletions(-)
 
 diff --git a/build.gradle b/build.gradle
-index cbb587f..ad836cf 100644
+index eaa6e0e..9a2f4e2 100644
 --- a/build.gradle
 +++ b/build.gradle
-@@ -9,10 +9,21 @@ import org.gradle.nativeplatform.platform.internal.ArchitectureInternal
- import org.gradle.nativeplatform.platform.internal.OperatingSystemInternal
+@@ -10,11 +10,21 @@ import org.gradle.nativeplatform.platform.internal.ArchitectureInternal
  import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
+ import org.gradle.nativeplatform.platform.internal.OperatingSystemInternal
  
 +buildscript {
 +  repositories {
@@ -28,13 +28,14 @@ index cbb587f..ad836cf 100644
 +
  plugins {
 -   id 'com.github.gmazzo.buildconfig' version '3.0.3'
+-   id 'org.beryx.runtime' version '1.12.7'
     id 'application'
  }
 +apply plugin: "com.github.gmazzo.buildconfig"
  
  compileJava.options.encoding = 'UTF-8'
  
-@@ -82,7 +93,10 @@ static String getVersion() {
+@@ -83,7 +93,10 @@ static String getVersion() {
  
  repositories {
      maven {url "https://gitlab.com/api/v4/groups/6853927/-/packages/maven"} // https://gitlab.com/groups/signald/-/packages
@@ -46,15 +47,25 @@ index cbb587f..ad836cf 100644
  }
  
  dependencies {
-@@ -102,6 +116,8 @@ dependencies {
-     implementation 'io.prometheus:simpleclient_httpserver:0.14.1'
+@@ -104,6 +117,8 @@ dependencies {
+     implementation 'io.prometheus:simpleclient_httpserver:0.15.0'
      implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3'
-     implementation 'io.sentry:sentry:5.6.1'
+     implementation 'io.sentry:sentry:5.7.3'
 +    implementation 'com.github.gmazzo.buildconfig:com.github.gmazzo.buildconfig.gradle.plugin:3.0.3'
 +    implementation 'org.jetbrains.kotlin:kotlin-scripting-jvm:1.4.31'
      testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2'
  }
  
+@@ -167,8 +182,3 @@ allprojects {
+         }
+     }
+ }
+-
+-runtime {
+-    options = ['--strip-java-debug-attributes', '--compress', '2', '--no-header-files', '--no-man-pages']
+-    modules = ['java.base', 'java.management', 'java.naming', 'java.sql', 'java.xml', 'jdk.crypto.ec', 'jdk.httpserver', 'java.desktop', 'jdk.unsupported']
+-}
+\ No newline at end of file
 -- 
-2.33.1
+2.36.0
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix
index 3f84c156f823..0b8552436451 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix
@@ -1,16 +1,35 @@
 { lib, stdenv, fetchurl, fetchFromGitLab, jdk17_headless, coreutils, gradle_6, git, perl
-, makeWrapper, fetchpatch, substituteAll
+, makeWrapper, fetchpatch, substituteAll, jre_minimal
 }:
 
 let
   pname = "signald";
-  version = "0.17.0";
+  version = "0.19.1";
 
   src = fetchFromGitLab {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-eN6lEs6PuRczbzQZmGlNf6Ahp4FbWpA3EArlATEiZHU=";
+    sha256 = "sha256-Ma6kIKRVM8UUU/TvfVp2RVl/FLxFgBQU3mEypnujJ+c=";
+  };
+
+  jre' = jre_minimal.override {
+    jdk = jdk17_headless;
+    # from https://gitlab.com/signald/signald/-/blob/0.19.1/build.gradle#L173
+    modules = [
+      "java.base"
+      "java.management"
+      "java.naming"
+      "java.sql"
+      "java.xml"
+      "jdk.crypto.ec"
+      "jdk.httpserver"
+
+      # for java/beans/PropertyChangeEvent
+      "java.desktop"
+      # for sun/misc/Unsafe
+      "jdk.unsupported"
+    ];
   };
 
   # fake build to pre-download deps into fixed-output derivation
@@ -35,8 +54,8 @@ let
     outputHashMode = "recursive";
     # Downloaded jars differ by platform
     outputHash = {
-      x86_64-linux = "sha256-kZ25p+lIkOqNoFFBgJRYFcvKJenKICVa1PasaaEHmRA=";
-      aarch64-linux = "sha256-CbFNigp3R7ETX0uXv6PNuhDpmPc4sowbWmwZ+5txXQs=";
+      x86_64-linux = "sha256-q1gzauIL7aKalvPSfiK5IvkNkidCh+6jp5bpwxR+PZ0=";
+      aarch64-linux = "sha256-cM+7MaV0/4yAzobXX9FSdl/ZfLddwySayao96UdDgzk=";
     }.${stdenv.system} or (throw "Unsupported platform");
   };
 
@@ -67,7 +86,7 @@ in stdenv.mkDerivation rec {
     tar xvf ./build/distributions/signald.tar --strip-components=1 --directory $out/
     wrapProgram $out/bin/signald \
       --prefix PATH : ${lib.makeBinPath [ coreutils ]} \
-      --set JAVA_HOME "${jdk17_headless}"
+      --set JAVA_HOME "${jre'}"
 
     runHook postInstall
   '';
@@ -84,6 +103,10 @@ in stdenv.mkDerivation rec {
       clients.
     '';
     homepage = "https://signald.org";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryBytecode  # deps
+    ];
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ expipiplus1 ma27 ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix
index 464d4d77f946..e949625875e5 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix
@@ -59,6 +59,7 @@ mkDerivation rec {
   meta = {
     description = "Lync & Skype for Business on Linux";
     homepage = "https://tel.red/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.wucke13 ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index b23f4f107aed..ec33f99809ef 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -7,7 +7,7 @@ let
 
   # Please keep the version x.y.0.z and do not update to x.y.76.z because the
   # source of the latter disappears much faster.
-  version = "8.81.0.268";
+  version = "8.87.0.406";
 
   rpath = lib.makeLibraryPath [
     alsa-lib
@@ -68,7 +68,7 @@ let
           "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
           "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
         ];
-        sha256 = "sha256-MqXLK+AdYkQVTeTjul9Dru78597FuThRUVq7/y9FYUU=";
+        sha256 = "sha256-lWnQIdMmfz90h3tOWkQv0vo3HnRi3z6W27vK28+Ksjo=";
       }
     else
       throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
@@ -120,6 +120,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Linux client for skype";
     homepage = "https://www.skype.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ panaeon jraygauthier ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix
index 30cc7396c562..e2135734bd7f 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix
@@ -1,18 +1,16 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
-  # https://github.com/erroneousboat/slack-term
+buildGoModule rec {
   pname = "slack-term";
   version = "0.5.0";
 
-  goPackagePath = "github.com/erroneousboat/slack-term";
-
   src = fetchFromGitHub {
     owner = "erroneousboat";
     repo = "slack-term";
     rev = "v${version}";
     sha256 = "1fbq7bdhy70hlkklppimgdjamnk0v059pg73xm9ax1f4616ki1m6";
   };
+  vendorSha256 = null;
 
   meta = with lib; {
     description = "Slack client for your terminal";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
index 5eb7518ea378..5d497546095b 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -44,14 +44,14 @@ let
 
   pname = "slack";
 
-  x86_64-darwin-version = "4.23.0";
-  x86_64-darwin-sha256 = "0l4zfyys0yf95dn0sldyjkhzp7bpn84z9q9li1lvv5jj55f0g9jd";
+  x86_64-darwin-version = "4.27.154";
+  x86_64-darwin-sha256 = "0a3cc9kkiq18vr4hk532vc59cza1hq8qh9x9hlhli4n72n3h7y3n";
 
-  x86_64-linux-version = "4.23.0";
-  x86_64-linux-sha256 = "1wsrxacnj9f3cb6as7ncbdvi02jqcbyc7ijsavps5bls9phkp0is";
+  x86_64-linux-version = "4.27.156";
+  x86_64-linux-sha256 = "sha256-/xtD+/+KGtPr4vQJm8ZczvpyPxfMBw0OE7hzTzFhSs0=";
 
-  aarch64-darwin-version = "4.23.0";
-  aarch64-darwin-sha256 = "053psiqysyi7l8pviq0vwvk2azlxcpdrwfa0b99f1h6lbfcf48f3";
+  aarch64-darwin-version = "4.27.154";
+  aarch64-darwin-sha256 = "1n3vgcsbi1w49w4xqc5hyadb9qwvsqdiirfw9v4s65wsnark1iz6";
 
   version = {
     x86_64-darwin = x86_64-darwin-version;
@@ -80,8 +80,9 @@ let
   meta = with lib; {
     description = "Desktop client for Slack";
     homepage = "https://slack.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
-    maintainers = with maintainers; [ mmahut ];
+    maintainers = with maintainers; [ mmahut maxeaubrey ];
     platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-darwin" ];
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix
deleted file mode 100644
index 026dc5b64056..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{ lib, stdenv, fetchurl, dpkg, alsa-lib, atk, cairo, cups, dbus, expat, fontconfig
-, freetype, gdk-pixbuf, glib, gnome2, gtk2, nspr, nss, pango, udev, xorg }:
-let
-  fullPath = lib.makeLibraryPath [
-    alsa-lib
-    atk
-    cairo
-    cups
-    dbus
-    expat
-    fontconfig
-    freetype
-    gdk-pixbuf
-    glib
-    gnome2.GConf
-    gtk2
-    nspr
-    nss
-    pango
-    udev
-    xorg.libX11
-    xorg.libXScrnSaver
-    xorg.libXcomposite
-    xorg.libXcursor
-    xorg.libXdamage
-    xorg.libXext
-    xorg.libXfixes
-    xorg.libXi
-    xorg.libXrandr
-    xorg.libXrender
-    xorg.libXtst
-    xorg.libxcb
-  ] + ":${stdenv.cc.cc.lib}/lib64";
-in
-stdenv.mkDerivation rec {
-  version = "1.17.82";
-  pname = "stride";
-
-  src = fetchurl {
-    url = "https://packages.atlassian.com/stride-apt-client/pool/stride_${version}_amd64.deb";
-    sha256 = "0lx61gdhw0kv4f9fwbfg69yq52dsp4db7c4li25d6wn11qanzqhy";
-  };
-
-  dontBuild = true;
-  dontFixup = true;
-
-  buildInputs = [ dpkg ];
-
-  unpackPhase = ''
-    dpkg-deb -x ${src} ./
-  '';
-
-  installPhase =''
-    mkdir "$out"
-    mv usr/* "$out/"
-    patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${fullPath}:\$ORIGIN" \
-      "$out/bin/stride"
-  '';
-
-  meta = with lib; {
-    description = "Desktop client for Atlassian Stride";
-    homepage = "https://www.stride.com/";
-    license = licenses.unfree;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ puffnfresh ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix
index 84310498eee4..dd4e104aa66a 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix
@@ -1,5 +1,6 @@
 { lib
 , stdenv
+, runtimeShell
 , fetchurl
 , autoPatchelfHook
 , wrapGAppsHook
@@ -22,11 +23,12 @@
 
 let
   pname = "teams";
-  version = "1.4.00.26453";
+  version = "1.5.00.10453";
   meta = with lib; {
     description = "Microsoft Teams";
     homepage = "https://teams.microsoft.com";
     downloadPage = "https://teams.microsoft.com/downloads";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ liff tricktron ];
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
@@ -37,7 +39,7 @@ let
 
     src = fetchurl {
       url = "https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_${version}_amd64.deb";
-      sha256 = "0ndqk893l17m42hf5fiiv6mka0v7v8r54kblvb67jsxajdvva5gf";
+      hash = "sha256-fLVw2axSMetuaoRzjg+x4DRYY8WP5TQbL7LbfF6LFfA=";
     };
 
     nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook nodePackages.asar ];
@@ -56,9 +58,12 @@ let
     ];
 
     preFixup = ''
-      gappsWrapperArgs+=(--prefix PATH : "${coreutils}/bin:${gawk}/bin")
-      gappsWrapperArgs+=(--add-flags --disable-namespace-sandbox)
-      gappsWrapperArgs+=(--add-flags --disable-setuid-sandbox)
+      gappsWrapperArgs+=(
+        --prefix PATH : "${coreutils}/bin:${gawk}/bin"
+
+        # fix for https://docs.microsoft.com/en-us/answers/questions/298724/open-teams-meeting-link-on-linux-doens39t-work.html?childToView=309406#comment-309406
+        --append-flags '--disable-namespace-sandbox --disable-setuid-sandbox'
+      )
     '';
 
 
@@ -119,11 +124,6 @@ let
         echo "Adding runtime dependencies to RPATH of Node module $mod"
         patchelf --set-rpath "$runtime_rpath:$mod_rpath" "$mod"
       done;
-
-      # fix for https://docs.microsoft.com/en-us/answers/questions/298724/open-teams-meeting-link-on-linux-doens39t-work.html?childToView=309406#comment-309406
-      # while we create the wrapper ourselves, gappsWrapperArgs leads to the same issue
-      # another option would be to introduce gappsWrapperAppendedArgs, to allow control of positioning
-      substituteInPlace "$out/bin/teams" --replace '.teams-wrapped"  --disable-namespace-sandbox --disable-setuid-sandbox "$@"' '.teams-wrapped" "$@" --disable-namespace-sandbox --disable-setuid-sandbox'
     '';
   };
 
@@ -134,7 +134,7 @@ let
 
     src = fetchurl {
       url = "https://statics.teams.cdn.office.net/production-osx/${version}/Teams_osx.pkg";
-      sha256 = "1mg6a3b3954w4xy5rlcrwxczymygl61dv2rxqp45sjcsh3hp39q0";
+      hash = "sha256-vLUEvOSBUyAJIWHOAIkTqTW/W6TkgmeyRzQbquZP810=";
     };
 
     buildInputs = [ xar cpio makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
index 80d04eabc824..5a0a9006e0df 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
@@ -93,6 +93,8 @@ stdenv.mkDerivation rec {
       wrapProgram $out/bin/ts3client \
         --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
         --set QT_PLUGIN_PATH "${qtbase}/${qtbase.qtPluginPrefix}" \
+    '' /* wayland is currently broken, remove when TS3 fixes that */ + ''
+        --set QT_QPA_PLATFORM xcb \
         --set NIX_REDIRECTS /usr/share/X11/xkb=${xkeyboard_config}/share/X11/xkb
     '';
 
@@ -102,6 +104,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "The TeamSpeak voice communication tool";
     homepage = "https://teamspeak.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = {
       fullName = "Teamspeak client license";
       url = "https://www.teamspeak.com/en/privacy-and-terms/";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client5.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client5.nix
new file mode 100644
index 000000000000..aac37f441dac
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client5.nix
@@ -0,0 +1,109 @@
+{ lib
+, stdenv
+, fetchurl
+, autoPatchelfHook
+, copyDesktopItems
+, makeDesktopItem
+, makeWrapper
+, alsa-lib
+, at-spi2-atk
+, atk
+, cairo
+, cups
+, dbus
+, gcc-unwrapped
+, gdk-pixbuf
+, glib
+, gtk3
+, libdrm
+, libnotify
+, libpulseaudio
+, libxkbcommon
+, mesa
+, nss
+, udev
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "teamspeak5-client";
+  version = "5.0.0-beta70";
+
+  src = fetchurl {
+    # check https://teamspeak.com/en/downloads/#ts5 for version and checksum
+    url = "https://files.teamspeak-services.com/pre_releases/client/${version}/teamspeak-client.tar.gz";
+    sha256 = "44f1a29b915c3930e7385ce32b13e363a7be04c1e341226d0693600818411c6e";
+  };
+
+  sourceRoot = ".";
+
+  propagatedBuildInputs = [
+    alsa-lib
+    at-spi2-atk
+    atk
+    cairo
+    cups.lib
+    dbus
+    gcc-unwrapped.lib
+    gdk-pixbuf
+    glib
+    gtk3
+    libdrm
+    libnotify
+    libpulseaudio
+    libxkbcommon
+    mesa.drivers
+    nss
+    xorg.libX11
+    xorg.libXScrnSaver
+    xorg.libXdamage
+    xorg.libXfixes
+    xorg.libxshmfence
+  ];
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    copyDesktopItems
+    makeWrapper
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "TeamSpeak";
+      exec = "TeamSpeak";
+      icon = pname;
+      desktopName = pname;
+      comment = "TeamSpeak Voice Communication Client";
+      categories = ["Audio" "AudioVideo" "Chat" "Network"];
+    })
+  ];
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/${pname} $out/share/icons/hicolor/64x64/apps/
+
+    cp -a * $out/share/${pname}
+    cp logo-256.png $out/share/icons/hicolor/64x64/apps/${pname}.png
+
+    makeWrapper $out/share/${pname}/TeamSpeak $out/bin/TeamSpeak \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ udev ]}"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "The TeamSpeak voice communication tool (beta version)";
+    homepage = "https://teamspeak.com/";
+    license = {
+      fullName = "Teamspeak client license";
+      url = "https://www.teamspeak.com/en/privacy-and-terms/";
+      free = false;
+    };
+    maintainers = with maintainers; [ jojosch ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
index 44430ef62e2d..577589f6a40b 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
@@ -4,13 +4,13 @@ let
   arch = if stdenv.is64bit then "amd64" else "x86";
 in stdenv.mkDerivation rec {
   pname = "teamspeak-server";
-  version = "3.13.6";
+  version = "3.13.7";
 
   src = fetchurl {
     url = "https://files.teamspeak-services.com/releases/server/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2";
     sha256 = if stdenv.is64bit
-      then "sha256-U3BNJ4Jjhd39gD7iMsHT8CGtm/GFQDE2kYQa2btyK+w="
-      else "sha256-8UKiFedv6w5bmqNvo3AXwQnUROwbZnU0ZTh9V17zmxQ=";
+      then "sha256-d1pXMamAmAHkyPkGbNm8ViobNoVTE5wSSfKgdA1QBB4="
+      else "sha256-aMEDOnvBeKfzG8lDFhU8I5DYgG53IsCDBMV2MUyJi2g=";
   };
 
   buildInputs = [ stdenv.cc.cc postgresql.lib ];
@@ -58,6 +58,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "TeamSpeak voice communication server";
     homepage = "https://teamspeak.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     platforms = platforms.linux;
     maintainers = with maintainers; [ arobyn gerschtli ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
index ce5dc0e266e6..a336e048d1e4 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
@@ -7,7 +7,6 @@
 , ninja
 , clang
 , python3
-, wrapGAppsHook
 , wrapQtAppsHook
 , removeReferencesTo
 , extra-cmake-modules
@@ -27,7 +26,6 @@
 , tl-expected
 , hunspell
 , glibmm
-, webkitgtk
 , jemalloc
 , rnnoise
 , abseil-cpp
@@ -65,7 +63,6 @@
 , IOSurface
 , Metal
 , MetalKit
-, withWebKit ? false
 }:
 
 with lib;
@@ -101,6 +98,7 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
+    ./kf594.patch
     ./shortcuts-binary-path.patch
     # let it build with nixpkgs 10.12 sdk
     ./kotato-10.12-sdk.patch
@@ -113,9 +111,6 @@ stdenv.mkDerivation rec {
       --replace '"libasound.so.2"' '"${alsa-lib}/lib/libasound.so.2"'
     substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioPulse.cpp \
       --replace '"libpulse.so.0"' '"${libpulseaudio}/lib/libpulse.so.0"'
-  '' + optionalString (stdenv.isLinux && withWebKit) ''
-    substituteInPlace Telegram/lib_webview/webview/platform/linux/webview_linux_webkit_gtk.cpp \
-      --replace '"libwebkit2gtk-4.0.so.37"' '"${webkitgtk}/lib/libwebkit2gtk-4.0.so.37"'
   '' + optionalString stdenv.isDarwin ''
     substituteInPlace Telegram/CMakeLists.txt \
       --replace 'COMMAND iconutil' 'COMMAND png2icns' \
@@ -124,10 +119,6 @@ stdenv.mkDerivation rec {
       --replace "\''${appicon_path}" "\''${appicon_path}/icon_16x16.png \''${appicon_path}/icon_32x32.png \''${appicon_path}/icon_128x128.png \''${appicon_path}/icon_256x256.png \''${appicon_path}/icon_512x512.png"
   '';
 
-  # We want to run wrapProgram manually (with additional parameters)
-  dontWrapGApps = stdenv.isLinux;
-  dontWrapQtApps = stdenv.isLinux && withWebKit;
-
   nativeBuildInputs = [
     pkg-config
     cmake
@@ -139,8 +130,6 @@ stdenv.mkDerivation rec {
     # to build bundled libdispatch
     clang
     extra-cmake-modules
-  ] ++ optionals (stdenv.isLinux && withWebKit) [
-    wrapGAppsHook
   ];
 
   buildInputs = [
@@ -166,8 +155,6 @@ stdenv.mkDerivation rec {
     glibmm
     jemalloc
     wayland
-  ] ++ optionals (stdenv.isLinux && withWebKit) [
-    webkitgtk
   ] ++ optionals stdenv.isDarwin [
     Cocoa
     CoreFoundation
@@ -225,18 +212,12 @@ stdenv.mkDerivation rec {
     remove-references-to -t ${tg_owt.dev} $out/bin/$binName
   '';
 
-  postFixup = optionalString (stdenv.isLinux && withWebKit) ''
-    # We also use gappsWrapperArgs from wrapGAppsHook.
-    wrapProgram $out/bin/kotatogram-desktop \
-      "''${gappsWrapperArgs[@]}" \
-      "''${qtWrapperArgs[@]}"
-  '';
-
   passthru = {
     inherit tg_owt;
   };
 
   meta = {
+    broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "Kotatogram – experimental Telegram Desktop fork";
     longDescription = ''
       Unofficial desktop client for the Telegram messenger, based on Telegram Desktop.
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kf594.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kf594.patch
new file mode 100644
index 000000000000..0fa2d8bc8f6e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kf594.patch
@@ -0,0 +1,57 @@
+diff --git a/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp b/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp
+index 7641579aa..3c195e397 100644
+--- a/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp
++++ b/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp
+@@ -9,10 +9,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+ 
+ #include "base/platform/base_platform_info.h"
+ 
+-#include <connection_thread.h>
+-#include <registry.h>
+-#include <surface.h>
+-#include <plasmashell.h>
++#include <KWayland/Client/connection_thread.h>
++#include <KWayland/Client/registry.h>
++#include <KWayland/Client/surface.h>
++#include <KWayland/Client/plasmashell.h>
+ 
+ using namespace KWayland::Client;
+ 
+Submodule Telegram/lib_base contains modified content
+diff --git a/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp b/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp
+index 32f0de6..30a087f 100644
+--- a/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp
++++ b/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp
+@@ -13,11 +13,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+ #include <QtCore/QPointer>
+ #include <QtGui/QWindow>
+ 
+-#include <connection_thread.h>
+-#include <registry.h>
+-#include <surface.h>
+-#include <xdgforeign.h>
+-#include <idleinhibit.h>
++#include <KWayland/Client/connection_thread.h>
++#include <KWayland/Client/registry.h>
++#include <KWayland/Client/surface.h>
++#include <KWayland/Client/xdgforeign.h>
++#include <KWayland/Client/idleinhibit.h>
+ 
+ using namespace KWayland::Client;
+ 
+Submodule Telegram/lib_ui contains modified content
+diff --git a/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp b/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp
+index 01f1e80..163cb6a 100644
+--- a/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp
++++ b/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp
+@@ -24,8 +24,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+ #include <private/qwaylandwindow_p.h>
+ #include <private/qwaylandshellsurface_p.h>
+ 
+-#include <connection_thread.h>
+-#include <registry.h>
++#include <KWayland/Client/connection_thread.h>
++#include <KWayland/Client/registry.h>
+ 
+ Q_DECLARE_METATYPE(QMargins);
+ 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kotato-10.12-sdk.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kotato-10.12-sdk.patch
index d603c967cfde..8c80cafc6dad 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kotato-10.12-sdk.patch
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kotato-10.12-sdk.patch
@@ -1,8 +1,8 @@
 diff --git a/Telegram/SourceFiles/platform/mac/file_bookmark_mac.mm b/Telegram/SourceFiles/platform/mac/file_bookmark_mac.mm
-index 337055443..09604b117 100644
+index 9e9a1744b..ae55f873f 100644
 --- a/Telegram/SourceFiles/platform/mac/file_bookmark_mac.mm
 +++ b/Telegram/SourceFiles/platform/mac/file_bookmark_mac.mm
-@@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+@@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
  
  #include <Cocoa/Cocoa.h>
  #include <CoreFoundation/CFURL.h>
@@ -11,10 +11,10 @@ index 337055443..09604b117 100644
  namespace Platform {
  namespace {
 diff --git a/Telegram/SourceFiles/platform/mac/specific_mac.mm b/Telegram/SourceFiles/platform/mac/specific_mac.mm
-index 3b4395ae3..7f8ee401f 100644
+index 1d68457bb..ac8c4e0ab 100644
 --- a/Telegram/SourceFiles/platform/mac/specific_mac.mm
 +++ b/Telegram/SourceFiles/platform/mac/specific_mac.mm
-@@ -119,6 +119,7 @@ PermissionStatus GetPermissionStatus(PermissionType type) {
+@@ -118,6 +118,7 @@ PermissionStatus GetPermissionStatus(PermissionType type) {
  	switch (type) {
  	case PermissionType::Microphone:
  	case PermissionType::Camera:
@@ -22,7 +22,7 @@ index 3b4395ae3..7f8ee401f 100644
  		const auto nativeType = (type == PermissionType::Microphone)
  			? AVMediaTypeAudio
  			: AVMediaTypeVideo;
-@@ -133,6 +134,7 @@ PermissionStatus GetPermissionStatus(PermissionType type) {
+@@ -132,6 +133,7 @@ PermissionStatus GetPermissionStatus(PermissionType type) {
  					return PermissionStatus::Denied;
  			}
  		}
@@ -30,7 +30,7 @@ index 3b4395ae3..7f8ee401f 100644
  		break;
  	}
  	return PermissionStatus::Granted;
-@@ -142,6 +144,7 @@ void RequestPermission(PermissionType type, Fn<void(PermissionStatus)> resultCal
+@@ -141,6 +143,7 @@ void RequestPermission(PermissionType type, Fn<void(PermissionStatus)> resultCal
  	switch (type) {
  	case PermissionType::Microphone:
  	case PermissionType::Camera:
@@ -38,7 +38,7 @@ index 3b4395ae3..7f8ee401f 100644
  		const auto nativeType = (type == PermissionType::Microphone)
  			? AVMediaTypeAudio
  			: AVMediaTypeVideo;
-@@ -152,6 +155,7 @@ void RequestPermission(PermissionType type, Fn<void(PermissionStatus)> resultCal
+@@ -151,6 +154,7 @@ void RequestPermission(PermissionType type, Fn<void(PermissionStatus)> resultCal
  				});
  			}];
  		}
@@ -217,7 +217,7 @@ index 464f87c9c..9a008c75e 100644
  	controller:(not_null<Window::Controller*>)controller
 Submodule Telegram/ThirdParty/tgcalls contains modified content
 diff --git a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoDecoderFactory.mm b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoDecoderFactory.mm
-index 8a4417b..2d9794e 100644
+index b280c1b..a1ed0d2 100644
 --- a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoDecoderFactory.mm
 +++ b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoDecoderFactory.mm
 @@ -71,7 +71,7 @@
@@ -239,10 +239,10 @@ index 8a4417b..2d9794e 100644
      if ([info.name isEqualToString:kRTCVideoCodecH265Name]) {
        return [[TGRTCVideoDecoderH265 alloc] init];
 diff --git a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoEncoderFactory.mm b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoEncoderFactory.mm
-index 2901417..ac9ec2a 100644
+index 9960607..f3659b3 100644
 --- a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoEncoderFactory.mm
 +++ b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoEncoderFactory.mm
-@@ -76,7 +76,7 @@
+@@ -89,7 +89,7 @@
        [result addObject:h265Info];
      }
    }
@@ -251,7 +251,7 @@ index 2901417..ac9ec2a 100644
    if (@available(macOS 10.13, *)) {
      if ([[AVAssetExportSession allExportPresets] containsObject:AVAssetExportPresetHEVCHighestQuality]) {
        [result addObject:h265Info];
-@@ -112,7 +112,7 @@
+@@ -129,7 +129,7 @@
        return [[TGRTCVideoEncoderH265 alloc] initWithCodecInfo:info];
      }
    }
@@ -261,7 +261,7 @@ index 2901417..ac9ec2a 100644
      if ([info.name isEqualToString:kRTCVideoCodecH265Name]) {
        return [[TGRTCVideoEncoderH265 alloc] initWithCodecInfo:info];
 diff --git a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoCameraCapturerMac.mm b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoCameraCapturerMac.mm
-index de92427..9a5b20d 100644
+index bf99063..b717645 100644
 --- a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoCameraCapturerMac.mm
 +++ b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoCameraCapturerMac.mm
 @@ -507,8 +507,7 @@ static tgcalls::DarwinVideoTrackSource *getObjCVideoSource(const rtc::scoped_ref
@@ -274,11 +274,20 @@ index de92427..9a5b20d 100644
    RTCLogError(@"Dropped sample buffer. Reason: %@", droppedReason);
  }
  
+@@ -682,7 +681,7 @@ static tgcalls::DarwinVideoTrackSource *getObjCVideoSource(const rtc::scoped_ref
+             int closest = -1;
+             CMTime result;
+             for (int i = 0; i < format.videoSupportedFrameRateRanges.count; i++) {
+-                const auto rateRange = format.videoSupportedFrameRateRanges[i];
++                const AVFrameRateRange *rateRange = format.videoSupportedFrameRateRanges[i];
+                 int gap = abs(rateRange.minFrameRate - target);
+                 if (gap <= closest || closest == -1) {
+                     closest = gap;
 diff --git a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoMetalViewMac.mm b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoMetalViewMac.mm
-index bcabcf7..de7b6c7 100644
+index 4ef8630..3fc753c 100644
 --- a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoMetalViewMac.mm
 +++ b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoMetalViewMac.mm
-@@ -245,9 +245,11 @@ private:
+@@ -243,9 +243,11 @@ private:
      layer.framebufferOnly = true;
      layer.opaque = false;
  //    layer.cornerRadius = 4;
@@ -290,7 +299,7 @@ index bcabcf7..de7b6c7 100644
  //    layer.presentsWithTransaction = YES;
      layer.backgroundColor = [NSColor clearColor].CGColor;
      layer.contentsGravity = kCAGravityResizeAspectFill;
-@@ -334,9 +336,7 @@ private:
+@@ -332,9 +334,7 @@ private:
  - (RTCVideoRotation)rtcFrameRotation {
      if (_rotationOverride) {
          RTCVideoRotation rotation;
@@ -323,10 +332,10 @@ index 5491702..32befc6 100644
  }
  
 diff --git a/Telegram/lib_base/base/platform/mac/base_info_mac.mm b/Telegram/lib_base/base/platform/mac/base_info_mac.mm
-index 29e368f..ea1f65f 100644
+index f1f259a..6629eb6 100644
 --- a/Telegram/lib_base/base/platform/mac/base_info_mac.mm
 +++ b/Telegram/lib_base/base/platform/mac/base_info_mac.mm
-@@ -203,16 +203,20 @@ void Finish() {
+@@ -226,16 +226,20 @@ void Finish() {
  }
  
  void OpenInputMonitoringPrivacySettings() {
@@ -348,10 +357,10 @@ index 29e368f..ea1f65f 100644
  }
  
 diff --git a/Telegram/lib_base/base/platform/mac/base_system_media_controls_mac.mm b/Telegram/lib_base/base/platform/mac/base_system_media_controls_mac.mm
-index c86ac77..b081162 100644
+index 6102705..8981239 100644
 --- a/Telegram/lib_base/base/platform/mac/base_system_media_controls_mac.mm
 +++ b/Telegram/lib_base/base/platform/mac/base_system_media_controls_mac.mm
-@@ -271,6 +271,7 @@ void SystemMediaControls::setThumbnail(const QImage &thumbnail) {
+@@ -277,6 +277,7 @@ void SystemMediaControls::setThumbnail(const QImage &thumbnail) {
  	if (thumbnail.isNull()) {
  		return;
  	}
@@ -359,7 +368,7 @@ index c86ac77..b081162 100644
  	if (@available(macOS 10.13.2, *)) {
  		const auto copy = thumbnail;
  		[_private->info
-@@ -284,6 +285,7 @@ void SystemMediaControls::setThumbnail(const QImage &thumbnail) {
+@@ -290,6 +291,7 @@ void SystemMediaControls::setThumbnail(const QImage &thumbnail) {
  			forKey:MPMediaItemPropertyArtwork];
  		updateDisplay();
  	}
@@ -367,7 +376,7 @@ index c86ac77..b081162 100644
  }
  
  void SystemMediaControls::setDuration(int duration) {
-@@ -302,10 +304,12 @@ void SystemMediaControls::setVolume(float64 volume) {
+@@ -308,10 +310,12 @@ void SystemMediaControls::setVolume(float64 volume) {
  }
  
  void SystemMediaControls::clearThumbnail() {
@@ -380,7 +389,7 @@ index c86ac77..b081162 100644
  }
  
  void SystemMediaControls::clearMetadata() {
-@@ -367,9 +371,11 @@ bool SystemMediaControls::volumeSupported() const {
+@@ -373,9 +377,11 @@ bool SystemMediaControls::volumeSupported() const {
  }
  
  bool SystemMediaControls::Supported() {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt-10.12-sdk.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt-10.12-sdk.patch
index a9adf5737a55..af1d47a3b44e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt-10.12-sdk.patch
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt-10.12-sdk.patch
@@ -1,3 +1,16 @@
+diff --git a/src/rtc_base/async_resolver.cc b/src/rtc_base/async_resolver.cc
+index ad1598f2..fe9c3832 100644
+--- a/src/rtc_base/async_resolver.cc
++++ b/src/rtc_base/async_resolver.cc
+@@ -57,7 +57,7 @@ void GlobalGcdRunTask(void* context) {
+ 
+ // Post a task into the system-defined global concurrent queue.
+ void PostTaskToGlobalQueue(std::unique_ptr<webrtc::QueuedTask> task) {
+-  dispatch_queue_global_t global_queue =
++  dispatch_queue_t global_queue =
+       dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
+   webrtc::QueuedTask* context = task.release();
+   dispatch_async_f(global_queue, context, &GlobalGcdRunTask);
 diff --git a/src/rtc_base/system/gcd_helpers.m b/src/rtc_base/system/gcd_helpers.m
 index fd9a361f..3a63be6d 100644
 --- a/src/rtc_base/system/gcd_helpers.m
@@ -13,10 +26,10 @@ index fd9a361f..3a63be6d 100644
    dispatch_set_target_queue(queue, target);
    return queue;
 diff --git a/src/sdk/objc/components/video_codec/nalu_rewriter.cc b/src/sdk/objc/components/video_codec/nalu_rewriter.cc
-index 61c1e7d6..b19f3f91 100644
+index 1121c921..f21926b0 100644
 --- a/src/sdk/objc/components/video_codec/nalu_rewriter.cc
 +++ b/src/sdk/objc/components/video_codec/nalu_rewriter.cc
-@@ -245,10 +245,7 @@ bool H265CMSampleBufferToAnnexBBuffer(
+@@ -242,10 +242,7 @@ bool H265CMSampleBufferToAnnexBBuffer(
    int nalu_header_size = 0;
    size_t param_set_count = 0;
    OSStatus status = noErr;
@@ -28,7 +41,7 @@ index 61c1e7d6..b19f3f91 100644
      RTC_LOG(LS_ERROR) << "Not supported.";
      return false;
    }
-@@ -271,10 +268,7 @@ bool H265CMSampleBufferToAnnexBBuffer(
+@@ -268,10 +265,7 @@ bool H265CMSampleBufferToAnnexBBuffer(
      size_t param_set_size = 0;
      const uint8_t* param_set = nullptr;
      for (size_t i = 0; i < param_set_count; ++i) {
@@ -40,7 +53,7 @@ index 61c1e7d6..b19f3f91 100644
          RTC_LOG(LS_ERROR) << "Not supported.";
          return false;
        }
-@@ -514,11 +508,7 @@ CMVideoFormatDescriptionRef CreateH265VideoFormatDescription(
+@@ -501,11 +495,7 @@ CMVideoFormatDescriptionRef CreateH265VideoFormatDescription(
    // Parse the SPS and PPS into a CMVideoFormatDescription.
    CMVideoFormatDescriptionRef description = nullptr;
    OSStatus status = noErr;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix
index fe62270b8e80..e171622616ae 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix
@@ -25,8 +25,8 @@
 , abseil-cpp
 , pipewire
 , mesa
-, libglvnd
-, libepoxy
+, libdrm
+, libGL
 , Cocoa
 , AppKit
 , IOKit
@@ -46,13 +46,13 @@
 
 stdenv.mkDerivation {
   pname = "tg_owt";
-  version = "unstable-2022-02-26";
+  version = "unstable-2022-04-13";
 
   src = fetchFromGitHub {
     owner = "desktop-app";
     repo = "tg_owt";
-    rev = "a264028ec71d9096e0aa629113c49c25db89d260";
-    sha256 = "sha256-JR+M+4w0QsQLfIunZ/7W+5Knn+gX+RR3DBrpOz7q44I=";
+    rev = "63a934db1ed212ebf8aaaa20f0010dd7b0d7b396";
+    sha256 = "sha256-WddSsQ9KW1zYyYckzdUOvfFZArYAbyvXmABQNMtK6cM=";
     fetchSubmodules = true;
   };
 
@@ -61,11 +61,19 @@ stdenv.mkDerivation {
     ./tg_owt-10.12-sdk.patch
   ];
 
+  postPatch = lib.optionalString stdenv.isLinux ''
+    substituteInPlace src/modules/desktop_capture/linux/egl_dmabuf.cc \
+      --replace '"libEGL.so.1"' '"${libGL}/lib/libEGL.so.1"' \
+      --replace '"libGL.so.1"' '"${libGL}/lib/libGL.so.1"' \
+      --replace '"libgbm.so.1"' '"${mesa}/lib/libgbm.so.1"' \
+      --replace '"libdrm.so.2"' '"${libdrm}/lib/libdrm.so.2"'
+  '';
+
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [ pkg-config cmake ninja yasm ];
 
-  buildInputs = [
+  propagatedBuildInputs = [
     libjpeg
     openssl
     libopus
@@ -87,8 +95,8 @@ stdenv.mkDerivation {
     glib
     pipewire
     mesa
-    libepoxy
-    libglvnd
+    libdrm
+    libGL
   ] ++ lib.optionals stdenv.isDarwin [
     Cocoa
     AppKit
@@ -112,13 +120,5 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  propagatedBuildInputs = [
-    # Required for linking downstream binaries.
-    abseil-cpp
-    openh264
-    usrsctp
-    libvpx
-  ];
-
   meta.license = lib.licenses.bsd3;
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix
new file mode 100644
index 000000000000..435268cdf623
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, kotatogram-desktop, glib-networking, webkitgtk, makeWrapper }:
+
+with lib;
+
+stdenv.mkDerivation {
+  pname = "${kotatogram-desktop.pname}-with-webkit";
+  version = kotatogram-desktop.version;
+  nativeBuildInputs = [ makeWrapper ];
+  dontUnpack = true;
+  installPhase = ''
+    mkdir -p $out
+    cp -r ${kotatogram-desktop}/share $out
+  '';
+  postFixup = ''
+    mkdir -p $out/bin
+    makeWrapper ${kotatogram-desktop}/bin/kotatogram-desktop $out/bin/kotatogram-desktop \
+      --prefix GIO_EXTRA_MODULES : ${glib-networking}/lib/gio/modules \
+      --prefix LD_LIBRARY_PATH : ${makeLibraryPath [ webkitgtk ]}
+  '';
+  meta = kotatogram-desktop.meta // {
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index c23e416d2c62..3f1468126fd8 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -1,5 +1,4 @@
-{ mkDerivation
-, lib
+{ lib
 , fetchFromGitHub
 , callPackage
 , pkg-config
@@ -10,9 +9,11 @@
 , wrapQtAppsHook
 , extra-cmake-modules
 , qtbase
+, qtwayland
+, qtsvg
 , qtimageformats
+, qt5compat
 , gtk3
-, kwayland
 , libdbusmenu
 , lz4
 , xxHash
@@ -22,6 +23,7 @@
 , libopus
 , alsa-lib
 , libpulseaudio
+, pipewire
 , range-v3
 , tl-expected
 , hunspell
@@ -34,6 +36,7 @@
 , util-linuxMinimal
 , pcre
 , libpthreadstubs
+, libXdamage
 , libXdmcp
 , libselinux
 , libsepol
@@ -70,7 +73,7 @@ let
 in
 env.mkDerivation rec {
   pname = "telegram-desktop";
-  version = "3.6.0";
+  version = "4.1.0";
   # Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
 
   # Telegram-Desktop with submodules
@@ -79,7 +82,7 @@ env.mkDerivation rec {
     repo = "tdesktop";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "0zcjm08nfdlxrsv0fi6dqg3lk52bcvsxnsf6jm5fv6gf5v9ia3hq";
+    sha256 = "06va1b5dac7a2av6vc0xin27y1hfnf4xbafy10myv33am8l5222m";
   };
 
   postPatch = ''
@@ -112,9 +115,11 @@ env.mkDerivation rec {
 
   buildInputs = [
     qtbase
+    qtwayland
+    qtsvg
     qtimageformats
+    qt5compat
     gtk3
-    kwayland
     libdbusmenu
     lz4
     xxHash
@@ -124,6 +129,7 @@ env.mkDerivation rec {
     libopus
     alsa-lib
     libpulseaudio
+    pipewire
     range-v3
     tl-expected
     hunspell
@@ -136,6 +142,7 @@ env.mkDerivation rec {
     util-linuxMinimal # Required for libmount thus not nativeBuildInputs.
     pcre
     libpthreadstubs
+    libXdamage
     libXdmcp
     libselinux
     libsepol
@@ -158,8 +165,6 @@ env.mkDerivation rec {
     "-DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c"
     # See: https://github.com/NixOS/nixpkgs/pull/130827#issuecomment-885212649
     "-DDESKTOP_APP_USE_PACKAGED_FONTS=OFF"
-    # TODO: Remove once QT6 is available in nixpkgs
-    "-DDESKTOP_APP_QT6=OFF"
   ];
 
   postFixup = ''
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
index 200e0e887e3e..590e8f337fe6 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation {
   pname = "tg_owt";
-  version = "unstable-2022-02-25";
+  version = "unstable-2022-08-11";
 
   src = fetchFromGitHub {
     owner = "desktop-app";
     repo = "tg_owt";
-    rev = "a264028ec71d9096e0aa629113c49c25db89d260";
-    sha256 = "10p3x8z3ps8s1ivi9y8px2gsg4pvsvz6g9wbgh5w8hilikxqq7r5";
+    rev = "a5fbc9123e056e611e69acf0ceb4252ddd838adb";
+    sha256 = "1hzck63spjjkqzkj0mlrxygrix4lw0n3i5cmc0vkxaphfzawz74n";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix
index 3b69aa5566dc..c8e8598c1403 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, jansson, lib, libconfig, libevent, libgcrypt, lua, lua53Packages
+{ stdenv, fetchFromGitHub, fetchpatch, jansson, lib, libconfig, libevent, libgcrypt, lua, lua53Packages
 , makeWrapper, openssl, pkg-config, python3, readline, zlib
 }:
 
@@ -14,6 +14,16 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  patches = [
+    # Pull patch pending upstream upstream inclusion for -fno-common toolchains:
+    #   https://github.com/kenorb-contrib/tg/pull/61
+    (fetchpatch {
+      name = "fno-common.patch";
+      url = "https://github.com/kenorb-contrib/tg/commit/aad2e644fffa16066b227741d54de31bddb04ff8.patch";
+      sha256 = "sha256-LAa5J4BVj3QCiDSs+p2bynDroMSIqCeexQvrgaDl6OE=";
+    })
+  ];
+
   buildInputs = [
     jansson
     libconfig
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix
new file mode 100644
index 000000000000..0918bfee91e2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonApplication, fetchFromGitHub, pythonOlder, python-telegram }:
+
+buildPythonApplication rec {
+  pname = "tg";
+  version = "0.19.0";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "paul-nameless";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-apHd26XnOz5nak+Kz8PJPsonQfTWDyPz7Mi/tWf7zwM=";
+  };
+
+  propagatedBuildInputs = [ python-telegram ];
+
+  doCheck = false; # No tests
+
+  meta = with lib; {
+    description = "Terminal client for telegram";
+    homepage = "https://github.com/paul-nameless/tg";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ sikmir ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
deleted file mode 100644
index 882fae1c3b5f..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, stdenv, fetchurl, libxslt, glib, libxml2, telepathy-glib, python2, avahi, libsoup
-, libuuid, openssl, pcre, sqlite, pkg-config }:
-
-stdenv.mkDerivation rec {
-  pname = "telepathy-salut";
-  version = "0.8.1";
-
-  src = fetchurl {
-    url = "https://telepathy.freedesktop.org/releases/telepathy-salut/telepathy-salut-${version}.tar.gz";
-    sha256 = "13k112vrr3zghzr03pnbqc1id65qvpj0sn0virlbf4dmr2511fbh";
-  };
-
-  # pcre needed because https://github.com/NixOS/nixpkgs/pull/15046
-  buildInputs = [ glib libxml2 telepathy-glib avahi libsoup libuuid openssl
-    sqlite pcre python2 ];
-
-  nativeBuildInputs = [ libxslt pkg-config ];
-
-  configureFlags = [ "--disable-avahi-tests" ];
-
-  meta = with lib; {
-    description = "Link-local XMPP connection manager for Telepathy";
-    platforms = platforms.gnu ++ platforms.linux; # Random choice
-    maintainers = [ ];
-    broken = true;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
index 30bfde7a96f1..852abe8e6dc4 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "threema-desktop";
-  version = "1.0.3";
+  version = "1.2.13";
 
   src = fetchurl {
     # As Threema only offers a Latest Release url, the plan is to upload each
     # new release url to web.archive.org until their Github releases page gets populated.
-    url = "https://web.archive.org/web/20211027194646/https://releases.threema.ch/web-electron/v1/release/Threema-Latest.deb";
-    sha256 = "sha256-qiFv52nnyfHxCWTePmyxW/MgzFy3EUxmW6n+UIkw7tk=";
+    url = "https://web.archive.org/web/20220621152620id_/https://releases.threema.ch/web-electron/v1/release/Threema-Latest.deb";
+    sha256 = "sha256-X16GMxUIKUloj0FxhzWQKUBf4zwfSBVg0cwLgGxHPHE=";
   };
 
   nativeBuildInputs = [
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Desktop client for Threema, a privacy-focused end-to-end encrypted mobile messenger";
     homepage = "https://threema.ch";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix
deleted file mode 100644
index 3278d68cd0b5..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, python2, unzip, tor }:
-
-stdenv.mkDerivation rec {
-  pname = "torchat";
-  version = "0.9.9.553";
-
-  src = fetchFromGitHub {
-    owner = "prof7bit";
-    repo = "TorChat";
-    rev = version;
-    sha256 = "2LHG9qxZDo5rV6wsputdRo2Y1aHs+irMwt1ucFnXQE0=";
-  };
-
-  nativeBuildInputs = [ unzip ];
-  buildInputs = with python2.pkgs; [ python wxPython wrapPython ];
-  pythonPath = with python2.pkgs; [ wxPython ];
-
-  preConfigure = "cd torchat/src; rm portable.txt";
-
-  installPhase = ''
-    substituteInPlace "Tor/tor.sh" --replace "tor -f" "${tor}/bin/tor -f"
-
-    wrapPythonPrograms
-
-    mkdir -p $out/lib/torchat
-    cp -rf * $out/lib/torchat
-    makeWrapper ${python2}/bin/python $out/bin/torchat \
-        --set PYTHONPATH $out/lib/torchat:$program_PYTHONPATH \
-        --run "cd $out/lib/torchat" \
-        --add-flags "-O $out/lib/torchat/torchat.py"
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/prof7bit/TorChat";
-    description = "Instant messaging application on top of the Tor network and it's location hidden services";
-    license = licenses.gpl3;
-    maintainers = [ ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/trillian-im/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/trillian-im/default.nix
new file mode 100644
index 000000000000..0d4a6299adfc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/trillian-im/default.nix
@@ -0,0 +1,78 @@
+{ lib
+, stdenv
+, fetchurl
+, autoPatchelfHook
+, dpkg
+, atkmm
+, cairo
+, cairomm
+, gtk3
+, gtkmm3
+, libnotify
+, libsecret
+, pangomm
+, xorg
+, libpulseaudio
+, librsvg
+, libzip
+, openssl
+, webkitgtk
+, libappindicator-gtk3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "trillian-im";
+  version = "6.3.0.1";
+
+  src = fetchurl {
+    url = "https://www.trillian.im/get/linux/6.3/trillian_${version}_amd64.deb";
+    sha256 = "42e3466ee236ac2644907059f0961eba3a6ed6b6156afb2c57f54ebe6065ac6f";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+  ];
+
+  buildInputs = [
+    atkmm
+    cairo
+    cairomm
+    gtk3
+    gtkmm3
+    libnotify
+    libsecret
+    pangomm
+    xorg.libXScrnSaver
+    libpulseaudio
+    librsvg
+    libzip
+    openssl
+    webkitgtk
+    libappindicator-gtk3
+  ];
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    dpkg -x $src $out
+    cp -av $out/usr/* $out
+    rm -rf $out/usr
+
+    rm $out/bin/trillian
+    ln -s "$out/share/trillian/trillian" "$out/bin/trillian"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Modern instant messaging for home and work that prioritizes chat interoperability and security";
+    homepage = "https://www.trillian.im/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ majiir ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix
index 42dd9f835c9a..c368c049daf0 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix
@@ -19,6 +19,10 @@ let
           rev = "v${version}";
           sha256 = "0k4bdlwjna6f1k19jki4xqgckrinkkw8b9wihzymr1l04rwd05nw";
         };
+        propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [
+          super.six
+          super.requests.optional-dependencies.socks
+        ];
         doCheck = false;
       });
     };
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
new file mode 100644
index 000000000000..ec9df5ec10dd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub, rustPlatform, pkg-config, openssl }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "twitch-tui";
+  version = "1.6.0";
+
+  src = fetchFromGitHub {
+    owner = "Xithrius";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-144yn/QQPIZJOgqKFUWjB7KCmEKfNpj6XjMGhTpQdEQ=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl ];
+
+  cargoHash = "sha256-zUeI01EyXsuoKzHbpVu3jyA3H2aBk6wMY+GW3h3v8vc=";
+
+  meta = with lib; {
+    description = "Twitch chat in the terminal";
+    homepage = "https://github.com/Xithrius/twitch-tui";
+    license = licenses.mit;
+    maintainers = [ maintainers.taha ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
index f8e048edc4b0..be19ec257424 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
@@ -101,6 +101,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "https://www.viber.com";
     description = "An instant messaging and Voice over IP (VoIP) app";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with lib.maintainers; [ jagajaga ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-cli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
index bb34fd7534c9..a22437bf8da0 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A console (ncurses) client for vk.com written in D";
     homepage = "https://github.com/vk-cli/vk";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
index 5fb0f14f36a0..1d249794d443 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
@@ -24,6 +24,7 @@ let
   meta = with lib; {
     description = "Simple and Convenient Messaging App for VK";
     homepage = "https://vk.com/messenger";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [ ];
     platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/webex/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/webex/default.nix
new file mode 100644
index 000000000000..f324dd0db083
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/webex/default.nix
@@ -0,0 +1,175 @@
+{ lib
+, writeScript
+, stdenv
+, fetchurl
+, alsa-lib
+, at-spi2-atk
+, at-spi2-core
+, atk
+, cairo
+, cups
+, dbus
+, expat
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, gtk3
+, harfbuzz
+, libdrm
+, libgcrypt
+, libglvnd
+, libkrb5
+, libpulseaudio
+, libsecret
+, udev
+, libxcb
+, libxkbcommon
+, lshw
+, mesa
+, nspr
+, nss
+, pango
+, zlib
+, libX11
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXext
+, libXfixes
+, libXi
+, libXrandr
+, libXrender
+, libXtst
+, libxshmfence
+, xcbutil
+, xcbutilimage
+, xcbutilkeysyms
+, xcbutilrenderutil
+, xcbutilwm
+, p7zip
+, wayland
+, libXScrnSaver
+}:
+
+stdenv.mkDerivation rec {
+  pname = "webex";
+  version = "42.8.0.22907";
+
+  src = fetchurl {
+    url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Blue/20220712081040/Webex_ubuntu.7z";
+    sha256 = "b83950cdcf978a3beda93de27b25b70554fc82fcf072a5a7ea858d2ce0d176ac";
+  };
+
+  buildInputs = [
+    alsa-lib
+    at-spi2-atk
+    at-spi2-core
+    atk
+    cairo
+    cups
+    dbus
+    expat
+    fontconfig
+    freetype
+    glib
+    gdk-pixbuf
+    gtk3
+    harfbuzz
+    lshw
+    mesa
+    nspr
+    nss
+    pango
+    zlib
+    libdrm
+    libgcrypt
+    libglvnd
+    libkrb5
+    libpulseaudio
+    libsecret
+    udev
+    libxcb
+    libxkbcommon
+    libX11
+    libXcomposite
+    libXcursor
+    libXdamage
+    libXext
+    libXfixes
+    libXi
+    libXrandr
+    libXrender
+    libXtst
+    libxshmfence
+    xcbutil
+    xcbutilimage
+    libXScrnSaver
+    xcbutilkeysyms
+    xcbutilrenderutil
+    xcbutilwm
+    p7zip
+    wayland
+  ];
+
+  libPath = "$out/opt/Webex/lib:$out/opt/Webex/bin:${lib.makeLibraryPath buildInputs}";
+
+  unpackPhase = ''
+    7z x $src
+    mv Webex_ubuntu/opt .
+  '';
+
+  postPatch = ''
+    substituteInPlace opt/Webex/bin/webex.desktop --replace /opt $out/opt
+  '';
+
+  dontPatchELF = true;
+
+  buildPhase = ''
+    patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${libPath}" \
+      opt/Webex/bin/CiscoCollabHost \
+      opt/Webex/bin/CiscoCollabHostCef \
+      opt/Webex/bin/CiscoCollabHostCefWM \
+      opt/Webex/bin/WebexFileSelector \
+      opt/Webex/bin/pxgsettings
+    for each in $(find opt/Webex -type f | grep \\.so); do
+      patchelf --set-rpath "${libPath}" "$each"
+    done
+  '';
+
+  installPhase = ''
+    mkdir -p "$out/bin" "$out/share/applications"
+    cp -r opt "$out"
+
+    ln -s "$out/opt/Webex/bin/CiscoCollabHost" "$out/bin/webex"
+    chmod +x $out/bin/webex
+
+    mv "$out/opt/Webex/bin/webex.desktop" "$out/share/applications/webex.desktop"
+  '';
+
+  passthru.updateScript = writeScript "webex-update-script" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p curl jq common-updater-scripts
+    set -eou pipefail;
+
+    channel=blue
+    manifest=$(curl -s "https://client-upgrade-a.wbx2.com/client-upgrade/api/v1/webexteamsdesktop/upgrade/@me?channel=$channel&model=ubuntu" | jq '.manifest')
+
+    url=$(jq -r '.packageLocation' <<< "$manifest")
+    version=$(jq -r '.version' <<< "$manifest")
+    hash=$(jq -r '.checksum' <<< "$manifest")
+
+    update-source-version ${pname} "$version" "$hash" "$url" --file=./pkgs/applications/networking/instant-messengers/webex/default.nix
+  '';
+
+  meta = with lib; {
+    description = "The all-in-one app to call, meet, message, and get work done";
+    homepage = "https://webex.com/";
+    downloadPage = "https://www.webex.com/downloads.html";
+    license = licenses.unfree;
+    maintainers = with lib.maintainers; [ uvnikita ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
index 974d9a6a05df..304d1bf4255c 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -11,6 +11,7 @@
 , cpio
 , xar
 , libdbusmenu
+, libxshmfence
 }:
 
 let
@@ -22,13 +23,13 @@ let
   pname = "wire-desktop";
 
   version = {
-    x86_64-darwin = "3.26.4145";
-    x86_64-linux = "3.26.2941";
+    x86_64-darwin = "3.27.4357";
+    x86_64-linux = "3.27.2944";
   }.${system} or throwSystem;
 
   sha256 = {
-    x86_64-darwin = "1ck74a9z2mrwmljrqm347bqhjiaf1v0bf1jfnp58cqngh5ygqnf2";
-    x86_64-linux = "01gy84gr0gw5ap7hpy72azaf6hlzac7vxkn5cgad5sfbyzxgjgc9";
+    x86_64-darwin = "0xihg9fzsbwib2fmb1yqx9015i9q4k0ph8lna4mzgicmrjkw54g8";
+    x86_64-linux = "1wqnrmp8q84izvqv25fgks5pv6la3vahm5dsn7bc6zxqb0xz2xvy";
   }.${system} or throwSystem;
 
   meta = with lib; {
@@ -46,6 +47,7 @@ let
     '';
     homepage = "https://wire.com/";
     downloadPage = "https://wire.com/download/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [
       arianvp
@@ -90,7 +92,7 @@ let
       wrapGAppsHook
     ];
 
-    buildInputs = atomEnv.packages;
+    buildInputs = [ libxshmfence ] ++ atomEnv.packages;
 
     unpackPhase = ''
       runHook preUnpack
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix
deleted file mode 100644
index 4367230f7756..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "xmpp-client";
-  version = "20160916-${lib.strings.substring 0 7 rev}";
-  rev = "abbf9020393e8caae3e8996a16ce48446e31cf0e";
-
-  goPackagePath = "github.com/agl/xmpp-client";
-
-  src = fetchFromGitHub {
-    owner = "agl";
-    repo = "xmpp-client";
-    inherit rev;
-    sha256 = "0j9mfr208cachzm39i8b94v5qk9hws278vv2ms9ma4wn16wns81s";
-  };
-
-  goDeps = ./deps.nix;
-
-  meta = with lib; {
-    description = "An XMPP client with OTR support";
-    homepage = "https://github.com/agl/xmpp-client";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ codsl ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix
deleted file mode 100644
index caa41024fc61..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "62ac18b461605b4be188bbc7300e9aa2bc836cd4";
-      sha256 = "0lwwvbbwbf3yshxkfhn6z20gd45dkvnmw2ms36diiy34krgy402p";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "575fdbe86e5dd89229707ebec0575ce7d088a4a6";
-      sha256 = "1kgv1mkw9y404pk3lcwbs0vgl133mwyp294i18jg9hp10s5d56xa";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/xmppc/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/xmppc/default.nix
new file mode 100644
index 000000000000..c1a8891a073e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/xmppc/default.nix
@@ -0,0 +1,38 @@
+{lib, stdenv, fetchFromGitea, autoconf-archive, autoreconfHook, pkg-config, libstrophe, glib, gpgme }:
+
+stdenv.mkDerivation rec {
+  pname = "xmppc";
+  version = "0.1.2";
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "Anoxinon_e.V.";
+    repo = "xmppc";
+    rev = version;
+    sha256 = "07cy3j4g7vycagdiva3dqb59361lw7s5f2yydpczmyih29v7hkm8";
+  };
+
+  nativeBuildInputs = [
+    autoconf-archive
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    libstrophe
+    glib
+    gpgme
+  ];
+
+  preAutoreconf = ''
+    mkdir m4
+  '';
+
+  meta = with lib; {
+    description = "Command Line Interface Tool for XMPP";
+    homepage = "https://codeberg.org/Anoxinon_e.V./xmppc";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.jugendhacker ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-sha.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-sha.nix
new file mode 100644
index 000000000000..9b4a21cb7d28
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-sha.nix
@@ -0,0 +1 @@
+"0cwplzza8vv4nzxf35i2p4gfnna4dpgp0ddqbpdxl8cxrikq5rji"
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-version.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-version.nix
new file mode 100644
index 000000000000..4fd4c471b3cf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-version.nix
@@ -0,0 +1 @@
+"5.11.1.8356"
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index 4aa9dbc9b10c..f85fa1e28f6c 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -1,22 +1,34 @@
 { stdenv
 , lib
 , fetchurl
+, pipewire
 , makeWrapper
+, xar
+, cpio
   # Dynamic libraries
 , alsa-lib
 , atk
+, at-spi2-atk
+, at-spi2-core
 , cairo
+, cups
 , dbus
+, expat
+, libdrm
 , libGL
 , fontconfig
 , freetype
 , gtk3
 , gdk-pixbuf
 , glib
+, mesa
+, nspr
+, nss
 , pango
 , wayland
 , xorg
 , libxkbcommon
+, udev
 , zlib
   # Runtime
 , coreutils
@@ -28,11 +40,28 @@
 }:
 
 let
-  version = "5.9.6.2225";
+  inherit (stdenv.hostPlatform) system;
+  throwSystem = throw "Unsupported system: ${system}";
+
+  # Zoom versions are released at different times for each platform
+  version = {
+    aarch64-darwin =import ./arm64-darwin-version.nix;
+    x86_64-darwin = import ./x86_64-darwin-version.nix;
+    x86_64-linux = import ./x86_64-linux-version.nix;
+   }.${system} or throwSystem;
+
   srcs = {
+    aarch64-darwin = fetchurl {
+      url = "https://zoom.us/client/${version}/Zoom.pkg?archType=arm64";
+      sha256 = import ./arm64-darwin-sha.nix;
+    };
+    x86_64-darwin = fetchurl {
+      url = "https://zoom.us/client/${version}/Zoom.pkg";
+      sha256 = import ./x86_64-darwin-sha.nix;
+    };
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
-      sha256 = "0rynpw2fjn9j75f34rk0rgqn9wzyzgzmwh1a3xcx7hqingv45k53";
+      sha256 = import ./x86_64-linux-sha.nix;
     };
   };
 
@@ -40,28 +69,41 @@ let
     # $ LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH:$PWD ldd zoom | grep 'not found'
     alsa-lib
     atk
+    at-spi2-atk
+    at-spi2-core
     cairo
+    cups
     dbus
+    expat
+    libdrm
     libGL
+    pipewire
     fontconfig
     freetype
     gtk3
     gdk-pixbuf
     glib
+    mesa
+    nspr
+    nss
     pango
     stdenv.cc.cc
     wayland
     xorg.libX11
     xorg.libxcb
     xorg.libXcomposite
+    xorg.libXdamage
     xorg.libXext
     libxkbcommon
+    xorg.libXrandr
     xorg.libXrender
-    zlib
+    xorg.libxshmfence
     xorg.xcbutilimage
     xorg.xcbutilkeysyms
     xorg.libXfixes
     xorg.libXtst
+    udev
+    zlib
   ] ++ lib.optional (pulseaudioSupport) libpulseaudio);
 
 in
@@ -69,23 +111,41 @@ stdenv.mkDerivation rec {
   pname = "zoom";
   inherit version;
 
-  src = srcs.${stdenv.hostPlatform.system};
+  src = srcs.${system} or throwSystem;
 
-  dontUnpack = true;
+  dontUnpack = stdenv.isLinux;
+  unpackPhase = lib.optionalString stdenv.isDarwin ''
+    xar -xf $src
+    zcat < zoomus.pkg/Payload | cpio -i
+  '';
 
   nativeBuildInputs = [
     makeWrapper
+  ]
+  ++ lib.optionals stdenv.isDarwin [
+    xar
+    cpio
   ];
 
   installPhase = ''
     runHook preInstall
-    mkdir $out
-    tar -C $out -xf $src
-    mv $out/usr/* $out/
+    ${rec {
+      aarch64-darwin = ''
+        mkdir -p $out/Applications
+        cp -R zoom.us.app $out/Applications/
+      '';
+      # darwin steps same on both architectures
+      x86_64-darwin = aarch64-darwin;
+      x86_64-linux = ''
+        mkdir $out
+        tar -C $out -xf $src
+        mv $out/usr/* $out/
+      '';
+    }.${system} or throwSystem}
     runHook postInstall
   '';
 
-  postFixup = ''
+  postFixup = lib.optionalString stdenv.isLinux ''
     # Desktop File
     substituteInPlace $out/share/applications/Zoom.desktop \
         --replace "Exec=/usr/bin/zoom" "Exec=$out/bin/zoom"
@@ -95,7 +155,9 @@ stdenv.mkDerivation rec {
     done
 
     # ZoomLauncher sets LD_LIBRARY_PATH before execing zoom
-    wrapProgram $out/opt/zoom/zoom \
+    # IPC breaks if the executable name does not end in 'zoom'
+    mv $out/opt/zoom/zoom $out/opt/zoom/.zoom
+    makeWrapper $out/opt/zoom/.zoom $out/opt/zoom/zoom \
       --prefix LD_LIBRARY_PATH ":" ${libs}
 
     rm $out/bin/zoom
@@ -104,7 +166,7 @@ stdenv.mkDerivation rec {
     # Clear Qt paths to prevent tripping over "foreign" Qt resources.
     # Clear Qt screen scaling settings to prevent over-scaling.
     makeWrapper $out/opt/zoom/ZoomLauncher $out/bin/zoom \
-      --run "cd $out/opt/zoom" \
+      --chdir "$out/opt/zoom" \
       --unset QML2_IMPORT_PATH \
       --unset QT_PLUGIN_PATH \
       --unset QT_SCREEN_SCALE_FACTORS \
@@ -123,6 +185,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://zoom.us/";
     description = "zoom.us video conferencing application";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = builtins.attrNames srcs;
     maintainers = with maintainers; [ danbst tadfisher doronbehar ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
index 3ec1cccd0d64..6d9b50252d12 100755
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
@@ -1,10 +1,30 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p curl pup common-updater-scripts
+#!nix-shell -i bash -p curl pup
 
 set -eu -o pipefail
 
-version="$(curl -Ls https://zoom.us/download\?os\=linux | \
-  pup '.linux-ver-text text{}' | \
-  awk -F'[ ().]' '{printf $2"."$3"."$4"."$6"\n"}')"
+dirname="$(dirname "$0")"
 
-update-source-version zoom-us "$version"
+uname="$(uname)"
+
+if [[ "$uname" == "Linux" ]]; then
+    version="$(curl -Ls https://zoom.us/download\?os\=linux | \
+      pup '.linux-ver-text text{}' | \
+      awk -F'[ ().]' '{printf $2"."$3"."$4"."$6"\n"}')"
+    printf '"%s"\n' ${version} > $dirname/x86_64-linux-version.nix
+    printf '"%s"\n' \
+        $(nix-prefetch-url https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz) > \
+        $dirname/x86_64-linux-sha.nix
+elif [[ $uname == "Darwin" ]]; then
+    # The 1st line might be empty
+    # 2nd line is the version of the conference room application
+    version="$(curl -Ls https://zoom.us/download\?os\=mac | \
+      pup '.ver text{}' | \
+      sed '/^$/d' |\
+      head -1 | \
+      awk -F'[ ().]' '{printf $2"."$3"."$4"."$6"\n"}')"
+    printf '"%s"\n' ${version} > "$dirname/$(uname -m)-darwin-version.nix"
+    printf '"%s"\n' \
+        $(nix-prefetch-url "https://zoom.us/client/${version}/Zoom.pkg?archType=$(uname -m)") > \
+        "$dirname/$(uname -m)-darwin-sha.nix"
+fi
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-sha.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-sha.nix
new file mode 100644
index 000000000000..a5ef33d28b56
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-sha.nix
@@ -0,0 +1 @@
+"12s4z80n1qk1vcp5vppabj6fxanm4q7pjj7mggalmjbj6984fsza"
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-version.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-version.nix
new file mode 100644
index 000000000000..4fd4c471b3cf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-version.nix
@@ -0,0 +1 @@
+"5.11.1.8356"
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-sha.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-sha.nix
new file mode 100644
index 000000000000..778aaf85f56b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-sha.nix
@@ -0,0 +1 @@
+"09x0l50frck8v2zhgp84m57q3kj74chk37sc69mpbhwy0s6vg980"
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-version.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-version.nix
new file mode 100644
index 000000000000..e3f51ac695de
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-version.nix
@@ -0,0 +1 @@
+"5.11.3.3882"
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
index 1775ce9a4817..cf48ba4420e6 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "zulip-term";
-  version = "0.6.0";
+  version = "0.7.0";
 
   # no tests on PyPI
   src = fetchFromGitHub {
     owner = "zulip";
     repo = "zulip-terminal";
     rev = version;
-    sha256 = "sha256-nlvZaGMVRRCu8PZHxPWjNSxkqhZs0T/tE1js/3pDUFk=";
+    sha256 = "sha256-ZouUU4p1FSGMxPuzDo5P971R+rDXpBdJn2MqvkJO+Fw=";
   };
 
   patches = [
@@ -22,15 +22,17 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
-    urwid
-    zulip
-    urwid-readline
     beautifulsoup4
     lxml
-    typing-extensions
+    pygments
+    pyperclip
     python-dateutil
     pytz
+    typing-extensions
     tzlocal
+    urwid
+    urwid-readline
+    zulip
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch
index 4602a254ab88..a816993b8c4b 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch
@@ -1,13 +1,22 @@
 diff --git a/tests/cli/test_run.py b/tests/cli/test_run.py
-index 459aa82..c6e434e 100644
+index 1452cfd..0a21c09 100644
 --- a/tests/cli/test_run.py
 +++ b/tests/cli/test_run.py
-@@ -180,7 +180,7 @@ def test_main_multiple_autohide_options(capsys, options):
-         assert str(e.value) == "2"
+@@ -240,7 +240,7 @@ def test_main_multiple_autohide_options(
+ 
      captured = capsys.readouterr()
-     lines = captured.err.strip('\n')
+     lines = captured.err.strip("\n")
 -    lines = lines.split("pytest: ", 1)[1]
 +    lines = lines.split("__main__.py: ", 1)[1]
-     expected = ("error: argument {}: not allowed "
-                 "with argument {}".format(options[1], options[0]))
+     expected = f"error: argument {options[1]}: not allowed with argument {options[0]}"
      assert lines == expected
+ 
+@@ -277,7 +277,7 @@ def test_main_multiple_notify_options(
+ 
+     captured = capsys.readouterr()
+     lines = captured.err.strip("\n")
+-    lines = lines.split("pytest: ", 1)[1]
++    lines = lines.split("__main__.py: ", 1)[1]
+     expected = f"error: argument {options[1]}: not allowed with argument {options[0]}"
+     assert lines == expected
+ 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix
index 1fce1a6b6e52..c56e78b9f945 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix
@@ -5,12 +5,12 @@
 
 let
   pname = "zulip";
-  version = "5.8.1";
+  version = "5.9.3";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage";
-    sha256 = "02m18y5j6jmmlygv8ycwaaq6n7mvj97ljhd3l9pvii0adwcvrpfz";
+    hash = "sha256-Hws9vENGzCLQqav4uXtbbI0iNoS3JozC5m2DG38+3Fk=";
     name="${pname}-${version}.AppImage";
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/insync/default.nix b/nixpkgs/pkgs/applications/networking/insync/default.nix
index 380aad6c3291..5992453975d9 100644
--- a/nixpkgs/pkgs/applications/networking/insync/default.nix
+++ b/nixpkgs/pkgs/applications/networking/insync/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     platforms = ["x86_64-linux"];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.benley ];
     homepage = "https://www.insynchq.com";
diff --git a/nixpkgs/pkgs/applications/networking/insync/v3.nix b/nixpkgs/pkgs/applications/networking/insync/v3.nix
index 49a5b892111e..5efffab51c6c 100644
--- a/nixpkgs/pkgs/applications/networking/insync/v3.nix
+++ b/nixpkgs/pkgs/applications/networking/insync/v3.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     platforms = ["x86_64-linux"];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ benley ];
     homepage = "https://www.insynchq.com";
diff --git a/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix b/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix
index de4bb988d768..49483ff7eb89 100644
--- a/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix
@@ -2,29 +2,20 @@
 
 buildGoModule rec {
   pname = "ipfs-cluster";
-  version = "0.14.5";
+  version = "1.0.2";
 
-  vendorSha256 = "sha256-ykUjq7Svp3+kUNnFkwsBlC+C4nws6Yvu3bk2Wb4c8vY=";
+  vendorSha256 = "sha256-4pCJnQ/X5bvlgyHcRVZ8LyOexaKmz+1xAntMpZCpvd0=";
 
   src = fetchFromGitHub {
-    owner = "ipfs";
+    owner = "ipfs-cluster";
     repo = "ipfs-cluster";
     rev = "v${version}";
-    sha256 = "sha256-Xb7QbBmCJKgokxvdbtWxtnNIS/iUsYFLlRzgfoABAq8=";
+    sha256 = "sha256-Mbq4NzMNIGGFOWuHlToGmel/Oa/K6xzpZTVuXnKHq1M=";
   };
 
-  # Remove patch when updating to >0.14.5
-  patches = [
-    (fetchpatch {
-      name = "remove-distribution-test.patch";
-      url = "https://github.com/ipfs/ipfs-cluster/pull/1589/commits/49825d1df76f848806f1d76abce5e279221cc8c5.patch";
-      sha256 = "sha256-mM2rc4ai/qhbvxnoRw5jO7BTRlD2/Tp037EuqqS49DE=";
-    })
-  ];
-
   meta = with lib; {
     description = "Allocate, replicate, and track Pins across a cluster of IPFS daemons";
-    homepage = "https://cluster.ipfs.io/";
+    homepage = "https://ipfscluster.io";
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ Luflosi jglukasik ];
diff --git a/nixpkgs/pkgs/applications/networking/ipfs/default.nix b/nixpkgs/pkgs/applications/networking/ipfs/default.nix
index f6285ae59beb..71df2c1a075f 100644
--- a/nixpkgs/pkgs/applications/networking/ipfs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ipfs/default.nix
@@ -1,16 +1,16 @@
-{ lib, buildGoModule, fetchurl, nixosTests }:
+{ lib, buildGoModule, fetchurl, nixosTests, openssl, pkg-config }:
 
 buildGoModule rec {
   pname = "ipfs";
-  version = "0.12.0"; # When updating, also check if the repo version changed and adjust repoVersion below
+  version = "0.14.0"; # When updating, also check if the repo version changed and adjust repoVersion below
   rev = "v${version}";
 
-  repoVersion = "12"; # Also update ipfs-migrator when changing the repo version
+  passthru.repoVersion = "12"; # Also update ipfs-migrator when changing the repo version
 
   # go-ipfs makes changes to it's source tarball that don't match the git source.
   src = fetchurl {
-    url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz";
-    sha256 = "jWoMm/xIp3Zn/FiHWQ5/q39i6Lh4Fdoi9OdnRVc51Xk=";
+    url = "https://github.com/ipfs/kubo/releases/download/${rev}/kubo-source.tar.gz";
+    hash = "sha256-93jd0r5nWkGrMnaPXoJMf6dHxMrtiWPgkHYaWH109lg=";
   };
 
   # tarball contains multiple files/directories
@@ -25,6 +25,10 @@ buildGoModule rec {
 
   subPackages = [ "cmd/ipfs" ];
 
+  buildInputs = [ openssl ];
+  nativeBuildInputs = [ pkg-config ];
+  tags = [ "openssl" ];
+
   passthru.tests.ipfs = nixosTests.ipfs;
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/ipget/default.nix b/nixpkgs/pkgs/applications/networking/ipget/default.nix
index a8888b8e2958..8164523244b9 100644
--- a/nixpkgs/pkgs/applications/networking/ipget/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ipget/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ipget";
-  version = "0.8.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "ipfs";
     repo = "ipget";
     rev = "v${version}";
-    sha256 = "sha256-qRPke8/CUmGX6v+8qv9JQCUC8T9pjwRRyGmBWvatsJ0=";
+    sha256 = "sha256-JGG3DsmFXmWFOFvJ8pKVhQMRgZ0cbkdtmBjMkLYqOwU=";
   };
 
-  vendorSha256 = "sha256-La9V5B+UDaOswh/R8ad4xsnCF5ewtF7G+uiqnarM4Mg=";
+  vendorSha256 = "sha256-scrueQoqr9nUONnpitUontcX3Xe0KmmUmvxOcpxK7M8=";
 
   postPatch = ''
     # main module (github.com/ipfs/ipget) does not contain package github.com/ipfs/ipget/sharness/dependencies
diff --git a/nixpkgs/pkgs/applications/networking/iptraf/default.nix b/nixpkgs/pkgs/applications/networking/iptraf/default.nix
deleted file mode 100644
index 2881991bf823..000000000000
--- a/nixpkgs/pkgs/applications/networking/iptraf/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{lib, stdenv, fetchurl, ncurses}:
-
-stdenv.mkDerivation rec {
-  pname = "iptraf";
-  version = "3.0.1";
-
-  src = fetchurl {
-    url = "ftp://iptraf.seul.org/pub/iptraf/iptraf-${version}tar.gz";
-    sha256 = "12n059j9iihhpf6spmlaspqzxz3wqan6kkpnhmlj08jdijpnk84m";
-  };
-
-  hardeningDisable = [ "format" ];
-
-  patchPhase = ''
-    sed -i -e 's,#include <linux/if_tr.h>,#include <netinet/if_tr.h>,' src/*
-  '';
-
-  preConfigure = "cd src";
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp iptraf $out/bin
-  '';
-
-  buildInputs = [ncurses];
-
-  meta = {
-    homepage = "http://iptraf.seul.org/";
-    license = lib.licenses.gpl2Plus;
-    description = "Console-based network statistics utility for Linux";
-    platforms = lib.platforms.linux;
-    broken = true; # required isdn headers have been removed from the linux kernel
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/irc/bip/default.nix b/nixpkgs/pkgs/applications/networking/irc/bip/default.nix
index a7b57aa31028..c144b4bf5853 100644
--- a/nixpkgs/pkgs/applications/networking/irc/bip/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/bip/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0q942g9lyd8pjvqimv547n6vik5759r9npw3ws3bdj4ixxqhz59w";
   };
 
-  buildInputs = [ bison flex autoconf automake openssl ];
+  nativeBuildInputs = [ autoconf automake ];
+  buildInputs = [ bison flex openssl ];
 
   # includes an important security patch
   patches = [
diff --git a/nixpkgs/pkgs/applications/networking/irc/communi/default.nix b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
index c8c36049a2a4..cbd099c33bc7 100644
--- a/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
@@ -1,23 +1,41 @@
-{ fetchFromGitHub, libcommuni, qtbase, qmake, lib, stdenv, wrapQtAppsHook }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, libcommuni
+, qmake
+, qtbase
+, wrapQtAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "communi";
-  version = "3.5.0";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "communi";
     repo = "communi-desktop";
-    rev = "v${version}";
-    sha256 = "sha256-Ua5uXs2mEDrljvtIcdn1Kb+l5NJtRpB0AAbBz+DU+YE=";
+    # Without https://github.com/communi/communi-desktop/pull/146 fetching fails with
+    #     fatal: unable to connect to github.com:
+    #     github.com[0: 140.82.112.3]: errno=Connection timed out
+    rev = "5d813dc6e64a623cd5d78f024c8a0720a5155a28";
+    hash = "sha256-ci91Bf0EkhlPDO+NcpnMmT/vE41i5RD2mXbRAnMB++M=";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ qmake ]
-    ++ lib.optional stdenv.isDarwin wrapQtAppsHook;
+  nativeBuildInputs = [
+    qmake
+    wrapQtAppsHook
+  ];
 
-  buildInputs = [ libcommuni qtbase ];
+  buildInputs = [
+    libcommuni
+    qtbase
+  ];
 
-  dontWrapQtApps = true;
+  # libCommuni.dylib is installed in $out/Applications/Communi.app/Contents/Frameworks/ on Darwin
+  # Wrapper hook thinks it's a binary because it's in $out/Applications, wraps it with a shell script
+  # So we manually call the wrapper script on just the binary
+  dontWrapQtApps = stdenv.isDarwin;
 
   preConfigure = ''
     export QMAKEFEATURES=${libcommuni}/features
@@ -29,20 +47,22 @@ stdenv.mkDerivation rec {
     "COMMUNI_INSTALL_ICONS=${placeholder "out"}/share/icons/hicolor"
     "COMMUNI_INSTALL_DESKTOP=${placeholder "out"}/share/applications"
     "COMMUNI_INSTALL_THEMES=${placeholder "out"}/share/communi/themes"
-    (if stdenv.isDarwin
-      then [ "COMMUNI_INSTALL_BINS=${placeholder "out"}/Applications" ]
-      else [ "COMMUNI_INSTALL_BINS=${placeholder "out"}/bin" ])
+    "COMMUNI_INSTALL_BINS=${placeholder "out"}/${if stdenv.isDarwin then "Applications" else "bin"}"
   ];
 
-  postInstall = if stdenv.isDarwin then ''
-    # Nix qmake does not add the bundle rpath by default.
-    install_name_tool \
-      -add_rpath @executable_path/../Frameworks \
-      $out/Applications/Communi.app/Contents/MacOS/Communi
-  '' else ''
-    substituteInPlace "$out/share/applications/communi.desktop" \
-      --replace "/usr/bin" "$out/bin"
-  '';
+  postInstall =
+    if stdenv.isDarwin then ''
+      # Nix qmake does not add the bundle rpath by default.
+      install_name_tool \
+        -add_rpath @executable_path/../Frameworks \
+        $out/Applications/Communi.app/Contents/MacOS/Communi
+
+      # Do not remove until wrapQtAppsHook doesn't wrap dylibs in app bundles anymore
+      wrapQtApp $out/Applications/Communi.app/Contents/MacOS/Communi
+    '' else ''
+      substituteInPlace "$out/share/applications/communi.desktop" \
+        --replace "/usr/bin" "$out/bin"
+    '';
 
   preFixup = ''
     rm -rf lib
diff --git a/nixpkgs/pkgs/applications/networking/irc/convos/default.nix b/nixpkgs/pkgs/applications/networking/irc/convos/default.nix
index 275cf4c726e7..7b2a8c3f2470 100644
--- a/nixpkgs/pkgs/applications/networking/irc/convos/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/convos/default.nix
@@ -6,13 +6,13 @@ with lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "convos";
-  version = "6.42";
+  version = "7.02";
 
   src = fetchFromGitHub {
     owner = "convos-chat";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-W7ZVZUCNllpFIQpNz2m/8VFOXDZfuppB+g3qibY6wt8=";
+    sha256 = "sha256-i8lDK5/Whi5uo2/Qqh5jgJGLuuHn7kdrfvr+9Ktzp/8=";
   };
 
   nativeBuildInputs = [ makeWrapper ]
@@ -20,7 +20,7 @@ perlPackages.buildPerlPackage rec {
 
   buildInputs = with perlPackages; [
     CryptPassphrase CryptPassphraseArgon2 CryptPassphraseBcrypt
-    FileHomeDir FileReadBackwards HTTPAcceptLanguage
+    FileHomeDir FileReadBackwards HTTPAcceptLanguage SyntaxKeywordTry FutureAsyncAwait
     IOSocketSSL IRCUtils JSONValidator LinkEmbedder ModuleInstall
     Mojolicious MojoliciousPluginOpenAPI MojoliciousPluginSyslog MojoliciousPluginWebpack
     ParseIRC TextMarkdownHoedown TimePiece UnicodeUTF8
@@ -36,6 +36,10 @@ perlPackages.buildPerlPackage rec {
   '';
 
   preCheck = ''
+    # Remove unstable test (PR #176640)
+    #
+    rm t/plugin-auth-header.t
+
     # Remove online test
     #
     rm t/web-pwa.t
diff --git a/nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix b/nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix
index 87d4b8777c3f..ebb9d2ad15a6 100644
--- a/nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix
@@ -1,14 +1,12 @@
 { lib
-, buildGoPackage
+, buildGoModule
 , fetchFromGitHub
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "ircdog";
   version = "0.3.0";
 
-  goPackagePath = "github.com/ergochat/ircdog";
-
   src = fetchFromGitHub {
     owner = "goshuirc";
     repo = pname;
@@ -16,6 +14,7 @@ buildGoPackage rec {
     sha256 = "sha256-x3ihWLgVYu17vG1xQTgIr4TSkeZ467TZBV1fPTPnZgw=";
     fetchSubmodules = true;
   };
+  vendorSha256 = null;
 
   meta = with lib; {
     description = "ircdog is a simple wrapper over the raw IRC protocol that can respond to pings, and interprets formatting codes";
diff --git a/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix b/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix
index 8dbd2cd73ee4..b04cd2e07aab 100644
--- a/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix
@@ -1,40 +1,57 @@
-{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, pkg-config, ncurses, glib, openssl, perl, libintl, libgcrypt, libotr, git }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, glib
+, libgcrypt
+, libintl
+, libotr
+, libtool
+, meson
+, ncurses
+, ninja
+, openssl
+, perl
+, pkg-config
+}:
 
 stdenv.mkDerivation rec {
   pname = "irssi";
-  version = "1.2.3";
-
+  version = "1.4.2";
 
   src = fetchFromGitHub {
-    "owner" = "irssi";
-    "repo" = "irssi";
-    "rev" = "91dc3e4dfa1a9558c5a7fe0ea982cb9df0e2de65";
-    "sha256" = "efnE4vuDd7TnOBxMPduiV0/nez1jVhTjbJ0vzN4ZMcg=";
-    "leaveDotGit" = true;
+    owner = "irssi";
+    repo = "irssi";
+    rev = version;
+    hash = "sha256-dQZ/CeBfcfWGjKPF3fR62JDqyEXGv5hd9VT4OEbgJhQ=";
   };
 
-  nativeBuildInputs = [ pkg-config autoconf automake libtool git ];
-  buildInputs = [ ncurses glib openssl perl libintl libgcrypt libotr ];
-
-  enableParallelBuilding = true;
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
 
-  preConfigure = ''
-    NOCONFIGURE=1 ./autogen.sh
-  '';
+  buildInputs = [
+    glib
+    libgcrypt
+    libintl
+    libotr
+    ncurses
+    openssl
+    perl
+  ];
 
   configureFlags = [
-    "--with-proxy"
-    "--with-bot"
-    "--with-perl=yes"
-    "--with-otr=yes"
-    "--enable-true-color"
+    "-Dwith-proxy=yes"
+    "-Dwith-bot=yes"
+    "-Dwith-perl=yes"
   ];
 
-  meta = {
-    homepage    = "https://irssi.org";
-    description = "A terminal based IRC client";
-    platforms   = lib.platforms.unix;
-    maintainers = with lib.maintainers; [ lovek323 ];
-    license     = lib.licenses.gpl2Plus;
+  meta = with lib; {
+    description = "Terminal based IRC client";
+    homepage = "https://irssi.org";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ fab lovek323 ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix b/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix
index a3ee4e4ab9c7..b26b2cb1daf4 100644
--- a/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix
@@ -1,34 +1,28 @@
-{ lib, stdenv, fetchFromGitHub, irssi, gmp, automake, autoconf, libtool, openssl, glib, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, glib, openssl, irssi }:
 
 stdenv.mkDerivation rec {
   pname = "fish-irssi";
-  version = "unstable-2013-04-13";
+  version = "unstable-2021-04-16";
 
   src = fetchFromGitHub {
     owner = "falsovsky";
     repo = "FiSH-irssi";
-    rev = "e98156bebd8c150bf100b3a0356e7103bb5c20e6";
-    sha256 = "0mqq7q3rnkzx4j352g1l8sv3g687d76ikjl9c7g6xw96y91kqvdp";
+    rev = "fcc484f09ce6941ba2e499605270593ddd13b81a";
+    hash = "sha256-KIPnz17a0CFfoPO2dZz90j+wG/dR4pv5d0iZMRf7Vkc=";
   };
 
-  preConfigure = ''
-    cp -a "${irssi.src}" "./${irssi.name}"
-    configureFlags="$configureFlags --with-irssi-source=`pwd`/${irssi.name}"
+  patches = [ ./irssi-include-dir.patch ];
 
-    ./regen.sh
-  '';
+  nativeBuildInputs = [ cmake pkg-config ];
 
-  installPhase = ''
-    mkdir -p $out/lib/irssi/modules
-    cp src/.libs/libfish.so $out/lib/irssi/modules
-  '';
+  buildInputs = [ glib openssl ];
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ gmp automake autoconf libtool openssl glib ];
+  cmakeFlags = [ "-DIRSSI_INCLUDE_PATH:PATH=${irssi}/include" ];
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/falsovsky/FiSH-irssi";
-    license = lib.licenses.unfree; # I can't find any mention of license
-    maintainers = with lib.maintainers; [viric];
+    license = licenses.mit;
+    maintainers = with maintainers; [ viric ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/irc/irssi/fish/irssi-include-dir.patch b/nixpkgs/pkgs/applications/networking/irc/irssi/fish/irssi-include-dir.patch
new file mode 100644
index 000000000000..0a51ec327bdc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/irssi/fish/irssi-include-dir.patch
@@ -0,0 +1,33 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 601b92b..b440f83 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -36,27 +36,10 @@ if(OPENSSL_FOUND)
+     MESSAGE(STATUS "Using OpenSSL ${OPENSSL_VERSION}")
+ ENDIF()
+ 
+-# Sets a variable that the user can set with 
+-# cmake -DIRSSI_INCLUDE_DIR:PATH=/path/to/irssi/includes .
+-SET(IRSSI_INCLUDE_DIR "" CACHE PATH "Path to irssi include files")
+-
+-# Tries to find the irssi include files in the most common places,
+-# and in the user defined directory
+-FIND_PATH(IRSSI_INCLUDE_PATH
+-    NAMES irssi-config.h src/common.h
+-    PATHS /usr/include/irssi /usr/local/include/irssi ${IRSSI_INCLUDE_DIR}
+-)
+-
+-# Bail out if the required irssi files werent found
+-IF(NOT IRSSI_INCLUDE_PATH)
+-    MESSAGE(SEND_ERROR "Could not detect the irssi include files. Please run:\n# cmake -DIRSSI_INCLUDE_DIR:PATH=/path/to/irssi/includes .")
+-    RETURN()
+-ENDIF()
+-
+ MESSAGE(STATUS "irssi includes were found on ${IRSSI_INCLUDE_PATH}")
+ 
+ # Add the weirdo irssi includes directories
+-INCLUDE_DIRECTORIES(${IRSSI_INCLUDE_PATH} ${IRSSI_INCLUDE_PATH}/src ${IRSSI_INCLUDE_PATH}/src/fe-common/core ${IRSSI_INCLUDE_PATH}/src/core)
++INCLUDE_DIRECTORIES(${IRSSI_INCLUDE_PATH} ${IRSSI_INCLUDE_PATH}/irssi ${IRSSI_INCLUDE_PATH}/irssi/src ${IRSSI_INCLUDE_PATH}/irssi/src/fe-common/core ${IRSSI_INCLUDE_PATH}/irssi/src/core)
+ 
+ MESSAGE(STATUS "The module will be installed by default to ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/irssi/modules")
+ MESSAGE(STATUS "You can change it with 'cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr .'")
diff --git a/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix b/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix
deleted file mode 100644
index 3c80ef09aaf7..000000000000
--- a/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix
+++ /dev/null
@@ -1,77 +0,0 @@
-{ mkDerivation
-, lib
-, fetchurl
-, fetchpatch
-, extra-cmake-modules
-, kdoctools
-, kbookmarks
-, karchive
-, kconfig
-, kconfigwidgets
-, kcoreaddons
-, kcrash
-, kdbusaddons
-, kemoticons
-, kglobalaccel
-, ki18n
-, kiconthemes
-, kidletime
-, kitemviews
-, knotifications
-, knotifyconfig
-, kwindowsystem
-, kio
-, kparts
-, kwallet
-, solid
-, sonnet
-, phonon
-}:
-
-mkDerivation rec {
-  pname = "konversation";
-  version = "1.7.7";
-
-  src = fetchurl {
-    url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz";
-    sha256 = "R+wWHBOFmBqLmdKMQZ6Iskgj3AG2j7FiOJSBiXTCGKc=";
-  };
-
-  buildInputs = [
-    kbookmarks
-    karchive
-    kconfig
-    kconfigwidgets
-    kcoreaddons
-    kcrash
-    kdbusaddons
-    kdoctools
-    kemoticons
-    kglobalaccel
-    ki18n
-    kiconthemes
-    kidletime
-    kitemviews
-    knotifications
-    knotifyconfig
-    kwindowsystem
-    kio
-    kparts
-    kwallet
-    solid
-    sonnet
-    phonon
-  ];
-
-  nativeBuildInputs = [
-    extra-cmake-modules
-    kdoctools
-  ];
-
-  meta = {
-    description = "Integrated IRC client for KDE";
-    license = with lib.licenses; [ gpl2 ];
-    maintainers = with lib.maintainers; [ fridh ];
-    homepage = "https://konversation.kde.org";
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix b/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix
index 0fc0284a183e..a76a27607b4f 100644
--- a/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "senpai";
-  version = "unstable-2021-12-14";
+  version = "unstable-2022-07-25";
 
   src = fetchFromSourcehut {
     owner = "~taiite";
     repo = "senpai";
-    rev = "8091752a67781273944e7a79a803b7a671378313";
-    sha256 = "sha256-tZp0ra/Sq/5MAFlAFHPJ94jYxtHbDiG1wSD4NOH1x7I=";
+    rev = "f13aa044de9d7b8922a12e895f3ff3f86b60e939";
+    sha256 = "sha256-siQoRgbJIVtBXqrxJzdVABnDgdHqW5FLSJpBrL0iVuU=";
   };
 
-  vendorSha256 = "sha256-xkJh7k8GZmoZqE0HgbFp2xMJQOVDkPEXOZEl6bJZz1A=";
+  vendorSha256 = "sha256-hgojB1D0/SZWLEzJ48EBoT/InYYmqD/1qoTknfk/aTo=";
 
   subPackages = [
     "cmd/senpai"
diff --git a/nixpkgs/pkgs/applications/networking/irc/srain/default.nix b/nixpkgs/pkgs/applications/networking/irc/srain/default.nix
index 2fb6fed15ca8..1d30656854a1 100644
--- a/nixpkgs/pkgs/applications/networking/irc/srain/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/srain/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "srain";
-  version = "1.3.2";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "SrainApp";
     repo = "srain";
     rev = version;
-    sha256 = "sha256-JsXReGmdBtzMXhrT1cFlkBbw8j/SxzgXSeHcHlns2po=";
+    sha256 = "sha256-zkSePzmbi/QnUYJO/henkxfhuN+BXTXtKGPW7M2QyBY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
index 7219649ccf79..d310b60fbeea 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
@@ -28,14 +28,14 @@ let
   in
     assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins;
     stdenv.mkDerivation rec {
-      version = "3.4.1";
+      version = "3.6";
       pname = "weechat";
 
       hardeningEnable = [ "pie" ];
 
       src = fetchurl {
         url = "https://weechat.org/files/src/weechat-${version}.tar.bz2";
-        sha256 = "sha256-TJ4JI97WiobkBxgnkUGh/XQAIlDV+PDgIxCzTqefiMw=";
+        sha256 = "sha256-GkYN/Y4LQQr7GdSDu0ucXXM9wWPAqKD1txJXkOhJMDc=";
       };
 
       outputs = [ "out" "man" ] ++ map (p: p.name) enabledPlugins;
@@ -88,7 +88,7 @@ let
           on https://nixos.org/nixpkgs/manual/#sec-weechat .
         '';
         license = lib.licenses.gpl3;
-        maintainers = with lib.maintainers; [ lovek323 lheckemann ];
+        maintainers = with lib.maintainers; [ lovek323 ];
         platforms = lib.platforms.unix;
       };
     }
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix
index a3cf55d6a034..f84e2307acb1 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix
@@ -11,6 +11,8 @@
 
   url_hint = callPackage ./url_hint { };
 
+  weechat-grep = callPackage ./weechat-grep { };
+
   weechat-matrix-bridge = callPackage ./weechat-matrix-bridge {
     inherit (luaPackages) cjson luaffi;
   };
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix
index 49e74e0203ac..c20d8f0a8079 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "weechat-autosort";
-  version = "3.8";
+  version = "3.9";
 
   src = fetchFromGitHub {
     owner = "de-vri-es";
     repo = pname;
-    rev = version;
-    sha256 = "0a2gc8nhklvlivradhqy2pkymsqyy01pvzrmwg60cln8snmcqpd5";
+    rev = "d62fa8633015ebc2676060fcdae88c402977be46";
+    sha256 = "sha256-doYDRIWiuHam2i3r3J3BZuWEhopoN4jms/xPXGyypok=";
   };
 
   passthru.scripts = [ "autosort.py" ];
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Autosort is a weechat script to automatically or manually keep your buffers sorted";
     homepage = "https://github.com/de-vri-es/weechat-autosort";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ emily ];
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ emily flokli ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-grep/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-grep/default.nix
new file mode 100644
index 000000000000..efc575bd3e29
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-grep/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "weechat-grep";
+  version = "0.8.5";
+
+  src = fetchurl {
+    url = "https://github.com/weechat/scripts/raw/5ee93d56f371c829d2798a5446a14292c180f70b/python/grep.py";
+    sha256 = "sha256-EVcoxjTTjXOYD8DppD+IULxpKerEdolmlgphrulFGC0=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    mkdir -p $out/share
+    cp $src $out/share/grep.py
+  '';
+
+  passthru = {
+    scripts = [ "grep.py" ];
+  };
+
+  meta = with lib; {
+    description = "Search in Weechat buffers and logs (for Weechat 0.3.*)";
+    homepage = "https://github.com/weechat/scripts/blob/master/python/grep.py";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ flokli ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
index a900a469e031..601cb127ff1f 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
@@ -2,6 +2,7 @@
 , lib
 , python
 , fetchFromGitHub
+, fetchpatch
 , pyopenssl
 , webcolors
 , future
@@ -18,7 +19,7 @@ let
   scriptPython = python.withPackages (ps: with ps; [
     aiohttp
     requests
-    python_magic
+    python-magic
   ]);
 
   version = "0.3.0";
@@ -33,6 +34,11 @@ in buildPythonPackage {
     hash = "sha256-o4kgneszVLENG167nWnk2FxM+PsMzi+PSyMUMIktZcc=";
   };
 
+  patches = fetchpatch {
+    url = "https://patch-diff.githubusercontent.com/raw/poljar/weechat-matrix/pull/309.patch";
+    sha256 = "sha256-Grdht+TOFvCYRpL7uhPivqL7YzLoNVF3iQNHgbv1Te0=";
+  };
+
   propagatedBuildInputs = [
     pyopenssl
     webcolors
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix
index 987271e4ffa2..fd5f376ad263 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix
@@ -24,6 +24,9 @@ let
 
     buildInputs = [ gmp ];
 
+    # Tests are relying on old Python 2 modules.
+    doCheck = false;
+
     preConfigure = ''
       sed -i 's,/usr/include,/no-such-dir,' configure
       sed -i "s!,'/usr/include/'!!" setup.py
@@ -66,5 +69,9 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ oxzi ];
     description = "WeeChat script for Off-the-Record messaging";
+    knownVulnerabilities = [
+      "There is no upstream release since 2018-03."
+      "Utilizes deprecated and vulnerable pycrypto library with Debian patches from 2020-04."
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch b/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch
index 16e65be00a25..2ecba77920eb 100644
--- a/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch
+++ b/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch
@@ -52,7 +52,7 @@
 -fi
 -unset cf_openssl_basedir
 +SSL_INCLUDES="-I@openssl.dev@/include"
-+SSL_LIBS="-L@openssl.out@/lib"
++SSL_LIBS="-L@openssl-lib@/lib"
  
  save_CXX="$CXX"
  CXX="$CXX $SSL_INCLUDES"
diff --git a/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix b/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix
index 30aec18c107f..b16efb03655f 100644
--- a/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix
@@ -12,9 +12,9 @@ stdenv.mkDerivation rec {
   patches = [ ./configure.patch ./dlopen.patch ];
   postPatch = ''
     substituteInPlace configure        --subst-var-by openssl.dev ${openssl.dev} \
-                                       --subst-var-by openssl.out ${openssl.out}
-    substituteInPlace src/libssl.cc    --subst-var-by openssl ${openssl.out}
-    substituteInPlace src/libcrypto.cc --subst-var-by openssl ${openssl.out}
+                                       --subst-var-by openssl-lib ${lib.getLib openssl}
+    substituteInPlace src/libssl.cc    --subst-var-by openssl ${lib.getLib openssl}
+    substituteInPlace src/libcrypto.cc --subst-var-by openssl ${lib.getLib openssl}
   '';
   installPhase = ''
     mkdir -p $out/bin
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "An IRC channel management bot written purely in C/C++";
     longDescription = ''
       Wraith is an IRC channel management bot written purely in C/C++. It has
diff --git a/nixpkgs/pkgs/applications/networking/jmeter/default.nix b/nixpkgs/pkgs/applications/networking/jmeter/default.nix
index 1e7a78e4d435..935c4ae571ef 100644
--- a/nixpkgs/pkgs/applications/networking/jmeter/default.nix
+++ b/nixpkgs/pkgs/applications/networking/jmeter/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "jmeter";
-  version = "5.4.3";
+  version = "5.5";
   src = fetchurl {
     url = "https://archive.apache.org/dist/jmeter/binaries/apache-${pname}-${version}.tgz";
-    sha256 = "sha256-clISFMDLh9rFuXTBxug6F6AJx/03e1W/I1JcckA7He4=";
+    sha256 = "sha256-YOicfEUjcxRn/bcX8z1hQIbBDwMWNpy6pFZQrhxALh8=";
   };
 
   nativeBuildInputs = [ makeWrapper jre ];
diff --git a/nixpkgs/pkgs/applications/networking/jnetmap/default.nix b/nixpkgs/pkgs/applications/networking/jnetmap/default.nix
index e6332832e3ec..2a686fdd8b9e 100644
--- a/nixpkgs/pkgs/applications/networking/jnetmap/default.nix
+++ b/nixpkgs/pkgs/applications/networking/jnetmap/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Graphical network monitoring and documentation tool";
     homepage = "http://www.rakudave.ch/jnetmap/";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3Plus;
     # Upstream supports macOS and Windows too.
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/juju/default.nix b/nixpkgs/pkgs/applications/networking/juju/default.nix
index b22cea57987c..ef7b33061dc9 100644
--- a/nixpkgs/pkgs/applications/networking/juju/default.nix
+++ b/nixpkgs/pkgs/applications/networking/juju/default.nix
@@ -2,20 +2,24 @@
 
 buildGoModule rec {
   pname = "juju";
-  version = "2.9.27";
+  version = "2.9.31";
 
   src = fetchFromGitHub {
     owner = "juju";
     repo = "juju";
     rev = "juju-${version}";
-    sha256 = "sha256-4G+veQkPY6n/uRMsBWQgig/6IDc0Y2nXDpMUyC1ShF4=";
+    sha256 = "sha256-vRe7H7wtZUTsAJa6QVP+BTDDkJsfgIlBVpGcvtU1e0g=";
   };
 
-  vendorSha256 = "sha256-Ieaf+Qp/7/6nv2ftHY3pbtOg+t7dYAuMv4BvhRaAZ9E=";
+  vendorSha256 = "sha256-Tx5RazLrNZ5GMRu4/jKhuNN7m1mQw4V7TBcIed/Gssg=";
 
   # Disable tests because it attempts to use a mongodb instance
   doCheck = false;
 
+  subPackages = [
+    "cmd/juju"
+  ];
+
   meta = with lib; {
     description = "Open source modelling tool for operating software in the cloud";
     homepage = "https://juju.is";
diff --git a/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix b/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix
index 2f0f3bd74ff1..059a4585c7d3 100644
--- a/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix
@@ -2,23 +2,44 @@
 , fetchFromGitHub
 , python3
 , wrapQtAppsHook
+, nixosTests
 }:
 
-python3.pkgs.buildPythonApplication rec {
+let
+  inherit (pypkgs) makePythonPath;
+
+  pypkgs = (python3.override {
+    packageOverrides = self: super: {
+      # Use last available version of maestral that still supports PyQt5
+      # Remove this override when PyQt6 is available
+      maestral = super.maestral.overridePythonAttrs (old: rec {
+        version = "1.5.3";
+        src = fetchFromGitHub {
+          owner = "SamSchott";
+          repo = "maestral";
+          rev = "refs/tags/v${version}";
+          hash = "sha256-Uo3vcYez2qSq162SSKjoCkwygwR5awzDceIq8/h3dao=";
+        };
+      });
+    };
+  }).pkgs;
+
+in
+pypkgs.buildPythonApplication rec {
   pname = "maestral-qt";
   version = "1.5.3";
-  disabled = python3.pkgs.pythonOlder "3.6";
+  disabled = pypkgs.pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "SamSchott";
     repo = "maestral-qt";
-    rev = "v${version}";
+    rev = "refs/tags/v${version}";
     sha256 = "sha256-zaG9Zwz9S/SVb7xDa7eXkjLNt1BhA1cQ3I18rVt+8uQ=";
   };
 
   format = "pyproject";
 
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = with pypkgs; [
     click
     markdown2
     maestral
@@ -35,8 +56,8 @@ python3.pkgs.buildPythonApplication rec {
     "\${qtWrapperArgs[@]}"
 
     # Add the installed directories to the python path so the daemon can find them
-    "--prefix" "PYTHONPATH" ":" "${lib.concatStringsSep ":" (map (p: p + "/lib/${python3.libPrefix}/site-packages") (python3.pkgs.requiredPythonModules python3.pkgs.maestral.propagatedBuildInputs))}"
-    "--prefix" "PYTHONPATH" ":" "${python3.pkgs.maestral}/lib/${python3.libPrefix}/site-packages"
+    "--prefix PYTHONPATH : ${makePythonPath (pypkgs.requiredPythonModules pypkgs.maestral.propagatedBuildInputs)}"
+    "--prefix PYTHONPATH : ${makePythonPath [ pypkgs.maestral ]}"
   ];
 
   # no tests
@@ -44,10 +65,12 @@ python3.pkgs.buildPythonApplication rec {
 
   pythonImportsCheck = [ "maestral_qt" ];
 
+  passthru.tests.maestral = nixosTests.maestral;
+
   meta = with lib; {
     description = "GUI front-end for maestral (an open-source Dropbox client) for Linux";
     license = licenses.mit;
-    maintainers = with maintainers; [ peterhoeg ];
+    maintainers = with maintainers; [ peterhoeg sfrijters ];
     platforms = platforms.linux;
     homepage = "https://maestral.app";
   };
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix
index 172cea3d061d..394120ef8b29 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -1,21 +1,27 @@
-{ lib, buildGoModule, fetchFromSourcehut
-, ncurses, notmuch, scdoc
-, python3, w3m, dante
+{ lib
+, buildGoModule
+, fetchFromSourcehut
+, ncurses
+, notmuch
+, scdoc
+, python3
+, w3m
+, dante
 }:
 
 buildGoModule rec {
   pname = "aerc";
-  version = "0.7.1";
+  version = "0.11.0";
 
   src = fetchFromSourcehut {
     owner = "~rjarry";
     repo = pname;
     rev = version;
-    sha256 = "sha256-wiylBBqnivDnMUyCg3Zateu4jcjicTfrQFALT8dg5No=";
+    sha256 = "sha256-w0h6BNuGwXV1CzyvXvsRs2MXHKLbK3EUaK4mKiuNBxc=";
   };
 
   proxyVendor = true;
-  vendorSha256 = "sha256-hpGd78PWk3tIwB+TPmPy0gKkU8+t5NTm9RzPuLae+Fk=";
+  vendorSha256 = "sha256-vw9lDIZMswh/vrF1g8FvZ/faN5jWWPwfgnm66EWaohw=";
 
   doCheck = false;
 
@@ -28,22 +34,25 @@ buildGoModule rec {
     ./runtime-sharedir.patch
   ];
 
+  postPatch = ''
+    substituteAllInPlace config/aerc.conf
+    substituteAllInPlace config/config.go
+    substituteAllInPlace doc/aerc-config.5.scd
+  '';
+
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
   pythonPath = [
     python3.pkgs.colorama
   ];
 
   buildInputs = [ python3 notmuch ];
 
-  buildPhase = "
-    runHook preBuild
-    # we use make instead of go build
-    runHook postBuild
-  ";
-
   installPhase = ''
     runHook preInstall
-    make PREFIX=$out GOFLAGS="$GOFLAGS -tags=notmuch" install
-    wrapPythonProgramsIn $out/share/aerc/filters "$out $pythonPath"
+
+    make $makeFlags GOFLAGS="$GOFLAGS -tags=notmuch" install
+
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
index e08161e61eb6..d5e40edeb661 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
@@ -1,60 +1,90 @@
-From c715a96c693baa0e6c8ab3c96b6c10e0a40bf7af Mon Sep 17 00:00:00 2001
-From: Tadeo Kondrak <me@tadeo.ca>
-Date: Thu, 21 Jan 2021 10:40:49 +0100
-Subject: [PATCH] Fix aerc breaking every time the package is rebuilt.
-
-On NixOS, the SHAREDIR changes on every rebuild to the package, but aerc
-fills it in as part of the default config and then installs that config
-to the users home folder. Fix this by not substituting @SHAREDIR@ in the
-default config until runtime.
----
- Makefile         |  2 +-
- config/config.go | 13 +++++++++++++
- 2 files changed, 14 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 77f5e61..98cbc11 100644
---- a/Makefile
-+++ b/Makefile
-@@ -23,7 +23,7 @@ aerc: $(GOSRC)
- 		-o $@
-
- aerc.conf: config/aerc.conf.in
--	sed -e 's:@SHAREDIR@:$(SHAREDIR):g' > $@ < config/aerc.conf.in
-+	cat config/aerc.conf.in > $@
-
- debug: $(GOSRC)
- 	GOFLAGS="-tags=notmuch" \
+diff --git a/config/aerc.conf b/config/aerc.conf
+index fbbf587..ede1a03 100644
+--- a/config/aerc.conf
++++ b/config/aerc.conf
+@@ -107,8 +107,7 @@ next-message-on-delete=true
+ #
+ #   ${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets
+ #   ${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets
+-#   /usr/local/share/aerc/stylesets
+-#   /usr/share/aerc/stylesets
++#   @out@/share/aerc/stylesets
+ #
+ # default: ""
+ stylesets-dirs=
+@@ -254,8 +253,7 @@ new-email=
+ #
+ #   ${XDG_CONFIG_HOME:-~/.config}/aerc/templates
+ #   ${XDG_DATA_HOME:-~/.local/share}/aerc/templates
+-#   /usr/local/share/aerc/templates
+-#   /usr/share/aerc/templates
++#   @out@/share/aerc/templates
+ #
+ # default: ""
+ template-dirs=
 diff --git a/config/config.go b/config/config.go
-index 87d183a..cb6611a 100644
+index 2120310..92b7655 100644
 --- a/config/config.go
 +++ b/config/config.go
-@@ -470,6 +470,16 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
- 			return nil, err
- 		}
+@@ -331,8 +331,8 @@ func buildDefaultDirs() []string {
  	}
-+	if sec, err := file.GetSection("templates"); err == nil {
-+		if key, err := sec.GetKey("template-dirs"); err == nil {
-+			sec.NewKey("template-dirs", strings.ReplaceAll(key.String(), "@SHAREDIR@", sharedir))
-+		}
-+	}
-+	if sec, err := file.GetSection("ui"); err == nil {
-+		if key, err := sec.GetKey("stylesets-dirs"); err == nil {
-+			sec.NewKey("stylesets-dirs", strings.ReplaceAll(key.String(), "@SHAREDIR@", sharedir))
-+		}
-+	}
- 	file.NameMapper = mapName
- 	config := &AercConfig{
- 		Bindings: BindingConfig{
-@@ -547,6 +557,9 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
- 		return nil, err
- 	}
-
-+	for i, filter := range config.Filters {
-+		config.Filters[i].Command = strings.ReplaceAll(filter.Command, "@SHAREDIR@", sharedir)
-+	}
- 	if ui, err := file.GetSection("general"); err == nil {
- 		if err := ui.MapTo(&config.General); err != nil {
- 			return nil, err
---
-2.30.0
+ 
+ 	// Add fixed fallback locations
+-	defaultDirs = append(defaultDirs, "/usr/local/share/aerc")
+-	defaultDirs = append(defaultDirs, "/usr/share/aerc")
++	defaultDirs = append(defaultDirs, "@out@/local/share/aerc")
++	defaultDirs = append(defaultDirs, "@out@/share/aerc")
+ 
+ 	return defaultDirs
+ }
+diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd
+index 885c4f8..77a853e 100644
+--- a/doc/aerc-config.5.scd
++++ b/doc/aerc-config.5.scd
+@@ -12,7 +12,7 @@ account credentials. We look for these files in your XDG config home plus
+ "aerc", which defaults to ~/.config/aerc.
+ 
+ Examples of these config files are typically included with your installation of
+-aerc and are usually installed in /usr/share/aerc.
++aerc and are usually installed in @out@/share/aerc.
+ 
+ Each file uses the _ini_ format, and consists of sections with keys and values.
+ A line beginning with # is considered a comment and ignored, as are empty lines.
+@@ -221,8 +221,7 @@ These options are configured in the *[ui]* section of aerc.conf.
+ 	```
+ 	${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets
+ 	${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets
+-	/usr/local/share/aerc/stylesets
+-	/usr/share/aerc/stylesets
++	@out@/share/aerc/stylesets
+ 	```
+ 
+ 	Default: ""
+@@ -381,7 +380,7 @@ against (non-case-sensitive) and a comma, e.g. subject,text will match a
+ subject which contains "text". Use header,~regex to match against a regex.
+ 
+ aerc ships with some default filters installed in the share directory (usually
+-_/usr/share/aerc/filters_). Note that these may have additional dependencies
++_@out@/share/aerc/filters_). Note that these may have additional dependencies
+ that aerc does not have alone.
+ 
+ ## TRIGGERS
+@@ -407,7 +406,7 @@ and forward commands can be called with the -T flag with the name of the
+ template name.
+ 
+ aerc ships with some default templates installed in the share directory (usually
+-_/usr/share/aerc/templates_).
++_@out@/share/aerc/templates_).
+ 
+ These options are configured in the *[templates]* section of aerc.conf.
+ 
+@@ -419,8 +418,7 @@ These options are configured in the *[templates]* section of aerc.conf.
+ 	```
+ 	${XDG_CONFIG_HOME:-~/.config}/aerc/templates
+ 	${XDG_DATA_HOME:-~/.local/share}/aerc/templates
+-	/usr/local/share/aerc/templates
+-	/usr/share/aerc/templates
++	@out@/share/aerc/templates
+ 	```
+ 
+ 	Default: ""
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/alot/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/alot/default.nix
index cb49829dce07..d8a4d1066ecb 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/alot/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/alot/default.nix
@@ -40,7 +40,7 @@ with python3.pkgs; buildPythonApplication rec {
     file
     gpgme
     notmuch2
-    python_magic
+    python-magic
     service-identity
     twisted
     urwid
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix
index 47e295de29d3..739f45fd4ee9 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, gnome, gmime3, webkitgtk, ronn
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, gnome, gmime3, webkitgtk, ronn
 , libsass, notmuch, boost, wrapGAppsHook, glib-networking, protobuf
 , gtkmm3, libpeas, gsettings-desktop-schemas, gobject-introspection, python3
 
@@ -20,6 +20,15 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-6xQniOLNUk8tDkooDN3Tp6sb43GqoynO6+fN9yhNqZ4=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "symbolic-icons.patch";
+      url =
+        "https://github.com/astroidmail/astroid/commit/7c2022f06a4146ad62e858bcaacdb4ee817851b9.patch";
+      hash = "sha256-hZHOg1wUR8Kpd6017fWzhMmG+/WQxSOCnsiyIvUcpbU=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake ronn pkg-config wrapGAppsHook gobject-introspection
     python3 python3.pkgs.wrapPython
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index 93dfc4d8a1db..93160a6e7b5e 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchgit, fetchpatch, wrapGAppsHook, autoreconfHook, bison, flex
+{ stdenv, lib, fetchgit, wrapGAppsHook, autoreconfHook, bison, flex
 , curl, gtk3, pkg-config, python3, shared-mime-info
 , glib-networking, gsettings-desktop-schemas
 
@@ -33,6 +33,7 @@
 , enablePluginDillo ? true
 , enablePluginFancy ? true, libsoup, webkitgtk
 , enablePluginFetchInfo ? true
+, enablePluginKeywordWarner ? true
 , enablePluginLibravatar ? enablePluginRavatar
 , enablePluginLitehtmlViewer ? true, gumbo
 , enablePluginMailmbox ? true
@@ -70,6 +71,7 @@ let
     { flags = [ "enchant" ]; enabled = enableEnchant; deps = [ enchant ]; }
     { flags = [ "fancy-plugin" ]; enabled = enablePluginFancy; deps = [ libsoup webkitgtk ]; }
     { flags = [ "fetchinfo-plugin" ]; enabled = enablePluginFetchInfo; }
+    { flags = [ "keyword_warner-plugin" ]; enabled = enablePluginKeywordWarner; }
     { flags = [ "gnutls" ]; enabled = enableGnuTLS; deps = [ gnutls ]; }
     { flags = [ "ldap" ]; enabled = enableLdap; deps = [ openldap ]; }
     { flags = [ "libetpan" ]; enabled = enableLibetpan; deps = [ libetpan ]; }
@@ -96,28 +98,18 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "claws-mail";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchgit {
     rev = version;
     url = "git://git.claws-mail.org/claws.git";
-    sha256 = "0mwnjiqg2sj61va0y9yi3v52iyr5kzmbnvsqxav3a48m2f8p27qn";
-    };
+    sha256 = "1pgl7z87qs3ksh1pazq9cml3h0vb7kr9b97gkkrzgsgfg1vbx390";
+  };
 
   outputs = [ "out" "dev" ];
 
   patches = [
     ./mime.patch
-
-    # Fixes a bug with the automatic authentication method, resulting in errors
-    # with certain mail providers.
-    # <https://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=4497>
-    # This MUST be removed for the next release.
-    (fetchpatch {
-      name = "fix-automatic-auth.patch";
-      url = "https://git.claws-mail.org/?p=claws.git;a=patch;h=9c2585c58b49815a0eab8d683f0a94f75cbbe64e";
-      sha256 = "0v8v5q2p4h93lp7yq3gnlvarsrcssv96aks1wqy3187vsr4kdw7a";
-    })
   ];
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix
index b6dca7e70b6b..f454a8b43daf 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "electron-mail";
-  version = "4.12.7";
+  version = "5.0.1";
   name = "ElectronMail-${version}";
 
   src = fetchurl {
     url = "https://github.com/vladimiry/ElectronMail/releases/download/v${version}/electron-mail-${version}-linux-x86_64.AppImage";
-    sha256 = "42d0b49a2feba628f4845940ffd9607739bd5fcdbe6ba37e15f993c511d21e46";
+    sha256 = "sha256-w6ZZPIJnAlA8WhNHtM9gsjr7U6wMYT21fGFmkDDAVJU=";
   };
 
   appimageContents = appimageTools.extract { inherit name src; };
@@ -24,12 +24,13 @@ in appimageTools.wrapType2 {
 
   extraPkgs = pkgs: with pkgs; [
     libsecret
+    libappindicator-gtk3
   ];
 
   meta = with lib; {
     description = "ElectronMail is an Electron-based unofficial desktop client for ProtonMail";
     homepage = "https://github.com/vladimiry/ElectronMail";
-    license = licenses.mit;
+    license = licenses.gpl3;
     maintainers = [ maintainers.princemachiavelli ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
index db7771bc3c9f..16e5508281d1 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution-ews";
-  version = "3.44.0";
+  version = "3.44.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "q4Cg6eLOdn+56EruBl0Ote9QLNebLiykUeyoQpIpeoA=";
+    sha256 = "hcysooh6+FvwSORzx7bELF9WQasFpbxM/Oo04rb1vhc=";
   };
 
   nativeBuildInputs = [ cmake gettext intltool pkg-config ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index 2fae122fc1b6..6a571ffacf8f 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
@@ -46,11 +46,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution";
-  version = "3.44.0";
+  version = "3.44.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "3yHT31Ik36hC6ikO/82QKv1LFBhgik37aQejt9TZlPk=";
+    sha256 = "U2sR9BM99vIW8nr5okgaGe164Ivi1KE7EoBhwmKjZJk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix b/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix
index bed71202c4fe..870477545b53 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "imapfilter";
-  version = "2.7.5";
+  version = "2.7.6";
 
   src = fetchFromGitHub {
     owner = "lefcha";
     repo = "imapfilter";
     rev = "v${version}";
-    sha256 = "nbVwbPkNbJz4GHhvOp+QVgiBqKA/HR34p4x3NXJB7ig=";
+    sha256 = "sha256-7B3ebY2QAk+64NycptoMmAo7GxUFOo3a7CH7txV/KTY=";
   };
   makeFlags = [
     "SSLCAFILE=/etc/ssl/certs/ca-bundle.crt"
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix
index d2e5beb17180..a5a9b3ac89b4 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix
@@ -15,15 +15,17 @@
 , openssl
 , udev
 , xorg
+, mesa
+, libdrm
 }:
 
 stdenv.mkDerivation rec {
   pname = "mailspring";
-  version = "1.9.2";
+  version = "1.10.5";
 
   src = fetchurl {
     url = "https://github.com/Foundry376/Mailspring/releases/download/${version}/mailspring-${version}-amd64.deb";
-    sha256 = "sha256-o7w2XHd5FnPYt9j8IIGy6OgKtdeNb/qZ+EiXGEn0NUQ=";
+    sha256 = "sha256-eVwb7E04DzGdqfH4T+gkvmBtvN7ja4o8u7LvHk/581I=";
   };
 
   nativeBuildInputs = [
@@ -44,6 +46,9 @@ stdenv.mkDerivation rec {
     xorg.libXdamage
     xorg.libXScrnSaver
     xorg.libXtst
+    xorg.libxshmfence
+    mesa
+    libdrm
   ];
 
   runtimeDependencies = [
@@ -70,7 +75,7 @@ stdenv.mkDerivation rec {
       --replace dirname ${coreutils}/bin/dirname
 
     ln -s $out/share/mailspring/mailspring $out/bin/mailspring
-    ln -s ${openssl.out}/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
+    ln -s ${lib.getLib openssl}/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
 
     runHook postInstall
   '';
@@ -86,10 +91,11 @@ stdenv.mkDerivation rec {
       Mailspring is an open-source mail client forked from Nylas Mail and built with Electron.
       Mailspring's sync engine runs locally, but its source is not open.
     '';
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ toschmidt doronbehar ];
+    maintainers = with maintainers; [ toschmidt ];
     homepage = "https://getmailspring.com";
     downloadPage = "https://github.com/Foundry376/Mailspring";
-    platforms = platforms.x86_64;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix
index d4076c88bb8f..f998a4366b39 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ stdenv
+, lib
 , fetchgit
 , rustPlatform
 , pkg-config
@@ -6,7 +7,6 @@
 , dbus
 , sqlite
 , file
-, gzip
 , makeWrapper
 , notmuch
   # Build with support for notmuch backend
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "sha256-ZE653OtXyZ9454bKPApmuL2kVko/hGBWEAya1L1KIoc=";
 
-  nativeBuildInputs = [ pkg-config gzip makeWrapper ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
 
   buildInputs = [ openssl dbus sqlite ] ++ lib.optional withNotmuch notmuch;
 
@@ -49,6 +49,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
+    broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "Experimental terminal mail client aiming for configurability and extensibility with sane defaults";
     homepage = "https://meli.delivery";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mmh/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mmh/default.nix
index fe74e922230d..50bbb0b0f664 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mmh/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mmh/default.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, fetchurl, ncurses, autoreconfHook, flex }:
-let rev = "431604647f89d5aac7b199a7883e98e56e4ccf9e";
+{ lib, stdenv, fetchurl, fetchpatch, ncurses, autoreconfHook, flex }:
+let rev = "b17ea39dc17e5514f33b3f5c34ede92bd16e208c";
 in stdenv.mkDerivation rec {
   pname = "mmh";
-  version = "unstable-2019-09-08";
+  version = "unstable-2020-08-21";
 
   src = fetchurl {
     url = "http://git.marmaro.de/?p=mmh;a=snapshot;h=${rev};sf=tgz";
     name = "mmh-${rev}.tgz";
-    sha256 = "1q97p4g3f1q2m567i2dbx7mm7ixw3g91ww2rymwj42cxk9iyizhv";
+    sha256 = "1bqfxafw4l2y46pnsxgy4ji1xlyifzw01k1ykbsjj9p61q3nv6l6";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix
index 5e9e17b47fd6..fd980893124f 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Viewer for .msg files (MS Outlook)";
     homepage    = "https://www.washington.edu/alpine/";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license     = licenses.asl20;
     maintainers = with maintainers; [ peterhoeg ];
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
index 9904e2db362d..cc3bba9528e9 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -14,44 +14,37 @@
 , imapSupport  ? true
 , withSidebar  ? true
 , gssSupport   ? true
+, writeScript
 }:
 
-assert headerCache  -> gdbm       != null;
-assert sslSupport   -> openssl    != null;
-assert saslSupport  -> cyrus_sasl != null;
-assert smimeSupport -> openssl    != null;
-assert gpgSupport   -> gnupg      != null;
-assert gpgmeSupport -> gpgme      != null && openssl != null;
-
-with lib;
-
 stdenv.mkDerivation rec {
   pname = "mutt";
-  version = "2.2.2";
+  version = "2.2.7";
+  outputs = [ "out" "doc" "info" ];
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
-    sha256 = "1k0ghbpc4gn3sydbw10xv9djin9grk1pkxdwynrw0iknyc68gphh";
+    sha256 = "6xOFj1i7Np9He/ZS2Q6baq3dDWEKy+o0VQSeXvrTbfE=";
   };
 
-  patches = optional smimeSupport (fetchpatch {
+  patches = lib.optional smimeSupport (fetchpatch {
     url = "https://salsa.debian.org/mutt-team/mutt/raw/debian/1.10.1-2/debian/patches/misc/smime.rc.patch";
     sha256 = "0b4i00chvx6zj9pcb06x2jysmrcb2znn831lcy32cgfds6gr3nsi";
   });
 
   buildInputs =
     [ ncurses which perl ]
-    ++ optional headerCache  gdbm
-    ++ optional sslSupport   openssl
-    ++ optional gssSupport   libkrb5
-    ++ optional saslSupport  cyrus_sasl
-    ++ optional gpgmeSupport gpgme;
+    ++ lib.optional headerCache  gdbm
+    ++ lib.optional sslSupport   openssl
+    ++ lib.optional gssSupport   libkrb5
+    ++ lib.optional saslSupport  cyrus_sasl
+    ++ lib.optional gpgmeSupport gpgme;
 
   configureFlags = [
-    (enableFeature headerCache  "hcache")
-    (enableFeature gpgmeSupport "gpgme")
-    (enableFeature imapSupport  "imap")
-    (enableFeature withSidebar  "sidebar")
+    (lib.enableFeature headerCache  "hcache")
+    (lib.enableFeature gpgmeSupport "gpgme")
+    (lib.enableFeature imapSupport  "imap")
+    (lib.enableFeature withSidebar  "sidebar")
     "--enable-smtp"
     "--enable-pop"
     "--with-mailpath="
@@ -66,27 +59,41 @@ stdenv.mkDerivation rec {
     # set by the installer, and removing the need for the group 'mail'
     # I set the value 'mailbox' because it is a default in the configure script
     "--with-homespool=mailbox"
-  ] ++ optional sslSupport  "--with-ssl"
-    ++ optional gssSupport  "--with-gss"
-    ++ optional saslSupport "--with-sasl";
+  ] ++ lib.optional sslSupport  "--with-ssl"
+    ++ lib.optional gssSupport  "--with-gss"
+    ++ lib.optional saslSupport "--with-sasl";
 
-  postPatch = optionalString (smimeSupport || gpgmeSupport) ''
+  postPatch = lib.optionalString (smimeSupport || gpgmeSupport) ''
     sed -i 's#/usr/bin/openssl#${openssl}/bin/openssl#' smime_keys.pl
   '';
 
-  postInstall = optionalString smimeSupport ''
+  postInstall = lib.optionalString smimeSupport ''
     # S/MIME setup
     cp contrib/smime.rc $out/etc/smime.rc
     sed -i 's#openssl#${openssl}/bin/openssl#' $out/etc/smime.rc
     echo "source $out/etc/smime.rc" >> $out/etc/Muttrc
-  '' + optionalString gpgSupport ''
+  '' + lib.optionalString gpgSupport ''
     # GnuPG setup
     cp contrib/gpg.rc $out/etc/gpg.rc
     sed -i 's#\(command="\)gpg #\1${gnupg}/bin/gpg #' $out/etc/gpg.rc
     echo "source $out/etc/gpg.rc" >> $out/etc/Muttrc
   '';
 
-  meta = {
+  passthru = {
+    updateScript = writeScript "update-mutt" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p curl pcre common-updater-scripts
+
+      set -euo pipefail
+
+      # Expect the text in format of "The current stable public release version is 2.2.6."
+      new_version="$(curl -s http://www.mutt.org/download.html |
+          pcregrep -o1 'The current stable public release version is ([0-9.]+).')"
+      update-source-version ${pname} "$new_version"
+    '';
+  };
+
+  meta = with lib; {
     description = "A small but very powerful text-based mail client";
     homepage = "http://www.mutt.org";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
index 6d5ab96b4edc..9eb377f1b98e 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -1,18 +1,17 @@
 { lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which
 , ncurses, perl , cyrus_sasl, gss, gpgme, libkrb5, libidn, libxml2, notmuch, openssl
 , lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, sqlite, zlib
-, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
-  version = "20211029";
+  version = "20220429";
   pname = "neomutt";
 
   src = fetchFromGitHub {
     owner  = "neomutt";
     repo   = "neomutt";
     rev    = version;
-    sha256 = "sha256-haPDZorAfKuIEMiBCXJRMALAYnurQyjmCSOnj9IsoKk=";
+    sha256 = "sha256-LBY7WtmEMg/PcMS/Tc5XEYunIWjoI4IQfUJURKgy1YA=";
   };
 
   buildInputs = [
@@ -25,18 +24,10 @@ stdenv.mkDerivation rec {
     docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib w3m
   ];
 
-  patches = [
-    # Remove on next update, see
-    # https://github.com/NixOS/nixpkgs/pull/143641#issuecomment-954991746 for context.
-    (fetchpatch {
-      url = "https://github.com/neomutt/neomutt/commit/4242a31313e0b600693215c01047bbda8a6dd25a.patch";
-      sha256 = "sha256-fcuNeBkPjqln5QA9VFcfXCQD/VrUoSEMSxQ//Xj+yxY=";
-    })
-  ];
-
   enableParallelBuilding = true;
 
   postPatch = ''
+    substituteInPlace auto.def --replace /usr/sbin/sendmail sendmail
     substituteInPlace contrib/smime_keys \
       --replace /usr/bin/openssl ${openssl}/bin/openssl
 
@@ -70,8 +61,6 @@ stdenv.mkDerivation rec {
     # To make it not reference .dev outputs. See:
     # https://github.com/neomutt/neomutt/pull/2367
     "--disable-include-path-in-cflags"
-    # Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail
-    "ac_cv_path_SENDMAIL=sendmail"
     "--zlib"
   ];
 
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix
deleted file mode 100644
index 5c979bde6040..000000000000
--- a/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config,
-  gettext, openssl
-}:
-
-with lib;
-
-stdenv.mkDerivation {
-  pname = "notbit";
-  version = "2018-01-09";
-
-  src = fetchFromGitHub {
-    owner  = "bpeel";
-    repo   = "notbit";
-    rev    = "8b5d3d2da8ce54abae2536b4d97641d2c798cff3";
-    sha256 = "1623n0lvx42mamvb2vwin5i38hh0nxpxzmkr5188ss2x7m20lmii";
-  };
-
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-
-  buildInputs = [ openssl gettext ];
-
-  meta = {
-    description = "A minimal Bitmessage client";
-    homepage = "https://github.com/bpeel/notbit";
-    license = licenses.mit;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ mog ];
-    broken = true;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
index feca7bd20182..46115f4a56d7 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, gawk, mercury, pandoc, ncurses, gpgme }:
+{ lib, stdenv, fetchFromGitHub, mercury, pandoc, ncurses, gpgme }:
 
 stdenv.mkDerivation rec {
   pname = "notmuch-bower";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0r5s16pc3ym5nd33lv9ljv1p1gpb7yysrdni4g7w7yvjrnwk35l6";
   };
 
-  nativeBuildInputs = [ gawk mercury pandoc ];
+  nativeBuildInputs = [ mercury pandoc ];
 
   buildInputs = [ ncurses gpgme ];
 
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
index e89216802e50..bacf399fdb16 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -6,7 +6,7 @@
 , pythonPackages
 , emacs
 , ruby
-, testVersion
+, testers
 , which, dtach, openssl, bash, gdb, man
 , withEmacs ? true
 , withRuby ? true
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "notmuch";
-  version = "0.35";
+  version = "0.36";
 
   src = fetchurl {
     url = "https://notmuchmail.org/releases/notmuch-${version}.tar.xz";
-    sha256 = "0fdc81m24xrbhfrhw00g12ak4b8hap4961sq7ap6q2pjqhac8cd8";
+    sha256 = "0h6f6mh9m9vrijm638x5sbsl321b74a25cdasbxhx67x62w320hk";
   };
 
   nativeBuildInputs = [
@@ -102,7 +102,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     pythonSourceRoot = "notmuch-${version}/bindings/python";
-    tests.version = testVersion { package = notmuch; };
+    tests.version = testers.testVersion { package = notmuch; };
     inherit version;
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/91_sources.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/91_sources.nix
new file mode 100644
index 000000000000..30ea4090ac90
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/91_sources.nix
@@ -0,0 +1,655 @@
+{
+  version = "91.11.0";
+  sources = [
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/af/thunderbird-91.11.0.tar.bz2";
+      locale = "af";
+      arch = "linux-x86_64";
+      sha256 = "6636029a5493af2bdc3bd4b66ab2ec6bdf3386784378c6e3663e0dacabf61341";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/ar/thunderbird-91.11.0.tar.bz2";
+      locale = "ar";
+      arch = "linux-x86_64";
+      sha256 = "4cbde6508c12b4f17268ecb76fac4724fd03be17637debd5e3b0f4ae9664cb38";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/ast/thunderbird-91.11.0.tar.bz2";
+      locale = "ast";
+      arch = "linux-x86_64";
+      sha256 = "501d71124a124168dda01442a94858ac8d1aada8dd7949d1e73f3c89464798ee";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/be/thunderbird-91.11.0.tar.bz2";
+      locale = "be";
+      arch = "linux-x86_64";
+      sha256 = "34337ba1e8b7209b7b7e7ac9924e6f8745916f87df30a2b8af9dcd201a40c7a9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/bg/thunderbird-91.11.0.tar.bz2";
+      locale = "bg";
+      arch = "linux-x86_64";
+      sha256 = "3a13287699e97b160adf8008101f64f3f5078cb51f65cba7b076d5c62e8dc583";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/br/thunderbird-91.11.0.tar.bz2";
+      locale = "br";
+      arch = "linux-x86_64";
+      sha256 = "6f67a0fc18d23e0ad0e3776d4039c218af0afac1d7e744215d0225763a33007f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/ca/thunderbird-91.11.0.tar.bz2";
+      locale = "ca";
+      arch = "linux-x86_64";
+      sha256 = "25f7848814c4f49d82f4fb305edc52068e0738fc02009f68f2a7822a4307e39a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/cak/thunderbird-91.11.0.tar.bz2";
+      locale = "cak";
+      arch = "linux-x86_64";
+      sha256 = "1e341a101e42b88ee2ab763694066598203a834d85ef3a5c4572a0950dec868a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/cs/thunderbird-91.11.0.tar.bz2";
+      locale = "cs";
+      arch = "linux-x86_64";
+      sha256 = "b36b25191dd6f70e03aee3a5238428e8cdad16192f173ca094356a9404b2a6a0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/cy/thunderbird-91.11.0.tar.bz2";
+      locale = "cy";
+      arch = "linux-x86_64";
+      sha256 = "604e262c8efb59e6250d26d964aba3e7c3fc9a3743137d67dda6011ad31a0331";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/da/thunderbird-91.11.0.tar.bz2";
+      locale = "da";
+      arch = "linux-x86_64";
+      sha256 = "d9b1b3067ebbd2685c53a1787d3b6a496b54e0102e3c15e99539110765787ca0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/de/thunderbird-91.11.0.tar.bz2";
+      locale = "de";
+      arch = "linux-x86_64";
+      sha256 = "03bb508c63f6e9d4ec0846d288113cee0c99ba81cfb82ed3ad96b60a4a04aae8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/dsb/thunderbird-91.11.0.tar.bz2";
+      locale = "dsb";
+      arch = "linux-x86_64";
+      sha256 = "cd09f6ad9323c893284d752afe97e92800f4db579a78eb8d04e2ff0b60321cca";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/el/thunderbird-91.11.0.tar.bz2";
+      locale = "el";
+      arch = "linux-x86_64";
+      sha256 = "1db218644eb596bb47c45405f8e1c6c0ff6d3b0f227fca34ceac7bcb35d19a25";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/en-CA/thunderbird-91.11.0.tar.bz2";
+      locale = "en-CA";
+      arch = "linux-x86_64";
+      sha256 = "5833bf8ba7c5ece94abb082937937c531632831fe6eb6cb059f9f567663b4073";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/en-GB/thunderbird-91.11.0.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-x86_64";
+      sha256 = "fd779ea56324f157cf16587f29f46a8e102a42f951532d20d0d522f16b71de83";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/en-US/thunderbird-91.11.0.tar.bz2";
+      locale = "en-US";
+      arch = "linux-x86_64";
+      sha256 = "5df888beee833cdc3316f82d22d4b87c67021b5433009a11d170c3d204a54752";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/es-AR/thunderbird-91.11.0.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-x86_64";
+      sha256 = "aa0235f0d9864aeba031589ec0983300cf1f3681ec724baf7c4e8325a678b093";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/es-ES/thunderbird-91.11.0.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-x86_64";
+      sha256 = "59fe5b24a8671b7d533099441f2154cbb2ae878421db861bdf63449d0ddea33a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/et/thunderbird-91.11.0.tar.bz2";
+      locale = "et";
+      arch = "linux-x86_64";
+      sha256 = "5dfde219d3121da4bac10cd4bb0ebb7f01e0e268d6e0a5495617cbe8f101205e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/eu/thunderbird-91.11.0.tar.bz2";
+      locale = "eu";
+      arch = "linux-x86_64";
+      sha256 = "0ef3e6dc4d906b59cc41814a01f2f9795cb0f68cedb2d42b3a6ae6f941e57866";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/fi/thunderbird-91.11.0.tar.bz2";
+      locale = "fi";
+      arch = "linux-x86_64";
+      sha256 = "41133551838ab598ca8ff8b414b5e59b100d90fd0d76d86efdbe0932f55ae183";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/fr/thunderbird-91.11.0.tar.bz2";
+      locale = "fr";
+      arch = "linux-x86_64";
+      sha256 = "2f9524eba48ce5584db51bdc70a6d2db9fe855b95bc0ea4886211cd9571fef1e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/fy-NL/thunderbird-91.11.0.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-x86_64";
+      sha256 = "90c205af710dc61817b385b937eb8f19785d26b7c706454d5e5eb2caa98a6f2f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/ga-IE/thunderbird-91.11.0.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-x86_64";
+      sha256 = "c58024054af2557b41cab9f6ffbcd35e23aeaef082c992a326d442a2d88f7d36";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/gd/thunderbird-91.11.0.tar.bz2";
+      locale = "gd";
+      arch = "linux-x86_64";
+      sha256 = "3c5b3345a8ecb9a929ad4f257545ae21b7d7312d838303f2f45fb82801e3fe7d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/gl/thunderbird-91.11.0.tar.bz2";
+      locale = "gl";
+      arch = "linux-x86_64";
+      sha256 = "9ab74394aa219e005347bb480da18d0640df11184fdf8bccaace8ae4fdfd2e61";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/he/thunderbird-91.11.0.tar.bz2";
+      locale = "he";
+      arch = "linux-x86_64";
+      sha256 = "5b4997c947aeba88b4b67baa9ed70fdc8c5ab5dd4c2ba8faeb858bb572ef7262";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/hr/thunderbird-91.11.0.tar.bz2";
+      locale = "hr";
+      arch = "linux-x86_64";
+      sha256 = "028a0ac856f5eb24db1fbd6064554d39e097e681d2acd366eb500ae2a9f44d3e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/hsb/thunderbird-91.11.0.tar.bz2";
+      locale = "hsb";
+      arch = "linux-x86_64";
+      sha256 = "c7cf4a82322a80ef5c7587bc7ff1a68c89116ff3575a82d4fa0057484108b726";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/hu/thunderbird-91.11.0.tar.bz2";
+      locale = "hu";
+      arch = "linux-x86_64";
+      sha256 = "58e6060e7f104b9096ac521542b55d92cf88d409cb96f9a72705ac9e77b55cfa";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/hy-AM/thunderbird-91.11.0.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-x86_64";
+      sha256 = "0f4254ac57ce8c4db9c336c38c5d35b6260cf32a85b7bd72935f216d0a54851e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/id/thunderbird-91.11.0.tar.bz2";
+      locale = "id";
+      arch = "linux-x86_64";
+      sha256 = "4476719d376d6dfa2b6a984b8c9dd1024a813da848acb7b4c76df5ba903a87a2";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/is/thunderbird-91.11.0.tar.bz2";
+      locale = "is";
+      arch = "linux-x86_64";
+      sha256 = "104420cb76394b8a4d243643e087b04be802152758cff256b09dbd1fd7c4bcf2";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/it/thunderbird-91.11.0.tar.bz2";
+      locale = "it";
+      arch = "linux-x86_64";
+      sha256 = "8dee7d28dfe512b5bde06cb8ff826c22c46b238b828c1f9f2df75728195cc6d9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/ja/thunderbird-91.11.0.tar.bz2";
+      locale = "ja";
+      arch = "linux-x86_64";
+      sha256 = "bd9a73ce7f363d530d23304036d17be5ba92c14ed809b15aeed021fdf940e060";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/ka/thunderbird-91.11.0.tar.bz2";
+      locale = "ka";
+      arch = "linux-x86_64";
+      sha256 = "b94f942fc2e0605b38c3fc89b2dfe07faaa812db1035563feb11fa2a20dff0d9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/kab/thunderbird-91.11.0.tar.bz2";
+      locale = "kab";
+      arch = "linux-x86_64";
+      sha256 = "c9201067ae0cd3bb3fc013798b2f7b33daad96707f70d6dfea1e6ab010c6ad25";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/kk/thunderbird-91.11.0.tar.bz2";
+      locale = "kk";
+      arch = "linux-x86_64";
+      sha256 = "1eca6541d09608cdc481f0f1031d6a6d0fc41b53b09e0f6e48bb4694d3be4b45";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/ko/thunderbird-91.11.0.tar.bz2";
+      locale = "ko";
+      arch = "linux-x86_64";
+      sha256 = "10b1a259373bba55b9de98d87949c13ded07d9c913d8491c2b9e07700b10420d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/lt/thunderbird-91.11.0.tar.bz2";
+      locale = "lt";
+      arch = "linux-x86_64";
+      sha256 = "72a8496237b15de47a689d5546513cd0da77efa8ae365d538e4a89d4adf37d0a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/lv/thunderbird-91.11.0.tar.bz2";
+      locale = "lv";
+      arch = "linux-x86_64";
+      sha256 = "7b537e57c6244cde41e6c1a3516124293eef9cf42cfcf26d733f69fc6ea8b446";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/ms/thunderbird-91.11.0.tar.bz2";
+      locale = "ms";
+      arch = "linux-x86_64";
+      sha256 = "f7382386f24d6f0c5134b60a7c4fc81956bbaeb716697cae9030bdbf3a8a7bc9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/nb-NO/thunderbird-91.11.0.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-x86_64";
+      sha256 = "cd5bbe73d36900ea4b964b5362e93ca631198eef1f5b790ac8e5fbd3ba2fd851";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/nl/thunderbird-91.11.0.tar.bz2";
+      locale = "nl";
+      arch = "linux-x86_64";
+      sha256 = "6202949156d0471da39f636d53954b2c3a3955f91da906444db8d17dc6b7d346";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/nn-NO/thunderbird-91.11.0.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-x86_64";
+      sha256 = "43d47e9766780a32ba5bfbe3006cba454189405bf8b019fcbb8a91d8eaa5734b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/pa-IN/thunderbird-91.11.0.tar.bz2";
+      locale = "pa-IN";
+      arch = "linux-x86_64";
+      sha256 = "49211576fb1637f285399c2b7e9c867633da8b53d5f862c9f46f587ab50ac960";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/pl/thunderbird-91.11.0.tar.bz2";
+      locale = "pl";
+      arch = "linux-x86_64";
+      sha256 = "54f7ec4a13681b0173909e28ce6d44ef642ccb208ff96ce53472e63a7d9500e0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/pt-BR/thunderbird-91.11.0.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-x86_64";
+      sha256 = "974781b88c324ef8d795ba602ebef9f3e34737ab7b17d753c9b9e81ac543895c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/pt-PT/thunderbird-91.11.0.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-x86_64";
+      sha256 = "b7fdf05204afcbedd5562f9f15a1d6b2179c67dd84c150aa36690b6c709c6237";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/rm/thunderbird-91.11.0.tar.bz2";
+      locale = "rm";
+      arch = "linux-x86_64";
+      sha256 = "04994c9de996a609bdd3a17a75c82e3738c4bb4e7cec1cafb2f5284be665ffb4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/ro/thunderbird-91.11.0.tar.bz2";
+      locale = "ro";
+      arch = "linux-x86_64";
+      sha256 = "9373a55e1602f50af98c1949d43c4700e34f8ff43b5c1ddd9e7bad6651a6f8cb";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/ru/thunderbird-91.11.0.tar.bz2";
+      locale = "ru";
+      arch = "linux-x86_64";
+      sha256 = "3e386ac2034b623eeb7cbc99ec9fcb543f7ee47cea9bd732c6fe62aa01cbeed8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/sk/thunderbird-91.11.0.tar.bz2";
+      locale = "sk";
+      arch = "linux-x86_64";
+      sha256 = "0aa6eb1ba0f714eec99151eb99ab08d862de57d3f3c6cd8086418cadcdea6447";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/sl/thunderbird-91.11.0.tar.bz2";
+      locale = "sl";
+      arch = "linux-x86_64";
+      sha256 = "5fbadaa8562c13478ccb4eec4707b683058a52a6a3edcdd60e94408e370c0a59";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/sq/thunderbird-91.11.0.tar.bz2";
+      locale = "sq";
+      arch = "linux-x86_64";
+      sha256 = "505158fd5eb28ff2eaa98e7be104551bda552ab6983191e1d86d39e33bb2108d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/sr/thunderbird-91.11.0.tar.bz2";
+      locale = "sr";
+      arch = "linux-x86_64";
+      sha256 = "607f65c325201d5751248c4877dcbea28a3d3f99905cbf0f8fbc2ece38bab819";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/sv-SE/thunderbird-91.11.0.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-x86_64";
+      sha256 = "d490bfac8742f29052a14f4973dbec326740610da348498f6ca0417035061c4d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/th/thunderbird-91.11.0.tar.bz2";
+      locale = "th";
+      arch = "linux-x86_64";
+      sha256 = "e218e77576af8c552cd5fa06e6323970bf32681166206ddf42ee0ddbbefbeda5";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/tr/thunderbird-91.11.0.tar.bz2";
+      locale = "tr";
+      arch = "linux-x86_64";
+      sha256 = "14b0a4dddd9185896475e840e5953b6543ee0ccb3f8ee0b0a4a448e524726cbc";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/uk/thunderbird-91.11.0.tar.bz2";
+      locale = "uk";
+      arch = "linux-x86_64";
+      sha256 = "a194835b5361faf5b0dd05c26a747d36b761de676e19f54dc3fd5354f4fae12c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/uz/thunderbird-91.11.0.tar.bz2";
+      locale = "uz";
+      arch = "linux-x86_64";
+      sha256 = "457f3040bc017c7cf525b44c5a503385561fe072e8fcc6cc7877c6e070fdd937";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/vi/thunderbird-91.11.0.tar.bz2";
+      locale = "vi";
+      arch = "linux-x86_64";
+      sha256 = "64b81087215b52b8a5780c9955fa9b0e94dbfeb005bf39feea85d838dec01b51";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/zh-CN/thunderbird-91.11.0.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-x86_64";
+      sha256 = "5187404d29307a0e931663a3f1c8f85b9198869468b9541043988d7ab692bb09";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-x86_64/zh-TW/thunderbird-91.11.0.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-x86_64";
+      sha256 = "69e52c2281548034169063b1e9b3c77354aa81c616ba407135d148d04f3c39b1";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/af/thunderbird-91.11.0.tar.bz2";
+      locale = "af";
+      arch = "linux-i686";
+      sha256 = "fab1aaabdf672e2e30c11f7b6c884ea84da0e2d4dd1f6e7ea73561f45758972a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/ar/thunderbird-91.11.0.tar.bz2";
+      locale = "ar";
+      arch = "linux-i686";
+      sha256 = "7e3e89f1f7fd59e11323397cea81a01da5a2025f8a4eb5bd5e22a8ae7558ad16";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/ast/thunderbird-91.11.0.tar.bz2";
+      locale = "ast";
+      arch = "linux-i686";
+      sha256 = "e25ef39a6b91c414d2f748fbe94552be106c0be37ac3ba1bb69ec79731d7c8b1";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/be/thunderbird-91.11.0.tar.bz2";
+      locale = "be";
+      arch = "linux-i686";
+      sha256 = "2cdf39bf05d2f090a120b6285e74cf77199849b0b22dcaef10506ee94dfb6949";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/bg/thunderbird-91.11.0.tar.bz2";
+      locale = "bg";
+      arch = "linux-i686";
+      sha256 = "524766c780d086fd4335bdbf09e3b006176ae514cc5940e08b8729462b69cf21";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/br/thunderbird-91.11.0.tar.bz2";
+      locale = "br";
+      arch = "linux-i686";
+      sha256 = "88967dfc29888cb310d667a786605c60b99836c4d96c9d80bbe0d3e1ffc4fc4d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/ca/thunderbird-91.11.0.tar.bz2";
+      locale = "ca";
+      arch = "linux-i686";
+      sha256 = "bcc7fec068db74291c4e7fae965ed0d59c690011c0b102ae52fc35355a37c2d3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/cak/thunderbird-91.11.0.tar.bz2";
+      locale = "cak";
+      arch = "linux-i686";
+      sha256 = "92557a0bfce5c70a7112cce28059cb7e5f36ea6de25837cc9e84f29dd4f437d3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/cs/thunderbird-91.11.0.tar.bz2";
+      locale = "cs";
+      arch = "linux-i686";
+      sha256 = "85df534c707dfdf1029c653b8402e0ff8fbb5a76bd6881a03e49422576c50a7b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/cy/thunderbird-91.11.0.tar.bz2";
+      locale = "cy";
+      arch = "linux-i686";
+      sha256 = "6acc4efd7a7eaa9cb1630a1830d8e13a59da59f7cb9c6430c42a6ab0947cb924";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/da/thunderbird-91.11.0.tar.bz2";
+      locale = "da";
+      arch = "linux-i686";
+      sha256 = "b6a9bd2852f7076466bf369b793a480023ef2b025a83765a80b5e996f213ca02";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/de/thunderbird-91.11.0.tar.bz2";
+      locale = "de";
+      arch = "linux-i686";
+      sha256 = "b6524641f5dd509467fcc0fe3eb2ee44df177d07da8ea77aa706714efa6e34dd";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/dsb/thunderbird-91.11.0.tar.bz2";
+      locale = "dsb";
+      arch = "linux-i686";
+      sha256 = "7d9aedca49c87841e2535aa0d7e89b893c6b91042c8c54b3d8a123c36cd21508";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/el/thunderbird-91.11.0.tar.bz2";
+      locale = "el";
+      arch = "linux-i686";
+      sha256 = "840ede568df0cf197039f4ccb4d0ac86b617bdb705bf0bfc13d5ea46f327f43a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/en-CA/thunderbird-91.11.0.tar.bz2";
+      locale = "en-CA";
+      arch = "linux-i686";
+      sha256 = "9410f138179876e844042b7386d3b1bf857ac65ebc45039bb97d4d199983151f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/en-GB/thunderbird-91.11.0.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-i686";
+      sha256 = "7e5a91a64f72c7a01028833ced6cd7b997630d54967e0e2938875645d0868f27";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/en-US/thunderbird-91.11.0.tar.bz2";
+      locale = "en-US";
+      arch = "linux-i686";
+      sha256 = "0afacc2ccee154819e6289992c9daaa9f6dc977ecffc59cd548d5facf7bc118b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/es-AR/thunderbird-91.11.0.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-i686";
+      sha256 = "f8488581fd4dc90e036e58436bb82838d6ae5f386fa73e40b3706d8137d63feb";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/es-ES/thunderbird-91.11.0.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-i686";
+      sha256 = "8bb3607d710e25c3c981bfada12be85a9b32dff38bb5d5fe3b045c63494789a5";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/et/thunderbird-91.11.0.tar.bz2";
+      locale = "et";
+      arch = "linux-i686";
+      sha256 = "a204822cf3af0d14412bc585ddbcd794f0bff40233f3022709978fa79a3544b3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/eu/thunderbird-91.11.0.tar.bz2";
+      locale = "eu";
+      arch = "linux-i686";
+      sha256 = "b7e71ce61437008e4006712dc08d72fb3355c5114ddce4841c6bfac4420d13a8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/fi/thunderbird-91.11.0.tar.bz2";
+      locale = "fi";
+      arch = "linux-i686";
+      sha256 = "aa1a2c83786985e5b5afb9ae62de7644880675c401313ad2ebd8cff6759b1652";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/fr/thunderbird-91.11.0.tar.bz2";
+      locale = "fr";
+      arch = "linux-i686";
+      sha256 = "49e02176f56e9bcbe2ae22a2f26ee1c4e1c18abc0e5622ac3cd3e1cf36feef35";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/fy-NL/thunderbird-91.11.0.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-i686";
+      sha256 = "41417c3d07809919e639f8124ac1f3a12e150ec9f2a48e4ff5461b11a49fff79";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/ga-IE/thunderbird-91.11.0.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-i686";
+      sha256 = "3bda30e7d860fdc0fa92f56451d36e96cf7444aa186b936c8a8b75cab10c1256";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/gd/thunderbird-91.11.0.tar.bz2";
+      locale = "gd";
+      arch = "linux-i686";
+      sha256 = "89f0ab5eb0df82611fe5abbaf9f626c00a47e80b49f9b3bfacbe49588a5d15a5";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/gl/thunderbird-91.11.0.tar.bz2";
+      locale = "gl";
+      arch = "linux-i686";
+      sha256 = "d1da56e2ed418a30c225857cee00c6feac62e02ac64279d340265602faea30d9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/he/thunderbird-91.11.0.tar.bz2";
+      locale = "he";
+      arch = "linux-i686";
+      sha256 = "644508c044d0b9de9c226005c9a6a9a88eb179da56fccb4abe012e905bbfaaaa";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/hr/thunderbird-91.11.0.tar.bz2";
+      locale = "hr";
+      arch = "linux-i686";
+      sha256 = "ceb9ef728f0413525c93949c4960e97e4b887965cfd94211b1ec349165368864";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/hsb/thunderbird-91.11.0.tar.bz2";
+      locale = "hsb";
+      arch = "linux-i686";
+      sha256 = "81fadd0d89c48bf2a3df279ba24e48490bdbe8913ceb5fb53738f32c1cc61211";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/hu/thunderbird-91.11.0.tar.bz2";
+      locale = "hu";
+      arch = "linux-i686";
+      sha256 = "57c6223d5dbd0221742b51df296a8ea74739ec601ba0cbbc8de9c27dc3a09226";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/hy-AM/thunderbird-91.11.0.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-i686";
+      sha256 = "b33ad866c009c85793a2e2ee8e837de49bebbbc98c069e8e6735aa2041208642";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/id/thunderbird-91.11.0.tar.bz2";
+      locale = "id";
+      arch = "linux-i686";
+      sha256 = "6c9da73ca1706a35496a5e298f3c1308a0a0e56a03826c41bd84e7ef0a54341b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/is/thunderbird-91.11.0.tar.bz2";
+      locale = "is";
+      arch = "linux-i686";
+      sha256 = "bc2dedfe32f7f82ee485c39bd21919bad3ab706c82fe04ab6b13198628f03b43";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/it/thunderbird-91.11.0.tar.bz2";
+      locale = "it";
+      arch = "linux-i686";
+      sha256 = "15a69c14973def0f7ad062a8a3a9f5c72b8358f46ed89fba0dce0bb614164cbb";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/ja/thunderbird-91.11.0.tar.bz2";
+      locale = "ja";
+      arch = "linux-i686";
+      sha256 = "49f9b81962a2bc38d1c465a347a871b377cfe5110fe44761fba88779e1cf6c16";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/ka/thunderbird-91.11.0.tar.bz2";
+      locale = "ka";
+      arch = "linux-i686";
+      sha256 = "3d57cd918664d17208bb877561807c1c6c7fd0b3d72b77592fd1eba1e36e3c0e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/kab/thunderbird-91.11.0.tar.bz2";
+      locale = "kab";
+      arch = "linux-i686";
+      sha256 = "cfa2dcd465a6e877253e029733d32f2040f6145d5bd34dbaf6ce2cbfe4d83df2";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/kk/thunderbird-91.11.0.tar.bz2";
+      locale = "kk";
+      arch = "linux-i686";
+      sha256 = "cd60db4921fefaf47dbfe2e681a0f5c4c1054cc6fe9ca4ea36abf3b2ff8d89a5";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/ko/thunderbird-91.11.0.tar.bz2";
+      locale = "ko";
+      arch = "linux-i686";
+      sha256 = "48ff8d98abd69d377f3964d8d278e79554e3ec31973ff4baf7773236fc635fa7";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/lt/thunderbird-91.11.0.tar.bz2";
+      locale = "lt";
+      arch = "linux-i686";
+      sha256 = "cde6ca3288571470ae836fc3b1584ef2e5413548e2180a58b5e8755e6ece3912";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/lv/thunderbird-91.11.0.tar.bz2";
+      locale = "lv";
+      arch = "linux-i686";
+      sha256 = "e54b05e69f07c191658b5fe86aefef21f8dd2ea28c4fd5518876ca00dadc7ee1";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/ms/thunderbird-91.11.0.tar.bz2";
+      locale = "ms";
+      arch = "linux-i686";
+      sha256 = "481c849a5347befe0204e090e457617278a598a20411f07379bcebf997752089";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/nb-NO/thunderbird-91.11.0.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-i686";
+      sha256 = "d239864212742c86b2a83246acb22523be4097f438ebb1fdaa3776cb7274d68e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/nl/thunderbird-91.11.0.tar.bz2";
+      locale = "nl";
+      arch = "linux-i686";
+      sha256 = "6d50d645030e2672cda90d56b795c5de2813e82101839f821ef5345c0bac3e1d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/nn-NO/thunderbird-91.11.0.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-i686";
+      sha256 = "87f5d8da66fc1bc224777a1db400d73f792ecec257ebe4ca7b857a29eb1b46f2";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/pa-IN/thunderbird-91.11.0.tar.bz2";
+      locale = "pa-IN";
+      arch = "linux-i686";
+      sha256 = "1b9315e847a7b40f8f984facd3bb24d5291199ba974e0391f1088c8623e2ac10";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/pl/thunderbird-91.11.0.tar.bz2";
+      locale = "pl";
+      arch = "linux-i686";
+      sha256 = "22c0be8d666e5a7e7fc2ef0e44558e0a7fad299a5946f55850652d25ff1f3e24";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/pt-BR/thunderbird-91.11.0.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-i686";
+      sha256 = "e9ff705ff4d1513060f3142590bdbff2e66c84875bf683fd5196c464ce45d23a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/pt-PT/thunderbird-91.11.0.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-i686";
+      sha256 = "a446fab64e1b49d5463e5966a0a3399314bf893cf9e2687d9c88dc810e3c50d6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/rm/thunderbird-91.11.0.tar.bz2";
+      locale = "rm";
+      arch = "linux-i686";
+      sha256 = "a533be1dbc69a4821039b969050253b40c5c96926e61f79b186a7a61452f01be";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/ro/thunderbird-91.11.0.tar.bz2";
+      locale = "ro";
+      arch = "linux-i686";
+      sha256 = "1cfd9675f82e3a6262946a0fd40fae143abc0bd896f74a1afa1bb5fce72c8a31";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/ru/thunderbird-91.11.0.tar.bz2";
+      locale = "ru";
+      arch = "linux-i686";
+      sha256 = "177641bee951eb96f56b4f2551014e648be8e62766258a7e25ff6e3d6aef465f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/sk/thunderbird-91.11.0.tar.bz2";
+      locale = "sk";
+      arch = "linux-i686";
+      sha256 = "f30a2a1afc23f790908efb04e5a90552ecd33b0a61eac0f8e51c66e2745befb3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/sl/thunderbird-91.11.0.tar.bz2";
+      locale = "sl";
+      arch = "linux-i686";
+      sha256 = "deb684209fd7a773e5679daea7b20d62c9a2ad885a33f9bafb2596aa44465d8d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/sq/thunderbird-91.11.0.tar.bz2";
+      locale = "sq";
+      arch = "linux-i686";
+      sha256 = "efd8462f8886c0396d71e89adbcefdec0c7d8bd60d319df833b3cff3aae7e5ea";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/sr/thunderbird-91.11.0.tar.bz2";
+      locale = "sr";
+      arch = "linux-i686";
+      sha256 = "c120fd6dcf72da105190c46781fffb8d5ba310a3bf9febd8d9090024953ab2eb";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/sv-SE/thunderbird-91.11.0.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-i686";
+      sha256 = "09f2bf230701dd26c6b72a1b053c743bd6fe79fafd43fed18154dcd20d466ed6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/th/thunderbird-91.11.0.tar.bz2";
+      locale = "th";
+      arch = "linux-i686";
+      sha256 = "121cceee1a3eb123a2e23c7c440beacda0deaffd651153d176b2a9b4678146c6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/tr/thunderbird-91.11.0.tar.bz2";
+      locale = "tr";
+      arch = "linux-i686";
+      sha256 = "41626b2bb506dca9929ce3a5f44b6d1f1a763ab34caa1dbbf1b4d25f49573b88";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/uk/thunderbird-91.11.0.tar.bz2";
+      locale = "uk";
+      arch = "linux-i686";
+      sha256 = "05373f8f2e23c0551b025b89a2ab116635e49ffdf469dfaaaeddff96db77a1db";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/uz/thunderbird-91.11.0.tar.bz2";
+      locale = "uz";
+      arch = "linux-i686";
+      sha256 = "ef50609a5a0382aed53c0af6bd4de6143db508442b104eba10832967ad540018";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/vi/thunderbird-91.11.0.tar.bz2";
+      locale = "vi";
+      arch = "linux-i686";
+      sha256 = "dabf2c94a148504308b281de70b2dc37aa7b12fe67a83bae1b6df4be7e864a3d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/zh-CN/thunderbird-91.11.0.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-i686";
+      sha256 = "adce5e780010b7f81e53e727627df3db6a2fbc50ee7789dc980b06af93b1e1fe";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.11.0/linux-i686/zh-TW/thunderbird-91.11.0.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-i686";
+      sha256 = "d08f81345272c130c2050b6a89605f4e714b9320ca7242fba95e320d4f69097a";
+    }
+    ];
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index 98792527faf1..1630a8612bb1 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -38,7 +38,7 @@
 , adwaita-icon-theme
 , libGLU, libGL
 , nspr
-, nss
+, nss_latest
 , pango
 , pipewire
 , pciutils
@@ -56,10 +56,11 @@
 , runtimeShell
 , mesa # thunderbird wants gbm for drm+dmabuf
 , systemLocale ? config.i18n.defaultLocale or "en_US"
+, generated
 }:
 
 let
-  inherit (import ./release_sources.nix) version sources;
+  inherit (generated) version sources;
 
   mozillaPlatforms = {
     i686-linux = "linux-i686";
@@ -132,7 +133,7 @@ stdenv.mkDerivation {
       libnotify
       libGLU libGL
       nspr
-      nss
+      nss_latest
       pango
       pipewire
       pciutils
@@ -206,6 +207,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Mozilla Thunderbird, a full-featured email client (binary package)";
     homepage = "http://www.mozilla.org/thunderbird/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mpl20;
     maintainers = with lib.maintainers; [ lovesegfault ];
     platforms = builtins.attrNames mozillaPlatforms;
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index 492abf1f37c4..c0bc4f5dbbee 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,655 +1,665 @@
 {
-  version = "91.7.0";
+  version = "102.0.3";
   sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/af/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/af/thunderbird-102.0.3.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "bcc9a123b3de4d442836820d3eff52a37ff513b063850493e58c2132ad0ec029";
+      sha256 = "acbb0b0467c0f83179c301e6435d6fb09d784d793bf56eb9d10a2240f40972cf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ar/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/ar/thunderbird-102.0.3.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "4800a0be829e654d6917271b4944a5be3a8688e75eed58a4a5bae3643d2bce4b";
+      sha256 = "c15a7753c36d20da261a4819a49429196d839a7288b756478330bcf69cd93611";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ast/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/ast/thunderbird-102.0.3.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "779bf2732f89a82f36449d75d14ec4f8cbceb79c7f2d590f0407f4261fd9a5f9";
+      sha256 = "2e0747bfa96640d8c4998d08b3e1096797d870773bc805a2d9726da110799e35";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/be/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/be/thunderbird-102.0.3.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "e1f033cf11d1d18828771ca81e90e6851a1b96971f0d3d81665ca6aebb6c737c";
+      sha256 = "1316efa7b999c1ecd6470520ae90beec9575e549bd1735ea523bb61b1edc3230";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/bg/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/bg/thunderbird-102.0.3.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "293917397d1d52415bab86a1d27e9442b5bafb989e65cb3cbee0ba601970bc2d";
+      sha256 = "502f8aef0eab71e3b07404e888962930d3fd751d4402c178ed4ab2b38b1f9fb4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/br/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/br/thunderbird-102.0.3.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "317883e2764505713e4507fffeaf1528f685fc774b99dc5b802164cdd1473292";
+      sha256 = "1d3ec6f206083eca2b72f65bf50134163f58e800607e768892765f040feea94b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ca/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/ca/thunderbird-102.0.3.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "cdfcbddc1697b46a85b67382d7b4a9d64d1ffc31d5faeb8e0edd21f4868a6008";
+      sha256 = "aaae5de848334d5ebc3f761ec6780aa9826e43424308c256d40469c63699b6cc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/cak/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/cak/thunderbird-102.0.3.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "8c1d1dff29b7631d5aad6384d02269b5c058bd1c37d85de0c92fd74e2a08e37c";
+      sha256 = "f391f7d47c1fd9cb5ad7f5e1d79e20400521449404842cedaa7e5ac613e71e10";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/cs/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/cs/thunderbird-102.0.3.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "3d1818c6d067552a7f7c62fc9dfae7370c309c9604f20ba1f1f4723020f04c7f";
+      sha256 = "9ba13380b2ac7c54f15e294fdd1534eb6687056865dad5f72aa4c7120fb2740b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/cy/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/cy/thunderbird-102.0.3.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "d339d87800e4060120468314544b34b4dfc355a5369363d6df826a6f10682afc";
+      sha256 = "3f93b8fbe6cb9928a546768fbf0976b69361fd1ca34acc207b74a267cab32b7b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/da/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/da/thunderbird-102.0.3.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "e00bb159fa9d113272866986eb8f9c3e6c3f29748cc7240cc736c00ed3eb1927";
+      sha256 = "45a5500cad37d4a50ae16801362a1b32f4233f9febd2400deb239e082fd59421";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/de/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/de/thunderbird-102.0.3.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "af8365195927f75f6aac52fd91904193172f5e3b7bc09a7e52a94840ede1a6aa";
+      sha256 = "4b36a09e6945c0a4674982e726ceaccf7b7724d9f394640f190ab0b2597cff4c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/dsb/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/dsb/thunderbird-102.0.3.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "96bdb60659052126bca84a64a1f2fdd26654875d74feacd4b9d50cf66b90c3d9";
+      sha256 = "3ab10a155916f89c803738fcac21a66b670321795b2aed813d3007e34f00b996";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/el/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/el/thunderbird-102.0.3.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "af0101f1d999947cb02b3cf7c92eadab0f360b64f64788a3ea2ecbb6e8628c9d";
+      sha256 = "2bcdedd483a0724714e20416fe4ff57d5f8d7e07da32e54430ab1af20a6f6089";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/en-CA/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/en-CA/thunderbird-102.0.3.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "3537bfe2ffe474e587df4549a243ace7fb02236e8a424fac9c9e23ea74978969";
+      sha256 = "0b5bc27fd53c7b19a81d0dd502866237e0861770cc8e7caba5b5771b5321cdf3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/en-GB/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/en-GB/thunderbird-102.0.3.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "ff0daecd9a50d9bb060750d822bd0da409ac838f9280faf71ed6f146f1bd928d";
+      sha256 = "4bd0315b1b1f8d9d83e91b845df10807274c3ee921551fdece8a25cf51db08f2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/en-US/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/en-US/thunderbird-102.0.3.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "f4da2a0627b042e61b8f25eb57396ab71d862c728abd9cc82e9eb102b27d26f5";
+      sha256 = "16c2db5a24db5f9a7b449a73ebe0b881fd6965c4060f9b005df2ec819dded4e0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/es-AR/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/es-AR/thunderbird-102.0.3.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "a052ed75f7b3aaa2fea27b7eaa658a0d75e03c5d8e51214e9207e79c8c656489";
+      sha256 = "a9cb0bbc9ea7cfe759cf19e9e27cf23ca88967d26e7a951a5b58908fdd535cdc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/es-ES/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/es-ES/thunderbird-102.0.3.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "312b2eb38ec895a77a10cbd41cf861f03520d9ce7ff6cc0b2fd9e282c1a85743";
+      sha256 = "462ebc50ec7fb4a4f6fe81fcec48d2e50ae6ae0c90768499104692fdd5e78396";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/et/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/es-MX/thunderbird-102.0.3.tar.bz2";
+      locale = "es-MX";
+      arch = "linux-x86_64";
+      sha256 = "bb025a6d3bda7916ecba63b400386fa046d0a075ad1f82213d7b6577d6605edc";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/et/thunderbird-102.0.3.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "257137eab9877c8c6663cfa9200707f5ff5ff30076c72952f43db9eeb3fc334b";
+      sha256 = "7914cf39516159f769f29ca73985ae45d587c8db953fea10aa9814d65bbc341d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/eu/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/eu/thunderbird-102.0.3.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "69e426d23b3d29aa625d3fcc18080befe5ea717279a4d17a798c987819ce9f0d";
+      sha256 = "b34813f880a4a48152695a65d5ff24e206e34bdbdaeb8edef59c0075d3b130de";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/fi/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/fi/thunderbird-102.0.3.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "2acb1d75cf32c65ca281ee353a79973bda5b96cfb1b8c6d55f91f5051ad9b720";
+      sha256 = "33aff0a00102765d0e102eea520f615a3d4d0f1d93a00e8768e6fc93492fd16e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/fr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/fr/thunderbird-102.0.3.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "979a4ab6ae26ed9fe2320bc0baf828588ee96899d9aa04781aa5e3f7e1e4e35a";
+      sha256 = "0cce5a940d8c3a2b9d15d3102108d21c3165d69c30a62618da0a93b95a52cf99";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/fy-NL/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/fy-NL/thunderbird-102.0.3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "2cad6ddf73676bedc04d18afec2fce7f8085fe10400b514d5091113dbd1ccd39";
+      sha256 = "bba6ccedface111987459a370352972853fd0af65a61a1a0032faf24113730df";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ga-IE/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/ga-IE/thunderbird-102.0.3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "6a8b5f6f413bf2d9122b90865131f1b2e3d1f528a2c0c54b0c3118b16948ef6f";
+      sha256 = "18960a121ffc43f27e9fa733ec2a80881f4ca9316bf6114ccc693de772416c89";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/gd/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/gd/thunderbird-102.0.3.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "e739fdbcd525b1ec9a6415a1fc2b4f982895bc07e503324f8ee7cb9c44e30bf1";
+      sha256 = "6e4430667839fbab52acc968036d9a08d99eec0eed5ceb5284ac747c4026c5ff";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/gl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/gl/thunderbird-102.0.3.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "b8b87d0c8d200264e7aab95fc2f1a59b3ffd1b0a6143409cb947df6acce2711b";
+      sha256 = "0c871f1f195fc35b78c9f6b1f93220635231f117da3c5b470b852724408390e9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/he/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/he/thunderbird-102.0.3.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "3d8048e55eb538414b436387419d0ed2b4589a6846d55c49665af2741082bd03";
+      sha256 = "e0f6dc98cebe0a00361b05292547d338d767837b5a29740786049f0af9bdbf38";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/hr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/hr/thunderbird-102.0.3.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "e3eb72e83138d593046db8c72a09538b3b83abdef9b1534b9cf757751f172f78";
+      sha256 = "af6a7cd558d9ce3f30c98fc1f6d4d5ffab8342dbab27b381943f8d21aab05f37";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/hsb/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/hsb/thunderbird-102.0.3.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "e110bd72de8a035ba2de4f849b09e60d11db161b09dda2bd4ba01ee7e42c0075";
+      sha256 = "fc121b9b7ff2a74562dd239345d8754b3f21d5ea99eea47eee2436c71aad39fe";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/hu/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/hu/thunderbird-102.0.3.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "2fc4d4e970257aff81352132dd73fc365cc7df822b70aef9716082cb455bbc6b";
+      sha256 = "e8df28798a07a4a43265f5a8c29ae0844f083f51bffe54afc9b173881407021b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/hy-AM/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/hy-AM/thunderbird-102.0.3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "ff5d16b7712f6975e68305f4d50e3c97846238021a4ffeb87526a5db0eb76db3";
+      sha256 = "8a7c705633a98937550b8c22199dfba8f9908fd6ea2c41cccf504bcb8c1b0c05";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/id/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/id/thunderbird-102.0.3.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "5063b921fbe8ea8273441868f1cda6e0e32a8fe00b2b866dd4f91c9f12f15011";
+      sha256 = "ed2d44255fc8d227a602743619b6bab606bbc17de96f90503c644347fa99cc58";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/is/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/is/thunderbird-102.0.3.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "55d42de9dea45c13ad4288144b544d61b789d94d85976525b18c6dd32a75d210";
+      sha256 = "309d47fece404ef7717d95cf0b4920be48ecee0b69c73a1431e7044fab5c46d2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/it/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/it/thunderbird-102.0.3.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "7a6774106b689e6f829f8f74b03d23a85d79b9f8304d9a60d3fd172188e1bc26";
+      sha256 = "e92bd95955e9e6964394d95dd6564956e14c618e73f9853a72473cc89f6e68b7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ja/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/ja/thunderbird-102.0.3.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "b557c29aa992758dd4f92d3dab71cdac764b82b66359b75f2695de4fa052f918";
+      sha256 = "81299c0ccaf3dd52d92a081a828d01573bcfe7f821c7cb6d0697acb505591189";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ka/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/ka/thunderbird-102.0.3.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "681430faee4d1e6512ca4a68142b6c3314f26e2944c7de04016404c60bae735e";
+      sha256 = "8445a72ae12af5c11d56e0dc1d8bc3beb5c368386950b3815bc63c6b3ff48837";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/kab/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/kab/thunderbird-102.0.3.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "5b45b128a48395300ed63e033ea09562b368276c7e6a9ea7801db74b8db13e97";
+      sha256 = "c403ad18c89ba13550484a4cf83afd0e28c6a11dead70f4a40ad81e136b5c4a7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/kk/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/kk/thunderbird-102.0.3.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "a44dfb8259cd9e8c694e8c842cf5b691f2bfe5d9c5176dcc65bcfa9a316e78d5";
+      sha256 = "924ddb7c862291732f58dd3e57b9a3b30e39eea24efc1a02a6226f580c6878ca";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ko/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/ko/thunderbird-102.0.3.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "e04ab8d19264afe6207875ea08b878993041ca84b613c4184d608a4f8bbedcba";
+      sha256 = "7663f31cc759cf0115a75bba540f57f6c64905c63d204825a5fc63ad6e274edd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/lt/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/lt/thunderbird-102.0.3.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "4cc3797ed91e6edfe994821bca011f20a64a7d1f6bc13634c1a31c877b161b2c";
+      sha256 = "039d08152f607f6a8190cdb306e37ec2434447c655e9a86a5703170a36116a4b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/lv/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/lv/thunderbird-102.0.3.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "011867f9ee77187f02b6ce0040ab9c2d4babd6d2bbbb4c174094cc5f35eca65d";
+      sha256 = "0f40dbd570823d52abf7739024f1dda2a52303b02edf63939b6a544f15231252";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ms/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/ms/thunderbird-102.0.3.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "8f9bd1f1d5052a8259f1096b38fef693f5a74e81b8a2bb69477fc1cfa7461796";
+      sha256 = "6f8abab920d8755f94bbbaa151fa6400be664b7e6dedc57e7c94c0bb2dfc4752";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/nb-NO/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/nb-NO/thunderbird-102.0.3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "7bc57e4bc1373b5b484eb98f9775b85bbe9c6564e246af157b51314f74a20c67";
+      sha256 = "4938fe75b54544ff7888c6db0a52b94ab4d71af15cfe429d6420ace100f47f0d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/nl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/nl/thunderbird-102.0.3.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "bff24b619fa4282cc6341828528798d0d256213b43f1bcb4b36070e370bd2ba6";
+      sha256 = "769484d34082d656720e92f737bc7b80c39685e74aefa3148e8988d54c3fb96e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/nn-NO/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/nn-NO/thunderbird-102.0.3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "4286c9c093aacb233874bb1439e8b7880d7f3e81dc1bdeb24dd0096075d34b7d";
+      sha256 = "2f6628897a9dda07bbf8f0d5df020b073b081ebb5d77942f23a38900b56f0cc5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/pa-IN/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/pa-IN/thunderbird-102.0.3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "6ae5d50b4296201996b6ddf9ab2614534ec5fa3ed903c8e9d36c3254af820862";
+      sha256 = "d5381e984b7f180c743f1572ee156c9b23350eacf3cea6b005aa159022bcb5c5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/pl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/pl/thunderbird-102.0.3.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "ac2fb293885f0a37d0ec6903cb72ca0d2126e18540a8e542ebf89e15748ed9e7";
+      sha256 = "2322ce9c3979e01d3bad6af964b1917293a654fa24e1ae70413194e93ebc4016";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/pt-BR/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/pt-BR/thunderbird-102.0.3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "7d31e4ea4f14cf1b3c2c2c7dc9af2d0c2e97d397a6748cb53f8fc0ded21c3d5b";
+      sha256 = "c427e30ce35ae73c9f214aaccbd61880dc896f18619d85e81f166d068d01a107";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/pt-PT/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/pt-PT/thunderbird-102.0.3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "7eedd322ea310df8b308a075c995cb530892be67348b66bac82096cc3d7da035";
+      sha256 = "8593bd34d6c87882d38cb521bd7e64e698565376bc50198a840f48516d2d1473";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/rm/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/rm/thunderbird-102.0.3.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "606b4d58bc6afd7fe67be985d3eac5ad2c734c0037bd5e6380e9b0993579d762";
+      sha256 = "8afd7611f7a3604fd1b720ca4fd8f91b46e43a905874d87ef1befaefcfb73c16";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ro/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/ro/thunderbird-102.0.3.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "a189258f7986e540edec1c0cb35f84f58924a079cce2da2332ad80a323c63241";
+      sha256 = "322faa61dc5524d84fadbd57df1cf6a12631c12b02af79807f6c0042c2d7906a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/ru/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/ru/thunderbird-102.0.3.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "2677c5d98c13ad6cdf3698b644b38ea9c94e94e46eec9ef307036d5bd3d32c9d";
+      sha256 = "696b98e0a1309bb66355051a0dd507a323e16fd98425fe8fff9688625edd6669";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/sk/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/sk/thunderbird-102.0.3.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "f3d630189c20ff6d4246f4f67173f60ff89bc4643267e6fd27cc37a25437b6d6";
+      sha256 = "4370208682ced071070f798a5f3f024a6a154e12150435550ddb96334dd773de";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/sl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/sl/thunderbird-102.0.3.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "d2020220b3c54b9bbc114ff367c10818541bd070f5e0e0d4c56fdbb027bd8d85";
+      sha256 = "c7b15cbd62fcc90503f16ca6cfccded4205cd2af058886f23435317b0f085425";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/sq/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/sq/thunderbird-102.0.3.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "91cc13d2a69372b619273feeabb961ae4e27dda6973b64cbb316db7207760c27";
+      sha256 = "e5827847a7d987fdc0484bdc70110213b1d3a1ee4ba8e0b10bcebfc39c9f3e5a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/sr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/sr/thunderbird-102.0.3.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "7b4c459eb200c9d407acfbcc451290a5f43c6b9f0aa4dac6d4536c267b6afadf";
+      sha256 = "a17962cbf4cc6b302a7b06432fa9a5ba11e33505089619bb677293d6f3529832";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/sv-SE/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/sv-SE/thunderbird-102.0.3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "be920ab8279dfe412f5e12082a7709d0e24ea7869f5a86d36e65962430a5798e";
+      sha256 = "bb11f3928321898f0c746dc988995bf853e102f753b91c602073c8357cfb1d00";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/th/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/th/thunderbird-102.0.3.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "2a6d558efee3c0d02e4695b77b1f9dbaacf673f499a4ef28e3763358bb61346f";
+      sha256 = "38696729272f4ca48d918767135e03a24226f86529d243482c729196d645f94b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/tr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/tr/thunderbird-102.0.3.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "0cb0bb5991481cdb80d729f1c59276f4e1e12fac48b820fe5e352d63a44ff8ea";
+      sha256 = "3857970887245300da2d764a2da99a64fcdd725ae9456dbe423a79483666cd93";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/uk/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/uk/thunderbird-102.0.3.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "056a958ad687e5b3a0c707379d15ba2b23e17a5c11f113edebcecaf5ab229ada";
+      sha256 = "743b5f2b7e04af087acbf75ca47ea5ec9588530908a33c8e2025d1ee6d91b70e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/uz/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/uz/thunderbird-102.0.3.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "31bf50803722d1b8017861da34237c41d725649a5884b33a15a3bc35738adb94";
+      sha256 = "ab498aa09a784ca8f42ecae1cfb7ed6b54afbf7381fc3f32391cf160983fdbc6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/vi/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/vi/thunderbird-102.0.3.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "55b5d7c9c3ce8b02d58cb371b58afeff39f08e8b45b1d8875aaa267273ff65b0";
+      sha256 = "57d18f28b4ebe93093657aab133c58da1859ad8261fe5eb14f156a813c9feb53";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/zh-CN/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/zh-CN/thunderbird-102.0.3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "39983db7492adfd30f7c281f7de16f5538e65dfffd86579cc6abd91936c420b7";
+      sha256 = "7922f00281084e18f3a27f661c14730de81b7df0ed3052374ad6ee1f93d15ed3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-x86_64/zh-TW/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-x86_64/zh-TW/thunderbird-102.0.3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "0b0dbff293c33ed286904f798153c64e8ee631430e9293bc384ca1f1368c44f8";
+      sha256 = "c8119e17541bd649728d3fa4f725231ded11f37809048c5b20e8847b8c222ec5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/af/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/af/thunderbird-102.0.3.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "dd662bf17307215d0ffab8ea10852bf1a742b5dc0564b07b1f3583239169fccb";
+      sha256 = "dd728dbb96d781c4ad0b2a01d67807d2b8235c7b77f652b4d226248f84f2bb92";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ar/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/ar/thunderbird-102.0.3.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "b3ea9d805c423c3ae2b7bdf74bcc3bc3cda88467c28c3eb02c5cf9f42bcee801";
+      sha256 = "68314d9ce2afc0a91578b7761df736b16d3016629ac191474a014e662bf4e419";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ast/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/ast/thunderbird-102.0.3.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "5853f37ec0ac021ace8ee23b2255bc680c2ac5a8c81a4023a98235d3fa2b53d4";
+      sha256 = "e9e82165023f075e6380794487474856ef0420530f94f8c1c233d3112fcc2ca5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/be/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/be/thunderbird-102.0.3.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "ef0149c8c758a487cfd748f0a0cd114ee01d3fe63605952e3f5cb02c0fe2e351";
+      sha256 = "3722fc4b2a9f42104f4bb2267923320c392f817486c1dcfbe4a92c01764a900c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/bg/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/bg/thunderbird-102.0.3.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "9ce3b7ee2fae34af3e272d1a0a24a086901e032e589169005a4b75ca1dff6051";
+      sha256 = "719f8571d79cdef43abba3bd2e453d875652b9bde7b24ed987cbb83b313e8cf0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/br/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/br/thunderbird-102.0.3.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "6bb10ee9209b264889fd5338be11a6ed0295c4480eae1b0ca35ca8cd5e173066";
+      sha256 = "8195d158a2770707073ae0ed18bcf578ff061c052d593b4feb02e9f10facb6be";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ca/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/ca/thunderbird-102.0.3.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "8b2cbcce416213c2628656722f2d6f4a8de47b8f601e6da665c99ba2710e3ae5";
+      sha256 = "f97b5247b38c00f2e6db3a2edd878de0059dec8a59b92663ea2d9f7175a4eb7e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/cak/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/cak/thunderbird-102.0.3.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "140658bf9d5d0e7d8cdf7a6ecd987fd9d18a789d92a7ccc9fe64200fa531c0b6";
+      sha256 = "247f1be0ebac1033b519dadefb35c645c02c6352658a24e9b2864d449bc91ab3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/cs/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/cs/thunderbird-102.0.3.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "5c4dffc7b3f672edbaf6906e487fc6636ab25fcc8dc9e3697b2b8d2a90ba24da";
+      sha256 = "39bec8757b777aeadf5e3803a1b8ca52bf8c62f906d792b1d47a68b67593162f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/cy/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/cy/thunderbird-102.0.3.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "b248ee575f00f1b4de3ac4be15886f270366b1073ad6dd84f4807ecc7fbd9a9f";
+      sha256 = "d9899c8f3b6c538828b559af3990d44bb93fa085539815f4c800bcd3f7f2029c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/da/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/da/thunderbird-102.0.3.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "e2c03805474f8c39467217cd26a08133fd3cba61de35d4a2515b1d535bea6d0b";
+      sha256 = "359ffd538a7f5f2870d8bd379f1538800defe296766a0cae57432e545f0ee49e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/de/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/de/thunderbird-102.0.3.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "5de15b1da2b90eac08889791178a2d8b304b97bb4377c2478a0142ad0dc166f0";
+      sha256 = "1f372cd57db1e564d960c12dd34317747017d4255e2c5dc8f960d5075bf2a835";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/dsb/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/dsb/thunderbird-102.0.3.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "20c2c5e9a57440eb046b35ce7f549d846e17afd26cf4883d7ee9de2223bce0d2";
+      sha256 = "fca6872c8bc3fd832ceb96b4cabe189fb4b679592fbf4fd4e27df514da917d4e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/el/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/el/thunderbird-102.0.3.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "3c5c3462455517f391ef0aa194a39522397d971e8d5ab2113a47cde1bea3b7b6";
+      sha256 = "81ba36edd7ce98f44a86511fc7b03e030e2fc2ec1821640114a6546babc1b042";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/en-CA/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/en-CA/thunderbird-102.0.3.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "adee07c4cc48bcd3595d32c881bedabf3410df9c3517c3f8f6feeb237552451d";
+      sha256 = "bf3ec87dd0842e92d0a759e8bad1eb5fbce8917277fabfd70b8366bfab9f011f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/en-GB/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/en-GB/thunderbird-102.0.3.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "b9eaf0f03ac73e961a160017bfc3f4537592d6d6d63239c3a8249fdb08a5f232";
+      sha256 = "9b1ac42adceab6ddc19bc432ae4568fe4008f0063c59b86871041a299890d9fe";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/en-US/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/en-US/thunderbird-102.0.3.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "50783e08cf7bcb904bcca66270b55570a961390d078dae9998fcf8e527f92d3f";
+      sha256 = "acd7b35b5d7d2e863a0a37a850b60d6ce91d156476ce1c7974256339000d86bb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/es-AR/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/es-AR/thunderbird-102.0.3.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "e43babb45d6bffed8e2f27b7a21c211306322cec480b928124118b6bf999b6f9";
+      sha256 = "4b2715d15add631a1158e843108cbcc0eefce833ec42d7d35b4d856b473cb48f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/es-ES/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/es-ES/thunderbird-102.0.3.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "eead62cde35d787634bb1b6e6e8a96458f05e68d0bb9cd66c3926350d890c5a2";
+      sha256 = "6b3dcd54b1e948ee36a3e674c22e56356b66503bd40e149b9a24ea3116cf98e5";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/es-MX/thunderbird-102.0.3.tar.bz2";
+      locale = "es-MX";
+      arch = "linux-i686";
+      sha256 = "49fedc894cd933770536eea6359c31a01e47ad9e797274284bfaf3ea8de8ff15";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/et/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/et/thunderbird-102.0.3.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "c3b4d1ebdc325e6ecd6f35012634ea5f4ffd620de7c30589a8999b128b986d59";
+      sha256 = "78d961730172ae310bc08139d0eff9471745900d85fd8a568c97d649bca1b354";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/eu/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/eu/thunderbird-102.0.3.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "b23c783109a22c71bd5b337e2633bf2d17f8ee7b580faa43164b2ce7d70d5c45";
+      sha256 = "d8dbc084f38f86598cb1efe16a6c48634c57830318d9a9d1f5ac9ef7c63ef7ea";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/fi/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/fi/thunderbird-102.0.3.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "a34afada49c57d6816cfc472681b100366df881fdd343495b959df44dcc8bf5b";
+      sha256 = "71d303185d5ec95d607507bb9836a01940908e27c15117575280b13dcb5788c0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/fr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/fr/thunderbird-102.0.3.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "85c5472de95eb357bba1eb697b17b309ec586717ef09a735cc94b3d7ee069ce3";
+      sha256 = "55e158f1204517652d03e2b7d1600cee41f8c024db794f4676826f960440a6a4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/fy-NL/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/fy-NL/thunderbird-102.0.3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "e654bd29cd2a4a99a09d0d7feca2af89cd308d8d9fca6ad1069e5b026e04cee2";
+      sha256 = "329d42fef604eba4f3b5d036ba5b9acf055673205dd30f8651c94f5c7684bbf6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ga-IE/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/ga-IE/thunderbird-102.0.3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "ae2e865abb044bb61f51f46636f84054f87ef0e2d46b0c4d85d990bcb05d45da";
+      sha256 = "4c4d3de0d9db04caf2b46238c47c6b897f2d7fe52fe21cfa14d71568671dbf02";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/gd/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/gd/thunderbird-102.0.3.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "54b117bb7ba110de0c3fb5e9c4d2743d54a49b941c273ed7f8c11dae30c1517e";
+      sha256 = "f14761057f6d1d6934e5e1cc55335a46f26a2382dc4708632665265331b4f08b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/gl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/gl/thunderbird-102.0.3.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "bcec6b86c99fd463cbb16974e43fb232bc93e5ff2b1b08b18332000b274eaa67";
+      sha256 = "2078e7499593799d76b2242f44c0097d5a1ec357da62802d5d1cce47732a75a3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/he/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/he/thunderbird-102.0.3.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "9ab72a7b9a87a75b113421ceef891b3e546a056e48c039f7af20e85a1b17b598";
+      sha256 = "2fa1c357cfb849d61562bca9146939eda36f0af909022dbd21029b3c47f683ae";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/hr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/hr/thunderbird-102.0.3.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "b8ec76e30180214f2c4d2743686e8de374207fbad8677d5801eb941174217834";
+      sha256 = "c1b8fd464affaa87903856b9c959a09b120814d6887ce946db14e1f429a85304";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/hsb/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/hsb/thunderbird-102.0.3.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "5d35c9c51d1d94c55cf72901866ce0896770d8939fbbefe234f312f1b18c6b17";
+      sha256 = "db8ac9b2463293d8360cb04df2a5a7c92f4b8eee7f1e705ca3b2f19031ff2d4e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/hu/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/hu/thunderbird-102.0.3.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "dc34328fd070973dd230158679bc34ba79075eaf8c62b4c3d67fc9daa8fd04a2";
+      sha256 = "3749911e71ef81a89a3009bf691c8a06abbc1ca537dedb68c785dca9f0257d4f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/hy-AM/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/hy-AM/thunderbird-102.0.3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "6e94dca126ef9f60dc8f6086b4396548fbf3db4cd85feba332ee9cdc5c5546e1";
+      sha256 = "07988301e82d78494e478fd5f99a0639642364bf53f8cd9711ff643112cf25c2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/id/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/id/thunderbird-102.0.3.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "7ef09c4636f141fc19ca67e0787d1a04d4b6856d6bfc57732f1eacc31fe6b437";
+      sha256 = "8af0ece3ba77f12ed9053ff9bcf311cebcf8159b34bded5df09748c2fbfb208a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/is/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/is/thunderbird-102.0.3.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "8644c28c791152e6de4bf932417328afbcb3ff1832e85ded577d88a045071ceb";
+      sha256 = "663b1af1fb3977edcb5524769effd6a94da93860c9c7206c4b31aadb85e5c8bf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/it/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/it/thunderbird-102.0.3.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "a17c80fdb39ff828ab0b7d8fb2274a2f9c1dafb4d8657c510e894697f72e6941";
+      sha256 = "83739d727628ef7b60c5732d41bb6c708d3adfa5fb2ccfbb0f1a62f4ac0317c5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ja/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/ja/thunderbird-102.0.3.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "50f48c0bb455132ee1a8e7f2a98a7e01688c0517c134dbf706538432615f44ec";
+      sha256 = "79d20840657d20afbe7d1dcf5e86d26ded6e72a52d41b4433dbd7c08e77a239b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ka/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/ka/thunderbird-102.0.3.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "16b4cdc1dda75f62f664f5d0780e4dd9e65c91414fa3c6e546ed9ae39a5f251b";
+      sha256 = "86b332459621f593e9f311b1b606e38923ad8862b4d0b6a35e113cda67ad4255";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/kab/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/kab/thunderbird-102.0.3.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "ef2db45999395216684c0cdee16fbaa9ad8a665088d529bcb80df72d442b433b";
+      sha256 = "9e4def077f06509440bc78d7ac2b7573c0e2140944bb0761d55472cb1a5465c8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/kk/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/kk/thunderbird-102.0.3.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "fb1e05654c70c6b4361892799bf5e2b2035183407db9cae5307b4191548c3bd9";
+      sha256 = "39bc019264f03f7f8a25bb42242629af3c7971965b7a448f02f862e76087b7c4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ko/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/ko/thunderbird-102.0.3.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "ca29bff1b2276510bba6bdaf280ea8a198fc36c77b325e60a4c1f5207a16a7e2";
+      sha256 = "183bb61c5e4ab7ee00b5da58bee26557e82c9a9ced39e276c8a5b3f5f7974c42";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/lt/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/lt/thunderbird-102.0.3.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "7551bc85a46fa13c4fd7d72b31d34bda108bf5c7831825b7906c153542918f86";
+      sha256 = "da9177b28632516fecdfdb0561a9af8c502872f1f79ed552d3c7f948597ff55f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/lv/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/lv/thunderbird-102.0.3.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "a6fd175e80f8f14431500cd272f7a277ab7b210b6d81c4b80c333e34e13260f7";
+      sha256 = "5a808bff2a272396c43ecb2353dde36a1ef7f2b6c871f00e94f20f787e0ff84b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ms/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/ms/thunderbird-102.0.3.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "5fcb5b9a0a04957192a40fda0b097a1f781a98d9b18e6165810bbfad96cf188a";
+      sha256 = "e6b6ab180f723936c8a8a870359ffec20347d9fc58eb1b6406b76c7fa292ca1a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/nb-NO/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/nb-NO/thunderbird-102.0.3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "50d5e767ea3c826d3c924d5a50bce2db2eff9b5ada8c2fd10b4bd8c85061e9da";
+      sha256 = "bf21182e27be5dd930b2cb2dcd31ed0c1c4c14b0c09a34e1be7f62b6aef85800";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/nl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/nl/thunderbird-102.0.3.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "c44d23adedd33715a38aa6a704de273de1034dbf0964698224463a2eb3a22fde";
+      sha256 = "431ac204db5cce7c76e5221df0754dbbca2c4eaaf131b7a144b2e325f2df8e5c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/nn-NO/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/nn-NO/thunderbird-102.0.3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "c2081d7dc420cf97cbfc38901af9e3654bdd00610ad27cfc0a006afb7de003c5";
+      sha256 = "52b6f7f08ee856f631376e78ecb0ab52ac3b88faee03f4604459b5ac8a98e18b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/pa-IN/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/pa-IN/thunderbird-102.0.3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "426e6b686e8cfa660dadda666b7bfdc0a70ccb5db4134e4960cf7c408e88c9e4";
+      sha256 = "b1e5cbd3ac22af04a17920831d79c953311a9e1163cc4ca6e8aecaca89411152";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/pl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/pl/thunderbird-102.0.3.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "c667bddefd1b82dd4945ca3a4a392f60b27ab7ab56e1b9fece0cac0dc4eb4971";
+      sha256 = "0a15a79b2be773aab7e9b719ce0212168479e78ceb4771096f3fbad13ee202af";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/pt-BR/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/pt-BR/thunderbird-102.0.3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "ea24bf62001fa225ed08a05a34f8e5b0579de6c6b79fa08bd28760f41607ffd2";
+      sha256 = "ec994c42a39304861c0d5994826aa7baa2e5e07359fc192059a5f4a7e75232a0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/pt-PT/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/pt-PT/thunderbird-102.0.3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "8676b8fcd019099ede4973fa1e949e63ea06bd5dc599cc6dcc836dc49fdf4470";
+      sha256 = "efc3b02b4f1ad379568aab7bcda964ace0ca6b041197522ab5beaed2f349f16d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/rm/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/rm/thunderbird-102.0.3.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "4aa9681f172a62d5be35c5c4e3ba500253541ef4f8e38eaf37fcb41dac7989c2";
+      sha256 = "68e891c973d3f1c0d3e375bda27c4b3f1d778996dcad1377601cff5a93aef613";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ro/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/ro/thunderbird-102.0.3.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "12c57824de26d6bfde6e9de1c3d5b5b1481213ce939fc4860c2fc86aaf8d64a1";
+      sha256 = "7d60e055c73d0b121e5e772447f6eb7ec7b2858ef99f2a60d5b30a6ee593d04c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/ru/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/ru/thunderbird-102.0.3.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "3afa7da7eacf0a3479b92a72c3d1f503d62961a9683c9cf5a538da90e5a3bae8";
+      sha256 = "8df485fdf589942e5e0110401fde31dc33af56fb0b1e0f972990cd25460651dc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/sk/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/sk/thunderbird-102.0.3.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "1f5b0a28de82f795eb54daf44b8b807fdd30a7bff9dc5d1565adb001d38bd354";
+      sha256 = "b699730217177e392d0e51024dd86c93bd5655702e0e7ac628c1af729480fd8b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/sl/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/sl/thunderbird-102.0.3.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "340026146fd09e3ed7a49a7123898b3d005a147d4988bc2df2c86b173fa088fb";
+      sha256 = "5cd62795e8c2195bff851e077ddd4ba0b6b725a562d1e4f95100f1e7cfb00d49";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/sq/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/sq/thunderbird-102.0.3.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "64a9d0d4652d2d709aed3aa1e2a09bcf17ce936c0c4c950a27f8784e0a89d995";
+      sha256 = "2cbe949408ec382b91fc056935014f800d13b7cc4fcd19e5d5699a6252698545";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/sr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/sr/thunderbird-102.0.3.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "eb59bc42ef366a5ecf98f20f53113e69cc2f6591008bcccf592bc76dab636945";
+      sha256 = "264ee1a41398ff754b6b3b349b2728812bb0bf651aa39e3d1661b15e7f15ed02";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/sv-SE/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/sv-SE/thunderbird-102.0.3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "0f833b8b7a83b06b2f3cab5bffe94bfe28cbfc043543f73102f6789fdce95e61";
+      sha256 = "05393be6b938ecb9327078305910204554ef34c413f95bf8bfc0fa846fd5e8da";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/th/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/th/thunderbird-102.0.3.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "149d88dbb883e9eb04584d080d5e746a0165fa9cecc100e1af875414bd2c1154";
+      sha256 = "9282291d0668dd7ac340dec6ec15cc2f53a08fa280823072c5aa285cab741f2d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/tr/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/tr/thunderbird-102.0.3.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "7b92aa7c7ace49f7e7d0489b5c69a2c1282fc267b3650aec765e194413b6e9e4";
+      sha256 = "415759235885f38a83269100df2492b48be42095e855841d31cd1b4b0875c280";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/uk/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/uk/thunderbird-102.0.3.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "217e921fb8d0fb6773ec7b4dabcb9a29293b15d2024353a4b542c8660f93e924";
+      sha256 = "480923d1f68028250ca5b7170c5391fe39152c4597ed307f1e232a2f6efaf1dc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/uz/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/uz/thunderbird-102.0.3.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "9428919a2d99f2ae953e50d148ab27200a3d9d8d02e5a8f5615a804468867922";
+      sha256 = "fdb1d65960820ebe14e6a8698abd11583652cd74f3f9412e2ff5c38df0a5b212";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/vi/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/vi/thunderbird-102.0.3.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "2ee2b69190e6a5640b378d8a4b1dbe78aff7cae1db131aa162e23ee6626ee215";
+      sha256 = "eb2bab16ff71881bbc6590ddd731ecbf9a1a19d5f499c9d023626da42e4ff3c6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/zh-CN/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/zh-CN/thunderbird-102.0.3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "e0537b6f509428a3721bac1ab4ff4567568d9854ece675a68a7bc2c058176e7f";
+      sha256 = "0047b3f174dcd19556bf1f6f1f4bfa5fc87a6cab53d7e4d111ad7f321ffec09c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.7.0/linux-i686/zh-TW/thunderbird-91.7.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.0.3/linux-i686/zh-TW/thunderbird-102.0.3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "ec7aec372154e7e7281fd1b2d84068140c50577d8e1f3ad30006092fefc61766";
+      sha256 = "cdee1981e868cb8df03681051c02ecf07936d1f5dcdee1c0f30d6c4742042b64";
     }
     ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index e2d4a76df7d0..de8327940313 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -1,21 +1,51 @@
-{ stdenv, lib, callPackage, fetchurl, fetchpatch, nixosTests }:
+{ stdenv, lib, buildMozillaMach, callPackage, fetchurl, fetchpatch, nixosTests }:
 
-let
-  common = opts: callPackage (import ../../browsers/firefox/common.nix opts) {
-    webrtcSupport = false;
+rec {
+  thunderbird = thunderbird-102;
+  thunderbird-91 = (buildMozillaMach rec {
+    pname = "thunderbird";
+    version = "91.12.0";
+    application = "comm/mail";
+    applicationName = "Mozilla Thunderbird";
+    binaryName = pname;
+    src = fetchurl {
+      url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
+      sha512 = "1c0200a84ccc4124127d472713d72c4ff7ece8d61ad120d5c45c732a3ab4f86a2edfea23a8bf26e4739d24956654aec30e7bc59a28af17fbbf10f3d67466649a";
+    };
+    extraPatches = [
+      # The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
+      ./no-buildconfig.patch
+    ];
+
+    meta = with lib; {
+      description = "A full-featured e-mail client";
+      homepage = "https://thunderbird.net/";
+      maintainers = with maintainers; [ eelco lovesegfault pierron vcunat ];
+      platforms = platforms.unix;
+      badPlatforms = platforms.darwin;
+      broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
+                                             # not in `badPlatforms` because cross-compilation on 64-bit machine might work.
+      license = licenses.mpl20;
+    };
+    updateScript = callPackage ./update.nix {
+      attrPath = "thunderbird-91-unwrapped";
+      versionPrefix = "91";
+    };
+  }).override {
     geolocationSupport = false;
-  };
-in
+    webrtcSupport = false;
 
-rec {
-  thunderbird = (common rec {
+    pgoSupport = false; # console.warn: feeds: "downloadFeed: network connection unavailable"
+  };
+  thunderbird-102 = (buildMozillaMach rec {
     pname = "thunderbird";
-    version = "91.7.0";
+    version = "102.0.3";
     application = "comm/mail";
+    applicationName = "Mozilla Thunderbird";
     binaryName = pname;
     src = fetchurl {
       url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-      sha512 = "2afaee16f155edcb0bdb46ebe282a733cf041ec6f562aebd06f8b675e46917f6f500fcc532fc54d74f3f4b0b489a88934a2c6c304f849873de4bc2690b9056a0";
+      sha512 = "ac9f22935ef558890c95cf7fbbbe32a5bb1b7140acb10088ed0d037d1ca5c6e11695c131eb40844807003b77e83b1dd2d9008df420ec394fed5008d5c4c6c3cb";
     };
     extraPatches = [
       # The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
@@ -34,8 +64,12 @@ rec {
     };
     updateScript = callPackage ./update.nix {
       attrPath = "thunderbird-unwrapped";
+      versionPrefix = "102";
     };
   }).override {
+    geolocationSupport = false;
+    webrtcSupport = false;
+
     pgoSupport = false; # console.warn: feeds: "downloadFeed: network connection unavailable"
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
index e5edfaa46709..b4b46f36b3fc 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
@@ -3,12 +3,12 @@ electron, libsecret }:
 
 stdenv.mkDerivation rec {
   pname = "tutanota-desktop";
-  version = "3.91.10";
+  version = "3.98.17";
 
   src = fetchurl {
-    url = "https://github.com/tutao/tutanota/releases/download/tutanota-release-${version}/${pname}-${version}-unpacked-linux.tar.gz";
+    url = "https://github.com/tutao/tutanota/releases/download/tutanota-desktop-release-${version}/${pname}-${version}-unpacked-linux.tar.gz";
     name = "tutanota-desktop-${version}.tar.gz";
-    sha256 = "sha256-RlEgpXco0lkkjlJ8FZz4MxYznKLPl1Lxkb5MSmhOTzI=";
+    sha256 = "sha256-rVAiutjFI3/KJZeiTy6H2IdMh+SFz9+NvEoriPTnW2w=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/misc/zammad/default.nix b/nixpkgs/pkgs/applications/networking/misc/zammad/default.nix
index ca5e2222c8e1..b7d5dbae760a 100644
--- a/nixpkgs/pkgs/applications/networking/misc/zammad/default.nix
+++ b/nixpkgs/pkgs/applications/networking/misc/zammad/default.nix
@@ -21,7 +21,7 @@
 
 let
   pname = "zammad";
-  version = "5.1.0";
+  version = "5.1.1";
 
   src = applyPatches {
 
diff --git a/nixpkgs/pkgs/applications/networking/misc/zammad/gemset.nix b/nixpkgs/pkgs/applications/networking/misc/zammad/gemset.nix
index 2f9e77d42531..ceb3ef12958b 100644
--- a/nixpkgs/pkgs/applications/networking/misc/zammad/gemset.nix
+++ b/nixpkgs/pkgs/applications/networking/misc/zammad/gemset.nix
@@ -664,10 +664,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04vxmjr200akcil9fqxc9ghbb9q0lyrh2q03xxncycd5vln910fi";
+      sha256 = "1pfk942d6qwhw151hxaz7n4knk6whyxqvvywdx2cdw9yhykyaqzq";
       type = "gem";
     };
-    version = "6.2.0";
+    version = "6.2.1";
   };
   factory_bot_rails = {
     dependencies = ["factory_bot" "railties"];
@@ -1452,10 +1452,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p6b3q411h2mw4dsvhjrp1hh66hha5cm69fqg85vn2lizz71n6xz";
+      sha256 = "1g43ii497cwdqhfnaxfl500bq5yfc5hfv5df1lvf6wcjnd708ihd";
       type = "gem";
     };
-    version = "1.13.3";
+    version = "1.13.4";
   };
   nori = {
     groups = ["default"];
@@ -1700,10 +1700,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19mf9f5zx23cjjn0p77wz1igzpfr22mxhljgavffl8fwqq74v4ih";
+      sha256 = "01ldw5ba6xfn2k97n75n52qs4f0fy8xmn58c4247xf476nfvg035";
       type = "gem";
     };
-    version = "3.2.5";
+    version = "3.2.6";
   };
   power_assert = {
     groups = ["default" "development" "test"];
@@ -1786,10 +1786,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xvkz9xrd1cqnlm0qac1iwwxzndx3cc17zrjncpa4lzjfwbxhsnm";
+      sha256 = "0df9bknc2dllk8v9fhgidzbvbryaxa8fgifrk40cdz9csjsphbky";
       type = "gem";
     };
-    version = "4.3.11";
+    version = "4.3.12";
   };
   pundit = {
     dependencies = ["activesupport"];
@@ -1833,6 +1833,17 @@
     };
     version = "2.2.3";
   };
+  rack-attack = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rc6simyql7ax5zzp667x6krl0xxxh3asc1av6gcn8j6cyl86wsx";
+      type = "gem";
+    };
+    version = "6.6.0";
+  };
   rack-livereload = {
     dependencies = ["rack"];
     groups = ["development" "test"];
@@ -2273,10 +2284,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "134zg0dzd7216lyczkhv01v27ikkmipjihcy2bzi0qv72p1i923i";
+      sha256 = "1wybcipkfawg4pragmayiig03xc084x3hbwywsh1dr9x9pa8f9hj";
       type = "gem";
     };
-    version = "1.1.5";
+    version = "1.1.6";
   };
   slack-notifier = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/applications/networking/misc/zammad/package.json b/nixpkgs/pkgs/applications/networking/misc/zammad/package.json
index 00c22263200b..28fd3fdf1126 100644
--- a/nixpkgs/pkgs/applications/networking/misc/zammad/package.json
+++ b/nixpkgs/pkgs/applications/networking/misc/zammad/package.json
@@ -14,5 +14,5 @@
     "stylelint-prettier": "^2.0.0"
   },
   "name": "Zammad",
-  "version": "5.1.0"
+  "version": "5.1.1"
 }
diff --git a/nixpkgs/pkgs/applications/networking/misc/zammad/source.json b/nixpkgs/pkgs/applications/networking/misc/zammad/source.json
index 76e1321433f1..03e8e1103b1a 100644
--- a/nixpkgs/pkgs/applications/networking/misc/zammad/source.json
+++ b/nixpkgs/pkgs/applications/networking/misc/zammad/source.json
@@ -1,7 +1,8 @@
 {
   "owner": "zammad",
   "repo": "zammad",
-  "rev": "eefae45c2ad6e6a96b8df631d2f50f290ecbd27d",
-  "sha256": "EjowvM//+UsAfEH9/0jgLkiD7EWH34M1NQ9U2DotBqc=",
+  "rev": "d71bd90ef964426230664cdfbaa2572325bfed4f",
+  "sha256": "yzDTkjnRBl71REtSKRblkanJWhj7gp/+exhWjxGCFWw=",
   "fetchSubmodules": true
 }
+
diff --git a/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix b/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix
index 2723f3420436..841c733a2f1d 100644
--- a/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix
+++ b/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix
@@ -2,6 +2,7 @@
 , pkg-config
 , python3
 , fetchFromGitLab
+, fetchpatch
 , gtk3
 , glib
 , gdbm
@@ -44,6 +45,26 @@ stdenv.mkDerivation rec {
     libayatana-appindicator-gtk3
   ];
 
+  patches = [
+    # Fix missing tray icon
+    (fetchpatch {
+      url = "https://salsa.debian.org/debian/modem-manager-gui/-/raw/7c3e67a1cf7788d7a4b86be12803870d79aa27f2/debian/patches/fix-tray-icon.patch";
+      sha256 = "sha256-9LjCEQl8YfraVlO1W7+Yy7egLAPu5YfnvGvCI3uGFh8=";
+    })
+    # Fix build with meson 0.61
+    # appdata/meson.build:3:5: ERROR: Function does not take positional arguments.
+    (fetchpatch {
+      url = "https://salsa.debian.org/debian/modem-manager-gui/-/raw/7c3e67a1cf7788d7a4b86be12803870d79aa27f2/debian/patches/meson0.61.patch";
+      sha256 = "sha256-B+tBPIz5RxOwZWYEWttqSKGw2Wbfk0mnBY0Zy0evvAQ=";
+    })
+    # Fix segfault on launch: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1004258
+    # Segmentation fault at address: 0x20
+    (fetchpatch {
+      url = "https://salsa.debian.org/debian/modem-manager-gui/-/commit/8ccffd6dd6b42625d09d5408f37f155d91411116.patch";
+      sha256 = "sha256-q+B+Bcm3uitJ2IfkCiMo3reFV1C06ekmy1vXWC0oHnw=";
+    })
+  ];
+
   postPatch = ''
     patchShebangs man/manhelper.py
   '';
diff --git a/nixpkgs/pkgs/applications/networking/mpop/default.nix b/nixpkgs/pkgs/applications/networking/mpop/default.nix
index e2bf0b134d54..21d9d19e03b3 100644
--- a/nixpkgs/pkgs/applications/networking/mpop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mpop/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mpop";
-  version = "1.4.16";
+  version = "1.4.17";
 
   src = fetchurl {
     url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
-    sha256 = "sha256-hw61cerm0j+5KtDITXnenDjF9iTjYUk31XS/5Jumh/k=";
+    sha256 = "sha256-Qq5JS60pQdn2R8SMPtmMOLqapc8/5I+w/gblttrfi9U=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/msmtp/default.nix b/nixpkgs/pkgs/applications/networking/msmtp/default.nix
index 3bcbdf0cf02b..8006d81c9298 100644
--- a/nixpkgs/pkgs/applications/networking/msmtp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/msmtp/default.nix
@@ -1,59 +1,131 @@
-{ stdenv, lib, fetchurl, autoreconfHook, pkg-config, texinfo
-, netcat-gnu, gnutls, gsasl, libidn2, Security
-, withKeyring ? true, libsecret ? null
-, systemd ? null }:
+{ resholve
+, stdenv
+, symlinkJoin
+, lib
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, bash
+, coreutils
+, gnugrep
+, gnutls
+, gsasl
+, libidn2
+, netcat-gnu
+, texinfo
+, which
+, Security
+, withKeyring ? true
+, libsecret ? null
+, withSystemd ? stdenv.isLinux
+, systemd ? null
+}:
 
 let
-  tester = "n"; # {x| |p|P|n|s}
-  journal = if stdenv.isLinux then "y" else "n";
+  inherit (lib) getBin getExe optionals;
 
-in stdenv.mkDerivation rec {
-  pname = "msmtp";
-  version = "1.8.19";
+  version = "1.8.22";
 
-  src = fetchurl {
-    url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
-    sha256 = "sha256-NKHhmBF2h02+TuZu4NkQPJCYmqTc3Ehh5N4Fzn5EUms=";
+  src = fetchFromGitHub {
+    owner = "marlam";
+    repo = "msmtp-mirror";
+    rev = "msmtp-${version}";
+    hash = "sha256-Jt/uvGBrYYr6ua6LVPiP0nuRiIkxBJASdgHBNHivzxQ=";
   };
 
-  patches = [
-    ./paths.patch
-  ];
+  meta = with lib; {
+    description = "Simple and easy to use SMTP client with excellent sendmail compatibility";
+    homepage = "https://marlam.de/msmtp/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms = platforms.unix;
+  };
 
-  buildInputs = [ gnutls gsasl libidn2 ]
-    ++ lib.optional stdenv.isDarwin Security
-    ++ lib.optional withKeyring libsecret;
+  binaries = stdenv.mkDerivation rec {
+    pname = "msmtp-binaries";
+    inherit version src meta;
 
-  nativeBuildInputs = [ autoreconfHook pkg-config texinfo ];
+    configureFlags = [ "--sysconfdir=/etc" "--with-libgsasl" ]
+      ++ optionals stdenv.isDarwin [ "--with-macosx-keyring" ];
 
-  configureFlags = [ "--sysconfdir=/etc" "--with-libgsasl" ]
-    ++ lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ];
+    buildInputs = [ gnutls gsasl libidn2 ]
+      ++ optionals stdenv.isDarwin [ Security ]
+      ++ optionals withKeyring [ libsecret ];
 
-  postInstall = ''
-    install -d $out/share/doc/${pname}/scripts
-    cp -r scripts/{find_alias,msmtpqueue,msmtpq,set_sendmail} $out/share/doc/${pname}/scripts
-    install -Dm644 doc/*.example $out/share/doc/${pname}
+    nativeBuildInputs = [ autoreconfHook pkg-config texinfo ];
 
-    substitute scripts/msmtpq/msmtpq $out/bin/msmtpq \
-      --replace @msmtp@      $out/bin/msmtp \
-      --replace @nc@         ${netcat-gnu}/bin/nc \
-      --replace @journal@    ${journal} \
-      ${lib.optionalString (journal == "y") "--replace @systemdcat@ ${systemd}/bin/systemd-cat" } \
-      --replace @test@       ${tester}
+    enableParallelBuilding = true;
 
-    substitute scripts/msmtpq/msmtp-queue $out/bin/msmtp-queue \
-      --replace @msmtpq@ $out/bin/msmtpq
+    postInstall = ''
+      install -Dm444 -t $out/share/doc/msmtp doc/*.example
+      ln -s msmtp $out/bin/sendmail
+    '';
+  };
 
-    ln -s msmtp $out/bin/sendmail
+  scripts = resholve.mkDerivation rec {
+    pname = "msmtp-scripts";
+    inherit version src meta;
 
-    chmod +x $out/bin/*
-  '';
+    patches = [ ./paths.patch ];
 
-  meta = with lib; {
-    description = "Simple and easy to use SMTP client with excellent sendmail compatibility";
-    homepage = "https://marlam.de/msmtp/";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ peterhoeg ];
-    platforms = platforms.unix;
+    postPatch = ''
+      substituteInPlace scripts/msmtpq/msmtpq \
+        --replace @journal@ ${if withSystemd then "Y" else "N"}
+    '';
+
+    dontConfigure = true;
+    dontBuild = true;
+
+    installPhase = ''
+      runHook preInstall
+
+      install -Dm555 -t $out/bin                     scripts/msmtpq/msmtp*
+      install -Dm444 -t $out/share/doc/msmtp/scripts scripts/msmtpq/README*
+      install -Dm444 -t $out/share/doc/msmtp/scripts scripts/{find_alias,msmtpqueue,set_sendmail}/*
+
+      if grep --quiet -E '@.+@' $out/bin/*; then
+        echo "Unsubstituted variables found. Aborting!"
+        grep -E '@.+@' $out/bin/*
+        exit 1
+      fi
+
+      runHook postInstall
+    '';
+
+    solutions = {
+      msmtpq = {
+        scripts = [ "bin/msmtpq" ];
+        interpreter = getExe bash;
+        inputs = [
+          binaries
+          coreutils
+          gnugrep
+          netcat-gnu
+          which
+        ] ++ optionals withSystemd [ systemd ];
+        execer = [
+          "cannot:${getBin binaries}/bin/msmtp"
+          "cannot:${getBin netcat-gnu}/bin/nc"
+        ] ++ optionals withSystemd [
+          "cannot:${getBin systemd}/bin/systemd-cat"
+        ];
+        fix."$MSMTP" = [ "msmtp" ];
+        fake.external = [ "ping" ]
+          ++ optionals (!withSystemd) [ "systemd-cat" ];
+      };
+
+      msmtp-queue = {
+        scripts = [ "bin/msmtp-queue" ];
+        interpreter = getExe bash;
+        inputs = [ "${placeholder "out"}/bin" ];
+        execer = [ "cannot:${placeholder "out"}/bin/msmtpq" ];
+      };
+    };
   };
+
+in
+symlinkJoin {
+  name = "msmtp-${version}";
+  inherit version meta;
+  paths = [ binaries scripts ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/msmtp/paths.patch b/nixpkgs/pkgs/applications/networking/msmtp/paths.patch
index 707163bff0c9..7114dc4eca15 100644
--- a/nixpkgs/pkgs/applications/networking/msmtp/paths.patch
+++ b/nixpkgs/pkgs/applications/networking/msmtp/paths.patch
@@ -1,60 +1,30 @@
-diff --git a/scripts/msmtpq/msmtp-queue b/scripts/msmtpq/msmtp-queue
-index 1dc220d..d834241 100755
---- a/scripts/msmtpq/msmtp-queue
-+++ b/scripts/msmtpq/msmtp-queue
-@@ -27,4 +27,4 @@
- ## change the below line to be
- ##   exec /path/to/msmtpq --q-mgmt
- 
--exec msmtpq --q-mgmt "$1"
-+exec @msmtpq@ --q-mgmt "$1"
+35cab741af069571cf4c55e0ce1ae96617d5778c nixify
 diff --git a/scripts/msmtpq/msmtpq b/scripts/msmtpq/msmtpq
-index bdb4fb8..1363a67 100755
+index d8b4039..1ab89f8 100755
 --- a/scripts/msmtpq/msmtpq
 +++ b/scripts/msmtpq/msmtpq
-@@ -59,7 +59,7 @@ err() { dsp '' "$@" '' ; exit 1 ; }
- ##   enter the location of the msmtp executable  (no quotes !!)
- ##   e.g. ( MSMTP=/path/to/msmtp )
- ##   and uncomment the test for its existence
--MSMTP=msmtp
-+MSMTP=@msmtp@
- #[ -x "$MSMTP" ] || \
- #  log -e 1 "msmtpq : can't find the msmtp executable [ $MSMTP ]"   # if not found - complain ; quit
- ##
-@@ -70,9 +70,8 @@ MSMTP=msmtp
+@@ -71,7 +71,7 @@ fi
  ##            ( chmod 0700 msmtp.queue )
  ##
- ## the queue dir - modify this to reflect where you'd like it to be  (no quotes !!)
--Q=~/.msmtp.queue
--[ -d "$Q" ] || \
--  err '' "msmtpq : can't find msmtp queue directory [ $Q ]" ''     # if not present - complain ; quit
+ ## the queue dir - export this variable to reflect where you'd like it to be  (no quotes !!)
+-Q=${Q:-~/.msmtp.queue}
 +Q=${MSMTP_QUEUE:-~/.msmtp.queue}
-+test -d "$Q" || mkdir -p "$Q"
+ [ -d "$Q" ] || mkdir -m 0700 -p "$Q" || \
+   err '' "msmtpq : can't find or create msmtp queue directory [ $Q ]" ''     # if not present - complain ; quit
  ##
- ## set the queue log file var to the location of the msmtp queue log file
- ##   where it is or where you'd like it to be
-@@ -84,7 +83,10 @@ Q=~/.msmtp.queue
- ##     (doing so would be inadvisable under most conditions, however)
+@@ -85,8 +85,10 @@ Q=${Q:-~/.msmtp.queue}
  ##
- ## the queue log file - modify (or comment out) to taste  (but no quotes !!)
--LOG=~/log/msmtp.queue.log
+ ## the queue log file - export this variable to change where logs are stored  (but no quotes !!)
+ ##                      Set it to "" (empty string) to disable logging.
+-[ -v LOG ] || LOG=~/log/msmtp.queue.log
 +LOG=${MSMTP_LOG:-~/log/msmtp.queue.log}
-+test -d "$(dirname $LOG)" || mkdir -p "$(dirname $LOG)"
+ [ -d "$(dirname "$LOG")" ] || mkdir -p "$(dirname "$LOG")"
 +
 +JOURNAL=@journal@
  ## ======================================================================================
  
  ## msmtpq can use the following environment variables :
-@@ -108,7 +110,7 @@ LOG=~/log/msmtp.queue.log
- ##
- #EMAIL_CONN_NOTEST=y                 # deprecated ; use below var
- #EMAIL_CONN_TEST={x| |p|P|n|s}       # see settings above for EMAIL_CONN_TEST
--EMAIL_CONN_TEST=n
-+EMAIL_CONN_TEST=@test@
- #EMAIL_QUEUE_QUIET=t
- ## ======================================================================================
- 
-@@ -138,6 +140,7 @@ on_exit() {                          # unlock the queue on exit if the lock was
+@@ -139,6 +141,7 @@ on_exit() {                          # unlock the queue on exit if the lock was
  ## display msg to user, as well
  ##
  log() {
@@ -62,15 +32,14 @@ index bdb4fb8..1363a67 100755
    local ARG RC PFX
    PFX="$('date' +'%Y %d %b %H:%M:%S')"
                                       # time stamp prefix - "2008 13 Mar 03:59:45 "
-   if [ "$1" = '-e' ] ; then          # there's an error exit code
-@@ -154,10 +157,19 @@ log() {
+@@ -156,10 +159,19 @@ log() {
      done
    fi
  
-+  if [ "$JOURNAL" == "y" ] ; then
-+    for ARG ; do
-+      [ -n "$ARG" ] && \
-+        echo "$PFX : $ARG" | @systemdcat@ -t $NAME -p info
++  if [ "$JOURNAL" = "Y" ]; then
++    for ARG; do
++      [ -n "$ARG" ] &&
++        echo "$ARG" | systemd-cat -t "$NAME" -p info
 +    done
 +  fi
 +
@@ -78,20 +47,8 @@ index bdb4fb8..1363a67 100755
      [ -n "$LKD" ] && lock_queue -u   # unlock here (if locked)
      [ -n "$LOG" ] && \
        echo "    exit code = $RC" >> "$LOG" # logging ok ; send exit code to log
-+    [ "$JOURNAL" == "y" ] && \
-+      echo "exit code= $RC" | @systemdcat@ -t $NAME -p emerg
-     exit $RC                         # exit w/return code
++    [ "$JOURNAL" = "Y" ] && \
++      echo "exit code= $RC" | systemd-cat -t "$NAME" -p emerg
+     exit "$RC"                       # exit w/return code
    fi
  }
-@@ -207,10 +219,7 @@ connect_test() {
-     ping -qnc1 -w4 8.8.8.8 >/dev/null 2>&1 || return 1
- 
-   elif [ "$EMAIL_CONN_TEST" = 'n' ] ; then                     # use netcat (nc) test
--    # must, of course, have netcat (nc) installed
--    which nc >/dev/null 2>&1 || \
--      log -e 1 "msmtpq : can't find netcat executable [ nc ]"  # if not found - complain ; quit
--    'nc' -vz www.debian.org 80 >/dev/null 2>&1 || return 1
-+    @nc@ -vz www.debian.org 80 >/dev/null 2>&1 || return 1
- 
-   elif [ "$EMAIL_CONN_TEST" = 's' ] ; then                     # use sh sockets test
-     # note that this does not work on debian systems
diff --git a/nixpkgs/pkgs/applications/networking/mujmap/default.nix b/nixpkgs/pkgs/applications/networking/mujmap/default.nix
new file mode 100644
index 000000000000..60f49163be73
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mujmap/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, notmuch
+, stdenv
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "mujmap";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "elizagamedev";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-Qb9fEPQrdn+Ek9bdOMfaPIxlGGpQ9RfQZOeeqoOf17E=";
+  };
+
+  cargoSha256 = "sha256-nnAYjutjxtEpDNoWTnlESDO4Haz14wZxY4gdyzdLgBU=";
+
+  buildInputs = [
+    notmuch
+  ] ++ lib.optional stdenv.isDarwin Security;
+
+  meta = with lib; {
+    description = "JMAP integration for notmuch mail";
+    homepage = "https://github.com/elizagamedev/mujmap/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ elizagamedev ];
+    mainProgram = "mujmap";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix b/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
index cf22d8804068..d1091068c6b4 100644
--- a/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -43,11 +43,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "mullvad-vpn";
-  version = "2022.1";
+  version = "2022.2";
 
   src = fetchurl {
     url = "https://github.com/mullvad/mullvadvpn-app/releases/download/${version}/MullvadVPN-${version}_amd64.deb";
-    sha256 = "0s12y9j75k59kqkcvfflb1v5p3ny7xgc1m5bd635lvql1bv46c3i";
+    sha256 = "sha256-h/c4aPH6E2TzbXGROpLJgF9uHYcjvKiW5upIobpJM9o=";
   };
 
   nativeBuildInputs = [
@@ -89,6 +89,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/mullvad/mullvadvpn-app";
     description = "Client for Mullvad VPN";
     changelog = "https://github.com/mullvad/mullvadvpn-app/blob/${version}/CHANGELOG.md";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ Br1ght0ne ymarkus flexagoon ];
diff --git a/nixpkgs/pkgs/applications/networking/mullvad/default.nix b/nixpkgs/pkgs/applications/networking/mullvad/default.nix
new file mode 100644
index 000000000000..7b4bcf9d61b2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mullvad/default.nix
@@ -0,0 +1,8 @@
+{ lib
+, newScope
+}:
+lib.makeScope newScope (self: {
+  libwg = self.callPackage ./libwg.nix { };
+  mullvad = self.callPackage ./mullvad.nix { };
+  openvpn-mullvad = self.callPackage ./openvpn.nix { };
+})
diff --git a/nixpkgs/pkgs/applications/networking/mullvad/libwg.nix b/nixpkgs/pkgs/applications/networking/mullvad/libwg.nix
new file mode 100644
index 000000000000..d54a2cafe8c0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mullvad/libwg.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, mullvad
+}:
+buildGoModule {
+  pname = "libwg";
+
+  inherit (mullvad)
+    version
+    src
+    ;
+
+  sourceRoot = "source/wireguard/libwg";
+
+  vendorSha256 = "qvymWCdJ+GY90W/Fpdp+r1+mTq6O4LyN2Yw/PjKdFm0=";
+
+  # XXX: hack to make the ar archive go to the correct place
+  # This is necessary because passing `-o ...` to `ldflags` does not work
+  # (this doesn't get communicated everywhere in the chain, apparently, so
+  # `go` complains that it can't find an `a.out` file).
+  GOBIN = "${placeholder "out"}/lib";
+  ldflags = [ "-s" "-w" "-buildmode=c-archive" ];
+
+  postInstall = ''
+    mv $out/lib/libwg{,.a}
+  '';
+
+  meta = with lib; {
+    description = "A tiny wrapper around wireguard-go";
+    homepage = "https://github.com/mullvad/mullvadvpn-app/tree/master/wireguard/libwg";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ cole-h ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mullvad/mullvad.nix b/nixpkgs/pkgs/applications/networking/mullvad/mullvad.nix
new file mode 100644
index 000000000000..49f4a44702a8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mullvad/mullvad.nix
@@ -0,0 +1,84 @@
+{ lib
+, stdenv
+, writeText
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, protobuf
+, makeWrapper
+, dbus
+, libnftnl
+, libmnl
+, libwg
+, openvpn-mullvad
+, shadowsocks-rust
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "mullvad";
+  version = "2022.2";
+
+  src = fetchFromGitHub {
+    owner = "mullvad";
+    repo = "mullvadvpn-app";
+    rev = version;
+    hash = "sha256-ZtQKzbFrkacrfPIkMz/UOfIwQBXQUoVVlFla//jmMwY=";
+  };
+
+  cargoHash = "sha256-J6h3KY1RDCnAc/tQHNGEyOlVQoQNhRqjWbmimPitydQ=";
+
+  nativeBuildInputs = [
+    pkg-config
+    protobuf
+    makeWrapper
+  ];
+
+  buildInputs = [
+    dbus.dev
+    libnftnl
+    libmnl
+  ];
+
+  # talpid-core wants libwg.a in build/lib/{triple}
+  preBuild = ''
+    dest=build/lib/${stdenv.targetPlatform.config}
+    mkdir -p $dest
+    ln -s ${libwg}/lib/libwg.a $dest
+  '';
+
+  postFixup =
+    # Place all binaries in the 'mullvad-' namespace, even though these
+    # specific binaries aren't used in the lifetime of the program.
+    ''
+      for bin in relay_list translations-converter; do
+        mv "$out/bin/$bin" "$out/bin/mullvad-$bin"
+      done
+    '' +
+    # Files necessary for OpenVPN tunnels to work.
+    ''
+      mkdir -p $out/share/mullvad
+      cp dist-assets/ca.crt $out/share/mullvad
+      ln -s ${openvpn-mullvad}/bin/openvpn $out/share/mullvad
+      ln -s ${shadowsocks-rust}/bin/sslocal $out/share/mullvad
+      ln -s $out/lib/libtalpid_openvpn_plugin.so $out/share/mullvad
+    '' +
+    # Set the directory where Mullvad will look for its resources by default to
+    # `$out/share`, so that we can avoid putting the files in `$out/bin` --
+    # Mullvad defaults to looking inside the directory its binary is located in
+    # for its resources.
+    ''
+      wrapProgram $out/bin/mullvad-daemon \
+        --set-default MULLVAD_RESOURCE_DIR "$out/share/mullvad"
+    '';
+
+  passthru = {
+    inherit libwg;
+    inherit openvpn-mullvad;
+  };
+
+  meta = with lib; {
+    description = "Mullvad VPN command-line client tools";
+    homepage = "https://github.com/mullvad/mullvadvpn-app";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ cole-h ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mullvad/openvpn.nix b/nixpkgs/pkgs/applications/networking/mullvad/openvpn.nix
new file mode 100644
index 000000000000..b191c31d39ac
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mullvad/openvpn.nix
@@ -0,0 +1,87 @@
+{ lib
+, openvpn
+, fetchpatch
+, fetchurl
+, iproute2
+, autoconf
+, automake
+}:
+
+openvpn.overrideAttrs (oldAttrs:
+  let
+    fetchMullvadPatch = { commit, sha256 }: fetchpatch {
+      url = "https://github.com/mullvad/openvpn/commit/${commit}.patch";
+      inherit sha256;
+    };
+  in
+  rec {
+    pname = "openvpn-mullvad";
+    version = "2.5.3";
+
+    src = fetchurl {
+      url = "https://swupdate.openvpn.net/community/releases/openvpn-${version}.tar.gz";
+      sha256 = "sha256-dfAETfRJQwVVynuZWit3qyTylG/cNmgwG47cI5hqX34=";
+    };
+
+    buildInputs = oldAttrs.buildInputs or [ ] ++ [
+      iproute2
+    ];
+
+    configureFlags = oldAttrs.configureFlags  or [ ] ++ [
+      "--enable-iproute2"
+      "IPROUTE=${iproute2}/sbin/ip"
+    ];
+
+    nativeBuildInputs = oldAttrs.nativeBuildInputs or [ ] ++ [
+      autoconf
+      automake
+    ];
+
+    patches = oldAttrs.patches or [ ] ++ [
+      # look at compare to find the relevant commits
+      # https://github.com/OpenVPN/openvpn/compare/release/2.5...mullvad:mullvad-patches
+      # used openvpn version is the latest tag ending with -mullvad
+      # https://github.com/mullvad/openvpn/tags
+      (fetchMullvadPatch {
+        # "Reduce PUSH_REQUEST_INTERVAL to one second"
+        commit = "41e44158fc71bb6cc8cc6edb6ada3307765a12e8";
+        sha256 = "sha256-UoH0V6gTPdEuybFkWxdaB4zomt7rZeEUyXs9hVPbLb4=";
+      })
+      (fetchMullvadPatch {
+        # "Allow auth plugins to set a failure reason"
+        commit = "f51781c601e8c72ae107deaf25bf66f7c193e9cd";
+        sha256 = "sha256-+kwG0YElL16T0e+avHlI8gNQdAxneRS6fylv7QXvC1s=";
+      })
+      (fetchMullvadPatch {
+        # "Send an event to any plugins when authentication fails"
+        commit = "c2f810f966f2ffd68564d940b5b8946ea6007d5a";
+        sha256 = "sha256-PsKIxYwpLD66YaIpntXJM8OGcObyWBSAJsQ60ojvj30=";
+      })
+      (fetchMullvadPatch {
+        # "Shutdown when STDIN is closed"
+        commit = "879d6a3c0288b5443bbe1b94261655c329fc2e0e";
+        sha256 = "sha256-pRFY4r+b91/xAKXx6u5GLzouQySXuO5gH0kMGm77a3c=";
+      })
+      (fetchMullvadPatch {
+        # "Update TAP hardware ID"
+        commit = "7f71b37a3b25bec0b33a0e29780c222aef869e9d";
+        sha256 = "sha256-RF/GvD/ZvhLdt34wDdUT/yxa+IVWx0eY6WRdNWXxXeQ=";
+      })
+      (fetchMullvadPatch {
+        # "Undo dependency on Python docutils"
+        commit = "abd3c6214529d9f4143cc92dd874d8743abea17c";
+        sha256 = "sha256-SC2RlpWHUDMAEKap1t60dC4hmalk3vok6xY+/xhC2U0=";
+      })
+      (fetchMullvadPatch {
+        # "Prevent signal when stdin is closed from being cleared (#10)"
+        commit = "b45b090c81e7b4f2dc938642af7a1e12f699f5c5";
+        sha256 = "sha256-KPTFmbuJhMI+AvaRuu30CPPLQAXiE/VApxlUCqbZFls=";
+      })
+    ];
+
+    meta = oldAttrs.meta or { } // {
+      description = "OpenVPN with Mullvad-specific patches applied";
+      homepage = "https://github.com/mullvad/openvpn";
+      maintainers = with lib; [ maintainers.cole-h ];
+    };
+  })
diff --git a/nixpkgs/pkgs/applications/networking/mumble/default.nix b/nixpkgs/pkgs/applications/networking/mumble/default.nix
index fefa884c2a62..1604188773d1 100644
--- a/nixpkgs/pkgs/applications/networking/mumble/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mumble/default.nix
@@ -40,7 +40,7 @@ let
       description = "Low-latency, high quality voice chat software";
       homepage = "https://mumble.info";
       license = licenses.bsd3;
-      maintainers = with maintainers; [ petabyteboy infinisil felixsinger ];
+      maintainers = with maintainers; [ infinisil felixsinger ];
       platforms = platforms.linux;
     };
   });
diff --git a/nixpkgs/pkgs/applications/networking/n8n/default.nix b/nixpkgs/pkgs/applications/networking/n8n/default.nix
index 72b4c7720480..84ac952846f3 100644
--- a/nixpkgs/pkgs/applications/networking/n8n/default.nix
+++ b/nixpkgs/pkgs/applications/networking/n8n/default.nix
@@ -1,9 +1,8 @@
-{ pkgs, nodejs-14_x, stdenv, lib }:
+{ pkgs, nodejs-16_x, stdenv, lib, nixosTests }:
 
 let
   nodePackages = import ./node-composition.nix {
     inherit pkgs;
-    nodejs = nodejs-14_x;
     inherit (stdenv.hostPlatform) system;
   };
 in
@@ -12,7 +11,17 @@ nodePackages.n8n.override {
     node-pre-gyp
   ];
 
-  passthru.updateScript = ./generate-dependencies.sh;
+  dontNpmInstall = true;
+
+  postInstall = ''
+    mkdir -p $out/bin
+    ln -s $out/lib/node_modules/n8n/bin/n8n $out/bin/n8n
+  '';
+
+  passthru = {
+    updateScript = ./generate-dependencies.sh;
+    tests = nixosTests.n8n;
+  };
 
   meta = with lib; {
     description = "Free and open fair-code licensed node based Workflow Automation Tool";
diff --git a/nixpkgs/pkgs/applications/networking/n8n/generate-dependencies.sh b/nixpkgs/pkgs/applications/networking/n8n/generate-dependencies.sh
index f7412bc5e5e2..7c1b90a04034 100755
--- a/nixpkgs/pkgs/applications/networking/n8n/generate-dependencies.sh
+++ b/nixpkgs/pkgs/applications/networking/n8n/generate-dependencies.sh
@@ -13,7 +13,7 @@
 cd "$(dirname $(readlink -f $0))"
 
 node2nix \
-  --14 \
+  --nodejs-16 \
   --strip-optional-dependencies \
   --node-env node-env.nix \
   --input package.json \
diff --git a/nixpkgs/pkgs/applications/networking/n8n/node-composition.nix b/nixpkgs/pkgs/applications/networking/n8n/node-composition.nix
index 53bdef1f9864..ca76a98f5a65 100644
--- a/nixpkgs/pkgs/applications/networking/n8n/node-composition.nix
+++ b/nixpkgs/pkgs/applications/networking/n8n/node-composition.nix
@@ -1,8 +1,8 @@
-# This file has been generated by node2nix 1.9.0. Do not edit!
+# This file has been generated by node2nix 1.11.1. Do not edit!
 
 {pkgs ? import <nixpkgs> {
     inherit system;
-  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-16_x"}:
 
 let
   nodeEnv = import ./node-env.nix {
diff --git a/nixpkgs/pkgs/applications/networking/n8n/node-env.nix b/nixpkgs/pkgs/applications/networking/n8n/node-env.nix
index 5f055785791b..2590dd267a4e 100644
--- a/nixpkgs/pkgs/applications/networking/n8n/node-env.nix
+++ b/nixpkgs/pkgs/applications/networking/n8n/node-env.nix
@@ -98,7 +98,7 @@ let
       ''
       + (lib.concatMapStrings (dependency:
         ''
-          if [ ! -e "${dependency.name}" ]; then
+          if [ ! -e "${dependency.packageName}" ]; then
               ${composePackage dependency}
           fi
         ''
@@ -257,8 +257,8 @@ let
           var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
 
           if(![1, 2].includes(packageLock.lockfileVersion)) {
-             process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
-             process.exit(1);
+            process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
+            process.exit(1);
           }
 
           if(packageLock.dependencies !== undefined) {
@@ -390,7 +390,7 @@ let
   buildNodePackage =
     { name
     , packageName
-    , version
+    , version ? null
     , dependencies ? []
     , buildInputs ? []
     , production ? true
@@ -409,7 +409,7 @@ let
       extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ];
     in
     stdenv.mkDerivation ({
-      name = "${name}-${version}";
+      name = "${name}${if version == null then "" else "-${version}"}";
       buildInputs = [ tarWrapper python nodejs ]
         ++ lib.optional (stdenv.isLinux) utillinux
         ++ lib.optional (stdenv.isDarwin) libtool
@@ -441,6 +441,14 @@ let
         if [ -d "$out/lib/node_modules/.bin" ]
         then
             ln -s $out/lib/node_modules/.bin $out/bin
+
+            # Patch the shebang lines of all the executables
+            ls $out/bin/* | while read i
+            do
+                file="$(readlink -f "$i")"
+                chmod u+rwx "$file"
+                patchShebangs "$file"
+            done
         fi
 
         # Create symlinks to the deployed manual page folders, if applicable
@@ -471,7 +479,7 @@ let
   buildNodeDependencies =
     { name
     , packageName
-    , version
+    , version ? null
     , src
     , dependencies ? []
     , buildInputs ? []
@@ -489,7 +497,7 @@ let
       extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
     in
       stdenv.mkDerivation ({
-        name = "node-dependencies-${name}-${version}";
+        name = "node-dependencies-${name}${if version == null then "" else "-${version}"}";
 
         buildInputs = [ tarWrapper python nodejs ]
           ++ lib.optional (stdenv.isLinux) utillinux
@@ -519,6 +527,7 @@ let
             if [ -f ${src}/package-lock.json ]
             then
                 cp ${src}/package-lock.json .
+                chmod 644 package-lock.json
             fi
           ''}
 
@@ -541,7 +550,7 @@ let
   buildNodeShell =
     { name
     , packageName
-    , version
+    , version ? null
     , src
     , dependencies ? []
     , buildInputs ? []
@@ -557,9 +566,10 @@ let
 
     let
       nodeDependencies = buildNodeDependencies args;
+      extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "unpackPhase" "buildPhase" ];
     in
-    stdenv.mkDerivation {
-      name = "node-shell-${name}-${version}";
+    stdenv.mkDerivation ({
+      name = "node-shell-${name}${if version == null then "" else "-${version}"}";
 
       buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
       buildCommand = ''
@@ -578,7 +588,7 @@ let
         export NODE_PATH=${nodeDependencies}/lib/node_modules
         export PATH="${nodeDependencies}/bin:$PATH"
       '';
-    };
+    } // extraArgs);
 in
 {
   buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
diff --git a/nixpkgs/pkgs/applications/networking/n8n/node-packages.nix b/nixpkgs/pkgs/applications/networking/n8n/node-packages.nix
index ab66b28fe17a..3f02ea67c8f8 100644
--- a/nixpkgs/pkgs/applications/networking/n8n/node-packages.nix
+++ b/nixpkgs/pkgs/applications/networking/n8n/node-packages.nix
@@ -1,61 +1,133 @@
-# This file has been generated by node2nix 1.9.0. Do not edit!
+# This file has been generated by node2nix 1.11.1. Do not edit!
 
 {nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
 
 let
   sources = {
-    "@azure/abort-controller-1.0.5" = {
-      name = "_at_azure_slash_abort-controller";
-      packageName = "@azure/abort-controller";
-      version = "1.0.5";
+    "@apidevtools/json-schema-ref-parser-8.0.0" = {
+      name = "_at_apidevtools_slash_json-schema-ref-parser";
+      packageName = "@apidevtools/json-schema-ref-parser";
+      version = "8.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.5.tgz";
-        sha512 = "G5sjKExiVsbFQo+4YY5MBPOSsh3EUv6XmqjgJaF/VCjckWLGGKPUPGfbCSn6Xal6gzGoPQMOQ+wCCGNCX9NAPg==";
+        url = "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-8.0.0.tgz";
+        sha512 = "n4YBtwQhdpLto1BaUCyAeflizmIbaloGShsPyRtFf5qdFJxfssj+GgLavczgKJFa3Bq+3St2CKcpRJdjtB4EBw==";
       };
     };
-    "@azure/core-asynciterator-polyfill-1.0.2" = {
-      name = "_at_azure_slash_core-asynciterator-polyfill";
-      packageName = "@azure/core-asynciterator-polyfill";
-      version = "1.0.2";
+    "@apidevtools/json-schema-ref-parser-9.0.9" = {
+      name = "_at_apidevtools_slash_json-schema-ref-parser";
+      packageName = "@apidevtools/json-schema-ref-parser";
+      version = "9.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz";
+        sha512 = "GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==";
+      };
+    };
+    "@apidevtools/openapi-schemas-2.1.0" = {
+      name = "_at_apidevtools_slash_openapi-schemas";
+      packageName = "@apidevtools/openapi-schemas";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz";
+        sha512 = "Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==";
+      };
+    };
+    "@apidevtools/swagger-cli-4.0.0" = {
+      name = "_at_apidevtools_slash_swagger-cli";
+      packageName = "@apidevtools/swagger-cli";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@apidevtools/swagger-cli/-/swagger-cli-4.0.0.tgz";
+        sha512 = "8jDHtZxEkxFNMfqeNhyHjxiS9P3BlSj1WpetsMExs4N+PIa3d0vSNch4Fk9OlgT/2oClCK0YSc+dmmdVpHh0hg==";
+      };
+    };
+    "@apidevtools/swagger-methods-3.0.2" = {
+      name = "_at_apidevtools_slash_swagger-methods";
+      packageName = "@apidevtools/swagger-methods";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz";
+        sha512 = "QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==";
+      };
+    };
+    "@apidevtools/swagger-parser-9.0.1" = {
+      name = "_at_apidevtools_slash_swagger-parser";
+      packageName = "@apidevtools/swagger-parser";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-9.0.1.tgz";
+        sha512 = "Irqybg4dQrcHhZcxJc/UM4vO7Ksoj1Id5e+K94XUOzllqX1n47HEA50EKiXTCQbykxuJ4cYGIivjx/MRSTC5OA==";
+      };
+    };
+    "@azure/abort-controller-1.1.0" = {
+      name = "_at_azure_slash_abort-controller";
+      packageName = "@azure/abort-controller";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.2.tgz";
-        sha512 = "3rkP4LnnlWawl0LZptJOdXNrT/fHp2eQMadoasa6afspXdpGrtPZuAQc2PD0cpgyuoXtUWyC3tv7xfntjGS5Dw==";
+        url = "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz";
+        sha512 = "TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==";
       };
     };
-    "@azure/core-auth-1.3.2" = {
+    "@azure/core-auth-1.4.0" = {
       name = "_at_azure_slash_core-auth";
       packageName = "@azure/core-auth";
-      version = "1.3.2";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.3.2.tgz";
-        sha512 = "7CU6DmCHIZp5ZPiZ9r3J17lTKMmYsm/zGvNkjArQwPkrLlZ1TZ+EUYfGgh2X31OLMVAQCTJZW4cXHJi02EbJnA==";
+        url = "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.4.0.tgz";
+        sha512 = "HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ==";
       };
     };
-    "@azure/core-http-2.2.4" = {
+    "@azure/core-client-1.6.1" = {
+      name = "_at_azure_slash_core-client";
+      packageName = "@azure/core-client";
+      version = "1.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@azure/core-client/-/core-client-1.6.1.tgz";
+        sha512 = "mZ1MSKhZBYoV8GAWceA+PEJFWV2VpdNSpxxcj1wjIAOi00ykRuIQChT99xlQGZWLY3/NApWhSImlFwsmCEs4vA==";
+      };
+    };
+    "@azure/core-http-2.2.6" = {
       name = "_at_azure_slash_core-http";
       packageName = "@azure/core-http";
-      version = "2.2.4";
+      version = "2.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-http/-/core-http-2.2.4.tgz";
-        sha512 = "QmmJmexXKtPyc3/rsZR/YTLDvMatzbzAypJmLzvlfxgz/SkgnqV/D4f6F2LsK6tBj1qhyp8BoXiOebiej0zz3A==";
+        url = "https://registry.npmjs.org/@azure/core-http/-/core-http-2.2.6.tgz";
+        sha512 = "Lx7A3k2JIXpIbixfUaOOG79WNSo/Y7dhZ0LaLhaayyZ6PwQdVsEQXAR+oIPqPSfgPzv7RtwPSVviJ2APrsQKvQ==";
       };
     };
-    "@azure/core-lro-2.2.4" = {
+    "@azure/core-http-compat-1.3.0" = {
+      name = "_at_azure_slash_core-http-compat";
+      packageName = "@azure/core-http-compat";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@azure/core-http-compat/-/core-http-compat-1.3.0.tgz";
+        sha512 = "ZN9avruqbQ5TxopzG3ih3KRy52n8OAbitX3fnZT5go4hzu0J+KVPSzkL+Wt3hpJpdG8WIfg1sBD1tWkgUdEpBA==";
+      };
+    };
+    "@azure/core-lro-2.2.5" = {
       name = "_at_azure_slash_core-lro";
       packageName = "@azure/core-lro";
-      version = "2.2.4";
+      version = "2.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.2.4.tgz";
-        sha512 = "e1I2v2CZM0mQo8+RSix0x091Av493e4bnT22ds2fcQGslTHzM2oTbswkB65nP4iEpCxBrFxOSDPKExmTmjCVtQ==";
+        url = "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.2.5.tgz";
+        sha512 = "/7LKDHNd2Q6gGCrg7zV4va/N90w250pE4vaQUfFt+hTd/dyycgJWCqQ6EljQr8hrIFiH93C8Apk97tsnl7Czkg==";
       };
     };
-    "@azure/core-paging-1.2.1" = {
+    "@azure/core-paging-1.3.0" = {
       name = "_at_azure_slash_core-paging";
       packageName = "@azure/core-paging";
-      version = "1.2.1";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.3.0.tgz";
+        sha512 = "H6Tg9eBm0brHqLy0OSAGzxIh1t4UL8eZVrSUMJ60Ra9cwq2pOskFqVpz2pYoHDsBY1jZ4V/P8LRGb5D5pmC6rg==";
+      };
+    };
+    "@azure/core-rest-pipeline-1.9.1" = {
+      name = "_at_azure_slash_core-rest-pipeline";
+      packageName = "@azure/core-rest-pipeline";
+      version = "1.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.2.1.tgz";
-        sha512 = "UtH5iMlYsvg+nQYIl4UHlvvSrsBjOlRF4fs0j7mxd3rWdAStrKYrh2durOpHs5C9yZbVhsVDaisoyaf/lL1EVA==";
+        url = "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.9.1.tgz";
+        sha512 = "OVtt0LP0K5ktsKTmh6/695P0mPFmngjdCJPr4V0uvrkhHTkARSQ3VYRnxRc0LC9g3mHcH90C+8a6iF7ApMAZKg==";
       };
     };
     "@azure/core-tracing-1.0.0-preview.13" = {
@@ -67,6 +139,42 @@ let
         sha512 = "KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==";
       };
     };
+    "@azure/core-tracing-1.0.1" = {
+      name = "_at_azure_slash_core-tracing";
+      packageName = "@azure/core-tracing";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.1.tgz";
+        sha512 = "I5CGMoLtX+pI17ZdiFJZgxMJApsK6jjfm85hpgp3oazCdq5Wxgh4wMr7ge/TTWW1B5WBuvIOI1fMU/FrOAMKrw==";
+      };
+    };
+    "@azure/core-util-1.0.0" = {
+      name = "_at_azure_slash_core-util";
+      packageName = "@azure/core-util";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@azure/core-util/-/core-util-1.0.0.tgz";
+        sha512 = "yWshY9cdPthlebnb3Zuz/j0Lv4kjU6u7PR5sW7A9FF7EX+0irMRJAtyTq5TPiDHJfjH8gTSlnIYFj9m7Ed76IQ==";
+      };
+    };
+    "@azure/identity-2.1.0" = {
+      name = "_at_azure_slash_identity";
+      packageName = "@azure/identity";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@azure/identity/-/identity-2.1.0.tgz";
+        sha512 = "BPDz1sK7Ul9t0l9YKLEa8PHqWU4iCfhGJ+ELJl6c8CP3TpJt2urNCbm0ZHsthmxRsYoMPbz2Dvzj30zXZVmAFw==";
+      };
+    };
+    "@azure/keyvault-keys-4.5.0" = {
+      name = "_at_azure_slash_keyvault-keys";
+      packageName = "@azure/keyvault-keys";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@azure/keyvault-keys/-/keyvault-keys-4.5.0.tgz";
+        sha512 = "F+0qpUrIxp1/uuQ3sFsAf4rTXErFwmuVLoXlD2e3ebrONrmYjqszwmlN4tBqAag1W9wGuZTL0jE8X8b+LB83ow==";
+      };
+    };
     "@azure/logger-1.0.3" = {
       name = "_at_azure_slash_logger";
       packageName = "@azure/logger";
@@ -76,49 +184,58 @@ let
         sha512 = "aK4s3Xxjrx3daZr3VylxejK3vG5ExXck5WOHDJ8in/k9AqlfIyFMMT1uG7u8mNjX+QRILTIn0/Xgschfh/dQ9g==";
       };
     };
-    "@azure/ms-rest-azure-env-2.0.0" = {
-      name = "_at_azure_slash_ms-rest-azure-env";
-      packageName = "@azure/ms-rest-azure-env";
-      version = "2.0.0";
+    "@azure/msal-browser-2.28.1" = {
+      name = "_at_azure_slash_msal-browser";
+      packageName = "@azure/msal-browser";
+      version = "2.28.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/ms-rest-azure-env/-/ms-rest-azure-env-2.0.0.tgz";
-        sha512 = "dG76W7ElfLi+fbTjnZVGj+M9e0BIEJmRxU6fHaUQ12bZBe8EJKYb2GV50YWNaP2uJiVQ5+7nXEVj1VN1UQtaEw==";
+        url = "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.28.1.tgz";
+        sha512 = "5uAfwpNGBSRzBGTSS+5l4Zw6msPV7bEmq99n0U3n/N++iTcha+nIp1QujxTPuOLHmTNCeySdMx9qzGqWuy22zQ==";
       };
     };
-    "@azure/ms-rest-js-2.6.1" = {
-      name = "_at_azure_slash_ms-rest-js";
-      packageName = "@azure/ms-rest-js";
-      version = "2.6.1";
+    "@azure/msal-common-7.3.0" = {
+      name = "_at_azure_slash_msal-common";
+      packageName = "@azure/msal-common";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/ms-rest-js/-/ms-rest-js-2.6.1.tgz";
-        sha512 = "LLi4jRe/qy5IM8U2CkoDgSZp2OH+MgDe2wePmhz8uY84Svc53EhHaamVyoU6BjjHBxvCRh1vcD1urJDccrxqIw==";
+        url = "https://registry.npmjs.org/@azure/msal-common/-/msal-common-7.3.0.tgz";
+        sha512 = "revxB3z+QLjwAtU1d04nC1voFr+i3LfqTpUfgrWZVqKh/sSgg0mZZUvw4vKVWB57qtL95sul06G+TfdFZny1Xw==";
       };
     };
-    "@azure/ms-rest-nodeauth-3.1.1" = {
-      name = "_at_azure_slash_ms-rest-nodeauth";
-      packageName = "@azure/ms-rest-nodeauth";
-      version = "3.1.1";
+    "@azure/msal-node-1.12.1" = {
+      name = "_at_azure_slash_msal-node";
+      packageName = "@azure/msal-node";
+      version = "1.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/ms-rest-nodeauth/-/ms-rest-nodeauth-3.1.1.tgz";
-        sha512 = "UA/8dgLy3+ZiwJjAZHxL4MUB14fFQPkaAOZ94jsTW/Z6WmoOeny2+cLk0+dyIX/iH6qSrEWKwbStEeB970B9pA==";
+        url = "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.12.1.tgz";
+        sha512 = "m909lX9C8Ty01DBxbjr4KfAKWibohgRvY7hrdDo13U1ztlH+0Nbt7cPF1vrWonW/CRT4H4xtUa4LCNmivghggw==";
       };
     };
-    "@azure/storage-blob-12.9.0" = {
+    "@azure/storage-blob-12.11.0" = {
       name = "_at_azure_slash_storage-blob";
       packageName = "@azure/storage-blob";
-      version = "12.9.0";
+      version = "12.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.11.0.tgz";
+        sha512 = "na+FisoARuaOWaHWpmdtk3FeuTWf2VWamdJ9/TJJzj5ZdXPLC3juoDgFs6XVuJIoK30yuBpyFBEDXVRK4pB7Tg==";
+      };
+    };
+    "@babel/parser-7.18.11" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.18.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.9.0.tgz";
-        sha512 = "ank38FdCLfJ+EoeMzCz3hkYJuZAd63ARvDKkxZYRDb+beBYf+/+gx8jNTqkq/hfyUl4dJQ/a7tECU0Y0F98CHg==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz";
+        sha512 = "9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==";
       };
     };
-    "@babel/runtime-7.17.8" = {
+    "@babel/runtime-7.18.9" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.17.8";
+      version = "7.18.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz";
-        sha512 = "dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz";
+        sha512 = "lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==";
       };
     };
     "@colors/colors-1.5.0" = {
@@ -139,13 +256,31 @@ let
         sha512 = "hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==";
       };
     };
-    "@fontsource/open-sans-4.5.8" = {
+    "@fontsource/open-sans-4.5.11" = {
       name = "_at_fontsource_slash_open-sans";
       packageName = "@fontsource/open-sans";
-      version = "4.5.8";
+      version = "4.5.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fontsource/open-sans/-/open-sans-4.5.11.tgz";
+        sha512 = "nG0gmbx4pSr8wltdG/ZdlS6OrsMK40Wt6iyuLTKHEf0TQfzKRMlWaskZHdeuWCwS6WUgqHKMf9KSwGdxPfapOg==";
+      };
+    };
+    "@fortawesome/fontawesome-common-types-6.1.2" = {
+      name = "_at_fortawesome_slash_fontawesome-common-types";
+      packageName = "@fortawesome/fontawesome-common-types";
+      version = "6.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fontsource/open-sans/-/open-sans-4.5.8.tgz";
-        sha512 = "3b94XDdRLqL7OlE7OjWg/4pgG825Juw8PLVEDm6h5pio0gMU89ICxfatGxHsBxMGfqad+wnvdmUweZWlELDFpQ==";
+        url = "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.1.2.tgz";
+        sha512 = "wBaAPGz1Awxg05e0PBRkDRuTsy4B3dpBm+zreTTyd9TH4uUM27cAL4xWyWR0rLJCrRwzVsQ4hF3FvM6rqydKPA==";
+      };
+    };
+    "@fortawesome/free-regular-svg-icons-6.1.2" = {
+      name = "_at_fortawesome_slash_free-regular-svg-icons";
+      packageName = "@fortawesome/free-regular-svg-icons";
+      version = "6.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.1.2.tgz";
+        sha512 = "xR4hA+tAwsaTHGfb+25H1gVU/aJ0Rzu+xIUfnyrhaL13yNQ7TWiI2RvzniAaB+VGHDU2a+Pk96Ve+pkN3/+TTQ==";
       };
     };
     "@icetee/ftp-0.3.15" = {
@@ -157,6 +292,24 @@ let
         sha512 = "RxSa9VjcDWgWCYsaLdZItdCnJj7p4LxggaEk+Y3MP0dHKoxez8ioG07DVekVbZZqccsrL+oPB/N9AzVPxj4blg==";
       };
     };
+    "@js-joda/core-5.3.0" = {
+      name = "_at_js-joda_slash_core";
+      packageName = "@js-joda/core";
+      version = "5.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@js-joda/core/-/core-5.3.0.tgz";
+        sha512 = "3uObVJ08i0vSbtsTWQ8omy8XUlVDnoest5MOLp6delLUZev8bu++S+3Aua7xWPPWzQt9pcuwDqjEOKslQVDj8g==";
+      };
+    };
+    "@jsdevtools/ono-7.1.3" = {
+      name = "_at_jsdevtools_slash_ono";
+      packageName = "@jsdevtools/ono";
+      version = "7.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz";
+        sha512 = "4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==";
+      };
+    };
     "@kafkajs/confluent-schema-registry-1.0.6" = {
       name = "_at_kafkajs_slash_confluent-schema-registry";
       packageName = "@kafkajs/confluent-schema-registry";
@@ -184,6 +337,24 @@ let
         sha512 = "GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==";
       };
     };
+    "@mapbox/node-pre-gyp-1.0.9" = {
+      name = "_at_mapbox_slash_node-pre-gyp";
+      packageName = "@mapbox/node-pre-gyp";
+      version = "1.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz";
+        sha512 = "aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==";
+      };
+    };
+    "@n8n_io/riot-tmpl-1.0.1" = {
+      name = "_at_n8n_io_slash_riot-tmpl";
+      packageName = "@n8n_io/riot-tmpl";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@n8n_io/riot-tmpl/-/riot-tmpl-1.0.1.tgz";
+        sha512 = "+ig7/rafN3LGthGEi8fs1N5XxPndmRq5YAX92DWOar9mrMDrYyIjK5XAQaTnTMDQgmKKllrAl+bVRmQXKcLFuw==";
+      };
+    };
     "@nodelib/fs.scandir-2.1.5" = {
       name = "_at_nodelib_slash_fs.scandir";
       packageName = "@nodelib/fs.scandir";
@@ -238,6 +409,15 @@ let
         sha512 = "sBpko86IrTscc39EvHUhL+c++81BVTsIZ3ETu/vG+cCdi0N6vb2DoahR67A9FI2CGnxRRHjnTfa3m6LulwNATA==";
       };
     };
+    "@oclif/core-1.14.1" = {
+      name = "_at_oclif_slash_core";
+      packageName = "@oclif/core";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@oclif/core/-/core-1.14.1.tgz";
+        sha512 = "FgAjfY3Cvzj+i8j08WiD/8adJhZvclFESXAE8Kcp7qglErFKUFK9XY9BS2NyIzLN1NCKc52A64pWunVvPv8g3w==";
+      };
+    };
     "@oclif/errors-1.3.5" = {
       name = "_at_oclif_slash_errors";
       packageName = "@oclif/errors";
@@ -274,6 +454,15 @@ let
         sha512 = "b11xBmIUK+LuuwVGJpFs4LwQN2xj2cBWj2c4z1FtiXGrJ85h9xV6q+k136Hw0tGg1jQoRXuvuBnqQ7es7vO9/Q==";
       };
     };
+    "@oclif/screen-3.0.2" = {
+      name = "_at_oclif_slash_screen";
+      packageName = "@oclif/screen";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@oclif/screen/-/screen-3.0.2.tgz";
+        sha512 = "S/SF/XYJeevwIgHFmVDAFRUvM3m+OjhvCAYMk78ZJQCYCQ5wS7j+LTt1ZEv2jpEEGg2tx/F6TYYWxddNAYHrFQ==";
+      };
+    };
     "@opentelemetry/api-1.1.0" = {
       name = "_at_opentelemetry_slash_api";
       packageName = "@opentelemetry/api";
@@ -319,13 +508,31 @@ let
         sha512 = "sBSO19KzdrJCM3gdx6eIxV8M9Gxfgg6iDQmH5TIAGaUu+X9VDdsINXJOnoiZ1Kx3TrHdH4bt5UVglkjsEGBcvw==";
       };
     };
-    "@sqltools/formatter-1.2.2" = {
+    "@sqltools/formatter-1.2.3" = {
       name = "_at_sqltools_slash_formatter";
       packageName = "@sqltools/formatter";
-      version = "1.2.2";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz";
+        sha512 = "O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==";
+      };
+    };
+    "@techteamer/ocsp-1.0.0" = {
+      name = "_at_techteamer_slash_ocsp";
+      packageName = "@techteamer/ocsp";
+      version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.2.tgz";
-        sha512 = "/5O7Fq6Vnv8L6ucmPjaWbVG1XkP4FO+w5glqfkIsq3Xw4oyNAdJddbnYodNDAfjVUvo/rrSCTom4kAND7T1o5Q==";
+        url = "https://registry.npmjs.org/@techteamer/ocsp/-/ocsp-1.0.0.tgz";
+        sha512 = "lNAOoFHaZN+4huo30ukeqVrUmfC+avoEBYQ11QAnAw1PFhnI5oBCg8O/TNiCoEWix7gNGBIEjrQwtPREqKMPog==";
+      };
+    };
+    "@tediousjs/connection-string-0.3.0" = {
+      name = "_at_tediousjs_slash_connection-string";
+      packageName = "@tediousjs/connection-string";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tediousjs/connection-string/-/connection-string-0.3.0.tgz";
+        sha512 = "d/keJiNKfpHo+GmSB8QcsAwBx8h+V1UbdozA5TD+eSLXprNY53JAYub47J9evsSKWDdNG5uVj0FiMozLKuzowQ==";
       };
     };
     "@tokenizer/token-0.1.1" = {
@@ -355,6 +562,15 @@ let
         sha512 = "RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==";
       };
     };
+    "@tootallnate/once-2.0.0" = {
+      name = "_at_tootallnate_slash_once";
+      packageName = "@tootallnate/once";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz";
+        sha512 = "XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==";
+      };
+    };
     "@types/bluebird-3.5.36" = {
       name = "_at_types_slash_bluebird";
       packageName = "@types/bluebird";
@@ -382,6 +598,15 @@ let
         sha512 = "cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==";
       };
     };
+    "@types/es-aggregate-error-1.0.2" = {
+      name = "_at_types_slash_es-aggregate-error";
+      packageName = "@types/es-aggregate-error";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/es-aggregate-error/-/es-aggregate-error-1.0.2.tgz";
+        sha512 = "erqUpFXksaeR2kejKnhnjZjbFxUpGZx4Z7ydNL9ie8tEhXPiZTsLeUDJ6aR1F8j5wWUAtOAQWUqkc7givBJbBA==";
+      };
+    };
     "@types/express-4.17.13" = {
       name = "_at_types_slash_express";
       packageName = "@types/express";
@@ -400,13 +625,13 @@ let
         sha512 = "WszgUddvM1t5dPpJ3LhWNH8kfNN8GPIBrAGxgIYXVCEGx6Bx4A036aAuf/r5WH9DIEdlmp7gHOYvSM6U87B0ag==";
       };
     };
-    "@types/express-serve-static-core-4.17.28" = {
+    "@types/express-serve-static-core-4.17.30" = {
       name = "_at_types_slash_express-serve-static-core";
       packageName = "@types/express-serve-static-core";
-      version = "4.17.28";
+      version = "4.17.30";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz";
-        sha512 = "P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==";
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz";
+        sha512 = "gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==";
       };
     };
     "@types/express-unless-0.5.3" = {
@@ -427,6 +652,24 @@ let
         sha512 = "L7wFlX3t9GsGgNS0oxLt6zbAZZGgsdptMmciL4cdxHmbL3Hz4Lysh8YqAR34eHsJ1uacJITcZBBDl5XpQlxPpQ==";
       };
     };
+    "@types/generic-pool-3.1.11" = {
+      name = "_at_types_slash_generic-pool";
+      packageName = "@types/generic-pool";
+      version = "3.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/generic-pool/-/generic-pool-3.1.11.tgz";
+        sha512 = "3mcD3ewmaKPbiAZglGj8We4ohlSMfw/xS+bbYUhTv/ALgqrrtJjyL4Ju9IgapXooBCTFEew5LAKQqzZV6/43xg==";
+      };
+    };
+    "@types/glob-7.2.0" = {
+      name = "_at_types_slash_glob";
+      packageName = "@types/glob";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz";
+        sha512 = "ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==";
+      };
+    };
     "@types/json-diff-0.5.2" = {
       name = "_at_types_slash_json-diff";
       packageName = "@types/json-diff";
@@ -436,6 +679,15 @@ let
         sha512 = "2oqXStJYYLDHCciNAClY277Ti3kXT+JLvPD7lLm/490i+B7g0GR6M4qiW+bd2V5vpB+yMKY8IelbsHMAYX1D0A==";
       };
     };
+    "@types/json-schema-7.0.11" = {
+      name = "_at_types_slash_json-schema";
+      packageName = "@types/json-schema";
+      version = "7.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz";
+        sha512 = "wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==";
+      };
+    };
     "@types/jsonwebtoken-8.5.8" = {
       name = "_at_types_slash_jsonwebtoken";
       packageName = "@types/jsonwebtoken";
@@ -445,13 +697,22 @@ let
         sha512 = "zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==";
       };
     };
-    "@types/lodash-4.14.180" = {
+    "@types/lodash-4.14.183" = {
       name = "_at_types_slash_lodash";
       packageName = "@types/lodash";
-      version = "4.14.180";
+      version = "4.14.183";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.183.tgz";
+        sha512 = "UXavyuxzXKMqJPEpFPri6Ku5F9af6ZJXUneHhvQJxavrEjuHkFp2YnDWHcxJiG7hk8ZkWqjcyNeW1s/smZv5cw==";
+      };
+    };
+    "@types/lodash.intersection-4.4.7" = {
+      name = "_at_types_slash_lodash.intersection";
+      packageName = "@types/lodash.intersection";
+      version = "4.4.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.180.tgz";
-        sha512 = "XOKXa1KIxtNXgASAnwj7cnttJxS4fksBRywK/9LzRV5YxrF80BXZIGeQSuoESQ/VkUj30Ae0+YcuHc15wJCB2g==";
+        url = "https://registry.npmjs.org/@types/lodash.intersection/-/lodash.intersection-4.4.7.tgz";
+        sha512 = "7ukD2s54bmRNNpiH9ApEErO4H6mB8+WmXFr/6RpP3e/n7h3UFhEJC7QwLcoWAqOrYCIRFMAAwDf3ambSsW8c5Q==";
       };
     };
     "@types/lossless-json-1.0.1" = {
@@ -463,40 +724,49 @@ let
         sha512 = "zPE8kmpeL5/6L5gtTQHSOkAW/OSYYNTDRt6/2oEgLO1Zd3Rj5WVDoMloTtLJxQJhZGLGbL4pktKSh3NbzdaWdw==";
       };
     };
-    "@types/mime-1.3.2" = {
+    "@types/mime-3.0.1" = {
       name = "_at_types_slash_mime";
       packageName = "@types/mime";
-      version = "1.3.2";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz";
-        sha512 = "YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==";
+        url = "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz";
+        sha512 = "Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==";
       };
     };
-    "@types/node-12.20.47" = {
-      name = "_at_types_slash_node";
-      packageName = "@types/node";
-      version = "12.20.47";
+    "@types/minimatch-3.0.5" = {
+      name = "_at_types_slash_minimatch";
+      packageName = "@types/minimatch";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-12.20.47.tgz";
-        sha512 = "BzcaRsnFuznzOItW1WpQrDHM7plAa7GIDMZ6b5pnMbkqEtM/6WCOhvZar39oeMQP79gwvFUWjjptE7/KGcNqFg==";
+        url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz";
+        sha512 = "Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==";
       };
     };
-    "@types/node-17.0.23" = {
+    "@types/multer-1.4.7" = {
+      name = "_at_types_slash_multer";
+      packageName = "@types/multer";
+      version = "1.4.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz";
+        sha512 = "/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==";
+      };
+    };
+    "@types/node-18.7.6" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "17.0.23";
+      version = "18.7.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz";
-        sha512 = "UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==";
+        url = "https://registry.npmjs.org/@types/node/-/node-18.7.6.tgz";
+        sha512 = "EdxgKRXgYsNITy5mjjXjVE/CS8YENSdhiagGrLqjG0pvA2owgJ6i4l7wy/PFZGC0B1/H20lWKN7ONVDNYDZm7A==";
       };
     };
-    "@types/node-fetch-2.6.1" = {
+    "@types/node-fetch-2.6.2" = {
       name = "_at_types_slash_node-fetch";
       packageName = "@types/node-fetch";
-      version = "2.6.1";
+      version = "2.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz";
-        sha512 = "oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==";
+        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz";
+        sha512 = "DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==";
       };
     };
     "@types/promise-ftp-1.3.4" = {
@@ -535,31 +805,40 @@ let
         sha512 = "EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==";
       };
     };
-    "@types/readable-stream-2.3.13" = {
-      name = "_at_types_slash_readable-stream";
-      packageName = "@types/readable-stream";
-      version = "2.3.13";
+    "@types/serve-static-1.15.0" = {
+      name = "_at_types_slash_serve-static";
+      packageName = "@types/serve-static";
+      version = "1.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.13.tgz";
-        sha512 = "4JSCx8EUzaW9Idevt+9lsRAt1lcSccoQfE+AouM1gk8sFxnnytKNIO3wTl9Dy+4m6jRJ1yXhboLHHT/LXBQiEw==";
+        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz";
+        sha512 = "z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==";
       };
     };
-    "@types/serve-static-1.13.10" = {
-      name = "_at_types_slash_serve-static";
-      packageName = "@types/serve-static";
-      version = "1.13.10";
+    "@types/shelljs-0.8.11" = {
+      name = "_at_types_slash_shelljs";
+      packageName = "@types/shelljs";
+      version = "0.8.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz";
-        sha512 = "nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==";
+        url = "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.11.tgz";
+        sha512 = "x9yaMvEh5BEaZKeVQC4vp3l+QoFj3BXcd4aYfuKSzIIyihjdVARAadYy3SMNIz0WCCdS2vB9JL/U6GQk5PaxQw==";
       };
     };
-    "@types/snowflake-sdk-1.6.2" = {
+    "@types/snowflake-sdk-1.6.7" = {
       name = "_at_types_slash_snowflake-sdk";
       packageName = "@types/snowflake-sdk";
-      version = "1.6.2";
+      version = "1.6.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/snowflake-sdk/-/snowflake-sdk-1.6.7.tgz";
+        sha512 = "qFObD4B02XTgVX1LsAdehdoxzhvJIn2WB5I7oJBr53JC+1X/0AzaUXm7tenuf53FWg6wyVuBgG79yxxBIJpKFA==";
+      };
+    };
+    "@types/swagger-ui-express-4.1.3" = {
+      name = "_at_types_slash_swagger-ui-express";
+      packageName = "@types/swagger-ui-express";
+      version = "4.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/snowflake-sdk/-/snowflake-sdk-1.6.2.tgz";
-        sha512 = "68albQhKcrtz6G7IhXab8JE/96EN5COPo63+xUxvjwbYXe1BD8WTLVIXIxLdvC5oLmrK8Tf5W0mz+swaH/AfBQ==";
+        url = "https://registry.npmjs.org/@types/swagger-ui-express/-/swagger-ui-express-4.1.3.tgz";
+        sha512 = "jqCjGU/tGEaqIplPy3WyQg+Nrp6y80DCFnDEAvVKWkJyv0VivSSDCChkppHRHAablvInZe6pijDFMnavtN0vqA==";
       };
     };
     "@types/tough-cookie-2.3.8" = {
@@ -580,13 +859,22 @@ let
         sha512 = "sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==";
       };
     };
-    "@xmldom/xmldom-0.7.5" = {
-      name = "_at_xmldom_slash_xmldom";
-      packageName = "@xmldom/xmldom";
-      version = "0.7.5";
+    "@types/yamljs-0.2.31" = {
+      name = "_at_types_slash_yamljs";
+      packageName = "@types/yamljs";
+      version = "0.2.31";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/yamljs/-/yamljs-0.2.31.tgz";
+        sha512 = "QcJ5ZczaXAqbVD3o8mw/mEBhRvO5UAdTtbvgwL/OgoWubvNBh6/MxLBAigtcgIFaq3shon9m3POIxQaLQt4fxQ==";
+      };
+    };
+    "@vue/compiler-sfc-2.7.8" = {
+      name = "_at_vue_slash_compiler-sfc";
+      packageName = "@vue/compiler-sfc";
+      version = "2.7.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz";
-        sha512 = "V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==";
+        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.8.tgz";
+        sha512 = "2DK4YWKfgLnW9VDR9gnju1gcYRk3flKj8UNsms7fsRmFcg35slVTZEkqwBtX+wJBXaamFfn6NxSsZh3h12Ix/Q==";
       };
     };
     "abbrev-1.1.1" = {
@@ -598,15 +886,6 @@ let
         sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
       };
     };
-    "abort-controller-3.0.0" = {
-      name = "abort-controller";
-      packageName = "abort-controller";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz";
-        sha512 = "h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==";
-      };
-    };
     "accepts-1.3.8" = {
       name = "accepts";
       packageName = "accepts";
@@ -625,13 +904,13 @@ let
         sha512 = "H5aqjkogmFxfaOrfn/e42vyspHVXuJ8er63KuljJXpOyJ1ZO/U5CrHfO8BLKIy2w7mBM02L5quL0vbfQqrGQbA==";
       };
     };
-    "acorn-8.7.0" = {
+    "acorn-8.8.0" = {
       name = "acorn";
       packageName = "acorn";
-      version = "8.7.0";
+      version = "8.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz";
-        sha512 = "V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==";
+        url = "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz";
+        sha512 = "QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==";
       };
     };
     "acorn-walk-8.2.0" = {
@@ -643,13 +922,13 @@ let
         sha512 = "k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==";
       };
     };
-    "adal-node-0.2.3" = {
-      name = "adal-node";
-      packageName = "adal-node";
-      version = "0.2.3";
+    "address-1.2.0" = {
+      name = "address";
+      packageName = "address";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/adal-node/-/adal-node-0.2.3.tgz";
-        sha512 = "gMKr8RuYEYvsj7jyfCv/4BfKToQThz20SP71N3AtFn3ia3yAR8Qt2T3aVQhuJzunWs2b38ZsQV0qsZPdwZr7VQ==";
+        url = "https://registry.npmjs.org/address/-/address-1.2.0.tgz";
+        sha512 = "tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig==";
       };
     };
     "adler-32-1.2.0" = {
@@ -658,16 +937,16 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz";
-        sha1 = "6a3e6bf0a63900ba15652808cb15c6813d1a5f25";
+        sha512 = "/vUqU/UY4MVeFsg+SsK6c+/05RZXIHZMGJA+PX5JyWI0ZRcBpupnRuPLU/NXXoFwMYCPCoxIfElM2eS+DUXCqQ==";
       };
     };
-    "adler-32-1.3.0" = {
+    "adler-32-1.3.1" = {
       name = "adler-32";
       packageName = "adler-32";
-      version = "1.3.0";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/adler-32/-/adler-32-1.3.0.tgz";
-        sha512 = "f5nltvjl+PRUh6YNfUstRaXwJxtfnKEWhAWWlmKvh+Y3J2+98a0KKVYDEhz6NdKGqswLhjNGznxfSsZGOvOd9g==";
+        url = "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz";
+        sha512 = "ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==";
       };
     };
     "agent-base-6.0.2" = {
@@ -697,6 +976,15 @@ let
         sha512 = "icU+a4kkq4Y1PS4NNi+YPDMwdlbFcZ1EZTQT2nigW3fvOb6AOgUQ9+Mk4ue0Zu5cBg/XpDzB40oH10ysrk2dmA==";
       };
     };
+    "ansi-escapes-3.2.0" = {
+      name = "ansi-escapes";
+      packageName = "ansi-escapes";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
+        sha512 = "cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==";
+      };
+    };
     "ansi-escapes-4.3.2" = {
       name = "ansi-escapes";
       packageName = "ansi-escapes";
@@ -706,15 +994,6 @@ let
         sha512 = "gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==";
       };
     };
-    "ansi-regex-2.1.1" = {
-      name = "ansi-regex";
-      packageName = "ansi-regex";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
-        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
-      };
-    };
     "ansi-regex-5.0.1" = {
       name = "ansi-regex";
       packageName = "ansi-regex";
@@ -724,15 +1003,6 @@ let
         sha512 = "quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==";
       };
     };
-    "ansi-styles-2.2.1" = {
-      name = "ansi-styles";
-      packageName = "ansi-styles";
-      version = "2.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz";
-        sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
-      };
-    };
     "ansi-styles-4.3.0" = {
       name = "ansi-styles";
       packageName = "ansi-styles";
@@ -742,13 +1012,22 @@ let
         sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
       };
     };
+    "ansicolors-0.3.2" = {
+      name = "ansicolors";
+      packageName = "ansicolors";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz";
+        sha512 = "QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==";
+      };
+    };
     "any-promise-1.3.0" = {
       name = "any-promise";
       packageName = "any-promise";
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz";
-        sha1 = "abc6afeedcea52e809cdc0376aed3ce39635d17f";
+        sha512 = "7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==";
       };
     };
     "anymatch-3.1.2" = {
@@ -760,31 +1039,40 @@ let
         sha512 = "P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==";
       };
     };
-    "app-root-path-3.0.0" = {
+    "app-root-path-3.1.0" = {
       name = "app-root-path";
       packageName = "app-root-path";
-      version = "3.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz";
-        sha512 = "qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==";
+        url = "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz";
+        sha512 = "biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==";
       };
     };
-    "aproba-1.2.0" = {
+    "append-field-1.0.0" = {
+      name = "append-field";
+      packageName = "append-field";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz";
+        sha512 = "klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==";
+      };
+    };
+    "aproba-2.0.0" = {
       name = "aproba";
       packageName = "aproba";
-      version = "1.2.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
-        sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
+        url = "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz";
+        sha512 = "lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==";
       };
     };
-    "are-we-there-yet-1.1.7" = {
+    "are-we-there-yet-2.0.0" = {
       name = "are-we-there-yet";
       packageName = "are-we-there-yet";
-      version = "1.1.7";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz";
-        sha512 = "nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==";
+        url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz";
+        sha512 = "Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==";
       };
     };
     "argparse-1.0.10" = {
@@ -796,13 +1084,22 @@ let
         sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
       };
     };
+    "argparse-2.0.1" = {
+      name = "argparse";
+      packageName = "argparse";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz";
+        sha512 = "8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==";
+      };
+    };
     "array-flatten-1.1.1" = {
       name = "array-flatten";
       packageName = "array-flatten";
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz";
-        sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+        sha512 = "PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==";
       };
     };
     "array-parallel-0.1.3" = {
@@ -811,7 +1108,7 @@ let
       version = "0.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/array-parallel/-/array-parallel-0.1.3.tgz";
-        sha1 = "8f785308926ed5aa478c47e64d1b334b6c0c947d";
+        sha512 = "TDPTwSWW5E4oiFiKmz6RGJ/a80Y91GuLgUYuLd49+XBS75tYo8PNgaT2K/OxuQYqkoI852MDGBorg9OcUSTQ8w==";
       };
     };
     "array-series-0.1.5" = {
@@ -820,7 +1117,7 @@ let
       version = "0.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/array-series/-/array-series-0.1.5.tgz";
-        sha1 = "df5d37bfc5c2ef0755e2aa4f92feae7d4b5a972f";
+        sha512 = "L0XlBwfx9QetHOsbLDrE/vh2t018w9462HM3iaFfxRiK83aJjAt/Ja3NMkOW7FICwWTlQBa3ZbL5FKhuQWkDrg==";
       };
     };
     "array-union-2.1.0" = {
@@ -832,6 +1129,15 @@ let
         sha512 = "HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==";
       };
     };
+    "array.prototype.reduce-1.0.4" = {
+      name = "array.prototype.reduce";
+      packageName = "array.prototype.reduce";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz";
+        sha512 = "WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw==";
+      };
+    };
     "asn1-0.2.6" = {
       name = "asn1";
       packageName = "asn1";
@@ -841,15 +1147,6 @@ let
         sha512 = "ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==";
       };
     };
-    "asn1.js-4.10.1" = {
-      name = "asn1.js";
-      packageName = "asn1.js";
-      version = "4.10.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz";
-        sha512 = "p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==";
-      };
-    };
     "asn1.js-5.4.1" = {
       name = "asn1.js";
       packageName = "asn1.js";
@@ -859,15 +1156,6 @@ let
         sha512 = "+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==";
       };
     };
-    "asn1.js-rfc2560-4.0.6" = {
-      name = "asn1.js-rfc2560";
-      packageName = "asn1.js-rfc2560";
-      version = "4.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/asn1.js-rfc2560/-/asn1.js-rfc2560-4.0.6.tgz";
-        sha512 = "ysf48ni+f/efNPilq4+ApbifUPcSW/xbDeQAh055I+grr2gXgNRQqHew7kkO70WSMQ2tEOURVwsK+dJqUNjIIg==";
-      };
-    };
     "asn1.js-rfc2560-5.0.1" = {
       name = "asn1.js-rfc2560";
       packageName = "asn1.js-rfc2560";
@@ -877,15 +1165,6 @@ let
         sha512 = "1PrVg6kuBziDN3PGFmRk3QrjpKvP9h/Hv5yMrFZvC1kpzP6dQRzf5BpKstANqHBkaOUmTpakJWhicTATOA/SbA==";
       };
     };
-    "asn1.js-rfc5280-2.0.1" = {
-      name = "asn1.js-rfc5280";
-      packageName = "asn1.js-rfc5280";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/asn1.js-rfc5280/-/asn1.js-rfc5280-2.0.1.tgz";
-        sha512 = "1e2ypnvTbYD/GdxWK77tdLBahvo1fZUHlQJqAVUuZWdYj0rdjGcf2CWYUtbsyRYpYUMwMWLZFUtLxog8ZXTrcg==";
-      };
-    };
     "asn1.js-rfc5280-3.0.0" = {
       name = "asn1.js-rfc5280";
       packageName = "asn1.js-rfc5280";
@@ -910,34 +1189,34 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
-        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+        sha512 = "NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==";
       };
     };
-    "async-1.5.2" = {
-      name = "async";
-      packageName = "async";
-      version = "1.5.2";
+    "ast-types-0.13.4" = {
+      name = "ast-types";
+      packageName = "ast-types";
+      version = "0.13.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-1.5.2.tgz";
-        sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a";
+        url = "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz";
+        sha512 = "x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==";
       };
     };
-    "async-2.6.3" = {
+    "async-3.2.4" = {
       name = "async";
       packageName = "async";
-      version = "2.6.3";
+      version = "3.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-2.6.3.tgz";
-        sha512 = "zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==";
+        url = "https://registry.npmjs.org/async/-/async-3.2.4.tgz";
+        sha512 = "iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==";
       };
     };
-    "async-3.2.3" = {
-      name = "async";
-      packageName = "async";
-      version = "3.2.3";
+    "async-validator-1.8.5" = {
+      name = "async-validator";
+      packageName = "async-validator";
+      version = "1.8.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-3.2.3.tgz";
-        sha512 = "spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==";
+        url = "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz";
+        sha512 = "tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==";
       };
     };
     "asynckit-0.4.0" = {
@@ -946,7 +1225,16 @@ let
       version = "0.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
-        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+        sha512 = "Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==";
+      };
+    };
+    "at-least-node-1.0.0" = {
+      name = "at-least-node";
+      packageName = "at-least-node";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz";
+        sha512 = "+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==";
       };
     };
     "auto-changelog-1.16.4" = {
@@ -958,22 +1246,31 @@ let
         sha512 = "h7diyELoq692AA4oqO50ULoYKIomUdzuQ+NW+eFPwIX0xzVbXEu9cIcgzZ3TYNVbpkGtcNKh51aRfAQNef7HVA==";
       };
     };
-    "avsc-5.7.3" = {
+    "available-typed-arrays-1.0.5" = {
+      name = "available-typed-arrays";
+      packageName = "available-typed-arrays";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz";
+        sha512 = "DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==";
+      };
+    };
+    "avsc-5.7.5" = {
       name = "avsc";
       packageName = "avsc";
-      version = "5.7.3";
+      version = "5.7.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/avsc/-/avsc-5.7.3.tgz";
-        sha512 = "uUbetCWczQHbsKyX1C99XpQHBM8SWfovvaZhPIj23/1uV7SQf0WeRZbiLpw0JZm+LHTChfNgrLfDJOVoU2kU+A==";
+        url = "https://registry.npmjs.org/avsc/-/avsc-5.7.5.tgz";
+        sha512 = "vkyt1+sj6qaD9oMtqqLE2pZ2IcHI66kFx8lpnVuXp55SnNPjKghfOhVfZpaDwDPpY0oVWP3Qu1uHZWxF3E856A==";
       };
     };
-    "aws-sdk-2.1101.0" = {
+    "aws-sdk-2.1196.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.1101.0";
+      version = "2.1196.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1101.0.tgz";
-        sha512 = "7lyVb7GXGl8yyu954Qxf6vU6MrcgFlmKyTLBVXJyo3Phn1OB+qOExA55WtSC6gQiQ7e5TeWOn1RUHLg30ywTBA==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1196.0.tgz";
+        sha512 = "iOGhCY5IqGfHCJ70p0H/uxkXDh/96KanAMfhnGGbIKbpVliuEV7SYxTfsWORaaUHey+N8FE6OMKfzo7F4X+wQg==";
       };
     };
     "aws-sign2-0.7.0" = {
@@ -982,7 +1279,7 @@ let
       version = "0.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
-        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+        sha512 = "08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==";
       };
     };
     "aws4-1.11.0" = {
@@ -1003,13 +1300,40 @@ let
         sha512 = "ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==";
       };
     };
-    "axios-retry-3.2.4" = {
+    "axios-0.27.2" = {
+      name = "axios";
+      packageName = "axios";
+      version = "0.27.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz";
+        sha512 = "t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==";
+      };
+    };
+    "axios-retry-3.3.1" = {
       name = "axios-retry";
       packageName = "axios-retry";
-      version = "3.2.4";
+      version = "3.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/axios-retry/-/axios-retry-3.3.1.tgz";
+        sha512 = "RohAUQTDxBSWLFEnoIG/6bvmy8l3TfpkclgStjl5MDCMBDgapAWCmr1r/9harQfWC8bzLC8job6UcL1A1Yc+/Q==";
+      };
+    };
+    "babel-helper-vue-jsx-merge-props-2.0.3" = {
+      name = "babel-helper-vue-jsx-merge-props";
+      packageName = "babel-helper-vue-jsx-merge-props";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/axios-retry/-/axios-retry-3.2.4.tgz";
-        sha512 = "Co3UXiv4npi6lM963mfnuH90/YFLKWWDmoBYfxkHT5xtkSSWNqK9zdG3fw5/CP/dsoKB5aMMJCsgab+tp1OxLQ==";
+        url = "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz";
+        sha512 = "gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==";
+      };
+    };
+    "babel-runtime-6.26.0" = {
+      name = "babel-runtime";
+      packageName = "babel-runtime";
+      version = "6.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz";
+        sha512 = "ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==";
       };
     };
     "balanced-match-1.0.2" = {
@@ -1045,7 +1369,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
-        sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+        sha512 = "qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==";
       };
     };
     "bcryptjs-2.4.3" = {
@@ -1054,7 +1378,7 @@ let
       version = "2.4.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz";
-        sha1 = "9ab5627b93e60621ff7cdac5da9733027df1d0cb";
+        sha512 = "V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==";
       };
     };
     "big-integer-1.6.51" = {
@@ -1072,7 +1396,7 @@ let
       version = "2.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.4.0.tgz";
-        sha1 = "838a992da9f9d737e0f4b2db0be62bb09dd0c5e8";
+        sha512 = "uw4ra6Cv483Op/ebM0GBKKfxZlSmn6NgFRby5L3yGTlunLj53KQgndDlqy2WVFOwgvurocApYkSud0aO+mvrpQ==";
       };
     };
     "binary-extensions-2.2.0" = {
@@ -1090,16 +1414,16 @@ let
       version = "0.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/binascii/-/binascii-0.0.2.tgz";
-        sha1 = "a7f8a8801dbccf8b1756b743daa0fee9e2d9e0ee";
+        sha512 = "rA2CrUl1+6yKrn+XgLs8Hdy18OER1UW146nM+ixzhQXDY+Bd3ySkyIJGwF2a4I45JwbvF1mDL/nWkqBwpOcdBA==";
       };
     };
-    "bintrees-1.0.1" = {
+    "bintrees-1.0.2" = {
       name = "bintrees";
       packageName = "bintrees";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz";
-        sha1 = "0e655c9b9c2435eaab68bf4027226d2b55a34524";
+        url = "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz";
+        sha512 = "VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==";
       };
     };
     "bitsyntax-0.1.0" = {
@@ -1120,22 +1444,22 @@ let
         sha512 = "6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==";
       };
     };
-    "bl-3.0.1" = {
+    "bl-4.1.0" = {
       name = "bl";
       packageName = "bl";
-      version = "3.0.1";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bl/-/bl-3.0.1.tgz";
-        sha512 = "jrCW5ZhfQ/Vt07WX1Ngs+yn9BDqPL/gw28S7s9H6QK/gupnizNzJAss5akW20ISgOrbLTlXOOCTJeNUQqruAWQ==";
+        url = "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz";
+        sha512 = "1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==";
       };
     };
-    "bl-4.1.0" = {
+    "bl-5.0.0" = {
       name = "bl";
       packageName = "bl";
-      version = "4.1.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz";
-        sha512 = "1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==";
+        url = "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz";
+        sha512 = "8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==";
       };
     };
     "bluebird-2.11.0" = {
@@ -1144,7 +1468,7 @@ let
       version = "2.11.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz";
-        sha1 = "534b9033c022c9579c56ba3b3e5a5caafbb650e1";
+        sha512 = "UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==";
       };
     };
     "bluebird-3.7.2" = {
@@ -1165,13 +1489,13 @@ let
         sha512 = "c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==";
       };
     };
-    "body-parser-1.19.2" = {
+    "body-parser-1.20.0" = {
       name = "body-parser";
       packageName = "body-parser";
-      version = "1.19.2";
+      version = "1.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz";
-        sha512 = "SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==";
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz";
+        sha512 = "DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==";
       };
     };
     "body-parser-xml-2.0.3" = {
@@ -1189,7 +1513,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz";
-        sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
+        sha512 = "JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==";
       };
     };
     "brace-expansion-1.1.11" = {
@@ -1201,6 +1525,15 @@ let
         sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
       };
     };
+    "brace-expansion-2.0.1" = {
+      name = "brace-expansion";
+      packageName = "brace-expansion";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz";
+        sha512 = "XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==";
+      };
+    };
     "braces-3.0.2" = {
       name = "braces";
       packageName = "braces";
@@ -1216,7 +1549,7 @@ let
       version = "0.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz";
-        sha1 = "9ece5b5aca89a29932242e18bf933def9876cc17";
+        sha512 = "YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==";
       };
     };
     "bson-1.1.6" = {
@@ -1246,13 +1579,22 @@ let
         sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==";
       };
     };
+    "buffer-6.0.3" = {
+      name = "buffer";
+      packageName = "buffer";
+      version = "6.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz";
+        sha512 = "FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==";
+      };
+    };
     "buffer-equal-constant-time-1.0.1" = {
       name = "buffer-equal-constant-time";
       packageName = "buffer-equal-constant-time";
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz";
-        sha1 = "f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819";
+        sha512 = "zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==";
       };
     };
     "buffer-from-1.1.2" = {
@@ -1291,6 +1633,15 @@ let
         sha512 = "MOqV1dKLy1YQgP9m3lFolyMxaU+1+o4afzYYf0H4wNM+x/S0I1QPQfkgGlLiH00EyFrvSmeubeCYFP47rTfpjg==";
       };
     };
+    "busboy-1.6.0" = {
+      name = "busboy";
+      packageName = "busboy";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz";
+        sha512 = "8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==";
+      };
+    };
     "byte-length-1.0.2" = {
       name = "byte-length";
       packageName = "byte-length";
@@ -1306,7 +1657,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz";
-        sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
+        sha512 = "pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==";
       };
     };
     "bytes-3.1.2" = {
@@ -1327,13 +1678,22 @@ let
         sha512 = "7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==";
       };
     };
+    "call-me-maybe-1.0.1" = {
+      name = "call-me-maybe";
+      packageName = "call-me-maybe";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz";
+        sha512 = "wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==";
+      };
+    };
     "callback-stream-1.1.0" = {
       name = "callback-stream";
       packageName = "callback-stream";
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/callback-stream/-/callback-stream-1.1.0.tgz";
-        sha1 = "4701a51266f06e06eaa71fc17233822d875f4908";
+        sha512 = "sAZ9kODla+mGACBZ1IpTCAisKoGnv6PykW7fPk1LrM+mMepE18Yz0515yoVcrZy7dQsTUp3uZLQ/9Sx1RnLoHw==";
       };
     };
     "callsites-3.1.0" = {
@@ -1354,6 +1714,15 @@ let
         sha512 = "gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==";
       };
     };
+    "camelcase-5.3.1" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "5.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
+        sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
+      };
+    };
     "capital-case-1.0.4" = {
       name = "capital-case";
       packageName = "capital-case";
@@ -1363,31 +1732,40 @@ let
         sha512 = "ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==";
       };
     };
+    "cardinal-2.1.1" = {
+      name = "cardinal";
+      packageName = "cardinal";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz";
+        sha512 = "JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==";
+      };
+    };
     "caseless-0.12.0" = {
       name = "caseless";
       packageName = "caseless";
       version = "0.12.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz";
-        sha1 = "1b681c21ff84033c826543090689420d187151dc";
+        sha512 = "4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==";
       };
     };
-    "cfb-1.2.1" = {
+    "cfb-1.2.2" = {
       name = "cfb";
       packageName = "cfb";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cfb/-/cfb-1.2.1.tgz";
-        sha512 = "wT2ScPAFGSVy7CY+aauMezZBnNrfnaLSrxHUHdea+Td/86vrk6ZquggV+ssBR88zNs0OnBkL2+lf9q0K+zVGzQ==";
+        url = "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz";
+        sha512 = "KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==";
       };
     };
-    "chalk-1.1.3" = {
+    "chalk-3.0.0" = {
       name = "chalk";
       packageName = "chalk";
-      version = "1.1.3";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz";
-        sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+        url = "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz";
+        sha512 = "4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==";
       };
     };
     "chalk-4.1.2" = {
@@ -1423,7 +1801,7 @@ let
       version = "0.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz";
-        sha1 = "c0a1d2f3a7092e03774bfa83f14c0fc5790a8667";
+        sha512 = "yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==";
       };
     };
     "cheerio-1.0.0-rc.6" = {
@@ -1435,13 +1813,13 @@ let
         sha512 = "hjx1XE1M/D5pAtMgvWwE21QClmAEeGHOIDfycgmndisdNgI6PE1cGRQkMGBcsbUbmEQyWu5PJLUcAOjtQS8DWw==";
       };
     };
-    "cheerio-select-1.5.0" = {
+    "cheerio-select-1.6.0" = {
       name = "cheerio-select";
       packageName = "cheerio-select";
-      version = "1.5.0";
+      version = "1.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.5.0.tgz";
-        sha512 = "qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==";
+        url = "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz";
+        sha512 = "eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==";
       };
     };
     "chokidar-3.5.2" = {
@@ -1453,13 +1831,13 @@ let
         sha512 = "ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==";
       };
     };
-    "chownr-1.1.4" = {
+    "chownr-2.0.0" = {
       name = "chownr";
       packageName = "chownr";
-      version = "1.1.4";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
-        sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
+        url = "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz";
+        sha512 = "bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==";
       };
     };
     "clamp-1.0.1" = {
@@ -1468,7 +1846,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz";
-        sha1 = "66a0e64011816e37196828fdc8c8c147312c8634";
+        sha512 = "kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==";
       };
     };
     "class-validator-0.13.2" = {
@@ -1495,7 +1873,7 @@ let
       version = "0.1.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/cli-color/-/cli-color-0.1.7.tgz";
-        sha1 = "adc3200fa471cc211b0da7f566b71e98b9d67347";
+        sha512 = "xNaQxWYgI6DD4xIJLn8GY2zDZVbrN0vsU1fEbDNAHZRyceWhpj7A08mYcG1AY92q1Aw0geYkVfiAcEYIZtuTSg==";
       };
     };
     "cli-cursor-3.1.0" = {
@@ -1516,6 +1894,15 @@ let
         sha512 = "9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==";
       };
     };
+    "cli-progress-3.11.2" = {
+      name = "cli-progress";
+      packageName = "cli-progress";
+      version = "3.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.2.tgz";
+        sha512 = "lCPoS6ncgX4+rJu5bS3F/iCz17kZ9MPZ6dpuTtI0KXKABkhyXIdYB3Inby1OpaGti3YlI3EeEkM9AuWpelJrVA==";
+      };
+    };
     "cli-width-3.0.0" = {
       name = "cli-width";
       packageName = "cli-width";
@@ -1534,6 +1921,15 @@ let
         sha512 = "k8AvUYJon0vv75ufoVo4nALYb/qwFFicO3I0+39C6xEdflqVtr+f9cy+0ZxAduoVSTfhP5DX2tY2XICAd5hy6Q==";
       };
     };
+    "cliui-6.0.0" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz";
+        sha512 = "t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==";
+      };
+    };
     "cliui-7.0.4" = {
       name = "cliui";
       packageName = "cliui";
@@ -1552,15 +1948,6 @@ let
         sha512 = "2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==";
       };
     };
-    "code-point-at-1.1.0" = {
-      name = "code-point-at";
-      packageName = "code-point-at";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz";
-        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
-      };
-    };
     "codepage-1.15.0" = {
       name = "codepage";
       packageName = "codepage";
@@ -1603,7 +1990,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz";
-        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+        sha512 = "72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==";
       };
     };
     "color-name-1.1.4" = {
@@ -1615,13 +2002,22 @@ let
         sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
       };
     };
-    "color-string-1.9.0" = {
+    "color-string-1.9.1" = {
       name = "color-string";
       packageName = "color-string";
-      version = "1.9.0";
+      version = "1.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz";
-        sha512 = "9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==";
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz";
+        sha512 = "shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==";
+      };
+    };
+    "color-support-1.1.3" = {
+      name = "color-support";
+      packageName = "color-support";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz";
+        sha512 = "qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==";
       };
     };
     "colornames-1.1.1" = {
@@ -1630,7 +2026,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz";
-        sha1 = "f8889030685c7c4ff9e2a559f5077eb76a816f96";
+        sha512 = "/pyV40IrsdulWv+wFPmERh9k/mjsPZ64yUMDmWrtj/k1nmgrzzIENWKdaVKyBbvFdQWqkcaRxr+polCo3VMe7A==";
       };
     };
     "colorspace-1.1.4" = {
@@ -1669,6 +2065,15 @@ let
         sha512 = "P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==";
       };
     };
+    "commander-9.4.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "9.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz";
+        sha512 = "sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==";
+      };
+    };
     "commist-1.1.0" = {
       name = "commist";
       packageName = "commist";
@@ -1684,7 +2089,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/component-type/-/component-type-1.2.1.tgz";
-        sha1 = "8a47901700238e4fc32269771230226f24b415a9";
+        sha512 = "Kgy+2+Uwr75vAi6ChWXgHuLvd+QLD7ssgpaRq2zCvt80ptvAfMc/hijcJxXkBa2wMlEZcJvC2H8Ubo+A9ATHIg==";
       };
     };
     "compressible-2.0.18" = {
@@ -1711,7 +2116,16 @@ let
       version = "0.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
-        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+        sha512 = "/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==";
+      };
+    };
+    "concat-stream-1.6.2" = {
+      name = "concat-stream";
+      packageName = "concat-stream";
+      version = "1.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz";
+        sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==";
       };
     };
     "concat-stream-2.0.0" = {
@@ -1738,7 +2152,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz";
-        sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+        sha512 = "ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==";
       };
     };
     "constant-case-3.0.4" = {
@@ -1768,13 +2182,13 @@ let
         sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
       };
     };
-    "convict-6.2.2" = {
+    "convict-6.2.3" = {
       name = "convict";
       packageName = "convict";
-      version = "6.2.2";
+      version = "6.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/convict/-/convict-6.2.2.tgz";
-        sha512 = "3MsROJiEFN3BAzeFit1t87t7EUFzd44MNd13MLSikV2dsnDl7znwKgtYPPONtnDzxiDW0nBAsxVhSRNrjUrTTg==";
+        url = "https://registry.npmjs.org/convict/-/convict-6.2.3.tgz";
+        sha512 = "mTY04Qr7WrqiXifdeUYXr4/+Te4hPFWDvz6J2FVIKCLc2XBhq63VOSSYAKJ+unhZAYOAjmEdNswTOeHt7s++pQ==";
       };
     };
     "cookie-0.4.1" = {
@@ -1786,13 +2200,13 @@ let
         sha512 = "ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==";
       };
     };
-    "cookie-0.4.2" = {
+    "cookie-0.5.0" = {
       name = "cookie";
       packageName = "cookie";
-      version = "0.4.2";
+      version = "0.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz";
-        sha512 = "aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==";
+        url = "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz";
+        sha512 = "YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==";
       };
     };
     "cookie-parser-1.4.6" = {
@@ -1810,16 +2224,34 @@ let
       version = "1.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz";
-        sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+        sha512 = "QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==";
       };
     };
-    "core-js-3.21.1" = {
+    "copy-to-2.0.1" = {
+      name = "copy-to";
+      packageName = "copy-to";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz";
+        sha512 = "3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==";
+      };
+    };
+    "core-js-2.6.12" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.21.1";
+      version = "2.6.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz";
-        sha512 = "FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz";
+        sha512 = "Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==";
+      };
+    };
+    "core-js-3.24.1" = {
+      name = "core-js";
+      packageName = "core-js";
+      version = "3.24.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.24.1.tgz";
+        sha512 = "0QTBSYSUZ6Gq21utGzkfITDylE8jWC9Ne1D2MrhvlsZBI1x39OdDIVbzSqtgMndIy6BlHxBXpMGqzZmnztg2rg==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -1828,16 +2260,25 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
-        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+        sha512 = "3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==";
+      };
+    };
+    "core-util-is-1.0.3" = {
+      name = "core-util-is";
+      packageName = "core-util-is";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz";
+        sha512 = "ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==";
       };
     };
-    "crc-32-1.2.1" = {
+    "crc-32-1.2.2" = {
       name = "crc-32";
       packageName = "crc-32";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz";
-        sha512 = "Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==";
+        url = "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz";
+        sha512 = "ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==";
       };
     };
     "cron-1.7.2" = {
@@ -1864,7 +2305,16 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz";
-        sha1 = "7b9247621c23adfdd3856004a823cbe397424d41";
+        sha512 = "yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==";
+      };
+    };
+    "cross-spawn-6.0.5" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "6.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz";
+        sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==";
       };
     };
     "crypt-0.0.2" = {
@@ -1873,7 +2323,7 @@ let
       version = "0.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz";
-        sha1 = "88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b";
+        sha512 = "mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==";
       };
     };
     "crypto-js-4.1.1" = {
@@ -1894,22 +2344,22 @@ let
         sha512 = "uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==";
       };
     };
-    "css-select-4.2.1" = {
+    "css-select-4.3.0" = {
       name = "css-select";
       packageName = "css-select";
-      version = "4.2.1";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz";
-        sha512 = "/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==";
+        url = "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz";
+        sha512 = "wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==";
       };
     };
-    "css-what-5.1.0" = {
+    "css-what-6.1.0" = {
       name = "css-what";
       packageName = "css-what";
-      version = "5.1.0";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz";
-        sha512 = "arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==";
+        url = "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz";
+        sha512 = "HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==";
       };
     };
     "cssfilter-0.0.10" = {
@@ -1918,7 +2368,16 @@ let
       version = "0.0.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz";
-        sha1 = "c6d2672632a2e5c83e013e6864a42ce8defd20ae";
+        sha512 = "FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==";
+      };
+    };
+    "csstype-3.1.0" = {
+      name = "csstype";
+      packageName = "csstype";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz";
+        sha512 = "uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==";
       };
     };
     "dashdash-1.14.1" = {
@@ -1927,16 +2386,16 @@ let
       version = "1.14.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
-        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+        sha512 = "jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==";
       };
     };
-    "date-utils-1.2.21" = {
-      name = "date-utils";
-      packageName = "date-utils";
-      version = "1.2.21";
+    "data-uri-to-buffer-3.0.1" = {
+      name = "data-uri-to-buffer";
+      packageName = "data-uri-to-buffer";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/date-utils/-/date-utils-1.2.21.tgz";
-        sha1 = "61fb16cdc1274b3c9acaaffe9fc69df8720a2b64";
+        url = "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz";
+        sha512 = "WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==";
       };
     };
     "debug-2.6.9" = {
@@ -1981,16 +2440,34 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz";
-        sha1 = "aa24ffb9ac3df9a2351837cfb2d279360cd78492";
+        sha512 = "syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==";
       };
     };
-    "deep-extend-0.6.0" = {
-      name = "deep-extend";
-      packageName = "deep-extend";
-      version = "0.6.0";
+    "decamelize-1.2.0" = {
+      name = "decamelize";
+      packageName = "decamelize";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
+        sha512 = "z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==";
+      };
+    };
+    "deep-is-0.1.4" = {
+      name = "deep-is";
+      packageName = "deep-is";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz";
+        sha512 = "oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==";
+      };
+    };
+    "deepmerge-1.5.2" = {
+      name = "deepmerge";
+      packageName = "deepmerge";
+      version = "1.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
-        sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
+        url = "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz";
+        sha512 = "95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==";
       };
     };
     "deepmerge-4.2.2" = {
@@ -2002,13 +2479,40 @@ let
         sha512 = "FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==";
       };
     };
-    "define-properties-1.1.3" = {
+    "default-user-agent-1.0.0" = {
+      name = "default-user-agent";
+      packageName = "default-user-agent";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/default-user-agent/-/default-user-agent-1.0.0.tgz";
+        sha512 = "bDF7bg6OSNcSwFWPu4zYKpVkJZQYVrAANMYB8bc9Szem1D0yKdm4sa/rOCs2aC9+2GMqQ7KnwtZRvDhmLF0dXw==";
+      };
+    };
+    "define-lazy-prop-2.0.0" = {
+      name = "define-lazy-prop";
+      packageName = "define-lazy-prop";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz";
+        sha512 = "Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==";
+      };
+    };
+    "define-properties-1.1.4" = {
       name = "define-properties";
       packageName = "define-properties";
-      version = "1.1.3";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz";
+        sha512 = "uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==";
+      };
+    };
+    "degenerator-3.0.2" = {
+      name = "degenerator";
+      packageName = "degenerator";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
-        sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
+        url = "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz";
+        sha512 = "c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==";
       };
     };
     "delayed-stream-1.0.0" = {
@@ -2017,7 +2521,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
-        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+        sha512 = "ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==";
       };
     };
     "delegates-1.0.0" = {
@@ -2026,7 +2530,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz";
-        sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+        sha512 = "bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==";
       };
     };
     "denque-1.5.1" = {
@@ -2038,22 +2542,13 @@ let
         sha512 = "XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==";
       };
     };
-    "denque-2.0.1" = {
+    "denque-2.1.0" = {
       name = "denque";
       packageName = "denque";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz";
-        sha512 = "tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==";
-      };
-    };
-    "depd-1.1.2" = {
-      name = "depd";
-      packageName = "depd";
-      version = "1.1.2";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz";
-        sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+        url = "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz";
+        sha512 = "HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==";
       };
     };
     "depd-2.0.0" = {
@@ -2065,22 +2560,22 @@ let
         sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==";
       };
     };
-    "destroy-1.0.4" = {
+    "destroy-1.2.0" = {
       name = "destroy";
       packageName = "destroy";
-      version = "1.0.4";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
-        sha1 = "978857442c44749e4206613e37946205826abd80";
+        url = "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz";
+        sha512 = "2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==";
       };
     };
-    "detect-libc-1.0.3" = {
+    "detect-libc-2.0.1" = {
       name = "detect-libc";
       packageName = "detect-libc";
-      version = "1.0.3";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz";
-        sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+        url = "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz";
+        sha512 = "463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==";
       };
     };
     "diagnostics-1.1.1" = {
@@ -2098,7 +2593,16 @@ let
       version = "0.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz";
-        sha1 = "b5e30361a6db023176d562892db85940a718f47e";
+        sha512 = "9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==";
+      };
+    };
+    "digest-header-0.0.1" = {
+      name = "digest-header";
+      packageName = "digest-header";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/digest-header/-/digest-header-0.0.1.tgz";
+        sha512 = "Qi0KOZgRnkQJuvMWbs1ZRRajEnbsMU8xlJI4rHIbPC+skHQ30heO5cIHpUFT4jAvAe+zPtdavLSAxASqoyZ3cg==";
       };
     };
     "dir-glob-3.0.1" = {
@@ -2116,25 +2620,25 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz";
-        sha1 = "e38331f0844bba49b9a9cb71c771585aab1bc65a";
+        sha512 = "c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==";
       };
     };
-    "dom-serializer-1.3.2" = {
+    "dom-serializer-1.4.1" = {
       name = "dom-serializer";
       packageName = "dom-serializer";
-      version = "1.3.2";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz";
-        sha512 = "5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==";
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz";
+        sha512 = "VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==";
       };
     };
-    "domelementtype-2.2.0" = {
+    "domelementtype-2.3.0" = {
       name = "domelementtype";
       packageName = "domelementtype";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz";
-        sha512 = "DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==";
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz";
+        sha512 = "OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==";
       };
     };
     "domhandler-4.3.1" = {
@@ -2179,7 +2683,7 @@ let
       version = "0.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/dreamopt/-/dreamopt-0.6.0.tgz";
-        sha1 = "d813ccdac8d39d8ad526775514a13dda664d6b4b";
+        sha512 = "KRJa47iBEK0y6ZtgCgy2ykuvMT8c9gj3ua9Dv7vCkclFJJeH2FjhGY2xO5qBoWGahsjCGMlk4Cq9wJYeWxuYhQ==";
       };
     };
     "duplexify-3.7.1" = {
@@ -2197,7 +2701,7 @@ let
       version = "0.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
-        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+        sha512 = "eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==";
       };
     };
     "ecdsa-sig-formatter-1.0.11" = {
@@ -2215,7 +2719,25 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
-        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+        sha512 = "WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==";
+      };
+    };
+    "ejs-3.1.8" = {
+      name = "ejs";
+      packageName = "ejs";
+      version = "3.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz";
+        sha512 = "/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==";
+      };
+    };
+    "element-ui-2.15.9" = {
+      name = "element-ui";
+      packageName = "element-ui";
+      version = "2.15.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/element-ui/-/element-ui-2.15.9.tgz";
+        sha512 = "dx45nQLt4Hn87/Z9eRr3ex6KFZbxlFAwEU3QoW3wA5EsYftvHTyL9Pq7VnXXD7hu1Eiaup2jcs6kp+/VSFmXuA==";
       };
     };
     "emoji-regex-8.0.0" = {
@@ -2233,7 +2755,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz";
-        sha1 = "965f6513d2c2d1c5f4652b64a2e3396467fc2f93";
+        sha512 = "nnzgVSpB35qKrUN8358SjO1bYAmxoThECTWw9s3J0x5G8A9hokKHVDFzBjVpCoSryo6MhN8woVyascN5jheaNA==";
       };
     };
     "enabled-2.0.0" = {
@@ -2251,16 +2773,16 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
-        sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+        sha512 = "TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==";
       };
     };
-    "encoding-japanese-1.0.30" = {
+    "encoding-japanese-2.0.0" = {
       name = "encoding-japanese";
       packageName = "encoding-japanese";
-      version = "1.0.30";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/encoding-japanese/-/encoding-japanese-1.0.30.tgz";
-        sha512 = "bd/DFLAoJetvv7ar/KIpE3CNO8wEuyrt9Xuw6nSMiZ+Vrz/Q21BPsMHvARL2Wz6IKHKXgb+DWZqtRg1vql9cBg==";
+        url = "https://registry.npmjs.org/encoding-japanese/-/encoding-japanese-2.0.0.tgz";
+        sha512 = "++P0RhebUC8MJAwJOsT93dT+5oc5oPImp1HubZpAuCZ5kTLnhuuBhKHj2jJeO/Gj93idPBWmIuQ9QWMe5rX3pQ==";
       };
     };
     "end-of-stream-1.4.4" = {
@@ -2299,13 +2821,31 @@ let
         sha512 = "2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==";
       };
     };
-    "es-abstract-1.19.1" = {
+    "es-abstract-1.20.1" = {
       name = "es-abstract";
       packageName = "es-abstract";
-      version = "1.19.1";
+      version = "1.20.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz";
+        sha512 = "WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==";
+      };
+    };
+    "es-aggregate-error-1.0.8" = {
+      name = "es-aggregate-error";
+      packageName = "es-aggregate-error";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz";
-        sha512 = "2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==";
+        url = "https://registry.npmjs.org/es-aggregate-error/-/es-aggregate-error-1.0.8.tgz";
+        sha512 = "AKUb5MKLWMozPlFRHOKqWD7yta5uaEhH21qwtnf6FlKjNjTJOoqFi0/G14+FfSkIQhhu6X68Af4xgRC6y8qG4A==";
+      };
+    };
+    "es-array-method-boxes-properly-1.0.0" = {
+      name = "es-array-method-boxes-properly";
+      packageName = "es-array-method-boxes-properly";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz";
+        sha512 = "wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==";
       };
     };
     "es-to-primitive-1.2.1" = {
@@ -2323,7 +2863,7 @@ let
       version = "0.8.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.8.2.tgz";
-        sha1 = "aba8d9e1943a895ac96837a62a39b3f55ecd94ab";
+        sha512 = "H19ompyhnKiBdjHR1DPHvf5RHgHPmJaY9JNzFGbMbPgdsUkvnUCN1Ke8J4Y0IMyTwFM2M9l4h2GoHwzwpSmXbA==";
       };
     };
     "escalade-3.1.1" = {
@@ -2341,7 +2881,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
-        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+        sha512 = "NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==";
       };
     };
     "escape-string-regexp-1.0.5" = {
@@ -2350,7 +2890,7 @@ let
       version = "1.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
-        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+        sha512 = "vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==";
       };
     };
     "escape-string-regexp-4.0.0" = {
@@ -2362,13 +2902,22 @@ let
         sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
       };
     };
+    "escodegen-1.14.3" = {
+      name = "escodegen";
+      packageName = "escodegen";
+      version = "1.14.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz";
+        sha512 = "qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==";
+      };
+    };
     "eslint-config-riot-1.0.0" = {
       name = "eslint-config-riot";
       packageName = "eslint-config-riot";
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/eslint-config-riot/-/eslint-config-riot-1.0.0.tgz";
-        sha1 = "fbd65386980b30fbcd0e1305d4c3fb8614ef2119";
+        sha512 = "NB/L/1Y30qyJcG5xZxCJKW/+bqyj+llbcCwo9DEz8bESIP0SLTOQ8T1DWCCFc+wJ61AMEstj4511PSScqMMfCw==";
       };
     };
     "esprima-4.0.1" = {
@@ -2380,22 +2929,31 @@ let
         sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
       };
     };
+    "estraverse-4.3.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz";
+        sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
+      };
+    };
+    "esutils-2.0.3" = {
+      name = "esutils";
+      packageName = "esutils";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
+        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
+      };
+    };
     "etag-1.8.1" = {
       name = "etag";
       packageName = "etag";
       version = "1.8.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
-        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
-      };
-    };
-    "event-target-shim-5.0.1" = {
-      name = "event-target-shim";
-      packageName = "event-target-shim";
-      version = "5.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz";
-        sha512 = "i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==";
+        sha512 = "aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==";
       };
     };
     "events-1.1.1" = {
@@ -2404,7 +2962,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/events/-/events-1.1.1.tgz";
-        sha1 = "9ebdb7635ad099c70dcc4c2a1f5004288e8bd924";
+        sha512 = "kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==";
       };
     };
     "events-3.3.0" = {
@@ -2416,13 +2974,13 @@ let
         sha512 = "mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==";
       };
     };
-    "eventsource-1.1.0" = {
+    "eventsource-2.0.2" = {
       name = "eventsource";
       packageName = "eventsource";
-      version = "1.1.0";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz";
-        sha512 = "VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==";
+        url = "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz";
+        sha512 = "IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==";
       };
     };
     "exit-on-epipe-1.0.1" = {
@@ -2440,16 +2998,25 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz";
-        sha1 = "97e801aa052df02454de46b02bf621642cdc8502";
+        sha512 = "A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==";
       };
     };
-    "express-4.17.3" = {
+    "express-4.18.1" = {
       name = "express";
       packageName = "express";
-      version = "4.17.3";
+      version = "4.18.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/express/-/express-4.17.3.tgz";
-        sha512 = "yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==";
+        url = "https://registry.npmjs.org/express/-/express-4.18.1.tgz";
+        sha512 = "zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==";
+      };
+    };
+    "express-openapi-validator-4.13.8" = {
+      name = "express-openapi-validator";
+      packageName = "express-openapi-validator";
+      version = "4.13.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express-openapi-validator/-/express-openapi-validator-4.13.8.tgz";
+        sha512 = "89/sdkq+BKBuIyykaMl/vR9grFc3WFUPTjFo0THHbu+5g+q8rA7fKeoMfz+h84yOQIBcztmJ5ZJdk5uhEls31A==";
       };
     };
     "extend-3.0.2" = {
@@ -2461,6 +3028,15 @@ let
         sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
       };
     };
+    "extend-shallow-2.0.1" = {
+      name = "extend-shallow";
+      packageName = "extend-shallow";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz";
+        sha512 = "zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==";
+      };
+    };
     "external-editor-3.1.0" = {
       name = "external-editor";
       packageName = "external-editor";
@@ -2476,7 +3052,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz";
-        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+        sha512 = "11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==";
       };
     };
     "fast-deep-equal-3.1.3" = {
@@ -2506,6 +3082,15 @@ let
         sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
       };
     };
+    "fast-levenshtein-2.0.6" = {
+      name = "fast-levenshtein";
+      packageName = "fast-levenshtein";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+        sha512 = "DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==";
+      };
+    };
     "fastq-1.13.0" = {
       name = "fastq";
       packageName = "fastq";
@@ -2515,13 +3100,13 @@ let
         sha512 = "YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==";
       };
     };
-    "fecha-4.2.1" = {
+    "fecha-4.2.3" = {
       name = "fecha";
       packageName = "fecha";
-      version = "4.2.1";
+      version = "4.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz";
-        sha512 = "MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==";
+        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz";
+        sha512 = "OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==";
       };
     };
     "fflate-0.7.3" = {
@@ -2533,15 +3118,6 @@ let
         sha512 = "0Zz1jOzJWERhyhsimS54VTqOteCNwRtIlh8isdL0AXLo0g7xNTfTL7oWrkmCnPhZGocKIkWHBistBrrpoNH3aw==";
       };
     };
-    "figlet-1.5.2" = {
-      name = "figlet";
-      packageName = "figlet";
-      version = "1.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz";
-        sha512 = "WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ==";
-      };
-    };
     "figures-3.2.0" = {
       name = "figures";
       packageName = "figures";
@@ -2560,6 +3136,24 @@ let
         sha512 = "sXAMgFk67fQLcetXustxfKX+PZgHIUFn96Xld9uH8aXPdX3xOp0/jg9OdouVTvQrf7mrn+wAa4jN/y9fUOOiRA==";
       };
     };
+    "file-uri-to-path-2.0.0" = {
+      name = "file-uri-to-path";
+      packageName = "file-uri-to-path";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz";
+        sha512 = "hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==";
+      };
+    };
+    "filelist-1.0.4" = {
+      name = "filelist";
+      packageName = "filelist";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz";
+        sha512 = "w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==";
+      };
+    };
     "fill-range-7.0.1" = {
       name = "fill-range";
       packageName = "fill-range";
@@ -2569,22 +3163,31 @@ let
         sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
       };
     };
-    "finalhandler-1.1.2" = {
+    "finalhandler-1.2.0" = {
       name = "finalhandler";
       packageName = "finalhandler";
-      version = "1.1.2";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
-        sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
+        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz";
+        sha512 = "5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==";
       };
     };
-    "flatted-3.2.5" = {
+    "find-up-4.1.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz";
+        sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
+      };
+    };
+    "flatted-3.2.6" = {
       name = "flatted";
       packageName = "flatted";
-      version = "3.2.5";
+      version = "3.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz";
-        sha512 = "WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==";
+        url = "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz";
+        sha512 = "0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==";
       };
     };
     "fn.name-1.1.0" = {
@@ -2596,13 +3199,13 @@ let
         sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==";
       };
     };
-    "follow-redirects-1.14.9" = {
+    "follow-redirects-1.15.1" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.14.9";
+      version = "1.15.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz";
-        sha512 = "MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz";
+        sha512 = "yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==";
       };
     };
     "for-each-0.3.3" = {
@@ -2620,7 +3223,7 @@ let
       version = "0.6.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
-        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+        sha512 = "j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==";
       };
     };
     "form-data-2.3.3" = {
@@ -2632,15 +3235,6 @@ let
         sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==";
       };
     };
-    "form-data-2.5.1" = {
-      name = "form-data";
-      packageName = "form-data";
-      version = "2.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz";
-        sha512 = "m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==";
-      };
-    };
     "form-data-3.0.1" = {
       name = "form-data";
       packageName = "form-data";
@@ -2668,6 +3262,15 @@ let
         sha512 = "KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==";
       };
     };
+    "formstream-1.1.1" = {
+      name = "formstream";
+      packageName = "formstream";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/formstream/-/formstream-1.1.1.tgz";
+        sha512 = "yHRxt3qLFnhsKAfhReM4w17jP+U1OlhUjnKPPtonwKbIJO7oBP0MvoxkRUwb8AU9n0MIkYy5X5dK6pQnbj+R2Q==";
+      };
+    };
     "forwarded-0.2.0" = {
       name = "forwarded";
       packageName = "forwarded";
@@ -2692,7 +3295,7 @@ let
       version = "0.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz";
-        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+        sha512 = "zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==";
       };
     };
     "fs-extra-8.1.0" = {
@@ -2704,13 +3307,22 @@ let
         sha512 = "yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==";
       };
     };
-    "fs-minipass-1.2.7" = {
+    "fs-extra-9.1.0" = {
+      name = "fs-extra";
+      packageName = "fs-extra";
+      version = "9.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz";
+        sha512 = "hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==";
+      };
+    };
+    "fs-minipass-2.1.0" = {
       name = "fs-minipass";
       packageName = "fs-minipass";
-      version = "1.2.7";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz";
-        sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==";
+        url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz";
+        sha512 = "V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==";
       };
     };
     "fs.realpath-1.0.0" = {
@@ -2719,7 +3331,16 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
-        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+        sha512 = "OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==";
+      };
+    };
+    "ftp-0.3.10" = {
+      name = "ftp";
+      packageName = "ftp";
+      version = "0.3.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz";
+        sha512 = "faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==";
       };
     };
     "function-bind-1.1.1" = {
@@ -2731,13 +3352,31 @@ let
         sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
       };
     };
-    "gauge-2.7.4" = {
+    "function.prototype.name-1.1.5" = {
+      name = "function.prototype.name";
+      packageName = "function.prototype.name";
+      version = "1.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz";
+        sha512 = "uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==";
+      };
+    };
+    "functions-have-names-1.2.3" = {
+      name = "functions-have-names";
+      packageName = "functions-have-names";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz";
+        sha512 = "xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==";
+      };
+    };
+    "gauge-3.0.2" = {
       name = "gauge";
       packageName = "gauge";
-      version = "2.7.4";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz";
-        sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+        url = "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz";
+        sha512 = "+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==";
       };
     };
     "generate-function-2.3.1" = {
@@ -2776,13 +3415,22 @@ let
         sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
       };
     };
-    "get-intrinsic-1.1.1" = {
+    "get-intrinsic-1.1.2" = {
       name = "get-intrinsic";
       packageName = "get-intrinsic";
-      version = "1.1.1";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz";
+        sha512 = "Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==";
+      };
+    };
+    "get-package-type-0.1.0" = {
+      name = "get-package-type";
+      packageName = "get-package-type";
+      version = "0.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz";
-        sha512 = "kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==";
+        url = "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz";
+        sha512 = "pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==";
       };
     };
     "get-port-5.1.1" = {
@@ -2812,22 +3460,31 @@ let
         sha512 = "zzlgaYnHMIEgHRrfC7x0Qp0Ylhw/sHpM6MHXeVBTYIsvGf5GpbnClB+Q6rAPdn+0gd2oZZIo6Tj3EaWrt4VhDQ==";
       };
     };
+    "get-uri-3.0.2" = {
+      name = "get-uri";
+      packageName = "get-uri";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz";
+        sha512 = "+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==";
+      };
+    };
     "getpass-0.1.7" = {
       name = "getpass";
       packageName = "getpass";
       version = "0.1.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz";
-        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+        sha512 = "0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==";
       };
     };
-    "glob-7.2.0" = {
+    "glob-7.2.3" = {
       name = "glob";
       packageName = "glob";
-      version = "7.2.0";
+      version = "7.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz";
-        sha512 = "lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==";
+        url = "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz";
+        sha512 = "nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==";
       };
     };
     "glob-parent-3.1.0" = {
@@ -2836,7 +3493,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz";
-        sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+        sha512 = "E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==";
       };
     };
     "glob-parent-5.1.2" = {
@@ -2854,7 +3511,16 @@ let
       version = "6.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz";
-        sha1 = "7045c99413b3eb94888d83ab46d0b404cc7bdde4";
+        sha512 = "uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==";
+      };
+    };
+    "globalthis-1.0.3" = {
+      name = "globalthis";
+      packageName = "globalthis";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz";
+        sha512 = "sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==";
       };
     };
     "globby-11.1.0" = {
@@ -2872,7 +3538,7 @@ let
       version = "1.23.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/gm/-/gm-1.23.1.tgz";
-        sha1 = "2edeeb958084d0f8ea7988e5d995b1c7dfc14777";
+        sha512 = "wYGVAa8/sh9ggF5qWoOs6eArcAgwEPkDNvf637jHRHkMUznvs7m/Q2vrc0KLN6B8px3nnRJqJcXK4mTK6lLFmg==";
       };
     };
     "google-timezones-json-1.0.2" = {
@@ -2884,13 +3550,13 @@ let
         sha512 = "UWXQ7BpSCW8erDespU2I4cri22xsKgwOCyhsJal0OJhi2tFpwJpsYNJt4vCiFPL1p2HzCGiS713LKpNR25n9Kg==";
       };
     };
-    "graceful-fs-4.2.9" = {
+    "graceful-fs-4.2.10" = {
       name = "graceful-fs";
       packageName = "graceful-fs";
-      version = "4.2.9";
+      version = "4.2.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz";
-        sha512 = "NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz";
+        sha512 = "9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==";
       };
     };
     "handlebars-4.7.7" = {
@@ -2908,7 +3574,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz";
-        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+        sha512 = "Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==";
       };
     };
     "har-validator-5.1.5" = {
@@ -2929,22 +3595,13 @@ let
         sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
       };
     };
-    "has-ansi-2.0.0" = {
-      name = "has-ansi";
-      packageName = "has-ansi";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz";
-        sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
-      };
-    };
-    "has-bigints-1.0.1" = {
+    "has-bigints-1.0.2" = {
       name = "has-bigints";
       packageName = "has-bigints";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz";
-        sha512 = "LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==";
+        url = "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz";
+        sha512 = "tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==";
       };
     };
     "has-flag-4.0.0" = {
@@ -2956,6 +3613,15 @@ let
         sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
       };
     };
+    "has-property-descriptors-1.0.0" = {
+      name = "has-property-descriptors";
+      packageName = "has-property-descriptors";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz";
+        sha512 = "62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==";
+      };
+    };
     "has-symbols-1.0.3" = {
       name = "has-symbols";
       packageName = "has-symbols";
@@ -2980,7 +3646,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz";
-        sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+        sha512 = "8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==";
       };
     };
     "he-1.2.0" = {
@@ -3016,7 +3682,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/help-me/-/help-me-1.1.0.tgz";
-        sha1 = "8f2d508d0600b4a456da2f086556e7e5c056a3c6";
+        sha512 = "P/IZ8yOMne3SCTHbVY429NZ67B/2bVQlcYGZh2iPPbdLrEQ/qY5aGChn0YTDmt7Sb4IKRI51fypItav+lNl76w==";
       };
     };
     "highlight.js-10.7.3" = {
@@ -3037,13 +3703,13 @@ let
         sha512 = "eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==";
       };
     };
-    "html-to-text-8.0.0" = {
+    "html-to-text-8.2.0" = {
       name = "html-to-text";
       packageName = "html-to-text";
-      version = "8.0.0";
+      version = "8.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/html-to-text/-/html-to-text-8.0.0.tgz";
-        sha512 = "fEtul1OerF2aMEV+Wpy+Ue20tug134jOY1GIudtdqZi7D0uTudB2tVJBKfVhTL03dtqeJoF8gk8EPX9SyMEvLg==";
+        url = "https://registry.npmjs.org/html-to-text/-/html-to-text-8.2.0.tgz";
+        sha512 = "CLXExYn1b++Lgri+ZyVvbUEFwzkLZppjjZOwB7X1qv2jIi8MrMEvxWX5KQ7zATAzTvcqgmtO00M2kCRMtEdOKQ==";
       };
     };
     "htmlparser2-6.1.0" = {
@@ -3055,13 +3721,13 @@ let
         sha512 = "gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==";
       };
     };
-    "http-errors-1.8.1" = {
+    "http-errors-2.0.0" = {
       name = "http-errors";
       packageName = "http-errors";
-      version = "1.8.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz";
-        sha512 = "Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==";
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz";
+        sha512 = "FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==";
       };
     };
     "http-proxy-agent-4.0.1" = {
@@ -3073,58 +3739,58 @@ let
         sha512 = "k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==";
       };
     };
-    "http-signature-1.2.0" = {
-      name = "http-signature";
-      packageName = "http-signature";
-      version = "1.2.0";
+    "http-proxy-agent-5.0.0" = {
+      name = "http-proxy-agent";
+      packageName = "http-proxy-agent";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
-        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+        url = "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz";
+        sha512 = "n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==";
       };
     };
-    "http-signature-1.3.6" = {
+    "http-signature-1.2.0" = {
       name = "http-signature";
       packageName = "http-signature";
-      version = "1.3.6";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz";
-        sha512 = "3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==";
+        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
+        sha512 = "CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==";
       };
     };
-    "https-proxy-agent-5.0.0" = {
+    "https-proxy-agent-5.0.1" = {
       name = "https-proxy-agent";
       packageName = "https-proxy-agent";
-      version = "5.0.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz";
-        sha512 = "EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==";
+        url = "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz";
+        sha512 = "dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==";
       };
     };
-    "iconv-lite-0.4.24" = {
-      name = "iconv-lite";
-      packageName = "iconv-lite";
-      version = "0.4.24";
+    "humanize-ms-1.2.1" = {
+      name = "humanize-ms";
+      packageName = "humanize-ms";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
-        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+        url = "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz";
+        sha512 = "Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==";
       };
     };
-    "iconv-lite-0.5.2" = {
-      name = "iconv-lite";
-      packageName = "iconv-lite";
-      version = "0.5.2";
+    "hyperlinker-1.0.0" = {
+      name = "hyperlinker";
+      packageName = "hyperlinker";
+      version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz";
-        sha512 = "kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==";
+        url = "https://registry.npmjs.org/hyperlinker/-/hyperlinker-1.0.0.tgz";
+        sha512 = "Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==";
       };
     };
-    "iconv-lite-0.6.2" = {
+    "iconv-lite-0.4.24" = {
       name = "iconv-lite";
       packageName = "iconv-lite";
-      version = "0.6.2";
+      version = "0.4.24";
       src = fetchurl {
-        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz";
-        sha512 = "2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==";
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
+        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
       };
     };
     "iconv-lite-0.6.3" = {
@@ -3136,13 +3802,13 @@ let
         sha512 = "4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==";
       };
     };
-    "ics-2.35.0" = {
+    "ics-2.37.0" = {
       name = "ics";
       packageName = "ics";
-      version = "2.35.0";
+      version = "2.37.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ics/-/ics-2.35.0.tgz";
-        sha512 = "uxHoiu9VnE/1RUIWoUqn9GVswUzrejHFa5Gk20gGySw+2FO8xzgJe7GLFk+hzmevHViG/6zANLhjVY6kFWctKQ==";
+        url = "https://registry.npmjs.org/ics/-/ics-2.37.0.tgz";
+        sha512 = "pwjHe4nPFB/YulKlNo35z8BjjHej0PE/FcET/P7zMH+6pAfME1+NiUSFu/QbJN+o7AOJVXous626kNxrb33blg==";
       };
     };
     "ieee754-1.1.13" = {
@@ -3172,22 +3838,13 @@ let
         sha512 = "CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==";
       };
     };
-    "ignore-walk-3.0.4" = {
-      name = "ignore-walk";
-      packageName = "ignore-walk";
-      version = "3.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz";
-        sha512 = "PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==";
-      };
-    };
     "imap-0.8.19" = {
       name = "imap";
       packageName = "imap";
       version = "0.8.19";
       src = fetchurl {
         url = "https://registry.npmjs.org/imap/-/imap-0.8.19.tgz";
-        sha1 = "3678873934ab09cea6ba48741f284da2af59d8d5";
+        sha512 = "z5DxEA1uRnZG73UcPA4ES5NSCGnPuuouUx43OPX7KZx1yzq3N8/vx2mtXEShT5inxB3pRgnfG1hijfu7XN2YMw==";
       };
     };
     "imap-simple-4.3.0" = {
@@ -3214,7 +3871,7 @@ let
       version = "1.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
-        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+        sha512 = "k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==";
       };
     };
     "inherits-2.0.4" = {
@@ -3226,15 +3883,6 @@ let
         sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
       };
     };
-    "ini-1.3.8" = {
-      name = "ini";
-      packageName = "ini";
-      version = "1.3.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz";
-        sha512 = "JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==";
-      };
-    };
     "inquirer-7.3.3" = {
       name = "inquirer";
       packageName = "inquirer";
@@ -3253,6 +3901,15 @@ let
         sha512 = "O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==";
       };
     };
+    "interpret-1.4.0" = {
+      name = "interpret";
+      packageName = "interpret";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz";
+        sha512 = "agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==";
+      };
+    };
     "ioredis-4.28.5" = {
       name = "ioredis";
       packageName = "ioredis";
@@ -3262,13 +3919,31 @@ let
         sha512 = "3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==";
       };
     };
+    "ip-1.1.8" = {
+      name = "ip";
+      packageName = "ip";
+      version = "1.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz";
+        sha512 = "PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==";
+      };
+    };
+    "ip-2.0.0" = {
+      name = "ip";
+      packageName = "ip";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz";
+        sha512 = "WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==";
+      };
+    };
     "ip-regex-2.1.0" = {
       name = "ip-regex";
       packageName = "ip-regex";
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz";
-        sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
+        sha512 = "58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==";
       };
     };
     "ipaddr.js-1.9.1" = {
@@ -3289,6 +3964,15 @@ let
         sha512 = "dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==";
       };
     };
+    "is-arguments-1.1.1" = {
+      name = "is-arguments";
+      packageName = "is-arguments";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz";
+        sha512 = "8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==";
+      };
+    };
     "is-arrayish-0.3.2" = {
       name = "is-arrayish";
       packageName = "is-arrayish";
@@ -3343,6 +4027,15 @@ let
         sha512 = "nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==";
       };
     };
+    "is-core-module-2.10.0" = {
+      name = "is-core-module";
+      packageName = "is-core-module";
+      version = "2.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz";
+        sha512 = "Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==";
+      };
+    };
     "is-date-object-1.0.5" = {
       name = "is-date-object";
       packageName = "is-date-object";
@@ -3361,22 +4054,22 @@ let
         sha512 = "F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==";
       };
     };
+    "is-extendable-0.1.1" = {
+      name = "is-extendable";
+      packageName = "is-extendable";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz";
+        sha512 = "5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==";
+      };
+    };
     "is-extglob-2.1.1" = {
       name = "is-extglob";
       packageName = "is-extglob";
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
-        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
-      };
-    };
-    "is-fullwidth-code-point-1.0.0" = {
-      name = "is-fullwidth-code-point";
-      packageName = "is-fullwidth-code-point";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
-        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+        sha512 = "SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==";
       };
     };
     "is-fullwidth-code-point-3.0.0" = {
@@ -3388,13 +4081,22 @@ let
         sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
       };
     };
+    "is-generator-function-1.0.10" = {
+      name = "is-generator-function";
+      packageName = "is-generator-function";
+      version = "1.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz";
+        sha512 = "jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==";
+      };
+    };
     "is-glob-3.1.0" = {
       name = "is-glob";
       packageName = "is-glob";
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz";
-        sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+        sha512 = "UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==";
       };
     };
     "is-glob-4.0.3" = {
@@ -3421,7 +4123,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz";
-        sha1 = "6910bca5da8c95e784b5751b976cf5a10fee36d2";
+        sha512 = "czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==";
       };
     };
     "is-negative-zero-2.0.2" = {
@@ -3442,13 +4144,22 @@ let
         sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     };
-    "is-number-object-1.0.6" = {
+    "is-number-object-1.0.7" = {
       name = "is-number-object";
       packageName = "is-number-object";
-      version = "1.0.6";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz";
-        sha512 = "bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==";
+        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz";
+        sha512 = "k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==";
+      };
+    };
+    "is-plain-object-5.0.0" = {
+      name = "is-plain-object";
+      packageName = "is-plain-object";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz";
+        sha512 = "VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==";
       };
     };
     "is-promise-1.0.1" = {
@@ -3457,7 +4168,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz";
-        sha1 = "31573761c057e33c2e91aab9e96da08cefbe76e5";
+        sha512 = "mjWH5XxnhMA8cFnDchr6qRP9S/kLntKuEfIYku+PaN1CnS8v+OG9O/BKpRCVRJvpIkgAZm0Pf5Is3iSSOILlcg==";
       };
     };
     "is-property-1.0.2" = {
@@ -3466,7 +4177,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz";
-        sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84";
+        sha512 = "Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==";
       };
     };
     "is-regex-1.1.4" = {
@@ -3496,13 +4207,13 @@ let
         sha512 = "XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==";
       };
     };
-    "is-shared-array-buffer-1.0.1" = {
+    "is-shared-array-buffer-1.0.2" = {
       name = "is-shared-array-buffer";
       packageName = "is-shared-array-buffer";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz";
-        sha512 = "IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==";
+        url = "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz";
+        sha512 = "sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==";
       };
     };
     "is-stream-2.0.1" = {
@@ -3532,13 +4243,22 @@ let
         sha512 = "C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==";
       };
     };
+    "is-typed-array-1.1.9" = {
+      name = "is-typed-array";
+      packageName = "is-typed-array";
+      version = "1.1.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz";
+        sha512 = "kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==";
+      };
+    };
     "is-typedarray-1.0.0" = {
       name = "is-typedarray";
       packageName = "is-typedarray";
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
-        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+        sha512 = "cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==";
       };
     };
     "is-unc-path-1.0.0" = {
@@ -3583,7 +4303,7 @@ let
       version = "0.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
-        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+        sha512 = "D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==";
       };
     };
     "isarray-1.0.0" = {
@@ -3592,16 +4312,16 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
-        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+        sha512 = "VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==";
       };
     };
-    "isbot-3.4.5" = {
+    "isbot-3.5.0" = {
       name = "isbot";
       packageName = "isbot";
-      version = "3.4.5";
+      version = "3.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/isbot/-/isbot-3.4.5.tgz";
-        sha512 = "+KD6q1BBtw0iK9aGBGSfxJ31/ZgizKRjhm8ebgJUBMx0aeeQuIJ1I72beCoIrltIZGrSm4vmrxRxrG5n1aUTtw==";
+        url = "https://registry.npmjs.org/isbot/-/isbot-3.5.0.tgz";
+        sha512 = "QOFF7IE7hUdzo8pbhCubeiMzKdLZt+W/UwRZWwg+zghmnqXoMwh2V0bi5UT+oIvoD0IWCWjzAtp30ZrrRwJVCg==";
       };
     };
     "isexe-2.0.0" = {
@@ -3610,16 +4330,16 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
-        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+        sha512 = "RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==";
       };
     };
-    "iso-639-1-2.1.13" = {
+    "iso-639-1-2.1.15" = {
       name = "iso-639-1";
       packageName = "iso-639-1";
-      version = "2.1.13";
+      version = "2.1.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.13.tgz";
-        sha512 = "stYt3u6OnVDNcK4IWARGXmTOOY5Wa5g4bUmBsttZp/55ZiEjDUibR3C59ZnorKoSS0tfJmFuGMST3ksnY1zu7Q==";
+        url = "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.15.tgz";
+        sha512 = "7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg==";
       };
     };
     "isstream-0.1.2" = {
@@ -3628,7 +4348,16 @@ let
       version = "0.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
-        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+        sha512 = "Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==";
+      };
+    };
+    "jake-10.8.5" = {
+      name = "jake";
+      packageName = "jake";
+      version = "10.8.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz";
+        sha512 = "sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==";
       };
     };
     "jmespath-0.16.0" = {
@@ -3646,7 +4375,16 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz";
-        sha1 = "b8417b750661a392bee2c2537c68b2a9d4977cd5";
+        sha512 = "bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==";
+      };
+    };
+    "js-md4-0.3.2" = {
+      name = "js-md4";
+      packageName = "js-md4";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-md4/-/js-md4-0.3.2.tgz";
+        sha512 = "/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==";
       };
     };
     "js-yaml-3.14.1" = {
@@ -3658,13 +4396,22 @@ let
         sha512 = "okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==";
       };
     };
-    "jsbi-3.2.5" = {
+    "js-yaml-4.1.0" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz";
+        sha512 = "wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==";
+      };
+    };
+    "jsbi-4.3.0" = {
       name = "jsbi";
       packageName = "jsbi";
-      version = "3.2.5";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsbi/-/jsbi-3.2.5.tgz";
-        sha512 = "aBE4n43IPvjaddScbvWRA2YlTzKEynHzu7MqOyTipdHucf/VxS63ViCjxYRg86M8Rxwbt/GfzHl1kKERkt45fQ==";
+        url = "https://registry.npmjs.org/jsbi/-/jsbi-4.3.0.tgz";
+        sha512 = "SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==";
       };
     };
     "jsbn-0.1.1" = {
@@ -3673,7 +4420,7 @@ let
       version = "0.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz";
-        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+        sha512 = "UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==";
       };
     };
     "json-diff-0.5.5" = {
@@ -3694,6 +4441,15 @@ let
         sha512 = "es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==";
       };
     };
+    "json-schema-ref-parser-9.0.9" = {
+      name = "json-schema-ref-parser";
+      packageName = "json-schema-ref-parser";
+      version = "9.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz";
+        sha512 = "qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==";
+      };
+    };
     "json-schema-traverse-0.4.1" = {
       name = "json-schema-traverse";
       packageName = "json-schema-traverse";
@@ -3709,7 +4465,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
-        sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
+        sha512 = "Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==";
       };
     };
     "json-stringify-safe-5.0.1" = {
@@ -3718,7 +4474,7 @@ let
       version = "5.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
-        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+        sha512 = "ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==";
       };
     };
     "jsonfile-4.0.0" = {
@@ -3727,7 +4483,25 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz";
-        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+        sha512 = "m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==";
+      };
+    };
+    "jsonfile-6.1.0" = {
+      name = "jsonfile";
+      packageName = "jsonfile";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz";
+        sha512 = "5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==";
+      };
+    };
+    "jsonschema-1.4.1" = {
+      name = "jsonschema";
+      packageName = "jsonschema";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz";
+        sha512 = "S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==";
       };
     };
     "jsonwebtoken-8.5.1" = {
@@ -3748,15 +4522,6 @@ let
         sha512 = "P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==";
       };
     };
-    "jsprim-2.0.2" = {
-      name = "jsprim";
-      packageName = "jsprim";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz";
-        sha512 = "gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==";
-      };
-    };
     "jwa-1.4.1" = {
       name = "jwa";
       packageName = "jwa";
@@ -3766,6 +4531,15 @@ let
         sha512 = "qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==";
       };
     };
+    "jwa-2.0.0" = {
+      name = "jwa";
+      packageName = "jwa";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz";
+        sha512 = "jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==";
+      };
+    };
     "jwks-rsa-1.12.3" = {
       name = "jwks-rsa";
       packageName = "jwks-rsa";
@@ -3784,6 +4558,15 @@ let
         sha512 = "YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==";
       };
     };
+    "jws-4.0.0" = {
+      name = "jws";
+      packageName = "jws";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz";
+        sha512 = "KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==";
+      };
+    };
     "kafkajs-1.16.0" = {
       name = "kafkajs";
       packageName = "kafkajs";
@@ -3817,7 +4600,16 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz";
-        sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580";
+        sha512 = "nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==";
+      };
+    };
+    "levn-0.3.0" = {
+      name = "levn";
+      packageName = "levn";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz";
+        sha512 = "0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==";
       };
     };
     "libbase64-1.2.1" = {
@@ -3829,22 +4621,22 @@ let
         sha512 = "l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew==";
       };
     };
-    "libmime-5.0.0" = {
+    "libmime-5.1.0" = {
       name = "libmime";
       packageName = "libmime";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/libmime/-/libmime-5.0.0.tgz";
-        sha512 = "2Bm96d5ktnE217Ib1FldvUaPAaOst6GtZrsxJCwnJgi9lnsoAKIHyU0sae8rNx6DNYbjdqqh8lv5/b9poD8qOg==";
+        url = "https://registry.npmjs.org/libmime/-/libmime-5.1.0.tgz";
+        sha512 = "xOqorG21Va+3CjpFOfFTU7SWohHH2uIX9ZY4Byz6J+lvpfvc486tOAT/G9GfbrKtJ9O7NCX9o0aC2lxqbnZ9EA==";
       };
     };
-    "libphonenumber-js-1.9.50" = {
+    "libphonenumber-js-1.10.12" = {
       name = "libphonenumber-js";
       packageName = "libphonenumber-js";
-      version = "1.9.50";
+      version = "1.10.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.50.tgz";
-        sha512 = "cCzQPChw2XbordcO2LKiw5Htx5leHVfFk/EXkxNHqJfFo7Fndcb1kF5wPJpc316vCJhhikedYnVysMh3Sc7Ocw==";
+        url = "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.12.tgz";
+        sha512 = "xTFBs3ipFQNmjCUkDj6ZzRJvs97IyazFHBKWtrQrLiYs0Zk0GANob1hkMRlQUQXbJrpQGwnI+/yU4oyD4ohvpw==";
       };
     };
     "libqp-1.1.0" = {
@@ -3853,7 +4645,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz";
-        sha1 = "f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8";
+        sha512 = "4Rgfa0hZpG++t1Vi2IiqXG9Ad1ig4QTmtuZF946QJP4bPqOYC78ixUXgz5TW/wE7lNaNKlplSYTxQ+fR2KZ0EA==";
       };
     };
     "limiter-1.1.5" = {
@@ -3865,13 +4657,13 @@ let
         sha512 = "FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==";
       };
     };
-    "linkify-it-3.0.3" = {
+    "linkify-it-4.0.0" = {
       name = "linkify-it";
       packageName = "linkify-it";
-      version = "3.0.3";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz";
-        sha512 = "ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==";
+        url = "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.0.tgz";
+        sha512 = "QAxkXyzT/TXgwGyY4rTgC95Ex6/lZ5/lYTV9nug6eJt93BCBQGOE47D/g2+/m5J1MrVLr2ot97OXkBZ9bBpR4A==";
       };
     };
     "localtunnel-2.0.2" = {
@@ -3883,6 +4675,15 @@ let
         sha512 = "n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==";
       };
     };
+    "locate-path-5.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz";
+        sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
+      };
+    };
     "lodash-4.17.21" = {
       name = "lodash";
       packageName = "lodash";
@@ -3907,7 +4708,7 @@ let
       version = "4.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
-        sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+        sha512 = "H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==";
       };
     };
     "lodash.defaults-4.2.0" = {
@@ -3916,7 +4717,7 @@ let
       version = "4.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz";
-        sha1 = "d09178716ffea4dde9e5fb7b37f6f0802274580c";
+        sha512 = "qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==";
       };
     };
     "lodash.flatten-4.4.0" = {
@@ -3925,7 +4726,7 @@ let
       version = "4.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz";
-        sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
+        sha512 = "C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==";
       };
     };
     "lodash.get-4.4.2" = {
@@ -3934,7 +4735,7 @@ let
       version = "4.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz";
-        sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99";
+        sha512 = "z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==";
       };
     };
     "lodash.includes-4.3.0" = {
@@ -3943,7 +4744,16 @@ let
       version = "4.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz";
-        sha1 = "60bb98a87cb923c68ca1e51325483314849f553f";
+        sha512 = "W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==";
+      };
+    };
+    "lodash.intersection-4.4.0" = {
+      name = "lodash.intersection";
+      packageName = "lodash.intersection";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.intersection/-/lodash.intersection-4.4.0.tgz";
+        sha512 = "N+L0cCfnqMv6mxXtSPeKt+IavbOBBSiAEkKyLasZ8BVcP9YXQgxLO12oPR8OyURwKV8l5vJKiE1M8aS70heuMg==";
       };
     };
     "lodash.isarguments-3.1.0" = {
@@ -3952,7 +4762,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz";
-        sha1 = "2f573d85c6a24289ff00663b491c1d338ff3458a";
+        sha512 = "chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==";
       };
     };
     "lodash.isboolean-3.0.3" = {
@@ -3961,7 +4771,7 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz";
-        sha1 = "6c2e171db2a257cd96802fd43b01b20d5f5870f6";
+        sha512 = "Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==";
       };
     };
     "lodash.isequal-4.5.0" = {
@@ -3970,7 +4780,7 @@ let
       version = "4.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz";
-        sha1 = "415c4478f2bcc30120c22ce10ed3226f7d3e18e0";
+        sha512 = "pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==";
       };
     };
     "lodash.isinteger-4.0.4" = {
@@ -3979,7 +4789,7 @@ let
       version = "4.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz";
-        sha1 = "619c0af3d03f8b04c31f5882840b77b11cd68343";
+        sha512 = "DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==";
       };
     };
     "lodash.isnumber-3.0.3" = {
@@ -3988,7 +4798,7 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz";
-        sha1 = "3ce76810c5928d03352301ac287317f11c0b1ffc";
+        sha512 = "QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==";
       };
     };
     "lodash.isplainobject-4.0.6" = {
@@ -3997,7 +4807,7 @@ let
       version = "4.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz";
-        sha1 = "7c526a52d89b45c45cc690b88163be0497f550cb";
+        sha512 = "oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==";
       };
     };
     "lodash.isstring-4.0.1" = {
@@ -4006,7 +4816,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz";
-        sha1 = "d527dfb5456eca7cc9bb95d5daeaf88ba54a5451";
+        sha512 = "0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==";
       };
     };
     "lodash.merge-4.6.2" = {
@@ -4018,13 +4828,22 @@ let
         sha512 = "0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==";
       };
     };
+    "lodash.omit-4.5.0" = {
+      name = "lodash.omit";
+      packageName = "lodash.omit";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz";
+        sha512 = "XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==";
+      };
+    };
     "lodash.once-4.1.1" = {
       name = "lodash.once";
       packageName = "lodash.once";
       version = "4.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz";
-        sha1 = "0dd3971213c7c56df880977d504c88fb471a97ac";
+        sha512 = "Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==";
       };
     };
     "lodash.set-4.3.2" = {
@@ -4033,7 +4852,16 @@ let
       version = "4.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz";
-        sha1 = "d8757b1da807dde24816b0d6a84bea1a76230b23";
+        sha512 = "4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==";
+      };
+    };
+    "lodash.split-4.4.2" = {
+      name = "lodash.split";
+      packageName = "lodash.split";
+      version = "4.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.split/-/lodash.split-4.4.2.tgz";
+        sha512 = "kn1IDX0aHfg0FsnPIyxCHTamZXt3YK3aExRH1LW8YhzP6+sCldTm8+E4aIg+nSmM6R4eqdWGrXWtfYI961bwIw==";
       };
     };
     "lodash.throttle-4.1.1" = {
@@ -4042,7 +4870,16 @@ let
       version = "4.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz";
-        sha1 = "c23e91b710242ac70c37f1e1cda9274cc39bf2f4";
+        sha512 = "wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==";
+      };
+    };
+    "lodash.uniq-4.5.0" = {
+      name = "lodash.uniq";
+      packageName = "lodash.uniq";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
+        sha512 = "xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==";
       };
     };
     "lodash.uniqby-4.7.0" = {
@@ -4051,7 +4888,7 @@ let
       version = "4.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz";
-        sha1 = "d99c07a669e9e6d24e1362dfe266c67616af1302";
+        sha512 = "e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==";
       };
     };
     "lodash.unset-4.5.2" = {
@@ -4060,16 +4897,25 @@ let
       version = "4.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.unset/-/lodash.unset-4.5.2.tgz";
-        sha1 = "370d1d3e85b72a7e1b0cdf2d272121306f23e4ed";
+        sha512 = "bwKX88k2JhCV9D1vtE8+naDKlLiGrSmf8zi/Y9ivFHwbmRfA8RxS/aVJ+sIht2XOwqoNr4xUPUkGZpc1sHFEKg==";
       };
     };
-    "logform-2.4.0" = {
+    "lodash.zipobject-4.1.3" = {
+      name = "lodash.zipobject";
+      packageName = "lodash.zipobject";
+      version = "4.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.zipobject/-/lodash.zipobject-4.1.3.tgz";
+        sha512 = "A9SzX4hMKWS25MyalwcOnNoplyHbkNVsjidhTp8ru0Sj23wY9GWBKS8gAIGDSAqeWjIjvE4KBEl24XXAs+v4wQ==";
+      };
+    };
+    "logform-2.4.2" = {
       name = "logform";
       packageName = "logform";
-      version = "2.4.0";
+      version = "2.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz";
-        sha512 = "CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==";
+        url = "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz";
+        sha512 = "W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==";
       };
     };
     "long-4.0.0" = {
@@ -4105,7 +4951,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz";
-        sha1 = "1d17679c069cda5d040991a09dbc2c0db377e55e";
+        sha512 = "uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==";
       };
     };
     "lru-cache-4.1.5" = {
@@ -4117,6 +4963,15 @@ let
         sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==";
       };
     };
+    "lru-cache-5.1.1" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz";
+        sha512 = "KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==";
+      };
+    };
     "lru-cache-6.0.0" = {
       name = "lru-cache";
       packageName = "lru-cache";
@@ -4135,31 +4990,31 @@ let
         sha512 = "IXAq50s4qwrOBrXJklY+KhgZF+5y98PDaNo0gi/v2KQBFLyWr+JyFvijZXkGKjQj/h9c0OwoE+JZbwUXce76hQ==";
       };
     };
-    "luxon-2.3.1" = {
+    "luxon-2.5.0" = {
       name = "luxon";
       packageName = "luxon";
-      version = "2.3.1";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/luxon/-/luxon-2.3.1.tgz";
-        sha512 = "I8vnjOmhXsMSlNMZlMkSOvgrxKJl0uOsEzdGgGNZuZPaS9KlefpE9KV95QFftlJSC+1UyCC9/I69R02cz/zcCA==";
+        url = "https://registry.npmjs.org/luxon/-/luxon-2.5.0.tgz";
+        sha512 = "IDkEPB80Rb6gCAU+FEib0t4FeJ4uVOuX1CQ9GsvU3O+JAGIgu0J7sf1OarXKaKDygTZIoJyU6YdZzTFRu+YR0A==";
       };
     };
-    "mailparser-3.4.0" = {
+    "mailparser-3.5.0" = {
       name = "mailparser";
       packageName = "mailparser";
-      version = "3.4.0";
+      version = "3.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mailparser/-/mailparser-3.4.0.tgz";
-        sha512 = "u2pfpLg+xr7m2FKDl+ohQhy2gMok1QZ+S9E5umS9ez5DSJWttrqSmBGswyj9F68pZMVTwbhLpBt7Kd04q/W4Vw==";
+        url = "https://registry.npmjs.org/mailparser/-/mailparser-3.5.0.tgz";
+        sha512 = "mdr2DFgz8LKC0/Q6io6znA0HVnzaPFT0a4TTnLeZ7mWHlkfnm227Wxlq7mHh7AgeP32h7gOUpXvyhSfJJIEeyg==";
       };
     };
-    "mailsplit-5.3.1" = {
+    "mailsplit-5.3.2" = {
       name = "mailsplit";
       packageName = "mailsplit";
-      version = "5.3.1";
+      version = "5.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mailsplit/-/mailsplit-5.3.1.tgz";
-        sha512 = "o6R6HCzqWYmI2/IYlB+v2IMPgYqC2EynmagZQICAhR7zAq0CO6fPcsO6CrYmVuYT+SSwvLAEZR5WniohBELcAA==";
+        url = "https://registry.npmjs.org/mailsplit/-/mailsplit-5.3.2.tgz";
+        sha512 = "coES12hhKqagkuBTJoqERX+y9bXNpxbxw3Esd07auuwKYmcagouVlgucyIVRp48fnswMKxcUtLoFn/L1a75ynQ==";
       };
     };
     "make-dir-3.1.0" = {
@@ -4189,13 +5044,13 @@ let
         sha512 = "etgt+n4LlOkGSJbBTV9VROHA5R7ekIPS4vfh+bCAoJgRrJWdqJCBbpS3osRJ/HrT7R68MzMiY3L3sDJ/Fd8aBg==";
       };
     };
-    "mappersmith-2.38.1" = {
+    "mappersmith-2.40.0" = {
       name = "mappersmith";
       packageName = "mappersmith";
-      version = "2.38.1";
+      version = "2.40.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mappersmith/-/mappersmith-2.38.1.tgz";
-        sha512 = "ecZ+YyzBK7r3tC8MTaGo5tySHPhB6f9jdxN706Tux6dMlcE2fgwiBM/bf/+Sz5m2yKlTq5ntiahz7xSPgurD6w==";
+        url = "https://registry.npmjs.org/mappersmith/-/mappersmith-2.40.0.tgz";
+        sha512 = "Es99fy0E52fxmhRvCyed7WVlSyuz6ME/wOsRpSmi0GcbMEZ6y5D2GL4+qNGPCc2P270J5yw8L2zg+K4BWACcHg==";
       };
     };
     "material-colors-1.2.6" = {
@@ -4222,7 +5077,16 @@ let
       version = "0.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
-        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+        sha512 = "dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==";
+      };
+    };
+    "media-typer-1.1.0" = {
+      name = "media-typer";
+      packageName = "media-typer";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz";
+        sha512 = "aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==";
       };
     };
     "merge-descriptors-1.0.1" = {
@@ -4231,7 +5095,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
-        sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+        sha512 = "cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==";
       };
     };
     "merge2-1.4.1" = {
@@ -4249,7 +5113,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz";
-        sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+        sha512 = "iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==";
       };
     };
     "micromatch-4.0.5" = {
@@ -4267,7 +5131,7 @@ let
       version = "0.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/millisecond/-/millisecond-0.1.2.tgz";
-        sha1 = "6cc5ad386241cab8e78aff964f87028eec92dac5";
+        sha512 = "BJ8XtxY+woL+5TkP6uS6XvOArm0JVrX2otkgtWZseHpIax0oOOPW3cnwhOjRqbEJg7YRO/BDF7fO/PTWNT3T9Q==";
       };
     };
     "mime-1.6.0" = {
@@ -4279,6 +5143,15 @@ let
         sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
       };
     };
+    "mime-2.6.0" = {
+      name = "mime";
+      packageName = "mime";
+      version = "2.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz";
+        sha512 = "USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==";
+      };
+    };
     "mime-db-1.52.0" = {
       name = "mime-db";
       packageName = "mime-db";
@@ -4324,6 +5197,15 @@ let
         sha512 = "J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==";
       };
     };
+    "minimatch-5.1.0" = {
+      name = "minimatch";
+      packageName = "minimatch";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz";
+        sha512 = "9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==";
+      };
+    };
     "minimist-1.2.6" = {
       name = "minimist";
       packageName = "minimist";
@@ -4333,22 +5215,22 @@ let
         sha512 = "Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==";
       };
     };
-    "minipass-2.9.0" = {
+    "minipass-3.3.5" = {
       name = "minipass";
       packageName = "minipass";
-      version = "2.9.0";
+      version = "3.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz";
-        sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
+        url = "https://registry.npmjs.org/minipass/-/minipass-3.3.5.tgz";
+        sha512 = "rQ/p+KfKBkeNwo04U15i+hOwoVBVmekmm/HcfTkTN2t9pbQKCMm4eN5gFeqgrrSp/kH/7BYYhTIHOxGqzbBPaA==";
       };
     };
-    "minizlib-1.3.3" = {
+    "minizlib-2.1.2" = {
       name = "minizlib";
       packageName = "minizlib";
-      version = "1.3.3";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz";
-        sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==";
+        url = "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz";
+        sha512 = "bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==";
       };
     };
     "mkdirp-0.5.6" = {
@@ -4378,13 +5260,13 @@ let
         sha512 = "lLzfLHcyc10MKQnNUCv7dMcoY/2Qxd6wJfbqCcVk3LDb8An4hF6ohk5AztrvgKhJCqj36uyzi/p5se+tvyD+Wg==";
       };
     };
-    "moment-2.29.1" = {
+    "moment-2.29.4" = {
       name = "moment";
       packageName = "moment";
-      version = "2.29.1";
+      version = "2.29.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz";
-        sha512 = "kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==";
+        url = "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz";
+        sha512 = "5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==";
       };
     };
     "moment-timezone-0.5.34" = {
@@ -4396,13 +5278,13 @@ let
         sha512 = "3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==";
       };
     };
-    "monaco-editor-0.29.1" = {
+    "monaco-editor-0.30.1" = {
       name = "monaco-editor";
       packageName = "monaco-editor";
-      version = "0.29.1";
+      version = "0.30.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.29.1.tgz";
-        sha512 = "rguaEG/zrPQSaKzQB7IfX/PpNa0qxF1FY8ZXRkN4WIl8qZdTQRSRJCtRto7IMcSgrU6H53RXI+fTcywOBC4aVw==";
+        url = "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.30.1.tgz";
+        sha512 = "B/y4+b2O5G2gjuxIFtCE2EkM17R2NM7/3F8x0qcPsqy4V83bitJTIO4TIeZpYlzu/xy6INiY/+84BEm6+7Cmzg==";
       };
     };
     "mongodb-3.7.3" = {
@@ -4447,7 +5329,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
-        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+        sha512 = "Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==";
       };
     };
     "ms-2.1.2" = {
@@ -4468,13 +5350,22 @@ let
         sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==";
       };
     };
-    "mssql-6.4.1" = {
+    "mssql-8.1.3" = {
       name = "mssql";
       packageName = "mssql";
-      version = "6.4.1";
+      version = "8.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mssql/-/mssql-6.4.1.tgz";
-        sha512 = "G1I7mM0gfxcH5TGSNoVmxq13Mve5YnQgRAlonqaMlHEjHjMn1g04bsrIQbVHFRdI6++dw/FGWlh8GoItJMoUDw==";
+        url = "https://registry.npmjs.org/mssql/-/mssql-8.1.3.tgz";
+        sha512 = "XGxNNNeKZMMTM71na2M4eLMkPWKckcfZtMiCKR1mLzN887x31NisekNhoBAoRpqizErUZxSW8gSDZc8PVig7Kw==";
+      };
+    };
+    "multer-1.4.5-lts.1" = {
+      name = "multer";
+      packageName = "multer";
+      version = "1.4.5-lts.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz";
+        sha512 = "ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==";
       };
     };
     "mute-stream-0.0.8" = {
@@ -4504,49 +5395,49 @@ let
         sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==";
       };
     };
-    "n8n-core-0.111.0" = {
+    "n8n-core-0.131.0" = {
       name = "n8n-core";
       packageName = "n8n-core";
-      version = "0.111.0";
+      version = "0.131.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-core/-/n8n-core-0.111.0.tgz";
-        sha512 = "fZLLJ60yIuuX+geKGQrO6jk+kxn1UaCJMoWEi2FVE+InTmi+/r51Bv6LGoapoW0Oz+Em+CDq0wE7Yzg3xNx7fw==";
+        url = "https://registry.npmjs.org/n8n-core/-/n8n-core-0.131.0.tgz";
+        sha512 = "XDR0udjVD1t16DZKT3Bx0oFa/qnDjv9KSJRmzUxcTzU2QzcLJ3nv3mi/E7AObUGOvXsKgKRSdsFyWoMcPGb5cQ==";
       };
     };
-    "n8n-design-system-0.16.0" = {
+    "n8n-design-system-0.31.0" = {
       name = "n8n-design-system";
       packageName = "n8n-design-system";
-      version = "0.16.0";
+      version = "0.31.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-design-system/-/n8n-design-system-0.16.0.tgz";
-        sha512 = "X7Qa+DoXRyJL4gqh7x59udnPIBYAUgDvhchL33dpI/Rgq9gaFajT9eAuOFQnXKMUaL0FZ5hu3rRGcAmwwEA/bA==";
+        url = "https://registry.npmjs.org/n8n-design-system/-/n8n-design-system-0.31.0.tgz";
+        sha512 = "RvE18Fv4tzvsuDZwszWuEodzVoHcKVxYdAA57qIKZyxLbwtLYe2MoBtmOeKlQBvYaZBIwxLFbPnm2fZvIfMdsA==";
       };
     };
-    "n8n-editor-ui-0.137.0" = {
+    "n8n-editor-ui-0.157.0" = {
       name = "n8n-editor-ui";
       packageName = "n8n-editor-ui";
-      version = "0.137.0";
+      version = "0.157.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.137.0.tgz";
-        sha512 = "/wYAIh/3RtVaFxY+vtVEACfo6xsVOi3cEPWd+GSFCK/AMxXs517CNGbwNz54geqaGNUH+rhhUz87C0pG+TgiUg==";
+        url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.157.0.tgz";
+        sha512 = "SzS6xCIa7D1nDnvV0p6OOOc2s9gxuJNkQ3UzWw3VG6C5vtsBhpKDsUZ2BKlCLip2jLZgeNAFHCmttSmXHmm9Lg==";
       };
     };
-    "n8n-nodes-base-0.168.0" = {
+    "n8n-nodes-base-0.189.0" = {
       name = "n8n-nodes-base";
       packageName = "n8n-nodes-base";
-      version = "0.168.0";
+      version = "0.189.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.168.0.tgz";
-        sha512 = "TyIL5Gwn+qvfi+1nNkQTPfrJYMqjx2P2OCiDWAMfzahauJyJpfJMYpIEKF3UxoKXCfWpBYPmHVoov6GadEOR1w==";
+        url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.189.0.tgz";
+        sha512 = "8Xdbtz26wpvO5MguARdc/vOflmKyOCazV9rt9OMsT6HJLTFq1U4xgEw85VWB9GQJPbDvXPRPqilTedKgM9POlw==";
       };
     };
-    "n8n-workflow-0.93.0" = {
+    "n8n-workflow-0.113.0" = {
       name = "n8n-workflow";
       packageName = "n8n-workflow";
-      version = "0.93.0";
+      version = "0.113.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-workflow/-/n8n-workflow-0.93.0.tgz";
-        sha512 = "IqZrnTKdIZD7aeL9/FiwoI7w1WBgeBmqZVXRF+OGtIHooK/lDkHpy17hoXXqAyeATiVf2licgl8F/zMvSsnuJA==";
+        url = "https://registry.npmjs.org/n8n-workflow/-/n8n-workflow-0.113.0.tgz";
+        sha512 = "ajeZR9etpx9Tjy10X/bbmKYEBp8edUMUrUTL5qLmQLEODoua/NV7C7NCZwlVUtsTbIeTq9Osas2tYhDI74Cubw==";
       };
     };
     "named-placeholders-1.1.2" = {
@@ -4567,13 +5458,13 @@ let
         sha512 = "wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==";
       };
     };
-    "nanoid-3.3.1" = {
+    "nanoid-3.3.4" = {
       name = "nanoid";
       packageName = "nanoid";
-      version = "3.3.1";
+      version = "3.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz";
-        sha512 = "n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==";
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz";
+        sha512 = "MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==";
       };
     };
     "native-duplexpair-1.0.0" = {
@@ -4582,7 +5473,16 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/native-duplexpair/-/native-duplexpair-1.0.0.tgz";
-        sha1 = "7899078e64bf3c8a3d732601b3d40ff05db58fa0";
+        sha512 = "E7QQoM+3jvNtlmyfqRZ0/U75VFgCls+fSkbml2MpgWkWyz3ox8Y58gNhfuziuQYGNNQAbFZJQck55LHCnCK6CA==";
+      };
+    };
+    "natural-orderby-2.0.3" = {
+      name = "natural-orderby";
+      packageName = "natural-orderby";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/natural-orderby/-/natural-orderby-2.0.3.tgz";
+        sha512 = "p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==";
       };
     };
     "nearley-2.20.1" = {
@@ -4594,15 +5494,6 @@ let
         sha512 = "+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==";
       };
     };
-    "needle-2.9.1" = {
-      name = "needle";
-      packageName = "needle";
-      version = "2.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz";
-        sha512 = "6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==";
-      };
-    };
     "negotiator-0.6.3" = {
       name = "negotiator";
       packageName = "negotiator";
@@ -4621,6 +5512,24 @@ let
         sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==";
       };
     };
+    "netmask-2.0.2" = {
+      name = "netmask";
+      packageName = "netmask";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz";
+        sha512 = "dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==";
+      };
+    };
+    "nice-try-1.0.5" = {
+      name = "nice-try";
+      packageName = "nice-try";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz";
+        sha512 = "1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==";
+      };
+    };
     "no-case-3.0.4" = {
       name = "no-case";
       packageName = "no-case";
@@ -4630,13 +5539,22 @@ let
         sha512 = "fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==";
       };
     };
-    "node-addon-api-3.2.1" = {
+    "node-abort-controller-3.0.1" = {
+      name = "node-abort-controller";
+      packageName = "node-abort-controller";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz";
+        sha512 = "/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==";
+      };
+    };
+    "node-addon-api-4.3.0" = {
       name = "node-addon-api";
       packageName = "node-addon-api";
-      version = "3.2.1";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz";
-        sha512 = "mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==";
+        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz";
+        sha512 = "73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==";
       };
     };
     "node-ensure-0.0.0" = {
@@ -4645,7 +5563,7 @@ let
       version = "0.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz";
-        sha1 = "ecae764150de99861ec5c810fd5d096b183932a7";
+        sha512 = "DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==";
       };
     };
     "node-fetch-2.6.7" = {
@@ -4657,22 +5575,31 @@ let
         sha512 = "ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==";
       };
     };
-    "node-pre-gyp-0.11.0" = {
-      name = "node-pre-gyp";
-      packageName = "node-pre-gyp";
-      version = "0.11.0";
+    "node-html-markdown-1.2.0" = {
+      name = "node-html-markdown";
+      packageName = "node-html-markdown";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-html-markdown/-/node-html-markdown-1.2.0.tgz";
+        sha512 = "mGA53bSqo7j62PjmMuFPdO0efNT9pqiGYhQTNVCWkY7PdduRIECJF7n7NOrr5cb+d/js1GdYRLpoTYDwawRk6A==";
+      };
+    };
+    "node-html-parser-5.4.1" = {
+      name = "node-html-parser";
+      packageName = "node-html-parser";
+      version = "5.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz";
-        sha512 = "TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==";
+        url = "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.4.1.tgz";
+        sha512 = "xy/O2wOEBJsIRLs4avwa1lVY7tIpXXOoHHUJLa0GvnoPPqMG1hgBVl1tNI3GHOwRktTVZy+Y6rjghk4B9/NLyg==";
       };
     };
-    "node-ssh-12.0.4" = {
+    "node-ssh-12.0.5" = {
       name = "node-ssh";
       packageName = "node-ssh";
-      version = "12.0.4";
+      version = "12.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-ssh/-/node-ssh-12.0.4.tgz";
-        sha512 = "5M3FBeAWjEpAQvVakQde6CeviEoEiYb6IjJL9mrMen9at63GAv0Q5vOFHFP+SM1Y7pTN3EBvJ/I+oxn2Lpydbw==";
+        url = "https://registry.npmjs.org/node-ssh/-/node-ssh-12.0.5.tgz";
+        sha512 = "uN2GTGdBRUUKkZmcNBr9OM+xKL6zq74emnkSyb1TshBdVWegj3boue6QallQeqZzo7YGVheP5gAovUL+8hZSig==";
       };
     };
     "nodeify-1.0.1" = {
@@ -4681,34 +5608,34 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/nodeify/-/nodeify-1.0.1.tgz";
-        sha1 = "64ab69a7bdbaf03ce107b4f0335c87c0b9e91b1d";
+        sha512 = "n7C2NyEze8GCo/z73KdbjRsBiLbv6eBn1FxwYKQ23IqGo7pQY3mhQan61Sv7eEDJCiyUjTVrVkXTzJCo1dW7Aw==";
       };
     };
-    "nodemailer-6.7.0" = {
+    "nodemailer-6.7.3" = {
       name = "nodemailer";
       packageName = "nodemailer";
-      version = "6.7.0";
+      version = "6.7.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.0.tgz";
-        sha512 = "AtiTVUFHLiiDnMQ43zi0YgkzHOEWUkhDgPlBXrsDzJiJvB29Alo4OKxHQ0ugF3gRqRQIneCLtZU3yiUo7pItZw==";
+        url = "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.3.tgz";
+        sha512 = "KUdDsspqx89sD4UUyUKzdlUOper3hRkDVkrKh/89G+d9WKsU5ox51NWS4tB1XR5dPUdR4SP0E3molyEfOvSa3g==";
       };
     };
-    "nodemailer-6.7.3" = {
+    "nodemailer-6.7.8" = {
       name = "nodemailer";
       packageName = "nodemailer";
-      version = "6.7.3";
+      version = "6.7.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.3.tgz";
-        sha512 = "KUdDsspqx89sD4UUyUKzdlUOper3hRkDVkrKh/89G+d9WKsU5ox51NWS4tB1XR5dPUdR4SP0E3molyEfOvSa3g==";
+        url = "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.8.tgz";
+        sha512 = "2zaTFGqZixVmTxpJRCFC+Vk5eGRd/fYtvIR+dl5u9QXLTQWGIf48x/JXvo58g9sa0bU6To04XUv554Paykum3g==";
       };
     };
-    "nopt-4.0.3" = {
+    "nopt-5.0.0" = {
       name = "nopt";
       packageName = "nopt";
-      version = "4.0.3";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz";
-        sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==";
+        url = "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz";
+        sha512 = "Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==";
       };
     };
     "normalize-path-2.1.1" = {
@@ -4717,7 +5644,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz";
-        sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+        sha512 = "3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==";
       };
     };
     "normalize-path-3.0.0" = {
@@ -4729,58 +5656,31 @@ let
         sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
       };
     };
-    "npm-bundled-1.1.2" = {
-      name = "npm-bundled";
-      packageName = "npm-bundled";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz";
-        sha512 = "x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==";
-      };
-    };
-    "npm-normalize-package-bin-1.0.1" = {
-      name = "npm-normalize-package-bin";
-      packageName = "npm-normalize-package-bin";
+    "normalize-wheel-1.0.1" = {
+      name = "normalize-wheel";
+      packageName = "normalize-wheel";
       version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz";
-        sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==";
+        url = "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz";
+        sha512 = "1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==";
       };
     };
-    "npm-packlist-1.4.8" = {
-      name = "npm-packlist";
-      packageName = "npm-packlist";
-      version = "1.4.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz";
-        sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==";
-      };
-    };
-    "npmlog-4.1.2" = {
+    "npmlog-5.0.1" = {
       name = "npmlog";
       packageName = "npmlog";
-      version = "4.1.2";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz";
-        sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==";
+        url = "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz";
+        sha512 = "AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==";
       };
     };
-    "nth-check-2.0.1" = {
+    "nth-check-2.1.1" = {
       name = "nth-check";
       packageName = "nth-check";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz";
-        sha512 = "it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==";
-      };
-    };
-    "number-is-nan-1.0.1" = {
-      name = "number-is-nan";
-      packageName = "number-is-nan";
-      version = "1.0.1";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
-        sha1 = "097b602b53422a522c1afb8790318336941a011d";
+        url = "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz";
+        sha512 = "lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==";
       };
     };
     "oauth-1.0a-2.2.6" = {
@@ -4807,16 +5707,16 @@ let
       version = "4.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
-        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+        sha512 = "rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==";
       };
     };
-    "object-inspect-1.12.0" = {
+    "object-inspect-1.12.2" = {
       name = "object-inspect";
       packageName = "object-inspect";
-      version = "1.12.0";
+      version = "1.12.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz";
-        sha512 = "Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==";
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz";
+        sha512 = "z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==";
       };
     };
     "object-keys-1.1.1" = {
@@ -4828,40 +5728,40 @@ let
         sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
       };
     };
-    "object.assign-4.1.2" = {
+    "object-treeify-1.1.33" = {
+      name = "object-treeify";
+      packageName = "object-treeify";
+      version = "1.1.33";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz";
+        sha512 = "EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==";
+      };
+    };
+    "object.assign-4.1.4" = {
       name = "object.assign";
       packageName = "object.assign";
-      version = "4.1.2";
+      version = "4.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz";
-        sha512 = "ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==";
+        url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz";
+        sha512 = "1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==";
       };
     };
-    "object.getownpropertydescriptors-2.1.3" = {
+    "object.getownpropertydescriptors-2.1.4" = {
       name = "object.getownpropertydescriptors";
       packageName = "object.getownpropertydescriptors";
-      version = "2.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz";
-        sha512 = "VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==";
-      };
-    };
-    "ocsp-1.2.0" = {
-      name = "ocsp";
-      packageName = "ocsp";
-      version = "1.2.0";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ocsp/-/ocsp-1.2.0.tgz";
-        sha1 = "469a1776b457dee67eb0201408c1946bac4076cc";
+        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz";
+        sha512 = "sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ==";
       };
     };
-    "on-finished-2.3.0" = {
+    "on-finished-2.4.1" = {
       name = "on-finished";
       packageName = "on-finished";
-      version = "2.3.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
-        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+        url = "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz";
+        sha512 = "oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==";
       };
     };
     "on-headers-1.0.2" = {
@@ -4879,7 +5779,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
-        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+        sha512 = "lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==";
       };
     };
     "one-time-1.0.0" = {
@@ -4900,6 +5800,15 @@ let
         sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
       };
     };
+    "ono-7.1.3" = {
+      name = "ono";
+      packageName = "ono";
+      version = "7.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ono/-/ono-7.1.3.tgz";
+        sha512 = "9jnfVriq7uJM4o5ganUY54ntUm+5EK21EGaQ5NWnkWg3zz5ywbbonlBguRcnmF1/HDiIe3zxNxXcO1YPBmPcQQ==";
+      };
+    };
     "open-7.4.2" = {
       name = "open";
       packageName = "open";
@@ -4909,13 +5818,40 @@ let
         sha512 = "MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==";
       };
     };
+    "open-8.4.0" = {
+      name = "open";
+      packageName = "open";
+      version = "8.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/open/-/open-8.4.0.tgz";
+        sha512 = "XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==";
+      };
+    };
+    "openapi-types-1.3.5" = {
+      name = "openapi-types";
+      packageName = "openapi-types";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-types/-/openapi-types-1.3.5.tgz";
+        sha512 = "11oi4zYorsgvg5yBarZplAqbpev5HkuVNPlZaPTknPDzAynq+lnJdXAmruGWP0s+dNYZS7bjM+xrTpJw7184Fg==";
+      };
+    };
+    "openapi-types-10.0.0" = {
+      name = "openapi-types";
+      packageName = "openapi-types";
+      version = "10.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-types/-/openapi-types-10.0.0.tgz";
+        sha512 = "Y8xOCT2eiKGYDzMW9R4x5cmfc3vGaaI4EL2pwhDmodWw1HlK18YcZ4uJxc7Rdp7/gGzAygzH9SXr6GKYIXbRcQ==";
+      };
+    };
     "openurl-1.1.1" = {
       name = "openurl";
       packageName = "openurl";
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz";
-        sha1 = "3875b4b0ef7a52c156f0db41d4609dbb0f94b387";
+        sha512 = "d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==";
       };
     };
     "optional-require-1.1.8" = {
@@ -4927,31 +5863,31 @@ let
         sha512 = "jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==";
       };
     };
+    "optionator-0.8.3" = {
+      name = "optionator";
+      packageName = "optionator";
+      version = "0.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz";
+        sha512 = "+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==";
+      };
+    };
     "ordered-read-streams-1.0.1" = {
       name = "ordered-read-streams";
       packageName = "ordered-read-streams";
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz";
-        sha1 = "77c0cb37c41525d64166d990ffad7ec6a0e1363e";
+        sha512 = "Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==";
       };
     };
-    "original-1.0.2" = {
-      name = "original";
-      packageName = "original";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/original/-/original-1.0.2.tgz";
-        sha512 = "hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==";
-      };
-    };
-    "os-homedir-1.0.2" = {
-      name = "os-homedir";
-      packageName = "os-homedir";
-      version = "1.0.2";
+    "os-name-1.0.3" = {
+      name = "os-name";
+      packageName = "os-name";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
-        sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+        url = "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz";
+        sha512 = "f5estLO2KN8vgtTRaILIgEGBoBrMnZ3JQ7W9TMZCnOIGwHe8TRGSpcagnWDo+Dfhd/z08k9Xe75hvciJJ8Qaew==";
       };
     };
     "os-tmpdir-1.0.2" = {
@@ -4960,16 +5896,16 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
-        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+        sha512 = "D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==";
       };
     };
-    "osenv-0.1.5" = {
-      name = "osenv";
-      packageName = "osenv";
-      version = "0.1.5";
+    "osx-release-1.1.0" = {
+      name = "osx-release";
+      packageName = "osx-release";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
-        sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
+        url = "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz";
+        sha512 = "ixCMMwnVxyHFQLQnINhmIpWqXIfS2YOXchwQrk+OFzmo6nDjQ0E4KXAyyUh0T0MZgV4bUhkRrAbVqlE4yLVq4A==";
       };
     };
     "p-cancelable-2.1.1" = {
@@ -4987,7 +5923,25 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz";
-        sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+        sha512 = "LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==";
+      };
+    };
+    "p-limit-2.3.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
+        sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
+      };
+    };
+    "p-locate-4.1.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz";
+        sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==";
       };
     };
     "p-map-2.1.0" = {
@@ -5008,6 +5962,33 @@ let
         sha512 = "rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==";
       };
     };
+    "p-try-2.2.0" = {
+      name = "p-try";
+      packageName = "p-try";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
+        sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
+      };
+    };
+    "pac-proxy-agent-5.0.0" = {
+      name = "pac-proxy-agent";
+      packageName = "pac-proxy-agent";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz";
+        sha512 = "CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==";
+      };
+    };
+    "pac-resolver-5.0.1" = {
+      name = "pac-resolver";
+      packageName = "pac-resolver";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.1.tgz";
+        sha512 = "cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==";
+      };
+    };
     "packet-reader-1.0.0" = {
       name = "packet-reader";
       packageName = "packet-reader";
@@ -5026,15 +6007,6 @@ let
         sha512 = "RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==";
       };
     };
-    "parent-require-1.0.0" = {
-      name = "parent-require";
-      packageName = "parent-require";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz";
-        sha1 = "746a167638083a860b0eef6732cb27ed46c32977";
-      };
-    };
     "parse-github-url-1.0.2" = {
       name = "parse-github-url";
       packageName = "parse-github-url";
@@ -5050,7 +6022,16 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz";
-        sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6";
+        sha512 = "1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==";
+      };
+    };
+    "parse-srcset-1.0.2" = {
+      name = "parse-srcset";
+      packageName = "parse-srcset";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz";
+        sha512 = "/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==";
       };
     };
     "parse5-5.1.1" = {
@@ -5107,13 +6088,13 @@ let
         sha512 = "uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==";
       };
     };
-    "passport-0.5.2" = {
+    "passport-0.5.3" = {
       name = "passport";
       packageName = "passport";
-      version = "0.5.2";
+      version = "0.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/passport/-/passport-0.5.2.tgz";
-        sha512 = "w9n/Ot5I7orGD4y+7V3EFJCQEznE5RxHamUxcqLT2QoJY0f2JdN8GyHonYFvN0Vz+L6lUJfVhrk2aZz2LbuREw==";
+        url = "https://registry.npmjs.org/passport/-/passport-0.5.3.tgz";
+        sha512 = "gGc+70h4gGdBWNsR3FuV3byLDY6KBTJAIExGFXTpQaYfbbcHCBlRRKx7RBQSpqEqc5Hh2qVzRs7ssvSfOpkUEA==";
       };
     };
     "passport-cookie-1.0.9" = {
@@ -5140,7 +6121,16 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz";
-        sha1 = "b5539aa8fc225a3d1ad179476ddf236b440f52e4";
+        sha512 = "CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==";
+      };
+    };
+    "password-prompt-1.1.2" = {
+      name = "password-prompt";
+      packageName = "password-prompt";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz";
+        sha512 = "bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==";
       };
     };
     "path-case-3.0.4" = {
@@ -5158,7 +6148,16 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz";
-        sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+        sha512 = "ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==";
+      };
+    };
+    "path-exists-4.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz";
+        sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
       };
     };
     "path-is-absolute-1.0.1" = {
@@ -5167,7 +6166,25 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
-        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+        sha512 = "AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==";
+      };
+    };
+    "path-key-2.0.1" = {
+      name = "path-key";
+      packageName = "path-key";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz";
+        sha512 = "fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==";
+      };
+    };
+    "path-parse-1.0.7" = {
+      name = "path-parse";
+      packageName = "path-parse";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz";
+        sha512 = "LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==";
       };
     };
     "path-to-regexp-0.1.7" = {
@@ -5176,7 +6193,16 @@ let
       version = "0.1.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
-        sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+        sha512 = "5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==";
+      };
+    };
+    "path-to-regexp-6.2.1" = {
+      name = "path-to-regexp";
+      packageName = "path-to-regexp";
+      version = "6.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz";
+        sha512 = "JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==";
       };
     };
     "path-type-4.0.0" = {
@@ -5194,7 +6220,16 @@ let
       version = "0.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz";
-        sha1 = "1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d";
+        sha512 = "KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==";
+      };
+    };
+    "pause-stream-0.0.11" = {
+      name = "pause-stream";
+      packageName = "pause-stream";
+      version = "0.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz";
+        sha512 = "e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==";
       };
     };
     "pdf-parse-1.1.1" = {
@@ -5221,7 +6256,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
-        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+        sha512 = "7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==";
       };
     };
     "pg-8.7.1" = {
@@ -5314,6 +6349,15 @@ let
         sha512 = "FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==";
       };
     };
+    "picocolors-1.0.0" = {
+      name = "picocolors";
+      packageName = "picocolors";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz";
+        sha512 = "1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==";
+      };
+    };
     "picomatch-2.3.1" = {
       name = "picomatch";
       packageName = "picomatch";
@@ -5386,6 +6430,15 @@ let
         sha512 = "epKaq3TTfTzXcxBxjpoKYMcTTcAX8Rykus6QZu77XNhJuRHSRxMd+JJrbX/3PFI0opFGSN0BabbAYCbGxbu0mA==";
       };
     };
+    "postcss-8.4.16" = {
+      name = "postcss";
+      packageName = "postcss";
+      version = "8.4.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz";
+        sha512 = "ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==";
+      };
+    };
     "postgres-array-2.0.0" = {
       name = "postgres-array";
       packageName = "postgres-array";
@@ -5401,7 +6454,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
-        sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
+        sha512 = "xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==";
       };
     };
     "postgres-date-1.0.7" = {
@@ -5422,31 +6475,22 @@ let
         sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==";
       };
     };
-    "printj-1.1.2" = {
-      name = "printj";
-      packageName = "printj";
+    "prelude-ls-1.1.2" = {
+      name = "prelude-ls";
+      packageName = "prelude-ls";
       version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz";
-        sha512 = "zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==";
-      };
-    };
-    "printj-1.2.3" = {
-      name = "printj";
-      packageName = "printj";
-      version = "1.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/printj/-/printj-1.2.3.tgz";
-        sha512 = "sanczS6xOJOg7IKDvi4sGOUOe7c1tsEzjwlLFH/zgwx/uyImVM9/rgBkc8AfiQa/Vg54nRd8mkm9yI7WV/O+WA==";
+        url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz";
+        sha512 = "ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==";
       };
     };
-    "printj-1.3.1" = {
+    "printj-1.1.2" = {
       name = "printj";
       packageName = "printj";
-      version = "1.3.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz";
-        sha512 = "GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==";
+        url = "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz";
+        sha512 = "zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==";
       };
     };
     "process-0.11.10" = {
@@ -5455,7 +6499,7 @@ let
       version = "0.11.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/process/-/process-0.11.10.tgz";
-        sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182";
+        sha512 = "cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==";
       };
     };
     "process-nextick-args-2.0.1" = {
@@ -5482,7 +6526,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/promise/-/promise-1.3.0.tgz";
-        sha1 = "e5cc9a4c8278e4664ffedc01c7da84842b040175";
+        sha512 = "R9WrbTF3EPkVtWjp7B7umQGVndpsi+rsDAfrR4xAALQpFLa/+2OriecLhawxzvii2gd9+DZFwROWDuUUaqS5yA==";
       };
     };
     "promise-ftp-1.3.5" = {
@@ -5500,7 +6544,7 @@ let
       version = "1.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/promise-ftp-common/-/promise-ftp-common-1.1.5.tgz";
-        sha1 = "b4f8082a74035647703506763edb14230d9865da";
+        sha512 = "a84F/zM2Z0Ry/ht3nXfV6Ze7BISOQlWrct/YObrluJn8qy2LVeeQ+IJ7jD4bkmM0N2xfXYy5nurz4L1KEj+rJg==";
       };
     };
     "promise-retry-2.0.1" = {
@@ -5539,6 +6583,15 @@ let
         sha512 = "llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==";
       };
     };
+    "proxy-agent-5.0.0" = {
+      name = "proxy-agent";
+      packageName = "proxy-agent";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz";
+        sha512 = "gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==";
+      };
+    };
     "proxy-from-env-1.1.0" = {
       name = "proxy-from-env";
       packageName = "proxy-from-env";
@@ -5554,16 +6607,16 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
-        sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+        sha512 = "b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==";
       };
     };
-    "psl-1.8.0" = {
+    "psl-1.9.0" = {
       name = "psl";
       packageName = "psl";
-      version = "1.8.0";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
-        sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
+        url = "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz";
+        sha512 = "E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==";
       };
     };
     "pump-2.0.1" = {
@@ -5599,7 +6652,7 @@ let
       version = "1.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz";
-        sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
+        sha512 = "RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==";
       };
     };
     "punycode-2.1.1" = {
@@ -5638,22 +6691,13 @@ let
         sha512 = "qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==";
       };
     };
-    "qs-6.9.7" = {
-      name = "qs";
-      packageName = "qs";
-      version = "6.9.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz";
-        sha512 = "IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==";
-      };
-    };
     "querystring-0.2.0" = {
       name = "querystring";
       packageName = "querystring";
       version = "0.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz";
-        sha1 = "b209849203bb25df820da756e747005878521620";
+        sha512 = "X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==";
       };
     };
     "querystringify-2.2.0" = {
@@ -5680,7 +6724,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/quoted-printable/-/quoted-printable-1.0.1.tgz";
-        sha1 = "9eebf5eb3d11eef022b264fd2d2b6b2bb3b84cc3";
+        sha512 = "cihC68OcGiQOjGiXuo5Jk6XHANTHl1K4JLk/xlEJRTIXfy19Sg6XzB95XonYgr+1rB88bCpr7WZE7D7AlZow4g==";
       };
     };
     "railroad-diagrams-1.0.0" = {
@@ -5689,7 +6733,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz";
-        sha1 = "eb7e6267548ddedfb899c1b90e57374559cddb7e";
+        sha512 = "cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==";
       };
     };
     "randexp-0.4.6" = {
@@ -5707,7 +6751,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz";
-        sha1 = "4f68a1dc0ae58bd3fb95848c30324db75d64360b";
+        sha512 = "iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==";
       };
     };
     "randombytes-2.1.0" = {
@@ -5728,22 +6772,13 @@ let
         sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
       };
     };
-    "raw-body-2.4.3" = {
+    "raw-body-2.5.1" = {
       name = "raw-body";
       packageName = "raw-body";
-      version = "2.4.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz";
-        sha512 = "UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==";
-      };
-    };
-    "rc-1.2.8" = {
-      name = "rc";
-      packageName = "rc";
-      version = "1.2.8";
+      version = "2.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
-        sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
+        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz";
+        sha512 = "qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==";
       };
     };
     "readable-stream-1.1.14" = {
@@ -5752,7 +6787,7 @@ let
       version = "1.1.14";
       src = fetchurl {
         url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz";
-        sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
+        sha512 = "+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==";
       };
     };
     "readable-stream-2.3.7" = {
@@ -5791,6 +6826,24 @@ let
         sha512 = "hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==";
       };
     };
+    "rechoir-0.6.2" = {
+      name = "rechoir";
+      packageName = "rechoir";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz";
+        sha512 = "HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==";
+      };
+    };
+    "redeyed-2.1.1" = {
+      name = "redeyed";
+      packageName = "redeyed";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz";
+        sha512 = "FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==";
+      };
+    };
     "redis-3.1.2" = {
       name = "redis";
       packageName = "redis";
@@ -5815,7 +6868,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz";
-        sha1 = "eb62d2adb15e4eaf4610c04afe1529384250abad";
+        sha512 = "1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==";
       };
     };
     "redis-parser-3.0.0" = {
@@ -5824,7 +6877,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz";
-        sha1 = "b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4";
+        sha512 = "DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==";
       };
     };
     "reflect-metadata-0.1.13" = {
@@ -5836,6 +6889,15 @@ let
         sha512 = "Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==";
       };
     };
+    "regenerator-runtime-0.11.1" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
+        sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==";
+      };
+    };
     "regenerator-runtime-0.13.9" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
@@ -5845,13 +6907,22 @@ let
         sha512 = "p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==";
       };
     };
+    "regexp.prototype.flags-1.4.3" = {
+      name = "regexp.prototype.flags";
+      packageName = "regexp.prototype.flags";
+      version = "1.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz";
+        sha512 = "fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==";
+      };
+    };
     "reinterval-1.1.0" = {
       name = "reinterval";
       packageName = "reinterval";
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz";
-        sha1 = "3361ecfa3ca6c18283380dd0bb9546f390f5ece7";
+        sha512 = "QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ==";
       };
     };
     "remove-trailing-separator-1.1.0" = {
@@ -5860,7 +6931,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
-        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+        sha512 = "/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==";
       };
     };
     "remove-trailing-slash-0.1.1" = {
@@ -5899,15 +6970,6 @@ let
         sha512 = "wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==";
       };
     };
-    "requestretry-7.0.2" = {
-      name = "requestretry";
-      packageName = "requestretry";
-      version = "7.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/requestretry/-/requestretry-7.0.2.tgz";
-        sha512 = "Zz8z7G2OuVs4F0wR0shKMEMm7lNvPNHM0UIHNns9qfyuBDKSExoTsZGtSjKst6nPEwlMrbA9G+m/yC0AbGj+8w==";
-      };
-    };
     "require-at-1.0.6" = {
       name = "require-at";
       packageName = "require-at";
@@ -5923,7 +6985,16 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
-        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+        sha512 = "fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==";
+      };
+    };
+    "require-main-filename-2.0.0" = {
+      name = "require-main-filename";
+      packageName = "require-main-filename";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
+        sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
       };
     };
     "requires-port-1.0.0" = {
@@ -5932,7 +7003,25 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz";
-        sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
+        sha512 = "KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==";
+      };
+    };
+    "resize-observer-polyfill-1.5.1" = {
+      name = "resize-observer-polyfill";
+      packageName = "resize-observer-polyfill";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz";
+        sha512 = "LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==";
+      };
+    };
+    "resolve-1.22.1" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.22.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz";
+        sha512 = "nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==";
       };
     };
     "restore-cursor-3.1.0" = {
@@ -5959,7 +7048,7 @@ let
       version = "0.12.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz";
-        sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
+        sha512 = "9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==";
       };
     };
     "reusify-1.0.4" = {
@@ -5971,6 +7060,15 @@ let
         sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==";
       };
     };
+    "rfdc-1.3.0" = {
+      name = "rfdc";
+      packageName = "rfdc";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz";
+        sha512 = "V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==";
+      };
+    };
     "rhea-1.0.24" = {
       name = "rhea";
       packageName = "rhea";
@@ -5980,15 +7078,6 @@ let
         sha512 = "PEl62U2EhxCO5wMUZ2/bCBcXAVKN9AdMSNQOrp3+R5b77TEaOSiy16MQ0sIOmzj/iqsgIAgPs1mt3FYfu1vIXA==";
       };
     };
-    "rimraf-2.7.1" = {
-      name = "rimraf";
-      packageName = "rimraf";
-      version = "2.7.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
-        sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
-      };
-    };
     "rimraf-3.0.2" = {
       name = "rimraf";
       packageName = "rimraf";
@@ -5998,22 +7087,13 @@ let
         sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
       };
     };
-    "riot-tmpl-3.0.8" = {
-      name = "riot-tmpl";
-      packageName = "riot-tmpl";
-      version = "3.0.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/riot-tmpl/-/riot-tmpl-3.0.8.tgz";
-        sha1 = "dd654e72a3a1520cb009cbef70c73856ded584a6";
-      };
-    };
     "rndm-1.2.0" = {
       name = "rndm";
       packageName = "rndm";
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz";
-        sha1 = "f33fe9cfb52bbfd520aa18323bc65db110a1b76c";
+        sha512 = "fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==";
       };
     };
     "rss-parser-3.12.0" = {
@@ -6088,13 +7168,22 @@ let
         sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
       };
     };
+    "sanitize-html-2.7.0" = {
+      name = "sanitize-html";
+      packageName = "sanitize-html";
+      version = "2.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.0.tgz";
+        sha512 = "jfQelabOn5voO7FAfnQF7v+jsA6z9zC/O4ec0z3E35XPEtHYJT/OdUziVWlKW4irCr2kXaQAyXTXDHWAibg1tA==";
+      };
+    };
     "sax-1.2.1" = {
       name = "sax";
       packageName = "sax";
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz";
-        sha1 = "7b8e656190b228e81a66aea748480d828cd2d37a";
+        sha512 = "8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==";
       };
     };
     "sax-1.2.4" = {
@@ -6139,7 +7228,7 @@ let
       version = "5.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz";
-        sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f";
+        sha512 = "mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw==";
       };
     };
     "semver-5.7.1" = {
@@ -6160,22 +7249,22 @@ let
         sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
       };
     };
-    "semver-7.3.5" = {
+    "semver-7.3.7" = {
       name = "semver";
       packageName = "semver";
-      version = "7.3.5";
+      version = "7.3.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz";
-        sha512 = "PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==";
+        url = "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz";
+        sha512 = "QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==";
       };
     };
-    "send-0.17.2" = {
+    "send-0.18.0" = {
       name = "send";
       packageName = "send";
-      version = "0.17.2";
+      version = "0.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/send/-/send-0.17.2.tgz";
-        sha512 = "UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==";
+        url = "https://registry.npmjs.org/send/-/send-0.18.0.tgz";
+        sha512 = "qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==";
       };
     };
     "sentence-case-3.0.4" = {
@@ -6193,7 +7282,7 @@ let
       version = "0.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz";
-        sha1 = "d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e";
+        sha512 = "hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==";
       };
     };
     "serialize-javascript-5.0.1" = {
@@ -6205,13 +7294,13 @@ let
         sha512 = "SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==";
       };
     };
-    "serve-static-1.14.2" = {
+    "serve-static-1.15.0" = {
       name = "serve-static";
       packageName = "serve-static";
-      version = "1.14.2";
+      version = "1.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz";
-        sha512 = "+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==";
+        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz";
+        sha512 = "XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==";
       };
     };
     "servie-4.3.3" = {
@@ -6229,7 +7318,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
-        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+        sha512 = "KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==";
       };
     };
     "setheader-1.0.2" = {
@@ -6259,13 +7348,49 @@ let
         sha512 = "QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==";
       };
     };
+    "shebang-command-1.2.0" = {
+      name = "shebang-command";
+      packageName = "shebang-command";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz";
+        sha512 = "EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==";
+      };
+    };
+    "shebang-regex-1.0.0" = {
+      name = "shebang-regex";
+      packageName = "shebang-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz";
+        sha512 = "wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==";
+      };
+    };
     "shell-escape-0.2.0" = {
       name = "shell-escape";
       packageName = "shell-escape";
       version = "0.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/shell-escape/-/shell-escape-0.2.0.tgz";
-        sha1 = "68fd025eb0490b4f567a027f0bf22480b5f84133";
+        sha512 = "uRRBT2MfEOyxuECseCZd28jC1AJ8hmqqneWQ4VWUTgCAFvb3wKU1jLqj6egC4Exrr88ogg3dp+zroH4wJuaXzw==";
+      };
+    };
+    "shelljs-0.8.5" = {
+      name = "shelljs";
+      packageName = "shelljs";
+      version = "0.8.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz";
+        sha512 = "TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==";
+      };
+    };
+    "showdown-2.1.0" = {
+      name = "showdown";
+      packageName = "showdown";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz";
+        sha512 = "/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ==";
       };
     };
     "side-channel-1.0.4" = {
@@ -6286,13 +7411,13 @@ let
         sha512 = "wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==";
       };
     };
-    "simple-git-2.48.0" = {
+    "simple-git-3.12.0" = {
       name = "simple-git";
       packageName = "simple-git";
-      version = "2.48.0";
+      version = "3.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-git/-/simple-git-2.48.0.tgz";
-        sha512 = "z4qtrRuaAFJS4PUd0g+xy7aN4y+RvEt/QTJpR184lhJguBA1S/LsVlvE/CM95RsYMOFJG3NGGDjqFCzKU19S/A==";
+        url = "https://registry.npmjs.org/simple-git/-/simple-git-3.12.0.tgz";
+        sha512 = "cy1RSRFHGZSrlYa3MnUuNVOXLUdifEZD2X8+AZjg8mKCdRvtCFSga6acq5N2g0ggb8lH3jBi369MrFZ+Y6sfsA==";
       };
     };
     "simple-lru-cache-0.0.2" = {
@@ -6301,7 +7426,7 @@ let
       version = "0.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/simple-lru-cache/-/simple-lru-cache-0.0.2.tgz";
-        sha1 = "d59cc3a193c1a5d0320f84ee732f6e4713e511dd";
+        sha512 = "uEv/AFO0ADI7d99OHDmh1QfYzQk/izT1vCmu/riQfh7qjBVUUgRT87E5s5h7CxWCA/+YoZerykpEthzVrW3LIw==";
       };
     };
     "simple-swizzle-0.2.2" = {
@@ -6310,7 +7435,7 @@ let
       version = "0.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
-        sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
+        sha512 = "JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==";
       };
     };
     "slash-3.0.0" = {
@@ -6322,6 +7447,15 @@ let
         sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==";
       };
     };
+    "smart-buffer-4.2.0" = {
+      name = "smart-buffer";
+      packageName = "smart-buffer";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz";
+        sha512 = "94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==";
+      };
+    };
     "snake-case-3.0.4" = {
       name = "snake-case";
       packageName = "snake-case";
@@ -6331,13 +7465,31 @@ let
         sha512 = "LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==";
       };
     };
-    "snowflake-sdk-1.6.8" = {
+    "snowflake-sdk-1.6.12" = {
       name = "snowflake-sdk";
       packageName = "snowflake-sdk";
-      version = "1.6.8";
+      version = "1.6.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snowflake-sdk/-/snowflake-sdk-1.6.12.tgz";
+        sha512 = "nkwtsWsZr4KrloLgpMpLgCnJIxfcuWlD4sqR53kn8BQRmhOi6cSBgnvZmoYcFvW2arVvfHh/Dc3vOQ/4OuRSLg==";
+      };
+    };
+    "socks-2.7.0" = {
+      name = "socks";
+      packageName = "socks";
+      version = "2.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snowflake-sdk/-/snowflake-sdk-1.6.8.tgz";
-        sha512 = "ZmzeR2W4mQVri546mUxUW+jBxTn0JRKm06EtndO7MUFLcS8YChf60tXTa+s7A0hO8FxQkSQAFonCmtz4nzPoSA==";
+        url = "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz";
+        sha512 = "scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==";
+      };
+    };
+    "socks-proxy-agent-5.0.1" = {
+      name = "socks-proxy-agent";
+      packageName = "socks-proxy-agent";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz";
+        sha512 = "vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==";
       };
     };
     "source-map-0.6.1" = {
@@ -6349,6 +7501,15 @@ let
         sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
       };
     };
+    "source-map-js-1.0.2" = {
+      name = "source-map-js";
+      packageName = "source-map-js";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz";
+        sha512 = "R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==";
+      };
+    };
     "spex-3.2.0" = {
       name = "spex";
       packageName = "spex";
@@ -6382,7 +7543,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
-        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+        sha512 = "D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==";
       };
     };
     "sprintf-js-1.1.2" = {
@@ -6394,13 +7555,13 @@ let
         sha512 = "VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==";
       };
     };
-    "sqlite3-5.0.2" = {
+    "sqlite3-5.0.11" = {
       name = "sqlite3";
       packageName = "sqlite3";
-      version = "5.0.2";
+      version = "5.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.2.tgz";
-        sha512 = "1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA==";
+        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.11.tgz";
+        sha512 = "4akFOr7u9lJEeAWLJxmwiV43DJcGV7w3ab7SjQFAFaTVyknY3rZjvXTKIVtWqUoY4xwhjwoHKYs2HDW2SoHVsA==";
       };
     };
     "sqlstring-2.3.3" = {
@@ -6430,13 +7591,13 @@ let
         sha512 = "+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==";
       };
     };
-    "ssh2-1.8.0" = {
+    "ssh2-1.11.0" = {
       name = "ssh2";
       packageName = "ssh2";
-      version = "1.8.0";
+      version = "1.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssh2/-/ssh2-1.8.0.tgz";
-        sha512 = "NVIRkIwJvWl+mcRozp+EBzHMVCcbDKBea64ToPdZEk43yAVGwmfqYZRPFRnnvGjsKC34wYCmiupTcKgCVNVNNg==";
+        url = "https://registry.npmjs.org/ssh2/-/ssh2-1.11.0.tgz";
+        sha512 = "nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==";
       };
     };
     "ssh2-sftp-client-7.2.3" = {
@@ -6463,7 +7624,7 @@ let
       version = "0.0.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz";
-        sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
+        sha512 = "KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==";
       };
     };
     "standard-as-callback-2.1.0" = {
@@ -6481,7 +7642,16 @@ let
       version = "1.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz";
-        sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+        sha512 = "OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==";
+      };
+    };
+    "statuses-2.0.1" = {
+      name = "statuses";
+      packageName = "statuses";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz";
+        sha512 = "RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==";
       };
     };
     "stealthy-require-1.1.1" = {
@@ -6490,7 +7660,16 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz";
-        sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
+        sha512 = "ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==";
+      };
+    };
+    "stoppable-1.1.0" = {
+      name = "stoppable";
+      packageName = "stoppable";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz";
+        sha512 = "KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==";
       };
     };
     "stream-shift-1.0.1" = {
@@ -6502,6 +7681,15 @@ let
         sha512 = "AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==";
       };
     };
+    "streamsearch-1.1.0" = {
+      name = "streamsearch";
+      packageName = "streamsearch";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz";
+        sha512 = "Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==";
+      };
+    };
     "string-similarity-4.0.4" = {
       name = "string-similarity";
       packageName = "string-similarity";
@@ -6511,15 +7699,6 @@ let
         sha512 = "/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==";
       };
     };
-    "string-width-1.0.2" = {
-      name = "string-width";
-      packageName = "string-width";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
-        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
-      };
-    };
     "string-width-4.2.3" = {
       name = "string-width";
       packageName = "string-width";
@@ -6529,22 +7708,22 @@ let
         sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==";
       };
     };
-    "string.prototype.trimend-1.0.4" = {
+    "string.prototype.trimend-1.0.5" = {
       name = "string.prototype.trimend";
       packageName = "string.prototype.trimend";
-      version = "1.0.4";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz";
-        sha512 = "y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==";
+        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz";
+        sha512 = "I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==";
       };
     };
-    "string.prototype.trimstart-1.0.4" = {
+    "string.prototype.trimstart-1.0.5" = {
       name = "string.prototype.trimstart";
       packageName = "string.prototype.trimstart";
-      version = "1.0.4";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz";
-        sha512 = "jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==";
+        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz";
+        sha512 = "THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==";
       };
     };
     "string_decoder-0.10.31" = {
@@ -6553,7 +7732,7 @@ let
       version = "0.10.31";
       src = fetchurl {
         url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
-        sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+        sha512 = "ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==";
       };
     };
     "string_decoder-1.1.1" = {
@@ -6565,24 +7744,6 @@ let
         sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
       };
     };
-    "string_decoder-1.3.0" = {
-      name = "string_decoder";
-      packageName = "string_decoder";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz";
-        sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
-      };
-    };
-    "strip-ansi-3.0.1" = {
-      name = "strip-ansi";
-      packageName = "strip-ansi";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
-        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
-      };
-    };
     "strip-ansi-6.0.1" = {
       name = "strip-ansi";
       packageName = "strip-ansi";
@@ -6592,15 +7753,6 @@ let
         sha512 = "Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==";
       };
     };
-    "strip-json-comments-2.0.1" = {
-      name = "strip-json-comments";
-      packageName = "strip-json-comments";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
-        sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
-      };
-    };
     "strtok3-6.3.0" = {
       name = "strtok3";
       packageName = "strtok3";
@@ -6610,58 +7762,94 @@ let
         sha512 = "fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==";
       };
     };
-    "supports-color-2.0.0" = {
+    "supports-color-7.2.0" = {
       name = "supports-color";
       packageName = "supports-color";
-      version = "2.0.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz";
-        sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
       };
     };
-    "supports-color-7.2.0" = {
+    "supports-color-8.1.1" = {
       name = "supports-color";
       packageName = "supports-color";
-      version = "7.2.0";
+      version = "8.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
-        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz";
+        sha512 = "MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==";
+      };
+    };
+    "supports-hyperlinks-2.2.0" = {
+      name = "supports-hyperlinks";
+      packageName = "supports-hyperlinks";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz";
+        sha512 = "6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==";
+      };
+    };
+    "supports-preserve-symlinks-flag-1.0.0" = {
+      name = "supports-preserve-symlinks-flag";
+      packageName = "supports-preserve-symlinks-flag";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz";
+        sha512 = "ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==";
+      };
+    };
+    "swagger-ui-dist-4.13.2" = {
+      name = "swagger-ui-dist";
+      packageName = "swagger-ui-dist";
+      version = "4.13.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-4.13.2.tgz";
+        sha512 = "jHL6UyIYpvEI7NsuWd0R3hJaPQTg6Oo4qSBo+oVfOEkv6rrQm/475RGSMmZgV6ajp+Sgrp9CqrDjQYAgQqiv1A==";
+      };
+    };
+    "swagger-ui-express-4.5.0" = {
+      name = "swagger-ui-express";
+      packageName = "swagger-ui-express";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.5.0.tgz";
+        sha512 = "DHk3zFvsxrkcnurGvQlAcLuTDacAVN1JHKDgcba/gr2NFRE4HGwP1YeHIXMiGznkWR4AeS7X5vEblNn4QljuNA==";
       };
     };
-    "tar-4.4.19" = {
+    "tar-6.1.11" = {
       name = "tar";
       packageName = "tar";
-      version = "4.4.19";
+      version = "6.1.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz";
-        sha512 = "a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==";
+        url = "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz";
+        sha512 = "an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==";
       };
     };
-    "tarn-1.1.5" = {
+    "tarn-3.0.2" = {
       name = "tarn";
       packageName = "tarn";
-      version = "1.1.5";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tarn/-/tarn-1.1.5.tgz";
-        sha512 = "PMtJ3HCLAZeedWjJPgGnCvcphbCOMbtZpjKgLq3qM5Qq9aQud+XHrL0WlrlgnTyS8U+jrjGbEXprFcQrxPy52g==";
+        url = "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz";
+        sha512 = "51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==";
       };
     };
-    "tdigest-0.1.1" = {
+    "tdigest-0.1.2" = {
       name = "tdigest";
       packageName = "tdigest";
-      version = "0.1.1";
+      version = "0.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz";
-        sha1 = "2e3cb2c39ea449e55d1e6cd91117accca4588021";
+        url = "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz";
+        sha512 = "+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==";
       };
     };
-    "tedious-6.7.1" = {
+    "tedious-14.7.0" = {
       name = "tedious";
       packageName = "tedious";
-      version = "6.7.1";
+      version = "14.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tedious/-/tedious-6.7.1.tgz";
-        sha512 = "61eg/mvUa5vIqZcRizcqw/82dY65kR2uTll1TaUFh0aJ45XOrgbc8axiVR48dva8BahIAlJByaHNfAJ/KmPV0g==";
+        url = "https://registry.npmjs.org/tedious/-/tedious-14.7.0.tgz";
+        sha512 = "d3qlmZcvZyt7akyPHiOdR+knfzObWZH3mW+gouQTSb7YTSwtpHuYHcvsQabfbY7oOvgbs51xRb7CwOahWK/t9w==";
       };
     };
     "test-console-2.0.0" = {
@@ -6697,7 +7885,16 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz";
-        sha1 = "1a1918d402d8fc3f98fbf234db0bcc8cc10e9726";
+        sha512 = "RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==";
+      };
+    };
+    "throttle-debounce-1.1.0" = {
+      name = "throttle-debounce";
+      packageName = "throttle-debounce";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz";
+        sha512 = "XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==";
       };
     };
     "through-2.3.8" = {
@@ -6706,7 +7903,7 @@ let
       version = "2.3.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
-        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+        sha512 = "w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==";
       };
     };
     "through2-2.0.5" = {
@@ -6754,13 +7951,13 @@ let
         sha512 = "vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==";
       };
     };
-    "tlds-1.224.0" = {
+    "tlds-1.231.0" = {
       name = "tlds";
       packageName = "tlds";
-      version = "1.224.0";
+      version = "1.231.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tlds/-/tlds-1.224.0.tgz";
-        sha512 = "Jgdc8SEijbDFUsmCn6Wk/f7E6jBLFZOG3U1xK0amGSfEH55Xx97ItUS/d2NngsuApjn11UeWCWj8Um3VRhseZQ==";
+        url = "https://registry.npmjs.org/tlds/-/tlds-1.231.0.tgz";
+        sha512 = "L7UQwueHSkGxZHQBXHVmXW64oi+uqNtzFt2x6Ssk7NVnpIbw16CRs4eb/jmKOZ9t2JnqZ/b3Cfvo97lnXqKrhw==";
       };
     };
     "tmp-0.0.33" = {
@@ -6796,7 +7993,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz";
-        sha1 = "1865f43d9e74b0822db9f145b78cff7d0f7c849b";
+        sha512 = "rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==";
       };
     };
     "to-regex-range-5.0.1" = {
@@ -6832,7 +8029,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz";
-        sha1 = "ae21768175d1559d48bef35420b2f4962f09c330";
+        sha512 = "0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==";
       };
     };
     "tough-cookie-2.5.0" = {
@@ -6868,7 +8065,7 @@ let
       version = "0.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz";
-        sha1 = "8184fd347dac9cdc185992f3a6622e14b9d9ab6a";
+        sha512 = "N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==";
       };
     };
     "triple-beam-1.3.0" = {
@@ -6898,13 +8095,13 @@ let
         sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==";
       };
     };
-    "tslib-2.3.1" = {
+    "tslib-2.4.0" = {
       name = "tslib";
       packageName = "tslib";
-      version = "2.3.1";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz";
-        sha512 = "77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==";
+        url = "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz";
+        sha512 = "d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==";
       };
     };
     "tsscmp-1.0.6" = {
@@ -6931,7 +8128,7 @@ let
       version = "0.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
-        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+        sha512 = "McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==";
       };
     };
     "tweetnacl-0.14.5" = {
@@ -6940,7 +8137,16 @@ let
       version = "0.14.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
-        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+        sha512 = "KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==";
+      };
+    };
+    "type-check-0.3.2" = {
+      name = "type-check";
+      packageName = "type-check";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz";
+        sha512 = "ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==";
       };
     };
     "type-fest-0.21.3" = {
@@ -6967,7 +8173,7 @@ let
       version = "0.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
-        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+        sha512 = "/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==";
       };
     };
     "typedarray-to-buffer-3.1.5" = {
@@ -6979,13 +8185,13 @@ let
         sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==";
       };
     };
-    "typeorm-0.2.30" = {
+    "typeorm-0.2.45" = {
       name = "typeorm";
       packageName = "typeorm";
-      version = "0.2.30";
+      version = "0.2.45";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typeorm/-/typeorm-0.2.30.tgz";
-        sha512 = "qpr8AO3Phi6ZF7qMHOrRdNisVt8jE1KfmW0ooLFcXscA87aJ12aBPyB9cJfxGNjNwd7B3WIK9ZlBveWiqd74QA==";
+        url = "https://registry.npmjs.org/typeorm/-/typeorm-0.2.45.tgz";
+        sha512 = "c0rCO8VMJ3ER7JQ73xfk0zDnVv0WDjpsP6Q1m6CVKul7DB9iVdWLRjPzc8v2eaeBuomsbZ2+gTaYr8k1gm3bYA==";
       };
     };
     "uc.micro-1.0.6" = {
@@ -7006,13 +8212,13 @@ let
         sha512 = "KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==";
       };
     };
-    "unbox-primitive-1.0.1" = {
+    "unbox-primitive-1.0.2" = {
       name = "unbox-primitive";
       packageName = "unbox-primitive";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz";
-        sha512 = "tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==";
+        url = "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz";
+        sha512 = "61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==";
       };
     };
     "unc-path-regex-0.1.2" = {
@@ -7021,16 +8227,16 @@ let
       version = "0.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz";
-        sha1 = "e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa";
+        sha512 = "eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==";
       };
     };
-    "underscore-1.13.2" = {
-      name = "underscore";
-      packageName = "underscore";
-      version = "1.13.2";
+    "unescape-1.0.1" = {
+      name = "unescape";
+      packageName = "unescape";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz";
-        sha512 = "ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==";
+        url = "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz";
+        sha512 = "O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==";
       };
     };
     "unique-stream-2.3.1" = {
@@ -7051,13 +8257,22 @@ let
         sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
       };
     };
+    "universalify-2.0.0" = {
+      name = "universalify";
+      packageName = "universalify";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz";
+        sha512 = "hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==";
+      };
+    };
     "unpipe-1.0.0" = {
       name = "unpipe";
       packageName = "unpipe";
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
-        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+        sha512 = "pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==";
       };
     };
     "upper-case-2.0.2" = {
@@ -7093,7 +8308,7 @@ let
       version = "0.10.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/url/-/url-0.10.3.tgz";
-        sha1 = "021e4d9c7705f21bbf37d03ceb58767402774c64";
+        sha512 = "hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==";
       };
     };
     "url-parse-1.5.10" = {
@@ -7105,13 +8320,22 @@ let
         sha512 = "WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==";
       };
     };
+    "urllib-2.38.1" = {
+      name = "urllib";
+      packageName = "urllib";
+      version = "2.38.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/urllib/-/urllib-2.38.1.tgz";
+        sha512 = "1tvjdL74oT9aV4X+SIjE1BXyes5PbfhHKhK4IlhoKhKqk4nD5/lXE90v10WZ02kELWIPI4w7ADneEQ4i7dPjiQ==";
+      };
+    };
     "utf7-1.0.2" = {
       name = "utf7";
       packageName = "utf7";
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/utf7/-/utf7-1.0.2.tgz";
-        sha1 = "955f490aae653ba220b9456a0a8776c199360991";
+        sha512 = "qQrPtYLLLl12NF4DrM9CvfkxkYI97xOb5dsnGZHE3teFr0tWiEZ9UdgMPczv24vl708cYMpe6mGXGHrotIp3Bw==";
       };
     };
     "utf8-2.1.2" = {
@@ -7120,7 +8344,16 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/utf8/-/utf8-2.1.2.tgz";
-        sha1 = "1fa0d9270e9be850d9b05027f63519bf46457d96";
+        sha512 = "QXo+O/QkLP/x1nyi54uQiG0XrODxdysuQvE5dtVqv7F5K2Qb6FsN+qbr6KhF5wQ20tfcV3VQp0/2x1e1MRSPWg==";
+      };
+    };
+    "util-0.12.4" = {
+      name = "util";
+      packageName = "util";
+      version = "0.12.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util/-/util-0.12.4.tgz";
+        sha512 = "bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==";
       };
     };
     "util-deprecate-1.0.2" = {
@@ -7129,7 +8362,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
-        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+        sha512 = "EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==";
       };
     };
     "util.promisify-1.1.1" = {
@@ -7141,13 +8374,31 @@ let
         sha512 = "/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==";
       };
     };
+    "utility-0.1.11" = {
+      name = "utility";
+      packageName = "utility";
+      version = "0.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/utility/-/utility-0.1.11.tgz";
+        sha512 = "epFsJ71+/yC7MKMX7CM9azP31QBIQhywkiBUj74i/T3Y2TXtEor26QBkat7lGamrrNTr5CBI1imd/8F0Bmqw4g==";
+      };
+    };
+    "utility-1.17.0" = {
+      name = "utility";
+      packageName = "utility";
+      version = "1.17.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/utility/-/utility-1.17.0.tgz";
+        sha512 = "KdVkF9An/0239BJ4+dqOa7NPrPIOeQE9AGfx0XS16O9DBiHNHRJMoeU5nL6pRGAkgJOqdOu8R4gBRcXnAocJKw==";
+      };
+    };
     "utils-merge-1.0.1" = {
       name = "utils-merge";
       packageName = "utils-merge";
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
-        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+        sha512 = "pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==";
       };
     };
     "uuencode-0.0.4" = {
@@ -7156,25 +8407,25 @@ let
       version = "0.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/uuencode/-/uuencode-0.0.4.tgz";
-        sha1 = "c8d50370885663879385ab37e333c7e8e3b0218c";
+        sha512 = "yEEhCuCi5wRV7Z5ZVf9iV2gWMvUZqKJhAs1ecFdKJ0qzbyaVelmsE3QjYAamehfp9FKLiZbKldd+jklG3O0LfA==";
       };
     };
-    "uuid-3.3.2" = {
+    "uuid-3.4.0" = {
       name = "uuid";
       packageName = "uuid";
-      version = "3.3.2";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz";
-        sha512 = "yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==";
+        url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
+        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
       };
     };
-    "uuid-3.4.0" = {
+    "uuid-8.0.0" = {
       name = "uuid";
       packageName = "uuid";
-      version = "3.4.0";
+      version = "8.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
-        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+        url = "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz";
+        sha512 = "jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==";
       };
     };
     "uuid-8.3.2" = {
@@ -7186,13 +8437,13 @@ let
         sha512 = "+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==";
       };
     };
-    "v-click-outside-3.1.2" = {
+    "v-click-outside-3.2.0" = {
       name = "v-click-outside";
       packageName = "v-click-outside";
-      version = "3.1.2";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/v-click-outside/-/v-click-outside-3.1.2.tgz";
-        sha512 = "gMdRqfRE6m6XU6SiFi3dyBlFB2MWogiXpof8Aa3LQysrl9pzTndqp/iEaAphLoadaQUFnQ0ec6fLLaxr7LiY6A==";
+        url = "https://registry.npmjs.org/v-click-outside/-/v-click-outside-3.2.0.tgz";
+        sha512 = "QD0bDy38SHJXQBjgnllmkI/rbdiwmq9RC+/+pvrFjYJKTn8dtp7Penf9q1lLBta280fYG2q53mgLhQ+3l3z74w==";
       };
     };
     "validator-13.7.0" = {
@@ -7210,7 +8461,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
-        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+        sha512 = "BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==";
       };
     };
     "verror-1.10.0" = {
@@ -7219,25 +8470,25 @@ let
       version = "1.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
-        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+        sha512 = "ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==";
       };
     };
-    "vm2-3.9.9" = {
+    "vm2-3.9.10" = {
       name = "vm2";
       packageName = "vm2";
-      version = "3.9.9";
+      version = "3.9.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vm2/-/vm2-3.9.9.tgz";
-        sha512 = "xwTm7NLh/uOjARRBs8/95H0e8fT3Ukw5D/JJWhxMbhKzNh1Nu981jQKvkep9iKYNxzlVrdzD0mlBGkDKZWprlw==";
+        url = "https://registry.npmjs.org/vm2/-/vm2-3.9.10.tgz";
+        sha512 = "AuECTSvwu2OHLAZYhG716YzwodKCIJxB6u1zG7PgSQwIgAlEaoXH52bxdcvT8GkGjnYK7r7yWDW0m0sOsPuBjQ==";
       };
     };
-    "vue-2.6.14" = {
+    "vue-2.7.8" = {
       name = "vue";
       packageName = "vue";
-      version = "2.6.14";
+      version = "2.7.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz";
-        sha512 = "x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==";
+        url = "https://registry.npmjs.org/vue/-/vue-2.7.8.tgz";
+        sha512 = "ncwlZx5qOcn754bCu5/tS/IWPhXHopfit79cx+uIlLMyt3vCMGcXai5yCG5y+I6cDmEj4ukRYyZail9FTQh7lQ==";
       };
     };
     "vue-color-2.8.1" = {
@@ -7249,22 +8500,22 @@ let
         sha512 = "BoLCEHisXi2QgwlhZBg9UepvzZZmi4176vbr+31Shen5WWZwSLVgdScEPcB+yrAtuHAz42309C0A4+WiL9lNBw==";
       };
     };
-    "vue-fragment-1.5.2" = {
+    "vue-fragment-1.5.1" = {
       name = "vue-fragment";
       packageName = "vue-fragment";
-      version = "1.5.2";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue-fragment/-/vue-fragment-1.5.2.tgz";
-        sha512 = "KEW0gkeNOLJjtXN4jqJhTazez5jtrwimHkE5Few/VxblH4F9EcvJiEsahrV5kg5uKd5U8du4ORKS6QjGE0piYA==";
+        url = "https://registry.npmjs.org/vue-fragment/-/vue-fragment-1.5.1.tgz";
+        sha512 = "ig6eES6TcMBbANW71ylB+AJgRN+Zksb3f50AxjGpAk6hMzqmeuD80qeh4LJP0jVw2dMBMjgRUfIkrvxygoRgtQ==";
       };
     };
-    "vue-i18n-8.27.0" = {
+    "vue-i18n-8.27.2" = {
       name = "vue-i18n";
       packageName = "vue-i18n";
-      version = "8.27.0";
+      version = "8.27.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.27.0.tgz";
-        sha512 = "SX35iJHL5PJ4Gfh0Mo/q0shyHiI2V6Zkh51c+k8E9O1RKv5BQyYrCxRzpvPrsIOJEnLaeiovet3dsUB0e/kDzw==";
+        url = "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.27.2.tgz";
+        sha512 = "QVzn7u2WVH8F7eSKIM00lujC7x1mnuGPaTnDTmB01Hd709jDtB9kYtBqM+MWmp5AJRx3gnqAdZbee9MelqwFBg==";
       };
     };
     "vue2-boring-avatars-0.3.4" = {
@@ -7276,13 +8527,22 @@ let
         sha512 = "N3FYX9Z6rZdTeP3BOBz2LMxlWo9WRmPF6SOsYzz+tEuUH0QjX8UD7c1X95J8pZ7cFvbh9QflVujYQRqRiiwoAg==";
       };
     };
+    "vue2-teleport-1.0.1" = {
+      name = "vue2-teleport";
+      packageName = "vue2-teleport";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue2-teleport/-/vue2-teleport-1.0.1.tgz";
+        sha512 = "hbY/Q0x8qXGFxo6h4KU4YYesUcN+uUjliqqC0PoNSgpcbS2QRb3qXi+7XMTgLYs0a8i7o1H6Mu43UV4Vbgkhgw==";
+      };
+    };
     "webidl-conversions-3.0.1" = {
       name = "webidl-conversions";
       packageName = "webidl-conversions";
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz";
-        sha1 = "24534275e2a7bc6be7bc86611cc16ae0a5654871";
+        sha512 = "2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==";
       };
     };
     "whatwg-url-5.0.0" = {
@@ -7291,7 +8551,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz";
-        sha1 = "966454e8765462e37644d3626f6742ce8b70965d";
+        sha512 = "saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==";
       };
     };
     "which-1.3.1" = {
@@ -7312,6 +8572,24 @@ let
         sha512 = "bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==";
       };
     };
+    "which-module-2.0.0" = {
+      name = "which-module";
+      packageName = "which-module";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
+        sha512 = "B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==";
+      };
+    };
+    "which-typed-array-1.1.8" = {
+      name = "which-typed-array";
+      packageName = "which-typed-array";
+      version = "1.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz";
+        sha512 = "Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==";
+      };
+    };
     "wide-align-1.1.5" = {
       name = "wide-align";
       packageName = "wide-align";
@@ -7330,13 +8608,22 @@ let
         sha512 = "NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==";
       };
     };
-    "winston-3.6.0" = {
+    "win-release-1.1.1" = {
+      name = "win-release";
+      packageName = "win-release";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz";
+        sha512 = "iCRnKVvGxOQdsKhcQId2PXV1vV3J/sDPXKA4Oe9+Eti2nb2ESEsYHRYls/UjoUW3bIc5ZDO8dTH50A/5iVN+bw==";
+      };
+    };
+    "winston-3.8.1" = {
       name = "winston";
       packageName = "winston";
-      version = "3.6.0";
+      version = "3.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston/-/winston-3.6.0.tgz";
-        sha512 = "9j8T75p+bcN6D00sF/zjFVmPp+t8KMPB1MzbbzYjeN9VWxdsYnTB40TkbNUEXAmILEfChMvAMgidlX64OG3p6w==";
+        url = "https://registry.npmjs.org/winston/-/winston-3.8.1.tgz";
+        sha512 = "r+6YAiCR4uI3N8eQNOg8k3P3PqwAm20cLKlzVD9E66Ch39+LZC+VH1UKf9JemQj2B3QoUHfKD7Poewn0Pr3Y1w==";
       };
     };
     "winston-transport-4.5.0" = {
@@ -7366,13 +8653,22 @@ let
         sha512 = "OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==";
       };
     };
+    "word-wrap-1.2.3" = {
+      name = "word-wrap";
+      packageName = "word-wrap";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz";
+        sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
+      };
+    };
     "wordwrap-1.0.0" = {
       name = "wordwrap";
       packageName = "wordwrap";
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz";
-        sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+        sha512 = "gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==";
       };
     };
     "wrap-ansi-6.2.0" = {
@@ -7399,16 +8695,16 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
-        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+        sha512 = "l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==";
       };
     };
-    "ws-7.5.7" = {
+    "ws-7.5.9" = {
       name = "ws";
       packageName = "ws";
-      version = "7.5.7";
+      version = "7.5.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz";
-        sha512 = "KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==";
+        url = "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz";
+        sha512 = "F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==";
       };
     };
     "xlsx-0.17.5" = {
@@ -7453,16 +8749,7 @@ let
       version = "9.0.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz";
-        sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d";
-      };
-    };
-    "xpath.js-1.1.0" = {
-      name = "xpath.js";
-      packageName = "xpath.js";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xpath.js/-/xpath.js-1.1.0.tgz";
-        sha512 = "jg+qkfS4K8E7965sqaUl8mRngXiKb3WZGfONgE18pr03FUQiuSV6G+Ej4tS55B+rIQSFEIw3phdVAQ4pPqNWfQ==";
+        sha512 = "7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==";
       };
     };
     "xregexp-2.0.0" = {
@@ -7471,16 +8758,16 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz";
-        sha1 = "52a63e56ca0b84a7f3a5f3d61872f126ad7a5943";
+        sha512 = "xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==";
       };
     };
-    "xss-1.0.11" = {
+    "xss-1.0.14" = {
       name = "xss";
       packageName = "xss";
-      version = "1.0.11";
+      version = "1.0.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xss/-/xss-1.0.11.tgz";
-        sha512 = "EimjrjThZeK2MO7WKR9mN5ZC1CSqivSl55wvUK5EtU6acf0rzEE1pN+9ZDrFXJ82BRp3JL38pPE6S4o/rpp1zQ==";
+        url = "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz";
+        sha512 = "og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==";
       };
     };
     "xtend-4.0.2" = {
@@ -7492,6 +8779,15 @@ let
         sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
       };
     };
+    "y18n-4.0.3" = {
+      name = "y18n";
+      packageName = "y18n";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz";
+        sha512 = "JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==";
+      };
+    };
     "y18n-5.0.8" = {
       name = "y18n";
       packageName = "y18n";
@@ -7507,7 +8803,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
-        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+        sha512 = "ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==";
       };
     };
     "yallist-3.1.1" = {
@@ -7528,13 +8824,22 @@ let
         sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
       };
     };
-    "yargonaut-1.1.4" = {
-      name = "yargonaut";
-      packageName = "yargonaut";
-      version = "1.1.4";
+    "yamljs-0.3.0" = {
+      name = "yamljs";
+      packageName = "yamljs";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz";
+        sha512 = "C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==";
+      };
+    };
+    "yargs-15.4.1" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "15.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargonaut/-/yargonaut-1.1.4.tgz";
-        sha512 = "rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==";
+        url = "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz";
+        sha512 = "aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==";
       };
     };
     "yargs-16.2.0" = {
@@ -7555,6 +8860,24 @@ let
         sha512 = "c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==";
       };
     };
+    "yargs-17.5.1" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "17.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz";
+        sha512 = "t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==";
+      };
+    };
+    "yargs-parser-18.1.3" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "18.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz";
+        sha512 = "o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==";
+      };
+    };
     "yargs-parser-20.2.9" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
@@ -7564,6 +8887,15 @@ let
         sha512 = "y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==";
       };
     };
+    "yargs-parser-21.1.1" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "21.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz";
+        sha512 = "tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==";
+      };
+    };
     "yup-0.32.11" = {
       name = "yup";
       packageName = "yup";
@@ -7573,68 +8905,134 @@ let
         sha512 = "Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==";
       };
     };
+    "z-schema-4.2.4" = {
+      name = "z-schema";
+      packageName = "z-schema";
+      version = "4.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/z-schema/-/z-schema-4.2.4.tgz";
+        sha512 = "YvBeW5RGNeNzKOUJs3rTL4+9rpcvHXt5I051FJbOcitV8bl40pEfcG0Q+dWSwS0/BIYrMZ/9HHoqLllMkFhD0w==";
+      };
+    };
+    "zen-observable-0.8.15" = {
+      name = "zen-observable";
+      packageName = "zen-observable";
+      version = "0.8.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz";
+        sha512 = "PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==";
+      };
+    };
+    "zen-observable-ts-1.2.5" = {
+      name = "zen-observable-ts";
+      packageName = "zen-observable-ts";
+      version = "1.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz";
+        sha512 = "QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==";
+      };
+    };
   };
 in
 {
   n8n = nodeEnv.buildNodePackage {
     name = "n8n";
     packageName = "n8n";
-    version = "0.170.0";
+    version = "0.191.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/n8n/-/n8n-0.170.0.tgz";
-      sha512 = "aY4A9+P7K6iinxFyDZl9Jdin283csAbiMStjfxLX5IfO75/aNbjXhSmpjclV9PCUuuTonvoMiVMTvpbCaeImqg==";
+      url = "https://registry.npmjs.org/n8n/-/n8n-0.191.0.tgz";
+      sha512 = "HnnhsQqWcx4azUB9DZHtdT+nJBr7gWEr5c/sr7PFrcZwLoF1fW8ydxTGj6weyl62GggrE+RBR4MuKRVRNY7hcg==";
     };
     dependencies = [
-      (sources."@azure/abort-controller-1.0.5" // {
+      sources."@apidevtools/json-schema-ref-parser-8.0.0"
+      sources."@apidevtools/openapi-schemas-2.1.0"
+      sources."@apidevtools/swagger-cli-4.0.0"
+      sources."@apidevtools/swagger-methods-3.0.2"
+      (sources."@apidevtools/swagger-parser-9.0.1" // {
+        dependencies = [
+          sources."openapi-types-1.3.5"
+        ];
+      })
+      (sources."@azure/abort-controller-1.1.0" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
-      sources."@azure/core-asynciterator-polyfill-1.0.2"
-      (sources."@azure/core-auth-1.3.2" // {
+      (sources."@azure/core-auth-1.4.0" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
-      (sources."@azure/core-http-2.2.4" // {
+      (sources."@azure/core-client-1.6.1" // {
         dependencies = [
+          sources."tslib-2.4.0"
+        ];
+      })
+      (sources."@azure/core-http-2.2.6" // {
+        dependencies = [
+          sources."@azure/core-tracing-1.0.0-preview.13"
           sources."tough-cookie-4.0.0"
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
+          sources."universalify-0.1.2"
         ];
       })
-      (sources."@azure/core-lro-2.2.4" // {
+      sources."@azure/core-http-compat-1.3.0"
+      (sources."@azure/core-lro-2.2.5" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
-      (sources."@azure/core-paging-1.2.1" // {
+      (sources."@azure/core-paging-1.3.0" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
-      (sources."@azure/core-tracing-1.0.0-preview.13" // {
+      (sources."@azure/core-rest-pipeline-1.9.1" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."@tootallnate/once-2.0.0"
+          sources."http-proxy-agent-5.0.0"
+          sources."tslib-2.4.0"
         ];
       })
-      (sources."@azure/logger-1.0.3" // {
+      (sources."@azure/core-tracing-1.0.1" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
-      sources."@azure/ms-rest-azure-env-2.0.0"
-      (sources."@azure/ms-rest-js-2.6.1" // {
+      (sources."@azure/core-util-1.0.0" // {
         dependencies = [
-          sources."form-data-2.5.1"
+          sources."tslib-2.4.0"
         ];
       })
-      sources."@azure/ms-rest-nodeauth-3.1.1"
-      (sources."@azure/storage-blob-12.9.0" // {
+      (sources."@azure/identity-2.1.0" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."jwa-2.0.0"
+          sources."jws-4.0.0"
+          sources."open-8.4.0"
+          sources."tslib-2.4.0"
         ];
       })
-      sources."@babel/runtime-7.17.8"
+      (sources."@azure/keyvault-keys-4.5.0" // {
+        dependencies = [
+          sources."tslib-2.4.0"
+        ];
+      })
+      (sources."@azure/logger-1.0.3" // {
+        dependencies = [
+          sources."tslib-2.4.0"
+        ];
+      })
+      sources."@azure/msal-browser-2.28.1"
+      sources."@azure/msal-common-7.3.0"
+      sources."@azure/msal-node-1.12.1"
+      (sources."@azure/storage-blob-12.11.0" // {
+        dependencies = [
+          sources."@azure/core-tracing-1.0.0-preview.13"
+          sources."tslib-2.4.0"
+        ];
+      })
+      sources."@babel/parser-7.18.11"
+      sources."@babel/runtime-7.18.9"
       sources."@colors/colors-1.5.0"
       (sources."@dabh/diagnostics-2.0.3" // {
         dependencies = [
@@ -7642,60 +9040,99 @@ in
           sources."kuler-2.0.0"
         ];
       })
-      sources."@fontsource/open-sans-4.5.8"
-      sources."@icetee/ftp-0.3.15"
+      sources."@fontsource/open-sans-4.5.11"
+      sources."@fortawesome/fontawesome-common-types-6.1.2"
+      sources."@fortawesome/free-regular-svg-icons-6.1.2"
+      (sources."@icetee/ftp-0.3.15" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+          sources."readable-stream-1.1.14"
+          sources."string_decoder-0.10.31"
+        ];
+      })
+      sources."@js-joda/core-5.3.0"
+      sources."@jsdevtools/ono-7.1.3"
       sources."@kafkajs/confluent-schema-registry-1.0.6"
       sources."@kwsites/file-exists-1.1.1"
       sources."@kwsites/promise-deferred-1.1.1"
+      sources."@mapbox/node-pre-gyp-1.0.9"
+      sources."@n8n_io/riot-tmpl-1.0.1"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@oclif/command-1.8.16"
       (sources."@oclif/config-1.18.3" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
+        ];
+      })
+      (sources."@oclif/core-1.14.1" // {
+        dependencies = [
+          (sources."chalk-4.1.2" // {
+            dependencies = [
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."supports-color-8.1.1"
+          sources."tslib-2.4.0"
+          sources."wrap-ansi-7.0.0"
         ];
       })
       (sources."@oclif/errors-1.3.5" // {
         dependencies = [
+          sources."fs-extra-8.1.0"
+          sources."jsonfile-4.0.0"
+          sources."universalify-0.1.2"
           sources."wrap-ansi-7.0.0"
         ];
       })
       (sources."@oclif/help-1.0.1" // {
         dependencies = [
           sources."@oclif/config-1.18.2"
-          sources."tslib-2.3.1"
+          sources."chalk-4.1.2"
+          sources."tslib-2.4.0"
         ];
       })
       sources."@oclif/linewrap-1.0.0"
       (sources."@oclif/parser-3.8.7" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."chalk-4.1.2"
+          sources."tslib-2.4.0"
         ];
       })
+      sources."@oclif/screen-3.0.2"
       sources."@opentelemetry/api-1.1.0"
       sources."@rudderstack/rudder-sdk-node-1.0.6"
       sources."@segment/loosely-validate-event-2.0.0"
       sources."@selderee/plugin-htmlparser2-0.6.0"
       sources."@servie/events-1.0.0"
-      sources."@sqltools/formatter-1.2.2"
+      sources."@sqltools/formatter-1.2.3"
+      sources."@techteamer/ocsp-1.0.0"
+      sources."@tediousjs/connection-string-0.3.0"
       sources."@tokenizer/token-0.3.0"
       sources."@tootallnate/once-1.1.2"
       sources."@types/bluebird-3.5.36"
       sources."@types/body-parser-1.19.2"
       sources."@types/connect-3.4.35"
+      sources."@types/es-aggregate-error-1.0.2"
       sources."@types/express-4.17.13"
       sources."@types/express-jwt-0.0.42"
-      sources."@types/express-serve-static-core-4.17.28"
+      sources."@types/express-serve-static-core-4.17.30"
       sources."@types/express-unless-0.5.3"
       sources."@types/ftp-0.3.33"
+      sources."@types/generic-pool-3.1.11"
+      sources."@types/glob-7.2.0"
       sources."@types/json-diff-0.5.2"
+      sources."@types/json-schema-7.0.11"
       sources."@types/jsonwebtoken-8.5.8"
-      sources."@types/lodash-4.14.180"
+      sources."@types/lodash-4.14.183"
+      sources."@types/lodash.intersection-4.4.7"
       sources."@types/lossless-json-1.0.1"
-      sources."@types/mime-1.3.2"
-      sources."@types/node-17.0.23"
-      (sources."@types/node-fetch-2.6.1" // {
+      sources."@types/mime-3.0.1"
+      sources."@types/minimatch-3.0.5"
+      sources."@types/multer-1.4.7"
+      sources."@types/node-18.7.6"
+      (sources."@types/node-fetch-2.6.2" // {
         dependencies = [
           sources."form-data-3.0.1"
         ];
@@ -7704,73 +9141,79 @@ in
       sources."@types/promise-ftp-common-1.1.0"
       sources."@types/qs-6.9.7"
       sources."@types/range-parser-1.2.4"
-      sources."@types/readable-stream-2.3.13"
-      sources."@types/serve-static-1.13.10"
-      sources."@types/snowflake-sdk-1.6.2"
+      sources."@types/serve-static-1.15.0"
+      sources."@types/shelljs-0.8.11"
+      sources."@types/snowflake-sdk-1.6.7"
+      sources."@types/swagger-ui-express-4.1.3"
       sources."@types/tough-cookie-2.3.8"
       sources."@types/tunnel-0.0.3"
-      sources."@xmldom/xmldom-0.7.5"
+      sources."@types/yamljs-0.2.31"
+      sources."@vue/compiler-sfc-2.7.8"
       sources."abbrev-1.1.1"
-      sources."abort-controller-3.0.0"
       sources."accepts-1.3.8"
       sources."access-control-1.0.1"
-      sources."acorn-8.7.0"
+      sources."acorn-8.8.0"
       sources."acorn-walk-8.2.0"
-      (sources."adal-node-0.2.3" // {
-        dependencies = [
-          sources."uuid-3.4.0"
-        ];
-      })
+      sources."address-1.2.0"
       sources."adler-32-1.2.0"
       sources."agent-base-6.0.2"
       sources."ajv-6.12.6"
-      sources."amqplib-0.8.0"
+      (sources."amqplib-0.8.0" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+          sources."readable-stream-1.1.14"
+          sources."string_decoder-0.10.31"
+        ];
+      })
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
+      sources."ansicolors-0.3.2"
       sources."any-promise-1.3.0"
       sources."anymatch-3.1.2"
-      sources."app-root-path-3.0.0"
-      sources."aproba-1.2.0"
-      (sources."are-we-there-yet-1.1.7" // {
+      sources."app-root-path-3.1.0"
+      sources."append-field-1.0.0"
+      sources."aproba-2.0.0"
+      (sources."are-we-there-yet-2.0.0" // {
         dependencies = [
-          sources."isarray-1.0.0"
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
-      (sources."argparse-1.0.10" // {
-        dependencies = [
-          sources."sprintf-js-1.0.3"
+          sources."readable-stream-3.6.0"
         ];
       })
+      sources."argparse-1.0.10"
       sources."array-flatten-1.1.1"
       sources."array-parallel-0.1.3"
       sources."array-series-0.1.5"
       sources."array-union-2.1.0"
+      sources."array.prototype.reduce-1.0.4"
       sources."asn1-0.2.6"
       sources."asn1.js-5.4.1"
       sources."asn1.js-rfc2560-5.0.1"
       sources."asn1.js-rfc5280-3.0.0"
       sources."assert-options-0.7.0"
       sources."assert-plus-1.0.0"
-      sources."async-2.6.3"
+      (sources."ast-types-0.13.4" // {
+        dependencies = [
+          sources."tslib-2.4.0"
+        ];
+      })
+      sources."async-3.2.4"
+      sources."async-validator-1.8.5"
       sources."asynckit-0.4.0"
+      sources."at-least-node-1.0.0"
       (sources."auto-changelog-1.16.4" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."avsc-5.7.3"
-      (sources."aws-sdk-2.1101.0" // {
+      sources."available-typed-arrays-1.0.5"
+      sources."avsc-5.7.5"
+      (sources."aws-sdk-2.1196.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."events-1.1.1"
           sources."ieee754-1.1.13"
-          sources."isarray-1.0.0"
           sources."sax-1.2.1"
-          sources."uuid-3.3.2"
+          sources."uuid-8.0.0"
           sources."xml2js-0.4.19"
           sources."xmlbuilder-9.0.7"
         ];
@@ -7778,7 +9221,14 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."axios-0.21.4"
-      sources."axios-retry-3.2.4"
+      sources."axios-retry-3.3.1"
+      sources."babel-helper-vue-jsx-merge-props-2.0.3"
+      (sources."babel-runtime-6.26.0" // {
+        dependencies = [
+          sources."core-js-2.6.12"
+          sources."regenerator-runtime-0.11.1"
+        ];
+      })
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       (sources."basic-auth-2.0.1" // {
@@ -7792,7 +9242,7 @@ in
       sources."bignumber.js-2.4.0"
       sources."binary-extensions-2.2.0"
       sources."binascii-0.0.2"
-      sources."bintrees-1.0.1"
+      sources."bintrees-1.0.2"
       (sources."bitsyntax-0.1.0" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -7800,24 +9250,10 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      (sources."bl-2.2.1" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-          (sources."readable-stream-2.3.7" // {
-            dependencies = [
-              sources."safe-buffer-5.1.2"
-            ];
-          })
-          (sources."string_decoder-1.1.1" // {
-            dependencies = [
-              sources."safe-buffer-5.1.2"
-            ];
-          })
-        ];
-      })
+      sources."bl-2.2.1"
       sources."bluebird-3.7.2"
       sources."bn.js-4.12.0"
-      (sources."body-parser-1.19.2" // {
+      (sources."body-parser-1.20.0" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."ms-2.0.0"
@@ -7825,7 +9261,7 @@ in
       })
       sources."body-parser-xml-2.0.3"
       sources."boolbase-1.0.0"
-      sources."brace-expansion-1.1.11"
+      sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."browser-request-0.3.3"
       sources."bson-1.1.6"
@@ -7835,44 +9271,43 @@ in
       sources."buffer-more-ints-1.0.0"
       sources."buffer-writer-2.0.0"
       sources."bull-3.29.3"
+      sources."busboy-1.6.0"
       sources."byte-length-1.0.2"
       sources."bytes-3.1.2"
       sources."call-bind-1.0.2"
+      sources."call-me-maybe-1.0.1"
       sources."callback-stream-1.1.0"
       sources."callsites-3.1.0"
       (sources."camel-case-4.1.2" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
+      sources."camelcase-5.3.1"
       (sources."capital-case-1.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
+      sources."cardinal-2.1.1"
       sources."caseless-0.12.0"
-      (sources."cfb-1.2.1" // {
+      (sources."cfb-1.2.2" // {
         dependencies = [
-          (sources."adler-32-1.3.0" // {
-            dependencies = [
-              sources."printj-1.2.3"
-            ];
-          })
-          sources."printj-1.3.1"
+          sources."adler-32-1.3.1"
         ];
       })
-      sources."chalk-4.1.2"
+      sources."chalk-3.0.0"
       (sources."change-case-4.1.2" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."chardet-0.7.0"
       sources."charenc-0.0.2"
       sources."cheerio-1.0.0-rc.6"
-      sources."cheerio-select-1.5.0"
+      sources."cheerio-select-1.6.0"
       sources."chokidar-3.5.2"
-      sources."chownr-1.1.4"
+      sources."chownr-2.0.0"
       sources."clamp-1.0.1"
       sources."class-validator-0.13.2"
       sources."clean-stack-3.0.1"
@@ -7880,19 +9315,20 @@ in
       sources."cli-cursor-3.1.0"
       (sources."cli-highlight-2.1.11" // {
         dependencies = [
+          sources."chalk-4.1.2"
+          sources."cliui-7.0.4"
           sources."parse5-5.1.1"
+          sources."wrap-ansi-7.0.0"
+          sources."y18n-5.0.8"
           sources."yargs-16.2.0"
+          sources."yargs-parser-20.2.9"
         ];
       })
+      sources."cli-progress-3.11.2"
       sources."cli-width-3.0.0"
       sources."client-oauth2-4.3.3"
-      (sources."cliui-7.0.4" // {
-        dependencies = [
-          sources."wrap-ansi-7.0.0"
-        ];
-      })
+      sources."cliui-6.0.0"
       sources."cluster-key-slot-1.1.0"
-      sources."code-point-at-1.1.0"
       sources."codepage-1.15.0"
       (sources."color-3.2.1" // {
         dependencies = [
@@ -7902,7 +9338,8 @@ in
       })
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."color-string-1.9.0"
+      sources."color-string-1.9.1"
+      sources."color-support-1.1.3"
       sources."colornames-1.1.1"
       sources."colorspace-1.1.4"
       sources."combined-stream-1.0.8"
@@ -7919,280 +9356,345 @@ in
         ];
       })
       sources."concat-map-0.0.1"
-      (sources."concat-stream-2.0.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-          sources."string_decoder-1.3.0"
-        ];
-      })
+      sources."concat-stream-1.6.2"
       sources."connect-history-api-fallback-1.6.0"
       sources."console-control-strings-1.1.0"
       (sources."constant-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."content-disposition-0.5.4"
       sources."content-type-1.0.4"
-      sources."convict-6.2.2"
-      sources."cookie-0.4.1"
-      sources."cookie-parser-1.4.6"
-      sources."cookie-signature-1.0.6"
-      sources."core-js-3.21.1"
-      sources."core-util-is-1.0.2"
-      (sources."crc-32-1.2.1" // {
+      (sources."convict-6.2.3" // {
         dependencies = [
-          sources."printj-1.3.1"
+          sources."yargs-parser-20.2.9"
         ];
       })
+      sources."cookie-0.4.1"
+      sources."cookie-parser-1.4.6"
+      sources."cookie-signature-1.0.6"
+      sources."copy-to-2.0.1"
+      sources."core-js-3.24.1"
+      sources."core-util-is-1.0.3"
+      sources."crc-32-1.2.2"
       sources."cron-1.7.2"
       sources."cron-parser-2.18.0"
-      (sources."cross-spawn-4.0.2" // {
+      (sources."cross-spawn-6.0.5" // {
         dependencies = [
-          sources."lru-cache-4.1.5"
-          sources."yallist-2.1.2"
+          sources."semver-5.7.1"
         ];
       })
       sources."crypt-0.0.2"
       sources."crypto-js-4.1.1"
       sources."csrf-3.1.0"
-      sources."css-select-4.2.1"
-      sources."css-what-5.1.0"
+      sources."css-select-4.3.0"
+      sources."css-what-6.1.0"
       sources."cssfilter-0.0.10"
+      sources."csstype-3.1.0"
       sources."dashdash-1.14.1"
-      sources."date-utils-1.2.21"
+      sources."data-uri-to-buffer-3.0.1"
       sources."debug-4.3.4"
       sources."debuglog-1.0.1"
-      sources."deep-extend-0.6.0"
-      sources."deepmerge-4.2.2"
-      sources."define-properties-1.1.3"
+      sources."decamelize-1.2.0"
+      sources."deep-is-0.1.4"
+      sources."deepmerge-1.5.2"
+      sources."default-user-agent-1.0.0"
+      sources."define-lazy-prop-2.0.0"
+      sources."define-properties-1.1.4"
+      sources."degenerator-3.0.2"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
       sources."denque-1.5.1"
-      sources."depd-1.1.2"
-      sources."destroy-1.0.4"
-      sources."detect-libc-1.0.3"
+      sources."depd-2.0.0"
+      sources."destroy-1.2.0"
+      sources."detect-libc-2.0.1"
       sources."diagnostics-1.1.1"
       sources."difflib-0.2.4"
+      (sources."digest-header-0.0.1" // {
+        dependencies = [
+          sources."utility-0.1.11"
+        ];
+      })
       sources."dir-glob-3.0.1"
       sources."discontinuous-range-1.0.0"
-      sources."dom-serializer-1.3.2"
-      sources."domelementtype-2.2.0"
+      sources."dom-serializer-1.4.1"
+      sources."domelementtype-2.3.0"
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
       (sources."dot-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."dotenv-8.6.0"
       sources."dreamopt-0.6.0"
-      (sources."duplexify-3.7.1" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."ecdsa-sig-formatter-1.0.11"
       sources."ee-first-1.1.1"
+      sources."ejs-3.1.8"
+      sources."element-ui-2.15.9"
       sources."emoji-regex-8.0.0"
       sources."enabled-1.0.2"
       sources."encodeurl-1.0.2"
-      sources."encoding-japanese-1.0.30"
+      sources."encoding-japanese-2.0.0"
       sources."end-of-stream-1.4.4"
       sources."entities-2.2.0"
       sources."env-variable-0.0.6"
       sources."err-code-2.0.3"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.20.1"
+      sources."es-aggregate-error-1.0.8"
+      sources."es-array-method-boxes-properly-1.0.0"
       sources."es-to-primitive-1.2.1"
       sources."es5-ext-0.8.2"
       sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-4.0.0"
+      sources."escodegen-1.14.3"
       sources."eslint-config-riot-1.0.0"
       sources."esprima-4.0.1"
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
       sources."etag-1.8.1"
-      sources."event-target-shim-5.0.1"
       sources."events-3.3.0"
-      sources."eventsource-1.1.0"
+      sources."eventsource-2.0.2"
       sources."exit-on-epipe-1.0.1"
       sources."expand-tilde-2.0.2"
-      (sources."express-4.17.3" // {
+      (sources."express-4.18.1" // {
         dependencies = [
-          sources."cookie-0.4.2"
+          sources."cookie-0.5.0"
           sources."debug-2.6.9"
           sources."ms-2.0.0"
         ];
       })
+      (sources."express-openapi-validator-4.13.8" // {
+        dependencies = [
+          sources."media-typer-1.1.0"
+          sources."path-to-regexp-6.2.1"
+        ];
+      })
       sources."extend-3.0.2"
+      sources."extend-shallow-2.0.1"
       sources."external-editor-3.1.0"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.2.11"
       sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
       sources."fastq-1.13.0"
-      sources."fecha-4.2.1"
+      sources."fecha-4.2.3"
       sources."fflate-0.7.3"
-      sources."figlet-1.5.2"
       (sources."figures-3.2.0" // {
         dependencies = [
           sources."escape-string-regexp-1.0.5"
         ];
       })
       sources."file-type-14.7.1"
+      sources."file-uri-to-path-2.0.0"
+      (sources."filelist-1.0.4" // {
+        dependencies = [
+          sources."minimatch-5.1.0"
+        ];
+      })
       sources."fill-range-7.0.1"
-      (sources."finalhandler-1.1.2" // {
+      (sources."finalhandler-1.2.0" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."ms-2.0.0"
         ];
       })
-      sources."flatted-3.2.5"
+      sources."find-up-4.1.0"
+      sources."flatted-3.2.6"
       sources."fn.name-1.1.0"
-      sources."follow-redirects-1.14.9"
+      sources."follow-redirects-1.15.1"
       sources."for-each-0.3.3"
       sources."forever-agent-0.6.1"
       sources."form-data-4.0.0"
       sources."formidable-1.2.6"
+      (sources."formstream-1.1.1" // {
+        dependencies = [
+          sources."mime-2.6.0"
+        ];
+      })
       sources."forwarded-0.2.0"
       sources."frac-1.1.2"
       sources."fresh-0.5.2"
-      sources."fs-extra-8.1.0"
-      sources."fs-minipass-1.2.7"
+      sources."fs-extra-9.1.0"
+      sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.1"
-      (sources."gauge-2.7.4" // {
+      (sources."ftp-0.3.10" // {
         dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."is-fullwidth-code-point-1.0.0"
-          sources."string-width-1.0.2"
-          sources."strip-ansi-3.0.1"
+          sources."isarray-0.0.1"
+          sources."readable-stream-1.1.14"
+          sources."string_decoder-0.10.31"
         ];
       })
+      sources."function-bind-1.1.1"
+      sources."function.prototype.name-1.1.5"
+      sources."functions-have-names-1.2.3"
+      sources."gauge-3.0.2"
       sources."generate-function-2.3.1"
       sources."generic-pool-3.8.2"
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.1.1"
+      sources."get-intrinsic-1.1.2"
+      sources."get-package-type-0.1.0"
       sources."get-port-5.1.1"
       sources."get-symbol-description-1.0.0"
       sources."get-system-fonts-2.0.2"
+      (sources."get-uri-3.0.2" // {
+        dependencies = [
+          sources."fs-extra-8.1.0"
+          sources."jsonfile-4.0.0"
+          sources."universalify-0.1.2"
+        ];
+      })
       sources."getpass-0.1.7"
-      sources."glob-7.2.0"
+      sources."glob-7.2.3"
       sources."glob-parent-5.1.2"
       (sources."glob-stream-6.1.0" // {
         dependencies = [
           sources."glob-parent-3.1.0"
           sources."is-glob-3.1.0"
-          sources."isarray-1.0.0"
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
         ];
       })
+      sources."globalthis-1.0.3"
       sources."globby-11.1.0"
       (sources."gm-1.23.1" // {
         dependencies = [
+          sources."cross-spawn-4.0.2"
           sources."debug-3.2.7"
+          sources."lru-cache-4.1.5"
+          sources."yallist-2.1.2"
         ];
       })
       sources."google-timezones-json-1.0.2"
-      sources."graceful-fs-4.2.9"
+      sources."graceful-fs-4.2.10"
       sources."handlebars-4.7.7"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
-      (sources."has-ansi-2.0.0" // {
-        dependencies = [
-          sources."ansi-regex-2.1.1"
-        ];
-      })
-      sources."has-bigints-1.0.1"
+      sources."has-bigints-1.0.2"
       sources."has-flag-4.0.0"
+      sources."has-property-descriptors-1.0.0"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."has-unicode-2.0.1"
       sources."he-1.2.0"
       (sources."header-case-2.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."heap-0.2.7"
       sources."help-me-1.1.0"
       sources."highlight.js-10.7.3"
       sources."homedir-polyfill-1.0.3"
-      sources."html-to-text-8.0.0"
+      (sources."html-to-text-8.2.0" // {
+        dependencies = [
+          sources."deepmerge-4.2.2"
+        ];
+      })
       sources."htmlparser2-6.1.0"
-      sources."http-errors-1.8.1"
+      sources."http-errors-2.0.0"
       sources."http-proxy-agent-4.0.1"
       sources."http-signature-1.2.0"
-      sources."https-proxy-agent-5.0.0"
+      sources."https-proxy-agent-5.0.1"
+      sources."humanize-ms-1.2.1"
+      sources."hyperlinker-1.0.0"
       sources."iconv-lite-0.4.24"
-      sources."ics-2.35.0"
+      sources."ics-2.37.0"
       sources."ieee754-1.2.1"
       sources."ignore-5.2.0"
-      sources."ignore-walk-3.0.4"
-      sources."imap-0.8.19"
+      (sources."imap-0.8.19" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+          sources."readable-stream-1.1.14"
+          sources."string_decoder-0.10.31"
+        ];
+      })
       sources."imap-simple-4.3.0"
       sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.8"
-      sources."inquirer-7.3.3"
+      (sources."inquirer-7.3.3" // {
+        dependencies = [
+          sources."chalk-4.1.2"
+        ];
+      })
       sources."internal-slot-1.0.3"
+      sources."interpret-1.4.0"
       sources."ioredis-4.28.5"
+      sources."ip-1.1.8"
       sources."ip-regex-2.1.0"
       sources."ipaddr.js-1.9.1"
       sources."is-absolute-1.0.0"
+      sources."is-arguments-1.1.1"
       sources."is-arrayish-0.3.2"
       sources."is-bigint-1.0.4"
       sources."is-binary-path-2.1.0"
       sources."is-boolean-object-1.1.2"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.4"
+      sources."is-core-module-2.10.0"
       sources."is-date-object-1.0.5"
       sources."is-docker-2.2.1"
+      sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
+      sources."is-generator-function-1.0.10"
       sources."is-glob-4.0.3"
       sources."is-nan-1.3.2"
       sources."is-negated-glob-1.0.0"
       sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
+      sources."is-plain-object-5.0.0"
       sources."is-promise-1.0.1"
       sources."is-property-1.0.2"
       sources."is-regex-1.1.4"
       sources."is-relative-1.0.0"
       sources."is-retry-allowed-2.2.0"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-stream-2.0.1"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
+      sources."is-typed-array-1.1.9"
       sources."is-typedarray-1.0.0"
       sources."is-unc-path-1.0.0"
       sources."is-weakref-1.0.2"
       sources."is-windows-1.0.2"
       sources."is-wsl-2.2.0"
-      sources."isarray-0.0.1"
-      sources."isbot-3.4.5"
+      sources."isarray-1.0.0"
+      sources."isbot-3.5.0"
       sources."isexe-2.0.0"
-      sources."iso-639-1-2.1.13"
+      sources."iso-639-1-2.1.15"
       sources."isstream-0.1.2"
+      (sources."jake-10.8.5" // {
+        dependencies = [
+          sources."chalk-4.1.2"
+        ];
+      })
       sources."jmespath-0.16.0"
       sources."join-component-1.1.0"
+      sources."js-md4-0.3.2"
       sources."js-yaml-3.14.1"
-      sources."jsbi-3.2.5"
+      sources."jsbi-4.3.0"
       sources."jsbn-0.1.1"
       sources."json-diff-0.5.5"
       sources."json-schema-0.4.0"
+      (sources."json-schema-ref-parser-9.0.9" // {
+        dependencies = [
+          sources."@apidevtools/json-schema-ref-parser-9.0.9"
+          sources."argparse-2.0.1"
+          sources."js-yaml-4.1.0"
+        ];
+      })
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsonfile-4.0.0"
+      sources."jsonfile-6.1.0"
+      sources."jsonschema-1.4.1"
       (sources."jsonwebtoken-8.5.1" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -8205,21 +9707,28 @@ in
       sources."kafkajs-1.16.0"
       sources."kuler-1.0.1"
       sources."leven-2.1.0"
+      sources."levn-0.3.0"
       sources."libbase64-1.2.1"
-      (sources."libmime-5.0.0" // {
+      (sources."libmime-5.1.0" // {
         dependencies = [
-          sources."iconv-lite-0.6.2"
+          sources."iconv-lite-0.6.3"
         ];
       })
-      sources."libphonenumber-js-1.9.50"
+      sources."libphonenumber-js-1.10.12"
       sources."libqp-1.1.0"
       sources."limiter-1.1.5"
-      sources."linkify-it-3.0.3"
+      sources."linkify-it-4.0.0"
       (sources."localtunnel-2.0.2" // {
         dependencies = [
+          sources."cliui-7.0.4"
           sources."debug-4.3.2"
+          sources."wrap-ansi-7.0.0"
+          sources."y18n-5.0.8"
+          sources."yargs-17.1.1"
+          sources."yargs-parser-20.2.9"
         ];
       })
+      sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
       sources."lodash-es-4.17.21"
       sources."lodash.clonedeep-4.5.0"
@@ -8227,6 +9736,7 @@ in
       sources."lodash.flatten-4.4.0"
       sources."lodash.get-4.4.2"
       sources."lodash.includes-4.3.0"
+      sources."lodash.intersection-4.4.0"
       sources."lodash.isarguments-3.1.0"
       sources."lodash.isboolean-3.0.3"
       sources."lodash.isequal-4.5.0"
@@ -8235,17 +9745,21 @@ in
       sources."lodash.isplainobject-4.0.6"
       sources."lodash.isstring-4.0.1"
       sources."lodash.merge-4.6.2"
+      sources."lodash.omit-4.5.0"
       sources."lodash.once-4.1.1"
       sources."lodash.set-4.3.2"
+      sources."lodash.split-4.4.2"
       sources."lodash.throttle-4.1.1"
+      sources."lodash.uniq-4.5.0"
       sources."lodash.uniqby-4.7.0"
       sources."lodash.unset-4.5.2"
-      sources."logform-2.4.0"
+      sources."lodash.zipobject-4.1.3"
+      sources."logform-2.4.2"
       sources."long-4.0.0"
       sources."lossless-json-1.0.5"
       (sources."lower-case-2.0.2" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."lru-cache-6.0.0"
@@ -8255,14 +9769,14 @@ in
           sources."yallist-2.1.2"
         ];
       })
-      sources."luxon-2.3.1"
-      (sources."mailparser-3.4.0" // {
+      sources."luxon-2.5.0"
+      (sources."mailparser-3.5.0" // {
         dependencies = [
           sources."iconv-lite-0.6.3"
-          sources."nodemailer-6.7.0"
+          sources."nodemailer-6.7.3"
         ];
       })
-      sources."mailsplit-5.3.1"
+      sources."mailsplit-5.3.2"
       (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -8270,7 +9784,7 @@ in
       })
       sources."make-error-1.3.6"
       sources."make-error-cause-2.3.0"
-      sources."mappersmith-2.38.1"
+      sources."mappersmith-2.40.0"
       sources."material-colors-1.2.6"
       sources."md5-2.3.0"
       sources."media-typer-0.3.0"
@@ -8284,62 +9798,62 @@ in
       sources."mime-types-2.1.35"
       sources."mimic-fn-2.1.0"
       sources."minimalistic-assert-1.0.1"
-      sources."minimatch-3.1.2"
-      sources."minimist-1.2.6"
-      (sources."minipass-2.9.0" // {
+      (sources."minimatch-3.1.2" // {
         dependencies = [
-          sources."yallist-3.1.1"
+          sources."brace-expansion-1.1.11"
         ];
       })
-      sources."minizlib-1.3.3"
-      sources."mkdirp-1.0.4"
+      sources."minimist-1.2.6"
+      sources."minipass-3.3.5"
+      sources."minizlib-2.1.2"
+      sources."mkdirp-0.5.6"
       (sources."mock-require-3.0.3" // {
         dependencies = [
           sources."get-caller-file-1.0.3"
           sources."normalize-path-2.1.1"
         ];
       })
-      sources."moment-2.29.1"
+      sources."moment-2.29.4"
       sources."moment-timezone-0.5.34"
-      sources."monaco-editor-0.29.1"
+      sources."monaco-editor-0.30.1"
       sources."mongodb-3.7.3"
       sources."moo-0.5.1"
       (sources."mqtt-4.2.6" // {
         dependencies = [
+          sources."concat-stream-2.0.0"
           sources."readable-stream-3.6.0"
-          sources."string_decoder-1.3.0"
         ];
       })
       (sources."mqtt-packet-6.10.0" // {
         dependencies = [
           sources."bl-4.1.0"
           sources."readable-stream-3.6.0"
-          sources."string_decoder-1.3.0"
         ];
       })
       sources."ms-2.1.2"
-      sources."mssql-6.4.1"
+      (sources."mssql-8.1.3" // {
+        dependencies = [
+          sources."commander-9.4.0"
+        ];
+      })
+      sources."multer-1.4.5-lts.1"
       sources."mute-stream-0.0.8"
       (sources."mysql2-2.3.3" // {
         dependencies = [
-          sources."denque-2.0.1"
+          sources."denque-2.1.0"
           sources."iconv-lite-0.6.3"
         ];
       })
       sources."mz-2.7.0"
-      (sources."n8n-core-0.111.0" // {
-        dependencies = [
-          sources."qs-6.10.3"
-        ];
-      })
-      sources."n8n-design-system-0.16.0"
-      sources."n8n-editor-ui-0.137.0"
-      (sources."n8n-nodes-base-0.168.0" // {
+      sources."n8n-core-0.131.0"
+      sources."n8n-design-system-0.31.0"
+      sources."n8n-editor-ui-0.157.0"
+      (sources."n8n-nodes-base-0.189.0" // {
         dependencies = [
           sources."iconv-lite-0.6.3"
         ];
       })
-      sources."n8n-workflow-0.93.0"
+      sources."n8n-workflow-0.113.0"
       (sources."named-placeholders-1.1.2" // {
         dependencies = [
           sources."lru-cache-4.1.5"
@@ -8347,117 +9861,110 @@ in
         ];
       })
       sources."nanoclone-0.2.1"
-      sources."nanoid-3.3.1"
+      sources."nanoid-3.3.4"
       sources."native-duplexpair-1.0.0"
+      sources."natural-orderby-2.0.3"
       (sources."nearley-2.20.1" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
       })
-      (sources."needle-2.9.1" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
       sources."negotiator-0.6.3"
       sources."neo-async-2.6.2"
+      sources."netmask-2.0.2"
+      sources."nice-try-1.0.5"
       (sources."no-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
-      sources."node-addon-api-3.2.1"
+      sources."node-abort-controller-3.0.1"
+      sources."node-addon-api-4.3.0"
       sources."node-ensure-0.0.0"
       sources."node-fetch-2.6.7"
-      (sources."node-pre-gyp-0.11.0" // {
-        dependencies = [
-          sources."mkdirp-0.5.6"
-          sources."rimraf-2.7.1"
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."node-ssh-12.0.4"
+      sources."node-html-markdown-1.2.0"
+      sources."node-html-parser-5.4.1"
+      sources."node-ssh-12.0.5"
       sources."nodeify-1.0.1"
-      sources."nodemailer-6.7.3"
-      sources."nopt-4.0.3"
+      sources."nodemailer-6.7.8"
+      sources."nopt-5.0.0"
       sources."normalize-path-3.0.0"
-      sources."npm-bundled-1.1.2"
-      sources."npm-normalize-package-bin-1.0.1"
-      sources."npm-packlist-1.4.8"
-      sources."npmlog-4.1.2"
-      sources."nth-check-2.0.1"
-      sources."number-is-nan-1.0.1"
+      sources."normalize-wheel-1.0.1"
+      sources."npmlog-5.0.1"
+      sources."nth-check-2.1.1"
       sources."oauth-1.0a-2.2.6"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.12.0"
+      sources."object-inspect-1.12.2"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.2"
-      sources."object.getownpropertydescriptors-2.1.3"
-      (sources."ocsp-1.2.0" // {
-        dependencies = [
-          sources."asn1.js-4.10.1"
-          sources."asn1.js-rfc2560-4.0.6"
-          sources."asn1.js-rfc5280-2.0.1"
-          sources."async-1.5.2"
-        ];
-      })
-      sources."on-finished-2.3.0"
+      sources."object-treeify-1.1.33"
+      sources."object.assign-4.1.4"
+      sources."object.getownpropertydescriptors-2.1.4"
+      sources."on-finished-2.4.1"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."one-time-1.0.0"
       sources."onetime-5.1.2"
+      sources."ono-7.1.3"
       sources."open-7.4.2"
+      sources."openapi-types-10.0.0"
       sources."openurl-1.1.1"
       sources."optional-require-1.1.8"
-      (sources."ordered-read-streams-1.0.1" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
-      sources."original-1.0.2"
-      sources."os-homedir-1.0.2"
+      sources."optionator-0.8.3"
+      sources."ordered-read-streams-1.0.1"
+      sources."os-name-1.0.3"
       sources."os-tmpdir-1.0.2"
-      sources."osenv-0.1.5"
+      sources."osx-release-1.1.0"
       sources."p-cancelable-2.1.1"
       sources."p-finally-1.0.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
       sources."p-map-2.1.0"
       sources."p-timeout-3.2.0"
+      sources."p-try-2.2.0"
+      sources."pac-proxy-agent-5.0.0"
+      sources."pac-resolver-5.0.1"
       sources."packet-reader-1.0.0"
       (sources."param-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
-      sources."parent-require-1.0.0"
       sources."parse-github-url-1.0.2"
       sources."parse-passwd-1.0.0"
+      sources."parse-srcset-1.0.2"
       sources."parse5-6.0.1"
       sources."parse5-htmlparser2-tree-adapter-6.0.1"
       sources."parseley-0.7.0"
       sources."parseurl-1.3.3"
       (sources."pascal-case-3.1.2" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
-      sources."passport-0.5.2"
+      sources."passport-0.5.3"
       sources."passport-cookie-1.0.9"
       sources."passport-jwt-4.0.0"
       sources."passport-strategy-1.0.0"
+      (sources."password-prompt-1.1.2" // {
+        dependencies = [
+          sources."ansi-escapes-3.2.0"
+        ];
+      })
       (sources."path-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."path-dirname-1.0.2"
+      sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
+      sources."path-key-2.0.1"
+      sources."path-parse-1.0.7"
       sources."path-to-regexp-0.1.7"
       sources."path-type-4.0.0"
       sources."pause-0.0.1"
+      sources."pause-stream-0.0.11"
       (sources."pdf-parse-1.1.1" // {
         dependencies = [
           sources."debug-3.2.7"
@@ -8482,6 +9989,7 @@ in
           sources."split2-4.1.0"
         ];
       })
+      sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."popsicle-12.1.0"
       sources."popsicle-content-encoding-1.0.0"
@@ -8490,10 +9998,12 @@ in
       sources."popsicle-transport-http-1.2.1"
       sources."popsicle-transport-xhr-2.0.0"
       sources."popsicle-user-agent-1.0.0"
+      sources."postcss-8.4.16"
       sources."postgres-array-2.0.0"
       sources."postgres-bytea-1.0.0"
       sources."postgres-date-1.0.7"
       sources."postgres-interval-1.2.0"
+      sources."prelude-ls-1.1.2"
       sources."printj-1.1.2"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
@@ -8509,9 +10019,15 @@ in
       sources."promise.prototype.finally-3.1.3"
       sources."property-expr-2.0.5"
       sources."proxy-addr-2.0.7"
+      (sources."proxy-agent-5.0.0" // {
+        dependencies = [
+          sources."lru-cache-5.1.1"
+          sources."yallist-3.1.1"
+        ];
+      })
       sources."proxy-from-env-1.1.0"
       sources."pseudomap-1.0.2"
-      sources."psl-1.8.0"
+      sources."psl-1.9.0"
       sources."pump-3.0.0"
       (sources."pumpify-1.5.1" // {
         dependencies = [
@@ -8520,7 +10036,7 @@ in
       })
       sources."punycode-2.1.1"
       sources."python-struct-1.1.3"
-      sources."qs-6.9.7"
+      sources."qs-6.10.3"
       sources."querystring-0.2.0"
       sources."querystringify-2.2.0"
       sources."queue-microtask-1.2.3"
@@ -8530,17 +10046,23 @@ in
       sources."random-bytes-1.0.0"
       sources."randombytes-2.1.0"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.3"
-      sources."rc-1.2.8"
-      sources."readable-stream-1.1.14"
+      sources."raw-body-2.5.1"
+      (sources."readable-stream-2.3.7" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
       sources."readable-web-to-node-stream-2.0.0"
       sources."readdirp-3.6.0"
+      sources."rechoir-0.6.2"
+      sources."redeyed-2.1.1"
       sources."redis-3.1.2"
       sources."redis-commands-1.7.0"
       sources."redis-errors-1.2.0"
       sources."redis-parser-3.0.0"
       sources."reflect-metadata-0.1.13"
       sources."regenerator-runtime-0.13.9"
+      sources."regexp.prototype.flags-1.4.3"
       sources."reinterval-1.1.0"
       sources."remove-trailing-separator-1.1.0"
       sources."remove-trailing-slash-0.1.1"
@@ -8558,21 +10080,23 @@ in
           sources."tough-cookie-2.5.0"
         ];
       })
-      sources."requestretry-7.0.2"
       sources."require-at-1.0.6"
       sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
       sources."requires-port-1.0.0"
+      sources."resize-observer-polyfill-1.5.1"
+      sources."resolve-1.22.1"
       sources."restore-cursor-3.1.0"
       sources."ret-0.1.15"
       sources."retry-0.12.0"
       sources."reusify-1.0.4"
+      sources."rfdc-1.3.0"
       (sources."rhea-1.0.24" // {
         dependencies = [
           sources."debug-3.2.7"
         ];
       })
       sources."rimraf-3.0.2"
-      sources."riot-tmpl-3.0.8"
       sources."rndm-1.2.0"
       sources."rss-parser-3.12.0"
       sources."run-async-2.4.1"
@@ -8581,12 +10105,17 @@ in
       sources."safe-buffer-5.2.1"
       sources."safe-stable-stringify-2.3.1"
       sources."safer-buffer-2.1.2"
+      (sources."sanitize-html-2.7.0" // {
+        dependencies = [
+          sources."deepmerge-4.2.2"
+        ];
+      })
       sources."sax-1.2.4"
       sources."sb-promise-queue-2.1.0"
       sources."sb-scandir-3.1.0"
       sources."selderee-0.6.0"
-      sources."semver-7.3.5"
-      (sources."send-0.17.2" // {
+      sources."semver-7.3.7"
+      (sources."send-0.18.0" // {
         dependencies = [
           (sources."debug-2.6.9" // {
             dependencies = [
@@ -8598,104 +10127,125 @@ in
       })
       (sources."sentence-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."seq-queue-0.0.5"
       sources."serialize-javascript-5.0.1"
-      sources."serve-static-1.14.2"
+      sources."serve-static-1.15.0"
       sources."servie-4.3.3"
       sources."set-blocking-2.0.0"
       sources."setheader-1.0.2"
       sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
       sources."shell-escape-0.2.0"
+      sources."shelljs-0.8.5"
+      (sources."showdown-2.1.0" // {
+        dependencies = [
+          sources."commander-9.4.0"
+        ];
+      })
       sources."side-channel-1.0.4"
       sources."signal-exit-3.0.7"
-      sources."simple-git-2.48.0"
+      sources."simple-git-3.12.0"
       sources."simple-lru-cache-0.0.2"
       sources."simple-swizzle-0.2.2"
       sources."slash-3.0.0"
+      sources."smart-buffer-4.2.0"
       (sources."snake-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
-      (sources."snowflake-sdk-1.6.8" // {
+      (sources."snowflake-sdk-1.6.12" // {
         dependencies = [
+          sources."axios-0.27.2"
           sources."debug-3.2.7"
-          sources."http-signature-1.3.6"
-          sources."jsprim-2.0.2"
+          sources."mkdirp-1.0.4"
           sources."tmp-0.2.1"
           sources."uuid-3.4.0"
         ];
       })
+      (sources."socks-2.7.0" // {
+        dependencies = [
+          sources."ip-2.0.0"
+        ];
+      })
+      sources."socks-proxy-agent-5.0.1"
       sources."source-map-0.6.1"
+      sources."source-map-js-1.0.2"
       sources."spex-3.2.0"
       (sources."split2-3.2.2" // {
         dependencies = [
           sources."readable-stream-3.6.0"
-          sources."string_decoder-1.3.0"
         ];
       })
-      sources."sprintf-js-1.1.2"
-      sources."sqlite3-5.0.2"
+      sources."sprintf-js-1.0.3"
+      sources."sqlite3-5.0.11"
       sources."sqlstring-2.3.3"
       sources."sse-channel-3.1.1"
       sources."ssf-0.11.2"
-      sources."ssh2-1.8.0"
-      sources."ssh2-sftp-client-7.2.3"
+      sources."ssh2-1.11.0"
+      (sources."ssh2-sftp-client-7.2.3" // {
+        dependencies = [
+          sources."concat-stream-2.0.0"
+          sources."readable-stream-3.6.0"
+        ];
+      })
       sources."sshpk-1.17.0"
       sources."stack-trace-0.0.10"
       sources."standard-as-callback-2.1.0"
-      sources."statuses-1.5.0"
+      sources."statuses-2.0.1"
       sources."stealthy-require-1.1.1"
+      sources."stoppable-1.1.0"
       sources."stream-shift-1.0.1"
+      sources."streamsearch-1.1.0"
       sources."string-similarity-4.0.4"
       sources."string-width-4.2.3"
-      sources."string.prototype.trimend-1.0.4"
-      sources."string.prototype.trimstart-1.0.4"
-      sources."string_decoder-0.10.31"
+      sources."string.prototype.trimend-1.0.5"
+      sources."string.prototype.trimstart-1.0.5"
+      (sources."string_decoder-1.1.1" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
       sources."strip-ansi-6.0.1"
-      sources."strip-json-comments-2.0.1"
       sources."strtok3-6.3.0"
       sources."supports-color-7.2.0"
-      (sources."tar-4.4.19" // {
+      sources."supports-hyperlinks-2.2.0"
+      sources."supports-preserve-symlinks-flag-1.0.0"
+      sources."swagger-ui-dist-4.13.2"
+      sources."swagger-ui-express-4.5.0"
+      (sources."tar-6.1.11" // {
         dependencies = [
-          sources."mkdirp-0.5.6"
-          sources."yallist-3.1.1"
+          sources."mkdirp-1.0.4"
         ];
       })
-      sources."tarn-1.1.5"
-      sources."tdigest-0.1.1"
-      (sources."tedious-6.7.1" // {
+      sources."tarn-3.0.2"
+      sources."tdigest-0.1.2"
+      (sources."tedious-14.7.0" // {
         dependencies = [
-          sources."@types/node-12.20.47"
-          sources."bl-3.0.1"
-          sources."depd-2.0.0"
-          sources."iconv-lite-0.5.2"
+          sources."bl-5.0.0"
+          sources."buffer-6.0.3"
+          sources."iconv-lite-0.6.3"
           sources."readable-stream-3.6.0"
-          sources."string_decoder-1.3.0"
+          sources."sprintf-js-1.1.2"
         ];
       })
       sources."test-console-2.0.0"
       sources."text-hex-1.0.0"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
+      sources."throttle-debounce-1.1.0"
       sources."through-2.3.8"
-      (sources."through2-2.0.5" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."through2-2.0.5"
       sources."through2-filter-3.0.0"
       sources."throwback-4.1.0"
       sources."timeago.js-4.0.2"
       sources."tinycolor2-1.4.2"
-      sources."tlds-1.224.0"
+      sources."tlds-1.231.0"
       sources."tmp-0.0.33"
       (sources."tmp-promise-3.0.3" // {
         dependencies = [
@@ -8720,31 +10270,42 @@ in
       sources."tunnel-0.0.6"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
+      sources."type-check-0.3.2"
       sources."type-fest-0.21.3"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
-      (sources."typeorm-0.2.30" // {
+      (sources."typeorm-0.2.45" // {
         dependencies = [
-          sources."yargs-16.2.0"
+          sources."argparse-2.0.1"
+          sources."buffer-6.0.3"
+          sources."chalk-4.1.2"
+          sources."cliui-7.0.4"
+          sources."js-yaml-4.1.0"
+          sources."mkdirp-1.0.4"
+          sources."tslib-2.4.0"
+          sources."wrap-ansi-7.0.0"
+          sources."y18n-5.0.8"
+          sources."yargs-17.5.1"
+          sources."yargs-parser-21.1.1"
         ];
       })
       sources."uc.micro-1.0.6"
       sources."uid-safe-2.1.5"
-      sources."unbox-primitive-1.0.1"
+      sources."unbox-primitive-1.0.2"
       sources."unc-path-regex-0.1.2"
-      sources."underscore-1.13.2"
+      sources."unescape-1.0.1"
       sources."unique-stream-2.3.1"
-      sources."universalify-0.1.2"
+      sources."universalify-2.0.0"
       sources."unpipe-1.0.0"
       (sources."upper-case-2.0.2" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       (sources."upper-case-first-2.0.2" // {
         dependencies = [
-          sources."tslib-2.3.1"
+          sources."tslib-2.4.0"
         ];
       })
       sources."uri-js-4.4.1"
@@ -8754,78 +10315,90 @@ in
         ];
       })
       sources."url-parse-1.5.10"
+      (sources."urllib-2.38.1" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+          sources."statuses-1.5.0"
+        ];
+      })
       (sources."utf7-1.0.2" // {
         dependencies = [
           sources."semver-5.3.0"
         ];
       })
       sources."utf8-2.1.2"
+      sources."util-0.12.4"
       sources."util-deprecate-1.0.2"
       sources."util.promisify-1.1.1"
+      sources."utility-1.17.0"
       sources."utils-merge-1.0.1"
       sources."uuencode-0.0.4"
       sources."uuid-8.3.2"
-      sources."v-click-outside-3.1.2"
+      sources."v-click-outside-3.2.0"
       sources."validator-13.7.0"
       sources."vary-1.1.2"
-      sources."verror-1.10.0"
-      sources."vm2-3.9.9"
-      sources."vue-2.6.14"
+      (sources."verror-1.10.0" // {
+        dependencies = [
+          sources."core-util-is-1.0.2"
+        ];
+      })
+      sources."vm2-3.9.10"
+      sources."vue-2.7.8"
       sources."vue-color-2.8.1"
-      sources."vue-fragment-1.5.2"
-      sources."vue-i18n-8.27.0"
+      sources."vue-fragment-1.5.1"
+      sources."vue-i18n-8.27.2"
       sources."vue2-boring-avatars-0.3.4"
+      sources."vue2-teleport-1.0.1"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
       sources."which-1.3.1"
       sources."which-boxed-primitive-1.0.2"
+      sources."which-module-2.0.0"
+      sources."which-typed-array-1.1.8"
       sources."wide-align-1.1.5"
       sources."widest-line-3.1.0"
-      (sources."winston-3.6.0" // {
+      (sources."win-release-1.1.1" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      (sources."winston-3.8.1" // {
         dependencies = [
-          sources."async-3.2.3"
           sources."readable-stream-3.6.0"
-          sources."string_decoder-1.3.0"
         ];
       })
       (sources."winston-transport-4.5.0" // {
         dependencies = [
           sources."readable-stream-3.6.0"
-          sources."string_decoder-1.3.0"
         ];
       })
       sources."wmf-1.0.2"
       sources."word-0.3.0"
+      sources."word-wrap-1.2.3"
       sources."wordwrap-1.0.0"
       sources."wrap-ansi-6.2.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.5.7"
+      sources."ws-7.5.9"
       sources."xlsx-0.17.5"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
-      sources."xpath.js-1.1.0"
       sources."xregexp-2.0.0"
-      (sources."xss-1.0.11" // {
+      (sources."xss-1.0.14" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
       })
       sources."xtend-4.0.2"
-      sources."y18n-5.0.8"
+      sources."y18n-4.0.3"
       sources."yallist-4.0.0"
-      (sources."yargonaut-1.1.4" // {
-        dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."ansi-styles-2.2.1"
-          sources."chalk-1.1.3"
-          sources."escape-string-regexp-1.0.5"
-          sources."strip-ansi-3.0.1"
-          sources."supports-color-2.0.0"
-        ];
-      })
-      sources."yargs-17.1.1"
-      sources."yargs-parser-20.2.9"
+      sources."yamljs-0.3.0"
+      sources."yargs-15.4.1"
+      sources."yargs-parser-18.1.3"
       sources."yup-0.32.11"
+      sources."z-schema-4.2.4"
+      sources."zen-observable-0.8.15"
+      sources."zen-observable-ts-1.2.5"
     ];
     buildInputs = globalBuildInputs;
     meta = {
diff --git a/nixpkgs/pkgs/applications/networking/nali/default.nix b/nixpkgs/pkgs/applications/networking/nali/default.nix
index 39a07d9d4ab0..8cd9faf0c82a 100644
--- a/nixpkgs/pkgs/applications/networking/nali/default.nix
+++ b/nixpkgs/pkgs/applications/networking/nali/default.nix
@@ -2,22 +2,22 @@
 
 buildGoModule rec {
   pname = "nali";
-  version = "0.3.2";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "zu1k";
     repo = "nali";
     rev = "v${version}";
-    sha256 = "sha256-iRLoUBA+Kzv1/LZQ8HCvR79K1riYErxEWhB0OmvFy2g=";
+    sha256 = "sha256-mKZQe+VuhXm5N2SAOfHUlPK6wJPa8Cd+wgDjqSGbR7I=";
   };
 
-  vendorSha256 = "sha256-0u6n53hL2+GvqbYpAKN54n7uiTHSsgyjedt20nT1yRc=";
+  vendorSha256 = "sha256-iNgYU/OgdbKscIA9dIVKqV5tiyLaC3Q4D3W1QsW7CWg=";
   subPackages = [ "." ];
 
   meta = with lib; {
     description = "An offline tool for querying IP geographic information and CDN provider";
     homepage = "https://github.com/zu1k/nali";
     license = licenses.mit;
-    maintainers = with maintainers; [ diffumist ];
+    maintainers = with maintainers; [ diffumist xyenon ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/ncgopher/default.nix b/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
index 50ad2d312f94..af9812e8fca4 100644
--- a/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ncgopher";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "jansc";
     repo = "ncgopher";
     rev = "v${version}";
-    sha256 = "sha256-1tiijW3q/8zS9437G9gJDzBtxqVE3QUxgw74P7rcv98=";
+    sha256 = "sha256-GLt+ByZzQ9v+PPyebTa8LFqySixXw85RjGZ2e3yLRss=";
   };
 
-  cargoSha256 = "sha256-LA8LjY8oZslGFQhKR8fJ2heYxSBqUnmeejXKRvZXjIs=";
+  cargoSha256 = "sha256-VI+BTxgocv434wTr7nBeJRdt12wE53fEeqczE3o3768=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/netperf/default.nix b/nixpkgs/pkgs/applications/networking/netperf/default.nix
index fe5588d81f88..7722ab479c56 100644
--- a/nixpkgs/pkgs/applications/networking/netperf/default.nix
+++ b/nixpkgs/pkgs/applications/networking/netperf/default.nix
@@ -1,16 +1,26 @@
-{ libsmbios, lib, stdenv, autoreconfHook, fetchFromGitHub }:
+{ libsmbios, lib, stdenv, autoreconfHook, fetchFromGitHub, fetchpatch }:
 
 stdenv.mkDerivation {
   pname = "netperf";
-  version = "20180613";
+  version = "20210121";
 
   src = fetchFromGitHub {
     owner = "HewlettPackard";
     repo = "netperf";
-    rev = "bcb868bde7f0203bbab69609f65d4088ba7398db";
-    sha256 = "1wbbgdvhadd3qs3afv6i777argdpcyxkwz4yv6aqp223n8ki6dm8";
+    rev = "3bc455b23f901dae377ca0a558e1e32aa56b31c4";
+    sha256 = "s4G1ZN+6LERdEMDkc+12ZQgTi6K+ppUYUCGn4faCS9c=";
   };
 
+  patches = [
+    # Pul fix pending upstream inclusion for -fno-common toolchains:
+    #   https://github.com/HewlettPackard/netperf/pull/46
+    (fetchpatch {
+      name = "fno-common.patch";
+      url = "https://github.com/HewlettPackard/netperf/commit/c6a2e17fe35f0e68823451fedfdf5b1dbecddbe3.patch";
+      sha256 = "P/lRa6EakSalKWDTgZ7bWeGleaTLLa5UhzulxKd1xE4=";
+    })
+  ];
+
   buildInputs = lib.optional (with stdenv.hostPlatform; isx86 && isLinux) libsmbios;
   nativeBuildInputs = [ autoreconfHook ];
   autoreconfPhase = ''
@@ -22,7 +32,7 @@ stdenv.mkDerivation {
   meta = {
     description = "Benchmark to measure the performance of many different types of networking";
     homepage = "http://www.netperf.org/netperf/";
-    license = "Hewlett-Packard BSD-like license";
+    license = lib.licenses.mit;
 
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.mmlb ];
diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix
index f4e4c8279de8..868729514d4b 100644
--- a/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix
+++ b/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix
@@ -19,15 +19,16 @@
 , libsecret
 , gobject-introspection
 , glib-networking
+, gitUpdater
 }:
 
 stdenv.mkDerivation rec {
   pname = "liferea";
-  version = "1.12.9";
+  version = "1.13.9";
 
   src = fetchurl {
     url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
-    sha256 = "06ybr1wjlfir8iqjx6x0v1knd4b2hsy30qmkk4kssy6ky2ahc66q";
+    sha256 = "IP3TSmnRekFebxeBh5JRegeSedx+y24e4X9muMAyhFk=";
   };
 
   nativeBuildInputs = [
@@ -69,6 +70,12 @@ stdenv.mkDerivation rec {
     gappsWrapperArgs+=(--prefix PYTHONPATH : "$program_PYTHONPATH")
   '';
 
+  passthru.updateScript = gitUpdater {
+    inherit pname version;
+    url = "https://github.com/lwindolf/${pname}";
+    rev-prefix = "v";
+  };
+
   meta = with lib; {
     description = "A GTK-based news feed aggregator";
     homepage = "http://lzone.de/liferea/";
diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/raven-reader/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/raven-reader/default.nix
new file mode 100644
index 000000000000..360a93b5eddd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/newsreaders/raven-reader/default.nix
@@ -0,0 +1,38 @@
+{ lib, fetchurl, appimageTools }:
+
+let
+  pname = "raven-reader";
+  version = "1.0.74";
+  src = fetchurl {
+    url = "https://github.com/hello-efficiency-inc/raven-reader/releases/download/v${version}/Raven-Reader-${version}.AppImage";
+    sha256 = "sha256-BwJK0V19aLpTRa/7wzlWdALiJrOhfejCkKCGrZyA5EQ=";
+  };
+  appimageContents = appimageTools.extractType2 { inherit pname version src; };
+
+in
+appimageTools.wrapType2 {
+  inherit pname version src;
+
+  extraInstallCommands = ''
+    mv $out/bin/${pname}-${version} $out/bin/${pname}
+
+    mkdir -p $out/share/${pname}
+    cp -a ${appimageContents}/locales $out/share/${pname}
+    cp -a ${appimageContents}/resources $out/share/${pname}
+
+    install -m 444 -D ${appimageContents}/raven-reader.desktop -t $out/share/applications
+
+    cp -a ${appimageContents}/usr/share/icons $out/share/
+
+    substituteInPlace $out/share/applications/raven-reader.desktop \
+      --replace 'Exec=AppRun' 'Exec=raven-reader'
+  '';
+
+  meta = with lib; {
+    description = "Open source desktop news reader with flexible settings to optimize your experience";
+    homepage = "https://ravenreader.app/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix b/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
index deac64c903e1..ec2d717e359d 100644
--- a/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
@@ -2,8 +2,11 @@
 , mkDerivation
 , fetchFromGitHub
 , cmake
+, extra-cmake-modules
 , inotify-tools
+, installShellFiles
 , libcloudproviders
+, librsvg
 , libsecret
 , openssl
 , pcre
@@ -15,20 +18,23 @@
 , qtwebsockets
 , qtquickcontrols2
 , qtgraphicaleffects
+, plasma5Packages
+, sphinx
 , sqlite
-, inkscape
 , xdg-utils
 }:
 
 mkDerivation rec {
   pname = "nextcloud-client";
-  version = "3.4.4";
+  version = "3.5.4";
+
+  outputs = [ "out" "dev" ];
 
   src = fetchFromGitHub {
     owner = "nextcloud";
     repo = "desktop";
     rev = "v${version}";
-    sha256 = "sha256-e4me4mpK0N3UyM5MuJP3jxwM5h1dGBd+JzAr5f3BOGQ=";
+    sha256 = "sha256-ennKNUuoyhpVfG1XPzJKrop0i77BAB3C2MNqZPOXNkc=";
   };
 
   patches = [
@@ -37,10 +43,19 @@ mkDerivation rec {
     ./0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch
   ];
 
+  postPatch = ''
+    for file in src/libsync/vfs/*/CMakeLists.txt; do
+      substituteInPlace $file \
+        --replace "PLUGINDIR" "KDE_INSTALL_PLUGINDIR"
+    done
+  '';
+
   nativeBuildInputs = [
     pkg-config
     cmake
-    inkscape
+    extra-cmake-modules
+    librsvg
+    sphinx
   ];
 
   buildInputs = [
@@ -49,6 +64,7 @@ mkDerivation rec {
     libsecret
     openssl
     pcre
+    plasma5Packages.kio
     qtbase
     qtkeychain
     qttools
@@ -71,11 +87,16 @@ mkDerivation rec {
     "-DNO_SHIBBOLETH=1" # allows to compile without qtwebkit
   ];
 
+  postBuild = ''
+    make doc-man
+  '';
+
   meta = with lib; {
     description = "Nextcloud themed desktop client";
     homepage = "https://nextcloud.com";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ kranzes ];
+    maintainers = with maintainers; [ kranzes SuperSandro2000 ];
     platforms = platforms.linux;
+    mainProgram = "nextcloud";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/nextdns/default.nix b/nixpkgs/pkgs/applications/networking/nextdns/default.nix
index c06291c719e8..d3d6d5aa8069 100644
--- a/nixpkgs/pkgs/applications/networking/nextdns/default.nix
+++ b/nixpkgs/pkgs/applications/networking/nextdns/default.nix
@@ -2,18 +2,16 @@
 
 buildGoModule rec {
   pname = "nextdns";
-  version = "1.37.10";
+  version = "1.37.11";
 
   src = fetchFromGitHub {
     owner = "nextdns";
     repo = "nextdns";
     rev = "v${version}";
-    sha256 = "sha256-iwxgDBIuTClikvXF+3mCjFKKV0upN+K+aL85ewYkMXo=";
+    sha256 = "sha256-BOmu4OjDq1IwsPjbqzV2OtvKpaYFqP/XdYL2Ug28TbU=";
   };
 
-  vendorSha256 = "sha256-6hWD05lXteqL7egj9tiRVHlevKM33i+a+zBUZs7PF7I=";
-
-  doCheck = false;
+  vendorSha256 = "sha256-M2PlvUsEG3Um+NqbpHdtu9g+Gj6jSXZ9YZ7t1MwjjdI=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
diff --git a/nixpkgs/pkgs/applications/networking/offrss/default.nix b/nixpkgs/pkgs/applications/networking/offrss/default.nix
index 19dba8d5fae7..cad7339fe081 100644
--- a/nixpkgs/pkgs/applications/networking/offrss/default.nix
+++ b/nixpkgs/pkgs/applications/networking/offrss/default.nix
@@ -13,6 +13,11 @@ stdenv.mkDerivation rec {
     ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) podofo
     ++ lib.optional (!stdenv.isLinux) libiconv;
 
+  # Workaround build failure on -fno-common toolchains:
+  #   ld: serve_pdf.o:offrss.h:75: multiple definition of `cgi_url_path';
+  #     offrss.o:offrss.h:75: first defined here
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   configurePhase = ''
     substituteInPlace Makefile \
       --replace '$(CC) $(CFLAGS) $(LDFLAGS)' '$(CXX) $(CFLAGS) $(LDFLAGS)'
diff --git a/nixpkgs/pkgs/applications/networking/omping/default.nix b/nixpkgs/pkgs/applications/networking/omping/default.nix
index 7e7cd47dbd0a..2089408d09ba 100644
--- a/nixpkgs/pkgs/applications/networking/omping/default.nix
+++ b/nixpkgs/pkgs/applications/networking/omping/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
+    broken = stdenv.isDarwin;
     description = "Open Multicast Ping (omping) is a tool for testing IPv4/IPv6 multicast connectivity on a LAN";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/onionshare/default.nix b/nixpkgs/pkgs/applications/networking/onionshare/default.nix
index e7b661ae6ae7..8452d3c26f65 100644
--- a/nixpkgs/pkgs/applications/networking/onionshare/default.nix
+++ b/nixpkgs/pkgs/applications/networking/onionshare/default.nix
@@ -14,6 +14,7 @@
 , pycrypto
 , pynacl
 , pyside2
+, pysocks
 , pytestCheckHook
 , qrcode
 , qt5
@@ -132,6 +133,7 @@ rec {
       pyside2
       psutil
       qrcode
+      pysocks
     ];
 
     nativeBuildInputs = [ qt5.wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/applications/networking/opsdroid/default.nix b/nixpkgs/pkgs/applications/networking/opsdroid/default.nix
index ff6760d3daaf..3ba4f6ac57f3 100644
--- a/nixpkgs/pkgs/applications/networking/opsdroid/default.nix
+++ b/nixpkgs/pkgs/applications/networking/opsdroid/default.nix
@@ -17,7 +17,7 @@ python3Packages.buildPythonPackage rec {
   doCheck = false;
 
   propagatedBuildInputs = with python3Packages; [
-    click Babel opsdroid_get_image_size slackclient webexteamssdk bleach
+    click babel opsdroid_get_image_size slackclient webexteamssdk bleach
     parse emoji puremagic yamale nbformat websockets pycron nbconvert
     aiohttp matrix-api-async aioredis aiosqlite arrow pyyaml motor regex
     mattermostdriver setuptools voluptuous ibm-watson tailer multidict
@@ -29,7 +29,7 @@ python3Packages.buildPythonPackage rec {
   meta = with lib; {
     description = "An open source chat-ops bot framework";
     homepage = "https://opsdroid.dev";
-    maintainers = with maintainers; [ fpletz globin willibutz lheckemann ];
+    maintainers = with maintainers; [ globin willibutz ];
     license = licenses.asl20;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/applications/networking/ostinato/default.nix b/nixpkgs/pkgs/applications/networking/ostinato/default.nix
index 45307504d731..b3ff51ab7c19 100644
--- a/nixpkgs/pkgs/applications/networking/ostinato/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ostinato/default.nix
@@ -1,6 +1,7 @@
 { lib, mkDerivation, fetchFromGitHub, fetchurl, qmake, makeDesktopItem
 , qtbase, qtscript, protobuf, libpcap, wireshark, gzip, diffutils, gawk
 , libnl
+, copyDesktopItems
 }:
 
 mkDerivation rec {
@@ -21,31 +22,34 @@ mkDerivation rec {
 
   buildInputs = [ qtbase protobuf libpcap qtscript libnl ];
 
-  nativeBuildInputs = [ qmake ];
+  nativeBuildInputs = [
+    copyDesktopItems
+    qmake
+  ];
 
   patches = [ ./drone_ini.patch ];
   prePatch = ''
     sed -i 's|/usr/include/libnl3|${libnl.dev}/include/libnl3|' server/drone.pro
   '';
 
-  desktopItem = makeDesktopItem {
+  desktopItems = lib.singleton (makeDesktopItem {
     name          = "ostinato";
     desktopName   = "Ostinato";
     genericName   = "Packet/Traffic Generator and Analyzer";
     comment       = "Network packet and traffic generator and analyzer with a friendly GUI";
     categories    = [ "Network" ];
     startupNotify = true;
-    exec          = "$out/bin/ostinato";
+    exec          = "@out@/bin/ostinato";
     icon          =  ostinatoIcon;
     extraConfig   = {
       "GenericName[it]" = "Generatore ed Analizzatore di pacchetti di rete";
       "Comment[it]"     = "Generatore ed Analizzatore di pacchetti di rete con interfaccia amichevole";
     };
-  };
+  });
 
-  postInstall = ''
-    mkdir -p $out/share/applications
-    ln -s ${desktopItem}/share/applications/* $out/share/applications/
+  preFixup = ''
+    substituteInPlace $out/share/applications/ostinato.desktop \
+      --subst-var out
 
     cat > $out/bin/ostinato.ini <<EOF
     WiresharkPath=${wireshark}/bin/wireshark
@@ -62,8 +66,8 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A packet traffic generator and analyzer";
-    homepage    = "https://ostinato.org";
-    license     = licenses.gpl3;
+    homepage    = "https://ostinato.org/";
+    license     = licenses.gpl3Plus;
     maintainers = with maintainers; [ rick68 ];
     platforms   = with platforms; linux ++ darwin ++ cygwin;
   };
diff --git a/nixpkgs/pkgs/applications/networking/owamp/default.nix b/nixpkgs/pkgs/applications/networking/owamp/default.nix
index c357e78ccf29..785fa6886a86 100644
--- a/nixpkgs/pkgs/applications/networking/owamp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/owamp/default.nix
@@ -4,7 +4,8 @@
 stdenv.mkDerivation rec {
   pname = "owamp";
   version = "3.5.6";
-  buildInputs = [ autoconf automake mandoc ];
+  nativeBuildInputs = [ autoconf automake ];
+  buildInputs = [ mandoc ];
   src = fetchFromGitHub {
     owner = "perfsonar";
     repo = "owamp";
diff --git a/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix b/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix
index 006310e912b2..992058bdb305 100644
--- a/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "owncloud-client";
-  version = "2.10.0.6519";
+  version = "2.10.1.7187";
 
   src = fetchurl {
     url = "https://download.owncloud.com/desktop/ownCloud/stable/${version}/source/ownCloud-${version}.tar.xz";
-    sha256 = "sha256-HDH8s/VPeOAbkyrfE7hbhePhtWcx1IUdlhDCnodomh8=";
+    sha256 = "sha256-SNabKv5z7viDI3XDQ2mWjEgFKAGSR5K9sI3Tu5eZbwU=";
   };
 
   nativeBuildInputs = [ pkg-config cmake extra-cmake-modules ];
diff --git a/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix b/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix
index 49d21bbf3394..b5bb12da0ec5 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix
@@ -1,9 +1,8 @@
 { lib
 , fetchurl
-, fetchpatch
 , intltool
 , libtorrent-rasterbar
-, pythonPackages
+, python3Packages
 , gtk3
 , glib
 , gobject-introspection
@@ -11,62 +10,95 @@
 , wrapGAppsHook
 }:
 
-pythonPackages.buildPythonPackage rec {
-  pname = "deluge";
-  version = "2.0.5";
+let
+  inherit (lib) optionals;
 
-  src = fetchurl {
-    url = "http://download.deluge-torrent.org/source/2.0/${pname}-${version}.tar.xz";
-    sha256 = "sha256-xL0Eq/0hG2Uhi+A/PEbSb0QCSITeEOAYWfuFb91vJdg=";
-  };
+  pypkgs = python3Packages;
 
-  propagatedBuildInputs = with pythonPackages; [
-    twisted
-    Mako
-    chardet
-    pyxdg
-    pyopenssl
-    service-identity
-    libtorrent-rasterbar.dev
-    libtorrent-rasterbar.python
-    setuptools
-    setproctitle
-    pillow
-    rencode
-    six
-    zope_interface
-    dbus-python
-    pygobject3
-    pycairo
-    gtk3
-    gobject-introspection
-    librsvg
-  ];
+  generic = { pname, withGUI }:
+    pypkgs.buildPythonPackage rec {
+      inherit pname;
+      version = "2.1.1";
 
-  nativeBuildInputs = [ intltool wrapGAppsHook glib ];
+      src = fetchurl {
+        url = "http://download.deluge-torrent.org/source/${lib.versions.majorMinor version}/deluge-${version}.tar.xz";
+        hash = "sha256-do3TGYAuQkN6s3lOvnW0lxQuCO1bD7JQO61izvRC3/c=";
+      };
 
-  checkInputs = with pythonPackages; [
-    pytestCheckHook
-    pytest-twisted
-    pytest-cov
-    mock
-    mccabe
-    pylint
-  ];
+      propagatedBuildInputs = with pypkgs; [
+        twisted
+        Mako
+        chardet
+        pyxdg
+        pyopenssl
+        service-identity
+        libtorrent-rasterbar.dev
+        libtorrent-rasterbar.python
+        setuptools
+        setproctitle
+        pillow
+        rencode
+        six
+        zope_interface
+        dbus-python
+        pycairo
+        librsvg
+      ] ++ optionals withGUI [
+        gtk3
+        gobject-introspection
+        pygobject3
+      ];
 
-  doCheck = false; # until pytest-twisted is packaged
+      nativeBuildInputs = [
+        intltool
+        glib
+      ] ++ optionals withGUI [
+        gobject-introspection
+        wrapGAppsHook
+      ];
 
-  postInstall = ''
-    mkdir -p $out/share
-    cp -R deluge/ui/data/{icons,pixmaps} $out/share/
-    install -Dm444 -t $out/share/applications deluge/ui/data/share/applications/deluge.desktop
-  '';
+      checkInputs = with pypkgs; [
+        pytestCheckHook
+        pytest-twisted
+        pytest-cov
+        mock
+        mccabe
+        pylint
+      ];
 
-  meta = with lib; {
-    homepage = "https://deluge-torrent.org";
-    description = "Torrent client";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ domenkozar ebzzry ];
-    platforms = platforms.all;
-  };
+      doCheck = false; # tests are not working at all
+
+      postInstall = ''
+        install -Dm444 -t $out/lib/systemd/system packaging/systemd/*.service
+      '' + (if withGUI
+      then ''
+        mkdir -p $out/share
+        cp -R deluge/ui/data/{icons,pixmaps} $out/share/
+        install -Dm444 -t $out/share/applications deluge/ui/data/share/applications/deluge.desktop
+      '' else ''
+        rm -r $out/bin/deluge-gtk
+        rm -r $out/lib/${python3Packages.python.libPrefix}/site-packages/deluge/ui/gtk3
+        rm -r $out/share/{icons,man/man1/deluge-gtk*,pixmaps}
+      '');
+
+      postFixup = ''
+        for f in $out/lib/systemd/system/*; do
+          substituteInPlace $f --replace /usr/bin $out/bin
+        done
+      '';
+
+      meta = with lib; {
+        description = "Torrent client";
+        homepage = "https://deluge-torrent.org";
+        license = licenses.gpl3Plus;
+        maintainers = with maintainers; [ domenkozar ebzzry ];
+        platforms = platforms.all;
+      };
+    };
+
+in
+rec {
+  deluge-gtk = generic { pname = "deluge-gtk"; withGUI = true; };
+  deluged = generic { pname = "deluged"; withGUI = false; };
+  deluge = deluge-gtk;
 }
diff --git a/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix
index ad791f46d739..a08ea4b8bbc2 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix
@@ -73,6 +73,7 @@ in stdenv.mkDerivation {
   meta = {
     description = "Decentralised and censorship-resistant network";
     homepage = "https://freenetproject.org/";
+    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license = lib.licenses.gpl2Plus;
     maintainers = [ ];
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix b/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix
index cd6ae563aa0b..05fb734d7bf2 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix
@@ -87,6 +87,10 @@ in stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://www.frostwire.com/";
     description = "BitTorrent Client and Cloud File Downloader";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryBytecode  # deps
+    ];
     license = licenses.gpl2;
     maintainers = with maintainers; [ gavin ];
     platforms = [ "x86_64-darwin" "x86_64-linux" "i686-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix b/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
index cfee9d91c930..fd5424cee342 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "6.9.7";
+  version = "6.9.8";
   pname = "frostwire";
 
   src = fetchurl {
     url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.amd64.tar.gz";
-    sha256 = "sha256-LsmDfNAj10x+txJ4PugyF3Irj/N1reb3ChTvFFIucdc=";
+    sha256 = "sha256-gslNdvxA4rGKg0bjf2KWw7w9NMp3zqrii144AfKsV4s=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -35,6 +35,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.frostwire.com/";
     description = "BitTorrent Client and Cloud File Downloader";
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ gavin ];
     platforms = [ "x86_64-linux"];
diff --git a/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
index f24f74e5ae05..6b49416173cf 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
@@ -3,15 +3,15 @@
 , makeWrapper, ncurses, pkg-config, libxml2, sqlite, zlib
 , libpulseaudio, libopus, libogg, jansson, libsodium
 
-, postgresqlSupport ? false, postgresql }:
+, postgresqlSupport ? true, postgresql }:
 
 stdenv.mkDerivation rec {
   pname = "gnunet";
-  version = "0.16.0";
+  version = "0.17.2";
 
   src = fetchurl {
     url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz";
-    sha256 = "sha256-0y2m8T/xzYZwUlcZ6g956fdtLef2Bphg4Kd/xpo2AGg=";
+    sha256 = "sha256-OLE7V44kkKmSInV8ZHJ965eTn995cQf5hih8KUTudUE=";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix b/nixpkgs/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix
new file mode 100644
index 000000000000..df314b6591c2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, curl
+, gtest
+, libtorrent
+, ncurses
+, jsonRpcSupport ? true, nlohmann_json
+, xmlRpcSupport ? true, xmlrpc_c
+}:
+
+stdenv.mkDerivation rec {
+  pname = "jesec-rtorrent";
+  version = "0.9.8-r16";
+
+  src = fetchFromGitHub {
+    owner = "jesec";
+    repo = "rtorrent";
+    rev = "v${version}";
+    hash = "sha256-i7c1jSawHshj1kaXl8tdpelIKU24okeg9K5/+ht6t2k=";
+  };
+
+  passthru = {
+    inherit libtorrent;
+  };
+
+  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";
+
+  doCheck = true;
+
+  checkInputs = [
+    gtest
+  ];
+
+  prePatch = ''
+    substituteInPlace src/main.cc \
+      --replace "/etc/rtorrent/rtorrent.rc" "${placeholder "out"}/etc/rtorrent/rtorrent.rc"
+  '';
+
+  postFixup = ''
+    mkdir -p $out/etc/rtorrent
+    cp $src/doc/rtorrent.rc $out/etc/rtorrent/rtorrent.rc
+  '';
+
+  meta = with lib; {
+    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; [ winter AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/jesec-rtorrent/libtorrent.nix b/nixpkgs/pkgs/applications/networking/p2p/jesec-rtorrent/libtorrent.nix
new file mode 100644
index 000000000000..ac7e15b6a2e5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/jesec-rtorrent/libtorrent.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gtest
+, openssl
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "jesec-libtorrent";
+  version = "0.13.8-r4";
+
+  src = fetchFromGitHub {
+    owner = "jesec";
+    repo = "libtorrent";
+    rev = "v${version}";
+    hash = "sha256-jC/hgGSi2qy+ToZgdxl1PhASLYbUL0O8trX0th2v5H0=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    openssl
+    zlib
+  ];
+
+  # Disabled because a test is flaky; see https://github.com/jesec/libtorrent/issues/4.
+  # 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/applications/networking/p2p/lokinet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/lokinet/default.nix
new file mode 100644
index 000000000000..e3e2c8e58831
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/lokinet/default.nix
@@ -0,0 +1,64 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, libevent
+, libsodium
+, libuv
+, nlohmann_json
+, pkg-config
+, sqlite
+, systemd
+, unbound
+, zeromq
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lokinet";
+  version = "0.9.9";
+
+  src = fetchFromGitHub {
+    owner = "oxen-io";
+    repo = "lokinet";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "sha256-AaGsRg9S9Cng9emI/mN09QSOIRbE+x3916clWAwLnRs=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    libevent
+    libuv
+    libsodium
+    nlohmann_json
+    sqlite
+    systemd
+    unbound
+    zeromq
+  ];
+
+  cmakeFlags = [
+    "-DGIT_VERSION=v${version}"
+    "-DWITH_BOOTSTRAP=OFF" # we provide bootstrap files manually
+    "-DWITH_SETCAP=OFF"
+  ];
+
+  # copy bootstrap files
+  # see https://github.com/oxen-io/lokinet/issues/1765#issuecomment-938208774
+  postInstall = ''
+    mkdir -p $out/share/testnet
+    cp $src/contrib/bootstrap/mainnet.signed $out/share/bootstrap.signed
+    cp $src/contrib/bootstrap/testnet.signed $out/share/testnet/bootstrap.signed
+  '';
+
+  meta = with lib; {
+    description = "Anonymous, decentralized and IP based overlay network for the internet";
+    homepage = "https://lokinet.org/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ wyndon ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix b/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix
index 41b8a7d0b6c2..6c5ebdb91335 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, ocamlPackages, zlib }:
+{ lib, stdenv, fetchurl, fetchpatch, ocamlPackages, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "mldonkey";
@@ -9,6 +9,14 @@ stdenv.mkDerivation rec {
     sha256 = "b926e7aa3de4b4525af73c88f1724d576b4add56ef070f025941dd51cb24a794";
   };
 
+  patches = [
+    # Fixes C++17 compat
+    (fetchpatch {
+      url = "https://github.com/ygrek/mldonkey/pull/66/commits/20ff84c185396f3d759cf4ef46b9f0bd33a51060.patch";
+      hash = "sha256-MCqx0jVfOaLkZhhv0b1cTdO6BK2/f6TxTWmx+NZjXME=";
+    })
+  ];
+
   preConfigure = ''
     substituteInPlace Makefile --replace '+camlp4' \
       '${ocamlPackages.camlp4}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/camlp4'
@@ -23,6 +31,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
+    broken = stdenv.isDarwin;
     description = "Client for many p2p networks, with multiple frontends";
     homepage = "http://mldonkey.sourceforge.net/";
     license = lib.licenses.gpl2Only;
diff --git a/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix b/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix
index 053f1d67882b..bea7fad805e2 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix
@@ -1,25 +1,19 @@
-{ lib, stdenv, fetchurl, fetchpatch, ncurses, zlib, bzip2, sqlite, pkg-config, glib, gnutls }:
+{ lib, stdenv, fetchurl, fetchpatch, ncurses, zlib, bzip2, sqlite, pkg-config
+, glib, gnutls, perl, libmaxminddb }:
 
 stdenv.mkDerivation rec {
   pname = "ncdc";
-  version = "1.22.1";
+  version = "1.23";
 
   src = fetchurl {
     url = "https://dev.yorhel.nl/download/ncdc-${version}.tar.gz";
-    sha256 = "1bdgqd07f026qk6vpbxqsin536znd33931m3b4z44prlm9wd6pyi";
+    hash = "sha256-gEq65B/MqWnof2UEg65+OiN0Gdq70yCJfiX+iFHwoss=";
   };
 
-  patches = [
-    # Upstream fix for ncurses-6.3 support:
-    (fetchpatch {
-      name = "ncurses-6.3.patch";
-      url = "https://g.blicky.net/ncdc.git/patch/?id=4126dd51e90deb9e22dfd139cc4518a7812fcad6";
-      sha256 = "13hqkmhmbazj6cllb5b2ccgf51vsn5lri7jqkqc5xwivgcisfrij";
-    })
-  ];
+  nativeBuildInputs = [ perl pkg-config ];
+  buildInputs = [ ncurses zlib bzip2 sqlite glib gnutls libmaxminddb ];
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ ncurses zlib bzip2 sqlite glib gnutls ];
+  configureFlags = [ "--with-geoip" ];
 
   meta = with lib; {
     description = "Modern and lightweight direct connect client with a friendly ncurses interface";
diff --git a/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix b/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix
index 3c05398df0ea..47fe3e97c1d3 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitHub, makeWrapper, pkg-config
+{ mkDerivation, lib, fetchFromGitHub, pkg-config
 , boost, libtorrent-rasterbar, qtbase, qttools, qtsvg
 , debugSupport ? false
 , guiSupport ? true, dbus ? null # GUI (disable to run headless)
@@ -12,19 +12,19 @@ assert trackerSearch -> (python3 != null);
 with lib;
 mkDerivation rec {
   pname = "qbittorrent";
-  version = "4.4.1";
+  version = "4.4.3.1";
 
   src = fetchFromGitHub {
     owner = "qbittorrent";
     repo = "qBittorrent";
     rev = "release-${version}";
-    sha256 = "sha256-HNgegPL7M0zwkn7+lcNcsgWgrCbY9/d0nuIlIC5hkAM=";
+    sha256 = "sha256-byA6bzGdigmVptUFdgBjyg6Oimn5L6l1DDOuuBjwO0s=";
   };
 
   enableParallelBuilding = true;
 
   # NOTE: 2018-05-31: CMake is working but it is not officially supported
-  nativeBuildInputs = [ makeWrapper pkg-config ];
+  nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ boost libtorrent-rasterbar qtbase qttools qtsvg ]
     ++ optional guiSupport dbus # D(esktop)-Bus depends on GUI support
@@ -40,11 +40,7 @@ mkDerivation rec {
     ++ optional (!webuiSupport) "--disable-webui"
     ++ optional debugSupport "--enable-debug";
 
-  postInstall = "wrapProgram $out/bin/${
-    if guiSupport
-    then "qbittorrent"
-    else "qbittorrent-nox"
-  } --prefix PATH : ${makeBinPath [ python3 ]}";
+  qtWrapperArgs = optional trackerSearch "--prefix PATH : ${makeBinPath [ python3 ]}";
 
   meta = {
     description = "Featureful free software BitTorrent client";
diff --git a/nixpkgs/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix b/nixpkgs/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix
new file mode 100644
index 000000000000..fa459137f199
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix
@@ -0,0 +1,72 @@
+{ 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=";
+  };
+
+  passthru = {
+    inherit libtorrent;
+  };
+
+  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/applications/networking/p2p/rakshasa-rtorrent/libtorrent.nix b/nixpkgs/pkgs/applications/networking/p2p/rakshasa-rtorrent/libtorrent.nix
new file mode 100644
index 000000000000..fff4cbb36cf6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/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/applications/networking/p2p/rqbit/default.nix b/nixpkgs/pkgs/applications/networking/p2p/rqbit/default.nix
index 6d037e56ea44..40f6f1ed4edb 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/rqbit/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/rqbit/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rqbit";
-  version = "2.1.3";
+  version = "2.1.4";
 
   src = fetchFromGitHub {
     owner = "ikatson";
     repo = "rqbit";
     rev = "v${version}";
-    sha256 = "sha256-ovg+oMlt3XzOxG9w/5Li3awMyRdIt1/JnIFfZktftkw=";
+    sha256 = "sha256-PkU3QJvAK2b1KQC1o5md35iucjq+SYoKAGxqiojf4rw=";
   };
 
-  cargoSha256 = "sha256-0CA0HwFI86VfSyBNn0nlC1n4BVgOc9BLh1it7ReT8+Y=";
+  cargoSha256 = "sha256-Jj2CK3nwktv2MU+EHXzQ/lKDUlC+4HkaItMTtoGF1Pw=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix b/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix
index 0d2fc0fd833c..c281756bed35 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix
@@ -52,6 +52,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "Official Qt SoulSeek client";
     homepage = "https://www.slsknet.org";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [ ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix
index 0d44f084086e..ed88546129fb 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tixati";
-  version = "2.88";
+  version = "2.89";
 
   src = fetchurl {
     url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
-    sha256 = "sha256-9d9Z+3Uyxy4Bj8STtzHWwyyhWeMv3wo0IH6uxGTaA0I=";
+    sha256 = "sha256-fd7DMKoRxNmNjCxl2ViINjnCEXJrhJU4aaRT+NoB1vI=";
   };
 
   installPhase = ''
@@ -23,8 +23,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Torrent client";
     homepage = "http://www.tixati.com";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ volth ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix
index da7633221a5a..a0e2388d16cc 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix
@@ -1,30 +1,38 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, makeDesktopItem, unzip, fpc, lazarus,
-libX11, glib, gtk2, gdk-pixbuf, pango, atk, cairo, openssl }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, makeDesktopItem, fetchpatch, unzip
+, fpc, lazarus, libX11, glib, gtk2, gdk-pixbuf, pango, atk, cairo, openssl }:
 
 stdenv.mkDerivation rec {
   pname = "transgui";
-  version = "5.18.0";
+  version = "unstable-2022-02-02";
 
   src = fetchFromGitHub {
     owner = "transmission-remote-gui";
     repo = "transgui";
-    rev = "v${version}";
-    sha256 = "1dyx778756zhvz5sxgdvy49p2c0x44w4nmcfd90wqrmgfknncnf5";
+    rev = "0e2c2a07c1b21b1704c0a4945a111a8aa1050a1a";
+    sha256 = "1x9wzii3q9zanpik4xc99jqsfrqch8vjmlx12jrvczxcfy51b1ba";
   };
 
+  patches = [
+    # TDDO: remove when transgui updates for transmission-daemon v3 rpc protocol
+    (fetchpatch {
+      url = "https://github.com/transmission-remote-gui/transgui/commit/9275c3fb877dd753a1940d1b900630cdc09a0cc2.patch";
+      sha256 = "0w2x7gcxp5kqczdz7ckfqhdz9hhkm62k8gcws54d6km7x9vc1023";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config unzip ];
   buildInputs = [
-    fpc lazarus stdenv.cc
-    libX11 glib gtk2 gdk-pixbuf pango atk cairo openssl
+    fpc lazarus stdenv.cc libX11 glib gtk2 gdk-pixbuf
+    pango atk cairo openssl
   ];
 
-  NIX_LDFLAGS = "
-    -L${stdenv.cc.cc.lib}/lib
-    -lX11 -lglib-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0
-    -lgdk_pixbuf-2.0 -lpango-1.0 -latk-1.0 -lcairo -lc -lcrypto
-  ";
+  NIX_LDFLAGS = ''
+    -L${stdenv.cc.cc.lib}/lib -lX11 -lglib-2.0 -lgtk-x11-2.0
+    -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lpango-1.0 -latk-1.0 -lcairo
+    -lc -lcrypto
+  '';
 
-  prePatch = ''
+  postPatch = ''
     substituteInPlace restranslator.pas --replace /usr/ $out/
   '';
 
@@ -33,23 +41,19 @@ stdenv.mkDerivation rec {
     lazbuild -B transgui.lpr --lazarusdir=${lazarus}/share/lazarus
   '';
 
-  makeFlags = [
-    "FPC=fpc"
-    "PP=fpc"
-    "INSTALL_PREFIX=$(out)"
-  ];
+  makeFlags = [ "FPC=fpc" "PP=fpc" "INSTALL_PREFIX=$(out)" ];
 
   LCL_PLATFORM = "gtk2";
 
-  desktopItem = makeDesktopItem rec {
-    name = "transgui";
-    exec = name + " %U";
-    icon = name;
+  desktopItem = makeDesktopItem {
+    name = pname;
+    exec = "${pname} %U";
+    icon = pname;
     type = "Application";
     comment = meta.description;
     desktopName = "Transmission Remote GUI";
     genericName = "BitTorrent Client";
-    categories = [ "Application" "Network" "FileTransfer" "P2P" "GTK" ];
+    categories = [ "Network" "FileTransfer" "P2P" "GTK" ];
     startupNotify = true;
     mimeTypes = [ "application/x-bittorrent" "x-scheme-handler/magnet" ];
   };
@@ -64,10 +68,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A cross platform front-end for the Transmission Bit-Torrent client";
+    description = "A cross platform front-end for the Transmission BitTorrent client";
     homepage = "https://sourceforge.net/p/transgui";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ ramkromberg ];
-    platforms = lib.platforms.linux;
+    mainProgram = "transgui";
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
index c89e53977067..6c6cc99f5a1a 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
@@ -1,40 +1,30 @@
-{ lib, stdenv, autoconf, automake, libtool, wrapGAppsHook, fetchFromGitHub, pkg-config
-, intltool, gtk3, json-glib, curl, glib, autoconf-archive, appstream-glib, fetchpatch }:
-
+{ lib, stdenv, wrapGAppsHook, fetchFromGitHub, pkg-config, gtk3, json-glib, curl
+, glib, appstream-glib, desktop-file-utils, meson, ninja, geoip, gettext
+, libappindicator, libmrss, libproxy }:
 
 stdenv.mkDerivation rec {
   pname = "transmission-remote-gtk";
-  version = "1.4.1";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "transmission-remote-gtk";
     repo = "transmission-remote-gtk";
     rev = version;
-    sha256 = "1pipc1f94jdppv597mqmcj2kw2rdvaqcbl512v7z8vir76p1a7gk";
+    sha256 = "4/ID12JukDDvJzWupc76r7W8Us5erwv8oXZhDnB6VDk=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/transmission-remote-gtk/transmission-remote-gtk/commit/0f5cc8a9942e220ea0f7d0b17db4a78d094e3b65.patch";
-      sha256 = "195rsjpbc0gzmr9bycvq4mra7abp3hd9by3a5vvcmxsh5ipikycf";
-    })
-  ];
-
-  preConfigure = "./autogen.sh";
-
-  nativeBuildInputs= [
-    autoconf automake libtool wrapGAppsHook
-    pkg-config intltool autoconf-archive
-    appstream-glib
-  ];
+  nativeBuildInputs =
+    [ desktop-file-utils wrapGAppsHook meson ninja pkg-config appstream-glib ];
 
-  buildInputs = [ gtk3 json-glib curl glib ];
+  buildInputs =
+    [ gtk3 json-glib curl glib gettext libmrss geoip libproxy libappindicator ];
 
-  doCheck = false; # fails with style validation error
+  doCheck = false; # Requires network access
 
   meta = with lib; {
     description = "GTK remote control for the Transmission BitTorrent client";
-    homepage = "https://github.com/ajf8/transmission-remote-gtk";
+    homepage =
+      "https://github.com/transmission-remote-gtk/transmission-remote-gtk";
     license = licenses.gpl2;
     maintainers = [ maintainers.ehmry ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
index 7f48ad2d3b48..f5a8188334ce 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
@@ -86,8 +86,6 @@ in stdenv.mkDerivation {
   ++ lib.optionals stdenv.isLinux [ inotify-tools ]
   ;
 
-  NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework CoreFoundation";
-
   postInstall = ''
     mkdir $apparmor
     cat >$apparmor/bin.transmission-daemon <<EOF
diff --git a/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix
index ea6b92c08e7e..6ff10989b1d3 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix
@@ -44,7 +44,7 @@ python3Packages.buildPythonApplication rec {
   dontBuild = true;
   doCheck = false;
 
-  makeWrapperArgs = ["--prefix PATH : ${wrapperPath}"];
+  makeWrapperArgs = ["--prefix PATH : ${lib.escapeShellArg wrapperPath}"];
 
   installPhase = ''
     make DESTDIR=$out install
diff --git a/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
index d1df2fea444c..e74db03b5332 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
@@ -74,10 +74,10 @@ stdenv.mkDerivation rec {
     makeWrapper ${python3.pkgs.python}/bin/python $out/bin/tribler \
         --set QT_QPA_PLATFORM_PLUGIN_PATH ${qt5.qtbase.bin}/lib/qt-*/plugins/platforms \
         --set QT_PLUGIN_PATH "${qt5.qtsvg.bin}/${qt5.qtbase.qtPluginPrefix}" \
-        --set _TRIBLERPATH $out/src \
+        --set _TRIBLERPATH "$out/src" \
         --set PYTHONPATH $out/src/tribler-core:$out/src/tribler-common:$out/src/tribler-gui:$program_PYTHONPATH \
         --set NO_AT_BRIDGE 1 \
-        --run 'cd $_TRIBLERPATH' \
+        --chdir "$out/src" \
         --add-flags "-O $out/src/run_tribler.py"
 
     mkdir -p $out/share/applications $out/share/icons
diff --git a/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix b/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix
deleted file mode 100644
index c8e3c4ce7b91..000000000000
--- a/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix
+++ /dev/null
@@ -1,70 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, autoconf, automake, libtool, pkg-config, python2
-, boost, db, openssl, geoip, libiconv, miniupnpc, srcOnly
-}:
-
-let
-  twisterHTML = srcOnly {
-    name = "twister-html";
-    src = fetchFromGitHub {
-      owner = "miguelfreitas";
-      repo = "twister-html";
-      rev = "01e7f7ca9b7e42ed90f91bc42da2c909ca5c0b9b";
-      sha256 = "sha256-Hi/VAEwujWhKAPaYIuvrxRIuPQa9AYwXiHUGbWxckmk=";
-    };
-  };
-
-  boostPython = boost.override {
-    enablePython = true;
-    python = python2;
-  };
-
-in stdenv.mkDerivation rec {
-  pname = "twister";
-  version = "2019-08-19";
-
-  src = fetchFromGitHub {
-    owner = "miguelfreitas";
-    repo = "twister-core";
-    rev = "31faf3f63e461ea0a9b23081567a4a552cf06873";
-    sha256 = "0xh1lgnl9nd86jr0mp7m8bkd7r5j4d6chd0y73h2xv4aq5sld0sp";
-  };
-
-  configureFlags = [
-    "--with-libgeoip"
-    "--with-libiconv"
-    "--disable-deprecated-functions"
-    "--enable-tests"
-    "--enable-python-binding"
-    "--with-boost-libdir=${boostPython.out}/lib"
-  ];
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [
-    autoconf automake libtool python2
-    boostPython db openssl geoip miniupnpc libiconv
-  ];
-
-  postPatch = ''
-    sed -i -e '/-htmldir/s|(default: [^)]*)|(default: ${twisterHTML})|' \
-      src/init.cpp
-    sed -i -e '/GetDataDir.*html/s|path *= *[^;]*|path = "${twisterHTML}"|' \
-      src/util.cpp
-  '';
-
-  preConfigure = ''
-    sh autotool.sh
-  '';
-
-  installPhase = ''
-    install -vD twisterd "$out/bin/twisterd"
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = "http://www.twister.net.co/";
-    description = "Peer-to-peer microblogging";
-    license = lib.licenses.mit;
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix b/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix
index fe8743ee1cd1..6dc00cba9ee0 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.vuze.com";
     license = licenses.unfree;
     platforms = platforms.all;
-    maintainers = with maintainers; [ volth ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix b/nixpkgs/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix
new file mode 100644
index 000000000000..f04a3e07a052
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, fetchFromGitHub
+, python3Packages
+, nixosTests
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "zeronet-conservancy";
+  version = "0.7.7";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "zeronet-conservancy";
+    repo = "zeronet-conservancy";
+    rev = "v${version}";
+    sha256 = "sha256-6qBdq6DoIKZUUGflz7kWu3S3pMJB4vkGUytpU5EatP0=";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    gevent msgpack base58 merkletools rsa pysocks pyasn1 websocket-client
+    gevent-websocket rencode bitcoinlib maxminddb pyopenssl rich defusedxml
+    pyaes
+  ];
+
+  buildPhase = ''
+    ${python3Packages.python.interpreter} -O -m compileall .
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share
+    cp -r plugins src *.py $out/share/
+  '';
+
+  postFixup = ''
+    makeWrapper "$out/share/zeronet.py" "$out/bin/zeronet" \
+      --set PYTHONPATH "$PYTHONPATH" \
+      --set PATH ${python3Packages.python}/bin
+  '';
+
+  passthru.tests = {
+    nixos-test = nixosTests.zeronet-conservancy;
+  };
+
+  meta = with lib; {
+    description = "A fork/continuation of the ZeroNet project";
+    longDescription = ''
+      zeronet-conservancy is a fork/continuation of ZeroNet project (that has
+      been abandoned by its creator) that is dedicated to sustaining existing
+      p2p network and developing its values of decentralization and freedom,
+      while gradually switching to a better designed network.
+    '';
+    homepage = "https://github.com/zeronet-conservancy/zeronet-conservancy";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fgaz ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix
index 19da740938c7..02b0c91e2da9 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix
@@ -37,5 +37,9 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://zeronet.io/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ fgaz ];
+    knownVulnerabilities = [ ''
+      Unmaintained. Probable XSS/code injection vulnerability.
+      Switching to the maintained zeronet-conservancy package is recommended
+    '' ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/pcloud/default.nix b/nixpkgs/pkgs/applications/networking/pcloud/default.nix
index 50a26ef50f6a..49905cdbd213 100644
--- a/nixpkgs/pkgs/applications/networking/pcloud/default.nix
+++ b/nixpkgs/pkgs/applications/networking/pcloud/default.nix
@@ -26,13 +26,12 @@
 
 let
   pname = "pcloud";
-  version = "1.9.7";
-  code = "XZ0FAtXZNxFJbda6KhLejU9tKAg4N0TEqx3V";
-
-  # Archive link's code thanks to: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=pcloud-drive
+  version = "1.9.9";
+  code = "XZWTVkVZQM0GNXA4hrFGPkefzUUWVLKOpPIX";
+  # Archive link's codes: https://www.pcloud.com/release-notes/linux.html
   src = fetchzip {
     url = "https://api.pcloud.com/getpubzip?code=${code}&filename=${pname}-${version}.zip";
-    hash = "sha256-6eMRFuZOLcoZd2hGw7QV+kAmzE5lK8uK6ZpGs4n7/zw=";
+    hash = "sha256-8566vKrE3/QCm4qW9KxEAO+r+YfMRYOhV2Da7qic48M=";
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -104,6 +103,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Secure and simple to use cloud storage for your files; pCloud Drive, Electron Edition";
     homepage = "https://www.pcloud.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ patryk27 ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/ping/default.nix b/nixpkgs/pkgs/applications/networking/ping/default.nix
deleted file mode 100644
index 6074b1a51ccb..000000000000
--- a/nixpkgs/pkgs/applications/networking/ping/default.nix
+++ /dev/null
@@ -1,76 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, nix-update-script
-, meson
-, ninja
-, vala
-, pkg-config
-, pantheon
-, python3
-, glib
-, gtk3
-, gtksourceview
-, json-glib
-, libsoup
-, libgee
-, wrapGAppsHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "ping";
-  version = "0.6.0";
-
-  src = fetchFromGitHub {
-    owner = "jeremyvaartjes";
-    repo = "ping";
-    rev = version;
-    sha256 = "1h9cdy2jxa2ffykjg89j21hazls32z9yyv3g0x07x3vizzl5xcij";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    vala
-    pkg-config
-    python3
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    glib
-    gtk3
-    gtksourceview
-    json-glib
-    libgee
-    libsoup
-    pantheon.granite
-  ];
-
-  postPatch = ''
-    chmod +x meson/post_install.py
-    patchShebangs meson/post_install.py
-  '';
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = pname;
-    };
-  };
-
-  meta = with lib; {
-    description = "A helpful tool that lets you debug what part of your API is causing you issues";
-    homepage = "https://github.com/jeremyvaartjes/ping";
-    maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
-    platforms = platforms.linux;
-    license = licenses.gpl3;
-    mainProgram = "com.github.jeremyvaartjes.ping";
-    # Does not build with vala 0.48 or later
-    # ../src/Application.vala:696.46-696.57: error: Assignment: Cannot convert from
-    # `GLib.HashTable<weak string,weak string>' to `GLib.HashTable<string,string>?'
-    #                     HashTable<string,string> tempDataList = Soup.Form.decode(testObjs[id].data);
-    #                                              ^^^^^^^^^^^^
-    # Upstream has no activity since 28 Dec 2020
-    broken = true;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/pjsip/default.nix b/nixpkgs/pkgs/applications/networking/pjsip/default.nix
index 8b0fad83b960..612c6bd0bc3e 100644
--- a/nixpkgs/pkgs/applications/networking/pjsip/default.nix
+++ b/nixpkgs/pkgs/applications/networking/pjsip/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, openssl, libsamplerate, alsa-lib, AppKit }:
+{ lib, stdenv, fetchFromGitHub, openssl, libsamplerate, alsa-lib, AppKit, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "pjsip";
-  version = "2.12";
+  version = "2.12.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "pjproject";
     rev = version;
-    sha256 = "sha256-snp9+PlffU9Ay8o42PM8SqyP60hu9nozp457HM+0bM8=";
+    sha256 = "sha256-HIDL4xzzTu3irzrIOf8qSNCAvHGOMpi8EDeqZb8mMnc=";
   };
 
   patches = [
@@ -34,10 +34,12 @@ stdenv.mkDerivation rec {
   dontPatchELF = true;
 
   meta = with lib; {
+    broken = stdenv.isDarwin;
     description = "A multimedia communication library written in C, implementing standard based protocols such as SIP, SDP, RTP, STUN, TURN, and ICE";
     homepage = "https://pjsip.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ olynch ];
+    mainProgram = "pjsua";
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix b/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix
index 8ea5c4904f11..51a51b3fb1c7 100644
--- a/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix
@@ -1,32 +1,39 @@
 { lib, stdenv, fetchFromGitHub, mkYarnPackage, nixosTests, writeText, python3 }:
 
 let
-  version = "0.2.4";
+  version = "0.3.0";
   src = fetchFromGitHub {
     owner = "ngoduykhanh";
     repo = "PowerDNS-Admin";
     rev = "v${version}";
-    sha256 = "sha256-xJ0NNnDVwGl+t9q1INPhCxcTmQayYBYdjEG0PbPCI9E=";
+    hash = "sha256-e11u0jdJr+2TDXvBAPlDfnuuDwSfBq+JtvnDUTNKp/c=";
   };
 
   python = python3.override {
     packageOverrides = self: super: {
-      dnspython = super.dnspython.overridePythonAttrs (oldAttrs: rec {
-        version = "1.16.0";
+      # The bravado-core dependency is incompatible with jschonschema 4.0:
+      # https://github.com/Yelp/bravado-core/pull/385
+      jsonschema = super.jsonschema.overridePythonAttrs (oldAttrs: rec {
+        version = "3.2.0";
+
         src = oldAttrs.src.override {
           inherit version;
-          sha256 = "36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01";
+          hash = "sha256-yKhbKNN3zHc35G4tnytPRO48Dh3qxr9G3e/HGH0weXo=";
         };
+
+        SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+        doCheck = false;
       });
     };
   };
 
   pythonDeps = with python.pkgs; [
-    flask flask_assets flask_login flask_sqlalchemy flask_migrate flask-seasurf flask_mail flask-session flask-sslify
+    flask flask_assets flask_login flask-sqlalchemy flask_migrate flask-seasurf flask_mail flask-session flask-sslify
     mysqlclient psycopg2 sqlalchemy
     cffi configobj cryptography bcrypt requests ldap pyotp qrcode dnspython
-    gunicorn python3-saml pyopenssl pytz cssmin jsmin authlib bravado-core
-    lima pytimeparse pyyaml
+    gunicorn python3-saml pytz cssmin rjsmin authlib bravado-core
+    lima pytimeparse pyyaml jinja2 itsdangerous werkzeug
   ];
 
   assets = mkYarnPackage {
diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/package.json b/nixpkgs/pkgs/applications/networking/powerdns-admin/package.json
index 84f495920744..21119525d434 100644
--- a/nixpkgs/pkgs/applications/networking/powerdns-admin/package.json
+++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/package.json
@@ -2,6 +2,7 @@
   "dependencies": {
     "admin-lte": "2.4.9",
     "bootstrap": "^3.4.1",
+    "bootstrap-datepicker": "^1.8.0",
     "bootstrap-validator": "^0.11.9",
     "datatables.net-plugins": "^1.10.19",
     "icheck": "^1.0.2",
@@ -12,5 +13,5 @@
     "multiselect": "^0.9.12"
   },
   "name": "powerdns-admin-assets",
-  "version": "0.2.4"
+  "version": "0.3.0"
 }
diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/yarndeps.nix b/nixpkgs/pkgs/applications/networking/powerdns-admin/yarndeps.nix
index 7dcd54b53c21..7181d9e741e5 100644
--- a/nixpkgs/pkgs/applications/networking/powerdns-admin/yarndeps.nix
+++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/yarndeps.nix
@@ -38,7 +38,7 @@
       path = fetchurl {
         name = "admin_lte___admin_lte_2.4.9.tgz";
         url  = "https://registry.yarnpkg.com/admin-lte/-/admin-lte-2.4.9.tgz";
-        sha1 = "effc04dbb587ccb7d674d4cf663cc141f925ed73";
+        sha512 = "+u3zt5sWPPT8HmBvRg4F8IGZPaE5wD0K10+IjXoynfe/jEUrMMj+4eA1LGH9fMK6QulmFr1NCtc1Tk+mTgC24A==";
       };
     }
     {
@@ -50,30 +50,6 @@
       };
     }
     {
-      name = "array_filter___array_filter_0.0.1.tgz";
-      path = fetchurl {
-        name = "array_filter___array_filter_0.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz";
-        sha1 = "7da8cf2e26628ed732803581fd21f67cacd2eeec";
-      };
-    }
-    {
-      name = "array_map___array_map_0.0.0.tgz";
-      path = fetchurl {
-        name = "array_map___array_map_0.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz";
-        sha1 = "88a2bab73d1cf7bcd5c1b118a003f66f665fa662";
-      };
-    }
-    {
-      name = "array_reduce___array_reduce_0.0.0.tgz";
-      path = fetchurl {
-        name = "array_reduce___array_reduce_0.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz";
-        sha1 = "173899d3ffd1c7d9383e4479525dbe278cab5f2b";
-      };
-    }
-    {
       name = "asn1.js___asn1.js_4.10.1.tgz";
       path = fetchurl {
         name = "asn1.js___asn1.js_4.10.1.tgz";
@@ -118,7 +94,7 @@
       path = fetchurl {
         name = "bn.js___bn.js_4.12.0.tgz";
         url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz";
-        sha1 = "775b3f278efbb9718eec7361f483fb36fbbfea88";
+        sha512 = "c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==";
       };
     }
     {
@@ -126,7 +102,7 @@
       path = fetchurl {
         name = "bootstrap_colorpicker___bootstrap_colorpicker_2.5.3.tgz";
         url  = "https://registry.yarnpkg.com/bootstrap-colorpicker/-/bootstrap-colorpicker-2.5.3.tgz";
-        sha1 = "b50aff8590fbaa6b5aa63a5624e4213f1659a49d";
+        sha512 = "xdllX8LSMvKULs3b8JrgRXTvyvjkSMHHHVuHjjN5FNMqr6kRe5NPiMHFmeAFjlgDF73MspikudLuEwR28LbzLw==";
       };
     }
     {
@@ -134,7 +110,7 @@
       path = fetchurl {
         name = "bootstrap_datepicker___bootstrap_datepicker_1.8.0.tgz";
         url  = "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.8.0.tgz";
-        sha1 = "c63513931e6f09f16ae9f11b62f32d950df3958e";
+        sha512 = "213St/G8KT3mjs4qu4qwww74KWysMaIeqgq5OhrboZjIjemIpyuxlSo9FNNI5+KzpkkxkRRba+oewiRGV42B1A==";
       };
     }
     {
@@ -174,7 +150,7 @@
       path = fetchurl {
         name = "bootstrap___bootstrap_3.4.1.tgz";
         url  = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.4.1.tgz";
-        sha1 = "c3a347d419e289ad11f4033e3c4132b87c081d72";
+        sha512 = "yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==";
       };
     }
     {
@@ -190,7 +166,7 @@
       path = fetchurl {
         name = "brorand___brorand_1.1.0.tgz";
         url  = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz";
-        sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
+        sha1 = "EsJe/kCkXjwyPrhnWgoM5XsiNx8=";
       };
     }
     {
@@ -298,11 +274,11 @@
       };
     }
     {
-      name = "cached_path_relative___cached_path_relative_1.0.2.tgz";
+      name = "cached_path_relative___cached_path_relative_1.1.0.tgz";
       path = fetchurl {
-        name = "cached_path_relative___cached_path_relative_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz";
-        sha1 = "a13df4196d26776220cc3356eb147a52dba2c6db";
+        name = "cached_path_relative___cached_path_relative_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.1.0.tgz";
+        sha512 = "WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==";
       };
     }
     {
@@ -334,7 +310,7 @@
       path = fetchurl {
         name = "ckeditor___ckeditor_4.11.3.tgz";
         url  = "https://registry.yarnpkg.com/ckeditor/-/ckeditor-4.11.3.tgz";
-        sha1 = "91f66d7ddb5bff3874514fe539779686874ed655";
+        sha512 = "v6G+v16WAcukKuQH6m+trA9RCOQntFM2nxPO/GFiLYsdD/5IbZAZ2n7GwMxQmxDXpx4AixpnMWF+yAE1t9wq6Q==";
       };
     }
     {
@@ -438,7 +414,7 @@
       path = fetchurl {
         name = "datatables.net_bs___datatables.net_bs_1.10.19.tgz";
         url  = "https://registry.yarnpkg.com/datatables.net-bs/-/datatables.net-bs-1.10.19.tgz";
-        sha1 = "08763b4e4d0cef1a427d019dc15e717c7ed67a4d";
+        sha512 = "5gxoI2n+duZP06+4xVC2TtH6zcY369/TRKTZ1DdSgDcDUl4OYQsrXCuaLJmbVzna/5Y5lrMmK7CxgvYgIynICA==";
       };
     }
     {
@@ -446,7 +422,7 @@
       path = fetchurl {
         name = "datatables.net_plugins___datatables.net_plugins_1.10.20.tgz";
         url  = "https://registry.yarnpkg.com/datatables.net-plugins/-/datatables.net-plugins-1.10.20.tgz";
-        sha1 = "c89f6bed3fa7e6605cbeaa35d60f223659e84c8c";
+        sha512 = "rnhNmRHe9UEzvM7gtjBay1QodkWUmxLUhHNbmJMYhhUggjtm+BRSlE0PRilkeUkwckpNWzq+0fPd7/i0fpQgzA==";
       };
     }
     {
@@ -454,7 +430,7 @@
       path = fetchurl {
         name = "datatables.net___datatables.net_1.10.19.tgz";
         url  = "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.19.tgz";
-        sha1 = "97a1ed41c85e62d61040603481b59790a172dd1f";
+        sha512 = "+ljXcI6Pj3PTGy5pesp3E5Dr3x3AV45EZe0o1r0gKENN2gafBKXodVnk2ypKwl2tTmivjxbkiqoWnipTefyBTA==";
       };
     }
     {
@@ -534,7 +510,7 @@
       path = fetchurl {
         name = "elliptic___elliptic_6.5.4.tgz";
         url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz";
-        sha1 = "da37cebd31e79a1367e941b592ed1fbebd58abbb";
+        sha512 = "iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==";
       };
     }
     {
@@ -574,7 +550,7 @@
       path = fetchurl {
         name = "flot___flot_0.8.3.tgz";
         url  = "https://registry.yarnpkg.com/flot/-/flot-0.8.3.tgz";
-        sha1 = "6d9b93c7aa2cfb30dfa1af9c1ec4c94070b1217f";
+        sha512 = "xg2otcTJDvS+ERK+my4wxG/ASq90QURXtoM4LhacCq0jQW2jbyjdttbRNqU2cPykrpMvJ6b2uSp6SAgYAzj9tQ==";
       };
     }
     {
@@ -598,7 +574,7 @@
       path = fetchurl {
         name = "fullcalendar___fullcalendar_3.10.0.tgz";
         url  = "https://registry.yarnpkg.com/fullcalendar/-/fullcalendar-3.10.0.tgz";
-        sha1 = "cc5e87d518fd6550e142816a31dd191664847919";
+        sha512 = "0OtsHhmdYhtFmQwXzyo8VqHzYgamg+zVOoytv5N13gI+iF6CGjevpCi/yBaQs0O4wY3OAp8I688IxdNYe0iAvw==";
       };
     }
     {
@@ -638,7 +614,7 @@
       path = fetchurl {
         name = "hash.js___hash.js_1.1.7.tgz";
         url  = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz";
-        sha1 = "0babca538e8d4ee4a0f8988d68866537a003cf42";
+        sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==";
       };
     }
     {
@@ -646,7 +622,7 @@
       path = fetchurl {
         name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz";
-        sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1";
+        sha1 = "0nRXAQJabHdabFRXk+1QL8DGSaE=";
       };
     }
     {
@@ -694,7 +670,7 @@
       path = fetchurl {
         name = "inherits___inherits_2.0.4.tgz";
         url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
-        sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
+        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
       };
     }
     {
@@ -742,7 +718,7 @@
       path = fetchurl {
         name = "ion_rangeslider___ion_rangeslider_2.3.0.tgz";
         url  = "https://registry.yarnpkg.com/ion-rangeslider/-/ion-rangeslider-2.3.0.tgz";
-        sha1 = "7957ce2e78acfc956b8c43009373da91f743347e";
+        sha512 = "7TtH9/X4Aq/xCzboWxjwlv20gVqR90Ysc3aehMlTuH2/ULaSxpB80hq+yvD1N0FwWbPDtxQpjQrz/iX+LWXKmg==";
       };
     }
     {
@@ -818,11 +794,11 @@
       };
     }
     {
-      name = "jquery_ui___jquery_ui_1.12.1.tgz";
+      name = "jquery_ui___jquery_ui_1.13.0.tgz";
       path = fetchurl {
-        name = "jquery_ui___jquery_ui_1.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.12.1.tgz";
-        sha1 = "bcb4045c8dd0539c134bc1488cdd3e768a7a9e51";
+        name = "jquery_ui___jquery_ui_1.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.13.0.tgz";
+        sha512 = "Osf7ECXNTYHtKBkn9xzbIf9kifNrBhfywFEKxOeB/OVctVmLlouV9mfc2qXCp6uyO4Pn72PXKOnj09qXetopCw==";
       };
     }
     {
@@ -830,15 +806,15 @@
       path = fetchurl {
         name = "jquery.quicksearch___jquery.quicksearch_2.4.0.tgz";
         url  = "https://registry.yarnpkg.com/jquery.quicksearch/-/jquery.quicksearch-2.4.0.tgz";
-        sha1 = "240c9f435e936c63bf8fbba355144ffdddf9ea26";
+        sha512 = "20FJSCW3kTawO6Jvy/6MtUCURvgUZFqRUOAGTxH/VaPlwLG4kba82sKaM3ghTi1DsmSZrM2BvrwLUwNWmwDXiw==";
       };
     }
     {
-      name = "jquery___jquery_3.3.1.tgz";
+      name = "jquery___jquery_3.6.0.tgz";
       path = fetchurl {
-        name = "jquery___jquery_3.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz";
-        sha1 = "958ce29e81c9790f31be7792df5d4d95fc57fbca";
+        name = "jquery___jquery_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz";
+        sha512 = "JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==";
       };
     }
     {
@@ -870,7 +846,7 @@
       path = fetchurl {
         name = "jtimeout___jtimeout_3.1.0.tgz";
         url  = "https://registry.yarnpkg.com/jtimeout/-/jtimeout-3.1.0.tgz";
-        sha1 = "4cd65b28eff8b9f8c61d08889a9ac3abdf5d9893";
+        sha512 = "xA2TlImMGj4c0yAiM9BUq+8aAFVYVYUX2tkcC8u8das9qoZSs13SxhVcfWqI4cHOsv3huj2D0VRNHeVCLO3mVQ==";
       };
     }
     {
@@ -926,7 +902,7 @@
       path = fetchurl {
         name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
-        sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7";
+        sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==";
       };
     }
     {
@@ -934,7 +910,7 @@
       path = fetchurl {
         name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz";
-        sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
+        sha1 = "9sAMHAsIIkblxNmd+4x8CDsrWCo=";
       };
     }
     {
@@ -978,19 +954,11 @@
       };
     }
     {
-      name = "moment___moment_2.24.0.tgz";
-      path = fetchurl {
-        name = "moment___moment_2.24.0.tgz";
-        url  = "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz";
-        sha1 = "0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b";
-      };
-    }
-    {
-      name = "moment___moment_2.22.2.tgz";
+      name = "moment___moment_2.29.2.tgz";
       path = fetchurl {
-        name = "moment___moment_2.22.2.tgz";
-        url  = "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz";
-        sha1 = "3c257f9839fc0e93ff53149632239eb90783ff66";
+        name = "moment___moment_2.29.2.tgz";
+        url  = "https://registry.yarnpkg.com/moment/-/moment-2.29.2.tgz";
+        sha512 = "UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==";
       };
     }
     {
@@ -1074,11 +1042,11 @@
       };
     }
     {
-      name = "path_parse___path_parse_1.0.5.tgz";
+      name = "path_parse___path_parse_1.0.7.tgz";
       path = fetchurl {
-        name = "path_parse___path_parse_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz";
-        sha1 = "3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1";
+        name = "path_parse___path_parse_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz";
+        sha512 = "LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==";
       };
     }
     {
@@ -1250,11 +1218,11 @@
       };
     }
     {
-      name = "shell_quote___shell_quote_1.6.1.tgz";
+      name = "shell_quote___shell_quote_1.7.3.tgz";
       path = fetchurl {
-        name = "shell_quote___shell_quote_1.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz";
-        sha1 = "f4781949cce402697127430ea3b3c5476f481767";
+        name = "shell_quote___shell_quote_1.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz";
+        sha512 = "Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==";
       };
     }
     {
diff --git a/nixpkgs/pkgs/applications/networking/protocol/default.nix b/nixpkgs/pkgs/applications/networking/protocol/default.nix
index 6690a75485bd..535cc3aa3171 100644
--- a/nixpkgs/pkgs/applications/networking/protocol/default.nix
+++ b/nixpkgs/pkgs/applications/networking/protocol/default.nix
@@ -1,8 +1,12 @@
-{ lib, buildPythonApplication, fetchFromGitHub }:
+{ lib
+, python3
+, fetchFromGitHub
+}:
 
-buildPythonApplication {
-  pname = "protocol-unstable";
-  version = "2019-03-28";
+python3.pkgs.buildPythonApplication rec {
+  pname = "protocol";
+  version = "unstable-2019-03-28";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "luismartingarcia";
@@ -11,10 +15,15 @@ buildPythonApplication {
     sha256 = "13l10jhf4vghanmhh3pn91b2jdciispxy0qadz4n08blp85qn9cm";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "scripts=['protocol', 'constants.py', 'specs.py']" "scripts=['protocol'], py_modules=['constants', 'specs']"
+  '';
+
   meta = with lib; {
-    description = "An ASCII Header Generator for Network Protocols";
+    description = "ASCII Header Generator for Network Protocols";
     homepage = "https://github.com/luismartingarcia/protocol";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ teto ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix b/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix
index d56197c31347..a7954bcc575e 100644
--- a/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix
+++ b/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "protonmail-bridge";
-  version = "2.1.1";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "ProtonMail";
     repo = "proton-bridge";
     rev = "br-${version}";
-    sha256 = "sha256-8oDA1QU5ZjtQZoCPVDa1U3P2KLzXtegtOxm6rNh+Ahk=";
+    sha256 = "sha256-+XeNhjwtH1T5p8iydMQk22nXztyamSn6yY56/qqvkmk=";
   };
 
-  vendorSha256 = "sha256-n+WwkNHT+/CrC4vWIVHqYs2a8Qe/LNc0L3uoPZWDTts=";
+  vendorSha256 = "sha256-YTGjiteYfuRkDC4M9c/JKqURq4WiC5n9pFRqRVYhyxU=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/networking/protonvpn-cli/2.nix b/nixpkgs/pkgs/applications/networking/protonvpn-cli/2.nix
new file mode 100644
index 000000000000..c3e9bd2ac215
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/protonvpn-cli/2.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, pythonOlder
+, requests
+, docopt
+, pythondialog
+, jinja2
+, distro
+, dialog
+, iptables
+, openvpn }:
+
+buildPythonApplication rec {
+  pname = "protonvpn-cli_2";
+  version = "2.2.11";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "Rafficer";
+    repo = "linux-cli-community";
+    # There is a tag and branch with the same name
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-CWQpisJPBXbf+d5tCGuxfSQQZBeF36WFF4b6OSUn3GY=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    docopt
+    pythondialog
+    jinja2
+    distro
+    dialog
+    openvpn
+    iptables
+  ];
+
+  # No tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Linux command-line client for ProtonVPN using Openvpn";
+    homepage = "https://github.com/Rafficer/linux-cli-community";
+    maintainers = with maintainers; [ jtcoolen jefflabonte shamilton ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    mainProgram = "protonvpn";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix b/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix
index e46909d2a7c3..f247b5d14824 100644
--- a/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix
@@ -1,37 +1,41 @@
-{ lib, fetchFromGitHub, python3Packages, openvpn, dialog, iptables }:
+{ lib
+, buildPythonApplication
+, pythonOlder
+, fetchFromGitHub
+, protonvpn-nm-lib
+, pythondialog
+, dialog
+}:
 
-python3Packages.buildPythonApplication rec {
-  pname = "protonvpn-linux-cli";
-  version = "2.2.6";
+buildPythonApplication rec {
+  pname = "protonvpn-cli";
+  version = "3.12.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "protonvpn";
     repo = "linux-cli";
-    rev = "v${version}";
-    sha256 = "0y7v9ikrmy5dbjlpbpacp08gy838i8z54m8m4ps7ldk1j6kyia3n";
+    rev = version;
+    sha256 = "sha256-z0ewAqf8hjyExqBN8KBsDwJ+SA/pIBYZhKtXF9M65HE=";
   };
 
-  propagatedBuildInputs = (with python3Packages; [
-      requests
-      docopt
-      setuptools
-      jinja2
-      pythondialog
-    ]) ++ [
-      dialog
-      openvpn
-      iptables
-    ];
+  propagatedBuildInputs = [
+    protonvpn-nm-lib
+    pythondialog
+    dialog
+  ];
 
-  # No tests
+  # Project has a dummy test
   doCheck = false;
 
   meta = with lib; {
     description = "Linux command-line client for ProtonVPN";
     homepage = "https://github.com/protonvpn/linux-cli";
-    maintainers = with maintainers; [ jtcoolen jefflabonte shamilton ];
+    maintainers = with maintainers; [ wolfangaukang ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    mainProgram = "protonvpn";
+    mainProgram = "protonvpn-cli";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix b/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix
index ecfde0a39c20..ef128932f7c0 100644
--- a/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix
+++ b/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix
@@ -2,9 +2,11 @@
 , buildPythonApplication
 , fetchFromGitHub
 , wrapGAppsHook
+, gdk-pixbuf
+, glib-networking
 , gobject-introspection
 , imagemagick
-, networkmanager
+, librsvg
 , pango
 , webkitgtk
 # Python libs
@@ -16,22 +18,24 @@
 
 buildPythonApplication rec {
   pname = "protonvpn-gui";
-  version = "1.7.0";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "ProtonVPN";
     repo = "linux-app";
-    rev = version;
-    sha256 = "sha256-uzooFQBq2mhqTBr/cgea5cVQ889P70sgSk2vjXBQEfw=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-6IRkJKtdQQ9Yixb9CkT3tGNY0MYFZyvz1/6buZo5eYU=";
   };
 
   nativeBuildInputs = [
+    gdk-pixbuf
     gobject-introspection
     imagemagick
     wrapGAppsHook
   ];
 
   propagatedBuildInputs = [
+    glib-networking # needed for the login captcha
     protonvpn-nm-lib
     psutil
   ];
@@ -39,7 +43,7 @@ buildPythonApplication rec {
   buildInputs = [
     # To avoid enabling strictDeps = false (#56943)
     gobject-introspection
-    networkmanager
+    librsvg
     pango
     webkitgtk
   ] ++ lib.optionals withIndicator [ libappindicator-gtk3 ];
diff --git a/nixpkgs/pkgs/applications/networking/r53-ddns/default.nix b/nixpkgs/pkgs/applications/networking/r53-ddns/default.nix
new file mode 100644
index 000000000000..321d1268caac
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/r53-ddns/default.nix
@@ -0,0 +1,22 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "r53-ddns";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "fleaz";
+    repo = "r53-ddns";
+    rev = "v${version}";
+    sha256 = "sha256-KJAPhSGaC3upWLfo2eeSD3Vit9Blmbol7s8y3f849N4=";
+  };
+
+  vendorSha256 = "sha256-KkyMd94cejWkgg/RJudy1lm/M3lsEJXFGqVTzGIX3qM=";
+
+  meta = with lib; {
+    license = licenses.mit;
+    homepage = "https://github.com/fleaz/r53-ddns";
+    description = "A DIY DynDNS tool based on Route53";
+    maintainers = with maintainers; [ fleaz ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
index 54d7c5c6813a..69276c229b3c 100644
--- a/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
@@ -18,14 +18,14 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "anydesk";
-  version = "6.1.1";
+  version = "6.2.0";
 
   src = fetchurl {
     urls = [
       "https://download.anydesk.com/linux/${pname}-${version}-amd64.tar.gz"
       "https://download.anydesk.com/linux/generic-linux/${pname}-${version}-amd64.tar.gz"
     ];
-    sha256 = "1ai58fsivb8al1279bayl800qavy0kfj40rjhf87g902ap3p4bhh";
+    sha256 = "k85nQH2FWyEXDgB+Pd4yStfNCjkiIGE2vA/YTXLaK4o=";
   };
 
   passthru = {
@@ -85,6 +85,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     inherit description;
     homepage = "https://www.anydesk.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ shyim ];
diff --git a/nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix b/nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix
index 48b44656ff0a..71a3080a4951 100644
--- a/nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix
@@ -1,19 +1,19 @@
 { stdenv, lib
 , makeWrapper, dpkg, fetchurl, autoPatchelfHook
-, curl, libkrb5, lttng-ust, libpulseaudio, gtk3, openssl_1_1, icu, webkitgtk, librsvg, gdk-pixbuf, libsoup, glib-networking
+, curl, libkrb5, lttng-ust, libpulseaudio, gtk3, openssl_1_1, icu70, webkitgtk, librsvg, gdk-pixbuf, libsoup, glib-networking, graphicsmagick_q16
 }:
 
 stdenv.mkDerivation rec {
   pname = "aws-workspaces";
-  version = "4.0.1.1302";
+  version = "4.1.0.1523";
 
   src = fetchurl {
     # ref https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/Packages
     urls = [
       "https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/workspacesclient_${version}_amd64.deb"
-      "https://web.archive.org/web/20210921220718/https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/workspacesclient_${version}_amd64.deb"
+      "https://web.archive.org/web/20220709124028/https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/workspacesclient_${version}_amd64.deb"
     ];
-    sha256 = "208e67a544be5be7ff25218d68b4eb2ea9e65abfed444c99a0f7a6738d69ab9a";
+    sha256 = "sha256-nOrIOPZ0yOBGOQgNQxnm1cVR9NJ+BTEC12UB7Ux1yuk=";
   };
 
   nativeBuildInputs = [
@@ -33,12 +33,13 @@ stdenv.mkDerivation rec {
     libpulseaudio
     gtk3
     openssl_1_1.out
-    icu
+    icu70
     webkitgtk
     librsvg
     gdk-pixbuf
     libsoup
     glib-networking
+    graphicsmagick_q16
   ];
 
   unpackPhase = ''
@@ -47,6 +48,7 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     patchelf --replace-needed liblttng-ust.so.0 liblttng-ust.so $out/lib/libcoreclrtraceptprovider.so
+    patchelf --replace-needed libGraphicsMagick++-Q16.so.12 libGraphicsMagick++.so.12 $out/usr/lib/x86_64-linux-gnu/pcoip-client/vchan_plugins/libvchan-plugin-clipboard.so
   '';
 
   installPhase = ''
@@ -65,6 +67,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Client for Amazon WorkSpaces, a managed, secure Desktop-as-a-Service (DaaS) solution";
     homepage = "https://clients.amazonworkspaces.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ]; # TODO Mac support
     maintainers = [ maintainers.mausch ];
diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
index ac0030961183..5051d2308f02 100644
--- a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
@@ -14,7 +14,7 @@ let
   openssl' = symlinkJoin {
     name = "openssl-backwards-compat";
     nativeBuildInputs = [ makeWrapper ];
-    paths = [ openssl.out ];
+    paths = [ (lib.getLib openssl) ];
     postBuild = ''
       ln -sf $out/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
       ln -sf $out/lib/libssl.so $out/lib/libssl.so.1.0.0
@@ -206,8 +206,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     license = licenses.unfree;
     description = "Citrix Workspace";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = platforms.linux;
-    maintainers = with maintainers; [ pmenke ];
+    maintainers = with maintainers; [ pmenke michaeladler ];
     inherit homepage;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix
index 12bda3f98ad4..9f4fa9ce751a 100644
--- a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix
@@ -13,61 +13,6 @@ let
   #
   # The latest versions can be found at https://www.citrix.com/downloads/workspace-app/linux/
   supportedVersions = lib.mapAttrs mkVersionInfo {
-    "20.04.0" = {
-      major     = "20";
-      minor     = "04";
-      patch     = "0";
-      x64hash   = "E923592216F9541173846F932784E6C062CB09C9E8858219C7489607BF82A0FB";
-      x86hash   = "A2E2E1882723DA6796E68916B3BB2B44DD575A83DEB03CA90A262F6C81B1A53F";
-      x64suffix = "21";
-      x86suffix = "21";
-      homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2004.html";
-    };
-
-    "20.06.0" = {
-      major     = "20";
-      minor     = "06";
-      patch     = "0";
-      x64hash   = "1kpfcfg95mpprlca6cccnjlsqbj3xvv77cn3fc5msd304nsi9x1v";
-      x86hash   = "1di29hrimbw3myjnf2nn26a14klidhdwvjqla6yxhwd3s6lil194";
-      x64suffix = "15";
-      x86suffix = "15";
-      homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2006.html";
-    };
-
-    "20.09.0" = {
-      major     = "20";
-      minor     = "9";
-      patch     = "0";
-      x64hash   = "15gjq1vk1y76c39p72xnam9h9rnr0632i4n11l6xbjnfnad8d4pr";
-      x86hash   = "1b4gdmnnpa61ydiv2fnmap8cnfhskrq6swcs6i1nqrp5zvvkqrv4";
-      x64suffix = "15";
-      x86suffix = "15";
-      homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2009.html";
-    };
-
-    "20.10.0" = {
-      major     = "20";
-      minor     = "10";
-      patch     = "0";
-      x64hash   = "13g7r92mhwqwqkm6a4k4yn232ighkmxifs7j8wdi1yva0dvklqdf";
-      x86hash   = "04cr2da25v8x098ccyjwa47d4krk3jpldqkyf4kk2j3hwzbqh9yx";
-      x64suffix = "6";
-      x86suffix = "6";
-      homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2010.html";
-    };
-
-    "20.12.0" = {
-      major     = "20";
-      minor     = "12";
-      patch     = "0";
-      x64hash   = "1268nriqjp27nxqqi4dvkv8r01yj3bhglxv21xd185761da2mzry";
-      x86hash   = "0f982d5y9k4hscqfmqpfs277cqw1pvp191ybvg5p8rxk12fh67vf";
-      x64suffix = "12";
-      x86suffix = "12";
-      homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2012.html";
-    };
-
     "21.01.0" = {
       major     = "21";
       minor     = "1";
@@ -120,7 +65,7 @@ let
       x86hash   = "c646c52889e88aa0bb051070076763d5407f21fb6ad6dfcb0fe635ac01180c51";
       x64suffix = "25";
       x86suffix = "25";
-      homepage  = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
+      homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2109.html";
     };
 
     "21.12.0" = {
@@ -131,6 +76,28 @@ let
       x86hash   = "3746cdbe26727f7f6fb85fbe5f3e6df0322d79bb66e3a70158b22cb4f6b6b292";
       x64suffix = "18";
       x86suffix = "18";
+      homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2112.html";
+    };
+
+    "22.05.0" = {
+      major     = "22";
+      minor     = "5";
+      patch     = "0";
+      x64hash   = "49786fd3b5361b1f42b7bb0e36572a209e95acb1335737da5216345b6420f053";
+      x86hash   = "f2dc1fd64e5314b62ba87f384958c2bbd48b06b55bed10345cddb05fdc8cffa1";
+      x64suffix = "16";
+      x86suffix = "16";
+      homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest2.html";
+    };
+
+    "22.07.0" = {
+      major     = "22";
+      minor     = "7";
+      patch     = "0";
+      x64hash   = "a17e4478ad3eac4b0cbc9fb7be0dba2758393ba2d3b6a82b3074ff053586c5f5";
+      x86hash   = "f08d9c83a1af7873cbb864b26ec24d731fdc2e5045adee982eeef4083982c5bc";
+      x64suffix = "20";
+      x86suffix = "20";
       homepage  = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
     };
   };
diff --git a/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
index 852fcf68987e..c769b7de6c86 100644
--- a/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
@@ -52,13 +52,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "freerdp";
-  version = "2.6.1";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     owner = "FreeRDP";
     repo = "FreeRDP";
     rev = version;
-    sha256 = "sha256-+yKdB/glNf74drv9EvBwVMWrqr5ADBkSJVVDH+UKb2U=";
+    sha256 = "sha256-bVq/99jMkxTjckMjWoK4pBa0jD/AYezgKUPJziNSqI0=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/networking/remote/nice-dcv-client/default.nix b/nixpkgs/pkgs/applications/networking/remote/nice-dcv-client/default.nix
index 20b850328875..23b2727d695d 100644
--- a/nixpkgs/pkgs/applications/networking/remote/nice-dcv-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/nice-dcv-client/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "High-performance remote display protocol";
     homepage = "https://aws.amazon.com/hpc/dcv/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ rmcgibbo ];
diff --git a/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix b/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
index 9721c6b9ba43..20496f38e868 100644
--- a/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitLab, cmake, ninja, pkg-config, wrapGAppsHook
-, glib, gtk3, gettext, libxkbfile, libX11
+, glib, gtk3, gettext, libxkbfile, libX11, python3
 , freerdp, libssh, libgcrypt, gnutls, vte
 , pcre2, libdbusmenu-gtk3, libappindicator-gtk3
 , libvncserver, libpthreadstubs, libXdmcp, libxkbcommon
@@ -15,13 +15,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "remmina";
-  version = "1.4.25";
+  version = "1.4.27";
 
   src = fetchFromGitLab {
     owner  = "Remmina";
     repo   = "Remmina";
     rev    = "v${version}";
-    sha256 = "sha256-1val/KCClEtw1prVWuXJe8DmmQ7e7oqwAfAnT9G9iHI=";
+    sha256 = "sha256-WIppHK4ucvKqgXB8VPy9ldbw22ZuDaEn1gNaLpyb4jA=";
   };
 
   nativeBuildInputs = [ cmake ninja pkg-config wrapGAppsHook ];
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     libvncserver libpthreadstubs libXdmcp libxkbcommon
     libsoup spice-protocol spice-gtk libepoxy at-spi2-core
     openssl gnome.adwaita-icon-theme json-glib libsodium webkitgtk
-    harfbuzz
+    harfbuzz python3
   ] ++ optionals withLibsecret [ libsecret ]
     ++ optionals withVte [ vte ];
 
diff --git a/nixpkgs/pkgs/applications/networking/remote/rustdesk/cargo.patch b/nixpkgs/pkgs/applications/networking/remote/rustdesk/cargo.patch
index ecf2f4af5beb..e2124f261713 100644
--- a/nixpkgs/pkgs/applications/networking/remote/rustdesk/cargo.patch
+++ b/nixpkgs/pkgs/applications/networking/remote/rustdesk/cargo.patch
@@ -1,26 +1,24 @@
 diff --git a/Cargo.lock b/Cargo.lock
-index c3e139e..b77d8bd 100644
+index fb17c7e..ef157e5 100644
 --- a/Cargo.lock
 +++ b/Cargo.lock
-@@ -1761,11 +1761,11 @@ dependencies = [
- 
+@@ -2332,10 +2332,10 @@ dependencies = [
  [[package]]
  name = "magnum-opus"
--version = "0.3.4-2"
--source = "git+https://github.com/open-trade/magnum-opus#ad0836164abf4a4df69009b1ee08eabe3a13b33f"
-+version = "0.4.0"
+ version = "0.4.0"
+-source = "git+https://github.com/open-trade/magnum-opus#3c3d0b86ae95c84930bebffe4bcb03b3bd83342b"
 +source = "git+https://github.com/TheRadioGuy/magnum-opus#171e1d021004626f7444d1e39b98f50bc3cb2604"
  dependencies = [
-- "bindgen 0.59.1",
+- "bindgen",
 - "target_build_utils",
 + "libc",
 + "opusic-sys",
  ]
  
  [[package]]
-@@ -2188,6 +2188,16 @@ version = "0.1.4"
+@@ -2796,6 +2796,16 @@ version = "0.1.5"
  source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
+ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
  
 +[[package]]
 +name = "opusic-sys"
@@ -33,18 +31,18 @@ index c3e139e..b77d8bd 100644
 +]
 +
  [[package]]
- name = "parity-tokio-ipc"
- version = "0.7.2"
+ name = "os_str_bytes"
+ version = "6.0.0"
 diff --git a/Cargo.toml b/Cargo.toml
-index 75504a0..43e1624 100644
+index 1b715bd..960e8da 100644
 --- a/Cargo.toml
 +++ b/Cargo.toml
-@@ -32,7 +32,7 @@ libc = "0.2"
+@@ -35,7 +35,7 @@ libc = "0.2"
  parity-tokio-ipc = { git = "https://github.com/open-trade/parity-tokio-ipc" }
- flexi_logger = "0.17"
+ flexi_logger = { version = "0.22", features = ["async", "use_chrono_for_offset"] }
  runas = "0.2"
 -magnum-opus = { git = "https://github.com/open-trade/magnum-opus" }
 +magnum-opus = { git = "https://github.com/TheRadioGuy/magnum-opus" }
  dasp = { version = "0.11", features = ["signal", "interpolate-linear", "interpolate"], optional = true }
- rubato = { version = "0.8", optional = true }
+ rubato = { version = "0.12", optional = true }
  samplerate = { version = "0.2", optional = true }
diff --git a/nixpkgs/pkgs/applications/networking/remote/rustdesk/default.nix b/nixpkgs/pkgs/applications/networking/remote/rustdesk/default.nix
index 677629dbcfba..341cc22976a9 100644
--- a/nixpkgs/pkgs/applications/networking/remote/rustdesk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/rustdesk/default.nix
@@ -24,20 +24,21 @@
 , libsciter
 , llvmPackages
 , wrapGAppsHook
+, writeText
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rustdesk";
-  version = "1.1.8";
+  version = "1.1.9";
 
   src = fetchFromGitHub {
     owner = "rustdesk";
     repo = "rustdesk";
-    rev = "0325500ebf331b66220cec6e9078afb83b0e98a7";
-    sha256 = "sha256-xglyyoiAjJx3y8+A2OYHZffjqjDkcTjIluPA/J42VVg=";
+    rev = version;
+    sha256 = "sha256-IlrfqwNyaSHE9Ct0mn7MUxEg7p1Ku34eOMYelEAYFW8=";
   };
 
-  cargoSha256 = "sha256-4MQKa54f3X7IHGd29H6RY7v2toeHvTHInIpgXjdotjw=";
+  cargoSha256 = "sha256-1OMWEk+DerltF7kwdo4d04rbgIFLHBRq3vZaL7jtrdE=";
 
   LIBCLANG_PATH="${llvmPackages.libclang.lib}/lib";
 
@@ -51,10 +52,29 @@ rustPlatform.buildRustPackage rec {
   # properly.
   postUnpack = let
     vcpkg_target = "x64-linux";
+
+    updates_vcpkg_file = writeText "update_vcpkg_rustdesk"
+    ''
+    Package : libyuv
+    Architecture : ${vcpkg_target}
+    Version : 1.0
+    Status : is installed
+
+    Package : libvpx
+    Architecture : ${vcpkg_target}
+    Version : 1.0
+    Status : is installed
+    '';
   in ''
     export VCPKG_ROOT="$TMP/vcpkg";
 
+    mkdir -p $VCPKG_ROOT/.vcpkg-root
     mkdir -p $VCPKG_ROOT/installed/${vcpkg_target}/lib
+    mkdir -p $VCPKG_ROOT/installed/vcpkg/updates
+    ln -s ${updates_vcpkg_file} $VCPKG_ROOT/installed/vcpkg/status
+    mkdir -p $VCPKG_ROOT/installed/vcpkg/info
+    touch $VCPKG_ROOT/installed/vcpkg/info/libyuv_1.0_${vcpkg_target}.list
+    touch $VCPKG_ROOT/installed/vcpkg/info/libvpx_1.0_${vcpkg_target}.list
 
     ln -s ${libvpx.out}/lib/* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
     ln -s ${libyuv.out}/lib/* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
@@ -86,7 +106,7 @@ rustPlatform.buildRustPackage rec {
     ln -s ${libsciter}/lib/libsciter-gtk.so $out/lib/rustdesk
 
     makeWrapper $out/lib/rustdesk/rustdesk $out/bin/rustdesk \
-      --run "cd $out/share"
+      --chdir "$out/share"
 
     cp -a $src/src/ui $out/share/src
 
diff --git a/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix b/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
index 00289e5c6286..44ce12aeeb48 100644
--- a/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -6,11 +6,13 @@
 
 mkDerivation rec {
   pname = "teamviewer";
-  version = "15.26.4";
+  # teamviewer itself has not development files but the dev output removes propagated other dev outputs from runtime
+  outputs = [ "out" "dev" ];
+  version = "15.29.4";
 
   src = fetchurl {
     url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb";
-    sha256 = "sha256-2CprtdKHHTLxS8jA4bRVoHvj/8zyVUV0aGPzU7mNxM8=";
+    sha256 = "sha256-jkFqOtU+D62S7QmNPvz58Z8wJ79lkN11pWQrtNdD+Uk=";
   };
 
   unpackPhase = ''
@@ -30,7 +32,7 @@ mkDerivation rec {
       $out/share/teamviewer/config \
       $out/share/teamviewer/tv_bin/RTlib \
       $out/share/teamviewer/tv_bin/xdg-utils \
-      $out/share/teamviewer/tv_bin/script/{teamviewer_setup,teamviewerd.sysv,teamviewerd.service,teamviewerd.*.conf,libdepend,tv-delayed-start.sh}
+      $out/share/teamviewer/tv_bin/script/{teamviewer_setup,teamviewerd.sysv,teamviewerd.service,teamviewerd.*.conf,tv-delayed-start.sh}
 
     ln -s $out/share/teamviewer/tv_bin/script/teamviewer $out/bin
     ln -s $out/share/teamviewer/tv_bin/teamviewerd $out/bin
@@ -94,9 +96,10 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.teamviewer.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     description = "Desktop sharing application, providing remote support and online meetings";
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ jagajaga dasuxullebt jraygauthier ];
+    maintainers = with maintainers; [ jagajaga jraygauthier ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix b/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
index f114f8a3091b..fa082b745a29 100644
--- a/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
@@ -9,7 +9,7 @@
 , configText ? ""
 }:
 let
-  version = "2111";
+  version = "2203";
 
   sysArch =
     if stdenv.hostPlatform.system == "x86_64-linux" then "x64"
@@ -18,7 +18,9 @@ let
 
   # For USB support, ensure that /var/run/vmware/<YOUR-UID>
   # exists and is owned by you. Then run vmware-usbarbitrator as root.
-  bins = [ "vmware-view" "vmware-usbarbitrator" ];
+  bins = [ "vmware-view" "vmware-view-legacy" "vmware-usbarbitrator" ];
+
+  mainProgram = "vmware-view-legacy";
 
   # This forces the default GTK theme (Adwaita) because Horizon is prone to
   # UI usability issues when using non-default themes, such as Adwaita-dark.
@@ -30,11 +32,11 @@ let
   '';
 
   vmwareHorizonClientFiles = stdenv.mkDerivation {
-    name = "vmwareHorizonClientFiles";
+    pname = "vmware-horizon-files";
     inherit version;
     src = fetchurl {
-      url = "https://download3.vmware.com/software/view/viewclients/CART22FH2/VMware-Horizon-Client-Linux-2111-8.4.0-18957622.tar.gz";
-      sha256 = "2f79d2d8d34e6f85a5d21a3350618c4763d60455e7d68647ea40715eaff486f7";
+      url = "https://download3.vmware.com/software/CART23FQ1_LIN_2203_TARBALL/VMware-Horizon-Client-Linux-2203-8.5.0-19586897.tar.gz";
+      sha256 = "27429dddaeedfa8b701d7aa7868f60ad58efa42687d7f27e84375fda9f5cd137";
     };
     nativeBuildInputs = [ makeWrapper ];
     installPhase = ''
@@ -104,7 +106,7 @@ let
     name = "vmware-view";
     desktopName = "VMware Horizon Client";
     icon = "${vmwareHorizonClientFiles}/share/icons/vmware-view.png";
-    exec = "${vmwareFHSUserEnv "vmware-view"}/bin/vmware-view %u";
+    exec = "${vmwareFHSUserEnv mainProgram}/bin/${mainProgram} %u";
     mimeTypes = [ "x-scheme-handler/vmware-view" ];
   };
 
@@ -131,7 +133,7 @@ stdenv.mkDerivation {
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
-    mainProgram = "vmware-view";
+    inherit mainProgram;
     description = "Allows you to connect to your VMware Horizon virtual desktop";
     homepage = "https://www.vmware.com/go/viewclients";
     license = licenses.unfree;
diff --git a/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix b/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix
index 74dc8564b0b1..7a1dd8be40d5 100644
--- a/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "waypipe";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mstoeckl";
     repo = "waypipe";
     rev = "v${version}";
-    sha256 = "02q8l1qaahmd41h6v3r46akh7xlqz7fpwwsy15qww4jdvypg6vg4";
+    sha256 = "sha256-f1XEcDMy4skddtbZFFhCF4xg6zQahOLiGcYiJPy2SHs=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix b/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix
index 21244a1859b1..e8618c4d389a 100644
--- a/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix
@@ -1,20 +1,20 @@
 { lib, stdenv, fetchFromGitHub, meson, pkg-config, ninja, scdoc, wayland-scanner
-, pixman, libxkbcommon, wayland, neatvnc, libdrm, libX11, aml, pam
+, pixman, libxkbcommon, wayland, neatvnc, libdrm, libX11, aml, pam, mesa
 }:
 
 stdenv.mkDerivation rec {
   pname = "wayvnc";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "any1";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0cws9jfnmxqycmlyllvvqzw4jsbrwwk10v9gy8wifv3c61rwgdkk";
+    sha256 = "sha256-/OKkQKt43lR0UCmQeSDMl1hXh03k+dX3UweigMWEUx4=";
   };
 
   nativeBuildInputs = [ meson pkg-config ninja scdoc wayland-scanner ];
-  buildInputs = [ pixman libxkbcommon wayland neatvnc libdrm libX11 aml pam ];
+  buildInputs = [ pixman libxkbcommon wayland neatvnc libdrm libX11 aml pam mesa ];
 
   meta = with lib; {
     description = "A VNC server for wlroots based Wayland compositors";
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/any1/wayvnc/releases/tag/v${version}";
     license = licenses.isc;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ nickcao ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix b/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix
index b8677a2683c0..feb8252c7eda 100644
--- a/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix
@@ -98,7 +98,7 @@ let
       description = "An open source RDP server";
       homepage = "https://github.com/neutrinolabs/xrdp";
       license = licenses.asl20;
-      maintainers = [ maintainers.volth ];
+      maintainers = [ ];
       platforms = platforms.linux;
     };
   };
diff --git a/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix b/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix
index fdd4ebdbd92f..35b4fa3aef43 100644
--- a/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix
+++ b/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix
@@ -1,25 +1,25 @@
 { lib, stdenv, fetchurl, ... }:
 
-let
-  arch = {
-    x86_64-linux = "x64";
-    i686-linux = "i386";
-    aarch64-linux = "arm64";
-  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
-  libPath = lib.makeLibraryPath [ stdenv.cc.libc ];
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "resilio-sync";
-  version = "2.7.2";
+  version = "2.7.3";
 
-  src = fetchurl {
-    url = "https://download-cdn.resilio.com/${version}/linux-${arch}/resilio-sync_${arch}.tar.gz";
-    sha256 = {
-      x86_64-linux = "0gar5lzv1v4yqmypwqsjnfb64vffzn8mw9vnjr733fgf1pmr57hf";
-      i686-linux   = "1bws7r86h1vysjkhyvp2zk8yvxazmlczvhjlcayldskwq48iyv6w";
-      aarch64-linux = "0j8wk5cf8bcaaqxi8gnqf1mpv8nyfjyr4ibls7jnn2biqq767af2";
-    }.${stdenv.hostPlatform.system};
-  };
+  src = {
+    x86_64-linux = fetchurl {
+      url = "https://download-cdn.resilio.com/${version}/linux-x64/resilio-sync_x64.tar.gz";
+      sha256 = "sha256-DYQs9KofHkvtlsRQHRLwQHoHwSZkr40Ih0RVAw2xv3M=";
+    };
+
+    i686-linux = fetchurl {
+      url = "https://download-cdn.resilio.com/${version}/linux-i386/resilio-sync_i386.tar.gz";
+      sha256 = "sha256-PFKVBs0KthG4tuvooHkAciPhNQP0K8oi2LyoRUs5V7I=";
+    };
+
+    aarch64-linux = fetchurl {
+      url = "https://download-cdn.resilio.com/${version}/linux-arm64/resilio-sync_arm64.tar.gz";
+      sha256 = "sha256-o2DlYOBTkFhQMEDJySlVSNlVqLNbBzacyv2oTwxrXto=";
+    };
+  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   dontStrip = true; # Don't strip, otherwise patching the rpaths breaks
   sourceRoot = ".";
@@ -28,12 +28,13 @@ in stdenv.mkDerivation rec {
     install -D rslsync "$out/bin/rslsync"
     patchelf \
       --interpreter "$(< $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath ${libPath} "$out/bin/rslsync"
+      --set-rpath ${lib.makeLibraryPath [ stdenv.cc.libc ]} "$out/bin/rslsync"
   '';
 
   meta = with lib; {
     description = "Automatically sync files via secure, distributed technology";
     homepage    = "https://www.resilio.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.unfreeRedistributable;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ domenkozar thoughtpolice cwoac ];
diff --git a/nixpkgs/pkgs/applications/networking/scaleft/default.nix b/nixpkgs/pkgs/applications/networking/scaleft/default.nix
index 6dca196948d7..1f340a703611 100644
--- a/nixpkgs/pkgs/applications/networking/scaleft/default.nix
+++ b/nixpkgs/pkgs/applications/networking/scaleft/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "ScaleFT provides Zero Trust software which you can use to secure your internal servers and services";
     homepage = "https://www.scaleft.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ jloyet ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/seafile-client/default.nix b/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
index f2cd1282fc6e..adda284a6b8c 100644
--- a/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
@@ -4,13 +4,15 @@
 
 mkDerivation rec {
   pname = "seafile-client";
-  version = "8.0.6";
+  version = "8.0.7";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile-client";
-    rev = "v${version}";
-    sha256 = "sha256-pImSrQ63AS1hi9CUvFAR91ZHgPCJB0ZOAA0fEZ24O8o=";
+    # Tag v8.0.7 used to point to this commit, but was re-tagged later to a state
+    # that fails to link properly
+    rev = "8b96abf64e6aa19e3beeff6b322bcd6d28120bdd";
+    sha256 = "00wfr7dvbyl7pg1xgssgz8a94c7c4n5r9266lhy9qcbz456hdcgj";
   };
 
   nativeBuildInputs = [ pkg-config cmake ];
diff --git a/nixpkgs/pkgs/applications/networking/seahub/default.nix b/nixpkgs/pkgs/applications/networking/seahub/default.nix
index 8c26b7290836..bf236e179ccd 100644
--- a/nixpkgs/pkgs/applications/networking/seahub/default.nix
+++ b/nixpkgs/pkgs/applications/networking/seahub/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchFromGitHub, python3, makeWrapper }:
+{ lib
+, fetchFromGitHub
+, python3
+, makeWrapper
+, nixosTests
+}:
 let
   # Seahub 8.x.x does not support django-webpack-loader >=1.x.x
   python = python3.override {
@@ -15,23 +20,27 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "seahub";
-  version = "8.0.8";
+  version = "9.0.6";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seahub";
-    rev = "c51346155b2f31e038c3a2a12e69dcc6665502e2"; # using a fixed revision because upstream may re-tag releases :/
-    sha256 = "0dagiifxllfk73xdzfw2g378jccpzplhdrmkwbaakbhgbvvkg92k";
+    rev = "876b7ba9b680fc668e89706aff535593772ae921"; # using a fixed revision because upstream may re-tag releases :/
+    sha256 = "sha256-GHvJlm5DVt3IVJnqJu8YobNNqbjdPd08s4DCdQQRQds=";
   };
 
   dontBuild = true;
+
   doCheck = false; # disabled because it requires a ccnet environment
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [
+    makeWrapper
+  ];
 
   propagatedBuildInputs = with python.pkgs; [
     django
     future
+    django-compressor
     django-statici18n
     django-webpack-loader
     django-simple-captcha
@@ -40,11 +49,11 @@ python.pkgs.buildPythonApplication rec {
     mysqlclient
     pillow
     python-dateutil
-    django_compressor
     djangorestframework
     openpyxl
     requests
-    requests_oauthlib
+    requests-oauthlib
+    chardet
     pyjwt
     pycryptodome
     qrcode
@@ -61,14 +70,17 @@ python.pkgs.buildPythonApplication rec {
 
   passthru = {
     inherit python;
-    pythonPath = python3.pkgs.makePythonPath propagatedBuildInputs;
+    pythonPath = python.pkgs.makePythonPath propagatedBuildInputs;
+    tests = {
+      inherit (nixosTests) seafile;
+    };
   };
 
   meta = with lib; {
-    homepage = "https://github.com/haiwen/seahub";
     description = "The web end of seafile server";
+    homepage = "https://github.com/haiwen/seahub";
     license = licenses.asl20;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ greizgh schmittlauch ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix b/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix
index 4b6ae464e7d9..1dab78a8fca8 100644
--- a/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix
@@ -1,32 +1,33 @@
 { lib
 , fetchFromGitHub
 , buildGoModule
-, testVersion
+, testers
 , seaweedfs
 }:
 
 buildGoModule rec {
   pname = "seaweedfs";
-  version = "2.90";
+  version = "3.15";
 
   src = fetchFromGitHub {
     owner = "chrislusf";
     repo = "seaweedfs";
     rev = version;
-    sha256 = "sha256-PZe/yUJGcj3/nIYaf7eAbiJIA2YASJ8nlMLIWWKJrbo=";
+    sha256 = "sha256-07cIqGKmw2Co7GEc/APiOWTgflUwDIQPQzs73XTAPQA=";
   };
 
-  vendorSha256 = "sha256-E6bMpWzXb5dMPXkrVSJJWXJYvkmI3cNRseMgrQNpCl4=";
+  vendorSha256 = "sha256-4U96s9PJLuVuzgWXCMLKfXK/XK1EaC+ep2c8TpKVRlc=";
 
   subPackages = [ "weed" ];
 
   passthru.tests.version =
-    testVersion { package = seaweedfs; command = "weed version"; };
+    testers.testVersion { package = seaweedfs; command = "weed version"; };
 
   meta = with lib; {
     description = "Simple and highly scalable distributed file system";
     homepage = "https://github.com/chrislusf/seaweedfs";
-    maintainers = with maintainers; [ cmacrae raboof ];
+    maintainers = with maintainers; [ cmacrae ];
+    mainProgram = "weed";
     license = licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix b/nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix
index d698601cb190..d1458745774f 100644
--- a/nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix
+++ b/nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix
@@ -8,18 +8,18 @@
 
 buildGoModule rec {
   pname = "shellhub-agent";
-  version = "0.9.0";
+  version = "0.9.5";
 
   src = fetchFromGitHub {
     owner = "shellhub-io";
     repo = "shellhub";
     rev = "v${version}";
-    sha256 = "A1634b3uxlILMpx/9jpCIApqAqofvD4ZPasVKL29Gtc=";
+    sha256 = "EBtQOli8jh5Ful39tR4U/H3KH517LmoYfqVyydQQTpA=";
   };
 
   modRoot = "./agent";
 
-  vendorSha256 = "sha256-LxJtLQr8djoRGznT5hL2agTgtZY6pFS8Zo0BwHDmugc=";
+  vendorSha256 = "sha256-UDsgfsdq8DecyTAFrmWO09V3JIuTA5YLCEAei0tYRy4=";
 
   ldflags = [ "-s" "-w" "-X main.AgentVersion=v${version}" ];
 
diff --git a/nixpkgs/pkgs/applications/networking/siproxd/default.nix b/nixpkgs/pkgs/applications/networking/siproxd/default.nix
index 742e6eab8580..1b2d3053d9be 100644
--- a/nixpkgs/pkgs/applications/networking/siproxd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/siproxd/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchurl, libosip }:
+{ lib, stdenv, fetchurl, libosip, sqlite }:
 
 stdenv.mkDerivation rec {
   pname = "siproxd";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/siproxd/siproxd-${version}.tar.gz";
-    sha256 = "1l6cyxxhra825jiiw9npa7jrbfgbyfpk4966cqkrw66cn28y8v2j";
+    sha256 = "0dkpl3myxz3gvj2n2qpqrd19dip9il0vf7qybdvn5wgznrmplvcs";
   };
 
   patches = [ ./cheaders.patch ];
 
-  buildInputs = [ libosip ];
+  buildInputs = [ libosip sqlite ];
 
   meta = {
     homepage = "http://siproxd.sourceforge.net/";
diff --git a/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix
index 401d6dfa32cd..558c7ef86461 100644
--- a/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sngrep";
-  version = "1.4.10";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "irontec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-P618QLk85W0oPisAGiRfpCgHCddKutUkGjwdfgsV4Es=";
+    sha256 = "sha256-GxC9+O72GHE8Tc6FReO7EdpZTSaqn9mBpZCYaKybJls=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
index b667c7671bdc..2f41d0ec55ff 100644
--- a/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchurl, pkg-config, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares
+{ lib, stdenv, buildPackages, fetchurl, pkg-config, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares
 , gnutls, libgcrypt, libgpg-error, geoip, openssl, lua5, python3, libcap, glib
-, libssh, nghttp2, zlib, cmake, makeWrapper
+, libssh, nghttp2, zlib, cmake, makeWrapper, wrapGAppsHook
 , withQt ? true, qt5 ? null
 , ApplicationServices, SystemConfiguration, gmp
 , asciidoctor
@@ -11,7 +11,7 @@ assert withQt  -> qt5  != null;
 with lib;
 
 let
-  version = "3.6.2";
+  version = "3.6.5";
   variant = if withQt then "qt" else "cli";
 
 in stdenv.mkDerivation {
@@ -21,7 +21,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
-    sha256 = "sha256-XZAaVXKu+VPwStwlPtKgaZ1MYnedMkkCHh6FQaAkww4=";
+    sha256 = "sha256-otdB1g/zUWE31LnzjNwH7uVKVuw2BG9MOv7mv7T26qE=";
   };
 
   cmakeFlags = [
@@ -29,31 +29,36 @@ in stdenv.mkDerivation {
     "-DENABLE_APPLICATION_BUNDLE=${if withQt && stdenv.isDarwin then "ON" else "OFF"}"
     # Fix `extcap` and `plugins` paths. See https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=16444
     "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DLEMON_C_COMPILER=cc"
+  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+    "-DHAVE_C99_VSNPRINTF_EXITCODE=0"
+    "-DHAVE_C99_VSNPRINTF_EXITCODE__TRYRUN_OUTPUT="
   ];
 
   # Avoid referencing -dev paths because of debug assertions.
   NIX_CFLAGS_COMPILE = [ "-DQT_NO_DEBUG" ];
 
-  nativeBuildInputs = [ asciidoctor bison cmake flex makeWrapper pkg-config ] ++ optional withQt qt5.wrapQtAppsHook;
+  nativeBuildInputs = [ asciidoctor bison cmake flex makeWrapper pkg-config python3 perl ]
+    ++ optionals withQt [ qt5.wrapQtAppsHook wrapGAppsHook ];
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
 
   buildInputs = [
-    gettext pcre perl libpcap lua5 libssh nghttp2 openssl libgcrypt
-    libgpg-error gnutls geoip c-ares python3 glib zlib
+    gettext pcre libpcap lua5 libssh nghttp2 openssl libgcrypt
+    libgpg-error gnutls geoip c-ares glib zlib
   ] ++ optionals withQt  (with qt5; [ qtbase qtmultimedia qtsvg qttools ])
     ++ optionals stdenv.isLinux  [ libcap libnl ]
     ++ optionals stdenv.isDarwin [ SystemConfiguration ApplicationServices gmp ]
     ++ optionals (withQt && stdenv.isDarwin) (with qt5; [ qtmacextras ]);
 
+  strictDeps = true;
+
   patches = [ ./wireshark-lookup-dumpcap-in-path.patch ];
 
   postPatch = ''
     sed -i -e '1i cmake_policy(SET CMP0025 NEW)' CMakeLists.txt
   '';
 
-  preBuild = ''
-    export LD_LIBRARY_PATH="$PWD/run"
-  '';
-
   postInstall = ''
     # to remove "cycle detected in the references"
     mkdir -p $dev/lib/wireshark
@@ -85,6 +90,12 @@ in stdenv.mkDerivation {
 
   dontFixCmake = true;
 
+  # Prevent double-wrapping, inject wrapper args manually instead.
+  dontWrapGApps = true;
+  preFixup = ''
+    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
   shellHook = ''
     # to be able to run the resulting binary
     export WIRESHARK_RUN_FROM_BUILD_DIRECTORY=1
diff --git a/nixpkgs/pkgs/applications/networking/sniproxy/default.nix b/nixpkgs/pkgs/applications/networking/sniproxy/default.nix
index 6652e7c986c3..7c8e3dfd93dc 100644
--- a/nixpkgs/pkgs/applications/networking/sniproxy/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sniproxy/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, gettext, libev, pcre, pkg-config, udns }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, gettext, libev, pcre, pkg-config, udns }:
 
 stdenv.mkDerivation rec {
   pname = "sniproxy";
@@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
     sha256 = "0isgl2lyq8vz5kkxpgyh1sgjlb6sqqybakr64w2mfh29k5ls8xzm";
   };
 
+  patches = [
+    # Pull upstream fix for -fno-common toolchain support:
+    #   https://github.com/dlundquist/sniproxy/pull/349
+    (fetchpatch {
+      name = "fno-common.patch";
+      url = "https://github.com/dlundquist/sniproxy/commit/711dd14affd5d0d918cd5fd245328450e60c7111.patch";
+      sha256 = "1vlszib2gzxnkl9zbbrf2jz632j1nhs4aanpw7qqnx826zmli0a6";
+    })
+  ];
+
   nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ gettext libev pcre udns ];
 
diff --git a/nixpkgs/pkgs/applications/networking/soapui/default.nix b/nixpkgs/pkgs/applications/networking/soapui/default.nix
index 6839b6be6729..f3c8301a69b6 100644
--- a/nixpkgs/pkgs/applications/networking/soapui/default.nix
+++ b/nixpkgs/pkgs/applications/networking/soapui/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "The Most Advanced REST & SOAP Testing Tool in the World";
     homepage = "https://www.soapui.org/";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = "SoapUI End User License Agreement";
     maintainers = with maintainers; [ gerschtli ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/networking/soju/default.nix b/nixpkgs/pkgs/applications/networking/soju/default.nix
index f5ffc03dc0f2..dc20578cf021 100644
--- a/nixpkgs/pkgs/applications/networking/soju/default.nix
+++ b/nixpkgs/pkgs/applications/networking/soju/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "soju";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromSourcehut {
     owner = "~emersion";
     repo = "soju";
     rev = "v${version}";
-    sha256 = "sha256-j7LwWBBJvNUeg0+P632HaGliVtrrCD0VNxkynaZzidQ=";
+    sha256 = "sha256-4ixPEnSa1m52Hu1dzxMG8c0bkqGN04vRlIzvdZ/ES4A=";
   };
 
-  vendorSha256 = "sha256-fDfH2pQ5MtZDjiGx26vS5dBzxejVXPfflLX8N8VcJTA=";
+  vendorSha256 = "sha256-UVFi/QK2zwzhBkPXEJLYc5WSu3OOvWTVVGkMhrrufyc=";
 
   subPackages = [
     "cmd/soju"
diff --git a/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix b/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix
index c38a01a49d5e..4daf11595efa 100644
--- a/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix
+++ b/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix
@@ -1,29 +1,36 @@
-{ lib, fetchFromGitHub, python3Packages, gettext, gdk-pixbuf
-, gobject-introspection, gtk3, wrapGAppsHook }:
-
-with lib;
+{ lib
+, stdenv
+, fetchFromGitHub
+, wrapGAppsHook
+, gdk-pixbuf
+, gettext
+, gobject-introspection
+, gtk3
+, python3Packages
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "nicotine-plus";
-  version = "3.2.1";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
-    owner = "Nicotine-Plus";
+    owner = "nicotine-plus";
     repo = "nicotine-plus";
     rev = version;
-    hash = "sha256-3NXlNd3Zy++efnvcnfIOUP83mdJ5h8BmE4a2uWn5CPQ=";
+    sha256 = "sha256-aD5LQ0l6bet/iQKiu1mta4fUeijfip9IdzbGnTkCNdQ=";
   };
 
   nativeBuildInputs = [ gettext wrapGAppsHook ];
 
-  propagatedBuildInputs = [ gtk3 gdk-pixbuf gobject-introspection ]
-    ++ (with python3Packages; [ pygobject3 ]);
-
+  propagatedBuildInputs = [
+    gdk-pixbuf
+    gobject-introspection
+    gtk3
+    python3Packages.pygobject3
+  ];
 
   postInstall = ''
     ln -s $out/bin/nicotine $out/bin/nicotine-plus
-    test -e $out/share/applications/org.nicotine_plus.Nicotine.desktop && exit 1
-    install -D data/org.nicotine_plus.Nicotine.desktop -t $out/share/applications
   '';
 
   preFixup = ''
@@ -34,11 +41,16 @@ python3Packages.buildPythonApplication rec {
 
   doCheck = false;
 
-  meta = {
+  meta = with lib; {
+    broken = stdenv.isDarwin;
     description = "A graphical client for the SoulSeek peer-to-peer system";
+    longDescription = ''
+      Nicotine+ aims to be a pleasant, free and open source (FOSS) alternative
+      to the official Soulseek client, providing additional functionality while
+      keeping current with the Soulseek protocol.
+    '';
     homepage = "https://www.nicotine-plus.org";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ehmry klntsky ];
-    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/spideroak/default.nix b/nixpkgs/pkgs/applications/networking/spideroak/default.nix
index edff4c78126e..0bfc62ccfbb2 100644
--- a/nixpkgs/pkgs/applications/networking/spideroak/default.nix
+++ b/nixpkgs/pkgs/applications/networking/spideroak/default.nix
@@ -37,7 +37,7 @@ in stdenv.mkDerivation {
 
     rm -f $out/opt/SpiderOakONE/lib/libz*
 
-    patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux-x86-64.so.2 \
+    patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 \
       "$out/opt/SpiderOakONE/lib/SpiderOakONE"
 
     RPATH=$out/opt/SpiderOakONE/lib:${ldpath}
@@ -53,6 +53,7 @@ in stdenv.mkDerivation {
   meta = {
     homepage = "https://spideroak.com";
     description = "Secure online backup and sychronization";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ amorsillo ];
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/station/default.nix b/nixpkgs/pkgs/applications/networking/station/default.nix
index b0e53a054d28..f60bcf8b7bef 100644
--- a/nixpkgs/pkgs/applications/networking/station/default.nix
+++ b/nixpkgs/pkgs/applications/networking/station/default.nix
@@ -1,4 +1,4 @@
-{ appimageTools, fetchurl, gsettings-desktop-schemas, gtk3, lib }:
+{ appimageTools, fetchurl, lib }:
 
 let
   pname = "station";
@@ -18,7 +18,6 @@ in appimageTools.wrapType2 rec {
 
   profile = ''
     export LC_ALL=C.UTF-8
-    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
   '';
 
   multiPkgs = null;
@@ -37,6 +36,6 @@ in appimageTools.wrapType2 rec {
     homepage = "https://getstation.com";
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ lattfein ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix b/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix
index 335ba4a4de14..0b02b87a1b2f 100644
--- a/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix
@@ -7,13 +7,13 @@ let
   apps = lib.makeBinPath [ openssh python' cron rsync sshfs-fuse encfs ];
 in stdenv.mkDerivation rec {
   pname = "backintime-common";
-  version = "1.2.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "bit-team";
     repo = "backintime";
     rev = "v${version}";
-    sha256 = "mBjheLY7DHs995heZmxVnDdvABkAROCjRJ4a/uJmJcg=";
+    sha256 = "sha256-7iTQZ7SiESsKK8F8BpLrRNkj8JhHo64kliaOvMvYGvw=";
   };
 
   nativeBuildInputs = [ makeWrapper gettext ];
diff --git a/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix b/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix
index 4c95a35ab85a..7690bf6ee540 100644
--- a/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix
@@ -31,9 +31,10 @@ stdenv.mkDerivation rec {
 
   dontUseCmakeBuildDir = true;
 
+  nativeBuildInputs = [ cmake ];
   buildInputs = [
     rsync
-    cmake lua pkg-config
+    lua pkg-config
     asciidoc libxml2 docbook_xml_dtd_45 docbook_xsl libxslt
   ];
 
diff --git a/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix b/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
index 68af0bd2890a..d2c6620b8d6f 100644
--- a/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "onedrive";
-  version = "2.4.16";
+  version = "2.4.20";
 
   src = fetchFromGitHub {
     owner = "abraunegg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-GoufEcCu/Cg2Fu0RcjTi4te/7+gZfQRTj+AtK0YnF5I=";
+    hash = "sha256-2sDs4AhiyccVpnfCGPBL+QifQGStbrzSUIL547kh2ko=";
   };
 
   nativeBuildInputs = [ autoreconfHook ldc installShellFiles pkg-config ];
diff --git a/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
index 9ebd9db67f9d..cdef1fdab518 100644
--- a/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "rclone";
-  version = "1.58.0";
+  version = "1.59.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zCKXi3qeiq2AGT7UioVfCbB4bc5F2tXJ507zPa+O0pc=";
+    sha256 = "sha256-eblCMe9ywJztjsWmngUkB/IE2ePI9Yin2jkxBW0tTbQ=";
   };
 
-  vendorSha256 = "sha256-mgupx5SNQ3wUkQCeTVnw3wwdSCrTcwLYxcX6tlqXTyQ=";
+  vendorSha256 = "sha256-MZ5RtB4UGHPlMxyQ0VbX5iPpZw98oUuEhuMBDZcYiw8=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix
deleted file mode 100644
index 39ce5d3a7ea5..000000000000
--- a/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, fetchurl, fetchpatch }:
-
-rec {
-  version = "3.2.3";
-  src = fetchurl {
-    # signed with key 0048 C8B0 26D4 C96F 0E58  9C2F 6C85 9FB1 4B96 A8C5
-    url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
-    sha256 = "03p5dha9g9krq61mdbcrjkpz5nglri0009ks2vs9k97f9i83rk5y";
-  };
-  upstreamPatchTarball = fetchurl {
-    # signed with key 0048 C8B0 26D4 C96F 0E58  9C2F 6C85 9FB1 4B96 A8C5
-    url = "mirror://samba/rsync/rsync-patches-${version}.tar.gz";
-    sha256 = "1wj21v57v135n6fnmlm2dxmb9lhrrg62jgkggldp1gb7d6s4arny";
-  };
-  extraPatches = [
-    (fetchpatch {
-      name = "CVE-2020-14387.patch";
-      url = "https://git.samba.org/?p=rsync.git;a=patch;h=c3f7414;hp=4c4fce51072c9189cfb11b52aa54fed79f5741bd";
-      sha256 = "000lyx48lns84p53nsdlr45mb9558lrvnsz3yic0y3z6h2izv82x";
-    })
-  ];
-
-  meta = with lib; {
-    description = "Fast incremental file transfer utility";
-    homepage = "https://rsync.samba.org/";
-    license = licenses.gpl3Plus;
-    platforms = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix
index dc3e8b25e70a..5e0ddc69a46c 100644
--- a/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix
@@ -20,20 +20,25 @@
 , nixosTests
 }:
 
-let
-  base = import ./base.nix { inherit lib fetchurl fetchpatch; };
-in
 stdenv.mkDerivation rec {
   pname = "rsync";
-  version = base.version;
+  version = "3.2.4";
 
-  mainSrc = base.src;
+  srcs = [
+    (fetchurl {
+      # signed with key 0048 C8B0 26D4 C96F 0E58  9C2F 6C85 9FB1 4B96 A8C5
+      url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
+      sha256 = "sha256-b3YYONCAUrC2V5z39nN9k+R/AfTaBMXSTTRHt/Kl+tE=";
+    })
+  ] ++ lib.optional enableCopyDevicesPatch (fetchurl {
+    # signed with key 0048 C8B0 26D4 C96F 0E58  9C2F 6C85 9FB1 4B96 A8C5
+    url = "mirror://samba/rsync/rsync-patches-${version}.tar.gz";
+    sha256 = "1wj21v57v135n6fnm2m2dxmb9lhrrg62jgkggldp1gb7d6s4arny";
+  });
 
-  patchesSrc = base.upstreamPatchTarball;
+  patches = lib.optional enableCopyDevicesPatch "./patches/copy-devices.diff";
 
-  srcs = [ mainSrc ] ++ lib.optional enableCopyDevicesPatch patchesSrc;
-  patches = lib.optional enableCopyDevicesPatch "./patches/copy-devices.diff"
-    ++ base.extraPatches;
+  nativeBuildInputs = [ perl ];
 
   buildInputs = [ libiconv zlib popt ]
     ++ lib.optional enableACLs acl
@@ -41,7 +46,6 @@ stdenv.mkDerivation rec {
     ++ lib.optional enableLZ4 lz4
     ++ lib.optional enableOpenSSL openssl
     ++ lib.optional enableXXHash xxHash;
-  nativeBuildInputs = [ perl ];
 
   configureFlags = [
     "--with-nobody-group=nogroup"
@@ -49,20 +53,17 @@ stdenv.mkDerivation rec {
     # disable the included zlib explicitly as it otherwise still compiles and
     # links them even.
     "--with-included-zlib=no"
-  ]
-  # Work around issue with cross-compilation:
-  #     configure.sh: error: cannot run test program while cross compiling
-  # Remove once 3.2.4 or more recent is released.
-  # The following PR should fix the cross-compilation issue.
-  # Test using `nix-build -A pkgsCross.aarch64-multiplatform.rsync`.
-  # https://github.com/WayneD/rsync/commit/b7fab6f285ff0ff3816b109a8c3131b6ded0b484
-  ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--enable-simd=no"
-  ;
+  ];
+
+  enableParallelBuilding = true;
 
   passthru.tests = { inherit (nixosTests) rsyncd; };
 
-  meta = base.meta // {
-    description = "A fast incremental file transfer utility";
+  meta = with lib; {
+    description = "Fast incremental file transfer utility";
+    homepage = "https://rsync.samba.org/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
     maintainers = with lib.maintainers; [ ehmry kampfschlaefer ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix
index e55f7fc1fba6..c18f454d87ce 100644
--- a/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix
@@ -1,22 +1,19 @@
-{ lib, stdenv, fetchurl, perl, rsync, fetchpatch }:
+{ stdenv, python3, rsync }:
 
-let
-  base = import ./base.nix { inherit lib fetchurl fetchpatch; };
-in
 stdenv.mkDerivation {
   pname = "rrsync";
-  version = base.version;
-
-  src = base.src;
-
-  buildInputs = [ rsync perl ];
+  inherit (rsync) version srcs;
 
+  buildInputs = [
+    rsync
+    (python3.withPackages (pythonPackages: with pythonPackages; [ braceexpand ]))
+  ];
   # Skip configure and build phases.
   # We just want something from the support directory
   dontConfigure = true;
   dontBuild = true;
 
-  patches = base.extraPatches;
+  inherit (rsync) patches;
 
   postPatch = ''
     substituteInPlace support/rrsync --replace /usr/bin/rsync ${rsync}/bin/rsync
@@ -28,8 +25,7 @@ stdenv.mkDerivation {
     chmod a+x $out/bin/rrsync
   '';
 
-  meta = base.meta // {
+  meta = rsync.meta // {
     description = "A helper to run rsync-only environments from ssh-logins";
-    maintainers = [ lib.maintainers.kampfschlaefer ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/sync/unison/default.nix b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix
index 497b91ad361e..97ee3ed58625 100644
--- a/nixpkgs/pkgs/applications/networking/sync/unison/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "unison";
-  version = "2.52.0";
+  version = "2.52.1";
 
   src = fetchFromGitHub {
     owner = "bcpierce00";
     repo = "unison";
     rev = "v${version}";
-    sha256 = "sha256-YCuXkHqY+JHsguvst2UkI/6YlFt3iTvchO8PQuS15nI=";
+    sha256 = "sha256-taA8eZ/wOe9uMccXVYfe34/XzWgqYKA3tLZnIOahOrQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ]
diff --git a/nixpkgs/pkgs/applications/networking/sync/wdt/default.nix b/nixpkgs/pkgs/applications/networking/sync/wdt/default.nix
new file mode 100644
index 000000000000..f24e1255d5e8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sync/wdt/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, folly
+, boost
+, gflags
+, glog
+, openssl
+, double-conversion
+, fmt
+, unstableGitUpdater
+}:
+
+stdenv.mkDerivation {
+  pname = "wdt";
+  version = "unstable-2022-07-08";
+
+  src = fetchFromGitHub {
+    owner = "facebook";
+    repo = "wdt";
+    rev = "8f01b7558a80e5f08b06244d2821c3eb5c1d6e9b";
+    sha256 = "sha256-ozii7EA3j3F/o+lE2mPsUY5lrm3OOtK75gjGkrvoaQ0=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ folly boost gflags glog openssl double-conversion fmt ];
+
+  # source is expected to be named wdt
+  # https://github.com/facebook/wdt/blob/43319e59d0c77092468367cdadab37d12d7a2383/CMakeLists.txt#L238
+  postUnpack = ''
+    ln -s $sourceRoot wdt
+  '';
+
+  cmakeFlags = [
+    "-DWDT_USE_SYSTEM_FOLLY=ON"
+  ];
+
+  passthru = {
+    updateScript = unstableGitUpdater { };
+  };
+
+  meta = with lib; {
+    description = "Warp speed Data Transfer";
+    homepage = "https://github.com/facebook/wdt";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ nickcao ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/syncplay/default.nix b/nixpkgs/pkgs/applications/networking/syncplay/default.nix
index b3c40b0f2fcd..1e88b12c74f9 100644
--- a/nixpkgs/pkgs/applications/networking/syncplay/default.nix
+++ b/nixpkgs/pkgs/applications/networking/syncplay/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildPythonApplication, pyside2, shiboken2, twisted, certifi, qt5 }:
+{ lib, fetchFromGitHub, buildPythonApplication, pyside2, twisted, certifi, qt5, enableGUI ? true }:
 
 buildPythonApplication rec {
   pname = "syncplay";
@@ -13,12 +13,14 @@ buildPythonApplication rec {
     sha256 = "0qm3qn4a1nahhs7q81liz514n9blsi107g9s9xfw2i8pzi7v9v0v";
   };
 
-  propagatedBuildInputs = [ pyside2 shiboken2 twisted certifi ] ++ twisted.extras.tls;
-  nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+  propagatedBuildInputs = [ twisted certifi ]
+    ++ twisted.optional-dependencies.tls
+    ++ lib.optional enableGUI pyside2;
+  nativeBuildInputs = lib.optionals enableGUI [ qt5.wrapQtAppsHook ];
 
   makeFlags = [ "DESTDIR=" "PREFIX=$(out)" ];
 
-  postFixup = ''
+  postFixup = lib.optionalString enableGUI ''
     wrapQtApp $out/bin/syncplay
   '';
 
diff --git a/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix b/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix
deleted file mode 100644
index caa46942ca92..000000000000
--- a/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ lib, fetchFromGitHub, fetchpatch, libnotify, librsvg, killall
-, gtk3, libappindicator-gtk3, substituteAll, syncthing, wrapGAppsHook
-, gnome, buildPythonApplication, python-dateutil, pyinotify, pygobject3
-, bcrypt, gobject-introspection, gsettings-desktop-schemas
-, pango, gdk-pixbuf, atk }:
-
-buildPythonApplication rec {
-  version = "0.9.4.4";
-  pname = "syncthing-gtk";
-
-  src = fetchFromGitHub {
-    owner = "syncthing";
-    repo = "syncthing-gtk";
-    rev = "v${version}";
-    sha256 = "0nc0wd7qvyri7841c3dd9in5d7367hys0isyw8znv5fj4c0a6v1f";
-  };
-
-  nativeBuildInputs = [
-    wrapGAppsHook
-    # For setup hook populating GI_TYPELIB_PATH
-    gobject-introspection
-    pango gdk-pixbuf atk libnotify
-  ];
-
-  buildInputs = [
-    gtk3 librsvg libappindicator-gtk3
-    libnotify gnome.adwaita-icon-theme
-    # Schemas with proxy configuration
-    gsettings-desktop-schemas
-  ];
-
-  propagatedBuildInputs = [
-    python-dateutil pyinotify pygobject3 bcrypt
-  ];
-
-  patches = [
-    (substituteAll {
-      src = ./paths.patch;
-      killall = "${killall}/bin/killall";
-      syncthing = "${syncthing}/bin/syncthing";
-    })
-  ];
-
-  # repo doesn't have any tests
-  doCheck = false;
-
-  setupPyBuildFlags = [ "build_py" "--nofinddaemon" "--nostdownloader" ];
-
-  postPatch = ''
-    substituteInPlace setup.py --replace "version = get_version()" "version = '${version}'"
-    substituteInPlace scripts/syncthing-gtk --replace "/usr/share" "$out/share"
-    substituteInPlace syncthing_gtk/app.py --replace "/usr/share" "$out/share"
-    substituteInPlace syncthing_gtk/uisettingsdialog.py --replace "/usr/share" "$out/share"
-    substituteInPlace syncthing_gtk/wizard.py --replace "/usr/share" "$out/share"
-    substituteInPlace syncthing-gtk.desktop --replace "/usr/bin/syncthing-gtk" "$out/bin/syncthing-gtk"
-  '';
-
-  meta = with lib; {
-    description = "GTK3 & python based GUI for Syncthing";
-    homepage = "https://github.com/syncthing/syncthing-gtk";
-    license = licenses.gpl2;
-    broken = true;
-    maintainers = with maintainers; [ ];
-    platforms = syncthing.meta.platforms;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch b/nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch
deleted file mode 100644
index 0ba5a4f2db84..000000000000
--- a/nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/syncthing_gtk/configuration.py
-+++ b/syncthing_gtk/configuration.py
-@@ -30,7 +30,7 @@
- 		"autokill_daemon"			: (int, 2),	# 0 - never kill, 1 - always kill, 2 - ask
- 		"daemon_priority"			: (int, 0), # uses nice values
- 		"max_cpus"					: (int, 0), # 0 for all cpus
--		"syncthing_binary"			: (str, "/usr/bin/syncthing"),
-+		"syncthing_binary"			: (str, "@syncthing@"),
- 		"syncthing_arguments"		: (str, ""),
- 		"minimize_on_start"			: (bool, False),
- 		"folder_as_path"			: (bool, True),
---- a/syncthing_gtk/tools.py
-+++ b/syncthing_gtk/tools.py
-@@ -303,7 +303,7 @@
- 			return False
- 		# signal 0 doesn't kill anything, but killall exits with 1 if
- 		# named process is not found
--		p = Popen(["killall", "-u", os.environ["USER"], "-q", "-s", "0", "syncthing"])
-+		p = Popen(["@killall@", "-u", os.environ["USER"], "-q", "-s", "0", "syncthing"])
- 		p.communicate()
- 		return p.returncode == 0
- 	else:
diff --git a/nixpkgs/pkgs/applications/networking/syncthing/default.nix b/nixpkgs/pkgs/applications/networking/syncthing/default.nix
index 31d0ce461d09..6fdc0e0d0051 100644
--- a/nixpkgs/pkgs/applications/networking/syncthing/default.nix
+++ b/nixpkgs/pkgs/applications/networking/syncthing/default.nix
@@ -4,21 +4,21 @@ let
   common = { stname, target, postInstall ? "" }:
     buildGoModule rec {
       pname = stname;
-      version = "1.19.1";
+      version = "1.20.4";
 
       src = fetchFromGitHub {
-        owner  = "syncthing";
-        repo   = "syncthing";
-        rev    = "v${version}";
-        sha256 = "sha256-/CRDdKUeLQ/jSLrd44Tjbb0lfgFFnJkpmFEYZJFQHY8=";
+        owner = "syncthing";
+        repo = "syncthing";
+        rev = "v${version}";
+        hash = "sha256-umnlYvCtT+76Yer17T7ZvWJ5sUdXu+7kiRikrmWrIM8=";
       };
 
-      vendorSha256 = "sha256-GBDGckGewo5Yp8zwAKwwXkSP5lx0fQR4AHQFkzO7Q0Q=";
+      vendorSha256 = "sha256-CJFKY69Iz8GrVpvUdDveMQQFj6RXApfgYjP7B1wfgfo=";
 
       doCheck = false;
 
-      BUILD_USER="nix";
-      BUILD_HOST="nix";
+      BUILD_USER = "nix";
+      BUILD_HOST = "nix";
 
       buildPhase = ''
         runHook preBuild
@@ -34,9 +34,8 @@ let
 
       inherit postInstall;
 
-      passthru.tests = with nixosTests; {
-        init = syncthing-init;
-        relay = syncthing-relay;
+      passthru.tests = {
+        inherit (nixosTests) syncthing syncthing-init syncthing-relay;
       };
 
       meta = with lib; {
@@ -45,11 +44,13 @@ let
         changelog = "https://github.com/syncthing/syncthing/releases/tag/v${version}";
         license = licenses.mpl20;
         maintainers = with maintainers; [ joko peterhoeg andrew-d ];
+        mainProgram = target;
         platforms = platforms.unix;
       };
     };
 
-in {
+in
+{
   syncthing = common {
     stname = "syncthing";
     target = "syncthing";
diff --git a/nixpkgs/pkgs/applications/networking/synology-drive-client/default.nix b/nixpkgs/pkgs/applications/networking/synology-drive-client/default.nix
index 459e38970ddd..f86be07dfecc 100644
--- a/nixpkgs/pkgs/applications/networking/synology-drive-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/synology-drive-client/default.nix
@@ -1,28 +1,40 @@
-{ stdenv, lib, qt5, fetchurl, autoPatchelfHook, dpkg, glibc, cpio, xar, undmg, gtk3, pango }:
+{ stdenv, lib, writeScript, qt5, fetchurl, autoPatchelfHook, dpkg, glibc, cpio, xar, undmg, gtk3, pango, libxcb }:
 let
   pname = "synology-drive-client";
-  buildNumber = "12682";
-  version = "3.0.2";
   baseUrl = "https://global.download.synology.com/download/Utility/SynologyDriveClient";
+  version = "3.1.0-12923";
+  buildNumber = with lib; last (splitString "-" version);
   meta = with lib; {
     description = "Desktop application to synchronize files and folders between the computer and the Synology Drive server.";
     homepage = "https://www.synology.com/en-global/dsm/feature/drive";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ jcouyang MoritzBoehme ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
   };
+  passthru.updateScript = writeScript "update-synology-drive-client" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p curl common-updater-scripts
+
+    set -eu -o pipefail
+
+    version="$(curl -s https://www.synology.com/en-uk/releaseNote/SynologyDriveClient \
+             | grep -oP '(?<=data-version=")(\d.){2}\d-\d{5}' \
+             | head -1)"
+    update-source-version synology-drive-client "$version"
+  '';
 
   linux = qt5.mkDerivation {
-    inherit pname version meta;
+    inherit pname version meta passthru;
 
     src = fetchurl {
-      url = "${baseUrl}/${version}-${buildNumber}/Ubuntu/Installer/x86_64/synology-drive-client-${buildNumber}.x86_64.deb";
-      sha256 = "19fd2r39lb7bb6vkxfxyq0gp3l7pk5wy9fl0r7qwhym2jpi8yv6l";
+      url = "${baseUrl}/${version}/Ubuntu/Installer/x86_64/synology-drive-client-${buildNumber}.x86_64.deb";
+      sha256 = "sha256-gL08uJbA2S+SuP1afMBmcJMIcu7QRzdiXgIMxSZQl/I=";
     };
 
     nativeBuildInputs = [ autoPatchelfHook dpkg ];
 
-    buildInputs = [ glibc gtk3 pango ];
+    buildInputs = [ glibc gtk3 pango libxcb ];
 
     unpackPhase = ''
       mkdir -p $out
@@ -43,11 +55,11 @@ let
   };
 
   darwin = stdenv.mkDerivation {
-    inherit pname version meta;
+    inherit pname version meta passthru;
 
     src = fetchurl {
-      url = "${baseUrl}/${version}-${buildNumber}/Mac/Installer/synology-drive-client-${buildNumber}.dmg";
-      sha256 = "1mlv8gxzivgxm59mw1pd63yq9d7as79ihm7166qyy0h0b0m04q2m";
+      url = "${baseUrl}/${version}/Mac/Installer/synology-drive-client-${buildNumber}.dmg";
+      sha256 = "0pwm2xi1b9p9zmhy4dhix3aas49i183wxslyidfwvlaphic9qkxm";
     };
 
     nativeBuildInputs = [ cpio xar undmg ];
diff --git a/nixpkgs/pkgs/applications/networking/taler/default.nix b/nixpkgs/pkgs/applications/networking/taler/default.nix
index 06e389a69c80..7119b0de4c9b 100644
--- a/nixpkgs/pkgs/applications/networking/taler/default.nix
+++ b/nixpkgs/pkgs/applications/networking/taler/default.nix
@@ -1,57 +1,122 @@
-{ lib, stdenv, fetchurl, curl, gnunet, jansson, libgcrypt, libmicrohttpd
-, qrencode, libsodium, libtool, pkg-config, postgresql, sqlite }:
+{ lib, stdenv, fetchgit, curl, gnunet, jansson, libgcrypt, libmicrohttpd_0_9_72
+, qrencode, libsodium, libtool, libunistring, pkg-config, postgresql
+, autoreconfHook, python39, recutils, wget, jq, gettext, texinfo
+}:
 
 let
-  gnunet' = gnunet.override { postgresqlSupport = true; };
-
-  mkTaler = { pname, version, sha256 }:
-    extraAttrs:
-    stdenv.mkDerivation (extraAttrs // {
-      inherit pname version;
-      src = fetchurl {
-        url = "mirror://gnu/taler/${pname}-${version}.tar.gz";
-        inherit sha256;
-      };
-      enableParallelBuilding = true;
-      meta = with lib; {
-        description = "Anonymous, taxable payment system.";
-        homepage = "https://taler.net/";
-        license = licenses.agpl3Plus;
-        maintainers = with maintainers; [ ehmry ];
-        platforms = platforms.gnu ++ platforms.linux;
-      };
-    });
+  taler-merchant-backoffice = fetchgit {
+    url = "https://git.taler.net/merchant-backoffice.git";
+    # branch "prebuilt" as of 2022-07-01
+    rev = "1ef7150f32960cb65ebea67839cd5023f29a3d1d";
+    sha256 = "sha256-ZtLYWHi6l5DxFvDm8RFGUD0BiAfJXCZr/ggrP3Uw7/0=";
+  };
 
 in rec {
-
-  taler-exchange = mkTaler {
+  taler-exchange = stdenv.mkDerivation rec {
     pname = "taler-exchange";
-    version = "0.8.1";
-    sha256 = "sha256-MPt3n1JXd0Y89b1qCuF6YxptSr7henfYp97JTq1Z+x4=";
-  } {
+    version = "unstable-2022-07-17";
+
+    src = fetchgit {
+      url = "https://git.taler.net/exchange.git";
+      rev = "93b45e62eef254eae68bc119b9770e97bae2c9fa";
+      fetchSubmodules = true;
+      sha256 = "sha256-BQxbwEf0wIkBOBVsPgMkMvUj4kFReXMUFTiSG0jXOJ0=";
+    };
+
+    nativeBuildInputs = [
+      autoreconfHook
+      pkg-config
+    ];
     buildInputs = [
-      curl
-      jansson
       libgcrypt
-      libmicrohttpd
+      libmicrohttpd_0_9_72
+      jansson
       libsodium
-      libtool
       postgresql
-      # sqlite
+      curl
+      recutils
+      gettext
+      texinfo # Fix 'makeinfo' is missing on your system.
+      libunistring
+      python39.pkgs.jinja2
     ];
-    propagatedBuildInputs = [ gnunet' ];
-    patches = [ ./exchange-fix-6665.patch ];
+    propagatedBuildInputs = [ gnunet ];
+
+    configureFlags = [ "--with-gnunet=${gnunet}" ];
+    preConfigure = ''
+      ./contrib/gana-update.sh
+    '';
+
+    enableParallelBuilding = true;
+
+    checkInputs = [ wget curl ];
+    doInstallCheck = true;
+    checkTarget = "check";
+
+    meta = with lib; {
+      description = ''
+        Taler is an electronic payment system providing the ability to pay
+        anonymously using digital cash.  Taler consists of a network protocol
+        definition (using a RESTful API over HTTP), a Exchange (which creates
+        digital coins), a Wallet (which allows customers to manage, store and
+        spend digital coins), and a Merchant website which allows customers to
+        spend their digital coins.  Naturally, each Merchant is different, but
+        Taler includes code examples to help Merchants integrate Taler as a
+        payment system.
+      '';
+      homepage = "https://taler.net/";
+      license = licenses.agpl3Plus;
+      maintainers = with maintainers; [ astro ];
+      platforms = platforms.linux;
+    };
   };
 
-  taler-merchant = mkTaler {
+  taler-merchant = stdenv.mkDerivation rec {
     pname = "taler-merchant";
-    version = "0.8.0";
-    sha256 = "sha256-scrFLXeoQirGqhc+bSQKRl84PfUvjrp1uxF7pfOIB9Q=";
-  } {
-    nativeBuildInputs = [ pkg-config ];
-    buildInputs = taler-exchange.buildInputs ++ [ qrencode taler-exchange ];
-    propagatedBuildInputs = [ gnunet' ];
-    PKG_CONFIG = "${pkg-config}/bin/pkg-config";
-  };
+    version = "unstable-2022-07-11";
+
+    src = fetchgit {
+      url = "https://git.taler.net/merchant.git";
+      rev = "60dcacf25e51cc2bff359ea1fc86cdd3d9e6083";
+      sha256 = "sha256-Wn11z6YjnylZl3z2JjBlrtZ1KHfQUHLIYWo5F+mAmNo=";
+    };
+    postUnpack = ''
+      ln -s ${taler-merchant-backoffice}/spa.html $sourceRoot/contrib/
+    '';
+
+    nativeBuildInputs = [ pkg-config autoreconfHook ];
+    buildInputs = taler-exchange.buildInputs ++ [
+      qrencode
+      taler-exchange
+      # for ltdl.h
+      libtool
+    ];
+    propagatedBuildInputs = [ gnunet ];
+
+    configureFlags = [
+      "--with-gnunet=${gnunet}"
+      "--with-exchange=${taler-exchange}"
+    ];
 
+    enableParallelBuilding = true;
+
+    checkInputs = [ jq ];
+    doInstallCheck = true;
+    checkTarget = "check";
+
+    meta = with lib; {
+      description = ''
+        This is the GNU Taler merchant backend. It provides the logic that should run
+        at every GNU Taler merchant.  The GNU Taler merchant is a RESTful backend that
+        can be used to setup orders and process payments.  This component allows
+        merchants to receive payments without invading the customers' privacy. Of
+        course, this applies mostly for digital goods, as the merchant does not need
+        to know the customer's physical address.
+      '';
+      homepage = "https://taler.net/";
+      license = licenses.agpl3Plus;
+      maintainers = with maintainers; [ astro ];
+      platforms = platforms.linux;
+    };
+  };
 }
diff --git a/nixpkgs/pkgs/applications/networking/taler/exchange-fix-6665.patch b/nixpkgs/pkgs/applications/networking/taler/exchange-fix-6665.patch
deleted file mode 100644
index e648123d2697..000000000000
--- a/nixpkgs/pkgs/applications/networking/taler/exchange-fix-6665.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-commit 9911b327ac299ec7eeae81b98cb520f4153071f2
-Author: Christian Grothoff <christian@grothoff.org>
-Date:   Wed Dec 9 07:25:26 2020 +0100
-
-    fix #6665
-
-diff --git a/src/testing/testing_api_cmd_rewind.c b/src/testing/testing_api_cmd_rewind.c
-index e1b17fa9..979607cd 100644
---- a/src/testing/testing_api_cmd_rewind.c
-+++ b/src/testing/testing_api_cmd_rewind.c
-@@ -24,7 +24,6 @@
-  */
- #include "platform.h"
- #include "taler_exchange_service.h"
--#include "taler/taler_testing_lib.h"
- #include "taler_testing_lib.h"
-
-
-diff --git a/src/testing/testing_api_cmd_twister_exec_client.c b/src/testing/testing_api_cmd_twister_exec_client.c
-index 2cb92a8f..b3903f29 100644
---- a/src/testing/testing_api_cmd_twister_exec_client.c
-+++ b/src/testing/testing_api_cmd_twister_exec_client.c
-@@ -26,7 +26,7 @@
-  */
-
- #include "platform.h"
--#include <taler/taler_testing_lib.h>
-+#include "taler_testing_lib.h"
- #include "taler_twister_testing_lib.h"
-
-
-diff --git a/src/testing/testing_api_trait_uuid.c b/src/testing/testing_api_trait_uuid.c
-index c9b73a5b..4d5003ec 100644
---- a/src/testing/testing_api_trait_uuid.c
-+++ b/src/testing/testing_api_trait_uuid.c
-@@ -22,9 +22,9 @@
-  * @author Jonathan Buchanan
-  */
- #include "platform.h"
--#include <taler/taler_signatures.h>
--#include <taler/taler_exchange_service.h>
--#include <taler/taler_testing_lib.h>
-+#include "taler_signatures.h"
-+#include "taler_exchange_service.h"
-+#include "taler_testing_lib.h"
-
-
- #define TALER_TESTING_TRAIT_UUID "uuid"
diff --git a/nixpkgs/pkgs/applications/networking/tcping-go/default.nix b/nixpkgs/pkgs/applications/networking/tcping-go/default.nix
new file mode 100644
index 000000000000..b7f8ceb6d681
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/tcping-go/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule {
+  pname = "tcping-go";
+  version = "unstable-2022-05-28";
+
+  src = fetchFromGitHub {
+    owner = "cloverstd";
+    repo = "tcping";
+    rev = "83f644c761819f7c4386f0645cd0a337eccfc62e";
+    sha256 = "sha256-GSkNfaGMJbBqDg8DKhDtLAuUg1yF3FbBdxcf4oG50rI=";
+  };
+
+  vendorSha256 = "sha256-Q+aFgi7GCAn3AxDuGtRG4DdPhI7gQKEo7A9iu1YcTsQ=";
+
+  meta = with lib; {
+    description = "Ping over TCP instead of ICMP, written in Go";
+    homepage = "https://github.com/cloverstd/tcping";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/termius/default.nix b/nixpkgs/pkgs/applications/networking/termius/default.nix
index b087a45a9790..6a8960367be7 100644
--- a/nixpkgs/pkgs/applications/networking/termius/default.nix
+++ b/nixpkgs/pkgs/applications/networking/termius/default.nix
@@ -13,7 +13,7 @@
 
 stdenv.mkDerivation rec {
   pname = "termius";
-  version = "7.36.1";
+  version = "7.42.1";
 
   src = fetchurl {
     # find the latest version with
@@ -22,8 +22,8 @@ stdenv.mkDerivation rec {
     # curl -H 'X-Ubuntu-Series: 16' https://api.snapcraft.io/api/v1/snaps/details/termius-app | jq '.download_url' -r
     # and the sha512 with
     # curl -H 'X-Ubuntu-Series: 16' https://api.snapcraft.io/api/v1/snaps/details/termius-app | jq '.download_sha512' -r
-    url = "https://api.snapcraft.io/api/v1/snaps/download/WkTBXwoX81rBe3s3OTt3EiiLKBx2QhuS_107.snap";
-    sha512 = "ef8514bdd0e6761a9bc7bf6b0b72d95c661905798c1507af932bd38a1e0c96713f71140b0d91454c3da5f3b97a0c8143b32918294eea2e46a7dca8faabda57e6";
+    url = "https://api.snapcraft.io/api/v1/snaps/download/WkTBXwoX81rBe3s3OTt3EiiLKBx2QhuS_117.snap";
+    sha512 = "1e9a6e14a7046a8297c9f067211257cfbbe4dc121ddf4123271ddb96eccbfa504b6e0d05de2077326127ae1d0b2e571c232125e51bfaa1ef82d6cbf9355f13e6";
   };
 
   desktopItem = makeDesktopItem {
@@ -75,6 +75,7 @@ stdenv.mkDerivation rec {
     description = "A cross-platform SSH client with cloud data sync and more";
     homepage = "https://termius.com/";
     downloadPage = "https://termius.com/linux/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ Br1ght0ne th0rgal ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/tetrd/default.nix b/nixpkgs/pkgs/applications/networking/tetrd/default.nix
index 94e7950ecdbb..a9ccf1d2774f 100644
--- a/nixpkgs/pkgs/applications/networking/tetrd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/tetrd/default.nix
@@ -78,8 +78,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Share your internet connection from your device to your PC and vice versa through a USB cable";
     homepage = "https://tetrd.app";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
-    platforms = platforms.all;
+    platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ Madouura ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/tmpmail/default.nix b/nixpkgs/pkgs/applications/networking/tmpmail/default.nix
index 535f5ce6d9d5..d29d5816f449 100644
--- a/nixpkgs/pkgs/applications/networking/tmpmail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/tmpmail/default.nix
@@ -1,14 +1,14 @@
-{ lib, fetchFromGitHub, stdenvNoCC, w3m, curl, jq, makeWrapper, installShellFiles }:
+{ lib, fetchFromGitHub, stdenvNoCC, w3m, curl, jq, makeWrapper, installShellFiles, xclip }:
 
 stdenvNoCC.mkDerivation rec {
   pname = "tmpmail";
-  version = "1.1.9";
+  version = "1.2.3";
 
    src = fetchFromGitHub {
     owner = "sdushantha";
     repo = "tmpmail";
     rev = "v${version}";
-    sha256 = "sha256-sWcsmBUHSfo7sICXyhNhbfRFSHumObnWc7stWxcwVTg=";
+    sha256 = "sha256-s4c1M4YHK/CNpH7nPt7rRqlkLUZrpBXvAVS/qxCai9c=";
   };
 
   dontConfigure = true;
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
     mkdir -p $out/bin
     install -Dm755 -t $out/bin tmpmail
     installManPage tmpmail.1
-    wrapProgram $out/bin/tmpmail --prefix PATH : ${lib.makeBinPath [ w3m curl jq ]}
+    wrapProgram $out/bin/tmpmail --prefix PATH : ${lib.makeBinPath [ w3m curl jq xclip ]}
   '';
 
    meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/twtxt/default.nix b/nixpkgs/pkgs/applications/networking/twtxt/default.nix
index 27420f8bd339..792c13aa23fa 100644
--- a/nixpkgs/pkgs/applications/networking/twtxt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/twtxt/default.nix
@@ -23,6 +23,11 @@ buildPythonApplication rec {
 
   checkInputs = [ pytestCheckHook tox ];
 
+  disabledTests = [
+     # Disable test using relative date and time
+     "test_tweet_relative_datetime"
+  ];
+
   meta = with lib; {
     description = "Decentralised, minimalist microblogging service for hackers";
     homepage = "https://github.com/buckket/twtxt";
diff --git a/nixpkgs/pkgs/applications/networking/utahfs/default.nix b/nixpkgs/pkgs/applications/networking/utahfs/default.nix
index b6bae284dcd3..e867ff46e7de 100644
--- a/nixpkgs/pkgs/applications/networking/utahfs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/utahfs/default.nix
@@ -19,5 +19,7 @@ buildGoPackage rec {
     license = licenses.bsd3;
     maintainers = [ maintainers.snglth ];
     platforms = platforms.unix;
+    # does not build with go 1.17: https://github.com/cloudflare/utahfs/issues/46
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/warp/default.nix b/nixpkgs/pkgs/applications/networking/warp/default.nix
new file mode 100644
index 000000000000..4efec422ce31
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/warp/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, appstream-glib
+, desktop-file-utils
+, itstool
+, meson
+, ninja
+, pkg-config
+, python3
+, rustPlatform
+, wrapGAppsHook
+, glib
+, gtk4
+, libadwaita
+}:
+
+stdenv.mkDerivation rec {
+  pname = "warp";
+  version = "0.2.1";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = "warp";
+    rev = "v${version}";
+    hash = "sha256-ajz450ix68TDkhyAZd1IgZA/jUnXULrYZOSdcoOL+S0=";
+  };
+
+  postPatch = ''
+    patchShebangs build-aux
+  '';
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-08xbd2YmJw2NTrxBrnJZMV2VvX6V0eX+fxbEEWFoC9c=";
+  };
+
+  nativeBuildInputs = [
+    appstream-glib
+    desktop-file-utils
+    itstool
+    meson
+    ninja
+    pkg-config
+    python3
+    wrapGAppsHook
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  buildInputs = [
+    glib
+    gtk4
+    libadwaita
+  ];
+
+  meta = {
+    description = "Fast and secure file transfer";
+    homepage = "https://apps.gnome.org/app/app.drey.Warp";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ dotlambda ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/wgcf/default.nix b/nixpkgs/pkgs/applications/networking/wgcf/default.nix
new file mode 100644
index 000000000000..3487ad6395cf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/wgcf/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "wgcf";
+  version = "2.2.14";
+
+  src = fetchFromGitHub {
+    owner = "ViRb3";
+    repo  = pname;
+    rev   = "v${version}";
+    hash  = "sha256-6V4fIoFB0fuCEu1Rj8QWGDNdgystrD/gefjbshvxVsw=";
+  };
+
+  subPackages = ".";
+
+  vendorSha256 = "sha256-NGlV/qcnUlNLvt3uVRdfx+lUDgqAEBEowW9WIHBY+AI=";
+
+  meta = with lib; {
+    description = "Cross-platform, unofficial CLI for Cloudflare Warp";
+    homepage    = "https://github.com/ViRb3/wgcf";
+    license     = licenses.mit;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ yureien ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/zerobin/default.nix b/nixpkgs/pkgs/applications/networking/zerobin/default.nix
index 56d5274751fc..ca55085d8085 100644
--- a/nixpkgs/pkgs/applications/networking/zerobin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/zerobin/default.nix
@@ -40,7 +40,7 @@ python3Packages.buildPythonApplication rec {
     # relax version constraints of some dependencies
     substituteInPlace setup.cfg \
       --replace "clize==4.1.1" "clize" \
-      --replace "bleach==3.1.5" "bleach>=3.1.5,<5" \
+      --replace "bleach==3.1.5" "bleach>=3.1.5,<6" \
       --replace "bottle==0.12.18" "bottle>=0.12.18,<1" \
       --replace "Paste==3.4.3" "Paste>=3.4.3,<4"
   '';